




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 基于 51 單片機的電子萬年歷的設計1設計說明書基于基于 5151 單片機的電子萬年歷的設計單片機的電子萬年歷的設計系系 部部 電子信息與控制工程系電子信息與控制工程系 專專 業業 名名 稱稱 電子信息工程技術電子信息工程技術 班班 級級 電子電子 1120111201 班班 姓姓 名名 學學 號號 指指 導導 教教 師師 20142014 年年 0606 月月 2323 日日 基于 51 單片機的電子萬年歷的設計2基于基于 5151 單片機的電子萬年歷的設計單片機的電子萬年歷的設計摘要摘要電子萬年歷是單片機系統的一個應用,由硬件和軟件相配合使用。硬件由主控器、時鐘電路、溫度檢測電路、顯示電
2、路、鍵盤接口 5 個模塊組成。主控模塊用 AT89C52、時鐘電路用時鐘芯片 DS1302、顯示模塊用 LED 數碼管、溫度檢測采用 DS18B20 溫度傳感器、鍵盤接口電路用普通按鍵接上拉電阻完成;軟件利用 C 語言編程實現單片機程序控制。單片機通過時鐘芯片 DS1302 獲取時間數據,DS18B20 采集溫度信號送該給單片機處理,單片機再把時間數據和溫度數據送給 74LS154 譯碼,然后通過三極管 C9015放大驅動 LED 數碼管顯示陽歷年、月、日、時、秒、鬧鐘、星期、溫度。關鍵詞:關鍵詞:電子萬年歷;單片機;溫度傳感器;時鐘;數碼顯示。 基于 51 單片機的電子萬年歷的設計3目目 錄
3、錄1 1 引言引言 .4 42 2 功能要求功能要求 .5 53 3 方案論證與設計方案論證與設計 .6 63.1 控制部分的方案選擇 .63.2 測溫部分的方案選擇 .63.3 顯示部分的方案選擇 .74 4 系統硬件電路設計系統硬件電路設計 .8 84.1 主控器 AT89S52.84.2 時鐘電路 DS1302.84.2.1. DS1302 的性能特性 .84.2.2 DS1302 數據操作原理 .94.3 測溫電路的設計 .114.3.1 溫度傳感器工作原理.114.3.2 DS18B20 與單片機的接口電路 .154.4 鍵盤接口的設計.155 5 系統程序的設計系統程序的設計 .1
4、6165.1 陽歷程序設計 .165.2 時間調整程序設計 .165.3 溫度程序設計 .165.3.1 主程序.175.3.2 讀出溫度子程序.175.3.3 溫度轉換命令子程序.175.3.4 計算溫度子程序.185.3.5 顯示數據刷新子程序 .18 調試及性能分析調試及性能分析 .19196.1 調試步驟 .196.2 性能分析 .19 總結總結 .2020致致 謝謝 .2121參考文獻參考文獻 .2222附附 1 1 實物圖實物圖.2323宜賓職業技術學院電子信息工程系 基于 51 單片機實現萬年歷的設計41 1 引言引言隨著微電子技術和超大規模集成電路技術的不斷發展,家用電子產品不
5、但種類日益豐富,而且變得更加經濟實用,單片微型計算機體積小、性價比高、功能強、可靠性高等獨有的特點,在各個領域得到了廣泛的應用。電子萬年歷是一種應用非常廣泛的日常計時工具,數字顯示的日歷鐘已經越來越流行,特別是適合在家庭居室、辦公室、大廳、會議室、車站和廣場等使用。LED 數字顯示的日歷鐘顯示清晰直觀、走時準確、可以進行夜視,并且還可以擴展出多種功能。功能也越來越齊全,除了公歷年月日、時分秒、星期顯示及鬧鈴。但通過我們對各種電子鐘表、歷的不斷觀察總結發現目前市場的鐘、歷都存在一些不足之處,比如:時鐘不精確、產品成本太高、無環境溫度顯示等,這都給人們的使用帶來了某些不便。為此設計了一種功能全面、
6、計時準確、成本低廉的基于 51 單片機的萬年歷。宜賓職業技術學院電子信息工程系 基于 51 單片機實現萬年歷的設計52 2 功能要求功能要求2.1 萬年歷能用數碼管顯示陽歷年、月、日、星期、小時、分、秒并設置指定時間的鬧鈴。2.2 數字式溫度計要求測溫范圍-50100C, LED 數碼管直讀顯示。宜賓職業技術學院電子信息工程系 基于 51 單片機實現萬年歷的設計63 3 方案論證與設計方案論證與設計3.13.1 控制部分的方案選擇控制部分的方案選擇3.1.1 用可編程邏輯器件設計。可采用 ALTERA 公司的 FLEX10K 系列 PLD 器件。設計起來結構清晰,各個模塊,從硬件上設計起來相對
7、簡單,控制與顯示的模塊間的連接也會比較方便。但是考慮到本設計的特點,EDA 在功能擴展上比較受局限,而且 EDA 占用的資源也相對多一些。從成本上來講,用可編程邏輯器件來設計也沒有什么優勢。3.1.2 用凌陽 16 位單片機設計。凌陽 16 位單片機有豐富的中斷源和時基,方便本實驗的設計。它的準確度相當高,并且 C 語言和匯編兼容的編程環境也很方便來實現一些遞歸調用。I/O 口功能也比較強大,方便使用。用凌陽 16 位單片機做控制器最有特色的就是它的可編程音頻處理,可完成語音的錄制播放和識別。這些都方便對設計進行擴展,使設計更加完善。成本也相對低一些。但是,在控制與顯示的結合上有些復雜,顯示模
8、組資源相對有限,而且單片機的穩定性不是很高。3.1.3 主控芯片使用 51 系列 AT89C52 單片機,時鐘芯片用美國 DALLAS 公司推出的一種高性能、低功耗、帶 RAM 的時鐘 DS1302。采用 DS1302 作為主要計時芯片,可以做到計時準確。更重要的是,DS1302 可以在很小電流的后備電源(2.55V 電源,在 2.5V 時耗電小于 300nA)下繼續計時,停電后時鐘無需重新調整,并可編程選擇多種充電電流來對后備電源進行慢速充電,可以保證后備電源基本不耗電,還可自設鬧鈴,陽歷、星期與年月日自動對應。本系統采用了此方案。3.23.2 測溫部分的方案選擇測溫部分的方案選擇3.2.1
9、 在日常生活及工農業生產中經常要乃至溫度的檢測及控制,傳統的測溫元件有熱電偶和熱電阻。而熱電偶和熱電阻測一般都是電壓,再轉換成對應的溫度,需要比較多的外部硬件支持,硬件電路復雜,軟件調試復雜,制作成本高。3.2.2 與前面相比,采用美國 DALLAS 半導體公司繼 DS1820 之后推出的一種改進型智能溫度傳感器 DS18B20 作為檢測元件,測溫范圍為-55125,宜賓職業技術學院電子信息工程系 基于 51 單片機實現萬年歷的設計7最大分辨率可達 0.0625。DS18B20 可以直接讀出被測溫度值,而且采用 3線制與單片機相連,減少了外部的硬件電路,具有低成本和易使用的特點。3.33.3
10、顯示部分的方案選擇顯示部分的方案選擇3.3.1 液晶顯示方式。液晶顯示效果出眾,可以運用菜單項來方便操作,但是在顯示時,特別是使用秒表功能時掃描速度跟不上,屏幕會有明顯的閃爍。而且由于 61 板的存儲空間有限,液晶顯示就不能與語音播抱程序同時實現。這些大大影響了電子萬年歷的性能。3.3.2 相比液晶顯示,8 段數碼管雖然操作比液晶顯示略顯繁瑣,但可視范圍十分寬,而且經濟實惠,也不需要復雜的驅動程序。所以最后選擇 LED 數碼管顯示方案。綜上所述,按照系統設計功能的要求,確定硬件系統由主控制器、時鐘模塊、測溫電路、顯示模塊、鍵盤接口共 5 個模塊組成,總體系統構成框圖如圖3.1 所示。圖 3.1
11、 電子萬年歷系統構成框圖DS1302 時鐘模塊AT89S52主控制器DS18B2 溫度探測鍵盤掃描電路數碼顯示電路宜賓職業技術學院電子信息工程系 基于 51 單片機實現萬年歷的設計84 4 系統硬件電路設計系統硬件電路設計電子萬年歷電路原理圖見附件一,系統由主控制器 AT89C52、時鐘芯片DS1302、溫度傳感器 DS18B20 傳感器、顯示電路及鍵盤掃描電路組成。4.14.1 主控器主控器 AT89S52AT89S52ATMEL 公司生產的 AT89S52 單片機采用高性能的靜態 80C51 設計,由先進工藝制造,并帶有非易失性 Flsah 程序存儲器。它是一種高性能、低功耗的 8位 CM
12、OS 微處理芯片,市場應用最多。主要性能特點有:8KB Flash ROM,可以檫寫 1000 次以上,數據保存 10 年。256 字節內部 RAM。電源控制模式:時鐘可停止和恢復;空閑模式;掉電模式。 6 個中斷源。4 個中斷優先級。4 個 8 位 I/O 口。全雙工增強型 UART。3 個 16 位定時/計數器,T0、T1(標準 80C51)和增加的 T2(捕獲和比較) 。全靜態工作方式:024MHz。4 4.2.2 時鐘電路時鐘電路 DS1302DS13024 4.2.1.2.1 DS1302DS1302 的性能特性的性能特性實時時鐘,可對秒、分、時、日、周、月以及帶閏年補償的年進行計數
13、;用于高速數據暫存的 318 位 RAM;最少引腳的串行 I/O;2.55.5V 電壓工作范圍;2.5V 時耗電小于 300nA;用于時鐘或 RAM 數據讀/寫的單字節或多字節(脈沖方式)數據傳送方式;簡單的 3 線接口;宜賓職業技術學院電子信息工程系 基于 51 單片機實現萬年歷的設計9可選的慢速充電(至 Vcc1)的能力。DS1302 時鐘芯片包括實時時鐘/日歷和 31 字節的靜態 RAM。它經過一個簡單的串行接口與微處理器通信。實時時鐘/日歷提供秒、分、時、日、周、月和年等信息。對于小于 31 天的月和月末的日期自動調整,還包括閏年校正的功能。時鐘的運行可以采用 24h 或帶 AM(上午
14、)/PM(下午)的 12h 格式。采用三線接口與 CPU 進行同步通信,并可采用突發方式一次傳送多個字節的時鐘信號或RAM 數據。DS1302 有主電源/后備電源雙電源引腳:Vcc1 在單電源與電池供電的系統中提供低電源,并提供低功率的電池備份;Vcc2 在雙電源系統中提供主電源,在這種運用方式中,Vcc1 連接到備份電,以便在沒有主電源的情況下能保存時間信息以及數據。DS1302 由 Vcc1 或 Vcc2 中較大者供電。當 Vcc2 大于Vcc1+0.2V 時,Vcc2 給 DS1302 供電;當 Vcc2 小于 Vcc 時, DS13026 由 Vcc1供電。4.2.24.2.2 DS1
15、302DS1302 數據操作原理數據操作原理DS1302 在任何數據傳送時必須先初始化,把 RST 腳置為高電平,然后把 8位地址和命令字裝入移位寄存器,數據在 SCLK 的上升沿被輸入。無論是讀周期還是寫周期,開始 8 位指定 40 個寄存器中哪個將被訪問到。在開始 8 個時鐘周期,把命令字節裝入移位寄存器之后,另外的時鐘周期在讀操作時輸出數據,在寫操作是寫入時寫入數據。時鐘脈沖的個數在單字節方式下為 8 加 8,在多字節方式下為 8 加字節數,最大可達 248 字節數。如果在傳送過程中置 RST 腳為低電平,則會終止本次數據傳送,并且 I/O引腳變為高阻態。上電運行時,在 Vcc 大于等于
16、 2.5V 之前,RST 腳必須保持低電平。只有在 SCLK 為低電平時,才能將 RST 置為高電平。DS1302 的引腳及內部結構圖如圖 4.1 所示,表 4.1 為各引腳的功能。DS1302 的控制字如圖 4.2 所示。控制字節的最高位(位 7)必須是邏輯1;如果它為 0,則不能把數據寫入到 DS1302 中。位 6 如果為 0,則表示存取日歷時鐘數據;為 1 表示存取 RAM 數據。位 51(A4A0)指示操作單元的地址。最低有效位(位 0)如為 0,表示要進行寫操作;為 1 表示進行讀操作。控制字節總是從最低位開始輸入/輸出。為了提高對 32 個地址的尋址能力(地址/命令位 15=邏輯
17、 1) ,可以把時宜賓職業技術學院電子信息工程系 基于 51 單片機實現萬年歷的設計10鐘/日歷或 RAM 寄存器規定為多字節(burst)方式。位 6 規定時鐘或 RAM,而位 0 規定讀或寫。在時鐘/日歷寄存器中的地址 931 或 RAM 寄存器中的地址31 不能寄存數據。在多字節方式中,讀或寫從地址 0 的位 0 開始。必須按數據傳送的次序寫最先的 8 個寄存器。但是,當以多字節方式寫 RAM 時,為了傳送數據不必寫所有 31 字節。不管是否寫了全部 31 字節,所寫的每一字節都將傳送至 RAM。12345678Vcc1SCLKI/ORSTVcc2X1X2GND電源控制Vcc1Vcc2G
18、ND輸入移位寄存器I/OSCLK實時時鐘命令與控制邏輯振蕩器與分頻器318RAMRSTX2X132.768kHzDATA BUS 圖 4.1 DS1302 引腳及內部結構表 4.1 DS1302 引腳功能引腳號引腳名稱功 能1Vcc2主電源2,3X1,X2振蕩源,外界 32.768kHz 晶振4GND地線5RST復位/片選線6I/O串行數據輸入/輸出端(雙向)7SCLK串行數據輸入端8Vcc1后備電池7 6 5 4 3 2 1 0宜賓職業技術學院電子信息工程系 基于 51 單片機實現萬年歷的設計111RAMCKA4A3A2A1A0RAMK圖 4.2 DS1302 的控制字DS1302 共有 1
19、2 個寄存器,其中有 7 個寄存器與日歷、時鐘相關,存放的數據位為 BCD 碼形式。其日歷、時間寄存器及其控制字見表 3.2,其中奇數為讀操作,偶數為寫操作。時鐘暫停:秒寄存器的位 7 定義位時鐘暫停位。當它為 1 時,DS1302 停止震蕩,進入低功耗的備份方式。通常在對 DS1302 進行寫操作時(如進入時鐘調整程序) ,停止震蕩。當它為 0 時,時鐘將開始啟動。AMPM/1224小時方式:小時寄存器的位 7 定義為 12 或 24小時方式選擇位。它為高電平時,選擇 12小時方式。在此方式下,位 5 是 AM/PM 位,此位是高電平時表示 PM 低電平表示 AM。在 24小時方式下,位 5
20、 為第二個10小時位(2023h) 。表 4.2 內部寄存器地址和內容命令字節積存器內容積存器名寫讀取值范圍76543210秒積存器80H81H0059CH10SSEC分積存器82H83H0059010 minMIN小時積存器84H85H0023 或 011212/24010A/PHRHR日積存器85H87H0128,29,30,310010DATEDATE月積存器88H89H011200010MMONTH周積存器8AH8BH010700000DAY年積存器8CHD3H009910YEARYEARDS1302 的晶震選用 32.768kHz,電容推薦值為 33pF,因為震蕩頻率較低,也可以不接
21、電容,對計時精度影響不大。4.34.3 測溫電路的設計測溫電路的設計測溫電路主要使用溫度傳感器 DS18B20,由于精度要求不高所以采用 2 位共陽 LED 數碼管以動態掃描法實現溫度顯示。其設計原理圖如附件一所示。宜賓職業技術學院電子信息工程系 基于 51 單片機實現萬年歷的設計124.3.14.3.1 溫度傳感器工作原理溫度傳感器工作原理DS18B20 溫度傳感器是美國 DALLAS 半導體公司最新推出的一種改進型智能溫度傳感器,與傳統的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據實際要示通過簡單的編程實現 912 位的數字值讀數方式。DS18B20的性能特點如下:獨特的單線接
22、口僅需要一個端口引腳進行通信;多個 DS18B20 可以并聯在唯一的三線上,實現多點組網功能;無須外部器件;可通過數據線供電,電壓范圍為 3.03.5V;零待機功耗;溫度以 9 或 12 數字量讀出;用戶可定義的非易失性溫度報警設置;報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;負電壓特性,電源極性接反時,溫度計不會因發熱而燒毀,但不能正常工作。DS18B20 采用 3 腳 PR35 封裝或腳 SOIC 封裝,其內部結構框圖如圖 4.3所示。64 位 ROM 的位結構如圖 4.4 所示。開始 8 位是產品類型的編號,接著是每個器件的唯一的序號,共有 48 位,最后 8 位是前面
23、 56 位的 CRC 檢驗碼,這也是多個 DS18B20 可以采用一線進行通信的原因。非易失性溫度報警觸發器 TH和 TL,可通過軟件寫入戶報警上下限。DS18B20 溫度傳感器的內部存儲器還包括一個調整暫存 RAM 和一個易失性的可電擦除的 EERAM。高速暫存 RAM 的結構為 8 字節存儲器,結構如圖 4.5 所示。頭 2 個字節包含測得的溫度信息,第 3 和第 4 節是 TH 和 TL 的拷貝,是易失的,每次上電復位時被刷新。第 5 個字節為配置寄存器,它的內容用于確定溫度值的數字轉換分辨率。DS18B20 工作時按此寄存器中的分辨率將溫度轉換為相應宜賓職業技術學院電子信息工程系 基于
24、 51 單片機實現萬年歷的設計13 64 位 ROM 和單線接口圖 4.3 DS18B20 內部結構圖存儲器與控制邏輯高速緩存溫度傳感器高溫觸發器 TH低溫觸發器 TL配置寄存器8 位 CRC 發生器 I/OCVDD精度的數值。低 5 位一直 1,M 是測試模式位,用于設置 DS18B20 在工作模式還是在測試模式。在 DS18B20 出廠時該位被設置為 0,用戶不要去改動,R1 和 R0決定溫度轉換的精度位數,即用來設置分辨率,定義方法見表 4.3。由表 4.3 可見,DS18B20 溫度轉換的時間比較長,而且設定的分辨率越高,所需要的溫度數據轉換時間就越長。因此,在實際應用中要將分辨率和轉
25、換時間權衡考慮。高速暫存 RAM 的第 6、7、8 字節保留未用,表現為全邏輯 1。第 9 字節讀出前面所有 8 字節的 CRC 碼,可用來檢驗數據,從而保證通信數據的正確性。當 DS18B20 接收到溫度轉換命令后,開始啟動轉換。轉換完成后的溫度值就以 16 位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第 1、2 字節。單片機可以通過單線接口讀出該數據,讀數據時低位在先,高位在后,數據格式以 0.0625C/LSB 形式表示。表 4.3 DS18B20 分辨率的定義規定R1R0分辨率/位測量最大轉換時間/ms00993.750110187.510113751112750表 4.4 DS
26、18B20 溫度與測得值對應表溫度/C二進制表示十六進制表示宜賓職業技術學院電子信息工程系 基于 51 單片機實現萬年歷的設計14+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 10000008H00000 0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH-25.0
27、6251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H預置計數器 1減法計數器1低溫度系數振蕩器減到 0減法計數器 2預置溫度寄存器減到 0高溫度系數振蕩器斜率累加器計數比較器增加圖 4.8 DS18B20 測溫原理圖停止當符號位 S=0 時,表現測得的溫度值為正值,可以直接將二進制位轉換為十進制,當符號位 S=1 時,表示測得的溫度值為負值,要先將補碼變成原碼再計算十進制值。表 4.4 是一部分溫度值對應的二進制溫度數據。DS18B20 完成溫度轉換后,把測得的溫度值與 RAM 中的 TH、TL 字節內容作比較。若 TTH 或 TTL,則
28、將該器件內的報警標志位置位,并對主機發出的報警搜索命令作出響應。因此,可用多只 DS18B20 同時測量溫度并進行報警搜索。宜賓職業技術學院電子信息工程系 基于 51 單片機實現萬年歷的設計15在 64 位 ROM 的最高有效字節中存儲有循環冗余檢驗碼(CRC) 。主機根據ROM 的前 56 位來計算 CRC 值,并和存入 DS18B20 的 CRC 作比較,以判斷主機收到的 ROM 數據是否正確。DS18B20 的測溫原理如圖 4.8 所示。圖中低溫度系數晶振的振蕩頻率受溫度的影響很小,用于產生固定頻率的脈沖信號送給減法計數器 1;高溫度系數晶振隨溫度變化其振蕩頻率明顯改變,所產生的信號作為
29、減法計數器 2 的脈沖輸入。圖中還隱含著計數門,當計算門打開時,DS18B20 就對低溫度系數振蕩器產生的時鐘脈沖進行計數,進而完成溫度測量。計數門的開啟時間由高溫度系數振蕩器來決定,每次測量前,首先將-55C 所對應的一個基數分別置入減法計數器 1、溫度寄存器中,減法計數器 1 和溫度寄存器被預置在-55C 所對應的一個基數值。減法計數器 1 對低溫系數晶振產生的脈沖信號進行減法計數,當減法計數器 1 的預置值減到 0 時,溫度寄存的值將加 1,減法計數器 1 的預置值將重新被裝入,減法計數器 1 重新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環直到減法計數器 2 計數到 0 時,停
30、止溫度寄存器值的累加,此時溫度寄存器中的數值就是所測溫度值。圖 4.8 中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正減法計數器的預置值,只要計數門未關閉就重復上述過程,直到溫度寄存器值達到被測溫度值。另外,由于 DS18B20 單線通信功能是分時完成的,它有嚴格的時隙概念,因此讀寫時序很重要。系統對 DS18B20 的各種操作必須按協議進行。4.3.24.3.2 DS18B20DS18B20 與單片機的接口電路與單片機的接口電路DS18B20 可以采用兩種方式供電,一種是采用電源供電方式,此時 DS18B20的 1 腳接地,2 腳作為引線,3 腳接電源。另一種是寄生電源供電方
31、式。單片機端口接單線總線,為保證在有效的 DS18B20 時鐘周期內提供足夠的電流,可用一個 MOSFET 管來完成對總線的上拉。當 DS18B20 處于寫存儲器操作和溫度 A/D 轉換操作時,總線上必須有強的上拉,上拉開啟時間最大為 10us。采用寄生電源供電方式時 VDD和 GND 端均接地。由于單線制只有一根線,因此發送接口必須是三態的。宜賓職業技術學院電子信息工程系 基于 51 單片機實現萬年歷的設計16表 4.5 74LS164 特性表操作模式輸 入輸 出復 位MRABQ0Q1Q7LLQ0Q6HLLLQ0Q6HLHLQ0Q6HHLLQ0Q6移 位HHHHQ0Q674LS164 內部為
32、 8 個 D 觸發器,用以實現數據的串行移位,74LS164 特性見表 4.5。4.44.4 鍵盤接口的設計鍵盤接口的設計由于按鍵只有 5 個,用普通按鈕接 10K 上拉電阻,用查詢法完成讀鍵功能。5 5 系統程序的設計系統程序的設計5.15.1 陽歷程序設計陽歷程序設計因為使用了時鐘芯片 DS1302,陽歷程序只需從 DS1302 各寄存器中讀出年、周、月、日、小時、分、秒等數據,再處理即可。在首次對 DS1302 進行操作之前,必須對它進行初始化,然后從 DS1302 中讀出數據,再經過處理后,送給顯示緩沖單元。陽歷程序流程圖見圖 5.1 所示。宜賓職業技術學院電子信息工程系 基于 51
33、單片機實現萬年歷的設計17初始化 13021302 開始振蕩從 1302 中讀出年、周、月、日、小時、分、秒開 始讀出的數據都為 BCD碼,將其高低位分離送顯示緩沖單元圖 5.1 陽歷程序流程圖5.25.2 時間調整程序設計時間調整程序設計調整時間用 5 個調整按鈕,1 個作為移位、控制用,2 個作為加和減用,還有 2 個作為鬧鐘調整使用,分別定義為控制按鈕、加按鈕、減按鈕、鬧鐘加按紐、鬧鐘減按紐。在調整時間過程中,要調整的位與別的位應該有區別。所以增加了閃爍功能,即調整的位一直在閃爍,直到調整下一位。閃爍原理就是,讓要調整的一位每隔一定時間熄滅一次,比如說 50ms。利用定時器計時,當達到
34、50ms 溢出時,就送給該位熄滅符,在下一次溢出時,再送正常顯示的值,不斷交替,直到調整該位結束。此時送正常顯示值給該位,再進入下一位調整閃爍程序。5.35.3 溫度程序設計溫度程序設計系統程序主要包括主程序、讀出溫度子程序、溫度轉換命令子程序、計算溫度子程序、顯示數據刷新子程序等等。5.3.15.3.1 主程序主程序主程序的主要功能是負責溫度的實時顯示、讀出并處理 DS18B20 的測量溫度值,溫度測量每 1s 進行一次。其程序流程圖見 5.2。5.3.5.3.2 2 讀出溫度子程序讀出溫度子程序主要功能是讀出 RAM 中的 9 字節,在讀出時需進行 CRC 校驗,校驗有錯時宜賓職業技術學院
35、電子信息工程系 基于 51 單片機實現萬年歷的設計18不進行溫度數據的改寫。其程序流程圖如圖 5.3 所示。5.3.35.3.3 溫度轉換命令子程序溫度轉換命令子程序溫度轉換子程序主要是發溫度轉換開始命令,當采用 12 位分辨率時轉換時間約為 750ms,在本程序設計中采用 1s 顯示程序延時法等待轉換的完成。圖 5.2 DS18B20 溫度計主程序流程圖 圖 5.3 讀出溫度子程序流程圖5.3.45.3.4 計算溫度子程序計算溫度子程序計算溫度子程序將 RAM 中讀取值進行 BCD 碼的轉換運算,并進行溫度值正負的判定。5.3.55.3.5 顯示數據刷新子程序顯示數據刷新子程序顯示數據刷新子
36、程序主要是對顯示緩沖器中的顯示數據進行刷新操作,當最高顯示位為 0 時將符號顯示位移入下一位。初始化調用顯示子程序1S 到?初次上電?讀出溫度值溫度計算處理顯示數據刷新發溫度轉換開始命令NYYN發 DS18B20 復位命令發跳過 ROM 命令發讀取溫度命令讀取操作,CRC 校驗9 字節完?CRC 校驗正確?移入溫度暫存器結束NYYN宜賓職業技術學院電子信息工程系 基于 51 單片機實現萬年歷的設計19 調試及性能分析調試及性能分析6.16.1 調試步驟調試步驟系統的調試分為硬件調試和軟件調試。其中硬件調試主要是檢測硬件電路是否有短路、斷路、虛焊現象。時鐘和測溫部分的硬件電路很簡單,DS1302 通過 3 根線、DS18B20 只通過 1 根線與單片機相連接,很容易檢測,主要是檢測宜賓職業技術學院電子信息工程系 基于 51 單片機實現萬年歷的設計20引腳晶振和電源是否接好。另外可以通過軟件來調試硬件,如編寫一個簡單的顯示程序來測試顯示電路連接是否正確。接下來可進行軟件調試,可以編寫只含 DS1302 的計時和讀寫程序、顯示程序,測試 DS1302 是否正常工作。最后調試日歷、時間、鬧鐘、報警和溫度程序。6.26.2性能分析性能分析計時器最關鍵的是計時的精度。電子萬年歷中 DS1302 上最好使用專用的晶振。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年河南平禹煤電股份有限公司招聘考試真題
- 秋季安全教育要點
- 2024年甘肅天水工業和信息化廳廳屬事業單位招聘筆試真題
- 氫氟酸培訓教育課件
- 連鎖經營與管理專業教學標準(高等職業教育專科)2025修訂
- 校園安全應急培訓
- 新入職員工培訓
- 老師地震演練培訓
- 艾默生質量流量計培訓
- 卒中建設培訓
- 廣東省深圳市福田區2023-2024學年七年級下學期期末數學試題
- 新疆省新疆生產建設兵團2024年六年級下學期5月模擬預測數學試題含解析
- 北京市昌平區2022-2023學年四年級下學期數學期末試卷(含答案)
- 《第14課 明至清中葉的經濟與文化》教學設計教學反思-2024-2025學年高中歷史統編版必修中外歷史綱要上
- 2025屆自貢市重點中學高一下數學期末統考模擬試題含解析
- 河南省南陽市鄧州市2023-2024學年六年級下學期6月期末英語試題
- 一年級下冊《讀讀童謠和兒歌》試題及答案共10套
- 中國保險行業協會官方-2023年度商業健康保險經營數據分析報告-2024年3月
- DG∕TJ 08-87-2016 道路、排水管道成品與半成品施工及驗收規程
- 福建省福州市倉山區2022-2023學年八年級下學期期末英語試卷(含解析)
- 校園文化墻面設計施工流程
評論
0/150
提交評論