51單片機溫度控制程序_第1頁
51單片機溫度控制程序_第2頁
51單片機溫度控制程序_第3頁
51單片機溫度控制程序_第4頁
51單片機溫度控制程序_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、51單片機溫度控制程序51單片機溫度控制程序(續(xù))功能說明:本裝置的功能是對溫度進(jìn)行實時監(jiān)測與控制。由 溫度傳感器DS18B20對溫度進(jìn)行采樣和轉(zhuǎn)換成數(shù)字信號送入單片機,并與設(shè)定的報警溫度 上、下限值進(jìn)行比較,信息通過LCD顯示出來。如實時溫度超過設(shè)定的上、下限值,一方 面由LC51單片機溫度控制程序(續(xù))功能說明:本裝置的功能是對溫度進(jìn)行實時監(jiān)測與控制。由溫度傳感器DS18B20對溫度進(jìn)行采樣和轉(zhuǎn) 換成數(shù)字信號送入單片機,并與設(shè)定的報警溫度上、下限值進(jìn)行比較,信息通過LCD顯示 出來。如實時溫度超過設(shè)定的上、下限值,一方面由LCD顯示信息,并發(fā)出警報聲;另一 方面自動控制繼電器(Relay)

2、開接通或斷開,從而控制加熱源的開與斷,達(dá)到對溫度進(jìn)行 實時控制的目的。程序:LCD2402.ASM01 ; 02 ;溫度值存放單元03TEMP_ZHEQU24H;實時溫度值存放單元04TEMPLEQU25H;低溫度值存放單元05TEMPHEQU26H;高溫度值存放單元06TEMP_THEQU27H;高溫報警值存放單元07TEMP_TLEQU28H;低溫報警值存放單元08TEMPHCEQU29H;存十位數(shù)BCD碼09TEMPLCEQU2AH;存?zhèn)€位數(shù)BCD碼10 ;11按鍵輸入引腳定義K1EQU P2.1K2EQU P2.2K3 EQU P2.3K4 EQU P2.4,SPK EQU P3.4;

3、蜂鳴器引腳RELAY EQU P2.0;繼電器引腳X EQU 2FH ;LCD地址變量,;LCD控制引腳RS EQU P3.5RW EQU P3.6E EQU P3.7,F(xiàn)LAG EQU 20H.0 ;DS18B20 是否存在標(biāo)記KEY_UD EQU 20H.1;設(shè)定 KEY 的 UP 與 DOWN 標(biāo)記DQ EQU P2.5;= = = = = = = = = = = = =主程序= = = = = = = = = = = = = =MAIN:ACALL SET_LCD;LCD初始化設(shè)置子程序14151617181920212223242526272829303132333435ACALL

4、WR_THL;將報警上下線寫入暫存寄存器子程序36 JNB FLAGTOOP1 ;DS1820 不存在轉(zhuǎn)移 TOOP1 處ACALLMEU_OK;調(diào)用顯示OK信息子程序ACALLRE_THL;把EEROM里溫度報警值拷貝回暫存器ACALLTEMP_BJ;顯示溫度標(biāo)記C”JMP TOOP2TOOP1: ACALL MEU_ERROR ;顯示ERROR信息ACALL TEMP_BJ;顯示溫度標(biāo)記JMP $;等待;TOOP2:ACALL RE_TEMP;調(diào)用讀取溫度數(shù)據(jù)子程序ACALL SET_DATA ;調(diào)用處理顯示溫度數(shù)據(jù)子程序ACALL TEMP_COMP ;實際溫度值與標(biāo)記溫度值比較子程序A

5、CALL P_KEY;調(diào)用按鍵掃描子程序SJMP TOOP2;循環(huán)51;讀取溫度數(shù)據(jù)子程序一RE_TEMP:ACALL RESET_1820 ;18B20 復(fù)位子程序JNB FLAGTOOP1 ;DS1820 不存在MOV A,#0CCH;跳過 ROM 匹配ACALL WRITE_1820 ;寫入子程序MOV A,#44H;發(fā)出溫度轉(zhuǎn)換命令A(yù)CALL WRITE_1820 ;調(diào)寫入子程序ACALL RESET_1820 ;調(diào)復(fù)位子程序MOV A,#0CCH;跳過 ROM 匹配ACALL WRITE_1820 ;寫入子程序MOV A,#0BEH;發(fā)出讀溫度命令A(yù)CALL WRITE_1820 ;

6、寫入子程序ACALL READ_1820;調(diào)用讀取子程序RET溫度數(shù)據(jù)處理顯示子程序SET_DATA:ACALL CONV_TEMP ;處理溫度BCD碼子程序ACALL DISP_BCD;顯示區(qū)BCD碼溫度值刷新子程序ACALL CONV ;LCD顯示子程序RET按鍵鍵掃描子程序P_KEY:;按鍵K1處理JB K1, PK1 ;K1鍵未按,轉(zhuǎn)到PK1處ACALL SPK_BZ ;K1鍵按下,一聲鳴響JNB K1,$;等按鍵放開59606162636465666768 ;69707172737475;7677787980MOV DPTR,#M_ALAX1 ;存 M_ALAX1 表81MOV A,

7、#182ACALL LCD_PRINT ;顯示字符83ACALL LOOK_ALARM ;顯示信息區(qū)子程序84JB K3,$;等待K3按下85ACALL SPK_BZ;一聲鳴響86JMP PK2;轉(zhuǎn)到標(biāo)號PK2處87PK1:;按鍵K2處理88JB K2, PK3;K2鍵未按,轉(zhuǎn)到PK3處89ACALL SPKBZ;K2鍵按下,一聲鳴響9091JNBMOVK2,$;等按鍵放開DPTR, #TA1 ;存#TA1 表92MOVA,#193ACALLLCD PRINT;顯示字符94ACALLSET ALARM;設(shè)定報警值TH、TL95ACALLWR THL;將設(shè)定的TH,TL值寫入DS18B20內(nèi)96

8、ACALLWRITE E2;調(diào)用報警值拷貝EEROM子程序97PK2:98ACALLMEU OK;顯示”O(jiān)K”信息子程序99ACALLTEMP BJ;顯示溫度標(biāo)記子程序100 PK3:101 RET102103104105106107108109110111112113114115116117118119120121122123124;菜單表TA1:DB RESET ALERT CODE設(shè)定報警值TH、TL子程序SET_ALARM:ACALL LOOK_ALARM ;調(diào)用顯示信息區(qū)子程序A0: JBK1,A2;按下K1(查看鍵),程序向下運行ACALL SPK_BZ;蜂鳴器響一聲JNBK1,$

9、;等放開CPL20H.1;UP/DOWN標(biāo)記反向A2: JB20H.1,A3;20H.1=1,UP轉(zhuǎn)移到 A3。JMPA8;20H.1=0,DOWN,轉(zhuǎn)移到 A8;TH值調(diào)整(增加)A3: JB K2, A5;按下K2(設(shè)定鍵),程序向下運行ACALL SPK_BZ;蜂鳴器響一聲INC TEMP_TH;TH值調(diào)整(增加)MOV A,TEMP_TH ;TH 值送入 ACJNE A,#120,A4 ;TH值增到120,程序向下運行MOV TEMP_TH,#0 ;TH 值清 0126ACALL DELAY;調(diào)用延時程序127JMPA3;循環(huán)128;129 ;TL值調(diào)整(增加)130A5: JBK3,

10、A7;按下K3(TL值設(shè)定鍵)程序向下運行131ACALL SPK_BZ;蜂鳴器響一聲132INCTEMP_TL ;TL 值增加 1133MOVA, TEMP_TL ;TL 值送入 A134CJNEA,#99,A6;比較,若A=99,程序向下運行135MOVTEMP_TL,#00H ;TL 值清 0136A6: ACALL LOOK_ALARM ;調(diào)用顯示信息區(qū)子程序137MOVR5, #10138ACALL DELAY;調(diào)用延時程序139JMPA5;程序轉(zhuǎn)移到A5,循環(huán);確定調(diào)整OKA7: JB K4, A0 ;按下K4(調(diào)整確定鍵),程序向下運行ACALL SPK_BZ;蜂鳴器響一聲144

11、JNB K4, $;等放開145RET;程序返回146 ;147 ;TH值調(diào)整(減少)148 A8: JB K2, A10;按下K2(設(shè)定鍵),程序向下運行149150151152153154155156157158159160161162163164165166167168169ACALL SPK_BZ;蜂鳴器響一聲DEC TEMP_TH;TH 值減 1MOV A,TEMP_TH;TH 值送入 ACJNE A,#0FFH,A9 ;比較,若A=0FF程序向下運行JMP A12;轉(zhuǎn)移到 A12A9: ACALL LOOK_ALARM ;調(diào)用顯示信息區(qū)子程序MOV R5, #10ACALL DEL

12、AY;調(diào)用延時子程序JMP A0;轉(zhuǎn)移到A12;TL值調(diào)整(減少)A10: JB K3, A13ACALL SPK BZDECMOVCJNEJMPTEMPTLA,TEMP_TL;按K3(TL值設(shè)定鍵),程序向下運行;蜂鳴器響一聲;TL值減1;TH值送入AA,#0FFH,A11A12;比較,若A=0FF程序向下運行;轉(zhuǎn)移到A12A11: ACALL LOOK_ALARM ;調(diào)用顯示信息區(qū)子程序MOV R5, #10ACALL DELAY ;調(diào)用延時子程序JMP A0;轉(zhuǎn)移到A0170171172173174175176177178179180181182183184185186187188189

13、190191JMP A3;轉(zhuǎn)移到A3 , TH值調(diào)整(增加)A13: JMP A7 ;轉(zhuǎn)移到A7,確定調(diào)整OKRET;子程序返回顯示信息區(qū)子程序LOOK_ALARM:MOV DPTR,#M_ALAX2 ;存表MOV A,#2;顯示在第二行ACALL LCD_PRINT ;調(diào)用顯示字符子程序MOV A,#0C6H;顯示起始地址為第二行第7位ACALL TEMP_BJ1;調(diào)用顯示溫度標(biāo)記子程序MOV A,TEMP_TH ;加載 TH 數(shù)據(jù)MOV X,#3;設(shè)置位置ACALL SHOW_LINE2H ;顯示數(shù)據(jù);MOV A,#0CEH;設(shè)定顯示起始地址為第二行第15位ACALL TEMP_BJ1;調(diào)

14、用顯示溫度標(biāo)記子程序MOV A,TEMP_TL ;加載 TL 數(shù)據(jù)MOV X,#12;設(shè)置位置ACALL SHOW_LINE2L ;顯示數(shù)據(jù)RET192193194195196197198199200201202203205206207208209210211212213214M_ALAX1:DB LOOK ALERT CODE,0M_ALAX2:DB TH: TL: ,0,;顯示溫度標(biāo)記子程序TEMP_BJ1:ACALL WR_COMM ;調(diào)用寫指令子程序MOVDPTR,#BJ2;存代碼表MOVR1,#0;使指針指到表中第一個碼MOVR0,#2;取碼次數(shù)B0: MOVA,R1;A為0MOVC

15、 A,A+DPTR ;讀取碼ACALL WR_DATA ;調(diào)用寫數(shù)據(jù)子程序INC R1 ;R1 值加 1DJNZ R0,B0;判斷是否將代碼讀取完?RETBJ2:;代碼表DB 00H,C”在LCD的第二行顯示高溫數(shù)字SHOW_LINE2H:MOV B,#100;設(shè)置被除數(shù),B為百位數(shù)DIV AB;除法運算,結(jié)果A存商數(shù),B存余數(shù)ADD A,#30H;低半字節(jié)加30得到ASCII碼(轉(zhuǎn)換為字符)PUSH B;B放入堆棧暫存起來MOV B,X;設(shè)置LCD顯示的位置ACALL LCDP2;由LCD顯示出來POP B ;B由堆棧取出來MOV A,#0AH ;A 賦值 10XCH A,B;A、B數(shù)據(jù)互換,B為十位數(shù)DIV AB;除法運算,結(jié)果A存商數(shù),B存余數(shù)ADD A,#30H;轉(zhuǎn)換為字符INC X;LCD顯示位位置

溫馨提示

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

最新文檔

評論

0/150

提交評論