版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、成都理工大學工程技術(shù)學院本科課程設(shè)計報告成都理工大學工程技術(shù)學院單片機課程設(shè)計報告數(shù)字溫度計設(shè)計 指導教師: 學生: 摘要在這個信息化高速發(fā)展的時代,單片機作為一種最經(jīng)典的微控制器,單片機技術(shù)已經(jīng)普及到我們生活,工作,科研,各個領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),作為自動化專業(yè)的學生,我們學習了單片機,就應該把它熟練應用到生活之中來。本文將介紹一種基于單片機控制的數(shù)字溫度計,本溫度計屬于多功能溫度計,可以設(shè)置上下報警溫度,當溫度不在設(shè)置范圍內(nèi)時,可以報警。本文設(shè)計的數(shù)字溫度計具有讀數(shù)方便,測溫范圍廣,測溫精確,數(shù)字顯示,適用范圍寬等特點。關(guān)鍵詞:單片機,數(shù)字控制,數(shù)碼管顯示,溫度計,DS18B2
2、0,AT89S52。 目 錄1概述41.1設(shè)計目的41.2設(shè)計原理41.3設(shè)計難點42 系統(tǒng)總體方案及硬件設(shè)計52.1數(shù)字溫度計設(shè)計方案論證52.2.1 主控制器52.4 系統(tǒng)整體硬件電路設(shè)計73系統(tǒng)軟件設(shè)計83.1初始化程序83.2讀出溫度子程序93.3讀、寫時序子程序113.4 溫度處理子程序133.5 顯示程序144 Proteus軟件仿真165硬件實物166課程設(shè)計體會.17附錄1:181概述1.1設(shè)計目的 隨著人們生活水平的不斷提高,單片機控制無疑是人們追求的目標之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現(xiàn)代人工作、科研、
3、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。本設(shè)計所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準確,其輸出溫度采用數(shù)字顯示,主要用于對測溫比較準確的場所,或科研實驗室使用,可廣泛用于食品庫、冷庫、糧庫、溫室大棚等需要控制溫度的地方。目前,該產(chǎn)品已在溫控系統(tǒng)中得到廣泛的應用。1.2設(shè)計原理 本系統(tǒng)是一個基于單片機AT89S52的數(shù)字溫度計的設(shè)計,用來測量環(huán)境溫度,測量范圍為-50110度。整個設(shè)計系統(tǒng)分為4部分:單片機控制、溫度傳感器、數(shù)碼顯示以及鍵盤控制電路。整個設(shè)計是以AT89S52為核心,通過數(shù)字溫度傳感器DS18B
4、20來實現(xiàn)環(huán)境溫度的采集和A/D轉(zhuǎn)換,同時因其輸出為數(shù)字形式,且為串行輸出,這就方便了單片機進行數(shù)據(jù)處理,但同時也對編程提出了更高的要求。單片機把采集到的溫度進行相應的轉(zhuǎn)換后,使之能夠方便地在數(shù)碼管上輸出。LED采用三位一體共陽的數(shù)碼管。1.3設(shè)計難點 此設(shè)計的重點在于編程,程序要實現(xiàn)溫度的采集、轉(zhuǎn)換、顯示和上下限溫度報警,其外圍電路所用器件較少,相對簡單,實現(xiàn)容易。2 系統(tǒng)總體方案及硬件設(shè)計2.1數(shù)字溫度計設(shè)計方案論證由于本設(shè)計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應,在將隨被測溫度變化的電壓或電流采集過來,進行A/D轉(zhuǎn)換后,就可以用單片機進行數(shù)據(jù)的處理,在顯示電路上,就可以將被
5、測溫度顯示出來,這種設(shè)計需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。進而考慮到用溫度傳感器,在單片機電路設(shè)計中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進行轉(zhuǎn)換,就可以滿足設(shè)計要求。2.2總體設(shè)計框圖溫度計電路設(shè)計總體設(shè)計方框圖如圖1所示,控制器采用單片機AT89S52,溫度傳感器采用DS18B20,用3位共陽LED數(shù)碼管以串口傳送數(shù)據(jù)實現(xiàn)溫度顯示。圖1 總體設(shè)計框圖(要求根據(jù)實際情況修改)2.2.1 主控制器單片機AT89S52具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設(shè)計需要,適合
6、便攜手持式產(chǎn)品的設(shè)計使用。AT89S52單片機芯片具有以下特性:1)指令集合芯片引腳與Intel公司的8052兼容;2)4KB片內(nèi)在系統(tǒng)可編程FLASH程序存儲器;3)時鐘頻率為033MHZ;4)128字節(jié)片內(nèi)隨機讀寫存儲器(RAM);5)6個中斷源,2級優(yōu)先級;6)2個16位定時/記數(shù)器;7)全雙工串行通信接口;8)監(jiān)視定時器;9)兩個數(shù)據(jù)指針;2.2.2 顯示電路2.2.3溫度傳感器DS18B20溫度傳感器是美國DALLAS半導體公司推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9-12位的數(shù)字值讀數(shù)方式。DS18
7、B20的性能特點如下:(要求補充完整)l l全數(shù)字溫度轉(zhuǎn)換及輸出。 l l先進的單總線數(shù)據(jù)通信。 l l最高 12 位分辨率,精度可達土 0.5攝氏度。 l l12 位分辨率時的最大工作周期為 750 毫秒。 l l可選擇寄生工作方式。 l l檢測溫度范圍為55°C +125°C (67°F +257°F) l l內(nèi)置 EEPROM,限溫報警功能。 l l64 位光刻 ROM,內(nèi)置產(chǎn)品序列號,方便多機掛接。 l l多樣封裝形式,適應不同硬件系統(tǒng)。2.3 DS18B20溫度傳感器與單片機的接口電路(要求補充完整)2.4 系統(tǒng)整體硬件電路設(shè)計2.4.1 主板
8、電路 系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,溫度顯示電路,單片機主板電路等,單片機主板電路如圖5 所示:(要求補充完整)圖5 單片機主板電路2.4.2 顯示電路(要求補充完整) 圖6 溫度顯示電路3 系統(tǒng)軟件設(shè)計(要求畫出子程序流程圖)系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序等。3.1初始化程序RSTSNR: SETB DQ;P3.7置1圖2.25-2溫度初始化時序圖 NOP NOP CLR DQ ;P3.7置0 MOV R6,#250 ;延時500us DJNZ R6,$ ;減1不為0則原地跳轉(zhuǎn), MOV R6,#50 ;延時100u
9、s DJNZ R6,$ SETB DQ ; ;延時600us后拉高P3.7 MOV R6,#15 ;延時30us DJNZ R6,$ CALL CHCK ; ;DS18B20初始化,初始化成功則F0置1 MOV R6,#60 ;延時120us DJNZ R6,$ SETB DQ ;拉高P3.7 RET 開 始 拉高總線延時2US 拉低總線 延時400-960us 拉高總線等待ds18b20發(fā)送存在脈沖Ds18b20是否工作正常是否 延時60-240us結(jié) 束 圖7 初始化程序流程圖3.2讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的2字節(jié),讀出溫度的低八位和高八位,在讀出時需進行CRC
10、校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。其程序流程圖如圖8示; Read a temperature from the DS18B20DSWD: LCALL RSTSNR ;Init of the DS18B20即:初始化DS18B20,初始化成功,則F0置1 JNB F0,KEND ;F0為0,則初始化不成功,則退出 MOV R0,#0CCH ;跳過ROM LCALL SEND_BYTE ;向DS18B20寫#0CCH (SEND_BYTE 是寫一個字節(jié)) MOV R0,#44H LCALL SEND_BYTE ; Send a Convert Command(#44H溫度變換) SETB E
11、A ; MOV 48H,#1 ;延時500us左右等待讀取溫度SS2: MOV 49H,#255SS1: MOV 4AH,#255SS0: DJNZ 4AH,SS0 DJNZ 49H,SS1 DJNZ 48H,SS2 CLR EA ;進入讀時序禁用任何中斷 LCALL RSTSNR ;首先進行初始化 JNB F0,KEND ;F0為0,則初始化不成功,則退出 MOV R0,#0CCH ;跳過ROM LCALL SEND_BYTE ;向DS18B20寫#0CCH(SEND_BYTE 是寫一個字節(jié)) MOV R0,#0BEH ;讀暫存存儲器 LCALL SEND_BYTE ; Send Read
12、Scratchpad command (寫入#0BEH) LCALL READ_BYTE ; Read the low byte from scratchpad (從DS18B20中讀取字節(jié)) MOV WDLSB,A ; Save the temperature (low byte)(把低8位放在WDLSB) LCALL READ_BYTE ; Read the high byte from scratchpad MOV WDMSB,A ; Save the temperature (high byte) (把高8位放在WDLSB) LCALL TRANS12 ;調(diào)用溫度處理KEND: SET
13、B EA RET開 始DS18B20是否初始化成功否是跳過ROM#44H溫度變換等待500us左右DS18B20再次是否初始化成功否是跳過ROM讀暫存存儲器把讀到的低8位和高8位別給30H和31H結(jié) 束 圖8 讀溫度程序流程圖3.3讀、寫時序子程序讀寫的程序是本次設(shè)計中的重點和難點,通過我們對其時序的分析,從而寫出高效的程序。寫1,0時序讀0,1時序 22WRITE_0:;圖2.25-3寫0時序圖 CLR DQ;先拉低P3.7 MOV R6,#30;延時60us DJNZ R6,$ SETB DQ;再拉高P3.7 RET;*WRITE_1: ;圖2.25-4寫1時序圖 CLR DQ;先拉低P3
14、.7 NOP ;延時5us NOP NOP NOP NOP SETB DQ;再拉高P3.7 MOV R6,#30;延時60us DJNZ R6,$ RETREAD: SETB DQ ;拉高P3.7 (讀一位) 圖2.25-5讀時序圖 NOP ;延時2US NOP CLR DQ;拉低P3.7 NOP ;延時2US NOP SETB DQ ; ;拉高P3.7 NOP NOP NOP NOP NOP NOP NOP MOV C,DQ;讀P3.7到C MOV R6,#23;延時46US DJNZ R6,$ RET開 始拉低總線延時>60us拉高總線結(jié) 束開 始拉低總線延時5us拉高總線延時>
15、;60us結(jié) 束延時2us拉高總線延時7us讀一位延時>60us拉低總線延時2us拉高總線開 始結(jié) 束寫0時序 寫1時序圖9 寫時序子程序流程圖 圖10 讀時序子程序流程圖3.4 溫度處理子程序計算溫度子程序?qū)AM中讀取值進行BCD碼的轉(zhuǎn)換運算,并進行溫度值正負的判定,其程序流程圖如圖11所示TRANS12:MOV A,30H ;取小數(shù)位ANL A,#0FH ;將WDLSB低4位給A,高四位為0MOV DPTR,#TAB ;查表MOVC A,A+DPTRMOV 44H,A; ;把取到的小數(shù)位給44HMOV A,30H ;30H(WDLSB)從1820取的溫度值A(chǔ)NL A,#0F0H ;
16、取WDLSB的高4位MOV 3AH,A ;把讀到的高4位給3AH ,暫時存在3AH中,MOV A,31H ;31H(WDMSB)從1820取的溫度值A(chǔ)NL A,#0FH ;把WDMSB的低4位給AORL A,3AH ;把3AH中的高4位和A中低4位相或,得到8位整數(shù)SWAP A ;A中的高低半字節(jié)交換MOV B,#10 ;轉(zhuǎn)換為10進制DIV AB ;A/BBAMOV 43H,B ; 除10 取余數(shù)(把低4位給43H,即個位)MOV b,#10DIV ab ;此時A為上面A除法預算的高四位在這句A的第四位MOV 42H,B ; 除10 取余數(shù)(把低4給43H,即十位)MOV 41H,ARET開
17、 始取溫度小數(shù)值取溫度整數(shù)值個位給43H十位給42H結(jié) 束圖11 溫度處理程序流程圖 3.5 顯示程序此函數(shù)實現(xiàn)的對數(shù)碼管顯示的處理,其亮點在于可以直接對數(shù)碼管進行操作,其本身是個兩變量函數(shù),第一個變量是要開通的位選,第二個變量是要顯示的數(shù)據(jù),這樣我們可以直接方便而又簡單直觀的對數(shù)碼管進行操作。程序流程圖如圖12。TMR0: MOV TH0,#swpH ;輪流送溫度值的高低兩位到數(shù)碼管 MOV TL0,#swpL;定時器4.097us JB 21H,DSL1 JB 22H,DSL2 DSL0: MOV P0,42H ;十位 ORL P0,#10100000B SJMP EXIT0DSL1: M
18、OV P0,43H;個位 ORL P0,#00010000B SJMP EXIT1DSL2: MOV P0,44H;小數(shù) ORL P0,#11000000B SJMP EXIT2EXIT0: CPL 21HCPL 22H RETIEXIT1: CPL 21H RETIEXIT2: CPL 22H RETI(要求補充完整)21H.22H都為1開 始顯示個位21H=0,22H=1顯示小數(shù)位21H=0,22H=0顯示十位21H=1,22H=1圖12顯示程序流程圖 4 Proteus軟件仿真(要求補充完整)5 硬件實物(要求補充完整)6 課程設(shè)計體會(要求補充完整) 參考文獻1DS18b20數(shù)據(jù)手冊。
19、2 求是科技編著8051系列單片機C程序設(shè)計完全手冊北京: 人民郵電出版社, 20063 余發(fā)山,王福忠.單片機原理及應用技術(shù).徐州:中國礦業(yè)大學出版社,2003附錄1:(程序代碼) DQ BIT P3.7; 1 wire line swpH equ 0efH ;swpH=0d2H swpL equ 0ffH ;swpL=0ffH WDLSB DATA 30H ; WDLSB地址空間30H WDMSB DATA 31H ;* ORG 0000H LJMP MAIN ORG 000BH LJMP TMR0 ; Timer0 isr;*; Timer0 Interrupt Service Rout
20、ineTMR0: MOV TH0,#swpH ;輪流送溫度值的高低兩位到數(shù)碼管 MOV TL0,#swpL;定時器4.097us JB 21H,DSL1 JB 22H,DSL2 DSL0:MOV P0,42H ;十位 ORL P0,#10100000B SJMP EXIT0DSL1: MOV P0,43H;個位 ORL P0,#00010000B SJMP EXIT1DSL2: MOV P0,44H;小數(shù) ORL P0,#11000000B SJMP EXIT2EXIT0: CPL 21HCPL 22H RETIEXIT1: CPL 21H RETIEXIT2: CPL 22H RETI; M
21、ain programMAIN: TOINIT: CLR EA MOV TMOD,#01H ;定時器0,方式1 MOV TH0,#swpH ;裝初值 MOV TL0,#swpL SETB EA ;開總開關(guān) SETB ET0 ;開T0 SETB TR0;* MOV R2,#2 ;把42H、43H清0 MOV R0,#42H ;OVER: MOV R0,#00H; ;首先給42H清0, INC R0 ;然后R0+1 ,給下一次的43H清0 DJNZ R2,OVER ;R2-1不為0則轉(zhuǎn)移,LOOP: ;相當于while(1) LCALL DSWD ; ;調(diào)用溫度函數(shù) SJMP LOOP;*; Re
22、ad a temperature from the DS18B20DSWD: LCALL RSTSNR ; Init of the DS18B20即:初始化DS18B20,初始化成功,則F0置1 JNB F0,KEND ;F0為0,則初始化不成功,則退出 MOV R0,#0CCH ;跳過ROM LCALL SEND_BYTE ;向DS18B20寫#0CCH(SEND_BYTE 是寫一個字節(jié)) MOV R0,#44H LCALL SEND_BYTE ; Send a Convert Command(#44H溫度變換) SETB EA ; MOV 48H,#1 ;延時SS2: MOV 49H,#2
23、55SS1: MOV 4AH,#255SS0: DJNZ 4AH,SS0 DJNZ 49H,SS1 DJNZ 48H,SS2 CLR EA ;進入讀時序禁用任何中斷 LCALL RSTSNR ;首先進行初始化 JNB F0,KEND ;F0為0,則初始化不成功,則退出 MOV R0,#0CCH ;跳過ROM LCALL SEND_BYTE ;向DS18B20寫#0CCH(SEND_BYTE 是寫一個字節(jié)) MOV R0,#0BEH ;讀暫存存儲器 LCALL SEND_BYTE ; Send Read Scratchpad command (寫入#0BEH) LCALL READ_BYTE ;
24、 Read the low byte from scratchpad (從DS18B20中讀取字節(jié)) MOV WDLSB,A ; Save the temperature (low byte)(把低8位放在WDLSB) LCALL READ_BYTE ; Read the high byte from scratchpad MOV WDMSB,A ; Save the temperature (high byte) (把高8位放在WDLSB) LCALL TRANS12 ;調(diào)用溫度處理KEND: SETB EA RET;*TRANS12: MOV A,30H ;取小數(shù)位ANL A,#0FH ;
25、將WDLSB低4位給A,高四位為0MOV DPTR,#TAB ;查表MOVC A,A+DPTRMOV 44H,A; ;把取到的小數(shù)位給44H MOV A,30H ;30H(WDLSB)從1820取的溫度值 ANL A,#0F0H ;取WDLSB的高4位 MOV 3AH,A ;把讀到的高4位給3AH ,暫時存在3AH中, MOV A,31H ;31H(WDMSB)從1820取的溫度值 ANL A,#0FH ;把WDMSB的低4位給A ORL A,3AH ;把3AH中的高4位和A中低4位相或,得到8位整數(shù) SWAP A ;A中的高低半字節(jié)交換 MOV B,#10 ;轉(zhuǎn)換為10進制 DIV AB ;
26、A/BBA MOV 43H,B ; 除10 取余數(shù)(把低4位給43H,即個位) MOV b,#10 DIV ab ;此時A為上面A除法預算的高四位在這句A的第四位 MOV 42H,B ; 除10 取余數(shù)(把高4給43H,即十位) MOV 41H,A RET;*; Send a byte to the 1 wire line (寫字節(jié))SEND_BYTE: ;;寫一個字節(jié)(8位),循環(huán)寫,R5作為循環(huán)個數(shù) MOV A,R0 ;把要寫的數(shù)給A MOV R5,#8 ;8位SEN3: CLR C RRC A ;A(帶進位標志的)循環(huán)右移,將低位給C,用來判斷 JC SEN1;判斷R0中的每一位數(shù),從低
27、位開始向高位判斷,為1就調(diào)用WRITE_1(寫1),為0就調(diào)用WRITE_0 LCALL WRITE_0 ;調(diào)用寫0 SJMP SEN2SEN1: LCALL WRITE_1 ;寫1SEN2: DJNZ R5,SEN3 ;循環(huán)8次,若R5-1不為0就跳轉(zhuǎn)到SEN3繼續(xù)寫 RET;*; Read a byte from the 1 wire lineREAD_BYTE: ;讀一個字節(jié) 圖2.25-5讀時序圖 MOV R5,#8;8位READ1: LCALL READ ;(READ是讀一位) RRC A ;將讀到的C依次右循環(huán)到A(讀到的第一個為最低位,循環(huán)8次后即在最低位) DJNZ R5,READ1 ; 判斷一個字節(jié)(8位)是否讀完 MOV R0,A ;把讀到的數(shù)給R0 RET;*; Reset 1 wire lineRSTSNR: SETB DQ;P3.7置1圖2.25-2溫度初始化時序圖 NOP NOP CLR DQ ;P3.7置0 MOV R6,#250 ;延時500us DJNZ R6,$ ;減1不為0則原地跳轉(zhuǎn), MOV R6,#50
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025振動沉管灌注樁整體機械出租合同
- 2025不動產(chǎn)權(quán)籍調(diào)查技術(shù)咨詢服務合同
- 課題申報參考:凌家灘史前玉器藝術(shù)價值挖掘與傳承創(chuàng)新路徑研究
- 學科交叉融合與創(chuàng)新能力提升
- 會展合同管理與風險防范考核試卷
- 二零二五年度森林碳匯樹木種植項目合同4篇
- 2025年滬教版選擇性必修1歷史下冊階段測試試卷
- 2025年新世紀版九年級地理上冊階段測試試卷
- 2025年冀教版九年級地理上冊月考試卷
- 2025年華師大版選擇性必修1化學下冊月考試卷
- 2024-2025學年北京石景山區(qū)九年級初三(上)期末語文試卷(含答案)
- 第一章 整式的乘除 單元測試(含答案) 2024-2025學年北師大版數(shù)學七年級下冊
- 春節(jié)聯(lián)歡晚會節(jié)目單課件模板
- 中國高血壓防治指南(2024年修訂版)
- 糖尿病眼病患者血糖管理
- 抖音音樂推廣代運營合同樣本
- 教育促進會會長總結(jié)發(fā)言稿
- 北師大版(2024新版)七年級上冊數(shù)學第四章《基本平面圖形》測試卷(含答案解析)
- 心理調(diào)適教案調(diào)整心態(tài)積極應對挑戰(zhàn)
- 噴漆外包服務合同范本
- JT-T-390-1999突起路標行業(yè)標準
評論
0/150
提交評論