


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、摘要本設計應用AT89C52芯片作為核心,采用 C語言進行編程,實現(xiàn)以下功能:小時、分、秒、年、月、日、星期的顯示和實時溫度檢測。該設計的電 子時鐘系統(tǒng)由時鐘電路、 LCD 顯示電路、按鍵調整電路和溫度檢測電路四部 分組成。使用時鐘芯片DS1302完成時鐘日期的功能,以LCD1602為顯示器,同時利用溫度傳感器DS18B20測量周圍環(huán)境溫度,并且可以依靠按鍵隨時對日期時間進行調整。我們共設計四個按鍵,一個模式鍵,也就是我們用來選 定被修改的數(shù)字的,兩個調整鍵,一個“加”鍵和一個“減”鍵,當按下模 式鍵,選定要調整的數(shù)字的時候, “加”、“減”可以幫我們調到所需的狀態(tài), 還有一個復位鍵,顯示精度
2、為 1 秒。設計還提供三位實時溫度檢測并顯示, 其顯示精度為 0.1 C。關鍵詞 :AT89C52,時鐘日歷芯片 DS1302,溫度傳感器 DS18B20AbstractThe design is applied with AT89C52 chip as the core, use C program Ianguage.to achieve the follow ing functions:hours, minu tes,sec on ds,and the year, month,date display, real-time temperature sensing.The desig n o
3、f electr onic clockcontainselectr onicclock circuit, LCD display circuit,butt ons and temperaturedetect ion circuit adjustme ntcircuit four parts. Use the clock date clock chipDS1302 completed features to display by LCD1602, while usi ng the temperature sen sor DS18B20 measuri ng ambie nt temperatur
4、e, and rely on keys to adjust at, date, time at any time. We have designed four buttons, one mode key, this key help we chose the nu mber that are n eed to modify, and two adjustme nt key, one plus key, one minus key. After press the mode butt on, select the time to be adjusted, add or sub the nu mb
5、er to the desired state, there is a certa in key, press the OK butt on to en ter the no rmal clock mode after adjusted. This desig n provides both temperature sensing and display real-time.KEY WORDS:目錄前言1第一章概述2第二章 基于單片機電子時鐘的硬件電路設計 4第一節(jié)MCU選擇及AT89C51簡介4第二節(jié)時鐘電路的設計 8一、DS1302簡要說明8二、DS1302弓I腳說明8三、DS1302控制
6、字和讀寫時序說明 9四、DS1302片內寄存器說明 11五、時鐘電路的原理 12第三節(jié) 環(huán)境溫度米集電路的設計 13一、溫度傳感器的選擇 13二、DS18B20簡介13三、DS18B20控制字和讀寫時序說明 15四、溫度采集電路與單片機的連接 17第四節(jié)顯示電路的設計 18一、顯示器LCD1602的特點與簡介 18二、顯示電路的與單片機的連接 19第五節(jié)按鍵電路的設計21第六節(jié)復位電路的設計22第三章 基于單片機電子時鐘軟件設計23第一節(jié)主程序設計23第二節(jié)2 實時時鐘子程序設計23第三節(jié)環(huán)境溫度采集子程序設計24第四節(jié)按鍵子程序設計26第四章 系統(tǒng)調試27第一節(jié)單片機基礎電路的調試27第二節(jié)
7、顯示電路的調試27第三節(jié)DS1302電路的調試27第四節(jié)環(huán)境溫度采集的調試27第五節(jié)按鍵電路的調試27第六節(jié)軟件的調試2930結論31參考文獻致謝32附錄 1 總設計原理圖33附錄 2 帶溫度顯示的電子時鐘仿真圖34附錄3 HD44780字符集 35附錄 4 升序按鍵程序36、八前言時間是人類生活必不可少的元素,對人們來說時間是那么的寶貴,如果沒有時間的觀念,人們的生活就會紊亂,社會秩序也將不會有井有條。從古代的水漏到后來的機械鐘再到當今的石英鐘,都充分體現(xiàn)了時間的重要,同時也代表著科技的發(fā)展進步,所以對于我們研究電子時鐘和充分發(fā)揮時鐘的 作用將有著重要的意義。數(shù)字鐘是一種用數(shù)字電路技術實現(xiàn)時
8、、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更長的使用壽命。隨著數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應用,使得數(shù)字的精度,遠遠超過老式鐘表,且鐘表的數(shù)字化給人們的生產生活帶來了極大的方便,成為人們生活中不可少的必需品。工農業(yè)生產上也有很多的場合要測量環(huán)境 溫度啊、濕度啊。如果擴大時鐘原有的功能,比如增加環(huán)境溫度顯示的功能 等等,將使電子鐘的應用更加廣泛。本設計主要為實現(xiàn)一款可正常顯示時鐘 和實時測量的環(huán)境溫度的多功 能電子時鐘, 并且可以依靠按鍵隨時對日期進行調整, 以確保顯示的正確性、 實時性。該設計采用 AT89C52作為核心處理芯片分別對時鐘芯片D
9、S1302、溫度傳感器DS18B20進行讀寫控制,并將讀到的數(shù)據(jù)送給LCD1602顯示出來。第一章 概述從電子時鐘的發(fā)明到現(xiàn)在已經(jīng)將近半個世紀了,從最初的德克薩斯儀器推出的 4 位單片機電子時鐘到當今的 32 位,從當時價錢昂貴且體積大到現(xiàn)在 的精致小型,從以前的單一的時間顯示到現(xiàn)代的可以顯示溫度、濕度等更多 功能的電子時鐘,都積累了眾多科學家的努力和心血。溫度關系著我們日常 生活,關系著我們的身體健康,其結構簡單、易行、實用。所以設計這樣的 一個電子時鐘是很有意義的。本文基于課題并對當前電子時鐘開發(fā)手段進行了比較和分析,最終確定 了采用單片機技術實現(xiàn)多功能電子時鐘的總體方案。本文設計應用AT
10、89C52芯片作為核心,LCD1602顯示,使用時鐘芯片DS1302完成時鐘日期的功能,同時利用溫度傳感器DS18B20測量周圍環(huán)境溫度,并且可以依靠按鍵隨時對日期、時間進行調整本課題通過 AT89C522單片機來設計電子時鐘,采用C語言進行編程,可以實現(xiàn)以下一些功能:小時、分、秒、年、月、日、星期的顯示和實時溫度 檢測。本次設計的電子時鐘系統(tǒng)由時鐘電路,LCD 顯示電路,按鍵調整電路四部分組成。51單片機通過軟件編程,在LCD1602液晶屏上實現(xiàn)小時、分、秒、年、月、日、星期的顯示;利用時鐘芯片 DS1302來實現(xiàn)計時;通過三個按鍵開關, 一個用于時鐘調節(jié)模式的選擇 (模式包括調秒、 分、時
11、、年、 月、日、星期), 按1次下模式鍵(KEY1)調用調年程序,同時顯示程序也響應相應的動作, 秒數(shù)字開始閃爍,進入調秒模式,再按一次進入調月模式,依次類推分別進 入調日、星期,時、分、秒的模式。另外兩個用于時鐘的調節(jié),其中KEY2為加鍵,KEY3為減鍵,在按下模式鍵后,相應的數(shù)字會閃爍,這時我們按下 加鍵或減鍵,對應的數(shù)字就會相應的加一或減一,使我們的多功能電子時鐘 更方便,更人性化。溫度部分的設計我們采用 DALLAS公司生產的1 wire式數(shù)字溫度傳感器 DS18B20,所謂1 wire就是單線的意思, 也就是該傳感器與 CPU進行數(shù)據(jù)傳 輸?shù)臅r候只需要一條數(shù)據(jù)線就可以了,甚至他的電源
12、都可以由數(shù)據(jù)線提供,DS18B20也具備這項功能,他可以從數(shù)據(jù)線上給自己供電,這樣他的外接電路,就非常的簡單明了,也節(jié)省了不少CPU的硬件資源。本設計就是采用這樣的方案,DS18B20的電源是通過一個上拉電阻為自己獲取電源的。當然這樣的設計簡化了我們的硬件外部連線,節(jié)省了硬件資源,但是這 樣的設計也給我們的軟件設計(編程)提出了嚴格的要求,特別是時序的要 求,我們用單片機發(fā)脈沖來模擬串行通信,每個時鐘的間隙和讀寫的辨別都 給我們的編程帶來更多的困難。所以我們要嚴格按照時序,準確的進行讀寫 操作。顯示部分我們的用的是LCD1602為什么要選 LCD1602呢最初我想的是用數(shù)碼管顯示的,數(shù)碼管的高
13、亮度和編程控制容易的特點使我更受青睞,但 是我想要是同時顯示年、月、日、時、分、秒,當然還有溫度,這算起來就 有就有 17 位的位選端,再加上 8 段的 8 個端口的話,就要 25 位的 I/O 口, 還要有鍵盤,這顯然讓我們的CPU無法恭維,如果是分時顯示,也不能說是個不錯的想法,但是這樣的設計就不太人性化了,當然我們還可以考慮擴展I/O 口,但是這又加大了編程的難度, 相比起來,LCD1602就顯的綽綽有余了。 他可以同時顯示 32 個字符,用來顯示我們的時鐘, 還有溫度就顯得更加清晰、 自然。所以最終選擇 LCD1602作為顯示器件第二章基于單片機的電子時鐘硬件設計電子時鐘至少包括秒信號
14、發(fā)生器、時間顯示電路、按鍵電路、供電電路 等四部分,另外,本設計要求該電子鐘能夠采集溫度,所以還需要溫度采集 電路,硬件電路框圖如圖 2-1。圖2-1硬件電路框圖該系統(tǒng)使用AT89C52單片機為核心微控制器,通過讀取時鐘日歷芯片DS1302和溫度傳感器DS18B20的數(shù)據(jù),完成電子時鐘的主要功能一一時鐘歷和環(huán)境溫度采集,使用比直觀的LCD1602顯示,同時顯示年月曰,星期,時分秒以及環(huán)境溫度值。 鍵盤是為了完成時鐘 / 日歷的校準。 整個電路使用了 +5V 電源供電。第一節(jié) MCU的選擇與AT89C51簡介目前在單片機系統(tǒng)中,應用比較廣泛的微處理器芯片主要為8XC5X系列的單片機,該系列單片機
15、均采用標準MCS-51內核,硬件資源相互兼容,品類齊全、性能穩(wěn)定、體積小、價格底、貨源充足、調試和編程方便,所以應用 較為廣泛。例如AT89C52單片機是一款低功耗、低電壓、高性能CMOS瞼單片機,片內含8KB(可經(jīng)受1000次擦寫周期)的FLASH可編程可反復擦寫的只讀程 序存儲器(EPROM,器件采用CMOST藝和ATMEL公司的高密度,非易失性存 儲器(NURAM技術制造,其輸出引腳和指令系統(tǒng)都與MCS-51兼容,片內的FLASH 存儲器允許在系統(tǒng)內可改編程序或用常規(guī)的非易失性存儲編程器來編 程。因此, AT89C52 是一種功能強,靈活性高且價格合理的單片機,可方便 的應用在各個控制領
16、域 1 。AT89C52具有以下主要性能:可改編程序FLASH存儲器;2.全表態(tài)工作 :024HZ;字節(jié)內部RAM個外部雙向輸入,輸出(I、O 口;引腳說明如圖2-2。Pl .oP1 r rRBiT 匚 (RXD) P3.O C crxoj i L 1KTD) P3 ? C JU R3.3 匚 (TO) Pl 4 C 匚x. ILxialir uno匚PDIPsEaErE冨E nJnnnnnnnnnnnnnnrtnnn圖2-2 AT89C52 引腳說明引腳功能說明如下2:VCC電源電壓。GND 地。P0 口: P0 口是一組8位漏極開路型雙向I/O 口,也即地址/數(shù)據(jù)線復用 口。作為輸出口時,
17、每位能吸收電流的方式驅動8個TTL邏輯門電路,對端口寫“ T可作為高阻抗輸入端。在訪問外部數(shù)據(jù)儲存器或程序儲存器時,這組口線分時轉換地址(低位)和數(shù)據(jù)總線復用,在訪問期間激活內部上拉電阻FLASH編程時,P0 口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電 阻。P1 口: P1是一個帶內部上拉電阻的 8位雙向I/O 口,P1的輸出緩沖級 可驅動(吸收或輸出電流) 4 個 TTL 邏輯門電路。對端口寫“ 1”,通過內部 的上拉電阻把端口拉到高電平,此時可作為輸入口。作為輸入口使用時,因 為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。FLASH編程和程序校驗期間
18、, P1 接收低 8 位地址。P2 口: P2是一個帶內部上拉電阻的 8位雙向I/O 口,P2的輸出緩沖級 可驅動(吸收或輸出電流) 4 個 TTL 邏輯門電路。對端口寫“ 1”,通過內部 的上拉電阻把端口拉到高電平,此時可作為輸入口。作為輸入口使用時,因 為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。在訪問 外部程序儲存器或 16位地址的外部數(shù)據(jù)儲存器(例如執(zhí)行MOVXDPTR令)時, P2 口送出高 8 位地址數(shù)據(jù)。在訪問 8 位地址的外部數(shù)據(jù)儲存器(例如執(zhí) 行MOVXRg令)時,P2 口線上的內容(也即特殊功能寄存器(SFR區(qū)中R2寄存器的內容),在整個訪問期間不改變。FL
19、ASH編程或校驗時,P2亦接收高位地址和其他控制信號。P3 口: P3是一個帶內部上拉電阻的8位雙向I/O 口,P3的輸出緩沖級 的上拉電阻把端口拉到高電平,此時可作為輸入口。作為輸入口使用時,因 為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。P3除了作為一般的I/O 口線外,更重要的用途是它的第二功能,具體功 能說明如表2-1。P3 口還接收一些用于 FLASH閃速存儲器編程和程序校的控制信號。RST:復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復位。ALE/PROG當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8
20、位字節(jié)。表2-1 P3 口的第二功能表端口引腳第二功能RXD(穿行輸出口 )TXD(穿行輸入口 )INTO (外部中斷 0)INT1 (外部中斷 1)T0(定時/計數(shù)器0)T1(定時/計數(shù)器0)WR(外部數(shù)據(jù)寫選通 )RD(外部數(shù)據(jù)讀選通 )即使不訪問外部存儲器,ALE仍以是時鐘振蕩頻率的 1/6輸出固定的正脈沖信號,因此他可對外輸出時鐘或用于定時目的。要注意的是:每當訪問 外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG。如有必要,可通過對特殊功能寄存器( SFR區(qū)中的8EH單元的DO位置 位,可禁止 ALE操作。該位置位后,只有一條 MO
21、VX和MOVC旨令ALE才會被 激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應設置ALE無效。PSEN程序儲存允許(PSEN輸出是外部程序存儲器的讀選通信號,當 AT80C51由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖。 在此期間,當訪問外部數(shù)據(jù)存儲器, 這兩次有效的 PSEN信號不出現(xiàn)EA/VPP: 外部 訪問允許。欲使 CPU 僅訪 問外部程序儲存器(地址為 0000H-FFFFH), EA 端必須保持低電平(接地) 。需要注意的是:如果加密位 LB1被編程,復位時內部會鎖存 EA端狀態(tài)。如EA端為高電平(Vcc端),CPU 則執(zhí)行內部程序儲
22、存器中的指令。FLASH儲存器編程時,該引腳加上 +12V的編程允許電源 Vpp,當然這必 須是該器件是使用 12v 編程電壓。XTAL1 :振蕩器反相放大器的及內部時鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。第二節(jié) 時鐘電路的設計實現(xiàn)電子時鐘的功能方案有很多種,常用的有用芯片555 實現(xiàn),直接編程實現(xiàn),也就是通過編程由單片機內部產生時鐘的數(shù)據(jù)。本設計要求時鐘電 路能夠顯示日歷和時間,對一般的芯片的實現(xiàn)方法,這難免會給編程帶來極 大的麻煩,而 DS 1 302就可以自己依靠單獨的晶振電路,產生這些數(shù)據(jù),并存 儲到內部的存儲器中,而我們要做的工作就是,不斷的讀出這些數(shù)據(jù),并轉 換成
23、顯示器可識別的有效的數(shù)據(jù),送到顯示器上顯示。這樣一款強大的時鐘 芯片,不但占用的硬件資源少,而且其精確性、實時性也是相當?shù)目捎^。所 以本設計選用 DS1302來實現(xiàn)時鐘電路。DS1302簡要說明DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、星期、時、分、秒進行計時,具有閏年補 償功能,工作電壓為。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內部有一個31 X 8的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產品,與DS1202兼容,但增加了主電源/后備電源雙
24、電源引腳,同時提供了對后背電源進行涓細電流充電的能力。主要特點是采用串行數(shù)據(jù)傳輸,可為掉電保護電源提供可編程的充電功能,并且可以關閉充電功能。DS1302的外接晶振采用普通晶振。二、DS1302引腳說明DS1302封裝和引腳參照圖2-3ccz 1SU Vcc iXI 27n &匚社百X2匚36 IQGND匚45聞圖2-3 DS1302 封裝和引腳DS1302的引腳排列,其中Vcc1為后備電源, Vcc2為主電源。在主電 源關閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。X1和X2是振蕩源,外接晶振。RST是復位/片選線,通過把RST輸入驅動置高電平來啟
25、動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯, 允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對 DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc2之前,RST必須保持低電平。只有在 SCLK為低電平時,才能將 RST 置為高電平。I/O為串行數(shù)據(jù)輸入輸出端 (雙向),后面有詳細說明。 SCLK 為時鐘輸入端。具體的引腳說明如表2-2。表2-2 DS1302 引腳功能說明引腳號名稱功能1VCC1備份電源輸入2X1輸入3
26、X2輸岀4GND地5RST控制移位寄存器 /復位6I/O數(shù)據(jù)輸入/輸出7SCLK串行時鐘8VCC2主電源輸入DS1302控制字和讀寫時序說明在編程過程中要注意DS1302的讀寫時序,DS1302是SPI總線驅動方式,它不僅要向寄存器寫入控制字,還需要讀取相應寄存器的數(shù)據(jù)。要想與 DS1302通信,首先要先了解DS1302的控制字。DS1302的控制字如表 2-3??刂谱值淖饔檬窃O定 DS1302的工作方式,傳送字節(jié)數(shù)等。每次數(shù)據(jù)的傳 輸都是由控制字開始9 o1. 第7位:控制字的最高有效位,如果它為0,則不能把數(shù)據(jù)寫入到DS1302 中。2. 第6位:如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示
27、存取RAM數(shù)據(jù)。表2-3 DS1302 的控制字節(jié)1RAM / CKA4A3A2A1A0sRD /Wr第7位第6位第5位第4位第3位第2位第1位第0位3 .第5位:(A4A0)用A4A0表示,定義片內寄存器和RAM的地址。定義如下:當?shù)?位為0時,定義時鐘和其他寄存器的地址。A4A0= 06,順序為秒、分、時、日、月、星期、年的寄存器。當A4A0= 7,為芯片寫保護寄存器地址。當 A4A0= 8,為慢速充電參數(shù)選擇寄存器。當A4A0= 31,為時鐘 字節(jié)方式選擇寄存器。當?shù)?位為1時,定義 RAM的地址,A4A0= 030,對應各子地址的RAM地址31對應的是RAM多字節(jié)方式選擇寄存器。4.
28、第 0 位(最低有效位) :如果為 0, 表示進行寫操作,為 1 表示進行讀 操作。控制字總是從最低位開始輸出。在控制字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入 DS1302.數(shù)據(jù)輸入從最低位(0位)開始。同樣,在緊跟 8位的控制字指令后的下一個SCLK脈沖的下降沿,讀出DS1302的數(shù)據(jù),讀出的數(shù)據(jù)也是從最低位到最高位。DS1302的數(shù)據(jù)讀寫方式有兩種,一種是單字節(jié)操作方式,一種是多字節(jié) 操作方式。每次僅寫入一個字節(jié)數(shù)據(jù)稱為單字節(jié)操作,每次對時鐘/ 日歷的 8字節(jié)或31字節(jié)RAM進行全體寫入或讀出的操作稱為多字節(jié)操作方式。當以多字節(jié)方式寫時鐘寄存器時,必須按數(shù)據(jù)傳送的順序依次寫入8
29、個寄存器。但是,當以多字節(jié)方式寫RAM時,不必寫所有 31字節(jié),不管是否寫了全部 31字節(jié),所寫的第一個字節(jié)都將傳送到RAM。為了啟動數(shù)據(jù)的傳輸,CE引腳信號應由低變高,當把CE驅動到邏輯1的狀態(tài)時,SCLK必須為邏輯0,數(shù)據(jù)在SCLK的上升沿串行輸入,無論是讀同 期還是寫周期,也無論傳送方式是單字節(jié)還是多字節(jié),都要通過控制字指定40 字節(jié)的哪個將被訪問,在開始 8 個時鐘同期把命令字(具有地址和控制信息的 8 位數(shù)據(jù))裝入移位寄存器之后,另外的時鐘在讀操作時輸出 數(shù)據(jù),在 寫操作時輸入數(shù)據(jù),所有的數(shù)據(jù)在時鐘的下降沿變化。所有寫入或讀出操作 都是向芯片發(fā)送一個命令字節(jié)。對于單字節(jié)操作,包括命令
30、字節(jié)在內,每次 為 2 個字節(jié),需要 16 個時鐘,對于時鐘 / 日歷多字節(jié)模式操作,每次為 7 個 字節(jié),需要72個時鐘,而對于 RAM多字節(jié)模式操作,每次則為32字節(jié),需要多達 256 個時鐘,這里僅給出單字節(jié)讀寫時序,如圖 2-4, 多字節(jié)操作方式 與其類似,只是且而跟的字不止一個。圖 2-4 DS1302 單字節(jié)讀寫時序四、 DS1302 片內寄存器說明通過控制字對 DS1302片內的寄存器進行尋址之后,即可就所選中寄存器的各位進行操作。片內各寄存器用各位的功能定義如表2-4DS1302有關日歷、時間的寄存器共有10個,時鐘/日歷包含在其中的 7個寫/讀寄存器內,這個寄存器分別是秒、分
31、、小時、日、月、星期和年。小時寄存器(85H、84H)的位7用于定義 DS1302是運行于12小時模式還是24小時模式。當為12小時制式時,位 5為“0”表示 AM為“T表示讀寄存器寫寄存器BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0范圍PM 在24小時制式下,位 5是第二個10小時位(2023時)表2-4片內各寄存器各位的功能定義表81H80HCH10秒秒005983H82H10分分005985H84H12/24010時時112AM/PM02387H86H0010日日13189H88H0010月月1128BH8AH00000周日178DH8CH10年年00998FFH8E
32、HWP0000000秒寄存器(81H、80H)的位7定義為時鐘暫停標志(CH)0當該位置為1 時,時鐘振蕩器停止,DS1302處于低功耗狀態(tài);當該位置為0時,時鐘開始運行。一般在設置時鐘時,可以停止工作,設定完之后,再啟動其工作???制寄存器(8FH、8EH)的位7是寫保護位(WP ,其它7位均置為0,在任 何片內時鐘/日歷寄存器和 RAM在寫操作之前, WP位必須為0位,否則將不可寫入。當 WP位為1時,寫保護位防止對任一寄存器的寫操作。因此,通過 置寫保護位,可以提高數(shù)據(jù)的安全性。五、時鐘電路與單片機的連接根據(jù)DS1302引腳功能說明和程序要求將其按圖2-5接入電路ccCD222PGND-
33、|3二褲RT1-CC2VCCl XI SCLK X2 IO USD KS1LDS1GNDrARlS.4K7杓卩I5PIOR214K7圖2-5單片機與時鐘芯片 DS1302連接圖該硬件電路設計簡單,抗干擾能力強。如圖,AT89C5仲片機直接接DS1302的RST端,上電后,AT89C51的腳自動輸出高電平。作為串行時鐘接口,作為 時鐘數(shù)據(jù)的I/O。DS1302采用雙電源供電,平時由 +5V電源供電,當+5V電源之 后,由圖中+3V備用電源供電。特別需要注意X1和X2兩端連接的晶振,該晶振頻率為。第二節(jié)環(huán)境溫度米集電路的設計、隨著技術的發(fā)展,電子時鐘不在單一的只用來顯示時間,人們在其上面 增加了相
34、應的附屬功能,比如:多功能鬧鐘、溫度、濕度等等。但在我看來 了溫度提醒著我們穿衣保暖,關系著我們的身體健康。所以我認為溫度是最 為實用的外加功能。一、 溫度傳感器選擇在日常生活中和工農業(yè)生產中常要用到溫度檢測及控制,傳統(tǒng)的測溫元 件有熱電偶和熱電阻,一般用來測量中高溫,輸出的是電壓,將其轉換成對 應的二進制溫度碼值,需要較多的硬件支持,硬件電路復雜,軟件調試較為 復雜,制作成本高。通過編程,DS18B20可以實現(xiàn)912位溫度讀數(shù),信息經(jīng)過單線接口送 入DS18B20或從DS18B20送出,因此從單片機到DS18B20僅需要一條線。讀寫和完成溫度變換所需要的電源可由數(shù)據(jù)線本身提供,而無需外部電源
35、。測 量范圍為 -55 +125 攝氏度,增量為度,電源電壓范圍為+3V +。通過編程,用戶還可以自行設定報警上下限溫度,報警尋找命令可以識別和尋址那些溫 度超出預設報警界限器件。二、 DS18B20 簡介DS18B20是 DALLAS司生產的單線式數(shù)字溫度傳感器,具有3引腳TO 92小體積封裝形式;溫度測量范圍為55C+ 125C,可編程為 9位12位A/D16位數(shù)字量方轉換精度,測溫分辨率可達0.0625 C,被測溫度用符號擴展的式串行輸出;其工作電源既可在遠端引入,也可采用寄生電源方式產生;多個DS18B2C可以并聯(lián)到3根或2根線上,CPUR需一根端口線就能與諸多DS18B20通信,占用
36、微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。以上特點使DS18B20非常適用于遠距離多點溫度檢測系統(tǒng)。每一個DS1820包括一個唯一的64位長的序號該序號值存放在DS1820內部的ROM(只讀存貯器)中開始8位是產品類型編碼(DSI820 編碼 均為10H)接著的48位是每個器件唯一的序號 最后8位是前面56位的CRC循環(huán)冗余校驗)碼DSI820中還有用于貯存測得的溫度值的兩個8位存貯器RAM編號為0號和1號1號存貯器存放溫度值的符號如果溫度為負則1號存貯器8位全為1否則全為0。0號存貯器用于存放溫度值的補 碼LSB(最低位)的1表示貯器中的二進制數(shù)求補再轉換成十進制數(shù)并除以2就得到被測溫
37、度值。具體引腳說明如圖2-6,功能如表2-5圖2-6 DS18B20 引腳與封裝表2-5 DS18B20引腳說明序號名稱引腳功能1GND接地2DQ數(shù)據(jù)輸入/輸出引腳:開漏單總線接口引腳;當被用到寄生電源下,也可向器 件提供電源3VDD可選擇的 VDD引腳,當工作于寄生電源時,此引腳必須接地三、DS18B20控制字和讀寫時序說明DS18B20是 1-wire單線器件,它在一根數(shù)據(jù)線上實現(xiàn)數(shù)據(jù)的雙向傳輸,這就需要一定的協(xié)議來對讀寫數(shù)據(jù)提出嚴格的時序要求,AT89C51單片機并不支持單線傳輸。因此,必須采用軟件的方法來模擬單線的協(xié)議時序。主機操 作單線器件DS18B20必須遵循下面的順序。1.初始化
38、單線總線上的所有操作均從初始化開始,初始化過程如下。主機通過拉低單線480us以上,產生復位脈沖,然后釋放該線,進入RX接收模式。主機釋放總線時,會產生一個上升沿。單線器件DS18B20僉測到該上升沿后,延時15-60us,通過拉低總線60-24us來產生應答脈沖,主機接收到從機的應答脈沖后,說明有單線器件在線操作命令一旦總線主機檢測對應答脈沖,便可以發(fā)起ROM操作命令。共有5位 ROM操作命令。詳細說明如下表2-6表2-6 ROM操作命令與說明命令類型命令字節(jié)功能說明此命令讀取激光 ROM勺64位,只能用于總線上單個DS18B20的情況Read rom33H下,多掛則會發(fā)生沖突此命令后跟64
39、位ROM序列號,尋址多掛總線上的DS18B20。只有序Match rom55H列號完全匹配的 DS18B20才能響應后面的內存操作命令,其他不(匹配rom)匹配的將等待復位脈沖。此命令可用于單掛或多掛接總線。此命令用于單掛接總線系統(tǒng)時,可以無需提供64位ROM序列號皆Skip rom(跳CCH可運行內存操作命令。如果總線上掛多掛DS18B20,并且在此命令過 rom)后執(zhí)行讀命令,將會發(fā)生數(shù)據(jù)沖突。Search romF0H主機調用此命令,通過一個排除法過程,可以識別出總線上所有(搜索rom)器件的RON序列號。Alarm rom(警報rom)ECH此命令流程圖和search rom 命令相同
40、,但是DS18B20只有在最近的一次溫度測量時滿足了告警觸發(fā)條件,才會響應此命令。3. 內存操作命令在成功執(zhí)行了 ROM操作命令之后,才可以使用內存操作命令。主機可以提供6種內存操作命令,如表 2-7。4. 數(shù)據(jù)處理DS18B2C要求有嚴格的時序來保證數(shù)據(jù)的完整。在單線DQt,存在復位脈沖、應答脈沖、寫“1”、寫“0”、讀“ 1”、讀“0”幾種信號類型。其中, 除了應答脈沖之外,均由主機產生。而數(shù)據(jù)位讀寫則是通過使用讀、寫時隙 實現(xiàn)的。首先了解寫時隙。 當主機將數(shù)據(jù)線從高平拉至低電平時,產生2種類型的寫時隙:寫“ 1”和“0”。所有寫時隙必須在60卩s以上(即由高拉低后持續(xù)60卩s以上),各個
41、寫時隙之間必須保證最短1us的恢復時間。DS18B20在DQ線變低后的15卩s60卩s的端口對DC進行采樣,如果為高電平,就為寫“ 1”; 如果為低電平,就為寫“ 0”。對于主機產生寫“1”時隙的情況,數(shù)據(jù)線必 須先被拉低,然后釋放,在寫時隙開始后的15卩s,允許DQ拉至高電平。對于主機寫“ 0”時隙的情況,DQg必須被拉至低電平至少保持低電平60卩s。再來了解一下讀時隙。當主機從DS18B20賣數(shù)據(jù)時,把數(shù)據(jù)線從高電平拉至低電平,產生讀時隙。數(shù)據(jù)線D、須保持低電平至少1卩s,來自DS18B20的輸出數(shù)據(jù)在讀時隙下降沿之后15卩s內有效。因此,在此 15卩s內,主機必須停止將DC引腳置低。在讀
42、時隙結束時,DC引腳通過外部上拉電阻拉回高電平。所有的讀時隙最短必須持續(xù)60卩s,各個讀時隙之間必須保證最短1卩s的恢復時間。表2-7內存操作命令與說明命令類型命令字節(jié)功能說明Write Scratchpad(寫暫存器)4EH此命令寫暫存器中地址 器)在發(fā)起復位脈沖之前,24的3個字節(jié)(TH、TL和配置寄存3個字節(jié)都必須要寫。Rrad ScratchpadBEH此命令讀取暫存器內容,從字節(jié)0直讀取到字節(jié)8。主機(讀暫存器)可以隨時發(fā)起復位脈沖以停止此操作。此命令將暫存器中的內容復制進E2RAM以便將溫度告警觸Copy Scratchpad48H發(fā)字節(jié)存入非易失內存。如果在此命令后產生讀時隙,那
43、(復制暫存器)么只要器件在進行復制就會輸出0,復制完成后, 再輸出1。Convenrt T (溫度44H此命令開始溫度轉換操作。如果在此命令后主機產生讀時轉換)隙,那么只要器件在進行溫度轉換就會輸出0,轉換完成后在輸出1。Recall E2 (重調 E2存儲器)B8H將存儲在E2RAM中的溫度告警觸發(fā)值和配置寄存器值重新 拷貝到暫存器中,此重調操作在DS18B20加電時自動產生。Read Power Supply(讀供電方式)B4H主機發(fā)起此命令后每個讀數(shù)據(jù)時隙內,DS1820發(fā)信號通知它的供電方式:0為寄生電源方式,1為外部供電方式。所有的讀寫時隙至少需要60卩s,且每個獨立的時隙之間至少需
44、要1卩s的恢復時間。在寫時序中,主機將在拉低總線15卩s內釋放總線,并向DS18B20 寫“ 1”。若主機拉低總線后能保持 60卩s的低電平,則向單總線器件寫“ 0”。 DS18B20僅在主機發(fā)出讀數(shù)據(jù)命令后,必須馬上產生讀時隙,以便DS18B20能傳輸數(shù)據(jù)。特別需要注意的是,與DS18B20配套使用的是頻率為單片機晶振,這決定了指令運行時間,在軟件設計將根據(jù)指令運行時間編寫各種延時程序。四、溫度采集電路與單片機的連接本設計中使用DS18B20溫度傳感器進行環(huán)境溫度采集和轉化,其與單片機的連接圖如圖2-7所示4276525242322J2120P27pzTF23P22P21P20GND1 1G
45、NDI/OVCC23丄VCC1SB20圖2-7單片機與DS18B20連接圖AT89C5仲片機的腳接 DS18B2啲I/O腳,作為數(shù)據(jù)的讀入和寫出。電阻R11作為DS18B20的I/O 口的上拉電阻,在讀時隙結束時,I/O引腳將通過此上拉電 阻拉回到高電平。要想使DS18B2C進行精確的溫度轉換,I/O線必須保證在溫度轉換期間提 供足夠的能量,由于每個DS18B20在溫度轉換期間工作電流達到1mA電路采用5V電源供電,根據(jù)I=U/R=5/4700=,所以根據(jù)這個原理,可以選用小一點的 電阻,只要保證DS18B20勺工作電流,當然也可以直接接在電源上,但是為了 使信號穩(wěn)定,一般在電路設計中加上拉電
46、阻。我們選用Q。第四節(jié)顯示電路的設計顯示電路的主要部分就是顯示器件,所以顯示電路的設計第一步就是顯示器件的選擇,對我們一般的設計,首選當然是數(shù)碼管,它具有顯示亮度高, 編程易的特點,但是它的單獨顯示使得每一位都要有自己的為選端,也就是 說每一位就要占用一個 I/O 口,本設計要求至少 17 位的數(shù)字顯示,再加上 8段 的 8位,就要占用 25個 I/O 口,這顯然是讓一個單片機是無法承受的。所以我 們選用更節(jié)省資源的液晶LCD1602乍為理想的顯示器件。一、 顯示器LCD1602特點與簡介液晶顯示器的有以下特點:1. 液晶顯示屏是以若干個 5X8或5X11點陣塊組成的顯示字符群。每個點陣塊為一
47、個字符位,字符間距和行距都為一個點的寬度。2. 主控制驅動電路為 HD44780(HITACHI) 及其他公司全兼容電路,如SED1278(SEIKOEPSON),KS0066(SAMSUNG),NJU6408(NERJAPANRADIQ)3. 具有字符發(fā)生器 ROM可顯示192種字符(160個5X7點陣字符和32個5X10 點陣字符,見附錄 3。4. 具有64個字節(jié)的自定義字符 RAM可自定義8個 5X8點陣字符或4個5X11 點陣字符。5. 具有 80個字節(jié)的 RAM。7. 模塊結構緊湊,輕巧,裝配容易。8. 單+5V電源供電(寬溫型需要一個-7V的電源供電)9. 低功耗,長壽命,高可靠性
48、。LCD1602的引腳功能說明如表 2-8。二、顯示電路與單片機的連接就時鐘而言,通常采用LCD或 LED顯示,對LED來說AT89C5休身設有專門的液晶驅動電路,LED結構簡單,體積小,功耗低,響應速度快,壽命長,可 靠性也高,等優(yōu)點,而且亮度也高,價格也便宜,但是本時鐘設計要一個很 直觀的顯示效果,LED就會除了 8段的顯示,位選也要占用大量的資源,不易 控制。如果選用LCD勺話,顯示就比較直觀,占用的硬件資源就相對少些。 而且對我們研究學習,不在于便宜,是我們要學到更多的知識,本設計采用 1602顯示,其與單片機的連接如圖2-9。圖2-9單片機與 LCD1602的連接圖表2-8 LCD1
49、602的引腳功能說明引腳號符號狀態(tài)功能1Vss電源地2Vdd+5V邏輯電源3VO液晶驅動電源4RS輸入寄存器1數(shù)據(jù),0命令5R/W輸入讀寫操作選擇1讀,0寫6E輸入是能信號7DB0二態(tài)數(shù)據(jù)總線8DB1二態(tài)數(shù)據(jù)總線9DB2二態(tài)數(shù)據(jù)總線10DB3二態(tài)數(shù)據(jù)總線11DB4二態(tài)數(shù)據(jù)總線12DB5二態(tài)數(shù)據(jù)總線13DB6二態(tài)數(shù)據(jù)總線14DB7二態(tài)數(shù)據(jù)總線15A輸入上兩行使能信號16K輸入下兩行使能信號第五節(jié) 按鍵電路的設計根據(jù)功能的需要,本時鐘需要設置時間,對時間進行實時校準的功能, 所以按鍵是必不可少的。按照鍵盤與CPU勺連接方式可分為獨立式鍵盤和矩陣式鍵盤。獨立式鍵盤是每個按鍵相互獨立的,每個按鍵占用一
50、個I/O 口線,每根I/O 口線上的按鍵不會影響其他I/O 口上按鍵工作狀態(tài), 獨立式鍵盤電路配置靈活,軟件結構簡單,但每個按鍵必須占用一個I/O 口中,在按鍵數(shù)量較多的時,I/O 口浪費較大,且電路復雜。矩陣鍵盤適合按鍵較多時使用,由于本設計的電子鐘最多 需要4個按鍵,若采用矩陣鍵盤反而會有點浪費,故采用獨立式鍵盤。鍵盤的外接上拉電阻沒有意義電路圖如圖2-10,對于內置了上拉電阻的引腳來說,K2圖2-10鍵盤的電路圖我們用的KEY1、KEY2、KEY3勺一端分別和單片機的、相連,一端同時 和在相連,在初始化的時候先給單片機的這幾個腳賦為高電平,當按鍵按下 的時候,變?yōu)榈碗娖?。KEY1、KEY
51、2 KEY3鍵為自動復位按鍵,每次按下后,會自動彈出。單片機管腳只有在按鍵按下的時候為低電平,按鍵彈出后重新 恢復高電平。按鍵的操作說明如下:模式鍵(KEY1):按1次下模式鍵(KEY1),秒數(shù)字開始閃爍,進入調秒 模式,再按一次進入調年模式,依次類推分別進入調月、日、星期、時、分、 秒的模式。調整鍵(KEY1、KEY2):在按下模式鍵后,相應的數(shù)字會閃爍, 這時我們按下KEY2 (加鍵)或KEY3 (減鍵),對應的數(shù)字就會相應的加一或減一。第六節(jié) 復位電路的設計復位是單片機的初始化操作,以便使CPI和系統(tǒng)中其他部件都處于一個確 定的初始狀態(tài),并從這個狀態(tài)開始工作,除了進入系統(tǒng)的正常初始化之外
52、, 當單片機系統(tǒng)在運行出錯或操作錯誤使系統(tǒng)處于死機狀態(tài)時,也可通過按鍵 復位重新啟動。復位后,PC內容初始化為0000H,使單片機從0000H單元開始執(zhí)行程序, 單片機復位后,除了 PC之外,還對處內的特殊功能寄存器產生影響,它們的 復位狀態(tài)如表X單片機復位后還會影響內部的RAM勺狀態(tài),89C51單片機復位信號的輸入端是RST引腳,高電平有效。其有效時間持續(xù)24個時鐘周期(2個機器周期)以上。RST端的外部復位電路有兩種操作方式,上電自動復位和按鍵手動復位。上電自動復位是利用電容儲電來實現(xiàn)的,如圖所示,上電瞬間,RC電路充電,RST端出現(xiàn)正脈沖,隨著充電電流的減少,RST勺電位逐漸下降,按鍵手
53、動復位有電平方式和脈沖方式兩種。按鍵電平復位是相當于 RST端通過電阻接高電平,按鍵脈沖復位,利用RC微分電路產生正脈沖,如圖2-11。圖 2-11 單片機復位電路手動復位電路中,由于按鍵電平復位只要一個電容和一個按鍵并聯(lián),再 通過電阻和地相接就行了,所以出于應用方便,本設計采用按鍵電平復位電 路。第三章 基于單片機的電子時鐘軟件設計C51單片機可以應用匯編語言和C語言進行編程。匯編語言與機器語言指令一一對應,所以用匯編語言編寫的程序在單片機里運行起來效率較高。C語言程序可讀性高,更便于理解,本設計采用 c語言編程11。第一節(jié) 主程序設計第一次上電,系統(tǒng)先進行初始化丄CD顯示初始時間“ 03:
54、25:00 ” ,并開始 走時 , 初始日期為“ 2010-4-30 ”。單片機依次開始調用 DS1302子程序,DS18B2C子程序,鍵盤子程序返回開頭循環(huán)運行。主序流程圖如圖3-1圖3-1主序流程圖第二節(jié)實時時鐘日歷子程序設計該程序主要實現(xiàn)對 DS1302寫保護、充電,對年、月、日、星期、時、分、 秒等寄存的讀寫操作。在讀寫操作子程序中都執(zhí)行了關中斷指令,因為在串 行通信時對時序要求比較高,而且在此是用單片機內部軟件模擬串行時鐘脈 沖,并由I/O 口輸出,所以在通信過程中最好保證傳輸?shù)倪B續(xù)性,不要允許中 斷,其流程圖如圖 3-27置位0,DS1302每次上電后會自動處于暫停狀態(tài),必須把秒寄存器的位時鐘才開
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)用橡膠導尿包一次性用品行業(yè)跨境出海戰(zhàn)略研究報告
- 電腦桌企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 家私材料企業(yè)數(shù)字化轉型與智慧升級戰(zhàn)略研究報告
- 木質臥室柜企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 中藥調理更年期情緒問題企業(yè)制定與實施新質生產力戰(zhàn)略研究報告
- 高性能防滲材料企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 少年兒童課外讀物企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 2025年中國防磁玻璃市場調查研究報告
- 會計員工轉正個人總結
- 人教版小學六年級科學教學計劃范本
- FZ/T 07010-2021綠色設計產品評價技術規(guī)范針織服裝
- 2023年北京市中學生數(shù)學競賽高一年級復賽試題及解答
- 公路工程工程量清單第章解析及計量支付
- API-650-1鋼制焊接石油儲罐
- 湖南省普通高中畢業(yè)生登記表模板
- 人教版七年級上冊數(shù)學試卷全冊
- 中職-中國歷史教案
- 六年級小升初語文試卷 [六年級下冊語文小升初試卷
- 計量泵的維護和修理知識培訓講義
- 危險化學品從業(yè)單位安全生產標準化宣貫
- 幼兒園中班開學第一課
評論
0/150
提交評論