




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PAGE1-大連理工大學(xué)本科設(shè)計(jì)報(bào)告題目:單總線高精度溫度采集系統(tǒng)課程名稱:單片機(jī)綜合設(shè)計(jì)實(shí)驗(yàn)學(xué)院(系):信息與通信工程學(xué)院專業(yè):電子信息工程班級:電子學(xué)號:學(xué)生姓名:成績:2016年5月5日一.設(shè)計(jì)要求啟動DS18B20進(jìn)行12位高精度環(huán)境溫度采集利用12864LCD屏/數(shù)碼管顯示數(shù)據(jù)具有溫度上限聲光報(bào)警器可以通過鍵盤設(shè)定報(bào)警上限值(選)二.設(shè)計(jì)分析及系統(tǒng)方案設(shè)計(jì)通過DS18B20進(jìn)行小數(shù)12位溫度轉(zhuǎn)換、采集,通過單片機(jī)讀取DS18B20采集到的12位溫度值進(jìn)行二進(jìn)制到十六進(jìn)制的轉(zhuǎn)換,利用ZLG7290進(jìn)行八位數(shù)碼管顯示;利用鍵盤進(jìn)入中斷來設(shè)定報(bào)警上限,當(dāng)溫度高于上限時進(jìn)入報(bào)警子程序。利用SW1進(jìn)入中斷來查看當(dāng)前設(shè)置的溫度報(bào)警上下限值,利用ZLG7290和數(shù)碼管來顯示。主程序不斷循環(huán)采集溫度比較,并可隨時進(jìn)入中斷來修改溫度上下限和查看溫度值。三.系統(tǒng)電路圖ZLG7290BZLG7290BSDASCL/RST/INTI2C總線VCC上拉電阻5K×28位數(shù)碼管BUZZVCCB5區(qū)855010K保護(hù)電阻47歐103DS18B201GND3VDD2DQGNDVDD5V4.7KVDD5VDQB4區(qū)AT89C51P1.0P1.1P1.7/INT0(P3.2)P3.3P3.4SW1P1.3 CLR C CJNE A,28H,rel ;此處報(bào)警溫度為30度rel: JC NET LCALL BUZZER ;大于等于時蜂鳴器報(bào)警 ;閃爍 MOV 28H,#70H ;閃爍命令字 MOV 29H,#7FH ;閃爍命令字 MOV R7,#02H ;設(shè)定數(shù)據(jù)個數(shù) MOV R0,#28H ;設(shè)置源數(shù)據(jù)首地址 MOV R2,#07H ;設(shè)置外圍器件內(nèi)部寄存器首地址 MOV R3,#WSLA_7290 ;設(shè)定外圍器件地址 LCALL WRNBYT ;調(diào)用顯示子程序 LCALL DELAY LJMP NEXTT ;設(shè)定溫度上限SETTMP: SETB EX0 ;7290復(fù)位 CLR P1.7 LCALL DELAY SETB P1.7 ;顯示設(shè)定內(nèi)容 MOV 27H,#0B6H ;S MOV 26H,#9EH ;E MOV 25H,#1FH ;T. MOV R7,#03H MOV R0,#25H MOV R2,#15H MOV R3,#WSLA_7290 LCALL WRNBYT LCALL DELAY SJMPNEXTTNET: MOV 28H,#70H ;不能閃爍 MOV 29H,#00H MOV R7,#02H MOV R0,#28H MOV R2,#07H MOV R3,#WSLA_7290 LCALL WRNBYT LCALL DELAYNEXTT: CALL DELAY SJMP MODEGET_TEMPER: SETB DQ ;定時入口BCD: LCALL INIT_1820 JB FLAG1,S22 LJMP BCD ;若ds18b20不存在則返回S22: LCALL DELAY1 MOV A,#0CCH ;跳過rom匹配0cch LCALL WRITE_1820 MOV A,#44H ;發(fā)出溫度轉(zhuǎn)換命令 LCALL WRITE_1820 LCALL DELAYCBA: LCALL INIT_1820 JB FLAG1,ABC LJMP CBAABC: LCALL DELAY1 MOV A,#0CCH ;跳過rom匹配 LCALL WRITE_1820 MOV A,#0BEH ;發(fā)出讀溫度命令 LCALL WRITE_1820 LCALL READ_18200 RETWRITE_1820: ;寫ds18b20程序 MOV R2,#8 CLR CWR1: CLR DQ MOV R3,#6 ;延時24us DJNZ R3,$ RRC A MOV DQ,C MOV R3,#23 ;延時60us DJNZ R3,$ SETB DQ NOP DJNZ R2,WR1 SETB DQ RETREAD_18200: ;從1820中讀出兩個字節(jié)溫度數(shù)據(jù) PUSH 01H MOV R4,#2 MOV R1,#36HRE00: MOV R2,#8RE01: CLR C SETB DQ NOP CLR DQ NOP NOP SETB DQ MOV R3,#2 DJNZ R3,$ MOV C,DQ MOV R3,#23H DJNZ R3,$ RRC A DJNZ R2,RE01 MOV @R1,A DEC R1 DJNZ R4,RE00 POP 01H RETU8TEMPER_COV: ;將讀出的數(shù)據(jù)轉(zhuǎn)換 PUSH DPH PUSH DPL PUSH 02H MOV A,#0F0H ANL A,TEMPER_L ;舍去小數(shù)點(diǎn)后的四位 SWAP A MOV TEMPER_NUM,A MOV A,TEMPER_H ANL A,#07H SWAP A ADD A,TEMPER_NUM MOV TEMPER,A ;轉(zhuǎn)換成十進(jìn)制數(shù)顯示 MOV B,#10 DIV AB MOV 30H,B ;個位 MOV B,#10 DIV AB MOV 31H,B ;十位 ANL A,#0FH ;百位 SWAP A ADD A,B MOV TEMPER_BCD,A LCALL CF2 ;拆分查表 MOV 25H,R3 MOV 26H,R4 MOV A,30H ANL A,#0FH LCALL CF MOV 24H,R3 ;處理四位小數(shù)位數(shù)據(jù) MOV A,TEMPER_L ANL A,#0FH ;取低四位數(shù)據(jù) MOV B,#02H MUL AB ;字節(jié)轉(zhuǎn)為字 MOV DPTR,#NUMSEG MOVC A,@A+DPTR MOV TEMPER_BCD,A LCALL CF2 MOV 22H,R3 MOV 23H,R4 MOV A,TEMPER_L ANL A,#0FH MOV B,#02H MUL AB INC A MOVC A,@A+DPTR MOV TEMPER_BCD,A LCALL CF2 MOV 20H,R3 MOV 21H,R4 POP 02H POP DPL POP DPH RET;小數(shù)部分查表NUMSEG: DW 0000H,0625H,1250H,1875H,2500H,3125H,3750H,4375H DW 5000H,5625H,6250H,6875H,7500H,8125H,8750H,9375H ;;拆分顯示整數(shù)子程序CF: PUSH 02H PUSH DPH PUSH DPL MOV DPTR,#LEDSEG MOV R2,TEMPER_BCD ANL A,#0FH MOVC A,@A+DPTR ;查表得字形碼 MOV R3,A MOV A,R2 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV R4,A INC R3 ;加上小數(shù)點(diǎn) POP DPL POP DPH POP 02H RET ;;拆分顯示小數(shù)子程序CF2: PUSH 02H PUSH DPH PUSH DPL PUSH ACC MOV DPTR,#LEDSEG MOV R2,TEMPER_BCD MOV A,R2 ANL A,#0FH MOVC A,@A+DPTR MOV R3,A MOV A,R2 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV R4,A ;加上小數(shù)點(diǎn) POP ACC POP DPL POP DPH POP 02H RET ;;led字型碼LEDSEG: DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E4H DB 0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH; INIT_1820: SETB DQ NOP CLR DQ MOV R0,#80HTSR1: DJNZ R0,TSR1 ;延時300us SETB DQ MOV R0,#25H ;96usTSR2: DJNZ R0,TSR2 JNB DQ,TSR3 LJMP TSR4 ;延時TSR3: SETB FLAG1 ;致標(biāo)志位 LJMP TSR5 ;ds18b20存在TSR4: CLR FLAG1 ;清標(biāo)志位 LJMP TSR7 ;ds18b20不存在TSR5: MOV R0,#06BH ;延時200usTSR6: DJNZ R0,TSR6TSR7: SETB DQ RETDELAY1: MOV R7,#20H ;80us延時 DJNZ R7,$ RET;蜂鳴器驅(qū)動子程序BUZZER: PUSH 07H MOV R7,#00H MOV TL0,#33H ;設(shè)置定時0.5us初值 MOV TH0,#0FEH SETB TR0 ;啟動t0WAIT: JNB TF0,$ CLR TF0 MOV TL0,#33H MOV TH0,#0FEH CPL P1.2 DJNZ R7,WAIT CLR TR0 SETB P1.2 POP 07H RET;;外部中斷服務(wù)程序INT_7290: PUSH 00H PUSH 01H PUSH 02H PUSH 03H PUSH 04H PUSH 07H PUSH ACC PUSH PSW SJMP RD1 RD1: JB P3.2,$ ;以查詢方式等待下一次按鍵操作 SWAP A LCALL RDKEY CJNE A,#0AH,WAITT ;容錯功能調(diào)整WAITT: JNC RD1 MOV TEMPER_BCD,A LCALL CF2 MOV B,#0AH MUL AB MOV R5,A MOV 23H,R3 MOV R7,#01H MOV R0,#23H MOV R2,#13H MOV R3,#WSLA_7290 LCALL WRNBYTKEY2: JB P3.2,$ ;以查詢方式等待下一次按鍵操作 LCALL RDKEY CJNE A,#0AH,WAITT2WAITT2: JNC KEY2 MOV TEMPER_BCD,A LCALL CF2 MOV A,R5 ADD A,TEMPER_BCD MOV R5,A MOV 22H,R3 MOV 21H,#9CH ;C MOV R7,#02H MOV R0,#21H MOV R2,#11H MOV R3,#WSLA_7290 LCALL WRNBYT ;確定鍵COMF: JB P3.2,$ ;等待確認(rèn)鍵 LCALL RDKEY CJNE A,#0FH,COMF MOV 28H,R5 ;上限值放入28h中 DOWN: ;7290復(fù)位 CLR P1.7 LCALL DELAY SETB P1.7 CLR IE0 ;必須清標(biāo)志 POP PSW POP ACC POP 07H POP 04H POP 03H POP 02H POP 00H RETI;;讀取鍵值子程序(鍵值保存在A中)RDKEY: MOV R0,#1FH MOV R7,#01H MOV R2,#01H MOV R3,#WSLA_7290 MOV R4,#RSLA_7290 LCALL RDADD MOV A,1FH DEC A RET;;延時子程序DELAY: PUSH 00H ;延時子程序 PUSH 01H MOV R1,#00LP: MOV R1,#00H DJNZ R1,$ DJNZ R0,LP POP 01H POP 00H RET;(I2C子程序省略)九.系統(tǒng)調(diào)試運(yùn)行結(jié)果說明、分析所出現(xiàn)得問題,設(shè)計(jì)體會與建議硬件使用ZLG51單片機(jī)開發(fā)平臺,軟件使用KEil2軟件進(jìn)行程序的編寫編譯以及調(diào)試。運(yùn)行結(jié)果:能夠?qū)崿F(xiàn)當(dāng)前環(huán)境溫度的采集以及分為整數(shù)部分和小數(shù)部分的顯示,設(shè)定溫度上限,超過設(shè)定上限溫度進(jìn)行蜂鳴器報(bào)警,數(shù)碼管同時閃爍,溫度低于設(shè)定值立刻停止閃爍和報(bào)警。能夠通過撥碼控制模式切換,切換到設(shè)定上限溫度模式,通過按鍵輸入上限溫度值改變當(dāng)前上限溫度,能夠糾錯,輸入10以上的數(shù)字時不顯示,按下確定鍵時確定溫度上
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度離婚同撫養(yǎng)協(xié)議及監(jiān)護(hù)權(quán)劃分
- 二零二五年度鋼材電商平臺開發(fā)與運(yùn)營合同
- 2025年度高新技術(shù)企業(yè)離退休人員技術(shù)指導(dǎo)合同
- 2025年度金融實(shí)習(xí)生勞動合同規(guī)范文本
- 二零二五年度公司股權(quán)轉(zhuǎn)讓與品牌授權(quán)合同
- 二零二五年度個人房產(chǎn)租賃及維修保障協(xié)議
- 浙江國企招聘2024臺州市建設(shè)市政工程檢測中心有限公司招聘1名高層次人才筆試參考題庫附帶答案詳解
- 熱軋產(chǎn)品知識培訓(xùn)課件
- 匠心筑夢勇闖生涯-大學(xué)生職業(yè)生涯規(guī)劃知到智慧樹章節(jié)測試課后答案2024年秋深圳職業(yè)技術(shù)大學(xué)
- 零售市場知識培訓(xùn)課件
- 2025江蘇蘇州高新區(qū)獅山商務(wù)創(chuàng)新區(qū)下屬國企業(yè)招聘9人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 《蒙牛集團(tuán)實(shí)施財(cái)務(wù)共享過程中存在的問題及優(yōu)化建議探析》8800字(論文)
- 《高壓直流輸電換流閥用金屬管狀電阻器技術(shù)規(guī)范(征求意見稿)》
- 科研方法講座模板
- 投資學(xué)基礎(chǔ)(第二版)教案全套 李博
- 天津市南開區(qū)2025屆高三下學(xué)期一??荚囉⒄Z試題含解析
- 專職安全員述職報(bào)告
- 《科學(xué)計(jì)算語言Julia及MWORKS實(shí)踐》全套教學(xué)課件
- 同等學(xué)力人員申請碩士學(xué)位英語試卷與參考答案(2024年)
- 警民懇談會民警發(fā)言稿
- 道路信號燈維護(hù)服務(wù)方案
評論
0/150
提交評論