單片機(jī)帶溫度顯示的紅外遙控?cái)?shù)字鐘課程設(shè)計(jì)報(bào)告_第1頁
單片機(jī)帶溫度顯示的紅外遙控?cái)?shù)字鐘課程設(shè)計(jì)報(bào)告_第2頁
單片機(jī)帶溫度顯示的紅外遙控?cái)?shù)字鐘課程設(shè)計(jì)報(bào)告_第3頁
單片機(jī)帶溫度顯示的紅外遙控?cái)?shù)字鐘課程設(shè)計(jì)報(bào)告_第4頁
單片機(jī)帶溫度顯示的紅外遙控?cái)?shù)字鐘課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、單片機(jī)原理及應(yīng)用 課 程 設(shè) 計(jì) 報(bào) 告 課題名稱 帶溫度顯示的紅外遙控?cái)?shù)字鐘 專 業(yè) 電氣自動(dòng)化 班 級(jí) 學(xué) 號(hào) 姓 名 X X 指導(dǎo)教師 X X 目 錄1.設(shè)計(jì)題目及要求12.設(shè)計(jì)方案1 2.1 主控制器型1 2.2 DS1302實(shí)時(shí)顯示時(shí)間的軟硬件 2 2.3 顯示方案2 2.4 報(bào)警方案2 2.5 鍵盤接口的選擇3 2.6 紅外通信的基本原理3 2.6.1 紅外通信接口的硬件電路設(shè)計(jì)3 2.6.2 紅外發(fā)送器及原理3 2.6.3 紅外遙控電路原理分析43. 主要電路與程序設(shè)計(jì)5 3.1 系統(tǒng)硬件的結(jié)構(gòu)框圖5 3.2 單片機(jī)最小系統(tǒng)設(shè)計(jì)5 33 溫度電路設(shè)計(jì)6 3.4 顯示電路設(shè)計(jì)6 3

2、.5 聲光報(bào)警電路6 3.6 實(shí)時(shí)時(shí)鐘模塊7 3.7 紅外線接收電路74.軟件設(shè)計(jì)8 4.1 總模塊的流程圖8 4.2 部分主要模塊的流程圖9 4.3 溫度轉(zhuǎn)換核心及其算法 11 4.3.1 DS18B20的內(nèi)部結(jié)構(gòu)11 4.3.2 DS18B20的內(nèi)存結(jié)構(gòu)11 4.3.3 DS18B20的測溫功能11 4.3.4 溫度轉(zhuǎn)換算法及分析12 5.調(diào)試結(jié)果記錄及分析15 5.1 數(shù)碼管顯示的測試方法和結(jié)果15 5.2 DS18B20的測試方法和結(jié)果 16 5.3 鍵盤程序的測試方法和結(jié)果16 5.4 RS232模塊的測試方法和結(jié)果 16 5.5產(chǎn)品最終調(diào)試166. 結(jié)論 167. 參考文獻(xiàn) 171

3、.設(shè)計(jì)題目及要求 1.1設(shè)計(jì)題目:帶溫度顯示的紅外遙控?cái)?shù)字鐘 1.2要求:用數(shù)碼管實(shí)現(xiàn)顯示,DS1302實(shí)現(xiàn)計(jì)時(shí),遙控鍵盤實(shí)現(xiàn)控制 (1)能顯示當(dāng)前時(shí)間,用按鍵切換可以顯示日期,星期等情況。 (2)能設(shè)定時(shí)間,能根據(jù)設(shè)定的日期自動(dòng)計(jì)算星期幾。 2.設(shè)計(jì)方案本系統(tǒng)要求完成對時(shí)間和環(huán)境溫度的采集,對時(shí)間及溫度數(shù)據(jù)的處理問題,因此,首要解決的采用何種微控制器以及何種傳感器來對時(shí)間及溫暖進(jìn)行采集處理包括計(jì)算,其次是采集到的時(shí)間及溫暖將通過何種方式去顯示或通過何鐘方式表達(dá)出來讓人一目了然,最后要解決的是當(dāng)檢測到的溫度超出正常或低于正常值時(shí)該做出報(bào)警反應(yīng)或?qū)ν獠吭O(shè)備作相應(yīng)的控制。 2.1主控制器選型 當(dāng)今

4、單片機(jī)廠商琳瑯滿目,MCU品種繁多、產(chǎn)品性能各異。不同型號(hào)的 單片機(jī)功能各異、開發(fā)裝置也不兼容。常用的單片機(jī)也有很多種,我們今年所 學(xué)的是Atmel的AT89系列單片機(jī),所以我們選用了ATMEL公司的AT89S51 單片機(jī),AT89S51是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片 機(jī),片內(nèi)含8Kbytes的可反復(fù)擦寫的只讀程序存儲(chǔ)器(PEROM)和256bytes 的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性 存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8051產(chǎn)品引腳兼容,片內(nèi)置通用 8位中央處理器(CPU)和FLASH存儲(chǔ)單元,功能強(qiáng)大AT89S51

5、單片機(jī)適用 于許多較為復(fù)雜控制應(yīng)用場合。AT89S51單片機(jī)具有低電壓供電和體積小等特 點(diǎn),四個(gè)端口只需要其中一個(gè)或兩個(gè)口就能滿足系統(tǒng)的設(shè)計(jì)需要,很適合便攜 手持式產(chǎn)品的設(shè)計(jì)使用;系統(tǒng)可用二節(jié)電池供電。盡管AT89S51單片機(jī)現(xiàn)在 并不是最完善最先進(jìn)的單片機(jī),但是就其功能及相關(guān)資料在市面上非常豐富, 編譯器已經(jīng)比較優(yōu)化我們對其開發(fā)環(huán)境及開發(fā)語言也相當(dāng)熟悉,對于本設(shè)計(jì)來 說我們完全可以選擇AT89s51單片機(jī)作為主控制器。 2.2 DS1302實(shí)時(shí)顯示時(shí)間的軟硬件 DS1302與CPU的連接需要三條線,即SCLK(7)、I/O(6)、RST(5)。,其中, 時(shí)鐘的顯示用LCD。 雖然DS1302

6、在主電源掉電后的耗電很小,但是,如果要長時(shí)間保證時(shí)鐘 正常,最好選用小型充電電池??梢杂美鲜诫娔X主板上的3.6V充電電池。如 果斷電時(shí)間較短(幾小時(shí)或幾天)時(shí),就可以用漏電較小的普通電解電容器代 替。100 F就可以保證1小時(shí)的正常走時(shí)。DS1302在第一次加電后,必須 進(jìn)行初始化操作。初始化后就可以按正常方法調(diào)整時(shí)間。 DS1302 存在時(shí)鐘精度不高,易受環(huán)境影響,出現(xiàn)時(shí)鐘混亂等缺點(diǎn)。 DS1302可以用于數(shù)據(jù)記錄,特別是對某些具有特殊意義的數(shù)據(jù)點(diǎn)的記錄,能 實(shí)現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時(shí)間同時(shí)記錄。這種記錄對長時(shí)間的連續(xù)測控系統(tǒng) 結(jié)果的分析及對異常數(shù)據(jù)出現(xiàn)的原因的查找具有重要意義。傳統(tǒng)的數(shù)據(jù)記錄

7、 方式是隔時(shí)采樣或定時(shí)采樣,沒有具體的時(shí)間記錄,因此,只能記錄數(shù)據(jù)而 無法準(zhǔn)確記錄其出現(xiàn)的時(shí)間;若采用單片機(jī)計(jì)時(shí),一方面需要采用計(jì)數(shù)器, 占用硬件資源,另一方面需要設(shè)置中斷、查詢等,同樣耗費(fèi)單片機(jī)的資源, 而且,某些測控系統(tǒng)可能不允許。但是,如果在系統(tǒng)中采用時(shí)鐘芯片DS1302, 則能很好地解決這個(gè)問題。 2.3顯示方案 直接要數(shù)碼管或者7段數(shù)碼管加驅(qū)動(dòng)顯示。 驅(qū)動(dòng)7段數(shù)碼管采用低電壓掃描驅(qū)動(dòng)具有:可以節(jié)約單片機(jī)I/O口,耗電 少、使用壽命長、成本低、亮度高、故障少、視角大、可視距離遠(yuǎn)等特點(diǎn); 但是顯示單一,只能顯示數(shù)字和幾個(gè)字母。就本設(shè)計(jì)而言需要顯示很多的操作 提示信息和報(bào)警信息,數(shù)碼管是難

8、以達(dá)到的;且本設(shè)計(jì)需要單片機(jī)I/O口并不 多,就AT89S51的資源來說不必要考慮單片機(jī)I/O不必要考慮I/O口資源不足 的問題。 2.4 報(bào)警方案 采用單片機(jī)產(chǎn)生不同的頻率信號(hào)來驅(qū)動(dòng)蜂鳴器和發(fā)光二極管產(chǎn)生聲光提 示,不同的溫度報(bào)警值對應(yīng)不同的頻率,此方案能完成聲音提示功能,同時(shí)給 人以提示可以類似電腦主機(jī)的蜂鳴報(bào)警,而且易于實(shí)現(xiàn)。 2.5鍵盤接口的選擇 在實(shí)際應(yīng)用中,要求設(shè)定的上下限溫度溫值會(huì)隨著實(shí)際情況的需要變化而 變化,因此,就要根據(jù)實(shí)際的情況來改變系統(tǒng)的溫度設(shè)定值。作為一個(gè)系統(tǒng), 一旦做成產(chǎn)品后,就很難通過對程序的修改來完成對各項(xiàng)初值的設(shè)定,因而只 有用按鍵的方式來重新對溫度值進(jìn)行設(shè)置

9、。 鍵盤有獨(dú)立式和行列式兩種,獨(dú)立式鍵盤適用于簡單的鍵盤設(shè)置中,行列 式鍵盤適用于復(fù)雜的鍵盤設(shè)置中。對于該系統(tǒng)中只需要簡單的對溫度進(jìn)行上、 下限值設(shè)置,因而我們選用獨(dú)立式鍵盤,這樣的鍵盤編程簡單、可靠 2.6紅外通信的基本原理 紅外通信是利用950nm近紅外波段的紅外線作為傳遞信息的媒體,即通 信信道。發(fā)送端采用脈時(shí)調(diào)制(PPM)方式,將二進(jìn)制數(shù)字信號(hào)調(diào)制成某一頻率 的脈沖序列,并驅(qū)動(dòng)紅外發(fā)射管以光脈沖的形式發(fā)送出去;接收端將接收到 的光脈轉(zhuǎn)換成電信號(hào),再經(jīng)過放大。濾波等處理后送給解調(diào)電路進(jìn)行解調(diào), 還為 二進(jìn)制數(shù)字信號(hào)后輸出。 2.6.1 紅外通信接口的硬件電路設(shè)計(jì) 單片機(jī)本身并不具備紅外通

10、信接口,但可以利用單片機(jī)的串行接口與片 外的紅外發(fā)射和接收電路,組成一個(gè)應(yīng)用于單片機(jī)系統(tǒng)的紅外串行通信接 口。 2.6.2 紅外發(fā)送器及原理 簡而言之,紅外通信的實(shí)質(zhì)就是對二進(jìn)制數(shù)字信號(hào)進(jìn)行調(diào)制與解調(diào),以便利用紅外信道進(jìn)行傳輸;紅外通信接口就是針對紅外信道的調(diào)制解調(diào)器。 紅外發(fā)送器電路包括脈沖振蕩器。驅(qū)動(dòng)管T1和T2.紅外發(fā)射管D1和D2等部分。其中脈沖振蕩器由NE555定時(shí)器。電阻(R1.R2)和電容(C1.C2)組成,用以產(chǎn)生38kHz的脈沖序列作為載波信號(hào);紅外發(fā)射管D1和D2選用Vishay公司生產(chǎn)的TSAL6238,用來向外發(fā)射950nm的紅外光束。 紅外發(fā)送器的工作原理為:串行數(shù)據(jù)

11、由單片機(jī)的串行輸出端TXD送出并驅(qū)動(dòng)T1管,數(shù)位“0”使T1管導(dǎo)通,通過T2管調(diào)制成38kHz的載波信號(hào),并利用兩個(gè)紅外發(fā)射管D1和D2以光脈沖的形式向外發(fā)送。數(shù)位“1”使T1管截止,紅外發(fā)射管D1和D2不發(fā)射紅外光。若傳送的波特率設(shè)為1200bps,則每個(gè)數(shù)位“0”對應(yīng)32個(gè)載波脈沖調(diào)制信號(hào)的時(shí)序,如圖2-1所示。 圖2-1遙控連發(fā)信號(hào)波形 紅外接收接收模塊是一個(gè)三端元件,使用單電源+5V電源,具有功耗 低。抗干擾能力強(qiáng),靈敏度高。其內(nèi)部結(jié)構(gòu)框圖如圖2-2所示。 圖2-2紅外遙控系統(tǒng)框圖 用于紅外線遙控電子鐘的遙控器包括至少一個(gè)按鍵、紅外線發(fā)射部分以及分別與按鍵和紅外線發(fā)射部分相連的遙控器控

12、制電路,其中所述按鍵分別表示電子鐘的各調(diào)節(jié)功能。受紅外線遙控的電子鐘包括顯示面、電子鐘控制電路,還包括接收上述遙控器發(fā)來的各種發(fā)光信號(hào)并將發(fā)光信號(hào)傳遞給電子鐘控制電路的紅外線接收部分,而且電子鐘控制電路還設(shè)有檢測來自紅外線接收部分的信號(hào)并執(zhí)行信號(hào)所表示的電子鐘的各調(diào)節(jié)功能的程序。2.6.3紅外遙控電路原理分析 當(dāng)紅外遙控器按下時(shí),紅外接收頭接收到紅外信號(hào),單片機(jī)產(chǎn)生中斷,在中斷程序進(jìn)行紅外解碼,再按解碼值判斷哪個(gè)按鍵按下。通過按鍵值對時(shí)間進(jìn)行設(shè)置。單片機(jī)通過讀取時(shí)鐘芯片1302,數(shù)據(jù)完成時(shí)間顯示功能,顯示部分采用數(shù)碼管顯示,可以分別顯示年,月,日,時(shí),分,秒,星期及溫度。3.主要電路與程序設(shè)計(jì)

13、 3.1 系統(tǒng)硬件的結(jié)構(gòu)框圖 根據(jù)時(shí)間和紅外遙控電子鐘設(shè)計(jì)的實(shí)際要求和設(shè)計(jì)方案的論證,系統(tǒng)主 要由 AT89S51及相關(guān)的復(fù)位電路組成的單片機(jī)最小系統(tǒng)、由DS18B20構(gòu)成感 溫測溫模塊、由液晶顯示屏LED128*64顯示模塊、由蜂鳴器及LED發(fā)光二級(jí) 管組成聲光報(bào)警單元、獨(dú)立式鍵盤輸入模塊5部分電路組成。另外為了不浪費(fèi) 單片機(jī)剩余資源,同時(shí)顯示出采集器采集溫度實(shí)時(shí)性,在此特增加了DS1302 實(shí)時(shí)時(shí)鐘模塊與用于上位機(jī)電腦通信的MAX232電平轉(zhuǎn)換驅(qū)動(dòng)模塊。綜上述 實(shí)際總體方案電路關(guān)系框圖如圖3-1所示: 圖3-1總體方案電路關(guān)系框圖 3.2單片機(jī)最小系統(tǒng)設(shè)計(jì) 單片機(jī)作為主控制器,主要是處理各

14、個(gè)部分重要的數(shù)并據(jù)協(xié)調(diào)各個(gè)模塊 正常工作的關(guān)鍵部件。AT89S51單片機(jī)具有4個(gè)8為I/O口;本設(shè)計(jì)中主要是 用了P0口顯示模塊的數(shù)據(jù)接口;P2口的P2.5、P2.6、P2.7位作為液晶屏的使 能接口;P1口的P1.0、 P1.1、 P1.2位分別接實(shí)時(shí)鐘ds1302的復(fù)位、時(shí)鐘、 數(shù)據(jù)引腳; P1口P1.3位作為集成數(shù)字溫度傳感器ds18b20的數(shù)據(jù)接口,用來 對ds18b20進(jìn)行讀寫操作;在此特別說明雖然P0內(nèi)部沒有上拉電阻,但是 在 本設(shè)計(jì)中只是做為液晶顯示屏的數(shù)據(jù)總線或地址總線;可以省去上拉電阻不 接。At89s51單片機(jī)接上相應(yīng)的電源和時(shí)鐘,組成單片最小系統(tǒng)系統(tǒng)如圖3-2 所示。 圖

15、3-2 單片最小系統(tǒng) 33 溫度電路設(shè)計(jì) DS18B20采用一線傳輸協(xié)議,可以使用外部電源工作方式也可以采用寄生電源工作方式,本設(shè)計(jì)中采用外部電源工作模式,具體電路如圖3-3: 圖3-3 外部電源工作模式3.4顯示電路設(shè)計(jì) 數(shù)碼管顯示電路如圖3-4:3.5聲光報(bào)警電路 本電路由發(fā)光二極管和蜂鳴器構(gòu)成如圖2-5: 圖3-4 數(shù)碼管顯示 圖3-5聲光報(bào)警電路3.6 實(shí)時(shí)時(shí)鐘模塊本模塊由DS1302時(shí)鐘芯片加晶振組成具體電路如圖3-6所示:3.7 紅外線接收電路 如圖3-7所示是電路的紅外線接收電路。 圖3-6 實(shí)時(shí)時(shí)鐘電路 圖3-7 紅外線接收電路4.軟件設(shè)計(jì)本系統(tǒng)的執(zhí)行方法是循環(huán)查詢加中斷執(zhí)行來

16、顯示和控制時(shí)間和溫度的。鍵盤掃描程序是用循環(huán)查詢的辦法,與上位機(jī)通信采用中斷的方法;這樣可以進(jìn)一步節(jié)省單片機(jī)的CPU資源,也可以保證實(shí)時(shí)響應(yīng)外部輸入。 4.1總模塊的流程圖 總模塊流程圖如4-1所示: 圖4-1 總模塊的流程圖 4.2 部分主要模塊的流程圖 讀取溫度DS18B20模塊的流程如圖4-2所示: 圖4-2 讀取溫度流程圖 4.3溫度轉(zhuǎn)換核心及其算法 4.3.1 DS18B20的內(nèi)部結(jié)構(gòu) DS18B20的內(nèi)部結(jié)構(gòu)功能模塊如圖3-3所示,主要有四部分組成,64位光 刻ROM、溫度傳感器、非易失性溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。R0M 中 的64位序列號(hào)是出廠前被光刻好的,他可以看作

17、是該DSISB20的地址序列碼, 每個(gè)DSI8B20的64位序列號(hào)均不相同。高低溫報(bào)警觸發(fā)器TH 和TL,配置寄 存器均由一個(gè)字節(jié)的E2PROM組成,使用一個(gè)存儲(chǔ)器功能命令可對 TH,TL或 配置寄存器寫入。配置寄存器中R1,R0決定溫度轉(zhuǎn)換的精度位數(shù):R1R0 00,9位精度,最大轉(zhuǎn)換時(shí)間為93.75 ms;R1R0 = 01,10位精度,最 大轉(zhuǎn)換時(shí)間為187.5 ms;R1R0 = 10,11位精度,最大轉(zhuǎn)換時(shí)間為375 ms; R1R0 =11,12位精度,最大轉(zhuǎn)換時(shí)間為750 ms;未編程時(shí)默認(rèn)為12位精 度。本系統(tǒng)采用的也是12位的精度。 4.3.2 DS18B20的內(nèi)存結(jié)構(gòu) DS

18、I8B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存RAM (便箋式的內(nèi)部 存儲(chǔ)器)和一個(gè)非易失性的可電擦除的EEPROM,后者存放高溫和低溫觸發(fā)器 TH,TL和結(jié)構(gòu)寄存器。便箋存儲(chǔ)器包含了9個(gè)連續(xù)字節(jié)(08),前兩個(gè)字 節(jié)是測得的溫度信息,字節(jié)0的內(nèi)容是溫度的低8位,字節(jié)1是溫度的高8 位,字節(jié)2是TH(溫度上限報(bào)警),字節(jié)3是TL(溫度下限報(bào)警),字節(jié)4 是配置寄存器,用于確定輸出分辨率9到12位。第5、6、7個(gè)字節(jié)是預(yù)留寄 存器,用于內(nèi)部計(jì)算。字節(jié)8是冗余檢驗(yàn)字節(jié),校驗(yàn)前面所有8個(gè)字節(jié)的CRC 碼,可用來保證通信正確。 4.3.3 DS18B20的測溫功能 當(dāng)DSI8B20接收到溫度轉(zhuǎn)換命令

19、后,開始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的0,1字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式以0062 5LSB形式表示。溫度值格式,其中“S”為標(biāo)志位,對應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位S=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時(shí),先將補(bǔ)碼變換為原碼,再計(jì)算十進(jìn)制值。DSI8B20完成溫度轉(zhuǎn)換后,就把測得的溫度值與 TH做比較,若T>TH或T<TL,則將該器件內(nèi)的告警標(biāo)志置位,并對主機(jī)發(fā)出的告警搜索命令做出響應(yīng)。DSl8B20工作過程中的協(xié)議:初始化 -> ROM操作命令 -> 存儲(chǔ)器操作命令-

20、> 處理數(shù)據(jù)(1) 初始化 單總線上的所有處理均從初始化開始 (2) ROM操作品令 總線主機(jī)檢測到DSl820的存在便可以發(fā)出ROM操作命令之一這些命令如:  指令      代碼 Read ROM(讀ROM)               33H Match ROM(匹配ROM)         &#

21、160; 55H Skip ROM(跳過ROM              CCH Search ROM(搜索ROM)           F0H Alarm search(告警搜索)           ECH (3) 存儲(chǔ)器操作命令   

22、指令                   代碼 Write Scratchpad(寫暫存存儲(chǔ)器)      4EH Read Scratchpad(讀暫存存儲(chǔ)器)      BEH Copy Scratchpad(復(fù)制暫存存儲(chǔ)器)  48H Convert Temperature(溫度變換) 

23、60;      44H Recall EPROM(重新調(diào)出)           B8H Read Power supply(讀電源)          B4H 4.3.4 溫度轉(zhuǎn)換算法及分析 由于DS18B20轉(zhuǎn)換后的代碼并不是實(shí)際的溫度值,所以要進(jìn)行計(jì)算轉(zhuǎn)換。 溫度高字節(jié)(MS Byte)高5位是用來保存溫度的正負(fù)(標(biāo)志為S的bit11 bi

24、t15),高字節(jié)(MS Byte)低3位和低字節(jié)來保存溫度值(bit0 bit10)。 其 中低字節(jié)(LS Byte)的低4位來保存溫度的小數(shù)位(bit0 bit 3)。由于本 程序采用的是0.0625的精度,小數(shù)部分的值,可以用后四位代表的實(shí)際數(shù)值乘 以0.0625,得到真正的數(shù)值,數(shù)值可能帶幾個(gè)小數(shù)位,所以采取小數(shù)舍入,保 留一位小數(shù)即可。也就說,本系統(tǒng)的溫度精確到了0.1度。算法核心:首先程 序判斷溫度是否是零下,如果是,則DS18B20保存的是溫度的補(bǔ)碼值,需要對 其低8位(LS Byte)取反加一變成原碼。處理過后把DS18B20的溫度Copy到 單片機(jī)的RAM中,里面已經(jīng)是溫度值的

25、Hex碼了,然后轉(zhuǎn)換Hex碼到BCD碼, 分別把小數(shù)位,個(gè)位,十位,百位的BCD碼存入RAM中。由于百位沒有用,默 認(rèn)情況是置為0A,在顯示屏上沒有任何顯示。 溫度算法核心代碼 /*ds18b20 sbit DQ =P17; /定義通信端口 /延時(shí)函數(shù) void delay(unsigned int i) while(i-); /初始化函數(shù) Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ復(fù)位 delay(8); /稍做延時(shí) DQ = 0; /單片機(jī)將DQ拉低 delay(80); /精確延時(shí) 大于 480us DQ = 1; /拉高總線 de

26、lay(14); x=DQ; /稍做延時(shí)后 如果x=0則初始化成功 x=1則初始化失敗 delay(20); /讀一個(gè)字節(jié) ReadOneChar(void) unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i-) DQ = 0; / 給脈沖信號(hào) dat>>=1; DQ = 1; / 給脈沖信號(hào) if(DQ) dat|=0x80; delay(4); return(dat); /寫一個(gè)字節(jié) WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i>

27、;0; i-) DQ = 0; DQ = dat&0x01; delay(5); DQ = 1; dat>>=1; /delay(4); /讀取溫度 ReadTemperature(void) unsigned char a=0;unsigned char b=0;unsigned int t=0;Init_DS18B20();WriteOneChar(0xCC); / 跳過讀序號(hào)列號(hào)的操作WriteOneChar(0x44); / 啟動(dòng)溫度轉(zhuǎn)換Init_DS18B20();WriteOneChar(0xCC); /跳過讀序號(hào)列號(hào)的操作WriteOneChar(0xBE);

28、 /讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度a=ReadOneChar();b=ReadOneChar();t=b;t<<=8;t=t|a;t=t*0.625;/有效位到小數(shù)點(diǎn)后1位return(t); /ds18b20結(jié)束5.調(diào)試結(jié)果記錄及分析為了提高調(diào)試的效率和成功率,我采用了先分別調(diào)試各單元模塊,再進(jìn)行整機(jī)調(diào)試的方法來調(diào)試。 5.1 數(shù)碼管顯示的測試方法和結(jié)果 把編寫的程序通過單片機(jī)仿真軟件進(jìn)行測試,如果在測試過程中,能夠 通過數(shù)碼管顯示屏正常顯示讀取時(shí)間的信息,那么說明子程序編寫正確;如果 測試中,顯示的結(jié)果與我們要求的不一致,那說明程序在編寫中出現(xiàn)錯(cuò)誤,就 應(yīng)

29、該修改子程序,直到能正確讀取時(shí)間信息為止。 5.2 DS18B20的測試方法和結(jié)果 利用仿真軟件不斷修改DS18B20仿真元件的溫度實(shí)際值,結(jié)果顯示的與之 相同,說明讀溫度顯示程序編寫正確。 5.3鍵盤程序的測試方法和結(jié)果 把編寫的鍵盤程序通過單片機(jī)仿真軟件進(jìn)行測試,在測試過程中,能夠?qū)?現(xiàn)時(shí)間的調(diào)整(自加、自減)功能,那么說明該子程序編寫正確;如果測試的結(jié) 果與要求的不一致,那么就應(yīng)該修改該子程序,直到正確為止,在修改過程中, 不必去改動(dòng)其它部分程序。 5.4 RS232模塊的測試方法和結(jié)果 將RS232的發(fā)送與接收端相互短接起來;利用串口調(diào)試助手發(fā)送一串字 符,如果馬上在調(diào)試助手的接收窗口中接收到剛才發(fā)送的字符,說明通信正確 可以進(jìn)行通信。 5.5 產(chǎn)品最終調(diào)試 在分別調(diào)試成功每一個(gè)部分的程序后,我們就可以把整個(gè)系統(tǒng)的程序進(jìn)行 調(diào)試,還是用單片機(jī)仿真軟件調(diào)試,在調(diào)試中,該程

溫馨提示

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

最新文檔

評論

0/150

提交評論