DS1302時(shí)鐘+DS18B20用LCD1602顯示系統(tǒng)很簡(jiǎn)單_第1頁(yè)
DS1302時(shí)鐘+DS18B20用LCD1602顯示系統(tǒng)很簡(jiǎn)單_第2頁(yè)
DS1302時(shí)鐘+DS18B20用LCD1602顯示系統(tǒng)很簡(jiǎn)單_第3頁(yè)
DS1302時(shí)鐘+DS18B20用LCD1602顯示系統(tǒng)很簡(jiǎn)單_第4頁(yè)
DS1302時(shí)鐘+DS18B20用LCD1602顯示系統(tǒng)很簡(jiǎn)單_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、DS1302時(shí)鐘+DS18B20用LCD1602顯示(系統(tǒng)很簡(jiǎn)單)LU1L看仔細(xì)點(diǎn)啊貌似很多這樣的圖但可不一樣喔最小系統(tǒng)是用AT89S52搭建的!記得回去自己用protues和Keil仿真一下,這樣有利于進(jìn)一步了解!故未將仿真好的代碼上傳,如果真的需要的話可以和我聯(lián)系!程序代碼:#include#include據(jù)端口8A8C0F0F0F0F0F0F0F2007/07/228C07/07/25期:3.時(shí)間:23:59:55Write1302(0 x88,0 x07);Write1302(0 x86,0 x25);2069/97/14Ueek314:29:33aau睦asrfiijQ2?Cl,rT

2、J心h二二門(mén)1:FRP1*加1 1TCJTCJP5T今次雙町P1.DfP1.DfH H叫陽(yáng)F1JP1.F1JP1.3P1/3P1/打3 3P1IFL?-.-.r PQPQ ? ?川蒯3 3例到3 3林卿取力則PDWTPDWT心嗨吐圈P?X0P1P?X0P1MI1PMI1P2 2岷岷2門(mén)地飛P3(nP2P3(nP2X5X5PIOIHMPIOIHM)P3.WP)P3.WPL L瓶puirrpuirrFi.Fi.n n吐膽丹螃F3F3麻#2#2F.Write1302(0 x8a,0 x07);Write1302(0 x84,0 x23);Write1302(0 x82,0 x59);Write130

3、2(0 x80,0 x55);Write1302(0 x8e,0 x80);)voidoutkey()跳出調(diào)整模式,返回默認(rèn)顯示ucharSecond;if(out=0|wireless_1=1)mdelay(8);count=0;hide_sec=0,hide_min=0,hide_hour=0,hide_day=0,hide_week=0,hide_month=0,hide_year=0;Second=Read1302(DS1302_SECOND);Write1302(0 x8e,0 x00);/寫(xiě)入允許Write1302(0 x80,Second&0 x7f);Write1302

4、(0 x8E,0 x80);禁止寫(xiě)入done=0;while(out=0);while(wireless_1=1);/voidUpkey()/升序按鍵Up=1;if(Up=0|wireless_2=1)(mdelay(8);switch(count)case1:temp=Read1302(DS1302_SECOND);/讀取秒數(shù)temp=temp+1;秒數(shù)加1up_flag=1;/數(shù)據(jù)調(diào)整后更新標(biāo)志if(temp&0 x7f)0 x59)/超過(guò)59秒,清零temp=0;break;case 2:temp=Read1302(DS1302_MINUTE);/讀取分?jǐn)?shù)temp=temp+1;

5、分?jǐn)?shù)加1up_flag=1;if(temp0 x59)/超過(guò)59分,清零temp=0;break;case 3:temp=Read1302(DS1302_HOUR);/讀取小時(shí)數(shù)temp=temp+1;小時(shí)數(shù)加1up_flag=1;if(temp0 x23)/超過(guò)23小時(shí),清零temp=0;break;case 4:temp=Read1302(DS1302_WEEK);/讀取星期數(shù)temp=temp+1;星期數(shù)加1up_flag=1;if(temp0 x7)temp=1;break;case 5:temp=Read1302(DS1302_DAY);/讀取日數(shù)temp=temp+1;/日數(shù)加1u

6、p_flag=1;if(temp0 x31)temp=1;break;case 6:temp=Read1302(DS1302_MONTH);/讀取月數(shù)temp=temp+1;月數(shù)加1up_flag=1;if(temp0 x12)temp=1;break;case 7:temp=Read1302(DS1302_YEAR);/讀取年數(shù)temp=temp+1;年數(shù)加1up_flag=1;if(temp0 x85)temp=0;break;default:break;while(Up=0);while(wireless_2=1);)/voidDownkey()/降序按鍵(Down=1;if(Down=

7、0|wireless_3=1)(mdelay(8);switch(count)case1:temp=Read1302(DS1302_SECOND);/讀取秒數(shù)temp=temp-1;/秒數(shù)減1down_flag=1;/數(shù)據(jù)調(diào)整后更新標(biāo)志if(temp=0 x7f)/小于0秒,返回59秒temp=0 x59;break;case 2:temp=Read1302(DS1302_MINUTE);/讀取分?jǐn)?shù)temp=temp-1;/分?jǐn)?shù)減1down_flag=1;if(temp=-1)temp=0 x59;/小于0秒,返回59秒break;case 3:temp=Read1302(DS1302_HOU

8、R);/讀取小時(shí)數(shù)temp=temp-1;小時(shí)數(shù)減1down_flag=1;if(temp=-1)temp=0 x23;break;case 4:temp=Read1302(DS1302_WEEK);/讀取星期數(shù)temp=temp-1;星期數(shù)減1down_flag=1;if(temp=0)temp=0 x7;break;case 5:temp=Read1302(DS1302_DAY);/讀取日數(shù)temp=temp-1;/日數(shù)減1down_flag=1;if(temp=0)temp=31;break;case 6:temp=Read1302(DS1302_MONTH);/讀取月數(shù)temp=tem

9、p-1;月數(shù)減1down_flag=1;temp=12;break;case 7:temp=Read1302(DS1302_YEAR);/讀取年數(shù)temp=temp-1;年數(shù)減1down_flag=1;if(temp=-1)temp=0 x85;break;default:break;while(Down=0);while(wireless_3=1);voidSetkey()/模式選擇按鍵Set=1;if(Set=0|wireless_4=1)mdelay(8);count=count+1;/Setkey按一次,count就加1done=1;/進(jìn)入調(diào)整模式while(Set=0);while(

10、wireless_4=1);voidkeydone()/按鍵功能執(zhí)行ucharSecond;if(flag=0)/關(guān)閉時(shí)鐘,停止計(jì)時(shí)Write1302(0 x8e,0 x00);寫(xiě)入允許temp=Read1302”(0 x80);Write1302(0 x80,temp|0 x80);Write1302(0 x8e,0 x80);禁止寫(xiě)入flag=1;)Setkey();/掃描模式切換按鍵switch(count)case1:do/count=1,調(diào)整秒outkey();/掃描跳出按鈕Upkey();掃描加按鈕Downkey();/掃描減按鈕if(up_flag=1|down_flag=1)/

11、數(shù)據(jù)更新,重新寫(xiě)入新的數(shù)據(jù)Write1302(0 x8e,0 x00);/寫(xiě)入允許Write1302(0 x80,temp|0 x80);/寫(xiě)入新的秒數(shù)Write1302(0 x8e,0 x80);禁止寫(xiě)入up_flag=0;down_flag=0;)hide_sec+;/位閃計(jì)數(shù)hide_sec=0;show_time();液晶顯示數(shù)據(jù)while(count=2);break;case2:do/count=2,調(diào)整分hide_sec=0;outkey();Upkey();Downkey();if(temp0 x60)temp=0;if(up_flag=1|down_flag=1)Write1

12、302(0 x8e,0 x00);/寫(xiě)入允許Write1302(0 x82,temp);寫(xiě)入新的分?jǐn)?shù)Write1302(0 x8e,0 x80);禁止寫(xiě)入up_flag=0;down_flag=0;hide_min+;if(hide_min3)hide_min=0;show_time();while(count=3);break;case3:do/count=3,調(diào)整小時(shí)hide_min=0;outkey();Upkey();Downkey();if(up_flag=1|down_flag=1)(Write1302(0 x8e,0 x00);/寫(xiě)入允許Write1302(0 x84,temp)

13、;/寫(xiě)入新的小時(shí)數(shù)Write1302(0 x8e,0 x80);禁止寫(xiě)入up_flag=0;down_flag=0;hide_hour+;if(hide_hour3)hide_hour=0;show_time();while(count=4);break;case4:do/count=4,調(diào)整星期(hide_hour=0;outkey();Upkey();Downkey();if(up_flag=1|down_flag=1)(Write1302(0 x8e,0 x00);/寫(xiě)入允許Write1302(0 x8a,temp);寫(xiě)入新的星期數(shù)Write1302(0 x8e,0 x80);禁止寫(xiě)入u

14、p_flag=0;down_flag=0;)hide_week+;if(hide_week3)hide_week=0;show_time();while(count=5);break;case5:do/count=5,調(diào)整日hide_week=0;outkey();Upkey();Downkey();if(up_flag=1|down_flag=1)Write1302(0 x8e,0 x00);/寫(xiě)入允許Write1302(0 x86,temp);/寫(xiě)入新的日數(shù)Write1302(0 x8e,0 x80);禁止寫(xiě)入up_flag=0;down_flag=0;hide_day+;if(hide_

15、day3)hide_day=0;show_time();while(count=6);break;case6:do/count=6,調(diào)整月(hide_day=0;outkey();Upkey();Downkey();if(up_flag=1|down_flag=1)(Write1302(0 x8e,0 x00);/寫(xiě)入允許Write1302(0 x88,temp);/寫(xiě)入新的月數(shù)Write1302(0 x8e,0 x80);禁止寫(xiě)入up_flag=0;down_flag=0;hide_month+;if(hide_month3)hide_month=0;show_time();while(co

16、unt=7);break;case7:do/count=7,調(diào)整年(hide_month=0;outkey();Upkey();Downkey();if(up_flag=1|down_flag=1)(Write1302(0 x8e,0 x00);/寫(xiě)入允許Write1302(0 x8c,temp);寫(xiě)入新的年數(shù)Write1302(0 x8e,0 x80);禁止寫(xiě)入up_flag=0;down_flag=0;hide_year+;if(hide_year3)hide_year=0;show_time();while(count=8);break;case 8:count=0;hide_year=

17、0;/count8,跳出調(diào)整模式,返回默認(rèn)顯示狀態(tài)Second=Read1302(DS1302_SECOND);Write1302(0 x8e,0 x00);/寫(xiě)入允許Write1302(0 x80,Second&0 x7f);Write1302(0 x8E,0 x80);禁止寫(xiě)入done=0;break;/count=7,開(kāi)啟中斷標(biāo)志位置0并退出default:break;voidshow_time()/液晶顯示程序DS1302_GetTime(&CurrentTime);/獲取時(shí)鐘芯片的時(shí)間數(shù)據(jù)TimeToStr(&CurrentTime);/時(shí)間數(shù)據(jù)轉(zhuǎn)換液晶字符DateToStr(&CurrentTime);/日期數(shù)據(jù)轉(zhuǎn)換液晶字符ReadTemp();/開(kāi)啟溫度采集程序temp_to_str();/溫度數(shù)據(jù)轉(zhuǎn)換成液晶字符GotoXY(12,1);液晶字符顯示位置Print(TempBuffer);顯示溫度GotoXY(0,1);Print;/顯示時(shí)間GotoXY(0,0);Print;顯示日期GotoXY(15,0);Print(week_value);/顯示星期GotoXY(11,0);Print(Week);/在液晶上顯示字母weekDelay1m

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論