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

正文內(nèi)容

基于stc89c52的多功能實時時鐘-資料下載頁

2025-11-03 15:03本頁面

【導(dǎo)讀】置鬧鐘的功能,同時具有月末自動更新,閏年補償功能等多種功能。溫度采集模塊,鍵盤掃描模塊,發(fā)聲模塊。STC89C52作為控制核心,具有功耗。低,功能強等特點,電壓可選3到5V電源供電。顯示模塊采用1602液晶動態(tài)顯。且與單片機連線簡單,占用IO口相對較少。實時時鐘芯片DS1302提供RTC/日。電,DS1302將石英晶體與電池集成在一起,在斷電后仍可精確走1年。測模塊采用數(shù)字式溫度傳感器DS18B20,該芯片具有精度高,測量范圍廣等優(yōu)點,可擴展成為諸如定時自動報警、按時自動打鈴、時間程。種定時電氣的自動啟用等電路。

  

【正文】 節(jié) { uchar i=0。 uchar dat = 0。 for (i=8。i0。i) { DQ = 0。 dat=1。 DQ = 1。 if(DQ) dat|=0x80。 delay_18B20(4)。 } return(dat)。 } void write_one_char(uchar dat) //ds18b20 寫一個字節(jié) { unsigned char i=0。 for (i=8。 i0。 i) { DQ = 0。 DQ = datamp。0x01。 delay_18B20(5)。 DQ = 1。 dat=1。 } } void read_temp(void) //讀取 ds18b20 當(dāng)前溫度 { unsigned char a=0。 unsigned char b=0。 unsigned char t=0。 Init_DS18B20()。 write_one_char(0xCC)。 // 跳過讀序號列號的操作 write_one_char(0x44)。 // 啟動溫度轉(zhuǎn)換 delay_18B20(100)。 //這個延時很重要 Init_DS18B20()。 21 write_one_char(0xCC)。 //跳過讀序號列號的操作 write_one_char(0xBE)。 //讀取溫度寄存器等(共可讀 9 個寄存器) 前兩個就是溫度 delay_18B20(100)。 a=read_one_char()。 //讀取溫度值低位 b=read_one_char()。 //讀取溫度值高位 temp_value=b4。 temp_value+=(aamp。0xf0)4。 } void temp_to_string() //溫度數(shù)據(jù)轉(zhuǎn)換成液晶字符顯示 { TempRoom[0]=temp_value/10+39。039。 //十位 TempRoom[1]=temp_value%10+39。039。 //個位 TempRoom[2]=0xdf。 //溫度符號 TempRoom[3]=39。C39。 TempRoom[4]=39。\039。 } //***********鍵盤識別程序 ********************/ void delay_key(uint a) { uint b。 for(b=0。ba。b++)。 } uchar key(void) { uchar i,j。 K1=0。 i=P1。 delay_key(200)。 j=P1。 K1=1。 if(i==j) { switch(j) { case 0xee: return(j)。break。 case 0xed: return(j)。break。 case 0xeb: return(j)。break。 case 0xe7: return(j)。break。 } } K2=0。 i=P1。 delay_key(200)。 j=P1。 K2=1。 if(i==j) { switch(j) { case 0xde: return(j)。break。 case 0xdd: return(j)。break。 case 0xdb: return(j)。break。 case 0xd7: return(j)。break。 } } } uchar key_only(void) { uchar i,j。 22 K1=0。 i=P1。 delay_key(200)。 j=P1。 K1=1。 if(i==j) { if(j==0xee) { while(j==0xee)//直到放手 { delay_key(1000)。 j=P1。 } delay_key(1000)。 return(0xee)。 } else return(0)。 } else return(0)。 } mode(void ) //模式判斷 { if(key_only()==0xee) { beep=0。 delay_key(1000)。 beep=1。 ++done。 if(done==2) {done=0。} while(key_only()==0xee)。 } } void delay1ms(unsigned int count) //延時 ms 程序 { unsigned int i,j。 for(i=0。icount。i++) for(j=0。j120。j++)。 } void mdelay(uint delay) //延時子程序 { uint i。 for(。delay0。delay) { for(i=0。i62。i++) //1ms 延時 . {。} } } void mode2 (void) //調(diào)時模式按鍵 {if(key()==0xed) { done2=1。 count=count+1。 beep=0。 delay_key(1000)。 beep=1。 while(key()==0xed)。 23 } } void outkey() //跳出調(diào)整模式 ,返回默認(rèn)顯示 { uchar second。 if(key()==0xe7) { beep=0。 delay_key(1000)。 beep=1。 count=0。 hide_sec=0,hide_min=0,hide_hour=0,hide_day=0,hide_week=0,hide_month=0,hide_year=0,hide_min_alarm,hide_hour_alarm。 second=read1302(ds1302_second)。 write1302(0x8e,0x00)。 //寫入允許 write1302(0x80,secondamp。0x7f)。 write1302(0x8E,0x80)。 //禁止寫入 done=0。 done2=0。 while(key()==0xe7)。 } } //////////////////////////////////////////////////////////////////////////////////////////////////////////// void Upkey()//升序按鍵 { if(key()==0xdd) { beep=0。 delay_key(1000)。 beep=1。 switch(count) { case 1: temp=read1302(ds1302_second)。 //讀取秒數(shù) temp=temp+1。 //秒數(shù)加 1 up_flag=1。 //數(shù)據(jù)調(diào)整后更新標(biāo)志 if((tempamp。0x7f)0x59) //超過 59 秒 ,清零 temp=0。 break。 case 2: temp=read1302(ds1302_minute)。 //讀取分?jǐn)?shù) temp=temp+1。 //分?jǐn)?shù)加 1 up_flag=1。 if(temp0x59) //超過 59 分 ,清零 temp=0。 break。 case 3: temp=read1302(ds1302_hour)。 //讀取小時數(shù) temp=temp+1。 //小時數(shù)加 1 up_flag=1。 if(temp0x23) //超過 23 小時 ,清零 temp=0。 break。 case 4: temp=read1302(ds1302_week)。 //讀取星期數(shù) temp=temp+1。 //星期數(shù)加 1 up_flag=1。 if(temp0x7) 24 temp=1。 break。 case 5: temp=read1302(ds1302_day)。 //讀取日數(shù) temp=temp+1。 //日數(shù)加 1 up_flag=1。 if(temp0x31) temp=1。 break。 case 6: temp=read1302(ds1302_month)。 //讀取月數(shù) temp=temp+1。 //月數(shù)加 1
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1