版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、學(xué)校logo專業(yè): 請(qǐng) 輸 入 專 業(yè) 班級(jí): 請(qǐng) 輸 入 班 級(jí) 學(xué)生姓名: 請(qǐng) 輸 入 姓 名 指導(dǎo)教師: 請(qǐng)輸入指導(dǎo)教師 完成時(shí)間: 2020年12月29日 請(qǐng)輸入論文標(biāo)題 1.課程設(shè)計(jì)的目的和要求11.1設(shè)計(jì)目的11.2課程設(shè)計(jì)題目描述和要求12. 總體方案設(shè)計(jì) 12.1總體設(shè)計(jì)框圖12.2單片機(jī)AT89C51 22.3主要硬件介紹 32.3.1 DS18B20簡(jiǎn)介32.3.2 DS18B20的測(cè)溫原理42.3.3溫度轉(zhuǎn)換計(jì)算方法舉例52.3.4 DS18B20溫度傳感器與單片機(jī)的接口電路52.3.5 1602液晶說明 63.系統(tǒng)硬件電路設(shè)計(jì)83.1主板電路83.2顯示電路93.3溫度
2、連接電路94.系統(tǒng)軟件的設(shè)計(jì)104.1主程序流程圖 104.2讀程序流程圖 104.3溫度轉(zhuǎn)換命令子程序流程圖 114.4計(jì)算溫度子程序流程圖 114.5主程序源代碼 124.6 1602顯示源代碼 134.7 18B20源代碼 155.總結(jié) 18參考文獻(xiàn) 191.課程設(shè)計(jì)的目的和要求1.1設(shè)計(jì)目的熟練掌握51小系統(tǒng)開發(fā)應(yīng)用;加強(qiáng)單片機(jī)的綜合運(yùn)用能力、提高單片機(jī)的件編程和調(diào)試能力,為以后的學(xué)習(xí)和開發(fā)工作打下強(qiáng)勁基礎(chǔ);掌握DS18B20溫度傳感器模塊的工作原理及應(yīng)用設(shè)計(jì);掌握1602液晶顯示模塊的工作原理及應(yīng)用設(shè)計(jì);掌握小系統(tǒng)開發(fā)設(shè)計(jì)的流程及設(shè)計(jì)思路;提高分析問題,解決問題能力,提高實(shí)踐動(dòng)手能力
3、。1.2課程設(shè)計(jì)題目描述和要求題目:基于DS18B20的溫度測(cè)試LED顯示。實(shí)現(xiàn)的基本功能:(1) 測(cè)量基本范圍-55125。(2) 精度誤差小于0.5。(3) 1602液晶顯示。2.總體方案的設(shè)計(jì)2.1總體設(shè)計(jì)框圖 溫度計(jì)電路設(shè)計(jì)總體設(shè)計(jì)方框圖如圖2-1所示,控制器采用單片機(jī)AT89C51,溫度傳感器采用DS18B20,用LED1602液晶以串口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。圖2-1 總體設(shè)計(jì)方框圖2.2單片機(jī)AT89C51AT89S51是一個(gè)低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含4k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存
4、儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及89C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案。 AT89C51具有如下特點(diǎn):40個(gè)引腳如圖2-2,4k Bytes Flash片內(nèi)程序存儲(chǔ)器,128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。 此外,AT89S51設(shè)計(jì)和配置了振蕩頻
5、率可為0Hz并可通過軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時(shí)計(jì)數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。圖2-2 AT89C51管腳圖2.3主要硬件介紹2.3.1 DS18B20簡(jiǎn)介DS18B20是美國(guó)DALLAS半導(dǎo)體公司繼DS1820之后最新推出的一種改進(jìn)型智能溫度傳感器,如圖2-3。與傳統(tǒng)的熱敏電阻相比,他能夠直接讀出被測(cè)溫度并且可根據(jù)實(shí)際要求通過簡(jiǎn)單的編程實(shí)現(xiàn)912位的數(shù)字值讀數(shù)方式??梢苑謩e在93.75 ms和7
6、50 ms內(nèi)完成9位和12位的數(shù)字量,并且從DS18B20讀出的信息或?qū)懭隓S18B20的信息僅需要一根口線(單線接口)讀寫,溫度變換功率來源于數(shù)據(jù)總線,總線本身也可以向所掛接的DS18B20供電,而無需額外電源。因而使用DS18B20可使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性更高。他在測(cè)溫精度、轉(zhuǎn)換時(shí)間、傳輸距離、分辨率等方面較DS1820有了很大的改進(jìn),給用戶帶來了更方便的使用和更令人滿意的效果,其引腳功能如圖2-4。 DS18B20具有如下特點(diǎn):(1)獨(dú)特的單線接口方式:DS18B20與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。 (2)在使用中不需要任何外圍元件。 (3)
7、可用數(shù)據(jù)線供電,電壓范圍:+3.0 +5.5 V。 (4)測(cè)溫范圍:-55 +125 。固有測(cè)溫分辨率為0.5 。 (5)通過編程可實(shí)現(xiàn)912位的數(shù)字讀數(shù)方式。 (6)用戶可自設(shè)定非易失性的報(bào)警上下限值。 (7)支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)測(cè)溫。 (8)負(fù)壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作。圖2-3 DS18B20的引腳排列圖2-4 引腳功能描述2.3.2 DS18B20的測(cè)溫原理低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小1,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為
8、減法計(jì)數(shù)器2的脈沖輸入,圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測(cè)量前,首先將-55 所對(duì)應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)器1和溫度寄存器被預(yù)置在 -55 所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí)溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即
9、為所測(cè)溫度。圖2中的斜率累加器用于補(bǔ)償和修正測(cè)溫過程中的非線性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測(cè)溫度值,這就是DS18B20的測(cè)溫原理。2.3.3溫度轉(zhuǎn)換計(jì)算方法舉例例如當(dāng)DS18B20采集到+125的實(shí)際溫度后,輸出為07D0H,則:實(shí)際溫度=07D0H0.0625=20000.0625=125C。例如當(dāng)DS18B20采集到-55的實(shí)際溫度后,輸出為FC90H,則應(yīng)先將11位數(shù)據(jù)位取反加1得370H(符號(hào)位不變,也不作為計(jì)算),則:實(shí)際溫度=370H0.0625=8800.0625=55CDS18B20工作過程一般遵循以下協(xié)議:初始
10、化ROM操作命令存儲(chǔ)器操作命令處理數(shù)據(jù)2.3.4 DS18B20溫度傳感器與單片機(jī)的接口電路DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時(shí)DS18B20的一腳接地,2腳作為信號(hào)線,3腳接電源。另一種是寄生電源供電方式,如圖2-5所示單片機(jī)端口接單線總線,為保證有效的DS18B20始終周期內(nèi)提供足夠的電流,可以用一個(gè)MOSFET管來完成對(duì)總線的上拉。當(dāng)DS18B20處于寫存儲(chǔ)器操作和溫度A/D轉(zhuǎn)換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開啟時(shí)間最大為10us。采用寄生電源供電方式時(shí)VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。圖2-5 DS18B20與單片機(jī)接口2.3
11、.5 1602液晶說明 3.系統(tǒng)硬件電路設(shè)計(jì)3.1主板電路系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,溫度顯示電路,單片機(jī)主板電路等,如圖3-1所示。圖3-1 單片機(jī)主板電路3.2 顯示電路顯示電路是使用的1602液晶顯示,這種顯示最大的優(yōu)點(diǎn)就是使用方便,接線簡(jiǎn)單,顯示比較清楚,并能結(jié)合所需的字母顯示。如圖3-2。 1602與單片機(jī)連接圖3-2。3.3溫度連接電路 溫度傳感器使用18B20只有三個(gè)引腳,連接比較簡(jiǎn)單,如圖3-3。 圖3-34.系統(tǒng)軟件的設(shè)計(jì)4.1主程序主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示,讀出并處理DS18B20的測(cè)量的當(dāng)前溫度值,溫度測(cè)量每1s進(jìn)行一次,這樣可以在一秒之內(nèi)測(cè)量一次溫度,
12、其程序流程如圖4-1所示。4.2讀程序主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需要進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。其程序流程圖如圖4-2。圖4-1 主程序流程圖 圖4-2 讀溫度流程圖4.3溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,本程序采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成。其程序流程圖如圖4-3。圖4-3溫度轉(zhuǎn)換命令流程圖4.4計(jì)算溫度子程序?qū)AM中讀取進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖4-4。圖4-4 計(jì)算溫度流程圖 圖4-5 顯示數(shù)據(jù)刷新流程圖4.5主程序源代碼 為了方便使用,將18B20溫度模塊和1602顯示模塊的程序的函數(shù)聲明做成函數(shù)
13、庫(kù),分別為18b20.h,“l(fā)cd.h”。則在主程序中可以直接調(diào)入,主程序如下所示:#includelcd.h#include18b20.hchar data wendu= Temp 000.0C ;char data Test1= chen yang ;char data shuzi=0,1,2,3,4,5,6,7,8,9;uint temp;main()unsigned char TempH,TempL; InitLcd(); /初始化LCDDelayMs(15); /延時(shí)保證信號(hào)穩(wěn)定while(1) ShowString(0,Test1); ShowString(1,wendu); we
14、ndu8=shuziTempH/100; /百位溫度 wendu9=shuzi(TempH%100)/10; /十位溫度 wendu10=shuzi(TempH%100)%10 ;/個(gè)位 wendu12=shuziTempL; temp=ReadTemperature(); if(temp&0x8000) / 數(shù)據(jù)處理 temp=temp; / 取反加1 temp +=1; else TempH=temp4; TempL=temp&0x0F; TempL=TempL*6/10;/小數(shù)近似處理4.6 1602顯示源代碼 參照1602顯示的原理圖和時(shí)序,進(jìn)行編寫程序初始化,讀指令,讀數(shù)據(jù)等操作,編
15、寫的時(shí)候注意結(jié)合時(shí)序圖來進(jìn)行。源程序如下: “l(fā)cd.h”庫(kù):#ifndef _LCD_H_#define _LCD_H_#include /*包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義*/#include /標(biāo)準(zhǔn)輸入輸出#includevoid DelayUs(unsigned char us);/ 微秒延時(shí)函數(shù)void DelayMs(unsigned char ms);/ 毫秒函數(shù)聲明void WriteCommand(unsigned char c);/寫入命令函數(shù)void WriteData(unsigned char c); /寫入數(shù)據(jù)函數(shù)void ShowCh
16、ar(unsigned char pos,unsigned char c);/ 寫入字節(jié)函數(shù) void ShowString (unsigned char line,char *ptr);/寫入字符串函數(shù)void InitLcd();/初始化函數(shù)#endif 顯示程序: 名稱:LCD1602*/#include /*包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義*/#include /標(biāo)準(zhǔn)輸入輸出#include#includelcd.hsbit RS = P24; /Pin4sbit RW = P25; /Pin5sbit E = P26; /Pin6#define Data
17、 P0/數(shù)據(jù)端口/*/* 微秒延時(shí)函數(shù) */*/void DelayUs(unsigned char us)/delay us unsigned char uscnt; uscnt=us1; /*12MHz頻率*/ while(-uscnt);/*/* 毫秒函數(shù)聲明 */*/void DelayMs(unsigned char ms) while(-ms) DelayUs(250); DelayUs(250); DelayUs(250); DelayUs(250); /*/* 寫入命令函數(shù) */*/void WriteCommand(unsigned char c) DelayMs(5);/操
18、作前短暫延時(shí),保證信號(hào)穩(wěn)定 E=0; RS=0; RW=0; _nop_(); E=1; Data=c; E=0;/*/* 寫入數(shù)據(jù)函數(shù) */*/void WriteData(unsigned char c) DelayMs(5); /操作前短暫延時(shí),保證信號(hào)穩(wěn)定 E=0; RS=1; RW=0; _nop_(); E=1; Data=c; E=0; RS=0;/*/* 寫入字節(jié)函數(shù) */*/void ShowChar(unsigned char pos,unsigned char c) unsigned char p; if (pos=0x10) p=pos+0xb0; /是第二行則命令代碼
19、高4位為0xc else p=pos+0x80; /是第一行則命令代碼高4位為0x8 WriteCommand (p);/寫命令 WriteData (c); /寫數(shù)據(jù)/*/* 寫入字符串函數(shù) */*/void ShowString (unsigned char line,char *ptr) unsigned char l,i; l=line4; for (i=0;i16;i+) ShowChar (l+,*(ptr+i);/循環(huán)顯示16個(gè)字符/*/* 初始化函數(shù) */*/void InitLcd() DelayMs(15); WriteCommand(0x38); /display mod
20、e WriteCommand(0x38); /display mode WriteCommand(0x38); /display mode WriteCommand(0x06); /顯示光標(biāo)移動(dòng)位置 WriteCommand(0x0c); /顯示開及光標(biāo)設(shè)置 WriteCommand(0x01); /顯示清屏4.7 18B20溫度源代碼 18b20.h庫(kù)#ifndef_18B20_H_#define_18B20_H_#include /*包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義*/#include#include#define uchar unsigned char#de
21、fine uint unsigned intvoid delay1(uchar MS); /延時(shí)函數(shù)unsigned int ReadTemperature(void);/度溫度void Init_DS18B20(void); /18B20初始化unsigned char ReadOneChar(void);/ 讀一個(gè)字節(jié)void WriteOneChar(unsigned char dat); /寫一個(gè)字節(jié)void delay2(unsigned int i); /延時(shí)函數(shù)#endif 18B20溫度傳感器源代碼: /*- 名稱:18B20溫度傳感器該程序的關(guān)鍵,從readtemperatu
22、re中獲得溫度值,進(jìn)而將數(shù)值分離顯示-*/#include /包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義#include#include#include18b20.h#define uchar unsigned char#define uint unsigned int/*/* 定義端口 */*/sbit seg1=P20;sbit seg2=P21;sbit seg3=P22;sbit DQ=P13;/ds18b20 端口sfr dataled=0x80;/顯示數(shù)據(jù)端口/* 延時(shí)函數(shù) */*/void delay2(unsigned int i)/延時(shí)函數(shù) while(i
23、-);/*/* 初始化 */*/void Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ復(fù)位 delay2(8); /稍做延時(shí) DQ = 0; /單片機(jī)將DQ拉低 delay2(80); /精確延時(shí) 大于 480us DQ = 1; /拉高總線 delay2(10); x=DQ; /稍做延時(shí)后 如果x=0則初始化成功 x=1則初始化失敗 delay2(5);/*/* 讀一個(gè)字節(jié) */*/unsigned char ReadOneChar(void)unsigned char i=0;unsigned char dat = 0;for (i=8
24、;i0;i-) DQ = 0; / 給脈沖信號(hào) dat=1; DQ = 1; / 給脈沖信號(hào) if(DQ) dat|=0x80; delay2(5); return(dat);/*/* 寫一個(gè)字節(jié) */*/void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; delay2(5); DQ = 1; dat=1; delay2(5);/*/* 讀取溫度 */*/unsigned int ReadTemperature(void)unsigned char a=0;unsigned int b=0;unsigned int t=0;Init_DS18B20();WriteOneChar(0xCC); / 跳過讀序號(hào)列號(hào)的操作WriteOneChar(0x44); / 啟動(dòng)溫度轉(zhuǎn)換delay2(200);Init_DS18B20();WriteOneChar(0xCC); /跳過讀序號(hào)列號(hào)的操作 WriteOneChar(0xBE); /讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度a=ReadOneChar(); /低位b=Read
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度廚師職業(yè)發(fā)展規(guī)劃與就業(yè)指導(dǎo)合同4篇
- 2025年度智能園區(qū)場(chǎng)地平整工程服務(wù)協(xié)議書4篇
- 2025版門窗安裝及玻璃更換安全責(zé)任合同范本4篇
- 二零二五年度水電項(xiàng)目施工臨時(shí)用電設(shè)施安裝合同4篇
- 二零二五版路基施工合同風(fēng)險(xiǎn)評(píng)估與管理范本4篇
- 2025年陶瓷水杯產(chǎn)業(yè)園區(qū)入駐合作協(xié)議3篇
- 2025年度個(gè)人股份轉(zhuǎn)讓協(xié)議書(環(huán)保產(chǎn)業(yè))4篇
- 二零二五年度大理石裝飾工程安裝與質(zhì)量監(jiān)督合同4篇
- 2025年度海上風(fēng)電場(chǎng)大清包勞務(wù)施工合同范本4篇
- 2025年度充電樁充電設(shè)施維修保養(yǎng)合同范本4篇
- MT/T 199-1996煤礦用液壓鉆車通用技術(shù)條件
- GB/T 6144-1985合成切削液
- GB/T 10357.1-2013家具力學(xué)性能試驗(yàn)第1部分:桌類強(qiáng)度和耐久性
- 第三方在線糾紛解決機(jī)制(ODR)述評(píng),國(guó)際商法論文
- 第5章-群體-團(tuán)隊(duì)溝通-管理溝通
- 腎臟病飲食依從行為量表(RABQ)附有答案
- 深基坑-安全教育課件
- 園林施工管理大型園林集團(tuán)南部區(qū)域養(yǎng)護(hù)標(biāo)準(zhǔn)圖例
- 排水許可申請(qǐng)表
- 低血糖的觀察和護(hù)理課件
- 計(jì)量檢定校準(zhǔn)技術(shù)服務(wù)合同協(xié)議書
評(píng)論
0/150
提交評(píng)論