




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 PAGE61 / NUMPAGES62目 錄TOC o 1-3 h z uHYPERLINK l _Toc1989712561 緒論 PAGEREF _Toc198971256 h 1HYPERLINK l _Toc1989712572 總體設(shè)計(jì)方案 PAGEREF _Toc198971257 h 2HYPERLINK l _Toc1989712582.1設(shè)計(jì)思路 PAGEREF _Toc198971258 h 2HYPERLINK l _Toc1989712592.2設(shè)計(jì)方案 PAGEREF _Toc198971259 h 2HYPERLINK l _Toc1989712602.3 方案比
2、較論證 PAGEREF _Toc198971260 h 2HYPERLINK l _Toc1989712612.4 總體設(shè)計(jì)方框圖 PAGEREF _Toc198971261 h 3HYPERLINK l _Toc1989712623 設(shè)計(jì)原理與分析 PAGEREF _Toc198971262 h 4HYPERLINK l _Toc1989712633.1硬件電路主要芯片的功能介紹 PAGEREF _Toc198971263 h 4HYPERLINK l _Toc1989712643.1.1單片機(jī)主控制器 PAGEREF _Toc198971264 h 4HYPERLINK l _Toc198
3、9712653.1.2 溫度傳感器芯片 PAGEREF _Toc198971265 h 5HYPERLINK l _Toc1989712663.1.3 時(shí)鐘芯片DS1302 PAGEREF _Toc198971266 h 9HYPERLINK l _Toc1989712673.1.4 16*2LCD液晶顯示1602 PAGEREF _Toc198971267 h 12HYPERLINK l _Toc1989712684 硬件電路 PAGEREF _Toc198971268 h 15HYPERLINK l _Toc1989712694.1 單片機(jī)主控制模塊的設(shè)計(jì) PAGEREF _Toc1989
4、71269 h 15HYPERLINK l _Toc1989712704.2 時(shí)鐘電路模塊的設(shè)計(jì) PAGEREF _Toc198971270 h 15HYPERLINK l _Toc1989712714.3 溫度采集模塊設(shè)計(jì) PAGEREF _Toc198971271 h 16HYPERLINK l _Toc1989712724.4 功能按鈕設(shè)計(jì) PAGEREF _Toc198971272 h 16HYPERLINK l _Toc1989712734.5 16*2 LCD1602液晶顯示電路設(shè)計(jì) PAGEREF _Toc198971273 h 17HYPERLINK l _Toc1989712
5、744.6總體電路圖 PAGEREF _Toc198971274 h 17HYPERLINK l _Toc1989712755 系統(tǒng)軟件設(shè)計(jì) PAGEREF _Toc198971275 h 18HYPERLINK l _Toc1989712765.1 系統(tǒng)模塊的功能分劃分 PAGEREF _Toc198971276 h 18HYPERLINK l _Toc1989712775.2 總體程序流程框圖 PAGEREF _Toc198971277 h 18HYPERLINK l _Toc1989712785.3 時(shí)鐘調(diào)整時(shí)間的流程圖 PAGEREF _Toc198971278 h 20HYPERLI
6、NK l _Toc1989712795.4 修改鍵“UP”的功能流程圖 PAGEREF _Toc198971279 h 21HYPERLINK l _Toc1989712805.5溫度轉(zhuǎn)換流程圖 PAGEREF _Toc198971280 h 22HYPERLINK l _Toc1989712816 系統(tǒng)仿真測(cè)試 PAGEREF _Toc198971281 h 23HYPERLINK l _Toc1989712826.1 KEIL的使用 PAGEREF _Toc198971282 h 23HYPERLINK l _Toc1989712836.2 Protues軟件仿真 PAGEREF _Toc
7、198971283 h 28HYPERLINK l _Toc198971284致 PAGEREF _Toc198971284 h 31HYPERLINK l _Toc198971285參考文獻(xiàn) PAGEREF _Toc198971285 h 32HYPERLINK l _Toc198971286附錄一總體電路的PCB板圖 PAGEREF _Toc198971286 h 33HYPERLINK l _Toc198971287附錄二設(shè)計(jì)電路的仿真電路圖 PAGEREF _Toc198971287 h 34HYPERLINK l _Toc198971288附錄二萬(wàn)年歷源程序 PAGEREF _Toc
8、198971288 h 351 緒論隨著電子技術(shù)的迅速發(fā)展,特別是隨大規(guī)模集成電路出現(xiàn),給人類(lèi)生活帶來(lái)了根本性的改變。由其是單片機(jī)技術(shù)的應(yīng)用產(chǎn)品已經(jīng)走進(jìn)了千家萬(wàn)戶(hù)。其中電子萬(wàn)年歷就是一個(gè)典型的例子。而且在萬(wàn)年歷的基礎(chǔ)上還可以擴(kuò)展其它的實(shí)用功能,比如溫度計(jì)。萬(wàn)年歷是采用數(shù)字電路實(shí)現(xiàn)對(duì).時(shí),分,秒.數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭,車(chē)站, 碼頭辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?,由于?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過(guò)老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來(lái)了極大的方便,而且大擴(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序
9、自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、定時(shí)開(kāi)關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,但是所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究萬(wàn)年歷與擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。市場(chǎng)上有許多電子鐘的專(zhuān)用芯片如:LM8363、LM8365等,但它們功能單一,電路連接復(fù)雜,不便于調(diào)試制作。但是考慮到用單片機(jī)配合時(shí)鐘芯片,可制成功能任意的電子鐘,而且可以做到硬件簡(jiǎn)單、成本低廉。所以本系統(tǒng)采用了以廣泛使用的單片機(jī)AT89S52技術(shù)為核心,配合時(shí)鐘芯片DS1302。軟硬件結(jié)合,使硬件部分大為簡(jiǎn)化,提高了系統(tǒng)穩(wěn)定性,并采用LCD顯示電路、鍵盤(pán)電路,使人機(jī)交互簡(jiǎn)便易行,此外結(jié)合音樂(lè)鬧鈴電路、看門(mén)狗和供電
10、電路。本方案設(shè)計(jì)出的數(shù)字鐘可以顯示時(shí)間、設(shè)置鬧鈴功能之外。本文首先描述系統(tǒng)硬件工作原理,并附以系統(tǒng)結(jié)構(gòu)框圖加以說(shuō)明,著重介紹了本系統(tǒng)所應(yīng)用的各硬件接口技術(shù)和各個(gè)接口模塊的功能與工作過(guò)程,其次,詳細(xì)闡述了程序的各個(gè)模塊和實(shí)現(xiàn)過(guò)程。本設(shè)計(jì)以數(shù)字集成電路技術(shù)為基礎(chǔ),單片機(jī)技術(shù)為核心。本文編寫(xiě)的主導(dǎo)思想是軟硬件相結(jié)合,以硬件為基礎(chǔ),來(lái)進(jìn)行各功能模塊的編寫(xiě)。本設(shè)計(jì)中我重點(diǎn)研究實(shí)現(xiàn)了單片機(jī)+時(shí)鐘芯片這種模式的萬(wàn)年歷,從原理上對(duì)單片機(jī)和時(shí)鐘芯片有了深一步的認(rèn)識(shí),這些基本功能完成后,在軟件基礎(chǔ)上實(shí)現(xiàn)時(shí)間顯示。2 總體設(shè)計(jì)方案2.1設(shè)計(jì)思路用AT89S52處理產(chǎn)生部時(shí)鐘數(shù)據(jù)或者讀取外部時(shí)鐘數(shù)據(jù)和采集外部傳感器的
11、信息進(jìn)行處理,并暫時(shí)寄存在其部的儲(chǔ)存器中,再通過(guò)單片機(jī)調(diào)用部RAM的數(shù)據(jù)并送到LCD或者LED數(shù)碼管上顯示出來(lái)。2.2設(shè)計(jì)方案方案1:?jiǎn)纹瑱C(jī)一般的工作頻率在12MHz左右,而且部還有定時(shí)、計(jì)數(shù)器,可以產(chǎn)生精確的1S定時(shí),由次可以用定時(shí)中斷的方式產(chǎn)生精確的1S時(shí)間,秒位不斷的加1,再設(shè)計(jì)分、時(shí)、星期、日、月、年之間的進(jìn)制,使產(chǎn)生進(jìn)位。本方案只需要單片機(jī)最小系統(tǒng)加上顯示電路,再設(shè)計(jì)簡(jiǎn)單的程序算法就可以實(shí)現(xiàn)。對(duì)于測(cè)溫電路,可以使用熱敏電阻之類(lèi)的器件利用其感溫效應(yīng),在將隨被測(cè)溫度變化的電壓或電流采集過(guò)來(lái),進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理。在顯示電路上,采用數(shù)碼管就可以將年月日星期時(shí)分秒和
12、室溫度顯示出來(lái)方案2:萬(wàn)年歷時(shí)鐘采用單片機(jī)控制DS1302實(shí)時(shí)時(shí)鐘芯片,能達(dá)到走時(shí)準(zhǔn)確且掉電不丟失數(shù)據(jù)的。DS1302 與單片機(jī)之間能簡(jiǎn)單地采用同步串行的方式進(jìn)行通信僅需用到三個(gè)口線(xiàn)1 RES(復(fù)位)2 I/O (數(shù)據(jù)線(xiàn))3 SCLK(串行時(shí)鐘)。溫度計(jì)要靈敏反映室溫的變化這樣可采用單片機(jī)與數(shù)字式溫度傳感器DS18B20通訊,采集溫度數(shù)字信號(hào)進(jìn)行處理。DS18B20通過(guò)一個(gè)單線(xiàn)接口發(fā)送或接受信息,因此在單片機(jī)與DS18B20之間僅需一條連接(加上地線(xiàn))。在顯示電路上,采用16*2的LCD顯示。2.3 方案比較論證對(duì)于方案1,單片機(jī)雖然可以產(chǎn)生精確的秒信號(hào),但是單片機(jī)在處理閏年上會(huì)比較麻煩,加之
13、一旦單片機(jī)斷電后,所有的時(shí)間都要重新調(diào)整。對(duì)于測(cè)溫電路,采用熱敏電阻的輸出電壓-溫度特性,要加上A/D轉(zhuǎn)換,溫度傳感信息才能被單片機(jī)所接受,這種設(shè)計(jì)需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。在顯示電路上,采用LED數(shù)碼的話(huà)要用到單片機(jī)的許多I/O口,甚至I/O不夠用,還需要接上其它芯片大量擴(kuò)展I/O口,這是一個(gè)弊處。對(duì)于方案2:?jiǎn)纹瑱C(jī)不用去產(chǎn)生時(shí)鐘的數(shù)據(jù),時(shí)鐘的數(shù)據(jù)由DS1302獨(dú)立產(chǎn)生,并寄存在其部的寄存器上,單片機(jī)可以通過(guò)三總線(xiàn)與它通訊,不僅可以對(duì)它進(jìn)行讀取實(shí)時(shí)時(shí)鐘數(shù)據(jù),還可以對(duì)它進(jìn)行編程,設(shè)置它的工作模式。單片機(jī)只是處理從DS1302讀出來(lái)的數(shù)據(jù)并送顯示,大大減少了單片機(jī)的負(fù)擔(dān)。而且DS
14、1302可以通過(guò)后備電池繼續(xù)工作,部的時(shí)鐘還在走,下次啟動(dòng)后不用去調(diào)整時(shí)鐘,方便使用。基于同樣的原理,DS18B20也是一個(gè)獨(dú)立的傳感器,只要單片機(jī)配置它的工作狀態(tài)后它就可以獨(dú)立工作,部已經(jīng)把模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),并把數(shù)字信號(hào)儲(chǔ)存在其部的寄存中。同樣,單片機(jī)通過(guò)單總線(xiàn)與它通訊,可以處理912位的溫度數(shù)字?jǐn)?shù)據(jù)。在顯示電路上,采用16*2 LCD液晶顯示器,能容納年月日星期時(shí)分秒溫度等信息的顯示。LCD顯示器只需占用11個(gè)I/O口就可以工作了,不用其它擴(kuò)展芯片,總體上使電路簡(jiǎn)單化。2.4 總體設(shè)計(jì)方框圖AT89S52主控制器DS1302時(shí)鐘芯片DS18B20溫度傳感復(fù)位按鍵LCD顯示器鍵盤(pán)12M
15、Hz晶振振蕩 總體的方框圖如圖2.1所示,控制器采用單片機(jī)AT89S52,溫度傳感器采用DS18B20,用16*2的LCD液晶顯示屏實(shí)現(xiàn)年、月、日、星期、時(shí)、分、秒、溫度的顯示。圖2.1總體設(shè)計(jì)方框圖3 設(shè)計(jì)原理與分析3.1硬件電路主要芯片的功能介紹 本次設(shè)計(jì)的萬(wàn)年歷系統(tǒng)主要包括單片機(jī)主控制器、溫度傳感器芯片、時(shí)鐘芯片DS1302芯片、16*2LCD顯示芯片。3.1.1單片機(jī)主控制器AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存
16、儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線(xiàn),看門(mén)狗定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片晶振與時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下
17、一個(gè)中斷或硬件復(fù)位為止。(1)AT89S52的簡(jiǎn)介AT89S52是一個(gè)低功耗,高性能CMOS 8位單片機(jī),片含8kBytes ISP (In-system programmable)的可反復(fù)擦寫(xiě)1000次的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)與80C51引腳結(jié)構(gòu),芯片集成了通用8位中央處理器和ISP Flash存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的AT89S52可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性?xún)r(jià)比的解決方案。AT89S52具有如下特點(diǎn):40個(gè)引腳,8k Bytes Flash片程序存儲(chǔ)器,256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器
18、(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門(mén)狗(WDT)電路,片時(shí)鐘振蕩器。此外,AT89S52設(shè)計(jì)和配置了振蕩頻率可為0Hz并可通過(guò)軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時(shí)計(jì)數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。(2)AT89S52的部結(jié)構(gòu)圖AT89S52的部結(jié)構(gòu)圖如圖3.1所示:圖3.1 AT89S52部結(jié)構(gòu)圖3.1.2 溫度傳感器芯片(1)單線(xiàn)溫度傳感器DS18B20介紹DS18B20溫度傳感器是美國(guó)D
19、ALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)912位的數(shù)字值讀數(shù)方式。DS18B20的性能特點(diǎn)如下:獨(dú)特的單線(xiàn)接口僅需要一個(gè)端口引腳進(jìn)行通信;多個(gè)DS18B20可以并聯(lián)在惟一的三線(xiàn)上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;無(wú)須外部器件;可通過(guò)數(shù)據(jù)線(xiàn)供電,電壓圍為3.05.5;零待機(jī)功耗;溫度以9或12位數(shù)字;用戶(hù)可定義報(bào)警設(shè)置;報(bào)警搜索命令識(shí)別并標(biāo)志超過(guò)程序限定溫度(溫度報(bào)警條件)的器件;負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作; 圖3.2 DSl8B20的引腳圖DSl8B20數(shù)字溫度計(jì)
20、提供9位(二進(jìn)制)溫度讀數(shù),指示器件的溫度。信息經(jīng)過(guò)單線(xiàn)接口送入DSl8B20或從DSl8B20送出,因此從主機(jī)CPU到DSl8B20僅需一條線(xiàn)(和地線(xiàn))。DSl8B20的電源可以由數(shù)據(jù)線(xiàn)本身提供而不需要外部電源。因?yàn)槊恳粋€(gè)DSl8B20在出廠(chǎng)時(shí)已經(jīng)給定了唯一的序號(hào),因此任意多個(gè)DSl8B20可以存放在同一條單線(xiàn)總線(xiàn)上。這允許在許多不同的地方放置溫度敏感器件。DSl8B20的測(cè)量圍從-55攝式度到+125攝式度,增量值為0.5攝式度,可在l s(典型值)把溫度變換成數(shù)字。每一個(gè)DSl8B20包括一個(gè)唯一的64位長(zhǎng)的序號(hào),該序號(hào)值存放在DSl8B20部的ROM(只讀存貯器)中。開(kāi)始8位是產(chǎn)品類(lèi)型
21、編碼(DSl8B20編碼均為10H)。接著的48位是每個(gè)器件唯一的序號(hào)。最后8位是前面56位的CRC(循環(huán)冗余校驗(yàn))碼。DSl8B20中還有用于存儲(chǔ)測(cè)得的溫度值的兩個(gè)8位存貯器RAM,編號(hào)為0號(hào)和1號(hào)。1號(hào)存貯器存放溫度值的符號(hào),如果溫度為負(fù)(攝式度),則1號(hào)存貯器8位全為1,否則全為0。0號(hào)存貯器用于存放溫度值的補(bǔ)碼,LSB(最低位)的1表示0.5攝式度。將存貯器中的二進(jìn)制數(shù)求補(bǔ)再轉(zhuǎn)換成十進(jìn)制數(shù)并除以2就得到被測(cè)溫度值(-55攝式度-125攝式度)。DSl8B20的引腳如圖3.2所示。每只DS18B20都可以設(shè)置成兩種供電方式,即數(shù)據(jù)總線(xiàn)供電方式和外部供電方式。采取數(shù)據(jù)總線(xiàn)供電方式可以節(jié)省一
22、根導(dǎo)線(xiàn),但完成溫度測(cè)量的時(shí)間較長(zhǎng):采取外部供電方式則多用一根導(dǎo)線(xiàn),但測(cè)量速度較快。(2) DS18B20的測(cè)溫原理器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入。器件中還有一個(gè)計(jì)數(shù)門(mén),當(dāng)計(jì)數(shù)門(mén)打開(kāi)時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門(mén)的開(kāi)啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將55所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器1、溫度寄存器中,計(jì)數(shù)器1和溫度寄存器被預(yù)置在55所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)
23、生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器計(jì)數(shù)到0時(shí),停止溫度寄存器的累加,此時(shí)溫度寄存器中的數(shù)值就是所測(cè)溫度值。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門(mén)仍未關(guān)閉就重復(fù)上述過(guò)程,直到溫度寄存器值大致被測(cè)溫度值。另外,由于DS18B20單線(xiàn)通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,因此讀寫(xiě)時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作按協(xié)議進(jìn)行。操作協(xié)議為:初使化DS18B20(發(fā)復(fù)位脈沖)發(fā)ROM功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)。DS18B2
24、0采用3腳PR35封裝或8腳SOIC封裝,其部結(jié)構(gòu)框圖如圖3.3所示。圖3.3 DS18B20的部結(jié)構(gòu)圖64位ROM的結(jié)構(gòu)開(kāi)始8位是產(chǎn)品類(lèi)型的編號(hào),接著是每個(gè)器件的惟一的序號(hào),共有48位,最后8位是前面56位的CRC檢驗(yàn)碼,這也是多個(gè)DS18B20可以采用一線(xiàn)進(jìn)行通信的原因。溫度報(bào)警觸發(fā)器和,可通過(guò)軟件寫(xiě)入戶(hù)報(bào)警上下限。(3)溫度計(jì)算1、DS18B20用9位存貯溫值度,最高位為符號(hào)位,如表3.1為DS18B20的溫度存儲(chǔ)方式,負(fù)溫度S=1,正溫度S=0。如:00AAH為+85攝式度,0032H為25攝式度,F(xiàn)F92H為55攝式度表3.1 18B20用9位的溫度存儲(chǔ)方式2、DS18B20用12位
25、存貯溫值度,最高位為符號(hào)位,如表3.2為DS18B20的溫度存儲(chǔ)方式,負(fù)溫度S=1,正溫度S=0。如:0550H為+85攝式度,0191H為25.0625攝式度,FC90H為-55攝式度。 表3.2 18B20用12位的溫度存儲(chǔ)方式DS18B20溫度傳感器的部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EEROM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如圖3.4所示。頭2個(gè)字節(jié)包含測(cè)得的溫度信息,第3和第4字節(jié)和的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第5個(gè)字節(jié),為配置寄存器,它的容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。圖3.4 DS18B20存儲(chǔ)器結(jié)構(gòu)DS18B20工作時(shí)寄存器中的
26、分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖3.2所示。低5位一直為,是工作模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式,DS18B20出廠(chǎng)時(shí)該位被設(shè)置為0,用戶(hù)要去改動(dòng),R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來(lái)設(shè)置分辨率。由表3.3可見(jiàn),DS18B20溫度轉(zhuǎn)換的時(shí)間比較長(zhǎng),而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間越長(zhǎng)。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。表3.3 DS18B20溫度轉(zhuǎn)換時(shí)間表高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來(lái)檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開(kāi)
27、始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1、2字節(jié)。單片機(jī)可以通過(guò)單線(xiàn)接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先,高位在后,數(shù)據(jù)格式以0.0625LSB形式表示。當(dāng)符號(hào)位S0時(shí),表示測(cè)得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位S1時(shí),表示測(cè)得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)值;表3.4為部分溫度值對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù):表3.4 部分溫度值對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù)溫度/二進(jìn)制表示十六進(jìn)制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0
28、001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H3.1.3 時(shí)鐘芯片DS1302(1)時(shí)鐘芯片DS1302的性能DS1302 是DALLAS 公司推出的涓流充電時(shí)鐘芯片含有一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31 字節(jié)靜態(tài)R
29、AM 通過(guò)簡(jiǎn)單的串行接口與單片機(jī)進(jìn)行通信實(shí)時(shí)時(shí)鐘/日歷電路提供秒分時(shí)日日期月年的信息每月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整時(shí)鐘操作可通過(guò)AM/PM 指示決定采用24 或12 小時(shí)格式DS1302 與單片機(jī)之間能簡(jiǎn)單地采用同步串行的方式進(jìn)行通信僅需用到三個(gè)口線(xiàn)1 RES 復(fù)位2 I/O 數(shù)據(jù)線(xiàn)3 SCLK串行時(shí)鐘時(shí)鐘/RAM 的讀/寫(xiě)數(shù)據(jù)以一個(gè)字節(jié)或多達(dá)31 個(gè)字節(jié)的字符組方式通信DS1302 工作時(shí)功耗很低保持?jǐn)?shù)據(jù)和時(shí)鐘信息時(shí)功率小于1mW。實(shí)時(shí)時(shí)鐘具有能計(jì)算2100 年之前的秒、分、時(shí)、日、日期、星期、月、年的能力還有閏年調(diào)整的能力318 位暫存數(shù)據(jù)存儲(chǔ)RAM串行I/O 口方式使得管腳數(shù)量 最少寬
30、圍工作電壓2.0 5.5V工作電流2.0V 時(shí),小于300nA讀/寫(xiě)時(shí)鐘或RAM 數(shù)據(jù)時(shí)有兩 種傳送方式單字節(jié)傳送和多字 圖3.5 DS1302的封裝與引腳功能節(jié)傳送字符組方式8 腳DIP 封裝或可選的8 腳SOIC 封裝根據(jù)表面裝配,如圖3.5所示簡(jiǎn)單3 線(xiàn)接口與TTL 兼容Vcc=5V可選工業(yè)級(jí)溫度圍-40 +85(2)時(shí)鐘芯片DS1302的工作原理DS1302在每次進(jìn)行讀、寫(xiě)程序前都必須初始化,先把SCLK端置 “0”,接著把RST端置“1”,最后才給予SCLK脈沖;表3.5為DS1302的控制字,此控制字的位7必須置1,若為0則不能把對(duì)DS1302進(jìn)行讀寫(xiě)數(shù)據(jù)。對(duì)于位6,若對(duì)程序進(jìn)行讀
31、/寫(xiě)時(shí)RAM=1,對(duì)時(shí)間進(jìn)行讀/寫(xiě)時(shí),CK=0。位1至位5指操作單元的地址。位0是讀/寫(xiě)操作位,進(jìn)行讀操作時(shí),該位為1;該位為0則表示進(jìn)行的是寫(xiě)操作??刂谱止?jié)總是從最低位開(kāi)始輸入/輸出的。“CH”是時(shí)鐘暫停標(biāo)志位,當(dāng)該位為1時(shí),時(shí)鐘振蕩器停止,DS1302處于低功耗狀態(tài);當(dāng)該位為0時(shí),時(shí)鐘開(kāi)始運(yùn)行?!癢P”是寫(xiě)保護(hù)位,在任何的對(duì)時(shí)鐘和RAM的寫(xiě)操作之前,WP必須為0。當(dāng)“WP”為1時(shí),寫(xiě)保護(hù)位防止對(duì)任一寄存器的寫(xiě)操作。a.DS1302的控制字節(jié)DS1302的控制字如表3.5所示。控制字節(jié)的高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫(xiě)入DS1302中,位6如果0,則表示存取日歷時(shí)鐘數(shù)
32、據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫(xiě)操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開(kāi)始輸出表3.5 DS1302的控制字b.數(shù)據(jù)輸入輸出(I/O)在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫(xiě)入DS1302,數(shù)據(jù)輸入從低位即位0開(kāi)始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。如下圖3.6所示:圖3.6 DS1302讀/寫(xiě)時(shí)序圖c.DS1302的數(shù)據(jù)讀寫(xiě)DS1302單字節(jié)讀寫(xiě)的波形如圖3.6所示。由波形可以看出,無(wú)論是從DS1302中讀一個(gè)數(shù)據(jù),還是寫(xiě)一個(gè)字
33、節(jié)數(shù)據(jù)到DS1302中,都要先寫(xiě)一個(gè)命令字到DS1302中。即通過(guò)SCLK引腳(7號(hào)引腳)向DS1302輸入8個(gè)脈沖,把I/O引腳(6號(hào)引腳)上的命令字寫(xiě)入DS1302。為了啟動(dòng)數(shù)據(jù)傳輸,引腳(5號(hào)引腳)應(yīng)為高電平。在將由0置1的過(guò)程中,SCLK引腳必須為邏輯0。然后才能進(jìn)行讀寫(xiě)操作。I/O引腳上的數(shù)據(jù)在SCLK的上升沿串行輸入(寫(xiě)數(shù)據(jù)到DS1302),在SCLK的下降沿串行輸出(讀數(shù)據(jù))。d.DS1302的寄存器DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時(shí)間寄存器與其控制字見(jiàn)表3.6所示:寫(xiě)寄存器讀寄存器Bit7Bit6Bit5Bit4
34、Bit3Bit2Bit1Bit080H81HCH10秒秒82H83H10分分84H85H12/010時(shí)時(shí)/PM86H87H0010日日88H89H00010月月8AH8BH00000星期8CH8DH10 年年8EH8FHWP0000000表3.6 DS1302的日歷、時(shí)間寄存器此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器與與RAM相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫(xiě)除充電寄存器外的所有寄存器容。 DS1302與RAM相關(guān)的寄存器分為兩類(lèi):一類(lèi)是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為C0HFDH,其中奇數(shù)為讀操作,偶數(shù)為寫(xiě)操
35、作;另一類(lèi)為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫(xiě)所有的RAM的31個(gè)字節(jié),命令控制字為FEH(寫(xiě))、FFH(讀)。 3.1.4 16*2LCD液晶顯示1602(1)1602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:V0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:RW為讀寫(xiě)信號(hào)線(xiàn),高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)RS和RW共同為低電平時(shí)可以寫(xiě)入指令或者顯
36、示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線(xiàn)。第1516腳:空腳。指令RSR/WD7D6D5D4D3D2D1D0清顯示0000000001光標(biāo)返回000000001*置輸入模式000000011/DS顯示開(kāi)/關(guān)控制0000001DCB光標(biāo)或字符移位000001S/CR/L*置功能00001DLNF*置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址(AGG)置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址(ADD)讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址(AC)
37、寫(xiě)數(shù)到CGRAM或DDRAM10要寫(xiě)的數(shù)從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)(2)1602液晶模塊部的控制器共有11條控制指令,如表3.7所示:表3.7 控制指令它的讀寫(xiě)操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。(說(shuō)明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)效。指令4:顯示開(kāi)關(guān)控制。 D:控制整體顯示的開(kāi)與關(guān),高電平表示開(kāi)顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開(kāi)與關(guān),
38、高電平表示有光標(biāo),低電平表示無(wú)光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標(biāo)或顯示移位 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。指令6:功能設(shè)置命令 DL:高電平時(shí)為4位總線(xiàn),低電平時(shí)為8位總線(xiàn) N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 F: 低電平時(shí)顯示5*7的點(diǎn)陣字符,高電平時(shí)顯示5*10的點(diǎn)陣字符。指令7:字符發(fā)生器RAM地址設(shè)置。指令8:DDRAM地址設(shè)置。指令9:讀忙信號(hào)和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫(xiě)數(shù)據(jù)。指令11:讀數(shù)據(jù)。(3)DM-162液晶顯示模塊可以和單片機(jī)AT89C5
39、2直接接口,電路如圖3.7所示:圖3.7 接口電路液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,表3.8是DM-162的部顯示地址。表3.8 DM-16的部顯示地址比如第二行第一個(gè)字符的地址是40H,那么是否直接寫(xiě)入40H就可以將光標(biāo)定位在第二行第一個(gè)字符的位置呢?這樣不行,因?yàn)閷?xiě)入顯示地址時(shí)要求最高位D7恒定為高電平1所以實(shí)際寫(xiě)入的數(shù)據(jù)應(yīng)該是01000000B(40H)+10000000B(80H)=11000000B(C0H)(4)基本操作時(shí)序如圖3.8所示:讀狀
40、態(tài)輸入:RS=L,RW=H,E=H 輸出:DB0DB7=狀態(tài)字寫(xiě)指令輸入:RS=L,RW=L,E=下降沿脈沖,DB0DB7=指令碼讀數(shù)據(jù) 輸入:RS=H,RW=H,E=H 輸出:DB0DB7=數(shù)據(jù)寫(xiě)數(shù)據(jù)輸入:RS=H,RW=L,E=下降沿脈沖,DB0DB7=數(shù)據(jù)圖3.8 LCD的讀寫(xiě)時(shí)序4 硬件電路4.1 單片機(jī)主控制模塊的設(shè)計(jì)AT89S52單片機(jī)為40引腳雙列直插芯片, MCS-51單片機(jī)共有4個(gè)8位的I/O口(P0、P1、P2、P3),每一條I/O線(xiàn)都能獨(dú)立地作輸出或輸入。單片機(jī)的最小系統(tǒng)如下圖所示,18引腳和19引腳接時(shí)鐘電路,XTAL1接外部晶振和微調(diào)電容的一端,在片它是振蕩器倒相放大
41、器的輸入,XTAL2接外部晶振和微調(diào)電容的另一端,在片它是振蕩器倒相放大器的輸出.第9引腳為復(fù)位輸入端,接上電容,電阻與開(kāi)關(guān)后夠上電復(fù)位電路,20引腳為接地端,40引腳為電源端. 如圖4.1所示:圖4.1 單片機(jī)最小系統(tǒng)4.2 時(shí)鐘電路模塊的設(shè)計(jì)圖4.2是 DS1302與單片機(jī)的連接,其中Vcc1為后備電源,Vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768KHz晶振。RST是
42、復(fù)位/片選線(xiàn),通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過(guò)程中RSTS置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電動(dòng)行時(shí),在Vcc大于等于2.5V之前,RST必須保持低電平。中有在SCLK 為低電平時(shí),才能將RST置為高電平,I/O為串行數(shù)據(jù)輸入端(雙向)。SCLK始終是輸入端。圖4.2 時(shí)鐘芯片與單片機(jī)的連接4.3 溫度采集模塊設(shè)計(jì)如圖4.3所示,采用數(shù)字式
43、溫度傳感器DS18B20,它是數(shù)字式溫度傳感器,具有測(cè)量精度高,電路連接簡(jiǎn)單特點(diǎn),此類(lèi)傳感器僅需要一條數(shù)據(jù)線(xiàn)進(jìn)行數(shù)據(jù)傳輸,使用2.4與DS18B20的I/O口連接加一個(gè)上拉電阻,Vcc接電源,Vss接地。圖4.3 溫度傳感器與單片機(jī)的連接4.4 功能按鈕設(shè)計(jì)當(dāng)按鈕被按下時(shí),該按鈕對(duì)應(yīng)的I/O口被拉為低電平,松開(kāi)時(shí)按鈕對(duì)應(yīng)的I/O口由部的上拉電阻將該I/O拉為高電平,如圖4.4所示:圖4.4 功能按鍵電路4.5 16*2 LCD1602液晶顯示電路設(shè)計(jì)根據(jù)其讀寫(xiě)的時(shí)序模擬總線(xiàn)的方式與單片機(jī)進(jìn)行數(shù)據(jù)的通訊,首先將數(shù)據(jù)從I/O口讀入或送出,再選擇R/W 和RS的電平進(jìn)行不同的操作,在使能端E下降沿時(shí)
44、觸發(fā)數(shù)據(jù)的讀入或送出。注意P0口要接上拉電阻,如圖4.5所示:圖4.5 LCD液晶顯示屏與單片機(jī)的連接4.6總體電路圖本設(shè)計(jì)的具在溫度指示的數(shù)字萬(wàn)年歷的總體電路圖如圖4.6所示:圖4.6 總體電路圖5 系統(tǒng)軟件設(shè)計(jì)5.1 系統(tǒng)模塊的功能分劃分萬(wàn)年歷程序設(shè)計(jì)總體上分為四個(gè)大模塊,分別是DS1302時(shí)鐘程序模塊、DS18B20測(cè)溫模塊、LCD顯示模塊、鍵盤(pán)功能模塊。a. DS1302時(shí)鐘程序模塊包括設(shè)置DS1302初始時(shí)間、從DS1302 讀時(shí)間子程序、寫(xiě)1302一字節(jié)子程序、讀1302一字節(jié)、關(guān)閉寫(xiě)保護(hù)、開(kāi)啟寫(xiě)保護(hù)、關(guān)閉時(shí)鐘、延時(shí)子100MS程序。b. DS18B20測(cè)溫模塊包括DS18B20的
45、初始化子程序、DS18B20數(shù)據(jù)處理子程序、讀出溫度值的子程序、DS18B20復(fù)位子程序、寫(xiě)DS18B20的1位字節(jié)子程序、讀DS18B20的1個(gè)字節(jié)子程序。c. LCD顯示模塊包括LCD初始化子程序、寫(xiě)入控制命令的子程序、判斷LCD顯示器是否忙的子程序、向LCD中的DDRAM中寫(xiě)數(shù)據(jù)、查詢(xún)LCD字符表、調(diào)整模式的顯示子程序、正常模式LCD顯示子程序。d. 鍵盤(pán)功能模塊包括模式選擇按鍵SET子程序、調(diào)整模式選擇子程序、OUT鍵掃描子程序、UP按鍵掃描子程序、DOWN按鍵掃描子程序。5.2 總體程序流程框圖本設(shè)計(jì)中,實(shí)現(xiàn)功能的總體程序流程框圖如下圖5.1所示:調(diào)用調(diào)整模式模塊NO停止時(shí)鐘,置時(shí)鐘
46、停止標(biāo)志位YESCOUNT值賦給A調(diào)用JMP A+DPTR散轉(zhuǎn)指令散轉(zhuǎn)到8個(gè)跳轉(zhuǎn)首地址由COUNT的值轉(zhuǎn)入秒/分/時(shí)/星期/日期/月/年的修改位的操作掃描OUT、UP、DOWN三個(gè)按鍵OUT、UP、DOWN三個(gè)按鍵如果有按下,執(zhí)行相應(yīng)的功能調(diào)用調(diào)整模式下的顯示子程序返回標(biāo)志位DONE的查詢(xún)當(dāng)前時(shí)鐘停止嗎?標(biāo)志位DONE=1嗎?NO調(diào)用LCD顯示模塊掃描SET按鈕清時(shí)鐘停止、調(diào)整模式標(biāo)志位4個(gè)模塊的初始化程序開(kāi)始SET鍵有按下COUNT加1YES圖5.1 總體程序流程框圖5.3 時(shí)鐘調(diào)整時(shí)間的流程圖時(shí)鐘調(diào)整時(shí)間的流程圖5.2所示:YES時(shí)鐘顯示開(kāi)始判斷SET鍵是否有按下?COUNT計(jì)算按鍵的次數(shù)
47、1次,進(jìn)入秒調(diào)整2次,進(jìn)入分調(diào)整3次,進(jìn)入時(shí)調(diào)整等待按鍵等待按鍵等待按鍵UP有效DOWN有效OUT有效DOWN有效UP有效DOWN有效UP有效OUT有效OUT有效加1減1加1減1加1減1NO4、57次同理周、日/月/年的調(diào)整退出時(shí)間調(diào)整圖5.2時(shí)鐘調(diào)整時(shí)間的流程5.4 修改鍵“UP”的功能流程圖修改鍵“UP”的功能流程圖如圖5.3所示:開(kāi)始端口寫(xiě)1,并掃描UP鍵是否有按下?退出UP鍵的掃描NOA賦給秒的單元內(nèi)容秒對(duì)應(yīng)的單元內(nèi)容賦給A,A再加1年位的加1操作加1后秒內(nèi)容溢出嗎?BCD碼調(diào)整溢出置0退出秒的加1操作YE溫度轉(zhuǎn)換讀取溫度數(shù)值流程圖SNO散轉(zhuǎn)指令JMP A+DPTR賦跳轉(zhuǎn)的表頭給DPT
48、RA的值為0是退出秒位的加1操作分位的加1操作時(shí)位的加1操作星期位的加1操作日位的加1操作月位的加1操作圖5.3修改鍵“UP”的功能流程圖YES延時(shí),將COUNT的值賦給A5.5溫度轉(zhuǎn)換流程圖初始化DS18B20開(kāi)始應(yīng)答脈沖發(fā)起Skip Rom命令發(fā)起Convert命令延時(shí)1S等待溫度轉(zhuǎn)換完成初始化DS18B20應(yīng)答脈沖發(fā)起Read Seratchpad命令讀取第1、2字節(jié)即為溫度數(shù)據(jù)NOYESYESNO單片機(jī)實(shí)現(xiàn)對(duì)溫度傳感器DS18B20的溫度轉(zhuǎn)換讀取溫度數(shù)值流程圖如下圖5.4所示:圖5.4溫度轉(zhuǎn)換讀取溫度數(shù)值流程圖6 系統(tǒng)仿真測(cè)試首先把各個(gè)模塊的程序編好,在偉福W6000中調(diào)試沒(méi)有錯(cuò)誤后,
49、再到Protues 7.1中畫(huà)好并連接電路圖進(jìn)行程序仿真。各個(gè)部分的功能后再把它們綜合到一個(gè)主程序中去,在偉福W6000中調(diào)試通過(guò)后再把它用Keil uVision2軟件把程序生成hex格式最后到Protues 7.1中仿真。在綜合到一起的時(shí)候,出現(xiàn)了RAM分配錯(cuò)誤的問(wèn)題,因?yàn)樵仁且粋€(gè)模塊子程序在運(yùn)行,RAM的分配只要不要跟子程序中的分配不沖突就可以了,但是在綜合各個(gè)模塊子程序的時(shí)候就會(huì)出現(xiàn)RAM分配沖突的問(wèn)題。最好是在設(shè)計(jì)程序之前先把RAM的空間分配好。6.1 KEIL的使用Keil uVision2是目前使用廣泛的單片機(jī)開(kāi)發(fā)軟件,它集成了源程序編輯和程序調(diào)試于一體,支持匯編、C、PL/M
50、語(yǔ)言。keil C51 v6.12 的使用: 點(diǎn)擊桌面快捷圖標(biāo),如圖6.1所示,可以直接進(jìn)入主畫(huà)面:在Keil系統(tǒng)中,每做個(gè)獨(dú)立的程序,都視為工程(或者叫項(xiàng)目)。首先從菜但的“工程”中“新建工程.”,建立我們圖6.1 快捷圖標(biāo)將要做的工程項(xiàng)目如圖6.2所示:圖6.2 新建建工程新建的工程要起個(gè)與工程項(xiàng)目意義一致的名字,可以是中文名;我們這里的程序是實(shí)驗(yàn)測(cè)試程序,所以起的名字為 Test ,并將 Test 工程“保存”到 D:Keil 下如圖6.3所示:圖6.3 新建名工程窗口接下來(lái),Keil環(huán)境要求我們?yōu)?Test 工程選擇一個(gè)單片機(jī)型號(hào);我們選擇 Atmel 公司的 89C52(雖然我們使用
51、的是89S52,但由于89S52與89C52、外部結(jié)構(gòu)完全一樣,所以這里依然選擇“89C52”),如圖6.4所示: 圖6.4選擇工程項(xiàng)目“確定”后工程項(xiàng)目就算建立了。立了工程項(xiàng)目,肯定要實(shí)施這個(gè)工程,現(xiàn)在就為工程添加程序;點(diǎn)擊“文件”中的“新建”,新建一個(gè)空白文檔,如圖6.5所示;這個(gè)空白文檔就是讓我們編寫(xiě)單片機(jī)程序的場(chǎng)所。在這里你可以進(jìn)行編輯、修改等操作。圖6.5 新建文件寫(xiě)完后再檢查一下,并保存文件,保存文件時(shí),其文件名最好與前面建立的工程名一樣(當(dāng)然這里為 Test 了),其擴(kuò)展名必須為 .Asm !“文件名”中一定要寫(xiě)全,如:Test.Asm ;保存后的文檔彩色語(yǔ)法會(huì)起作用,將關(guān)鍵字實(shí)
52、行彩色顯示,如圖6.6所示:圖6.6 保存文檔保存了Asm文件后,還要將其添加到工程中。具體做法如下:(如下圖6.7所示)鼠標(biāo)右鍵點(diǎn)擊 “Source Group 1”,在彈出的菜單中選“增加文件到組 Source Group 1”圖6.7 添加文件在接下來(lái)出現(xiàn)的窗口中,選擇“文件類(lèi)型”為“Asm源文件(*.a*,*.src)”(由于我們使用的是匯編語(yǔ)言,所以選擇Asm源文件),選中剛才保存的 Test.Asm,按“Add”,再按“關(guān)閉”,文件就添加到了工程中,如圖6.8所示:圖6.8 添加到工程中向工程添加了源文件后,鼠標(biāo)右鍵點(diǎn)擊 “TarGet 1” ,在彈出的菜單中選“目標(biāo) Target
53、 1 屬性”:在打開(kāi)的話(huà)框中,選擇“輸出”選項(xiàng)卡,在這個(gè)選項(xiàng)卡中,“E生成HEX文件”選項(xiàng)前要打勾,按“確定”退出,如圖6.9所示。圖6.9 目標(biāo)TarGet 1屬性最后,從菜單的“工程”中執(zhí)行“R重新構(gòu)造所有目標(biāo)”(或者按下圖紅圈中的按鈕),匯編、連接、創(chuàng)建Hex文件一氣呵成;在工程文件的目錄下就會(huì)生成與工程名一樣的一些文件,其部分文件我們并不必關(guān)心,而生成的 Hex 文件是我們需要的!它是要燒寫(xiě)到單片機(jī)中的最終代碼,也就是單片機(jī)可以執(zhí)行的程序。 這里生成的是 Test.HEX ,稍后就寫(xiě)入。若在下面的狀態(tài)窗中有錯(cuò)誤提示,就需要再次編輯、修改源程序(如語(yǔ)法、字符有錯(cuò)等)、保存、構(gòu)造所有。直至
54、沒(méi)有錯(cuò)誤,如圖6.10所示:圖6.10生成hex格式接下來(lái),我們啟動(dòng) Protues軟件仿真,將剛剛生成的 Test.Hex 燒寫(xiě)到單片機(jī)芯片,在實(shí)驗(yàn)板上實(shí)際驗(yàn)證一下。6.2 Protues軟件仿真Proteus ISIS是英國(guó)Labcenter公司開(kāi)發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點(diǎn)是:實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)與其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤(pán)和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯
55、分析儀、信號(hào)發(fā)生器等。支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類(lèi)型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以與各種外圍芯片。提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以觀(guān)察各個(gè)變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2等軟件。具有強(qiáng)大的原理圖繪制功能??傊?,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。(1)進(jìn)入Proteus ISIS雙擊桌面上的ISIS 6
56、Professional圖標(biāo)或者單擊屏幕左下方的“開(kāi)始”“程序”“Proteus 6 Professional”“ISIS 6 Professional”,出現(xiàn)如圖6.11所示屏幕,表明進(jìn)入Proteus ISIS集成環(huán)境。 圖6.11 啟動(dòng)屏幕(2)工作界面Proteus ISIS的工作界面是一種標(biāo)準(zhǔn)的Windows界面,如圖4-2所示。包括:標(biāo)題欄、主菜單、標(biāo)準(zhǔn)工具欄、繪圖工具欄、狀態(tài)欄、對(duì)象選擇按鈕、預(yù)覽對(duì)象方位控制按鈕、仿真進(jìn)程控制按鈕、預(yù)覽窗口、對(duì)象選擇器窗口、圖形編輯窗口,如圖6.12所示:圖6.12 工作界面根據(jù)設(shè)計(jì)原理畫(huà)出仿真原理圖(如附錄二),檢查電路連接無(wú)誤后,雙擊單片機(jī)芯
57、片AT89S52,如圖6.13所示:圖6.13 燒寫(xiě)程序把生成的 Test.Hex 燒寫(xiě)到單片機(jī)芯片,點(diǎn)擊仿真進(jìn)程控制按鈕,點(diǎn)擊運(yùn)行,觀(guān)看LCD液晶顯示效果,若在實(shí)驗(yàn)板上實(shí)際驗(yàn)證的并不是我們預(yù)期的效果,那么,就需要再次返回到編輯、修改源程序那一步,修改后再構(gòu)造所有,再次將生成的Hex文件在51ISP中燒寫(xiě)、實(shí)驗(yàn),直至成功!如下圖6.14是本設(shè)計(jì)測(cè)試的效果顯示。圖6.14 測(cè)試結(jié)果顯示致 本次設(shè)計(jì)是我們遇到過(guò)的較大的設(shè)計(jì),所以遇到的問(wèn)題也比較的多,尤其是以前沒(méi)有接觸過(guò)如此復(fù)雜的硬件電路以與軟件編程,在軟、硬件設(shè)計(jì)和調(diào)試中遇到了不少的困難,在建軍老師的耐心指導(dǎo)下和同學(xué)的幫助才逐一克服了難題,學(xué)習(xí)到
58、了不少的專(zhuān)業(yè)知識(shí)。在整個(gè)設(shè)計(jì)過(guò)程之前,我已經(jīng)在網(wǎng)上找了相關(guān)方面的資料,萬(wàn)事開(kāi)始難,一開(kāi)始不知道從哪里下手。后來(lái)慢慢學(xué)會(huì)分析系統(tǒng),將系統(tǒng)模塊化,各個(gè)模塊可以在軟件或者硬件上實(shí)現(xiàn)。在確保各個(gè)模塊的硬件電路和與之相搭配的程序能夠正常工作后在把它們組成一個(gè)系統(tǒng)。由于我的理論知識(shí)水平有限,實(shí)踐能力和設(shè)計(jì)經(jīng)驗(yàn)不足,在設(shè)計(jì)的過(guò)程中難免還存在一些問(wèn)題甚至是錯(cuò)誤。懇請(qǐng)各位老師批評(píng)指導(dǎo),以便我在以后的學(xué)習(xí)和工作中加以改正。我要衷心的感我的指導(dǎo)老師和在這三年中辛勤培育過(guò)我的所有老師與領(lǐng)導(dǎo),希望我的畢業(yè)設(shè)計(jì)能給各位老師交上一份滿(mǎn)意的答卷,也為我這三年的大學(xué)生活畫(huà)上一個(gè)圓滿(mǎn)的句號(hào)!本次畢業(yè)設(shè)計(jì)能夠順利完成離不開(kāi)我的指導(dǎo)
59、老師建軍老師的幫助,在老師的細(xì)心指導(dǎo)下,本設(shè)計(jì)得以順利完成,在這里對(duì)他的幫助表示衷心的感。當(dāng)然也離不開(kāi)同學(xué)對(duì)我的大力支持,在此一并對(duì)他們表示感!在指導(dǎo)老師的幫助下,我能夠認(rèn)清自己的不足,并能很好的解決這些問(wèn)題。在今后的日子里,我會(huì)進(jìn)一步加強(qiáng)自己的動(dòng)手能力,豐富自己的知識(shí)面,并在以后工作崗位中發(fā)揮我所長(zhǎng),為社會(huì)作出貢獻(xiàn)。參考文獻(xiàn)朝青.單片機(jī)原理與接口技術(shù)M,:航天航空大學(xué),2005廣弟.單片機(jī)基礎(chǔ)M,:航空航天大學(xué),2000萬(wàn)光毅.單片機(jī)實(shí)驗(yàn)與實(shí)踐教程M,:航空航天大學(xué),2003唐亞平、移倫.單片機(jī)原理實(shí)訓(xùn)與學(xué)習(xí)指導(dǎo)M,:中南大學(xué),2006軍.單片機(jī)原理與接口技術(shù)M,華東理工大學(xué),2006自美.
60、電子線(xiàn)路設(shè)計(jì)、實(shí)驗(yàn)、測(cè)試M,:華中理工大學(xué),2000附錄一 總體電路的PCB板圖附錄二 設(shè)計(jì)電路的仿真電路圖附錄二 萬(wàn)年歷源程序COUNT EQU 67H ;SET鍵按下的次數(shù)DONE BIT 40H ;進(jìn)入調(diào)整狀態(tài)的標(biāo)志位FLAG BIT 41H ;時(shí)鐘停止標(biāo)志位SETS BIT P2.0 ;SET鍵UP BIT P2.1 ;UP鍵DOWN BIT P2.2 ;DOWN鍵OUT BIT P2.3 ;OUT鍵RS BIT P3.5 ; LCD1602數(shù)據(jù)/命令選擇端RW BIT P3.6 ; LCD1602讀寫(xiě)選擇端E BIT P3.7 ; LCD1602使能端DAT BIT P2.4 ;DS
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 會(huì)所股東協(xié)議合同范例
- 加建房屋合同范例
- 專(zhuān)業(yè)監(jiān)理安裝合同范例
- 關(guān)于電纜施工合同范例
- 跨文化傳播與國(guó)際貿(mào)易
- 3D打印肘關(guān)節(jié)外固定支具在經(jīng)肱動(dòng)脈入路行冠脈介入診療患者術(shù)后的應(yīng)用研究
- 農(nóng)村廣告招租合同范例
- 國(guó)有資本共同所有權(quán)對(duì)企業(yè)創(chuàng)新的影響研究
- 農(nóng)村車(chē)庫(kù)買(mǎi)賣(mài)合同范例
- 再生混凝土細(xì)粉對(duì)水泥基材料結(jié)構(gòu)與性能的影響研究
- 讀后續(xù)寫(xiě)人與自然類(lèi)我?guī)椭従育埦盹L(fēng)后花園重建順利融入當(dāng)?shù)厣鐓^(qū)講義-2024屆高三英語(yǔ)二輪復(fù)習(xí)
- CJJ28-2014城鎮(zhèn)供熱管網(wǎng)工程施工及驗(yàn)收規(guī)范
- 測(cè)繪作業(yè)人員安全規(guī)范
- 古村落鄉(xiāng)村文化旅游古鎮(zhèn)旅游外文文獻(xiàn)翻譯2014年
- 2024年臺(tái)州椒江中考二模英語(yǔ)試題含答案
- JB-T 8168-2023 脈沖電容器及直流電容器
- 2024年湖南交通職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案解析
- 滬教版八年級(jí)數(shù)學(xué)-代數(shù)方程1-學(xué)生
- 江蘇省徐州市2023-2024學(xué)年八年級(jí)下學(xué)期期中語(yǔ)文試題
- 第8章-軸測(cè)圖課件
- 多重耐藥菌病人的管理-(1)課件
評(píng)論
0/150
提交評(píng)論