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

正文內(nèi)容

基于單片機(jī)的多功能萬年歷(文件)

2025-07-07 16:43 上一頁面

下一頁面
 

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