帶溫度計(jì)的萬(wàn)年歷設(shè)計(jì)方案_第1頁(yè)
帶溫度計(jì)的萬(wàn)年歷設(shè)計(jì)方案_第2頁(yè)
帶溫度計(jì)的萬(wàn)年歷設(shè)計(jì)方案_第3頁(yè)
帶溫度計(jì)的萬(wàn)年歷設(shè)計(jì)方案_第4頁(yè)
帶溫度計(jì)的萬(wàn)年歷設(shè)計(jì)方案_第5頁(yè)
已閱讀5頁(yè),還剩87頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、帶溫度計(jì)的萬(wàn)年歷設(shè)計(jì)方案1 緒論隨著電子技術(shù)的迅速發(fā)展, 特別是隨大規(guī)模集成電路出現(xiàn), 給人類生活帶來(lái) 了根本性的改變。 由其是單片機(jī)技術(shù)的應(yīng)用產(chǎn)品已經(jīng)走進(jìn)了千家萬(wàn)戶。 其中電子 萬(wàn)年歷就是一個(gè)典型的例子。而且在萬(wàn)年歷的基礎(chǔ)上還可以擴(kuò)展其它的實(shí)用功 能,比如溫度計(jì)。萬(wàn)年歷是采用數(shù)字電路實(shí)現(xiàn)對(duì) . 時(shí),分,秒. 數(shù)字顯示的計(jì)時(shí)裝置, 廣泛用于 個(gè)人家庭,車站, 碼頭辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋匦?品,由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用, 使得數(shù)字鐘的精度, 遠(yuǎn)遠(yuǎn)超過(guò)老式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來(lái)了極大的方便, 而且大擴(kuò) 展了鐘表原先的報(bào)時(shí)功能。 諸如定

2、時(shí)自動(dòng)報(bào)警、 按時(shí)自動(dòng)打鈴、 時(shí)間程序自動(dòng)控 制、定時(shí)廣播、自動(dòng)起閉路燈、定時(shí)開關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電 氣的自動(dòng)啟用等,但是所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究萬(wàn)年 歷及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。市場(chǎng)上有許多電子鐘的專用芯片如: LM8363、LM8365等,但它們功能單一, 電路連接復(fù)雜, 不便于調(diào)試制作。 但是考慮到用單片機(jī)配合時(shí)鐘芯片, 可制成功 能任意的電子鐘, 而且可以做到硬件簡(jiǎn)單、 成本低廉。 所以本系統(tǒng)采用了以廣泛 使用的單片機(jī) AT89S52技術(shù)為核心,配合時(shí)鐘芯片 DS1302。軟硬件結(jié)合,使硬 件部分大為簡(jiǎn)化,提高了系統(tǒng)穩(wěn)定性,并采用 LCD顯

3、示電路、鍵盤電路,使人機(jī) 交互簡(jiǎn)便易行, 此外結(jié)合音樂(lè)鬧鈴電路、 看門狗和供電電路。 本方案設(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ù)為核心。 本文編寫的主導(dǎo)思想是軟硬件相結(jié)合, 以硬件為基礎(chǔ), 來(lái)進(jìn)行各 功能模塊的編寫。本設(shè)計(jì)中我重點(diǎn)研究實(shí)現(xiàn)了單片機(jī) +時(shí)鐘芯片這種模式的萬(wàn)年歷,從原理上 對(duì)單片機(jī)和時(shí)鐘芯片有了深一步的認(rèn)識(shí), 這些基本功能完成后, 在軟件基礎(chǔ)上

4、實(shí) 現(xiàn)時(shí)間顯示。2 總體設(shè)計(jì)方案2.1 設(shè)計(jì)思路用 AT89S52 處理產(chǎn)生部時(shí)鐘數(shù)據(jù)或者讀取外部時(shí)鐘數(shù)據(jù)和采集外部傳感器 的信息進(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è)溫電路, 可以使用熱敏電

5、阻之類的器件利用其感溫效應(yīng), 在將隨被測(cè)溫度變 化的電壓或電流采集過(guò)來(lái),進(jìn)行 A/D 轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理。 在顯示電路上,采用數(shù)碼管就可以將年月日星期時(shí)分秒和室溫度顯示出來(lái)方案 2:萬(wàn)年歷時(shí)鐘采用單片機(jī)控制 DS1302實(shí)時(shí)時(shí)鐘芯片,能達(dá)到走時(shí)準(zhǔn) 確且掉電不丟失數(shù)據(jù)的。 DS1302 與單片機(jī)之間能簡(jiǎn)單地采用同步串行的方式進(jìn) 行通信僅需用到三個(gè)口線 1 RES( 復(fù)位)2 I/O (數(shù)據(jù)線) 3 SCLK(串行時(shí)鐘)。 溫度計(jì)要靈敏反映室溫的變化這樣可采用單片機(jī)與數(shù)字式溫度傳感器 DS18B20 通訊,采集溫度數(shù)字信號(hào)進(jìn)行處理。 DS18B20通過(guò)一個(gè)單線接口發(fā)送或接受信息,

6、 因此在單片機(jī)與 DS18B20之間僅需一條連接(加上地線) 。在顯示電路上,采用 16*2 的 LCD顯示。2.3 方案比較論證對(duì)于方案 1,單片機(jī)雖然可以產(chǎn)生精確的秒信號(hào),但是單片機(jī)在處理閏年上 會(huì)比較麻煩,加之一旦單片機(jī)斷電后, 所有的時(shí)間都要重新調(diào)整。 對(duì)于測(cè)溫電路, 采用熱敏電阻的輸出電壓 -溫度特性,要加上 A/D 轉(zhuǎn)換,溫度傳感信息才能被單 片機(jī)所接受, 這種設(shè)計(jì)需要用到 A/D轉(zhuǎn)換電路,感溫電路比較麻煩。 在顯示電路 上,采用 LED數(shù)碼的話要用到單片機(jī)的許多 I/O 口,甚至 I/O 不夠用, 還需要接 上其它芯片大量擴(kuò)展 I/O 口,這是一個(gè)弊處。對(duì)于方案 2:?jiǎn)纹瑱C(jī)不用去

7、產(chǎn)生時(shí)鐘的數(shù)據(jù),時(shí)鐘的數(shù)據(jù)由 DS1302獨(dú)立產(chǎn) 生,并寄存在其部的寄存器上, 單片機(jī)可以通過(guò)三總線與它通訊, 不僅可以對(duì)它 進(jìn)行讀取實(shí)時(shí)時(shí)鐘數(shù)據(jù), 還可以對(duì)它進(jìn)行編程, 設(shè)置它的工作模式。 單片機(jī)只是 處理從 DS1302讀出來(lái)的數(shù)據(jù)并送顯示,大大減少了單片機(jī)的負(fù)擔(dān)。而且 DS1302可以通過(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ò)單總線與它通訊,可以處理912位的溫度

8、數(shù)字?jǐn)?shù)據(jù)。在顯示電路上,采用 16*2 LCD 液晶顯示器,能容納年月日 星期時(shí)分秒溫度等信息的顯示。 LCD顯示器只需占用 11個(gè) I/O 口就可以工作了, 不用其它擴(kuò)展芯片,總體上使電路簡(jiǎn)單化。2.4 總體設(shè)計(jì)方框圖總體的方框圖如圖 2.1 所示,控制器采用單片機(jī) AT89S52,溫度傳感器采用 DS18B20,用 16*2 的 LCD液晶顯示屏實(shí)現(xiàn)年、月、日、星期、時(shí)、分、秒、溫度 的顯示。DS1302時(shí)鐘芯片DS18B20溫度傳感復(fù)位按鍵圖 2.1 總體設(shè)計(jì)方框圖3 設(shè)計(jì)原理與分析3.1 硬件電路主要芯片的功能介紹 本次設(shè)計(jì)的萬(wàn)年歷系統(tǒng)主要包括單片機(jī)主控制器、溫度傳感器芯片、時(shí)鐘芯 片

9、 DS1302芯片、 16*2LCD顯示芯片。3.1.1 單片機(jī)主控制器AT89S52是一種低功耗、高性能 CMOS8位微控制器,具有 8K 在系統(tǒng)可編程 Flash 存儲(chǔ)器。使用 Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造, 與工業(yè) 80C51 產(chǎn)品指令和引腳完全兼容。 片上 Flash 允許程序存儲(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 口線, 看門狗定

10、時(shí)器, 2個(gè)數(shù)據(jù)指針,三個(gè) 16 位定時(shí)器/計(jì)數(shù)器,一個(gè) 6向量 2級(jí)中斷 結(jié)構(gòu),全雙工串行口,片晶振及時(shí)鐘電路。另外, AT89S52 可降至 0Hz 靜態(tài)邏 輯操作,支持 2 種軟件可選擇節(jié)電模式。空閑模式下, CPU停止工作,允許 RAM、 定時(shí)器/ 計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下, RAM容被保存,振蕩 器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。(1)AT89S52的簡(jiǎn)介AT89S52是一個(gè)低功耗 ,高性能CMOS 位8 單片機(jī),片含8k Bytes ISP (In-system programmable) 的可反復(fù)擦寫 1000次的Flash 只讀程序存

11、儲(chǔ)器 , 器件 采用ATME公L 司的高密度、非易失性存儲(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)提供高性價(jià)比的解決方 案。AT89S52具有如下特點(diǎn): 40個(gè)引腳 ,8k Bytes Flash 片程序存儲(chǔ)器 ,256 bytes 的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器( RAM),32個(gè)外部雙向輸入 / 輸出(I/O )口,5個(gè)中斷優(yōu)先 級(jí)2層中斷嵌套中斷 ,2 個(gè)16位可編程定時(shí)計(jì)數(shù)器 ,2個(gè)全雙工串行通信口 , 看門狗 (WD)T 電路 ,片時(shí)

12、鐘振蕩器。此外 ,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)圖3.1.2 溫度傳感器芯片(1) 單線溫度傳感器 DS18B20介紹DS18B20溫度傳感器是美國(guó) DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能 溫度傳感器, 與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比, 它能直接讀出被測(cè)溫度, 并且 可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn) 912 位的數(shù)字值讀數(shù)方式。 DS18B20

13、的性 能特點(diǎn)如下:獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信;多個(gè) DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;無(wú)須外部器件;可通過(guò)數(shù)據(jù)線供電,電壓圍為 3.0 5.5 ;零待機(jī)功耗;溫度以 9 或 12 位數(shù)字;用戶可定義報(bào)警設(shè)置;報(bào)警搜索命令識(shí)別并標(biāo)志超過(guò)程序限定溫度(溫度報(bào)警條件)的器件; 負(fù)電壓特性, 電源極性接反時(shí), 溫度計(jì)不會(huì)因發(fā)熱而燒毀, 但不能正常工 作;DSl8B20數(shù)字溫度計(jì)提供 9位(二進(jìn)制 )溫度讀數(shù),指示器件的溫度。信息經(jīng) 過(guò)單線接口送入 DSl8B20 或從 DSl8B20送出,因此從主機(jī) CPU到 DSl8B20僅需一 條線( 和地線 ) 。DSl8B2

14、0的電源可以由數(shù)據(jù)線本身提供而不需要外部電源。因?yàn)?每一個(gè) DSl8B20 在出廠時(shí)已經(jīng)給定了唯一的序號(hào), 因此任意多個(gè) DSl8B20可以存圖 3.2 DSl8B20 的引腳放在同一條單線總線上。這允許在許多不同的地方放置 溫度敏感器件。 DSl8B20的測(cè)量圍從 -55 攝式度到 +125 攝式度,增量值為 0.5 攝式度,可在 l s( 典型值 ) 把溫 度變換成數(shù)字。每一個(gè) DSl8B20包括一個(gè)唯一的 64 位長(zhǎng)的序號(hào), 該序號(hào)值存放在 DSl8B20部的 ROM只( 讀存貯器 ) 中。開 始 8 位是產(chǎn)品類型編碼 (DSl8B20 編碼均為 10H) 。接著 的 48 位是每個(gè)器件

15、唯一的序號(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ù)總線供電方式和外部供電方式。 采取數(shù)據(jù)總 線供電

16、方式可以節(jié)省一根導(dǎo)線, 但完成溫度測(cè)量的時(shí)間較長(zhǎng): 采取外部供電方式 則多用一根導(dǎo)線,但測(cè)量速度較快 。(2)DS18B20 的測(cè)溫原理器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小, 用于產(chǎn)生固定頻率的 脈沖信號(hào)送給減法計(jì)數(shù)器 1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變, 所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器 2 的脈沖輸入。器件中還有一個(gè)計(jì)數(shù)門, 當(dāng)計(jì)數(shù)門 打開時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度 測(cè)量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定, 每次測(cè)量前,首先將 55 所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器 1、溫度寄存器中,計(jì)數(shù)器 1 和溫度寄存 器被預(yù)置在

17、 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ù)器計(jì)數(shù)到 0 時(shí),停止溫度寄存器的累加, 此時(shí)溫度寄存器中的 數(shù)值就是所測(cè)溫度值。 其輸出用于修正減法計(jì)數(shù)器的預(yù)置值, 只要計(jì)數(shù)器門仍未 關(guān)閉就重復(fù)上述過(guò)程,直到溫度寄存器值大致被測(cè)溫度值。另外,由于 DS18B20單線通信功能是分時(shí)完成的, 它有嚴(yán)格的時(shí)隙概念, 因 此讀寫時(shí)序很重要。 系統(tǒng)對(duì) DS18B20的各種操作

18、按協(xié)議進(jìn)行。 操作協(xié)議為: 初使化 DS18B20(發(fā)復(fù)位脈沖)發(fā) ROM功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)。示。DS18B20采用 3腳 PR35封裝或 8腳 SOIC封裝,其部結(jié)構(gòu)框圖如圖 3.3 所圖 3.3 DS18B20 的部結(jié)構(gòu)圖64位 ROM的結(jié)構(gòu)開始 8 位是產(chǎn)品類型的編號(hào),接著是每個(gè)器件的惟一的序 號(hào),共有 48位,最后 8位是前面 56位的 CRC檢驗(yàn)碼,這也是多個(gè) DS18B20可以 采用一線進(jìn)行通信的原因。 溫度報(bào)警觸發(fā)器和, 可通過(guò)軟件寫入戶報(bào)警 上下限。(3)溫度計(jì)算1、DS18B20用 9 位存貯溫值度,最高位為符號(hào)位,如表 3.1 為 DS18B20的 溫度存儲(chǔ)方

19、式,負(fù)溫度 S=1,正溫度 S=0。如: 00AAH為+85攝式度,0032H 為 25 攝式度, FF92H為 55 攝式度表 3.1 18B20 用 9 位的溫度存儲(chǔ)方式2、DS18B20用 12位存貯溫值度,最高位為符號(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è)非易失性的 可電擦除的 EERO。M高速暫存 RAM的結(jié)構(gòu)為 8 字節(jié)的存

20、儲(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í)寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。 該字節(jié)各位 的定義如圖 3.2 所示。低 5 位一直為,是工作模式位,用于設(shè)置 DS18B20 在工作模式還是在測(cè)試模式, DS18B20出廠時(shí)該位被設(shè)置為 0,用戶要去改動(dòng), R1和 R0決定溫度轉(zhuǎn)換的精度位數(shù),來(lái)設(shè)置分辨率。由表 3.3 可見(jiàn), DS18B20溫度轉(zhuǎn)換的時(shí)間比較長(zhǎng),而且分辨

21、率越高,所需要 的溫度數(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)換命令后, 開始啟動(dòng)轉(zhuǎn)換。 轉(zhuǎn)換完成后的溫度值就 以 16 位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1、2 字節(jié)。單片機(jī)可以通過(guò)單線接口讀出該數(shù)據(jù), 讀數(shù)據(jù)時(shí)低位在先, 高位在后, 數(shù)據(jù)格式以 0.0625 LSB形式表示。當(dāng)符號(hào)位 S0 時(shí),表示測(cè)得的溫度值為正值,可以直

22、接將二進(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 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1

23、111 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) RAM通 過(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ī)之

24、間能簡(jiǎn)單地采 用同步串行的方式進(jìn)行通信僅需用到三個(gè)口線 1 RES 復(fù)位 2 I/O 數(shù)據(jù)線 3 SCLK 串行時(shí)鐘時(shí)鐘 /RAM 的讀/ 寫數(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ù) 量 最少 寬圍工作電壓 2.0 5.5V 工作電流 2.0V 時(shí), 小于 300nA 讀/ 寫時(shí)鐘或 RAM數(shù) 據(jù)時(shí)有兩種傳送方式單字節(jié)傳送和多字圖 3.5

25、 DS1302 的封裝及引腳功能節(jié)傳送字符組方式 8 腳DIP 封裝或可選的 8 腳SOIC 封裝根據(jù)表面裝配 ,如圖 3.5 所示簡(jiǎn)單 3 線接口與 TTL 兼容 Vcc = 5V 可選工業(yè)級(jí)溫度圍 -40 +85 ( 2) 時(shí)鐘芯片 DS1302的工作原理DS1302在每次進(jìn)行讀、寫程序前都必須初始化,先把 SCLK端置 “ 0”,接 著把 RST端置“1”,最后才給予 SCLK脈沖;表 3.5 為 DS1302的控制字,此控制 字的位 7 必須置 1,若為 0 則不能把對(duì) DS1302進(jìn)行讀寫數(shù)據(jù)。 對(duì)于位 6,若對(duì)程 序進(jìn)行讀/寫時(shí) RAM=,1對(duì)時(shí)間進(jìn)行讀 /寫時(shí), CK=0。位 1

26、至位 5指操作單元的地 址。位 0 是讀/寫操作位,進(jìn)行讀操作時(shí),該位為 1;該位為 0 則表示進(jìn)行的是 寫操作??刂谱止?jié)總是從最低位開始輸入 / 輸出的?!癈H”是時(shí)鐘暫停標(biāo)志位,當(dāng) 該位為 1 時(shí),時(shí)鐘振蕩器停止, DS1302處于低功耗狀態(tài);當(dāng)該位為 0 時(shí),時(shí)鐘 開始運(yùn)行?!癢P”是寫保護(hù)位,在任何的對(duì)時(shí)鐘和 RAM的寫操作之前, WP必須為 0。當(dāng)“ WP”為 1時(shí),寫保護(hù)位防止對(duì)任一寄存器的寫操作。a. DS1302的控制字節(jié)DS1302的控制字如表 3.5 所示??刂谱止?jié)的高有效位 (位 7)必須是邏輯 1, 如果它為 0,則不能把數(shù)據(jù)寫入 DS1302中,位 6 如果 0,則表

27、示存取日歷時(shí)鐘數(shù) 據(jù),為 1 表示存取 RAM數(shù)據(jù);位 5 至位 1 指示操作單元的地址;最低有效位(位 0)如為 0 表示要進(jìn)行寫操作,為 1 表示進(jìn)行讀操作,控制字節(jié)總是從最低位開 始輸出表 3.5 DS1302 的控制字b. 數(shù)據(jù)輸入輸出 (I/O)在控制指令字輸入后的下一個(gè) SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入 DS1302, 數(shù)據(jù)輸入從低位即位 0 開始。同樣,在緊跟 8 位的控制指令字后的下一個(gè) SCLK 脈沖的下降沿讀出 DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位 0 位到高位 7。如下圖 3.6 所示:圖 3.6 DS1302 讀/ 寫時(shí)序圖c. DS1302 的數(shù)據(jù)讀寫DS1302單

28、字節(jié)讀寫的波形如圖 3.6 所示。由波形可以看出, 無(wú)論是從 DS1302 中讀一個(gè)數(shù)據(jù),還是寫一個(gè)字節(jié)數(shù)據(jù)到 DS1302中,都要先寫一個(gè)命令字到 DS1302 中。即通過(guò) SCLK引腳(7 號(hào)引腳)向 DS1302輸入 8個(gè)脈沖,把I/O 引腳(6 號(hào)引腳) 上的命令字寫入 DS1302。為了啟動(dòng)數(shù)據(jù)傳輸, 引腳(5 號(hào)引腳)應(yīng)為高電平。 在將 由 0 置 1 的過(guò)程中, SCLK引腳必須為邏輯 0 。然后才能進(jìn)行讀寫操作。 I/O 引腳 上的數(shù)據(jù)在 SCLK的上升沿串行輸入 ( 寫數(shù)據(jù)到 DS1302),在 SCLK的下降沿串行 輸出( 讀數(shù)據(jù) )。d. DS1302的寄存器DS1302

29、有 12個(gè)寄存器,其中有 7 個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù) 位為 BCD碼形式 ,其日歷、時(shí)間寄存器及其控制字見(jiàn)表 3.6 所示:表 3.6 DS1302 的日歷、時(shí)間寄存器寫寄 存器讀寄 存器Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit080H81HCH10秒秒82H83H10分分84H85H12/ 24010時(shí)時(shí)AM /PM86H87H0010日日88H89H00010月月8AH8BH00000星期8CH8DH10 年年8EH8FHWP0000000此外, DS1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存 器及與 RAM相關(guān)的寄存器等。 時(shí)鐘突發(fā)

30、寄存器可一次性順序讀寫除充電寄存器外 的所有寄存器容。 DS1302 與 RAM相關(guān)的寄存器分為兩類: 一類是單個(gè) RAM單元, 共 31 個(gè),每個(gè)單元組態(tài)為一個(gè) 8 位的字節(jié),其命令控制字為 C0H FDH,其中奇 數(shù)為讀操作,偶數(shù)為寫操作; 另一類為突發(fā)方式下的 RAM寄存器,此方式下可一 次性讀寫所有的 RAM的 31 個(gè)字節(jié),命令控制字為 FEH(寫)、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ì)比度最

31、弱,接地電源時(shí) 對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè) 10K 的電位器調(diào)整對(duì)比度。第 4 腳: RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存 器。第 5 腳: RW為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和 RW共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng) RS為低電平 RW 為高電平時(shí)可以讀忙信號(hào), 當(dāng) RS為高電平 RW為低電平時(shí)可以寫入數(shù)據(jù)。第 6 腳: E 端為使能端,當(dāng) E 端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第 714 腳:D0D7為 8 位雙向數(shù)據(jù)線。第 1516 腳:空腳。(2)1602液晶模塊部的控制器共有 1

32、1條控制指令 ,如表 3.7 所示:表 3.7 控制指令指令RSR/WD7D6D5D4D3D2D1D0清顯示0000000001光標(biāo)返回000000001*置輸入模式000000011/DS顯示開 / 關(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)寫數(shù)到 CGRAM或 DDRAM10要寫的數(shù)從 CGRAM或 DDRAM讀數(shù)11讀出的數(shù)據(jù)它的讀寫操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。(說(shuō)明:

33、 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:顯示開關(guān)控制。 D :控制整體顯示的開與關(guān),高電平表示開顯示,低電 平表示關(guān)顯示 C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示 無(wú)光標(biāo) B :控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。指令 5:光標(biāo)或顯示移位 S/C :高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。指令 6:功能設(shè)置命令 DL:高

34、電平時(shí)為 4 位總線,低電平時(shí)為 8 位總線 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:寫數(shù)據(jù)。指令 11:讀數(shù)據(jù)。(3) DM-162 液晶顯示模塊可以和單片機(jī) AT89C52直接接口 ,電路如圖 3.7 所示:圖 3.7 接口電路液晶顯示模塊是一個(gè)慢顯示器件, 所以在執(zhí)行每條指令之前一定要確認(rèn)模塊 的忙標(biāo)志為低電平,

35、表示不忙, 否則此指令失效。 要顯示字符時(shí)要先輸入顯示字 符地址,也就是告訴模塊在哪里顯示字符,表 3.8 是 DM-162的部顯示地址。表 3.8 DM-16 的部顯示地址比如第二行第一個(gè)字符的地址是 40H,那么是否直接寫入 40H就可以將光標(biāo)定位 在第二行第一個(gè)字符的位置呢?這樣不行,因?yàn)閷懭腼@示地址時(shí)要求最高位 D7 恒定為高電平 1 所以實(shí)際寫入的數(shù)據(jù)應(yīng)該是 01000000B (40H)+10000000B(80H)=11000000B(C0H)(4) 基本操作時(shí)序如圖 3.8 所示 :讀狀態(tài)輸入:RS=L,RW=,HE=H輸出:DB0DB7=狀態(tài)字寫 指 令輸 入 : RS=L,

36、 RW=L, E=下 降 沿 脈 沖 , DB0 DB7=指 令碼讀數(shù)據(jù)輸入:RS=H,RW=,HE=H輸出:DB0DB7=數(shù)據(jù)寫 數(shù) 據(jù)輸 入 : RS=H, RW=L, E=下 降 沿 脈 沖 , DB0 DB7=數(shù)據(jù)圖 3.8 LCD 的讀寫時(shí)序4 硬件電路4.1 單片機(jī)主控制模塊的設(shè)計(jì)AT89S52單片機(jī)為 40引腳雙列直插芯片 , MCS-51單片機(jī)共有 4個(gè)8位的 I/O 口( P0、P1、P2、P3),每一條 I/O 線都能獨(dú)立地作輸出或輸入。單片機(jī)的最小系統(tǒng)如下圖所示 ,18 引腳和 19 引腳接時(shí)鐘電路 ,XTAL1 接外部 晶振和微調(diào)電容的一端 ,在片它是振蕩器倒相放大器的

37、輸入 ,XTAL2 接外部晶振 和微調(diào)電容的另一端 , 在片它是振蕩器倒相放大器的輸出 .第 9 引腳為復(fù)位輸入 端,接上電容 ,電阻及開關(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

38、由 Vcc1供電。 X1和 X2是振蕩源,外接 32.768KHz晶振。RST是復(fù)位/ 片選線,通過(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

39、 為串行數(shù)據(jù)輸入端(雙向) 。SCLK始終是輸入端。圖 4.3 溫度傳感器與單片機(jī)的連接圖 4.2 時(shí)鐘芯片與單片機(jī)的連接4.3 溫度采集模塊設(shè)計(jì)如圖 4.3 所示, 采用數(shù)字式溫度傳感器 DS18B20,它是數(shù)字式溫度傳感器, 具有測(cè)量精度高, 電路連接簡(jiǎn)單特點(diǎn), 此類傳感器僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳 輸,使用 2.4 與DS18B20的I/O 口連接加一個(gè)上拉電阻 ,Vcc 接電源,Vss 接地。4.4 功能按鈕設(shè)計(jì)當(dāng)按鈕被按下時(shí) , 該按鈕對(duì)應(yīng)的 I/O 口被拉為低電平 , 松開時(shí)按鈕對(duì)應(yīng)的 I/O 口由部的上拉電阻將該 I/O 拉為高電平 , 如圖 4.4 所示:圖 4.4 功能按鍵電

40、路4.5 16*2 LCD1602 液晶顯示電路設(shè)計(jì)根據(jù)其讀寫的時(shí)序模擬總線的方式與單片機(jī)進(jìn)行數(shù)據(jù)的通訊, 首先將數(shù)據(jù)從 I/O 口讀入或送出,再選擇 R/W 和 RS的電平進(jìn)行不同的操作,在使能端 E下降 沿時(shí)觸發(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顯示模塊、鍵盤功能模塊。

41、a. DS1302 時(shí)鐘程序模塊包括設(shè)置 DS1302初始時(shí)間、從 DS1302 讀時(shí)間子程序、寫 1302 一字節(jié)子程序、讀 1302 一字節(jié)、關(guān)閉寫保護(hù)、開啟寫保護(hù)、關(guān)閉時(shí)鐘、延時(shí)子 100MS程序。b. DS18B20 測(cè)溫模塊包括 DS18B20的初始化子程序、 DS18B20數(shù)據(jù)處理子程序、讀出溫度值的子 程序、 DS18B20復(fù)位子程序、寫 DS18B20的 1位字節(jié)子程序、讀 DS18B20的 1個(gè) 字節(jié)子程序。c. LCD 顯示模塊包括 LCD初始化子程序、寫入控制命令的子程序、 判斷 LCD顯示器是否忙的 子程序、向 LCD中的 DDRAM中寫數(shù)據(jù)、查詢 LCD字符表、調(diào)整模

42、式的顯示子程序、 正常模式 LCD顯示子程序。d. 鍵盤功能模塊包括模式選擇按鍵 SET子程序、調(diào)整模式選擇子程序、 OUT鍵掃描子程序、 UP按鍵掃描子程序、 DOWN按鍵掃描子程序。5.2 總體程序流程框圖本設(shè)計(jì)中,實(shí)現(xiàn)功能的總體程序流程框圖如下圖 5.1 所示:清時(shí)鐘停止、調(diào)整模式標(biāo)志圖 5.1 總體程序流程框圖5.3 時(shí)鐘調(diào)整時(shí)間的流程圖時(shí)鐘調(diào)整時(shí)間的流程圖 5.2 所示:NO圖 5.2 時(shí)鐘調(diào)整時(shí)間的流程5.4 修改鍵“ UP”的功能流程圖修改鍵“ UP”的功能流程圖如圖 5.3 所示:開始圖 5.3 修改鍵“ UP”的功能流程圖單片機(jī)實(shí)現(xiàn)對(duì)溫度傳感器 DS18B20的溫度轉(zhuǎn)換讀取溫

43、度數(shù)值流程圖如下圖 5.4 所示:圖 5.4 溫度轉(zhuǎn)換讀取溫度數(shù)值流程圖6 系統(tǒng)仿真測(cè)試首先把各個(gè)模塊的程序編好, 在偉福 W6000中調(diào)試沒(méi)有錯(cuò)誤后, 再到 Protues 7.1 中畫好并連接電路圖進(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分配

44、沖突的問(wèn)題。最好是在設(shè)計(jì)程序之前先把 RAM的空間分配好。6.1 KEIL 的使用Keil uVision2 是目前使用廣泛的單片機(jī)開發(fā)軟件,它集成了源程序編輯 和程序調(diào)試于一體,支持匯編、 C、 PL/M語(yǔ)言。keil C51 v6.12 的使用:點(diǎn)擊桌面快捷圖標(biāo),如圖 6.1 所示,可以直接進(jìn)入主畫面: 在 Keil 系統(tǒng)中,每做個(gè)獨(dú)立的程序,都視為工程(或者叫項(xiàng)目)。首先從菜但 的“工程”中“新建工程 . ”,建立我們 圖 6.1 快捷圖標(biāo) 將要做的工程項(xiàng)目如圖 6.2 所示:圖 6.2 新建建工程 新建的工程要起個(gè)與工程項(xiàng)目意義一致的名字, 可以是中文名; 我們這里的 程序是實(shí)驗(yàn)測(cè)試程

45、序,所以起的名字為 Test ,并將 Test 工程“保存”到 D:Keil 下如圖 6.3 所示:圖 6.3 新建名工程窗口接下來(lái), Keil 環(huán)境要求我們?yōu)?Test 工程選擇一個(gè)單片機(jī)型號(hào);我們選擇Atmel 公司的 89C52(雖然我們使用的是 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è)空白文檔就是讓我們編寫單片機(jī)程序的場(chǎng)所。在這

46、里你可以進(jìn)行 編輯、修改等操作。圖 6.5 新建文件寫完后再檢查一下, 并保存文件, 保存文件時(shí), 其文件名最好與前面建立的工程名相同(當(dāng)然這里為 Test 了),其擴(kuò)展名必須為 .Asm !“文件名”中一 定要寫全,如: Test.Asm ;保存后的文檔彩色語(yǔ)法會(huì)起作用,將關(guān)鍵字實(shí)行彩 色顯示,如圖6.6 所示:圖 6.6 保存文檔保存了 Asm文件后,還要將其添加到工程中。具體做法如下: (如下圖 6.7 所示)鼠標(biāo)右鍵點(diǎn)擊 “Source Group 1 ”,在彈出的菜單中選“增加文件到組Source Group 1圖 6.7 添加文件在接下來(lái)出現(xiàn)的窗口中, 選擇“文件類型”為“ Asm

47、源文件(*.a*,*.src )” (由于我們使用的是匯編語(yǔ)言,所以選擇 Asm 源文件),選中剛才保存的 Test.Asm,按“ Add”,再按“關(guān)閉”,文件就添加到了工程中,如圖 6.8 所示:圖 6.8 添加到工程中向工程添加了源文件后,鼠標(biāo)右鍵點(diǎn)擊TarGet 1” ,在彈出的菜單中選目標(biāo) Target 1 屬性”:在打開的話框中,選擇“輸出”選項(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 文

48、件一氣呵成;在工程文件的目錄下就會(huì)生 成與工程名相同的一些文件,其部分文件我們并不必關(guān)心,而生成的 Hex 文件 是我們需要的! 它是要燒寫到單片機(jī)中的最終代碼, 也就是單片機(jī)可以執(zhí)行的程 序。這里生成的是 Test.HEX ,稍后就寫入。 若在下面的狀態(tài)窗中有錯(cuò)誤提示, 就需要再次編輯、修改源程序(如語(yǔ)法、字符有錯(cuò)等)、保存、構(gòu)造所有。直至 沒(méi)有錯(cuò)誤,如圖 6.10 所示:圖 6.10 生成 hex 格式接下來(lái),我們啟動(dòng) Protues 軟件仿真,將剛剛生成的 Test.Hex 燒寫到單片機(jī) 芯片,在 實(shí)驗(yàn)板上實(shí)際驗(yàn)證一下。6.2 Protues 軟件仿真Proteus ISIS 是英國(guó) L

49、abcenter 公司開發(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)試器、鍵盤和 LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示 波器、邏輯分析儀、信號(hào)發(fā)生器等。支持主流單片機(jī)系統(tǒng)的仿真。目前支持的 單片機(jī)類型有: 68000系列、 8051系列、 AVR系列、 PIC12系列、 PIC16系列、 PIC18系列、 Z80系列、 HC

50、11系列以及各種外圍芯片。提供軟件調(diào)試功能。在 硬件仿真系統(tǒng)中具有全速、 單步、設(shè)置斷點(diǎn)等調(diào)試功能, 同時(shí)可以觀察各個(gè)變量、 寄存器等的當(dāng)前狀態(tài), 因此在該軟件仿真系統(tǒng)中, 也必須具有這些功能; 同時(shí)支 持第三方的軟件編譯和調(diào)試環(huán)境,如 Keil C51 uVision2 等軟件。具有強(qiáng)大的 原理圖繪制功能??傊撥浖且豢罴瘑纹瑱C(jī)和 SPICE分析于一身的仿真軟件, 功能極其強(qiáng)大。( 1) 進(jìn)入 Proteus ISIS雙擊桌面上的 ISIS 6 Professional 圖標(biāo)或者單擊屏幕左下方的“開始”“程序”“ Proteus 6 Professional ” “ ISIS 6 Pro

51、fessional ”,出現(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ì)原理畫出仿真原理圖(如附錄二),檢查電路連接無(wú)誤后,雙擊單 片機(jī)芯片 AT89S52,如圖 6.13 所示:圖 6.13 燒寫程序把生成的 Test.Hex 燒寫到單片

52、機(jī)芯片, 點(diǎn)擊仿真進(jìn)程控制按鈕, 點(diǎn)擊運(yùn)行, 觀 看 LCD液晶顯示效果, 若在實(shí)驗(yàn)板上實(shí)際驗(yàn)證的并不是我們預(yù)期的效果,那么, 就需要再次返回到編輯、 修改源程序那一步, 修改后再構(gòu)造所有, 再次將生成的 Hex文件在 51ISP 中燒寫、實(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í)到了不少的專業(yè)知識(shí)。在整個(gè)設(shè)計(jì)過(guò)程之前,我已經(jīng)在網(wǎng)上找了相關(guān)方面的資料,萬(wàn)事開始難,一 開始不知道從哪里下手。 后來(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)各位老

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論