版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p><b> 1 緒論1</b></p><p> 2 設(shè)計(jì)總體方案2</p><p> 2.1 設(shè)計(jì)內(nèi)容2</p><p> 2.2 設(shè)計(jì)要求2</p><p> 3 硬件系統(tǒng)的方案設(shè)計(jì)3&
2、lt;/p><p> 3.1 單片機(jī)AT89C513</p><p> 3.2 1602LCD顯示屏3</p><p> 3.3 溫度傳感器DS18B204</p><p><b> 4 模塊設(shè)計(jì)6</b></p><p> 4.1 晶振電路與復(fù)位電路6</p>&
3、lt;p> 4.2 溫度采集電路7</p><p> 4.3 顯示電路8</p><p> 4.4 報(bào)警系統(tǒng)9</p><p> 5 軟件系統(tǒng)的方案設(shè)計(jì)10</p><p> 5.1 軟件設(shè)計(jì)總體思路及主程序流程圖10</p><p> 5.2 測(cè)溫模塊流程圖10</p>
4、<p> 5.2.1 溫度的采集11</p><p> 5.2.2 多點(diǎn)溫度的測(cè)量11</p><p> 5.3 顯示模塊流程圖12</p><p> 5.4 鍵盤掃描流程圖12</p><p><b> 6 總結(jié)14</b></p><p> 7 參考文獻(xiàn)1
5、5</p><p> 附錄1:電路圖16</p><p> 附錄2:源代碼17</p><p><b> 1 緒論</b></p><p> 隨著現(xiàn)代信息技術(shù)的飛速發(fā)展,溫度顯示控制系統(tǒng)在工業(yè)、農(nóng)業(yè)及人們的日常生活中扮演著一個(gè)越來越重要的角色,它對(duì)人們的生活具有很大的影響,所以智能溫度顯示系統(tǒng)的設(shè)計(jì)與研究有
6、十分重要的意義。</p><p> 本次設(shè)計(jì)的目的在于學(xué)習(xí)基于51單片機(jī)的智能溫度顯示系統(tǒng)設(shè)計(jì)的基本流程。本設(shè)計(jì)采用單片機(jī)作為數(shù)據(jù)處理與控制單元,為了進(jìn)行數(shù)據(jù)處理,單片機(jī)控制DS18B20的智能溫度傳感器,把溫度信號(hào)通過單總線從數(shù)字溫度傳感器傳遞到單片機(jī)上。單片機(jī)數(shù)據(jù)處理之后,發(fā)出控制信息改變報(bào)警和控制執(zhí)行模塊的狀態(tài),同時(shí)將當(dāng)前溫度信息發(fā)送到LED進(jìn)行顯示。</p><p> 我所采用
7、的控制芯片為AT89C51,此芯片功能較為強(qiáng)大,能夠滿足設(shè)計(jì)要求。通過對(duì)電路的設(shè)計(jì),對(duì)芯片的外圍擴(kuò)展,可達(dá)到對(duì)某一車間溫度的控制和調(diào)節(jié)功能。此外,重點(diǎn)介紹了DS18B20與單片機(jī)的接口設(shè)計(jì)以及數(shù)字溫度計(jì)的軟件的主程序、DS18B20讀寫程序和顯示程序,并給出了基于PROTEUS軟件的電路仿真圖。該儀表具有簡(jiǎn)單、穩(wěn)定、實(shí)用、精度高等優(yōu)點(diǎn)。</p><p><b> 2 設(shè)計(jì)總體方案</b>
8、</p><p><b> 2.1 設(shè)計(jì)內(nèi)容</b></p><p> 根據(jù)系統(tǒng)的設(shè)計(jì)要求,當(dāng)溫度傳感器DS18B20把所測(cè)得的溫度發(fā)送到AT89C51單片機(jī)上,經(jīng)AT89C51處理,將把溫度在顯示電路上顯示。當(dāng)開機(jī)后,顯示屏和計(jì)時(shí)器進(jìn)行初始化設(shè)置。同時(shí),本系統(tǒng)能夠設(shè)置報(bào)警溫度,在到達(dá)報(bào)警時(shí)間后能夠通過LED發(fā)光二極管以及發(fā)音器提示報(bào)警。</p>&
9、lt;p> 利用AT89C51芯片控制溫度傳感器DS18B20進(jìn)行實(shí)時(shí)溫度檢測(cè)并顯示,能夠?qū)崿F(xiàn)快速測(cè)量環(huán)境溫度。</p><p><b> 系統(tǒng)框圖如下圖:</b></p><p><b> 圖1 系統(tǒng)框圖</b></p><p> 選擇DS18B20作為本系統(tǒng)的溫度傳感器,選擇單片機(jī)AT89C51為測(cè)控系統(tǒng)
10、的核心來完成數(shù)據(jù)采集、處理、顯示、報(bào)警等功能。選用數(shù)字溫度傳感器DS18B20,輸出信號(hào)全數(shù)字化。便于單片機(jī)處理及控制,省去傳統(tǒng)的測(cè)溫方法的很多外圍電路,省卻了采樣/保持電路、運(yùn)放、數(shù)/模轉(zhuǎn)換電路以及進(jìn)行長(zhǎng)距離傳輸時(shí)的串/并轉(zhuǎn)換電路,簡(jiǎn)化了電路,縮短了系統(tǒng)的工作時(shí)間,降低了系統(tǒng)的硬件成本。</p><p> 當(dāng)LCD液晶顯示器接收到來自AT89C51單片機(jī)傳送來的溫度信息后,分別顯示了當(dāng)前的溫度。</p&
11、gt;<p><b> 2.2 設(shè)計(jì)要求</b></p><p> 設(shè)計(jì)的主要功能和指標(biāo)如下:</p><p> ?。?)用液晶進(jìn)行實(shí)際溫度值顯示。</p><p> ?。?)利用溫度傳感器(DS18B20)測(cè)量某一點(diǎn)環(huán)境溫度。</p><p> (3)測(cè)量范圍為-55℃~+110℃,精度為±
12、;0.5℃。</p><p> ?。?)提示開機(jī),當(dāng)按下開機(jī)鍵后,響起開機(jī)聲。</p><p> ?。?)當(dāng)達(dá)到報(bào)警溫度后,能夠自動(dòng)發(fā)出報(bào)警聲。</p><p> 3 硬件系統(tǒng)的方案設(shè)計(jì)</p><p> 3.1 單片機(jī)AT89C51</p><p> AT89C51作為溫度測(cè)試系統(tǒng)設(shè)計(jì)的核心器件。該器件是IN
13、TEL公司生產(chǎn)的MCS—5l系列單片機(jī)中的基礎(chǔ)產(chǎn)品,采用了可靠的CMOS工藝制造技術(shù)。具有高性能的8位單片機(jī),屬于標(biāo)準(zhǔn)的MCS-51的CMOS產(chǎn)品。片內(nèi)含8Kbytes的可販毒擦寫的只讀程序存儲(chǔ)器(PEROM)和256bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件兼容標(biāo)準(zhǔn)的MCS-51指令系統(tǒng)。片內(nèi)置通用8位中央處理器(CPU)和Flash存儲(chǔ)單元。結(jié)合了HMOS的高速和高密度技術(shù)及CHMOS的低功耗特征。</p><
14、;p><b> 其具有如下性質(zhì):</b></p><p> ?。?)與MCS-51 產(chǎn)品指令系統(tǒng)完全兼容</p><p> ?。?)4K字節(jié)可重擦寫Flash閃爍存儲(chǔ)器。</p><p> ?。?)壽命:1000寫/擦循環(huán)。</p><p> ?。?)數(shù)據(jù)保留時(shí)間:10年。</p><p>
15、; (5)全靜態(tài)工作:0Hz-24Hz。</p><p> ?。?)三級(jí)程序存儲(chǔ)器鎖定。</p><p> ?。?)128*8位內(nèi)部RAM。</p><p> ?。?)32可編程I/O線。</p><p> (9)兩個(gè)16位定時(shí)器/計(jì)數(shù)器。</p><p> (10)8個(gè)中斷源。</p><p
16、> ?。?1)可編程串行通道。</p><p> ?。?2)低功耗的閑置和掉電模式。</p><p> ?。?3)片內(nèi)振蕩器和時(shí)鐘電路。</p><p> AT89C51單片機(jī)提供以下標(biāo)準(zhǔn)功能:4k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電
17、路。另外,AT89C51可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。</p><p> 3.2 1602LCD顯示屏</p><p> 由于設(shè)計(jì)中要求顯示測(cè)試溫度,因此顯示屏首先要能夠一次性容納這些字符。
18、工作電壓不能太高,與單片機(jī)的連接方式需要簡(jiǎn)單,顯示準(zhǔn)確。本設(shè)計(jì)中采用的是1602型LCD液晶屏能夠很好的滿足這些要求。</p><p> 此液晶屬于工業(yè)字符型液晶,能夠同時(shí)顯示16x02即32個(gè)字符。LCD液晶顯示器是一種低壓、微功耗的顯示器件,只要2~3伏就可以工作,工作電流僅為幾微安,是任何顯示器無法比擬的,同時(shí)可以顯示大量信息,除數(shù)字外,還可以顯示文字、曲線,比傳統(tǒng)的數(shù)碼LED顯示器顯示的界面有了質(zhì)的提高
19、。在儀表和低功耗應(yīng)用系統(tǒng)中得到了廣泛的應(yīng)用。</p><p> 1602擁有很多出色的優(yōu)點(diǎn):</p><p> (1) 顯示質(zhì)量高,由于液晶顯示器的每一個(gè)點(diǎn)收到信號(hào)后就一直保持那種色彩和亮度恒定發(fā)光,因此液晶顯示器的畫質(zhì)高而且不會(huì)閃爍。</p><p> (2) 數(shù)字式接口,液晶顯示器都是數(shù)字式的,和單片機(jī)的接口簡(jiǎn)單操作也很方便。</p><
20、;p> (3) 功率消耗小,相比而言液晶顯示器的主要功耗在內(nèi)部電極和驅(qū)動(dòng)IC上,因而耗電量比其他器件要小很多。</p><p> 3.3 溫度傳感器DS18B20</p><p> DS18B20是美國(guó)DALLAS公司繼DS1820之后推出的增強(qiáng)型單總線數(shù)字式溫度傳感器,它在轉(zhuǎn)換速度、轉(zhuǎn)換時(shí)間、傳輸距離、分辨率等方面較之前產(chǎn)品有了很大的改進(jìn),給用戶帶來了更方便、更令人滿意的效果
21、。DALLAS最新單線數(shù)字溫度傳感器DS18B20是一種新型的“一線器件”,其體積更小、更適用于多種場(chǎng)合、且適用電壓更寬、更經(jīng)濟(jì)。DALLAS半導(dǎo)體公司的數(shù)字化溫度傳感器DS18B20是世界上第一片支持“一線總線”接口的溫度傳感器。溫度測(cè)量范圍為-55~+125 攝氏度,可編程為9位~12位轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá)0.0625攝氏度,分辨率設(shè)定參數(shù)以及用戶設(shè)定的報(bào)警溫度存儲(chǔ)在EEPROM中,掉電后依然保存。被測(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字
22、量方式串行輸出;其工作電源既可以在遠(yuǎn)端引入,也可以采用寄生電源方式產(chǎn)生;多個(gè)DS18B20可以并聯(lián)到3根或2根線上,CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。因此用它來組成一個(gè)測(cè)溫系統(tǒng),具有線路簡(jiǎn)單,在一根通信線,可以掛很多這樣的數(shù)字溫度計(jì),十分方便。</p><p> DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度
23、報(bào)警觸發(fā)器TH和TL、配置寄存器。DQ為數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源;GND為地信號(hào);VDD為可選擇的VDD引腳。當(dāng)工作于寄生電源時(shí),此引腳必須接地。</p><p> 在硬件上,DS18B20與單片機(jī)的連接有兩種方法,一種是VCC接外部電源,GND接地,I/O與單片機(jī)的I/O線相連;另一種是用寄生電源供電,此時(shí)UDD、GND接地,I/O接單片機(jī)I/O。無論
24、是內(nèi)部寄生電源還是外部供電,I/O口線要接5KΩ左右的上拉電阻.</p><p> DS18B20 的性能特點(diǎn)如下:</p><p> 獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。</p><p> DS18B20支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫。
25、 </p><p> 圖2 DS18B20內(nèi)部結(jié)構(gòu)框圖</p><p> DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。</p><p><b> 其具有9條特點(diǎn):</b></p><p> ?。?)適應(yīng)電壓范圍更寬,電壓范圍:3.0~5.5V,在寄生電源方式下可
26、由數(shù)據(jù)線供電。</p><p> ?。?)溫范圍-55℃~+125℃,在-10~+85℃時(shí)精度為±0.5℃。</p><p> (3)零待機(jī)功耗。</p><p> ?。?)可編程的分辨率為9~12位,對(duì)應(yīng)的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可實(shí)現(xiàn)高精度測(cè)溫。</p><p> ?。?)在9位分
27、辨率時(shí)最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快。</p><p> ?。?)用戶可定義報(bào)警設(shè)置。</p><p> (7)報(bào)警搜索命令識(shí)別并標(biāo)志超過程序限定溫度的器件。</p><p> ?。?)結(jié)果直接輸出數(shù)字溫度信號(hào),以"一線總線"串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)
28、的抗干擾糾錯(cuò)能力。</p><p> DS18B20作為新型的一線器件,能夠方便的和中心處理器進(jìn)行連接,并具有很大的擴(kuò)展空間。溫度范圍較廣,使得整體的測(cè)溫范圍能大幅度的上升,零待機(jī)消耗更是起到了節(jié)能的作用。利用用戶能自定義報(bào)警設(shè)置這一特點(diǎn),能夠在實(shí)現(xiàn)報(bào)警功能上得到很大的便利,同時(shí)極強(qiáng)的抗干擾性能使得溫度的檢測(cè)更加準(zhǔn)確,作為溫度計(jì)最基本的要求,準(zhǔn)確必須滿足。這些好處使得DS18B20最終被選擇。</p>
29、;<p><b> 4 模塊設(shè)計(jì)</b></p><p> 4.1 晶振電路與復(fù)位電路</p><p> 晶振電路和復(fù)位電路與單片機(jī)連接構(gòu)成最小系統(tǒng)電路,如何選取合適的引腳,選取何種連接方式都至關(guān)重要。因此需要了解AT89C51的引腳特點(diǎn)。</p><p> 圖3 AT89C51單片機(jī)引腳圖</p>&l
30、t;p> 在晶振電路中,主要用到了XTAL1和XTAL2兩個(gè)引腳。</p><p> ?。?)XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。</p><p> ?。?)XTAL2:來自反向振蕩器的輸出。</p><p> 在晶振電路中,AT89C51具有兩種晶振方式,一種是片內(nèi)時(shí)鐘振蕩方式,但需要在引腳外接石英晶體和振蕩電容,振蕩電容的值一般取
31、10-30pf。另一種是外部時(shí)鐘方式,即將XTAL1接外部時(shí)鐘,XTAL2腳懸空。本設(shè)計(jì)的晶振電路如圖4.2所示。</p><p><b> 圖4 晶振電路</b></p><p> 單片機(jī)的晶振頻率采用11.0592MHZ,外加兩個(gè)30pF電容。</p><p> XTAL1和XTAL2分別為反向放大器的輸入和輸出,外接石英晶體和振蕩電
32、容,構(gòu)成了片內(nèi)時(shí)鐘振蕩方式。而振蕩周期指的就是單片機(jī)外接石英晶體振蕩器的周期。當(dāng)時(shí)鐘起振后,產(chǎn)生一定的頻率的時(shí)鐘信號(hào),單片機(jī)的CPU在時(shí)鐘信號(hào)的控制下能一步一步完成自己的工作,同時(shí)與整個(gè)系統(tǒng)相關(guān)的周期還有振蕩周期、狀態(tài)周期、機(jī)器周期和指令周期。</p><p> 電容C1和C2主要用于校正波形,振蕩器的作用主要是產(chǎn)生時(shí)鐘振蕩。而整個(gè)電路的作用則是為了產(chǎn)生自激振蕩。</p><p> 對(duì)
33、于復(fù)位電路,AT89C51有兩種復(fù)位方式,分別是上點(diǎn)復(fù)位和按鍵復(fù)位。本設(shè)計(jì)采用的是按鍵復(fù)位,即利用一個(gè)復(fù)位電容和按鍵的組合使得復(fù)位變得更加直接和簡(jiǎn)單。</p><p> 引腳RST作用是復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。在按下按鍵后,系統(tǒng)自動(dòng)復(fù)位,十分方便。在復(fù)位電路中添加按鍵主要是為了能夠使得復(fù)位更加方便,電容主要是在復(fù)位后進(jìn)行充電,而上拉電阻起到限流的作用,保護(hù)了電路。&
34、lt;/p><p><b> 圖5 復(fù)位電路</b></p><p> 4.2 溫度采集電路</p><p> 溫度控制電路主要運(yùn)用到了DS18B20和AT89C51。如何使兩者連接實(shí)現(xiàn)功能是溫度控制電路的主要設(shè)計(jì)目的。</p><p> 圖6 DS18B20管腳圖</p><p> 在硬
35、件上,DS18B20與單片機(jī)的連接有兩種方法,一種是VCC接外部電源,GND接地,I/O與單片機(jī)的I/O線相連;另一種是用寄生電源供電,此時(shí)UDD、GND接地,I/O接單片機(jī)I/O。內(nèi)部寄生電源I/O口線要接5KΩ左右的上拉電阻。這里采用的是第一種連接方法,如圖4.5所示:</p><p> P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳電位被
36、內(nèi)部上拉電阻拉高,且作為輸入。作為輸入時(shí),P2口的管腳電位被外部拉低,將輸出電流,這是由于內(nèi)部上拉的緣故。</p><p><b> 圖7 溫度采集電路</b></p><p> 傳感器數(shù)據(jù)采集電路主要指DS18B20溫度傳感器與單片機(jī)的接口電路。DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時(shí)DS18B20的1腳接地,2腳作為信號(hào)線,3腳接電源。
37、另一種是寄生電源供電方式考慮到實(shí)際應(yīng)用中寄生電源供電方式適應(yīng)能力差且易損壞,此處采用電源供電方式,I/O口接單片機(jī)的P2.4口。</p><p><b> 4.3 顯示電路</b></p><p> 液晶顯示器是一種將液晶顯示器件,連接器件,集成電路,PCB線路板,背光源,結(jié)構(gòu)器件裝配在一起的組件。</p><p> 在顯示電路中,VSS
38、接地,VDD接5V正電源,VEE為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,為了獲得最佳對(duì)比度,VEE接地。</p><p> RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。R/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫入
39、數(shù)據(jù)。E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。</p><p> RS和R/W選用不同的高低電平,將影響寄存器的選擇。</p><p> 表1 寄存器選擇控制表</p><p> 由于液晶顯示器的功能是顯示各字符,所以RS置高電平,R/W接地。8位雙向數(shù)據(jù)線D0-D7與雙向I/O口相連。</p><p> 圖8
40、液晶顯示電路圖</p><p><b> 4.4 報(bào)警系統(tǒng)</b></p><p> 利用有源蜂鳴器進(jìn)行報(bào)警輸出,采用直流供電。當(dāng)所測(cè)溫度超過獲高于所預(yù)設(shè)的溫度時(shí),數(shù)據(jù)口相應(yīng)拉高電平,報(bào)警輸出。而兩個(gè)發(fā)光二極管直接和單片機(jī)的P3.6和P3.7相接,當(dāng)溫度大于100度時(shí)D1發(fā)亮,蜂鳴器報(bào)警,反之黃燈D2發(fā)亮。</p><p> 至于報(bào)警電路
41、,連接方式如4.7所示。</p><p><b> 圖9 報(bào)警電路</b></p><p> 5 軟件系統(tǒng)的方案設(shè)計(jì)</p><p> 5.1 軟件設(shè)計(jì)總體思路及主程序流程圖</p><p> 本系統(tǒng)采用C語言編寫,主程序主要由四部分構(gòu)成,系統(tǒng)通電后首先初始化系統(tǒng),依次完成溫度采集、溫度處理、數(shù)據(jù)顯示、鍵盤處理
42、等四項(xiàng)功能。溫度采集部分主要完成4個(gè)溫度測(cè)試點(diǎn)的溫度數(shù)據(jù)采集任務(wù);溫度處理部分主要是將采集到的溫度數(shù)據(jù)與用戶設(shè)定的各點(diǎn)上下限溫度值進(jìn)行比較處理,并判斷是否超出設(shè)定的上下限值,如果超出則蜂鳴器報(bào)警;數(shù)據(jù)顯示部分主要實(shí)現(xiàn)溫度數(shù)據(jù)的顯示,顯示方式根據(jù)設(shè)計(jì)要求支持1到4個(gè)溫度測(cè)試點(diǎn)的輪流循環(huán)顯示和固定顯示兩種方式;鍵盤處理部分主要實(shí)現(xiàn)用戶對(duì)系統(tǒng)參數(shù)的設(shè)置,結(jié)合顯示部分,實(shí)現(xiàn)用戶與系統(tǒng)之間的人機(jī)接口。系統(tǒng)軟件主流程如圖4-1所示: </p&
43、gt;<p> 圖10 系統(tǒng)軟件總流程圖</p><p> 5.2 測(cè)溫模塊流程圖</p><p> 圖11 DSl8B20操作流程圖</p><p> 5.2.1 溫度的采集</p><p> 每一片DSl8B20在其ROM中都存有其唯一的48位序列號(hào),在出廠前已寫入片內(nèi)ROM中,主機(jī)在進(jìn)入操作程序前必須逐一接入DS
44、l8B20,用讀ROM(33H)命令將該DSl8B20的序列號(hào)讀出并登錄。當(dāng)主機(jī)需要對(duì)眾多在線DSl8B20的某一個(gè)進(jìn)行操作時(shí)首先要發(fā)出匹配ROM命令(55H),緊接著主機(jī)提供64位序列(包括該DSl8B20的48位序列號(hào))之后的操作就是針對(duì)該DSl8B20的,而所謂跳過ROM命令即為之后的操作,是對(duì)所有DSl8B20的框圖中先有跳過ROM即是啟動(dòng)所有DSl8B20進(jìn)行溫度變換之后通過匹配ROM再逐一地讀回每個(gè)DSl8B20的溫度數(shù)據(jù)在
45、DSl8B20組成的測(cè)溫系統(tǒng)中主機(jī)在發(fā)出跳過ROM命令之后再發(fā)出統(tǒng)一的溫度轉(zhuǎn)換啟動(dòng)碼44H就可以實(shí)現(xiàn)所有DSl8B20的統(tǒng)一轉(zhuǎn)換再經(jīng)過1s后就可以用很少的時(shí)間去逐一讀取這種方式,使其T值往往小于傳統(tǒng)方式。</p><p> 5.2.2 多點(diǎn)溫度的測(cè)量</p><p> 單總線已經(jīng)掛接了4個(gè)DS18B20。DS18B20的ROM代碼并在AT89C51單片機(jī)內(nèi)部的中建立了測(cè)量位置點(diǎn)和傳感器
46、64位ROM代碼之間的關(guān)系表,對(duì)多個(gè)溫度的巡回測(cè)量的步驟:</p><p> (1)發(fā)跳過ROM命令CCH。</p><p> (2)發(fā)啟動(dòng)所有在線的DS18B20進(jìn)行溫度轉(zhuǎn)換命令44H。</p><p><b> (3)延遲1s。</b></p><p> (4)發(fā)匹配ROM命令55H。</p>
47、<p> (5)按照AT89C51中建立的關(guān)系表的順序取出64位ROM代碼發(fā)送到單總線。</p><p> (6)發(fā)讀溫度值命令BEH,讀取溫度值。</p><p> (7)進(jìn)行CRC校驗(yàn)和數(shù)據(jù)處理后送LCD顯示器顯示。</p><p> (8)重復(fù)第4步到第7步,直到所有的DS18B20測(cè)量處理完。</p><p> (
48、9)再重復(fù)第1步到第8步,進(jìn)行下一輪的巡回測(cè)量。</p><p> 圖12 溫度測(cè)量流程圖</p><p> 5.3 顯示模塊流程圖</p><p> 圖13 LCD1602A操作流程圖</p><p> 5.4 鍵盤掃描流程圖</p><p> 按鍵處理程序通過掃描按鍵情況,讀取鍵值。主要完成各點(diǎn)溫度傳感器
49、上下限報(bào)警參數(shù)設(shè)置和顯示模式設(shè)置。</p><p> ?。?)通過掃描鍵盤讀取鍵值,流程圖如圖4-5所示:</p><p> 圖14 鍵盤掃描程序流程圖</p><p> (2)設(shè)置報(bào)警上、下限值</p><p> DS18B20設(shè)有溫度上下限報(bào)警功能。DSl8B20的存儲(chǔ)器由兩部分組成:一個(gè)是9字節(jié)的靜態(tài)RAM,其中第0和第1字節(jié)用于
50、存儲(chǔ)16位的溫度轉(zhuǎn)換值,第2(高溫限TH)和第3字節(jié)(低溫限TL)作為溫度報(bào)警限值或通用存儲(chǔ)器單元供用戶使用;另一個(gè)是非易失性的E²PROM。當(dāng)靜態(tài)RAM作為溫度報(bào)警限值使用時(shí),可以在系統(tǒng)安裝和工作前,用寫RAM命令4EH將高溫限TH和低溫限TL寫入第2和第3字節(jié)單元。由于靜態(tài)RAM掉電后信息即丟失,因此需要再通過拷貝RAM命令48H將第2和第3字節(jié)單元的溫度報(bào)警限值拷貝到E²PROM中。主程序只要在初始化部分使用重
51、調(diào)E²PROM命令B8H,就可以將E²PROM中的溫度報(bào)警限值重新拷貝到靜態(tài)RAM中。</p><p><b> 6 總結(jié)</b></p><p> 時(shí)光飛逝,一轉(zhuǎn)眼,兩周過去了,兩周的單片機(jī)課程設(shè)計(jì)完成了。 俗話說“好的開始是成功的一半”。說起課程設(shè)計(jì),我認(rèn)為最重要的就是做好設(shè)計(jì)的預(yù)習(xí),選一個(gè)自己有興趣的題目;其次,老師對(duì)實(shí)驗(yàn)的講解要一絲不
52、茍的去聽去想,因?yàn)橹挥卸济靼琢?,做起設(shè)計(jì)就會(huì)事半功倍,如果沒弄明白,就迷迷糊糊的去選題目做設(shè)計(jì),到頭來一點(diǎn)收獲也沒有。最后,要重視程序的模塊化,修改的方便,也要注重程序的調(diào)試,掌握其方法。 </p><p> 硬件的設(shè)計(jì)跟焊接都要我們自己動(dòng)手去操作,軟件的編程也要我們不斷的調(diào)試,最終一個(gè)能完成課程設(shè)計(jì)的勞動(dòng)成果出來了。 </p><p> 當(dāng)然,這其中也有很多問題,第一、不夠細(xì)心比如由
53、于粗心大意接錯(cuò)了線,由于對(duì)課本理論的不熟悉導(dǎo)致編程出現(xiàn)錯(cuò)誤。第二,是在學(xué)習(xí)態(tài)度上,這次課設(shè)是對(duì)我的學(xué)習(xí)態(tài)度的一次檢驗(yàn)。對(duì)于這次課程實(shí)習(xí),我的第一大心得體會(huì)就是作為一名工程技術(shù)人員,要求具備的首要素質(zhì)絕對(duì)應(yīng)該是嚴(yán)謹(jǐn)。我們這次實(shí)習(xí)所遇到的多半問題多數(shù)都是由于我們不夠嚴(yán)謹(jǐn)。第三,在做人上,我認(rèn)識(shí)到,無論做什么事情,只要你足夠堅(jiān)強(qiáng),有足夠的毅力與決心,有足夠的挑戰(zhàn)困難的勇氣,就沒有什么辦不到的。 </p><p> 在
54、這次難得的課程設(shè)計(jì)過程中我鍛煉了自己的思考能力和動(dòng)手能力。通過題目選擇和設(shè)計(jì)電路的過程中,加強(qiáng)了我思考問題的完整性和實(shí)際生活聯(lián)系的可行性。在方案設(shè)計(jì)選擇和芯片的選擇上,培養(yǎng)了我們綜合應(yīng)用單片機(jī)的能力,對(duì)單片機(jī)的各個(gè)管腳的功能也有了進(jìn)一步的認(rèn)識(shí)。還鍛煉我們個(gè)人的查閱技術(shù)資料的能力,動(dòng)手能力,發(fā)現(xiàn)問題,解決問題的能力。并且我們熟練掌握了有關(guān)器件的性能及測(cè)試方法。 </p><p> 再次感謝x老師的輔導(dǎo)以及隊(duì)友、、
55、、同學(xué)的幫助,是他們讓我有了一個(gè)更好的認(rèn)識(shí),無論是學(xué)習(xí)還是生活,生活是實(shí)在的,要踏實(shí)走路。課程設(shè)計(jì)時(shí)間雖然很短,但我學(xué)習(xí)了很多的東西,使我眼界打開,感受頗深。</p><p><b> 7 參考文獻(xiàn)</b></p><p> 1. 劉迎春.傳感器原理.國(guó)防工業(yè)出版社.2004年 </p><p> 2. 袁希光.傳感器技術(shù)手冊(cè).國(guó)防工業(yè)
56、出版社.1986年</p><p> 3. 鄭秀瑗.應(yīng)力應(yīng)變電測(cè)技術(shù).國(guó)防工業(yè)出版社.1985年</p><p> 4. 蔡春源.新編機(jī)械設(shè)計(jì)手冊(cè).遼寧科學(xué)技術(shù)出版社.1993年</p><p> 5. 王森.儀表常用數(shù)據(jù)手冊(cè).化學(xué)工業(yè)出版社.1998年</p><p> 6. 孫傳友.測(cè)控電路及裝置.北京航空航天大學(xué)出版社.2002
57、年</p><p> 7. 王俊杰.檢測(cè)技術(shù)與儀表.武漢理工大學(xué)出版社. 2002年</p><p> 8. 單成祥.傳感器理論設(shè)計(jì)基礎(chǔ)及其應(yīng)用.北京:國(guó)防工業(yè)出版社,1999年</p><p> 9. 李道華,李玲,朱艷.傳感器電路分析與設(shè)計(jì).武漢大學(xué)出版社,2000年</p><p><b> 附錄1:電路圖</b
58、></p><p><b> 附錄2:源代碼</b></p><p> #include<reg52.h></p><p> #include"lcd1602.h"</p><p> #include"ds18b20.h"</p><p
59、> #include"ds18b20_2.h"</p><p> #include"ds18b20_3.h"</p><p> #include"ds18b20_4.h"</p><p> #define uchar unsigned char </p><p> #
60、define uint unsigned int</p><p> #define TIMER0_COUNT 0xEE11</p><p> sbit SPK=P3^5;</p><p> sbit LED1=P3^6;</p><p> sbit LED2=P3^7;</p><p><b> b
61、it flag;</b></p><p> uint wendu;</p><p> uint wendu1;</p><p> uint wendu2;</p><p> uint wendu3;</p><p> uchar count,timer0_tick,count=0;</p&g
62、t;<p> static void timer0_initialize(void) </p><p><b> {</b></p><p> EA=0; </p><p> timer0_tick=0;</p><p> TR0=0; &l
63、t;/p><p> TMOD=0X01; </p><p> TL0=(TIMER0_COUNT & 0X00FF); </p><p> TH0=(TIMER0_COUNT >> 8); </p><p> PT1=1; </p><p>
64、 ET0=1; </p><p> TR0=1; </p><p> EA=1; </p><p><b> }</b></p><p> void display_temp()</p><p><b> {<
65、/b></p><p> uchar A1,A2;</p><p> uchar A3,A4;</p><p> uchar A5,A6;</p><p> uchar A7,A8;</p><p> tmpchange(); </p><p> wendu=tmp();<
66、;/p><p> A1=wendu/10;</p><p> A2=wendu%10;</p><p> gotoxy(1,1);</p><p> display_data(A1);</p><p> display_string(".");</p><p> wr
67、ite_date(int_to_char[A2]); </p><p> tmpchange2();</p><p> wendu1=tmp2();</p><p> A3=wendu1/10;</p><p> A4=wendu1%10;</p><p> gotoxy(2,1);</p>&
68、lt;p> display_data(A3);</p><p> display_string(".");</p><p> write_date(int_to_char[A4]);</p><p> tmpchange3();</p><p> wendu2=tmp3();</p><
69、p> A5=wendu2/10;</p><p> A6=wendu2%10;</p><p> gotoxy(1,7);</p><p> display_data(A5);</p><p> display_string(".");</p><p> write_date(in
70、t_to_char[A6]);</p><p> tmpchange4(); </p><p> wendu3=tmp4();</p><p> A7=wendu3/10;</p><p> A8=wendu3%10;</p><p> gotoxy(2,7);</p><p> d
71、isplay_data(A7);</p><p> display_string(".");</p><p> write_date(int_to_char[A8]); </p><p><b> }</b></p><p> void timer0(void) interrupt 1<
72、/p><p><b> {</b></p><p><b> TR0=0;</b></p><p> TL0=(TIMER0_COUNT & 0X00FF);//設(shè)置Timer0低八位數(shù)值</p><p> TH0=(TIMER0_COUNT >> 8);//設(shè)置Timer0
73、高八位數(shù)值</p><p><b> TR0=1;</b></p><p><b> count++;</b></p><p> if(count==10) display_temp();</p><p><b> }</b></p><p>
74、 void main()</p><p><b> {</b></p><p> init_lcd();</p><p> timer0_initialize(); </p><p> gotoxy(1,1);</p><p> display_string("00.0C&qu
75、ot;);</p><p> gotoxy(2,1);</p><p> display_string("00.0C");</p><p><b> while(1) </b></p><p><b> {</b></p><p> if((we
76、ndu>500) || (wendu1>500) || (wendu2>500) || (wendu3>500))</p><p><b> {</b></p><p><b> SPK=~SPK;</b></p><p> LED1=~LED1;</p><p>
77、delay(30);</p><p><b> }</b></p><p> else if ((wendu<100) || (wendu1<100) || (wendu2<100) || (wendu3<100))</p><p><b> {</b></p><p&
78、gt;<b> SPK=~SPK;</b></p><p> delay(20);</p><p> LED2=~LED2;</p><p><b> }</b></p><p><b> }</b></p><p><b> }&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)數(shù)字顯示溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)的溫度控制智能電風(fēng)扇
- 單片機(jī)溫度控制課程設(shè)計(jì)
- 遠(yuǎn)程溫度控制課程設(shè)計(jì)--單片機(jī)的溫度遠(yuǎn)程檢測(cè)與顯示設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---雞舍溫度控制設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---智能路燈控制
- 單片機(jī)課程設(shè)計(jì)---空調(diào)機(jī)溫度控制
- 單片機(jī)課程設(shè)計(jì)---智能路燈控制
- 單片機(jī)溫度控制系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)--單片機(jī)溫度控制系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)控制的數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)--顯示電路
- 單片機(jī)課程設(shè)計(jì)(溫度控制系統(tǒng))
- 單片機(jī)課程設(shè)計(jì)--溫度控制系統(tǒng)設(shè)計(jì)
- lcd顯示設(shè)計(jì)單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---可調(diào)電子鐘溫度顯示系統(tǒng)
- 基于單片機(jī)的數(shù)字顯示溫度計(jì)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--- 單片機(jī)動(dòng)態(tài)掃描顯示
- 單片機(jī)控制的智能窗簾課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---智能路燈控制.doc
評(píng)論
0/150
提交評(píng)論