標(biāo)題: 單片機(jī)數(shù)字體溫計(jì)的實(shí)物制作與課設(shè)總結(jié)報(bào)告下載 [打印本頁]
作者: izhineng 時(shí)間: 2018-1-13 02:10
標(biāo)題: 單片機(jī)數(shù)字體溫計(jì)的實(shí)物制作與課設(shè)總結(jié)報(bào)告下載
系統(tǒng)調(diào)試及結(jié)果

六、總結(jié)
通過本次課設(shè),了解了好多知識(shí),首先,對(duì)于思路上來說,首先要確定方案,這次課設(shè)從起初選擇DS18B20不能夠精確地測(cè)量人體體溫,聽從老師的建議后,改用熱敏電阻,經(jīng)過查資料后,選擇了幾種方案,一個(gè)是利用橋式電路測(cè)輸出電壓,還有就是用串聯(lián)分壓進(jìn)行測(cè)量。因?yàn)闃蚴诫娐窙]有很好的測(cè)量出,所以本系統(tǒng)使用串聯(lián)分壓式。其次,做課設(shè)要靠自己的努力去完成,不能靠其他人,或者走捷徑。本人就是通過查找資料自己確定一個(gè)方向,通過同學(xué)的指導(dǎo),完成了軟件部分的編程。最后,經(jīng)過自己的努力以及別人的幫助,我成功地做出了數(shù)字體溫計(jì)的實(shí)物,并用它測(cè)出了人體指尖的溫度,誤差也在允許的范圍之內(nèi)。
總之,這次的單片機(jī)課程的設(shè)計(jì),在一次一次地查找資料過程中讓我再一次了解單片機(jī)的工作原理,增加了自己的知識(shí)面,對(duì)今后的學(xué)習(xí)生活有很大的幫助。
附錄一:
電路圖

附錄二
實(shí)物圖

引言
隨著以知識(shí)經(jīng)濟(jì)為特征的信息化時(shí)代的到來人們對(duì)儀器儀表的認(rèn)識(shí)更加深入,溫度作為一個(gè)重要的物理量,是工業(yè)生產(chǎn)過程中最普遍,最重要的工藝參數(shù)之一。隨著工業(yè)的不斷發(fā)展,對(duì)溫度的測(cè)量的要求也越來越高,而且測(cè)量的范圍也越來越廣,對(duì)溫度的檢測(cè)技術(shù)的要求也越來越高,因此,溫度測(cè)量及其測(cè)量技術(shù)的研究也是一個(gè)很重要的課題。
目錄
方案的選擇1
1.1方案一1
1.2方案二1
硬件電路簡介2
2.1AT89C51簡介2
ADC0809簡介5
2.3 LCD1602簡介8
軟件設(shè)計(jì)11
3.1 主程序流程圖11
3.2 部分程序11
四、硬件電路圖12
4.1 溫度檢測(cè)原理12
4.2 A/D轉(zhuǎn)換部分硬件電路圖13
4.3 顯示部分硬件電路圖14
五、系統(tǒng)調(diào)試及結(jié)果14
六、總結(jié)15
附錄一16
附錄二17
附錄三17
一、方案的選擇
1.1方案一
本方案主要是在溫度檢測(cè)部分利用了一款新型的溫度檢測(cè)芯片DS18B20,這個(gè)芯片大大簡化了溫度檢測(cè)模塊的設(shè)計(jì),它無需A/D轉(zhuǎn)換,可直接將測(cè)得的溫度值以二進(jìn)制形式輸出。該方案的原理框圖如圖1.1和所示:
圖1.1 方案(一)系統(tǒng)結(jié)構(gòu)框圖
DS18B20是美國達(dá)拉斯半導(dǎo)體公司生產(chǎn)的新型溫度檢測(cè)器件,它是單片結(jié)構(gòu),無需外加A/D即可輸出數(shù)字量,通訊采用單線制,同時(shí)該通訊線還可兼作電源線,即具有寄生電源模式。它具有體積小、精度易保證、無需標(biāo)定等特點(diǎn),特別適合與單片機(jī)合用構(gòu)成智能溫度檢測(cè)及控制系統(tǒng)。
1.2 方案二
溫度檢測(cè)部分采用傳統(tǒng)的熱敏電阻,熱敏電阻的阻值隨環(huán)境溫度變化而變化,經(jīng)A/D轉(zhuǎn)換器ADC0809將其轉(zhuǎn)換為單片機(jī)可識(shí)別得二進(jìn)制數(shù)字量,單片機(jī)主要控制LCD顯示器顯示正確的溫度值,LCD顯示器實(shí)現(xiàn)顯示功能。原理框圖如圖1.2所示
圖1.2 方案二系統(tǒng)結(jié)構(gòu)圖
方案(二)與方案(一)相比,它最大的特點(diǎn)就是它能檢測(cè)的溫度范圍很大,熱敏電阻的性能決定了整個(gè)設(shè)計(jì)的所能檢測(cè)的溫度范圍。方案(一)的溫度檢測(cè)范圍已經(jīng)由系統(tǒng)中的DS18B20的特性所決定,它能檢測(cè)的溫度范圍為-55℃到120℃,且誤差在0.5℃,其溫度檢測(cè)范圍很寬,已能足夠滿足一般測(cè)量需要,從整體上來看方案(二)比方案(一)更具有實(shí)際的鍛煉意義,因?yàn)槲覀兎桨福ㄒ唬┦抢矛F(xiàn)有的智能溫度傳感芯片DS18B20,他無需A/D轉(zhuǎn)換,直接輸出數(shù)字量,所以本設(shè)計(jì)中所使用的溫度測(cè)量電路是方案(二)的電路。
2.2 ADC0809介紹
ADC0809是8位逐次逼近式ADC轉(zhuǎn)換器,它能分時(shí)地對(duì)8路模擬量信號(hào)進(jìn)行AD轉(zhuǎn)換,結(jié)果為8位二進(jìn)制數(shù)據(jù)。
ADC0809的主要功能如下:
- 分辨率為8位
- 總的不可調(diào)誤差在±1/2LSB和1LSB范圍內(nèi)
- 典型轉(zhuǎn)換時(shí)間為100μs
- 具有鎖存控制的8路多路開關(guān)
- 具有三態(tài)緩沖輸出控制
- 單一+5V供電,此時(shí)輸入范圍為0~+5V
- 輸出與TTL兼容
- 工作溫度范圍-40~85℃
ADC0809的引腳功能:
引腳圖如圖2.2
(1)8路模擬電壓輸入線(共8根):IN7~I(xiàn)N0:用于輸入被轉(zhuǎn)換的模擬電壓。
(2)地址輸入和控制線(共4根):C、B、A:3根地址線,與ALE配合使用可控制8路模擬開關(guān)工作,達(dá)到選擇模擬量輸入通道的作用。
ALE:地址鎖存允許輸入線,高電平有效。當(dāng)ALE線為高電平時(shí),C、B、A這三條地址線上的地址信號(hào)得以鎖存。
(3)數(shù)字量輸出及控制線(共11根):START:“啟動(dòng)脈沖”輸入線,該線上的正脈沖由CPU送來,寬度應(yīng)大于100ns,上升沿清零SAR,下降沿啟動(dòng)ADC工作。
EOC:轉(zhuǎn)換結(jié)束輸出線,該線上的高電平表示AD轉(zhuǎn)換已經(jīng)結(jié)束,數(shù)字量已鎖入“三態(tài)輸出鎖存器”。
D7~D0:數(shù)字量輸出線,共8根。D7為最高位。
OE:“輸出允許”線,高電平時(shí)能使用D7~D0引腳上輸出轉(zhuǎn)換后的數(shù)字量。
(4)電源線及其他(5根):CLOCK:時(shí)鐘輸入線,用于為ADC0809提供逐次比較所需640kHz時(shí)鐘脈沖序列。
Vcc:+5V正電源電壓輸入線。
GND:地線。
圖2.2 ADC0809引腳圖
ADC0809真值表如表1:
表1 ADC0809真值表
2.3 LCD1602簡介
LCD1602是一種專門用來顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊,每行顯示16個(gè)字符,一共可顯示兩行。它的溫度范圍很窄,通常為0~+55℃,存儲(chǔ)范圍為-22~+60℃。引腳圖如圖2.3

圖2.3 LCD1602引腳圖
顯示容量:16×2個(gè)字符。
工作電壓:4.5~5.5V。
模塊最佳工作電壓:5.0V。
字符尺寸:2.95㎜×4.35㎜(W×H)。
(2)引腳功能
1腳:Vss,電源地。
2腳:Vᴅᴅ,電源正極。
3腳:Vᴇᴇ,液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí),對(duì)比度最弱,接地時(shí)對(duì)比度最高。對(duì)比度過高會(huì)會(huì)產(chǎn)生“鬼影”,使用時(shí),可通過一個(gè)10kΩ的電位器調(diào)整度。
4腳:RS,數(shù)據(jù)/命令選擇端,高電平時(shí)選擇數(shù)據(jù)寄存器,低電平時(shí),選擇指令寄存器。
5腳:R/
,讀寫信號(hào)線。高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。4、5腳合作完成的功能如表2:
表2 4、5引腳合作功能表
| R/ (5) | |
| | |
| | 讀忙信號(hào)或讀取地址計(jì)時(shí)器的內(nèi)容 |
| | |
| | |
6腳:E,使能端。當(dāng)E端為下降沿(高電平變成低電平)時(shí),液晶模塊寫指令或?qū)憯?shù)據(jù);當(dāng)E為高電平時(shí),為讀狀態(tài)或讀數(shù)據(jù)。4~6腳共同合作實(shí)現(xiàn)的功能如表3:
表3 4~6引腳合作功能表
| R/ (5) | | |
| | | |
| | | 讀狀態(tài),輸出:DB7~DB0=狀態(tài)字 |
| | | 寫數(shù)據(jù),DB7~DB0=數(shù)據(jù),輸出無 |
| | | 讀數(shù)據(jù),輸出:DB7~DB0=數(shù)據(jù) |
7~14腳:DB0~DB7,8位雙向數(shù)據(jù)線。
15腳:背光源正極。
16腳:背光源負(fù)極。
(3)RAM和ROM以及地址映射
DDRAM就是顯示數(shù)據(jù)RAM,用來寄存待顯示的字符代碼,共80個(gè)字節(jié),這80個(gè)字節(jié)的地址為00H~27H和40H~67H,每一個(gè)地址內(nèi)可以裝載一個(gè)待顯示的字符代碼。
DDRAM中80個(gè)字節(jié)地址與屏幕的對(duì)應(yīng)關(guān)系如下:
DDRAM字節(jié)地址與1602液晶屏幕的對(duì)應(yīng)關(guān)系如下:
三、軟件設(shè)計(jì)
3.1 主程序流程圖
四、硬件電路圖
4.1 溫度檢測(cè)原理

本系統(tǒng)溫度部分硬件電路部分采用串聯(lián)分壓式電路,由圖可知所需測(cè)得溫度為25℃至45℃,在溫度為25℃時(shí),熱敏電阻的阻值是100k,串聯(lián)一個(gè)50k的普通電阻進(jìn)行分壓,可知

由上式可知,當(dāng)溫度變化時(shí),阻值減小,輸出電壓Vo也會(huì)變化,所以A/D轉(zhuǎn)換后的值也會(huì)有所不同,利用查表法進(jìn)行顯示,顯示出準(zhǔn)確的溫度值。
可以根據(jù)熱敏電阻阻值和溫度的關(guān)系以及Vo和阻值的關(guān)系,事先制作一張Vo(V)~t(℃)的關(guān)系表,存入單片機(jī)內(nèi)部ROM中,以便通過查表的方式根據(jù)電壓值得到溫度值。

4.3顯示部分硬件電路圖

單片機(jī)源程序如下:
- ;********************************************************************
- ; 基于AT89C51的數(shù)字體溫計(jì)
- ;********************************************************************
- SHIWEI EQU 32H;
- GEWEI EQU 33H;
- HUANCUN EQU 36H;
- CLOCK BIT P2.4;
- ST BIT P3.2;
- EOC BIT P3.1;
- D_A BIT P2.3;
- D_B BIT P2.2;
- D_C BIT P2.1;
- E BIT P2.7;
- RW BIT P2.5;
- RS BIT P2.6;
- ORG 0000H;
- LJMP START;
- ORG 000BH;
- LJMP INT_T0;
- ORG 0100H;
- ;***********主程序開始******************************************************
- START: LCALL LCDINIT;調(diào)用液晶顯示屏初始化程序
- LCALL TISHI1;
- LCALL TISHI2;
- ;*********************************************************************************
- ; 溫度部分
- ;*******************************************************************************
- BEGIN: MOV TMOD,#02H;
- MOV TH0,#236; 定時(shí)鐘頻位50khz
- MOV TL0,#236;
- MOV IE,#82H; 開T0中斷
- SETB TR0; 啟動(dòng)定時(shí)器
- CLR D_A; AD0809選擇IN0通道
- CLR D_B;
- CLR D_C;
- WEN:
- CLR ST;
- SETB ST;
- CLR ST;啟動(dòng)AD轉(zhuǎn)換
- JNB EOC,$; 等待轉(zhuǎn)換結(jié)束
- LCALL DELAY1S;
- ;*********查表法得到轉(zhuǎn)換值*********************************
- MOV HUANCUN,P1;
- MOV DPTR,#TAB1
- MOV A,HUANCUN
- MOVC A,@A+DPTR
- ;*********將查表得到的值轉(zhuǎn)換成BCD碼**********************
- MOV B,#10
- DIV AB
- MOV SHIWEI,A
- MOV GEWEI,B
- ;*********顯示整數(shù)部分的溫度值**************************
- XIANSHI: MOV A,#0C5H;
- LCALL WRC;
- NOP
- MOV R0,#32H; 顯示溫度的十位、個(gè)位
- WDA1: MOV A,@R0
- ADD A,#30H; 轉(zhuǎn)換成ASCII碼
- LCALL WRD; 寫數(shù)據(jù)
- INC R0;
- CJNE R0,#34H,WDA1; 判斷溫度是否顯示完
- ;*********顯示小數(shù)點(diǎn)***********************************************************
- DIAN: MOV A,#0C7H; 顯示小數(shù)點(diǎn)
- LCALL WRC;
- MOV A,#2EH;
- LCALL WRD;
- ;*********查表得小數(shù)部分得溫度值********************************************
- MOV DPTR,#TAB2
- MOV A,HUANCUN
- MOVC A,@A+DPTR
- ;*********將小數(shù)部分的值轉(zhuǎn)換成BCD碼**********************************************************************
- MOV B,#10
- DIV AB
- MOV SHIWEI,A
- MOV GEWEI,B
- ;**********顯示小數(shù)子程序********************
- XIANSHI1: MOV A,#0C8H;
- LCALL WRC;
- MOV R0,#32H; 顯示溫度的十位、個(gè)位
- WDA12: MOV A,@R0
- ADD A,#30H; 轉(zhuǎn)換成ASCII碼
- LCALL WRD; 寫數(shù)據(jù)
- INC R0;
- CJNE R0,#34H,WDA12; 判斷溫度是否顯示完
- ;*********顯示溫度符號(hào)*************************************************************************
- MOV A,#0CAH; 顯示溫度符號(hào),設(shè)定顯示位置
- LCALL WRC; 寫入命令
- MOV A,#0DFH; “。”的 ASCII碼
- LCALL WRD; 寫數(shù)據(jù)
- MOV A,#43H; “C"的ASCII碼
- LCALL WRD; 寫數(shù)據(jù)
-
- LCALL DELAY1S;
- LCALL DELAY1S;
- LCALL DELAY1S;
- LCALL DELAY1S
- AJMP WEN
-
-
- ;*********溫度提示字符顯示**************************************************************
- TISHI2: MOV DPTR,#M_2; 指針指到顯示消息
- LINE12: MOV A,#0C0H; 設(shè)置LCD的第一行地址
- LCALL WRC; 寫入命令
- FILL12: CLR A; 輸入字符
- MOVC A,@A+DPTR; 由消息區(qū)取出字符
- CJNE A,#0,LC12; 判斷是否為結(jié)束碼
- JMP RET_END2 ;子程序返回
- LC12: LCALL WRD; 寫入數(shù)據(jù)
- INC DPTR; 指針加1
- JMP FILL1; 繼續(xù)填入字符
- RET_END2: RET
-
- TISHI1: MOV DPTR,#M_1; 指針指到顯示消息
- LINE11: MOV A,#80H; 設(shè)置LCD的第一行地址
- LCALL WRC; 寫入命令
- FILL1: CLR A; 輸入字符
- MOVC A,@A+DPTR; 由消息區(qū)取出字符
- CJNE A,#0,LC11; 判斷是否為結(jié)束碼
- JMP RET_END1 ;子程序返回
- LC11: LCALL WRD; 寫入數(shù)據(jù)
- INC DPTR; 指針加1
- JMP FILL1; 繼續(xù)填入字符
- RET_END1: RET
- M_2: DB "Temp:",0;
- M_1: DB "He Xing (^_^)",0;
- ;********液晶初始化子程序***************************
- LCDINIT: MOV A,#01H; 清屏
- LCALL WRC; 調(diào)用寫入命令子程序
- MOV A,#38H; 8位數(shù)據(jù),2行,5*8點(diǎn)陣
- LCALL WRC;
- MOV A,#0CH; 開顯示和光標(biāo),字符不閃爍
- LCALL WRC;
- MOV A,#06H; 字符不動(dòng),光標(biāo)自動(dòng)右移1格
- LCALL WRC;
- RET;
- ;********忙檢查子程序************************
- CBUSY: PUSH ACC; 將A的值暫存于堆棧
- PUSH DPH; 將DPH的值暫存于堆棧
- PUSH DPL; 將DPL的值暫存于堆棧
- PUSH PSW; 將PSW的值暫存于堆棧
- WEIT:
- CLR RS; RS=0,選擇指令寄存器
- SETB RW; RW=1,選擇讀模式
- CLR E; E=0,禁止讀/寫LCD
- SETB E; E=1,允許讀/寫LCD
- NOP
- MOV A,P0; 讀操作
- CLR E; E=0,禁止讀/寫LCD
- JB ACC.7,WEIT; 忙碌循環(huán)等待
- POP PSW; 從堆棧中取回PSW的值
- POP DPL; 從堆棧中取回DPL的值
- POP DPH; 從堆棧中取回DPH的值
- POP ACC; 從堆棧中取回ACC的值
- LCALL DELAY; 延時(shí)
- RET;
- ;********寫子程序**************************
- WRC: LCALL CBUSY; 寫入命令子程序
- CLR E; E=0,禁止讀/寫LCD
- CLR RS; RS=0,選擇指令寄存器
- CLR RW; RW=0,選擇寫模
- SETB E; E=1,允許讀/寫LCD
- MOV P0,A; 寫操作
- CLR E; E=0,禁止讀/寫LCD
- LCALL DELAY; 延時(shí)
- RET
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載(word格式完整設(shè)計(jì)報(bào)告與源程序):
http://www.torrancerestoration.com/bbs/dpj-104106-1.html
作者: tieq1952 時(shí)間: 2018-1-13 13:36
靠自身努力完成,贊一個(gè)!
作者: 駱曉靜 時(shí)間: 2018-6-25 12:57
不錯(cuò)可以的
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |