版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、(此文檔為word格式,下載后您可任意編輯修改?。┱闹輲煼秾W(xué)院簡(jiǎn)易萬(wàn)年歷的設(shè)計(jì)系別:物理與電子信息工程系專業(yè):電子信息科學(xué)與技術(shù)2013年6月,L2_weishan;uchar r0,DELAY_mode;uchar msta,BJ_L,BJ_H,cnt1,cnt;void RDKEY()P2=0 xff; 掃描第 0 行 (ROW0) ,即 k0-k3 鍵r0=P2;r0=r0;r0&=0 xf0;將讀取到的k0-k3 鍵值保存于KEY0 的低四位if(r0!=KEY0)判斷是否有鍵按下TR0=1;EKEY0=KEY0;elseTR0=0;EKEY0=0 x00;EKEY0=r0&(KEY0
2、八r0);KEY0=r0;void disp ()uchar i;for(i=0;i3;i+)時(shí)間未到,沿用原來保留的鍵值未有鍵按下提取鍵前沿P2=0 xff;switch(dsw)case 0:CS0=0;SM_PORT=tablebuf0;顯示個(gè)位dsw=1;break;case 1:CS1=0;SM_PORT=tablebuf1;顯示十位dsw=2;break;case 2:if(!fh_300) CS2=0;elseCS2=1;SM_PORT=tablebuf2;顯示百位if(point_flag) point=0;else point=1;dsw=3;break;case 3:if(
3、!fh_300) CS3=0;elseCS3=1;SM_PORT=tablebuf3;顯示千位dsw=0;break;default:break;void disp1 ()SM_PORT=0 xff;P2=0 xff;switch(dsw)case 0:if(!fl_300) CS0=0;elseCS0=1;SM_PORT=tablebuf0;顯示個(gè)位dsw=1; break; case 1:if(!fl_300) CS1=0;elseCS1=1;SM_PORT=tablebuf1;顯示十位dsw=2; break; case 2:if(!fh_300) CS2=0;elseCS2=1;SM_
4、PORT=tablebuf2; 顯示百位if(point_flag) point=0; else point=1;dsw=3;break;case 3:if(!fh_300) CS3=0;elseCS3=1;SM_PORT=tablebuf3;顯示千位dsw=0; break;default:break;void Init()TMOD=0 x11;TH0=(65536-20000)256;TL0=(65536-20000)%256;TH1=(65536-5000)256;TL1=(65536-5000)%256;EA=1;ET0=1;TR1=1;LBJ_buf1=2;LBJ_buf0=2;HB
5、J_buf1=3;HBJ_buf0=5;FMQ=1;DELAY_mode=1;mode=1 表示,程序使用軟件延時(shí),此時(shí)使用設(shè)置定時(shí)器的工作方式為定時(shí)器0 裝載初值,用中斷方式進(jìn)行按鍵的去抖為定時(shí)器1 裝載初值開總中斷開定時(shí)器0 中斷開定時(shí)器0為低溫報(bào)警值賦初值22 度,在主程序中可修改為高溫報(bào)警值賦初值35 度,在主程序中可修改關(guān)閉蜂鳴器和LED工作模式賦初值1(其中DS18B20 進(jìn)行溫度測(cè)量,定時(shí)器延時(shí),程序每隔5ms 執(zhí)行一次,此時(shí)作為時(shí)鐘TZtime_flag1=0;Second_buf=0 x00;Minute_buf=0 x00;Hour_buf=0 x12;Day_buf=0
6、x16;Week_buf=0 x01;作為溫度計(jì)使用;mode=0 時(shí),使用次,此時(shí)作為時(shí)鐘Year_buf=0 x13;)void wenxian()(DELAY_mode=1;BJ_L=LBJ_buf1;BJ_L=4;BJ_L&=0 xf0;BJ_L+=LBJ_buf0&0 x0f;BJ_H=HBJ_buf1;BJ_H=BJ_H|temp16h=BJ_L)(cnt+;if(cnt=50)(FMQ=FMQ;cnt=0;) else FMQ=1;void XG_LBJ()修改低溫報(bào)警值DELAY_mode=1;point_flag=0;buf3=19;buf2=18;buf1=LBJ_buf1
7、;buf0=LBJ_buf0;fl_300=0;H2_weishan+;if(H2_weishan=60)H2_weishan=0;fh_300=fh_300;if(EK2)if(LBJ_buf0) -LBJ_buf0;else if(LBJ_buf1) -LBJ_buf1;LBJ_buf0=9;if(EK3)if(LBJ_buf0!=9) +LBJ_buf0;else if(LBJ_buf1!=9) +LBJ_buf1;LBJ_buf0=0;void XG_HBJ()修改高溫報(bào)警值DELAY_mode=1;point_flag=0;buf3=17;buf2=18;buf1=HBJ_buf1;
8、buf0=HBJ_buf0;fl_300=0;H2_weishan+;if(H2_weishan=60)H2_weishan=0;fh_300=fh_300;if(EK2)if(HBJ_buf0) -HBJ_buf0;else if(HBJ_buf1) -HBJ_buf1;HBJ_buf0=9;if(EK3)if(HBJ_buf0!=9) +HBJ_buf0;else if(HBJ_buf1!=9) +HBJ_buf1;HBJ_buf0=0;void work0()if(EK1)cnt1+;if(cnt1=3)cnt1=0;溫度顯示子程序,具有超溫和低case 0:fh_300=0;wenxi
9、an();溫報(bào)警功能break;case 1:XG_LBJ();修改低溫報(bào)警值break;修改高溫報(bào)警值case 2:XG_HBJ();break;default:break;void work1()if(EK1)msta+;if(msta=4) msta=0;fh_300=0;fl_300=0;switch(msta)case 0: time_show();break;month_show();break;year_show();break;week_show();default:break;void work2()if(EK1)msta1+;if(msta1=8) msta1=0;f300
10、+;switch(msta1)case 0: set_begin();break;Hour_set();break;Minute_set();break;Month_set();break;Day_set();break;Year_set();break;Week_set();break;set_over();break;default:break;void main()程序的初始化Init();while(1)if(DELAY_mode)get_temperature();RDKEY();disp(); 獲得溫度elsewhile(!TF1);TF1=0;TH1=(65536-5000)25
11、6;TL1=(65536-5000)%256;RDKEY();disp1();Initial_DS1302();DS1302_GetTime();if(EK0)mode+;if(mode=3) mode=0;switch(mode)case 0:work0();break;case 1:msta1=0;DELAY_mode=0;point_flag=0;work1();break;case 2:work2();DELAY_mode=0;break;定時(shí)器 0 中斷default:break;void exter0() interrupt 1TH0=(65536-20000)256;送初值TL0
12、=(65536-20000)%256;KEY0, 和KEY0=r0;KEY16.2 包含文件=4;Temp_H=8)tempdf=5;else tempdf=0;a3 = tempint10;a2 = tempint%10;a1 = tempdf;temp16h=(a34)&0 xf0)+(a2&0 x0f);#endif6.3 包含文件4)*10+(ReadValue&0 x0F);ReadValue=DS1302Read(0 x82);Minute=(ReadValue&0 x70)4)*10+(ReadValue&0 x0F);ReadValue=DS1302Read(0 x84);Ho
13、ur=(ReadValue&0 x70)4)*10+(ReadValue&0 x0F);ReadValue=DS1302Read(0 x86);Day=(ReadValue&0 x70)4)*10+(ReadValue&0 x0F);ReadValue=DS1302Read(0 x8a);Week=(ReadValue&0 x70)4)*10+(ReadValue&0 x0F);ReadValue=DS1302Read(0 x88);Month=(ReadValue&0 x70)4)*10+(ReadValue&0 x0F);ReadValue=DS1302Read(0 x8c);Year=(
14、ReadValue&0 x70)4)*10+(ReadValue&0 x0F);void Initial_DS1302()if(TZtime_flag1)8e 單元置為00,將wp寫年,月,日,星期如:08向月份寄存單元寫初始09DS1302Write(0 x8e,0 x00);位寫 02008.06.09.01DS1302Write(0 x8c,Year_buf);DS1302Write(0 x88,Month_buf);月份 06DS1302Write(0 x86,Day_buf);向星期寄存單元寫初始星DS1302Write(0 x8a,Week_buf);期 01寫時(shí)間,如:23:59
15、:55DS1302Write(0 x84,Hour_buf);DS1302Write(0 x82,Minute_buf);DS1302Write(0 x80,Second_buf);DS1302Write(0 x8e,0 x80);禁止寫入TZtime_flag1=0;將允許修改時(shí)間的標(biāo)志位清零,帶下次主程序循環(huán)中,不執(zhí)行該子程序,知道該標(biāo)志位被允許為1 時(shí),才喚醒該子程序void time_show()buf1=Minute10;走時(shí)模塊,顯示時(shí)間buf0=Minute%10;buf3=Hour10;buf2=Hour%10;f500+;if(f500=100)f500=0;FMQ=FMQ;
16、void Hour_set()時(shí)間修改模塊,修改小時(shí)fl_300=0;fh_300=fh_300;f300=0;if(EK3)Hour_buf1+=1;if(Hour_buf1=24)Hour_buf1=0;if(EK2)Hour_buf1-=1;if(Hour_buf1=-1)Hour_buf1=23;buf3=Hour_buf110;buf2=Hour_buf1%10;buf1=Minute_buf110;buf0=Minute_buf1%10;Hour_buf=(buf3&0 x0f)4)+(buf2&0 x0f);將修改后的值轉(zhuǎn)換成 BCD 碼void Minute_set()時(shí)間修改
17、模塊,修改分鐘fh_300=0;if(f300=60)fl_300=fl_300;f300=0;if(EK3)Minute_buf1+=1;if(Minute_buf1=60)Minute_buf1=0;if(EK2)Minute_buf1-=1;if(Minute_buf1=-1)Minute_buf1=59;buf1=Minute_buf110;buf0=Minute_buf1%10;Minute_buf=(buf1&0 x0f)4)+(buf0&0 x0f); 將 修改 后的 值轉(zhuǎn)換 成 BCD 碼void month_show()buf1=Day10;走時(shí)模塊,顯示月份buf0=Day
18、%10;buf3=Month10;buf2=Month%10;FMQ=1;void Month_set()月份修改模塊,修改月fl_300=0;if(f300=60)fh_300=fh_300;f300=0;if(EK3)Month_buf1+=1;if(Month_buf1=13)Month_buf1=0;if(EK2)Month_buf1-=1;if(Month_buf1=-1)Month_buf1=12;buf3=Month_buf110;buf2=Month_buf1%10;buf1=Day_buf110;buf0=Day_buf1%10;Month_buf=(buf3&0 x0f)4
19、)+(buf2&0 x0f);將修改后的值轉(zhuǎn)換成 BCD 碼void Day_set()月份修改模塊,修改日fh_300=0;if(f300=60)fl_300=fl_300;f300=0;if(EK3)Day_buf1+=1;if(Day_buf1=32)Day_buf1=0;if(EK2)Day_buf1-=1;if(Day_buf1=-1)Day_buf1=31;buf1=Day_buf110;buf0=Day_buf1%10;Day_buf=(buf1&0 x0f)4)+(buf0&0 x0f);將修改后的值轉(zhuǎn)換成 BCD 碼void year_show()走時(shí)模塊,顯示年份buf1=
20、Year10;buf0=Year%10;buf3=2;buf2=0;FMQ=1;void Year_set()年份修改模塊,修改年fh_300=0;if(f300=60)fl_300=fl_300;f300=0;if(EK3)Year_buf1+=1;if(Year_buf1=100)Year_buf1=0;if(EK2)Year_buf1-=1;if(Year_buf1=-1)Year_buf1=99;buf1=Year_buf110;buf0=Year_buf1%10;buf3=2;buf2=0;Year_buf=(buf1&0 x0f)4)+(buf0&0 x0f); 將修改后的值轉(zhuǎn)換成
21、BCD 碼void week_show() 走時(shí)模塊,顯示星期buf1=Week10;buf0=Week%10;buf3=16;buf2=16;FMQ=1;void Week_set()星期修改模塊,修改星期fh_300=0;if(f300=60)fl_300=fl_300;f300=0;將修改后的值轉(zhuǎn)換開始進(jìn)行時(shí)間設(shè)置的預(yù)準(zhǔn)備工作將當(dāng)前有關(guān)時(shí)間的左右信息寄存讓數(shù)碼管顯示 ,用以提示用戶已if(EK3)Week_buf1+=1;if(Week_buf1=100)Week_buf1=0;if(EK2)Week_buf1-=1;if(Week_buf1=-1)Week_buf1=99;buf1=W
22、eek_buf110;buf0=Week_buf1%10;buf3=16;buf2=16;Week_buf=(buf1&0 x0f)4)+(buf0&0 x0f);成 BCD 碼void set_begin()Minute_buf1=Minute;到 XXXX_buf1 中Hour_buf1=Hour;Day_buf1=Day;Month_buf1=Month;Week_buf1=Week;Year_buf1=Year;buf0=18;buf1=18;進(jìn)入時(shí)間調(diào)整模式buf2=18;buf3=18;void set_over()可修改 DS1302 芯片內(nèi)的數(shù)據(jù)TZtime_flag1=1;允許修改的標(biāo)志位置1fh_300=0;關(guān)位閃fl_300=0;mode=1;修改時(shí)間完畢,進(jìn)入走時(shí)模塊msta1=0;待下次進(jìn)入修改時(shí)間模塊時(shí),從該模塊的 case0 處開始,因?yàn)樾薷臅r(shí)間要進(jìn)行時(shí)間設(shè)置的預(yù)準(zhǔn)備工作#endif.調(diào)試要點(diǎn)硬件調(diào)試、硬件完成后,檢查電路有無短路、斷路或虛焊;2、電路板檢查正常后,編一段簡(jiǎn)單的顯示程序,檢驗(yàn)顯示電路是否正常;3、若顯示電路正常后,則可開
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024消防工程勞務(wù)分包及消防安全培訓(xùn)與考核合同3篇
- 2024年香港地區(qū)標(biāo)準(zhǔn)建筑工程協(xié)議范本細(xì)則版
- 成都體育學(xué)院《影視剪輯》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年酒店業(yè)標(biāo)準(zhǔn)反擔(dān)保抵押協(xié)議模板版B版
- 2025年度旅行社品牌授權(quán)與區(qū)域代理合作協(xié)議5篇
- 2025年雙丙酮丙烯酰胺合作協(xié)議書
- 2025版集裝箱運(yùn)輸合同標(biāo)準(zhǔn)與運(yùn)輸路徑規(guī)劃2篇
- 二零二五年度供應(yīng)鏈融資合同利息定價(jià)及結(jié)算方式范本3篇
- 二零二五年度企業(yè)合伙人盈利分成及權(quán)益保障協(xié)議3篇
- 2024年路燈照明工程設(shè)計(jì)與施工質(zhì)量控制合同范本3篇
- 壓鑄機(jī)作業(yè)流程優(yōu)化案例分析課件
- 教師課堂提問的有效性觀察量表
- 手寫數(shù)字識(shí)別
- 中醫(yī)臨床路徑眼科
- 甲狀腺細(xì)針穿刺細(xì)胞學(xué)檢查
- 一年級(jí)上數(shù)學(xué)教案解決問題復(fù)習(xí)課_人教版
- 行進(jìn)間單手低手上籃教案
- 簡(jiǎn)約中國(guó)風(fēng)蘭花信紙背景模板
- 安利培訓(xùn)體系介紹
- 推薦-挖掘機(jī)檢驗(yàn)報(bào)告精品
- 排洪溝工程設(shè)計(jì)說明
評(píng)論
0/150
提交評(píng)論