




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、帶溫度計的萬年歷設計方案1 緒論隨著電子技術的迅速發(fā)展, 特別是隨大規(guī)模集成電路出現(xiàn), 給人類生活帶來 了根本性的改變。 由其是單片機技術的應用產品已經走進了千家萬戶。 其中電子 萬年歷就是一個典型的例子。而且在萬年歷的基礎上還可以擴展其它的實用功 能,比如溫度計。萬年歷是采用數(shù)字電路實現(xiàn)對 . 時,分,秒. 數(shù)字顯示的計時裝置, 廣泛用于 個人家庭,車站, 碼頭辦公室等公共場所,成為人們日常生活中不可少的必需 品,由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應用, 使得數(shù)字鐘的精度, 遠遠超過老式鐘表, 鐘表的數(shù)字化給人們生產生活帶來了極大的方便, 而且大擴 展了鐘表原先的報時功能。 諸如定
2、時自動報警、 按時自動打鈴、 時間程序自動控 制、定時廣播、自動起閉路燈、定時開關烘箱、通斷動力設備、甚至各種定時電 氣的自動啟用等,但是所有這些,都是以鐘表數(shù)字化為基礎的。因此,研究萬年 歷及擴大其應用,有著非常現(xiàn)實的意義。市場上有許多電子鐘的專用芯片如: LM8363、LM8365等,但它們功能單一, 電路連接復雜, 不便于調試制作。 但是考慮到用單片機配合時鐘芯片, 可制成功 能任意的電子鐘, 而且可以做到硬件簡單、 成本低廉。 所以本系統(tǒng)采用了以廣泛 使用的單片機 AT89S52技術為核心,配合時鐘芯片 DS1302。軟硬件結合,使硬 件部分大為簡化,提高了系統(tǒng)穩(wěn)定性,并采用 LCD顯
3、示電路、鍵盤電路,使人機 交互簡便易行, 此外結合音樂鬧鈴電路、 看門狗和供電電路。 本方案設計出的數(shù) 字鐘可以顯示時間、設置鬧鈴功能之外。本文首先描述系統(tǒng)硬件工作原理, 并附以系統(tǒng)結構框圖加以說明, 著重介紹 了本系統(tǒng)所應用的各硬件接口技術和各個接口模塊的功能及工作過程 , 其次,詳 細闡述了程序的各個模塊和實現(xiàn)過程。 本設計以數(shù)字集成電路技術為基礎, 單片 機技術為核心。 本文編寫的主導思想是軟硬件相結合, 以硬件為基礎, 來進行各 功能模塊的編寫。本設計中我重點研究實現(xiàn)了單片機 +時鐘芯片這種模式的萬年歷,從原理上 對單片機和時鐘芯片有了深一步的認識, 這些基本功能完成后, 在軟件基礎上
4、實 現(xiàn)時間顯示。2 總體設計方案2.1 設計思路用 AT89S52 處理產生部時鐘數(shù)據(jù)或者讀取外部時鐘數(shù)據(jù)和采集外部傳感器 的信息進行處理, 并暫時寄存在其部的儲存器中, 再通過單片機調用部 RAM的數(shù) 據(jù)并送到 LCD或者 LED數(shù)碼管上顯示出來。2.2 設計方案方案 1:單片機一般的工作頻率在 12MHz左右,而且部還有定時、計數(shù)器, 可以產生精確的 1S 定時,由次可以用定時中斷的方式產生精確的 1S時間,秒位 不斷的加 1,再設計分、時、星期、日、月、年之間的進制,使產生進位。本方 案只需要單片機最小系統(tǒng)加上顯示電路, 再設計簡單的程序算法就可以實現(xiàn)。 對 于測溫電路, 可以使用熱敏電
5、阻之類的器件利用其感溫效應, 在將隨被測溫度變 化的電壓或電流采集過來,進行 A/D 轉換后,就可以用單片機進行數(shù)據(jù)的處理。 在顯示電路上,采用數(shù)碼管就可以將年月日星期時分秒和室溫度顯示出來方案 2:萬年歷時鐘采用單片機控制 DS1302實時時鐘芯片,能達到走時準 確且掉電不丟失數(shù)據(jù)的。 DS1302 與單片機之間能簡單地采用同步串行的方式進 行通信僅需用到三個口線 1 RES( 復位)2 I/O (數(shù)據(jù)線) 3 SCLK(串行時鐘)。 溫度計要靈敏反映室溫的變化這樣可采用單片機與數(shù)字式溫度傳感器 DS18B20 通訊,采集溫度數(shù)字信號進行處理。 DS18B20通過一個單線接口發(fā)送或接受信息,
6、 因此在單片機與 DS18B20之間僅需一條連接(加上地線) 。在顯示電路上,采用 16*2 的 LCD顯示。2.3 方案比較論證對于方案 1,單片機雖然可以產生精確的秒信號,但是單片機在處理閏年上 會比較麻煩,加之一旦單片機斷電后, 所有的時間都要重新調整。 對于測溫電路, 采用熱敏電阻的輸出電壓 -溫度特性,要加上 A/D 轉換,溫度傳感信息才能被單 片機所接受, 這種設計需要用到 A/D轉換電路,感溫電路比較麻煩。 在顯示電路 上,采用 LED數(shù)碼的話要用到單片機的許多 I/O 口,甚至 I/O 不夠用, 還需要接 上其它芯片大量擴展 I/O 口,這是一個弊處。對于方案 2:單片機不用去
7、產生時鐘的數(shù)據(jù),時鐘的數(shù)據(jù)由 DS1302獨立產 生,并寄存在其部的寄存器上, 單片機可以通過三總線與它通訊, 不僅可以對它 進行讀取實時時鐘數(shù)據(jù), 還可以對它進行編程, 設置它的工作模式。 單片機只是 處理從 DS1302讀出來的數(shù)據(jù)并送顯示,大大減少了單片機的負擔。而且 DS1302可以通過后備電池繼續(xù)工作, 部的時鐘還在走, 下次啟動后不用去調整時鐘, 方 便使用。基于同樣的原理, DS18B20也是一個獨立的傳感器,只要單片機配置它 的工作狀態(tài)后它就可以獨立工作, 部已經把模擬信號轉換成數(shù)字信號, 并把數(shù)字 信號儲存在其部的寄存中。同樣,單片機通過單總線與它通訊,可以處理912位的溫度
8、數(shù)字數(shù)據(jù)。在顯示電路上,采用 16*2 LCD 液晶顯示器,能容納年月日 星期時分秒溫度等信息的顯示。 LCD顯示器只需占用 11個 I/O 口就可以工作了, 不用其它擴展芯片,總體上使電路簡單化。2.4 總體設計方框圖總體的方框圖如圖 2.1 所示,控制器采用單片機 AT89S52,溫度傳感器采用 DS18B20,用 16*2 的 LCD液晶顯示屏實現(xiàn)年、月、日、星期、時、分、秒、溫度 的顯示。DS1302時鐘芯片DS18B20溫度傳感復位按鍵圖 2.1 總體設計方框圖3 設計原理與分析3.1 硬件電路主要芯片的功能介紹 本次設計的萬年歷系統(tǒng)主要包括單片機主控制器、溫度傳感器芯片、時鐘芯 片
9、 DS1302芯片、 16*2LCD顯示芯片。3.1.1 單片機主控制器AT89S52是一種低功耗、高性能 CMOS8位微控制器,具有 8K 在系統(tǒng)可編程 Flash 存儲器。使用 Atmel 公司高密度非易失性存儲器技術制造, 與工業(yè) 80C51 產品指令和引腳完全兼容。 片上 Flash 允許程序存儲器在系統(tǒng)可編程, 亦適于常 規(guī)編程器。在單芯片上,擁有靈巧的 8 位 CPU 和在系統(tǒng)可編程 Flash ,使得 AT89S52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標準功能: 8k字節(jié) Flash ,256字節(jié) RAM,32 位 I/O 口線, 看門狗定
10、時器, 2個數(shù)據(jù)指針,三個 16 位定時器/計數(shù)器,一個 6向量 2級中斷 結構,全雙工串行口,片晶振及時鐘電路。另外, AT89S52 可降至 0Hz 靜態(tài)邏 輯操作,支持 2 種軟件可選擇節(jié)電模式??臻e模式下, CPU停止工作,允許 RAM、 定時器/ 計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下, RAM容被保存,振蕩 器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。(1)AT89S52的簡介AT89S52是一個低功耗 ,高性能CMOS 位8 單片機,片含8k Bytes ISP (In-system programmable) 的可反復擦寫 1000次的Flash 只讀程序存
11、儲器 , 器件 采用ATME公L 司的高密度、非易失性存儲技術制造 ,兼容標準MCS-51指令系統(tǒng)及 80C51引腳結構 , 芯片集成了通用 8位中央處理器和 ISP Flash 存儲單元 , 功能強大 的微型計算機的 AT89S52可為許多嵌入式控制應用系統(tǒng)提供高性價比的解決方 案。AT89S52具有如下特點: 40個引腳 ,8k Bytes Flash 片程序存儲器 ,256 bytes 的隨機存取數(shù)據(jù)存儲器( RAM),32個外部雙向輸入 / 輸出(I/O )口,5個中斷優(yōu)先 級2層中斷嵌套中斷 ,2 個16位可編程定時計數(shù)器 ,2個全雙工串行通信口 , 看門狗 (WD)T 電路 ,片時
12、鐘振蕩器。此外 ,AT89S52設計和配置了振蕩頻率可為 0Hz并可通過軟件設置省電模 式??臻e模式下 ,CPU暫停工作 , 而RAM定時計數(shù)器 , 串行口, 外中斷系統(tǒng)可繼續(xù)工作 掉電模式凍結振蕩器而保存 RAM的數(shù)據(jù), 停止芯片其它功能直至外中斷激活或硬 件復位。2)AT89S52的部結構圖3.1.2 溫度傳感器芯片(1) 單線溫度傳感器 DS18B20介紹DS18B20溫度傳感器是美國 DALLAS半導體公司最新推出的一種改進型智能 溫度傳感器, 與傳統(tǒng)的熱敏電阻等測溫元件相比, 它能直接讀出被測溫度, 并且 可根據(jù)實際要求通過簡單的編程實現(xiàn) 912 位的數(shù)字值讀數(shù)方式。 DS18B20
13、的性 能特點如下:獨特的單線接口僅需要一個端口引腳進行通信;多個 DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網功能;無須外部器件;可通過數(shù)據(jù)線供電,電壓圍為 3.0 5.5 ;零待機功耗;溫度以 9 或 12 位數(shù)字;用戶可定義報警設置;報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件; 負電壓特性, 電源極性接反時, 溫度計不會因發(fā)熱而燒毀, 但不能正常工 作;DSl8B20數(shù)字溫度計提供 9位(二進制 )溫度讀數(shù),指示器件的溫度。信息經 過單線接口送入 DSl8B20 或從 DSl8B20送出,因此從主機 CPU到 DSl8B20僅需一 條線( 和地線 ) 。DSl8B2
14、0的電源可以由數(shù)據(jù)線本身提供而不需要外部電源。因為 每一個 DSl8B20 在出廠時已經給定了唯一的序號, 因此任意多個 DSl8B20可以存圖 3.2 DSl8B20 的引腳放在同一條單線總線上。這允許在許多不同的地方放置 溫度敏感器件。 DSl8B20的測量圍從 -55 攝式度到 +125 攝式度,增量值為 0.5 攝式度,可在 l s( 典型值 ) 把溫 度變換成數(shù)字。每一個 DSl8B20包括一個唯一的 64 位長的序號, 該序號值存放在 DSl8B20部的 ROM只( 讀存貯器 ) 中。開 始 8 位是產品類型編碼 (DSl8B20 編碼均為 10H) 。接著 的 48 位是每個器件
15、唯一的序號。 最后 8位是前面 56 位的 CRC循( 環(huán)冗余校驗 ) 碼DSl8B20中還有用于存儲測得的溫度值的兩個 8 位存貯器 RAM,編號為 0 號和 1號。1號存貯器存放溫度值的符號,如果溫度為負 (攝式度),則 1號存貯器 8位 全為 1,否則全為 0。0號存貯器用于存放溫度值的補碼, LSB(最低位)的 1表示0.5 攝式度。將存貯器中的二進制數(shù)求補再轉換成十進制數(shù)并除以 2 就得到被測溫度值 (-55 攝式度 -125 攝式度 ) 。DSl8B20的引腳如圖 3.2 所示。每只 DS18B20 都可以設置成兩種供電方式, 即數(shù)據(jù)總線供電方式和外部供電方式。 采取數(shù)據(jù)總 線供電
16、方式可以節(jié)省一根導線, 但完成溫度測量的時間較長: 采取外部供電方式 則多用一根導線,但測量速度較快 。(2)DS18B20 的測溫原理器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小, 用于產生固定頻率的 脈沖信號送給減法計數(shù)器 1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變, 所產生的信號作為減法計數(shù)器 2 的脈沖輸入。器件中還有一個計數(shù)門, 當計數(shù)門 打開時,DS18B20就對低溫度系數(shù)振蕩器產生的時鐘脈沖進行計數(shù)進而完成溫度 測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定, 每次測量前,首先將 55 所對應的一個基數(shù)分別置入減法計數(shù)器 1、溫度寄存器中,計數(shù)器 1 和溫度寄存 器被預置在
17、 55所對應的一個基數(shù)值。減法計數(shù)器 1 對低溫度系數(shù)晶振產生的脈沖信號進行減法計數(shù), 當減法計數(shù) 器 1 的預置值減到 0 時,溫度寄存器的值將加 1,減法計數(shù)器 1 的預置將重新被裝入,減法計數(shù)器 1 重新開始對低溫度系數(shù)晶振產生的脈沖信號進行計數(shù), 如此 循環(huán)直到減法計數(shù)器計數(shù)到 0 時,停止溫度寄存器的累加, 此時溫度寄存器中的 數(shù)值就是所測溫度值。 其輸出用于修正減法計數(shù)器的預置值, 只要計數(shù)器門仍未 關閉就重復上述過程,直到溫度寄存器值大致被測溫度值。另外,由于 DS18B20單線通信功能是分時完成的, 它有嚴格的時隙概念, 因 此讀寫時序很重要。 系統(tǒng)對 DS18B20的各種操作
18、按協(xié)議進行。 操作協(xié)議為: 初使化 DS18B20(發(fā)復位脈沖)發(fā) ROM功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。示。DS18B20采用 3腳 PR35封裝或 8腳 SOIC封裝,其部結構框圖如圖 3.3 所圖 3.3 DS18B20 的部結構圖64位 ROM的結構開始 8 位是產品類型的編號,接著是每個器件的惟一的序 號,共有 48位,最后 8位是前面 56位的 CRC檢驗碼,這也是多個 DS18B20可以 采用一線進行通信的原因。 溫度報警觸發(fā)器和, 可通過軟件寫入戶報警 上下限。(3)溫度計算1、DS18B20用 9 位存貯溫值度,最高位為符號位,如表 3.1 為 DS18B20的 溫度存儲方
19、式,負溫度 S=1,正溫度 S=0。如: 00AAH為+85攝式度,0032H 為 25 攝式度, FF92H為 55 攝式度表 3.1 18B20 用 9 位的溫度存儲方式2、DS18B20用 12位存貯溫值度,最高位為符號位,如表 3.2 為 DS18B20的 溫度存儲方式,負溫度 S=1,正溫度 S=0。如:0550H為+85攝式度,0191H為 25.0625 攝式度 ,FC90H為-55 攝式度。表 3.2 18B20 用 12 位的溫度存儲方式DS18B20溫度傳感器的部存儲器還包括一個高速暫存 RAM和一個非易失性的 可電擦除的 EERO。M高速暫存 RAM的結構為 8 字節(jié)的存
20、儲器,結構如圖 3.4 所示 頭 2 個字節(jié)包含測得的溫度信息, 第 3 和第 4 字節(jié)和的拷貝, 是易失的, 每次上電復位時被刷新。 第5個字節(jié),為配置寄存器, 它的容用于確定溫度值的 數(shù)字轉換分辨率。圖 3.4 DS18B20 存儲器結構DS18B20工作時寄存器中的分辨率轉換為相應精度的溫度數(shù)值。 該字節(jié)各位 的定義如圖 3.2 所示。低 5 位一直為,是工作模式位,用于設置 DS18B20 在工作模式還是在測試模式, DS18B20出廠時該位被設置為 0,用戶要去改動, R1和 R0決定溫度轉換的精度位數(shù),來設置分辨率。由表 3.3 可見, DS18B20溫度轉換的時間比較長,而且分辨
21、率越高,所需要 的溫度數(shù)據(jù)轉換時間越長。 因此,在實際應用中要將分辨率和轉換時間權衡考慮。表 3.3 DS18B20 溫度轉換時間表高速暫存 RAM的第 6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯 1。第 9字節(jié)讀出 前面所有 8字節(jié)的 CRC碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當 DS18B20接收到溫度轉換命令后, 開始啟動轉換。 轉換完成后的溫度值就 以 16 位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2 字節(jié)。單片機可以通過單線接口讀出該數(shù)據(jù), 讀數(shù)據(jù)時低位在先, 高位在后, 數(shù)據(jù)格式以 0.0625 LSB形式表示。當符號位 S0 時,表示測得的溫度值為正值,可以直
22、接將二進制位轉換為 十進制;當符號位 S1 時,表示測得的溫度值為負值,要先將補碼變成原碼, 再計算十進制數(shù)值;表 3.4 為部分溫度值對應的二進制溫度數(shù)據(jù):表 3.4 部分溫度值對應的二進制溫度數(shù)據(jù)溫度/二進制表示十六進制表示+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 時鐘芯片 DS1302(1) 時鐘芯片 DS1302的性能DS1302 是 DALLAS公 司推出的涓流充電時鐘芯片含有一個實時時鐘 / 日歷 和 31 字節(jié)靜態(tài) RAM通 過簡單的串行接口與單片機進行通信實時時鐘 / 日歷電路 提供秒分時日日期月年的信息每月的天數(shù)和閏年的天數(shù)可自動調整時鐘操作可 通過 AM/PM指 示決定采用 24 或 12 小時格式 DS1302 與單片機之
24、間能簡單地采 用同步串行的方式進行通信僅需用到三個口線 1 RES 復位 2 I/O 數(shù)據(jù)線 3 SCLK 串行時鐘時鐘 /RAM 的讀/ 寫數(shù)據(jù)以一個字節(jié)或多達 31 個字節(jié)的字符組方式通 信 DS1302 工作時功耗很低保持數(shù)據(jù)和時鐘信息時功率小于 1mW。 實時時鐘具有能計算 2100 年之前的秒、分、時、日、日期、星期、月、年的 能力還有閏年調整的能力 318 位暫存數(shù)據(jù)存儲 RAM 串 行 I/O 口 方 式 使 得 管 腳 數(shù) 量 最少 寬圍工作電壓 2.0 5.5V 工作電流 2.0V 時, 小于 300nA 讀/ 寫時鐘或 RAM數(shù) 據(jù)時有兩種傳送方式單字節(jié)傳送和多字圖 3.5
25、 DS1302 的封裝及引腳功能節(jié)傳送字符組方式 8 腳DIP 封裝或可選的 8 腳SOIC 封裝根據(jù)表面裝配 ,如圖 3.5 所示簡單 3 線接口與 TTL 兼容 Vcc = 5V 可選工業(yè)級溫度圍 -40 +85 ( 2) 時鐘芯片 DS1302的工作原理DS1302在每次進行讀、寫程序前都必須初始化,先把 SCLK端置 “ 0”,接 著把 RST端置“1”,最后才給予 SCLK脈沖;表 3.5 為 DS1302的控制字,此控制 字的位 7 必須置 1,若為 0 則不能把對 DS1302進行讀寫數(shù)據(jù)。 對于位 6,若對程 序進行讀/寫時 RAM=,1對時間進行讀 /寫時, CK=0。位 1
26、至位 5指操作單元的地 址。位 0 是讀/寫操作位,進行讀操作時,該位為 1;該位為 0 則表示進行的是 寫操作??刂谱止?jié)總是從最低位開始輸入 / 輸出的?!癈H”是時鐘暫停標志位,當 該位為 1 時,時鐘振蕩器停止, DS1302處于低功耗狀態(tài);當該位為 0 時,時鐘 開始運行?!癢P”是寫保護位,在任何的對時鐘和 RAM的寫操作之前, WP必須為 0。當“ WP”為 1時,寫保護位防止對任一寄存器的寫操作。a. DS1302的控制字節(jié)DS1302的控制字如表 3.5 所示??刂谱止?jié)的高有效位 (位 7)必須是邏輯 1, 如果它為 0,則不能把數(shù)據(jù)寫入 DS1302中,位 6 如果 0,則表
27、示存取日歷時鐘數(shù) 據(jù),為 1 表示存取 RAM數(shù)據(jù);位 5 至位 1 指示操作單元的地址;最低有效位(位 0)如為 0 表示要進行寫操作,為 1 表示進行讀操作,控制字節(jié)總是從最低位開 始輸出表 3.5 DS1302 的控制字b. 數(shù)據(jù)輸入輸出 (I/O)在控制指令字輸入后的下一個 SCLK時鐘的上升沿時,數(shù)據(jù)被寫入 DS1302, 數(shù)據(jù)輸入從低位即位 0 開始。同樣,在緊跟 8 位的控制指令字后的下一個 SCLK 脈沖的下降沿讀出 DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位 0 位到高位 7。如下圖 3.6 所示:圖 3.6 DS1302 讀/ 寫時序圖c. DS1302 的數(shù)據(jù)讀寫DS1302單
28、字節(jié)讀寫的波形如圖 3.6 所示。由波形可以看出, 無論是從 DS1302 中讀一個數(shù)據(jù),還是寫一個字節(jié)數(shù)據(jù)到 DS1302中,都要先寫一個命令字到 DS1302 中。即通過 SCLK引腳(7 號引腳)向 DS1302輸入 8個脈沖,把I/O 引腳(6 號引腳) 上的命令字寫入 DS1302。為了啟動數(shù)據(jù)傳輸, 引腳(5 號引腳)應為高電平。 在將 由 0 置 1 的過程中, SCLK引腳必須為邏輯 0 。然后才能進行讀寫操作。 I/O 引腳 上的數(shù)據(jù)在 SCLK的上升沿串行輸入 ( 寫數(shù)據(jù)到 DS1302),在 SCLK的下降沿串行 輸出( 讀數(shù)據(jù) )。d. DS1302的寄存器DS1302
29、有 12個寄存器,其中有 7 個寄存器與日歷、時鐘相關,存放的數(shù)據(jù) 位為 BCD碼形式 ,其日歷、時間寄存器及其控制字見表 3.6 所示:表 3.6 DS1302 的日歷、時間寄存器寫寄 存器讀寄 存器Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit080H81HCH10秒秒82H83H10分分84H85H12/ 24010時時AM /PM86H87H0010日日88H89H00010月月8AH8BH00000星期8CH8DH10 年年8EH8FHWP0000000此外, DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存 器及與 RAM相關的寄存器等。 時鐘突發(fā)
30、寄存器可一次性順序讀寫除充電寄存器外 的所有寄存器容。 DS1302 與 RAM相關的寄存器分為兩類: 一類是單個 RAM單元, 共 31 個,每個單元組態(tài)為一個 8 位的字節(jié),其命令控制字為 C0H FDH,其中奇 數(shù)為讀操作,偶數(shù)為寫操作; 另一類為突發(fā)方式下的 RAM寄存器,此方式下可一 次性讀寫所有的 RAM的 31 個字節(jié),命令控制字為 FEH(寫)、FFH(讀)。3.1.4 16*2LCD 液晶顯示 1602(1)1602采用標準的 16 腳接口,其中 :第 1 腳: VSS為地電源。第 2 腳: VDD接 5V正電源。第 3 腳: V0為液晶顯示器對比度調整端,接正電源時對比度最
31、弱,接地電源時 對比度最高,對比度過高時會產生“鬼影”,使用時可以通過一個 10K 的電位器調整對比度。第 4 腳: RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存 器。第 5 腳: RW為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和 RW共同為低電平時可以寫入指令或者顯示地址,當 RS為低電平 RW 為高電平時可以讀忙信號, 當 RS為高電平 RW為低電平時可以寫入數(shù)據(jù)。第 6 腳: E 端為使能端,當 E 端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第 714 腳:D0D7為 8 位雙向數(shù)據(jù)線。第 1516 腳:空腳。(2)1602液晶模塊部的控制器共有 1
32、1條控制指令 ,如表 3.7 所示:表 3.7 控制指令指令RSR/WD7D6D5D4D3D2D1D0清顯示0000000001光標返回000000001*置輸入模式000000011/DS顯示開 / 關控制0000001DCB光標或字符移位000001S/CR/L*置功能00001DLNF*置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址( AGG)置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址( ADD)讀忙標志或地址01BF計數(shù)器地址( AC)寫數(shù)到 CGRAM或 DDRAM10要寫的數(shù)從 CGRAM或 DDRAM讀數(shù)11讀出的數(shù)據(jù)它的讀寫操作、屏幕和光標的操作都是通過指令編程來實現(xiàn)的。(說明:
33、 1 為高電平、 0 為低電平)指令 1:清顯示,指令碼 01H,光標復位到地址 00H位置。指令 2:光標復位,光標返回到地址 00H。指令 3:光標和顯示模式設置 I/D :光標移動方向, 高電平右移, 低電平左移 S: 屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。指令 4:顯示開關控制。 D :控制整體顯示的開與關,高電平表示開顯示,低電 平表示關顯示 C:控制光標的開與關,高電平表示有光標,低電平表示 無光標 B :控制光標是否閃爍,高電平閃爍,低電平不閃爍。指令 5:光標或顯示移位 S/C :高電平時移動顯示的文字,低電平時移動光標。指令 6:功能設置命令 DL:高
34、電平時為 4 位總線,低電平時為 8 位總線 N:低 電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示 5*7 的點陣字 符,高電平時顯示 5*10 的點陣字符。指令 7:字符發(fā)生器 RAM地址設置。指令 8:DDRAM地址設置。指令 9:讀忙信號和光標地址 BF:為忙標志位,高電平表示忙,此時模塊不能 接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令 10:寫數(shù)據(jù)。指令 11:讀數(shù)據(jù)。(3) DM-162 液晶顯示模塊可以和單片機 AT89C52直接接口 ,電路如圖 3.7 所示:圖 3.7 接口電路液晶顯示模塊是一個慢顯示器件, 所以在執(zhí)行每條指令之前一定要確認模塊 的忙標志為低電平,
35、表示不忙, 否則此指令失效。 要顯示字符時要先輸入顯示字 符地址,也就是告訴模塊在哪里顯示字符,表 3.8 是 DM-162的部顯示地址。表 3.8 DM-16 的部顯示地址比如第二行第一個字符的地址是 40H,那么是否直接寫入 40H就可以將光標定位 在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位 D7 恒定為高電平 1 所以實際寫入的數(shù)據(jù)應該是 01000000B (40H)+10000000B(80H)=11000000B(C0H)(4) 基本操作時序如圖 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 的讀寫時序4 硬件電路4.1 單片機主控制模塊的設計AT89S52單片機為 40引腳雙列直插芯片 , MCS-51單片機共有 4個8位的 I/O 口( P0、P1、P2、P3),每一條 I/O 線都能獨立地作輸出或輸入。單片機的最小系統(tǒng)如下圖所示 ,18 引腳和 19 引腳接時鐘電路 ,XTAL1 接外部 晶振和微調電容的一端 ,在片它是振蕩器倒相放大器的
37、輸入 ,XTAL2 接外部晶振 和微調電容的另一端 , 在片它是振蕩器倒相放大器的輸出 .第 9 引腳為復位輸入 端,接上電容 ,電阻及開關后夠上電復位電路 ,20 引腳為接地端 ,40 引腳為電源端 .如圖 4.1 所示:圖 4.1 單片機最小系統(tǒng)4.2 時鐘電路模塊的設計圖 4.2 是 DS1302與單片機的連接, 其中 Vcc1 為后備電源, Vcc2為主電源。 在主電源關閉的情況下,也能保持時鐘的連續(xù)運行。 DS1302由 Vcc1 或 Vcc2 兩 者中的較大者供電。當 Vcc2大于 Vcc1+0.2V時, Vcc2給 DS1302供電。當 Vcc2 小于 Vcc1時, DS1302
38、由 Vcc1供電。 X1和 X2是振蕩源,外接 32.768KHz晶振。RST是復位/ 片選線,通過把 RST輸入驅動置高電平來啟動所有的數(shù)據(jù)傳送。 RST 輸入有兩種功能:首先, RST接通控制邏輯,允許地址 / 命令序列送入移位寄存 器;其次, RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當 RST為高電平時, 所有的數(shù)據(jù)傳送被初始化,允許對 DS1302 進行操作。如果在傳送過程中 RSTS 置為低電平,則會終止此次數(shù)據(jù)傳送, I/O 引腳變?yōu)楦咦钁B(tài)。上電動行時,在 Vcc 大于等于 2.5V 之前, RST必須保持低電平。中有在 SCLK 為低電平時,才能將 RST置為高電平, I/O
39、 為串行數(shù)據(jù)輸入端(雙向) 。SCLK始終是輸入端。圖 4.3 溫度傳感器與單片機的連接圖 4.2 時鐘芯片與單片機的連接4.3 溫度采集模塊設計如圖 4.3 所示, 采用數(shù)字式溫度傳感器 DS18B20,它是數(shù)字式溫度傳感器, 具有測量精度高, 電路連接簡單特點, 此類傳感器僅需要一條數(shù)據(jù)線進行數(shù)據(jù)傳 輸,使用 2.4 與DS18B20的I/O 口連接加一個上拉電阻 ,Vcc 接電源,Vss 接地。4.4 功能按鈕設計當按鈕被按下時 , 該按鈕對應的 I/O 口被拉為低電平 , 松開時按鈕對應的 I/O 口由部的上拉電阻將該 I/O 拉為高電平 , 如圖 4.4 所示:圖 4.4 功能按鍵電
40、路4.5 16*2 LCD1602 液晶顯示電路設計根據(jù)其讀寫的時序模擬總線的方式與單片機進行數(shù)據(jù)的通訊, 首先將數(shù)據(jù)從 I/O 口讀入或送出,再選擇 R/W 和 RS的電平進行不同的操作,在使能端 E下降 沿時觸發(fā)數(shù)據(jù)的讀入或送出。注意 P0 口要接上拉電阻,如圖 4.5 所示:圖 4.5 LCD 液晶顯示屏與單片機的連接4.6 總體電路圖本設計的具在溫度指示的數(shù)字萬年歷的總體電路圖如圖 4.6 所示:圖 4.6 總體電路圖5 系統(tǒng)軟件設計5.1 系統(tǒng)模塊的功能分劃分萬年歷程序設計總體上分為四個大模塊,分別是DS1302 時鐘程序模塊、DS18B20測溫模塊、 LCD顯示模塊、鍵盤功能模塊。
41、a. DS1302 時鐘程序模塊包括設置 DS1302初始時間、從 DS1302 讀時間子程序、寫 1302 一字節(jié)子程序、讀 1302 一字節(jié)、關閉寫保護、開啟寫保護、關閉時鐘、延時子 100MS程序。b. DS18B20 測溫模塊包括 DS18B20的初始化子程序、 DS18B20數(shù)據(jù)處理子程序、讀出溫度值的子 程序、 DS18B20復位子程序、寫 DS18B20的 1位字節(jié)子程序、讀 DS18B20的 1個 字節(jié)子程序。c. LCD 顯示模塊包括 LCD初始化子程序、寫入控制命令的子程序、 判斷 LCD顯示器是否忙的 子程序、向 LCD中的 DDRAM中寫數(shù)據(jù)、查詢 LCD字符表、調整模
42、式的顯示子程序、 正常模式 LCD顯示子程序。d. 鍵盤功能模塊包括模式選擇按鍵 SET子程序、調整模式選擇子程序、 OUT鍵掃描子程序、 UP按鍵掃描子程序、 DOWN按鍵掃描子程序。5.2 總體程序流程框圖本設計中,實現(xiàn)功能的總體程序流程框圖如下圖 5.1 所示:清時鐘停止、調整模式標志圖 5.1 總體程序流程框圖5.3 時鐘調整時間的流程圖時鐘調整時間的流程圖 5.2 所示:NO圖 5.2 時鐘調整時間的流程5.4 修改鍵“ UP”的功能流程圖修改鍵“ UP”的功能流程圖如圖 5.3 所示:開始圖 5.3 修改鍵“ UP”的功能流程圖單片機實現(xiàn)對溫度傳感器 DS18B20的溫度轉換讀取溫
43、度數(shù)值流程圖如下圖 5.4 所示:圖 5.4 溫度轉換讀取溫度數(shù)值流程圖6 系統(tǒng)仿真測試首先把各個模塊的程序編好, 在偉福 W6000中調試沒有錯誤后, 再到 Protues 7.1 中畫好并連接電路圖進行程序仿真。 各個部分的功能后再把它們綜合到一個 主程序中去, 在偉福 W6000中調試通過后再把它用 Keil uVision2 軟件把程序生 成 hex 格式最后到 Protues 7.1 中仿真。在綜合到一起的時候,出現(xiàn)了 RAM分配 錯誤的問題,因為原先是一個模塊子程序在運行, RAM的分配只要不要跟子程序 中的分配不沖突就可以了, 但是在綜合各個模塊子程序的時候就會出現(xiàn) RAM分配
44、沖突的問題。最好是在設計程序之前先把 RAM的空間分配好。6.1 KEIL 的使用Keil uVision2 是目前使用廣泛的單片機開發(fā)軟件,它集成了源程序編輯 和程序調試于一體,支持匯編、 C、 PL/M語言。keil C51 v6.12 的使用:點擊桌面快捷圖標,如圖 6.1 所示,可以直接進入主畫面: 在 Keil 系統(tǒng)中,每做個獨立的程序,都視為工程(或者叫項目)。首先從菜但 的“工程”中“新建工程 . ”,建立我們 圖 6.1 快捷圖標 將要做的工程項目如圖 6.2 所示:圖 6.2 新建建工程 新建的工程要起個與工程項目意義一致的名字, 可以是中文名; 我們這里的 程序是實驗測試程
45、序,所以起的名字為 Test ,并將 Test 工程“保存”到 D:Keil 下如圖 6.3 所示:圖 6.3 新建名工程窗口接下來, Keil 環(huán)境要求我們?yōu)?Test 工程選擇一個單片機型號;我們選擇Atmel 公司的 89C52(雖然我們使用的是 89S52,但由于 89S52與 89C52、外部 結構完全一樣,所以這里依然選擇“ 89C52”),如圖 6.4 所示:圖 6.4 選擇工程項目確定”后工程項目就算建立了。 立了工程項目, 肯定要實施這個工程, 現(xiàn)在就為工程添加程序;點擊“文件”中的“新建”,新建一個空白文檔,如圖6.5 所示;這個空白文檔就是讓我們編寫單片機程序的場所。在這
46、里你可以進行 編輯、修改等操作。圖 6.5 新建文件寫完后再檢查一下, 并保存文件, 保存文件時, 其文件名最好與前面建立的工程名相同(當然這里為 Test 了),其擴展名必須為 .Asm !“文件名”中一 定要寫全,如: Test.Asm ;保存后的文檔彩色語法會起作用,將關鍵字實行彩 色顯示,如圖6.6 所示:圖 6.6 保存文檔保存了 Asm文件后,還要將其添加到工程中。具體做法如下: (如下圖 6.7 所示)鼠標右鍵點擊 “Source Group 1 ”,在彈出的菜單中選“增加文件到組Source Group 1圖 6.7 添加文件在接下來出現(xiàn)的窗口中, 選擇“文件類型”為“ Asm
47、源文件(*.a*,*.src )” (由于我們使用的是匯編語言,所以選擇 Asm 源文件),選中剛才保存的 Test.Asm,按“ Add”,再按“關閉”,文件就添加到了工程中,如圖 6.8 所示:圖 6.8 添加到工程中向工程添加了源文件后,鼠標右鍵點擊TarGet 1” ,在彈出的菜單中選目標 Target 1 屬性”:在打開的話框中,選擇“輸出”選項卡,在這個選項卡中,“E 生成 HEX文件”選項前要打勾,按“確定”退出,如圖 6.9 所示圖 6.9 目標 TarGet 1 屬性最后,從菜單的“工程”中執(zhí)行“R 重新構造所有目標”(或者按下圖紅圈 中的按鈕),匯編、連接、創(chuàng)建 Hex 文
48、件一氣呵成;在工程文件的目錄下就會生 成與工程名相同的一些文件,其部分文件我們并不必關心,而生成的 Hex 文件 是我們需要的! 它是要燒寫到單片機中的最終代碼, 也就是單片機可以執(zhí)行的程 序。這里生成的是 Test.HEX ,稍后就寫入。 若在下面的狀態(tài)窗中有錯誤提示, 就需要再次編輯、修改源程序(如語法、字符有錯等)、保存、構造所有。直至 沒有錯誤,如圖 6.10 所示:圖 6.10 生成 hex 格式接下來,我們啟動 Protues 軟件仿真,將剛剛生成的 Test.Hex 燒寫到單片機 芯片,在 實驗板上實際驗證一下。6.2 Protues 軟件仿真Proteus ISIS 是英國 L
49、abcenter 公司開發(fā)的電路分析與實物仿真軟件。它 運行于 Windows操作系統(tǒng)上,可以仿真、分析(SPICE) 各種模擬器件和集成電路, 該軟件的特點是: 實現(xiàn)了單片機仿真和 SPICE電路仿真相結合。 具有模擬電路 仿真、數(shù)字電路仿真、 單片機及其外圍電路組成的系統(tǒng)的仿真、 RS232動態(tài)仿真、 I2C 調試器、 SPI 調試器、鍵盤和 LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示 波器、邏輯分析儀、信號發(fā)生器等。支持主流單片機系統(tǒng)的仿真。目前支持的 單片機類型有: 68000系列、 8051系列、 AVR系列、 PIC12系列、 PIC16系列、 PIC18系列、 Z80系列、 HC
50、11系列以及各種外圍芯片。提供軟件調試功能。在 硬件仿真系統(tǒng)中具有全速、 單步、設置斷點等調試功能, 同時可以觀察各個變量、 寄存器等的當前狀態(tài), 因此在該軟件仿真系統(tǒng)中, 也必須具有這些功能; 同時支 持第三方的軟件編譯和調試環(huán)境,如 Keil C51 uVision2 等軟件。具有強大的 原理圖繪制功能。總之,該軟件是一款集單片機和 SPICE分析于一身的仿真軟件, 功能極其強大。( 1) 進入 Proteus ISIS雙擊桌面上的 ISIS 6 Professional 圖標或者單擊屏幕左下方的“開始”“程序”“ Proteus 6 Professional ” “ ISIS 6 Pro
51、fessional ”,出現(xiàn)如圖6.11 所示屏幕,表明進入 Proteus ISIS 集成環(huán)境。圖 6.11 啟動屏幕(2) 工作界面Proteus ISIS 的工作界面是一種標準的 Windows界面,如圖 4-2 所示。包 括:標題欄、主菜單、標準工具欄、繪圖工具欄、狀態(tài)欄、對象選擇按鈕、預覽 對象方位控制按鈕、仿真進程控制按鈕、預覽窗口、對象選擇器窗口、圖形編輯 窗口,如圖 6.12 所示:圖 6.12 工作界面根據(jù)設計原理畫出仿真原理圖(如附錄二),檢查電路連接無誤后,雙擊單 片機芯片 AT89S52,如圖 6.13 所示:圖 6.13 燒寫程序把生成的 Test.Hex 燒寫到單片
52、機芯片, 點擊仿真進程控制按鈕, 點擊運行, 觀 看 LCD液晶顯示效果, 若在實驗板上實際驗證的并不是我們預期的效果,那么, 就需要再次返回到編輯、 修改源程序那一步, 修改后再構造所有, 再次將生成的 Hex文件在 51ISP 中燒寫、實驗,直至成功!如下圖 6.14 是本設計測試的效果 顯示。圖 6.14 測試結果顯示本次設計是我們遇到過的較大的設計, 所以遇到的問題也比較的多, 尤其是 以前沒有接觸過如此復雜的硬件電路以及軟件編程, 在軟、硬件設計和調試中遇 到了不少的困難, 在建軍老師的耐心指導下和同學的幫助才逐一克服了難題, 學 習到了不少的專業(yè)知識。在整個設計過程之前,我已經在網上找了相關方面的資料,萬事開始難,一 開始不知道從哪里下手。 后來慢慢學會分析系統(tǒng), 將系統(tǒng)模塊化, 各個模塊可以 在軟件或者硬件上實現(xiàn)。 在確保各個模塊的硬件電路和與之相搭配的程序能夠正 常工作后在把它們組成一個系統(tǒng)。 由于我的理論知識水平有限, 實踐能力和設計 經驗不足, 在設計的過程中難免還存在一些問題甚至是錯誤。 懇請各位老
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省資陽市2025年初三第二輪復習測試卷化學試題(四)含解析
- 重慶化工職業(yè)學院《化工設計軟件》2023-2024學年第二學期期末試卷
- 山東省沂水四十里中學2025年初三5月學業(yè)能力調研化學試題試卷含解析
- 山西省永濟市2025年初三下學期第9周周考化學試題含解析
- 綿陽職業(yè)技術學院《鍵盤技巧三》2023-2024學年第一學期期末試卷
- 西南林業(yè)大學《書法篆刻基礎》2023-2024學年第二學期期末試卷
- 酒泉市安西縣2025年小升初考試數(shù)學試卷含解析
- 江西工業(yè)工程職業(yè)技術學院《SAP企業(yè)培訓》2023-2024學年第二學期期末試卷
- 南開大學《高等數(shù)學A1》2023-2024學年第二學期期末試卷
- 武昌工學院《知識產權專業(yè)英語》2023-2024學年第二學期期末試卷
- 新疆旅游景點大全課件
- 先天性脊柱側凸的診療和治療講義課件
- 2009-2022歷年江蘇省常州市經濟開發(fā)區(qū)綜合行政執(zhí)法大隊公開招聘執(zhí)法協(xié)管員考試《公基》含答案2022-2023上岸必備帶詳解版4
- 系統(tǒng)工程第五講-ISM(解釋結構模型)
- CTCS-3級列控系統(tǒng)標準體系及需求規(guī)范課件
- 福建省普通高中學生綜合素質評價實施辦法
- 大兵小品《教子》臺詞(原臺詞及改編臺詞)
- 老年人功能性消化不良診治
- 《老先生的禮數(shù)》閱讀練習及答案
- 高分子化學第六章_離子聚合
- 連接器成本分析-B版
評論
0/150
提交評論