freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的電子時鐘和顯示屏的設(shè)計(編輯修改稿)

2024-07-23 15:10 本頁面
 

【文章內(nèi)容簡介】 jSONG_LONG[i]*20。j++){SPK=~SPK。/*SONG_TONE延時表決定了每個音符的頻率*/for(k=0。kSONG_TONE[i]/3。k++)。}DelayMS(100)。/*下一個音符的索引*/i++。}}void Alarm(uchar t) /*溫度報警函數(shù)*/{uchar i,j。for(i=0。i200。i++){SPK=~SPK。/*由參數(shù)t形成不同的頻率*/for(j=0。jt。j++)。}}/*向DS1302寫入一字節(jié)*/void Write_A_Byte_TO_DS1302(uchar x){uchar i。for(i=0。i8。i++){SDA=xamp。1。 CLK=1。 CLK=0。 x=1。}}/*從DS1302讀取一字節(jié)*/uchar Get_A_Byte_FROM_DS1302(){uchar i,b,t。for(i=0。i8。i++){b=1。t=SDA。b|=t7。CLK=1。CLK=0。}/*BCD碼轉(zhuǎn)換*/return(b/16*10+b%16)。}/*從DS1302指定位置讀數(shù)據(jù)*/uchar Read_Data(uchar addr)}uchar dat。RST=0。CLK=0。RST=1。Write_A_Byte_TO_DS1302(addr)。dat=Get_A_Byte_FROM_DS1302()。CLK=1。RST=0。return dat。}/*向DS1302某地址寫入數(shù)據(jù)*/void Write_DS1302(uchar addr,uchar dat){CLK=0。 RST=1。Write_A_Byte_TO_DS1302(addr)。Write_A_Byte_TO_DS1302(dat)。CLK=1。RST=0。}/*設(shè)置時間*/void SET_DS1302(){uchar i。Write_DS1302(0x8E,0x00)。/*秒分時日月年依次寫入*/for(i=0。i7。i++){/*秒,分,時,日,月,星期,年的起始地址分別為0x80,0x82,0x84,0x86,0x88,0x8A,0x8C*/ Write_DS1302(0x80+2*i,(DateTime[i]/104)|(DateTime[i]%10))。}Write_DS1302(0x8E,0x80)。}/*讀取當(dāng)前時間*/void GetTime(){uchar i。for(i=0。i7。i++){DateTime[i]=Read_Data(0x81+2*i)。} }uchar isLeapYear(uint y)/*判斷是否為閏年*/{return (y%4==0amp。amp。y%100!=0)||(y%400==0)。}/*********刷新星期******/void RefreshWeekDay(){uint i,d,w=5。/**/for(i=2000。i2000+DateTime[6]。i++){d=isLeapYear(i)?366:365。w=(w+d)%7。}d=0。for(i=1。iDateTime[4]。i++) d+=MonthsDays[i]。d+=DateTime[3]。/*保存星期,0~6表示星期日,星期一,二,三,四,五,六,為了與DS1302的星期格式匹配,返回值需要加1*/DateTime[5]=(w+d)%7+1。}/*蜂鳴器函數(shù)*/void Beep(uchar t){uchar i。for(i=0。i100。i++){SPK=~SPK。DelayMS(t)。}SPK=0。}void DateTime_Adjust(char x)/*年月日時分++或*/{switch(Adjust_Index){case 6: /*年0099*/if(x==1amp。amp。DateTime[6]99) DateTime[6]++。if(x==1amp。amp。DateTime[6]0) DateTime[6]。/*獲取2月天數(shù)*/ MonthsDays[2]=isLeapYear(2000+DateTime[6])?29:28。/*如果年份變化后當(dāng)前月份的天數(shù)大于上限則設(shè)為上限*/if(DateTime[3]MonthsDays[DateTime[4]])DateTime[3]=MonthsDays[DateTime[4]]。RefreshWeekDay()。/*刷新星期*/break。case 4: /*月01至12*/if(x==1amp。amp。DateTime[4]12) DateTime[4]++。if(x==1amp。amp。DateTime[4]1) DateTime[4]。/*獲取2月天數(shù)*/ MonthsDays[2]=isLeapYear(2000+DateTime[6])?29:28。/*如果年份變化后當(dāng)前月份的天數(shù)大于上限則設(shè)為上限*/if(DateTime[3]MonthsDays[DateTime[4]]) DateTime[3]=MonthsDays[DateTime[4]]。RefreshWeekDay()。/*刷新星期*/break。case 3:/*日00至28/29/30/31。調(diào)節(jié)之前首先根據(jù)年份得出該年中2月的天數(shù)*/ MonthsDays[2]=isLeapYear(2000+DateTime[6])?29:28。/*再根據(jù)當(dāng)前月份決定調(diào)節(jié)日期的上限*/if(x==1amp。amp。DateTime[3]MonthsDays[DateTime[4]]) DateTime[3]++。if(x==1amp。amp。DateTime[3]0) DateTime[3]。RefreshWeekDay()。/*刷新星期*/break。case 2: /*小時*/if(x==1amp。amp。DateTime[2]23) DateTime[2]++。DateTime[2]。break。case 1: /*分鐘*/if(x==1amp。amp。DateTime[1]59) DateTime[1]++。if(x==1amp。amp。DateTime[1]0) DateTime[1]。break。case 0: /*秒*/if(x==1amp。amp。DateTime[0]59) DateTime[0]++。break。}}/*定時器0每秒刷新LCD顯示*/void T0_INT() interrupt 1{TH0=(6553650000)/256。TL0=(6553650000)%256。if(++tCount!=2) return。tCount=0。/*年(后兩位)*/Reverse_Display=Adjust_Index==6。 Display_A_Char_8X16(V_Page_Offset,70+H_Offset,DIGITS+DateTime[6]/10*16)。 Display_A_Char_8X16(V_Page_Offset,78+H_Offset,DIGITS+DateTime[6]%10*16)。/*星期*/Reverse_Display=Adjust_Index==5。 Display_A_WORD(V_Page_Offset+3,32+H_Offset,WEEKDAY_WORDS+(DateTime[5]%101)*32)。/*月*/Reverse_Display=Adjust_Index==4。 Display_A_Char_8X16(V_Page_Offset,102+H_Offset,DIGITS+DateTime[4]/10*16)。 Display_A_Char_8X16(V_Page_Offset,110+H_Offset,DIGITS+DateTime[4]%10*16)。/*日*/Reverse_Display=Adjust_Index==3。 Display_A_Char_8X16(V_Page_Offset,5+H_Offset,DIGITS+DateTime[3]/10*16)。 Display_A_
點擊復(fù)制文檔內(nèi)容
外語相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1