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

正文內(nèi)容

基于單片機的多功能萬年歷(參考版)

2025-06-22 16:43本頁面
  

【正文】 ri = B。 shi = BCD_Decimal(read_1302(0x85))。 }}void timer0() interrupt 1{ miao = BCD_Decimal(read_1302(0x81))。 Akeyscan()。 init()。 lcd_init()。 } }} void main(){ secled=0。 if(Ckey==0) { TR0=0。 //顯示溫度的小數(shù)部分 delay(10)。 //計算溫度的小數(shù)部分,將余數(shù)乘以10再除以16取整, //這樣得到的是溫度小數(shù)部分的第一位數(shù)字(保留1位小數(shù)) display_temp1(TN)。 //接著讀的是溫度值高位 TN=TH*16+TL/16。 //讀溫度準備 TL=ReadOneChar()。 //顯示溫度的小數(shù)點 display_cent()。 display_explain()。 //將液晶初始化 delay(5)。 //儲存溫度的整數(shù)部分 uchar TD。 //儲存暫存器的溫度低位 uchar TH。 //跳過讀序號列號的操作 WriteOneChar(0xBE)。 //溫度轉(zhuǎn)換需要一點時間 Init_DS18B20()。time100。 // 跳過讀序號列號的操作 WriteOneChar(0x44)。 //延時1ms給硬件一點反應時間}/*****************************************************函數(shù)功能:做好讀溫度的準備***************************************************/ void ReadyReadTemp(void){ Init_DS18B20()。 //寫顯示地址,將在第2行第11列開始顯示 Lcddat(digit[x])。 //將個位數(shù)字的字符常量寫入LCD delay(50)。 //寫顯示地址,將在第2行第8列開始顯示 Lcddat(digit[k])。 //取十位 l=x%10。 //延時1ms給硬件一點反應時間 } }/*****************************************************函數(shù)功能:顯示溫度的整數(shù)部分入口參數(shù):x***************************************************/ void display_temp1(unsigned char x){ unsigned char k,l。 //將字符常量寫入LCD i++。\039。 //寫顯示地址,將在第2行第13列開始顯示 i = 0。 //延時1ms給硬件一點反應時間 }/*****************************************************函數(shù)功能:顯示溫度的單位(Cent)***************************************************/ void display_cent(void){ uchar i。)。 //寫顯示地址,將在第2行第10列開始顯示 Lcddat(39。 //指向下一個字符 delay(100)。) //只要沒有寫到結(jié)束標志,就繼續(xù)寫 { Lcddat(Str[i])。 //從第一個字符開始顯示 while(Str[i] != 39。 Lcd(row_1)。 //延時100ms較長時間,以看清關(guān)于顯示的說明 } while(1) //進入死循環(huán),等待查明原因 。 //將字符常量寫入LCD i++。\039。 //寫顯示地址,將在第1行第1列開始顯示 i = 0。 //稍作延時,給硬件一點反應時間}/******************************************************************************以下是與溫度有關(guān)的顯示設置 ******************************************************************************/ /*****************************************************函數(shù)功能:顯示沒有檢測到DS18B20***************************************************/ void display_error(void) { unsigned char i。time4。//延時3us,兩個寫時序間至少需要1us的恢復期 dat=1。time1。//延時約30us,DS18B20在拉低后的約15~60us期間從數(shù)據(jù)線上采樣 DQ=1。time10。0x01。 //等待一個機器周期 DQ=0。 i++) { DQ =1。 for (i=0。 //延時3us,兩個讀時序之間必須有大于1us的恢復期 } return(dat)。time8。 //如果讀到的數(shù)據(jù)是1,則將1存入dat else dat|=0x00。time++) 。 //將數(shù)據(jù)線人為拉高,為單片機檢測DS18B20的輸出電平作準備 for(time=0。 _nop_()。 //等待一個機器周期 DQ = 0。i++) { DQ =1。 //儲存讀出的一個字節(jié)數(shù)據(jù) for (i=0。 //返回檢測成功標志}/*****************************************************函數(shù)功能:從DS18B20讀取一個字節(jié)數(shù)據(jù)出口參數(shù):dat***************************************************/ unsigned char ReadOneChar(void) { unsigned char i=0。time++) //延時足夠長時間,等待存在脈沖輸出完畢 。 //讓單片機檢測是否輸出了存在脈沖(DQ=0表示存在) for(time=0。time++) 。 //釋放數(shù)據(jù)線(將數(shù)據(jù)線拉高) for(time=0。time++) //略微延時約600微秒 。 //再將數(shù)據(jù)線從高拉低,要求保持480~960us for(time=0。time++) //略微延時約6微秒 。 //先將數(shù)據(jù)線拉高 for(time=0。 }}/*****************************************************函數(shù)功能:將DS18B20傳感器初始化,讀取應答信號出口參數(shù):flag ***************************************************/bit Init_DS18B20(void) { bit flag。 lcd_init()。 sound(3)。i10。 Lcd(row_1)。miao==asecond) { TR0=0。fen==aminuteamp。 if(shi==ahouramp。 aminute=EEP_read(0x2600)。}void alarm(){ uint i。 else if(fen==0amp。amp。 secled=0。 secled=~secled。 delay(100)。 bell=~bell。i20。 secled=~secled。i++) { delay(65)。 } } if(ha==1) { for(i=0。 bell=~bell。i20。 ha=x。}void sound(uint x){ uint ha。 ET0=1。 TL0=0。 } } } }}void init(){ TMOD=0x11。//寫入新的秒數(shù) Lcd(row_2+0x0b)。 write_1302(0x8e,0x80)。 write_1302(0x8e,0x00)。 if(miao==1) miao=59。 break。 write_1302(0x8e,0x80)。 write_1302(0x8e,0x00)。 write_sfm(7,fen)。 case 7:fen。 Lcd(row_2+5)。 write_1302(0x84,temp)。 temp=(shi)/10*16+(shi)%10。 if(shi==1) shi=23。 break。 write_1302(0x8e,0x80)。 write_1302(0x8e,0x00)。 if(week==1) week=7。 break。 write_1302(0x8e,0x80)。 write_1302(0x8e,0x00)。 } write_nyr(10,ri)。(nian%4==0))) if(ri==1) ri=29。 else if(yue==4||yue==6||yue==9||yue==11) if(ri==1) ri=30。 case 4:ri。 Lcd(row_1+8)。 write_1302(0x88,temp)。 temp=(yue)/10*16+(yue)%10。 if(yue==1) yue=12。 break。//重新寫入數(shù)據(jù) write_nyr(4,nian)。 SectorErase(0x2200)。 case 2:nian。 Lcd(row_1+3)。//擦除扇區(qū) EEP_write(0x2000,hyear)。 if(hyear==1) hyear=99。 if(keydown==0) { while(keydown==0)。 //因為設置液晶的模式是寫入數(shù)據(jù)后,指針自動加一,在這里是寫回原來的位置 break。 write_1302(0x8e,0x80)。 write_1302(0x8e,0x00)。 write_sfm(0x0a,miao)。 case 8:miao++。 Lcd(row_2+8)。 write_1302(0x82,temp)。 temp=(fen)/10*16+(fen)%10。 if(fen==60) fen=0。 break。 write_1302(0x8e,0x80)。 write_1302(0x8e,0x00)。 write_sfm(4,shi)。 case 6:shi++。 Lcd(row_1+0x0f)。 write_1302(0x8a,week%10)。 write_week(week)。 case 5:week++。 Lcd(row_1+11)。 write_1302(0x86,temp)。 temp=(ri)/10*16+(ri)%10。 else if(nian%4!=0) if(ri=29) ri=1。 else if(yue==2) { if((nian%400==0)||((nian%400!=0)amp。 if(yue==1||yue==3||yue==5||yue==7||yue==8||yue==10||yue==12) if(ri=32) ri=1。 break。 write_13
點擊復制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1