基于單片機的數(shù)字溫度計的設計任務書.doc

上傳人:good****022 文檔編號:116544560 上傳時間:2022-07-05 格式:DOC 頁數(shù):23 大?。?92KB
收藏 版權(quán)申訴 舉報 下載
基于單片機的數(shù)字溫度計的設計任務書.doc_第1頁
第1頁 / 共23頁
基于單片機的數(shù)字溫度計的設計任務書.doc_第2頁
第2頁 / 共23頁
基于單片機的數(shù)字溫度計的設計任務書.doc_第3頁
第3頁 / 共23頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于單片機的數(shù)字溫度計的設計任務書.doc》由會員分享,可在線閱讀,更多相關《基于單片機的數(shù)字溫度計的設計任務書.doc(23頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、山東建筑大學信息與電氣工程學院課程設計說明書基于單片機的數(shù)字溫度計的設計任務書1 設計目的基于單片機的數(shù)字溫度計的設計,通過此設計深入了解單片機的原理及應用,鞏固所學知識,提高對知識的綜合應用能力。2 設計要求數(shù)字式溫度計要求測溫范圍為55125C,精度誤差在0.1C以內(nèi),LED數(shù)碼管直讀顯示。選擇DS18B20作為本系統(tǒng)的溫度傳感器,選擇單片機AT89C51為測控系統(tǒng)的核心來完成數(shù)據(jù)采集、處理、顯示、報警等功能。 3 設計內(nèi)容3.1方案設計根據(jù)系統(tǒng)的設計要求,選擇DS18B20作為本系統(tǒng)的溫度傳感器,選擇單片機AT89C51為測控系統(tǒng)的核心來完成數(shù)據(jù)采集、處理、顯示、報警等功能。選用數(shù)字溫度

2、傳感器DS18B20,省卻了采樣/保持電路、運放、數(shù)/模轉(zhuǎn)換電路以及進行長距離傳輸時的串/并轉(zhuǎn)換電路,簡化了電路,縮短了系統(tǒng)的工作時間,降低了系統(tǒng)的硬件成本。該系統(tǒng)的總體設計思路如下:溫度傳感器DS18B20把所測得的溫度發(fā)送到AT89C51單片機上,經(jīng)過51單片機處理,將把溫度在顯示電路上顯示,本系統(tǒng)顯示器用4位共陽LED數(shù)碼管以動態(tài)掃描法實現(xiàn)。檢測范圍-55攝氏度到125攝氏度。1、主控制器AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多

3、功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。2、顯示電路顯示電路采用LED數(shù)碼管,從P0口輸出段碼,列掃描用P3.0P3.3口來實現(xiàn)。3、溫度傳感器工作原理DS18B20溫度傳感器是美國DALLAS半導體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)912位的數(shù)字值讀數(shù)方式。DS18B20 的性能特點如下:獨特的單線接口方式僅需要一個端口引腳進行通信;多個DS18B20可以并聯(lián)在唯一的三線上,實現(xiàn)多點組網(wǎng)功能;無需

4、外部器件;可通過數(shù)據(jù)線供電,電壓范圍:3.05.5V;測溫范圍55125,在-10+85時精度為0.5零待機功耗溫度以9或12位數(shù)字量讀出;用戶可定義的非易失性溫度報警設置報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作DS18B20的測溫原理如下圖所示:圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入,圖中還隱含著計數(shù)門,當計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進行計數(shù)

5、,進而完成溫度測量.計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55 所對應的基數(shù)分別置入減法計數(shù)器1和溫度寄存器中,減法計數(shù)器1和溫度寄存器被預置在-55 所對應的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當減法計數(shù)器1的預置值減到0時溫度寄存器的值將加1,減法計數(shù)器 1的預置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫圖2中的斜率累加器用于補償和修正測溫過程中的非線性其輸出用,于修正減法計數(shù)器的預置值,只要計數(shù)門仍未關閉就重復

6、上述過程,直至溫度寄存器值達到被測溫度值,這就是DS18B20的測溫原理。另外,由于DS18B20單線通信功能是分時完成的,他有嚴格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作必須按協(xié)議進行。操作協(xié)議為:初始化DS18B20(發(fā)復位脈沖)發(fā)ROM功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。在正常測溫情況下,DS1820的測溫分辨力為0.5,可采用下述方法獲得高分辨率的溫度測量結(jié)果:首先用DS1820提供的讀暫存器指令(BEH)讀出以0.5為分辨率的溫度測量結(jié)果,然后切去測量結(jié)果中的最低有效位(LSB),得到所測實際溫度的整數(shù)部分Tz,然后再用BEH指令取計數(shù)器1的計數(shù)剩余值Cs和每度計

7、數(shù)值CD??紤]到DS1820測量溫度的整數(shù)部分以0.25、0.75為進位界限的關系,實際溫度Ts可用下式計算: Ts=(Tz-0.25)+(CD-Cs)/CD 3.2器件選型主要的元器件型號如下:單片機芯片:89C51溫度傳感器:DS18B20晶振:12MHZ電源:5V電容:30pF,10uF三極管:8550(PNP)電阻、導線等若干3.3系統(tǒng)設計系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計算溫度子程序,報警子程序和顯示數(shù)據(jù)刷新子程序等。1、主程序主程序的主要功能是負責溫度的實時顯示,讀出并處理DS18B20的測量溫度值。溫度測量每1s進行一次。主程序流程圖如下圖所示:初始化

8、顯示調(diào)用子程序1s到?初次上電?讀出溫度值溫度計算處理顯示數(shù)據(jù)刷新發(fā)溫度轉(zhuǎn)換開始命令 2、讀出溫度子程序讀出溫度子程的主要功能是讀出RAM中的9字節(jié)。在讀出時須進行CRC校驗,校驗有錯時不能進行溫度數(shù)據(jù)的改寫。讀出溫度子程序流程圖如下圖所示:Y發(fā)DS18B20復位命令發(fā)跳過ROM命令發(fā)讀取溫度命令讀取操作,CRC校驗9字節(jié)完?結(jié)束CRC校驗正確?移入溫度暫存器NYN3、溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令。當采用12位分辨率時,轉(zhuǎn)換時間約為750 ms。在本程序設計中,采用1s顯示程序延時法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如下圖所示:發(fā)DS18B20復位命令發(fā)跳

9、過ROM命令發(fā)溫度轉(zhuǎn)換開始命令結(jié)束 4、 計算溫度子程序計算溫度子程序?qū)AM中讀取的值進行BCD碼的抓換運算,并進行溫度值正負的判斷。其流程圖如下圖所示:開始溫度零下?溫度值取補碼置“”標志計算小數(shù)位溫度BCD值計算整數(shù)位溫度BCD值結(jié)束置“+”標志YN5、 顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)進行刷新操作,當最高數(shù)據(jù)顯示位為0時,將符號顯示位移入下一位。顯示數(shù)據(jù)刷新子程序流程圖如下圖所示:溫度數(shù)據(jù)移入顯示寄存器十位數(shù)0?數(shù)0?百位數(shù)0?百位數(shù)顯示數(shù)據(jù)(不顯示符號)十位數(shù)顯示符號百位數(shù)不顯示結(jié)束Y NYN 3.4匯編程序;=;DS18B20溫度計;采用4位LED

10、共陽顯示器顯示測溫值,顯示精度0.1,測溫范圍-55+125;用AT89C51單片機,12MHz晶振;=常數(shù)定義=TIMELEQU 0E0H ;20ms,定時器0時間常數(shù)TIMEHEQU 0B1HTEMPHEAD EQU 36H;=工作內(nèi)存定義=BITST DATA 20HTIME1SOK BIT BITST.1TEMPONEOKBIT BITST.2TEMPL DATA 26HTEMPH DATA 27HTEMPHC DATA 28HTEMPLC DATA 29H;= 引腳定義=TEMPDIN BIT P3.7;= 中斷向量區(qū)=ORG 0000HLJMP STARTORG 00BHLJMP

11、T0IT;=系統(tǒng)初始化=ORG100HSTART: MOVSP,#60HCLSMEM: MOV R0,#20HMOV R1,#60HCLSMEM1:MOV R0,#00HINC R0DJNZ R1,CLSMEM1MOV TMOD,#00100001B ;定時器0工作方式1(16BIT)MOVTH0,#TIMELMOV TL0,#TIMEH ;20msSJMPINITERROR:NOPLJMP STARTNOPINIT:NOPSETB ET0SETB TR0SETBEAMOV PSW,#00HCLR TEMPONEOKLJMP MAIN;= 定時器0中斷服務程序=T0IT:PUSH PSWMOV

12、 PSW,#10HMOV TH0,#TIMEHMOV TL0,#TIMELINC R7CJNE R7,#32H,T0IT1MOV R7,#00HSETB TIME1SOK ;1s定時到標志T0IT1:POP PSWRETI;= 主程序=MAIN:LCALL DISP1 ;調(diào)用顯示子程序JNB TIME1SOK,MAINCLR TIME1SOK ;測溫每1s一次JNB TEMPONEOK,MAIN2 ;上電時先溫度轉(zhuǎn)換一次LCALL READTEMP1;讀出溫度值子程序LCALL CONVTEMP ;溫度BCD碼計算處理子程序LCALL DISPBCD ;顯示區(qū)BCD碼溫度值刷新子程序LCALL

13、 DISP1 ;消閃爍,顯示一次MAIN2: LCALLREADTEMP ;溫度轉(zhuǎn)換開始SETB TEMPONEOKLJMP MAIN;= 子程序區(qū)=;RESET DS18B20;=INITDS1820:SETB TEMPDINNOPNOPCLR TEMPDINMOV R6,#0A0H ;DELAY 480usDJNZ R6,$MOV R6,#0A0HDJNZ R6,$SETB TEMPDINMOV R6,#32H ;DELAY 70usDJNZ R6,$MOVR6,#3CHLOOP1820:MOV C,TEMPDINJC INITDS1820OUTDJNZ R6,LOOP1820MOV R6

14、,#064HDJNZ R6,$SJMP INITDS1820RETINITDS1820OUT:SETB TEMPDINRET;= 讀DS18B20的程序,從DS18B20中讀出一個字節(jié)的數(shù)據(jù)=READDS1820:MOV R7,#08HSETB TEMPDINNOPNOPREADDS1820LOOP:CLR TEMPDINNOPNOPNOPSETB TEMPDINMOV R6,#07H ;DELAY 15usDJNZ R6,$MOV C,TEMPDINMOV R6,#3CH ;DELAY 120usDJNZ R6,$RRC ASETB TEMPDINDJNZ R7,READDS1820LOOP

15、MOV R6,#3CH ;DELAY 120 usDJNZ R6,$RET;= 寫DS18B20的程序,從DS18B20中寫一個字節(jié)的數(shù)據(jù)=WRITEDS1820:MOV R7,#08HSETB TEMPDINNOPNOPWRITEDS1820LOP:CLR TEMPDINMOV R6,#07H ;DELAY 15usDJNZ R6,$RRC AMOV TEMPDIN,CMOV R6,#34H ;DELAY 104usDJNZ R6,$SETB TEMPDINDJNZ R7,WRITEDS1820LOPRET;= READ TEMP =READTEMP:LCALL INITDS1820MOV

16、A,#0CCHLCALL WRITEDS1820 ;SKIP ROMMOV R6,#34H ;DELAY 104usDJNZ R6,$MOV A,#44HLCALL WRITEDS1820 ;START CONVERSIONMOV R6,#34H ;DELAY 104DJNZ R6,$RETREADTEMP1:LCALLINITDS1820MOV A,#0CCHLCALL WRITEDS1820;SKIP ROMMOV R6,#34H ;DELAY 104usDJNZ R6,$MOV A,#0BEHLCALL WRITEDS1820 ;SCRATCHPADMOV R6,#34H ;DELAY

17、104usDJNZ R6,$MOV R5,#09HMOV R0,#TEMPHEADMOV B,#00HREADTEMP2:LCALL READDS1820MOV R0,AINC R0READTEMP21:LCALL CRC8CALDJNZ R5,READTEMP2MOV A,BJNZ READTEMPOUTMOV A,TEMPHEAD+0MOV TEMPL,AMOV A,TEMPHEAD+1MOV TEMPH,AREADTEMPOUT:RET;= 處理溫度BCD碼子程序=CONVTEMP:MOV A,TEMPHANL A,#80HJZ TEMPC1CLR CMOV A,TEMPLCPL AAD

18、D A,#01HMOV TEMPL,AMOV A,TEMPH ;-CPL AADDC A,#00HMOV TEMPH,A ;TEMPHC HI=符號位MOV TEMPHC,#0BHSJMP TEMPC11TEMPC1:MOV TEMPHC,#0AH ;+TEMPC11:MOV A,TEMPHCSWAP AMOV TEMPHC,AMOV A,TEMPLANL A,#0FH ;乘0.0625MOV DPTR,#TEMPDOTTABMOVC A,A+DPTRMOV TEMPLC,A ;TEMPLC LOW=小數(shù)部分BCDMOV A,TEMPL ;整數(shù)部分ANL A,#0F0HSWAP AMOV TE

19、MPL,AMOV A,TEMPHANL A,#0FHSWAP AORL A,TEMPLLCALL HEX2BCD1MOV TEMPL,AANL A,#0F0HSWAP AORL A,TEMPHC ;TEMPHC LOW=十位數(shù)BCDMOV TEMPHC,AMOV A,TEMPLANL A,#0FHSWAP A ;TEMPLC HI=個位數(shù)BCDORL A,TEMPLCMOV TEMPLC,AMOV A,R7JZ TEMPC12ANL A,#0FHSWAP AMOV R7,AMOV A,TEMPHC ;TEMPLC HI=百位數(shù)BCDANL A,#0FHORL A,R7MOV TEMPHC,AT

20、EMPC12:RET;= 小數(shù)部分碼表=TEMPDOTTAB:DB 00H,01H,01H,02H,03H,03H,04H,04H,05H,06HDB 06H,07H,08H,08H,09H,09H;= 顯示區(qū)BCD碼溫度值刷新子程序=DISPBCD:MOV A,TEMPLCANL A,#0FHMOV 70H,AMOV A,TEMPLCSWAP AANL A,#0FHMOV 71H,AMOV A,TEMPHCANL A,#0FHMOV 72H,AMOV A,TEMPHCSWAPAANL A,#0FHMOV 73H,AMOV A,TEMPHCANL A,#0F0HCJNE A,#010H,DIS

21、PBCD0SJMP DISPBCD2DISPBCD0:MOV A,TEMPHCANL A,#0FHJNZ DISPBCD2;十位數(shù)是0MOV A,TEMPHCSWAP AANL A,#0FHMOV 73H,#0AH;符號位不顯示MOV 72H,A;十位數(shù)顯示符號DISPBCD2:RET;= 顯示子程序=;顯示數(shù)據(jù)在70H73H單元內(nèi),用4位LED共陽數(shù)碼管顯示,P1口輸出段碼數(shù)據(jù),;P3口做掃描控制,每個LED數(shù)碼管亮1ms時間再逐位循環(huán)。DISP1:MOV R1,#70H;指向顯示數(shù)據(jù)首址MOV R5,#0FEH;掃描控制字初值PLAY:MOV P0,#0FFHMOV A,R5;掃描字放入A

22、MOV P3,A;從P3口輸出MOV A,R1;取顯示數(shù)據(jù)到AMOV DPTR,#TAB;取段碼表地址MOVC A,A+DPTR;查顯示數(shù)據(jù)對應段碼MOV P0,A;段碼放入P0口MOV A,R5JB ACC.1,LOOP5;小數(shù)點處理CLR P0.7LOOP5:LCALL DL1MS;顯示1msINC R1;指向下一地址MOV A,R5;掃描控制字放入AJNB ACC.3,ENDOUT;ACC.3=0時一次顯示結(jié)束RL A;A中數(shù)據(jù)循環(huán)左移MOVR5,A;放回R5內(nèi)AJMP PLAY;跳回PLAY循環(huán)ENDOUT:MOV P0,#0FFH;一次顯示結(jié)束,P0口復位MOV P3,#0FFH;P

23、3口復位RET;子程序返回TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH;共陽段碼表 “0”“1”“2”“3”“4”“5”“6”“7”“8”“9”“不亮”“-”DL1MS:MOV R6,#14H;1ms延時程序,LED顯示程序用DL1:MOV R7,#19HDL2:DJNZ R7,DL2DJNZ R6,DL1RET;= 單字節(jié)十六進制轉(zhuǎn)BCD =HEX2BCD1:MOV B,#064H;十六進制-BCDDIV AB;B=A%100MOV R7,A;R7=百位數(shù)MOV A,#0AHXCH A,BDIV AB;B=A%BS

24、WAP AORL A,BRET;=;Calculate CRC-8Values. Uses The CCITT-8Polynomial,Expressed As;X8+X5+X4+1;=CRC8CAL:PUSH ACCMOV R7,#08H;Number Bits In ByteCRC8LOOP1:XRL A,B;Calculte CRCRRC A;Move To CarryMOV A,B;Get The Last CRC ValueJNC CRC8LOOP2;Skip If Data=0XRL A,#18H;Updata The New CRCCRC8LOOP2:RRC A;Position

25、 The New CRCMOV B,A;Store The New CRCPOP ACC;Get The Remaining BitsRR A;Position The Next BitPUSH ACC;Save The Remaining BitsDJNZ R7,CRC8LOOP1;Repeat For 8 BitsPOP ACCRETEND總結(jié)與致謝本次設計中設計的系統(tǒng)通過對芯片、器件型號的選擇,使其相對方便、簡單,同時我也相信還有一些可以改進的地方。本次課程設計鞏固了我在學習單片機原理及接口技術(shù)課程時所學的基本理論知識和實驗技能,使我對該課程有了更深的了解,進一步激發(fā)了我對所學專業(yè)學習的

26、興趣,提升了自己的能力。在設計的過程和設計說明書的撰寫過程中,高煥兵老師、張君捧老師、胡秀蒙都給予了我熱心的幫助和大力的支持,給我提了諸多的寶貴意見,拓寬了我的思路。在此我向老師們致以崇高的敬意和衷心的感謝!在我的學習過程中,石家川老師等其他老師也給了我耐心的指導和幫助。我在此對各位老師表示誠摯的感謝!參考文獻1孫育才.單片微型計算機及其應用.東南大學出版社.20042沈德金 陳粵初.單片機接口電路與應用程序?qū)嵗?北京航天航空大學出版社.1990. 3潘新民 王燕芳.微型計算機控制技術(shù).電子工業(yè)出版社2003 4李朝青.單片機原理及接口技術(shù)(簡明修訂版).杭州:北京航空航天大學出版社,19985王勇 葉敦范.基于AT89C51 的便攜式實時溫度檢測儀J.選自儀表技術(shù)與傳感器.2006附錄電路原理圖:23

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!