




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、畢業設計(論文)畢業設計(論文)專專 業業 電子信息工程技術電子信息工程技術 班班 次次 _ 姓姓 名名 _ 指導老師指導老師 _ 成都工成都工業業學院學院二 0 一 二 年成都工業學院 通信工程系畢業設計論文I基于單片機的電子萬年歷設計基于單片機的電子萬年歷設計與實現與實現摘要摘要: : 隨著半導體技術的迅速發展,特別是大規模集成電路出現,給人類生活帶來了很多的改變。尤其是單片機技術的應用產品已經隨著社會前進的步伐走進我們的生活。電子產品的應用可謂多不勝數,電子萬年歷就是其中的一種。電子萬年歷的出現給人們的生活帶來的極大的方便。電子萬年歷以硬件匯編語言為主體進行軟件設計,增加了程序的可讀性和
2、可移植性。系統通過數碼管輸出顯示數據,可以顯示當前時間、公農歷日期、星期、溫度。本設計著重要描述的就是基于 AT89S52 的單片機的電子萬年歷。本文首先描述系統硬件工作原理,隨后介紹了本系統所應用的各硬件接口技術(即芯片驅動程序)和各個接口模塊的功能及工作過程。本設計的主導思想是軟硬件相結合來進行各功能模塊的編寫。 關鍵詞關鍵詞 單片機;萬年歷;AT89S52;DS1302;成都工業學院 通信工程系畢業設計論文II目目 錄錄第第 1 1 章章 緒論緒論.1 11.1 設計開發背景.11.2 國內外研究現狀.11.3 設計需要解決的主要問題.11.4 本文主要工作.21.5 本文的組織結構.2
3、第第 2 2 章章 方案選擇與論證方案選擇與論證.3 32.1 單片機芯片的選擇與論證.32.2 顯示模塊選擇方案和論證.32.3 時鐘芯片的選擇方案和論證.32.4 溫度傳感器的選擇方案與論證.42.5 電路設計最終方案決定.4第第 3 3 章章 系統的設計與實現系統的設計與實現.5 53.1 電路設計框圖.53.2 主要電路模塊的設計.53.2.1 單片機主控制模板.53.2.2 時鐘模塊電路的設計.73.2.3 公歷與農歷轉換模塊.93.2.4 DS18B20 溫度模塊 .123.2.5 時間可調模塊.143.2.6 顯示模塊的設計.14第第 4 4 章章 系統調試與分析系統調試與分析.
4、16164.1 系統軟件開發.164.2 系統硬件開發.174.3 測試分析及設計發展.174.3.1 測試分析.174.3.2 本設計的發展.18結結 語語.1919致致 謝謝.2020參考文獻參考文獻.2121附附 錄錄.2222成都工業學院 通信工程系畢業設計論文1第 1 章 緒論1.1 設計開發背景近年來隨著計算機在社會領域的滲透和大規模集成電路的發展,單片機的應用正在不斷地走向深入,由于它具有功能強,體積小,功耗低,價格便宜,工作可靠,使用方便等特點,因此特別適合于與控制有關的系統,越來越廣泛地應用于自動控制,智能化儀器,儀表,數據采集,軍工產品以及家用電器等各個領域,單片機往往是作
5、為一個核心部件來使用,再根據具體硬件結構,以及針對具體應用對象的特點與軟件結合,以作完善。單片機應用的重要意義還在于,它從根本上改變了傳統的控制系統設計思想和設計方法。從前必須由模擬電路或數字電路實現的大部分功能,現在已能用單片機通過軟件方法來實現了。這種軟件代替硬件的控制技術也稱為微控制技術,是傳統控制技術的一次革命。單片機模塊中最常見的是電子萬年歷,電子萬年歷是一種用數字電路技術實現時、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更長的使用壽命,因此得到了廣泛的使用。電子萬年歷是采用數字電路實現對時、分、秒數字顯示的計時裝置,廣泛用于個人家庭、車站、 碼頭
6、辦公室等公共場所,成為人們日常生活中不可少的必需品,由于數字集成電路的發展和石英晶體振蕩器的廣泛應用,使得電子萬年歷的精度,遠遠超過老式的計時方法, 電子萬年歷的數字化給人們生產生活帶來了極大的方便,而且大大地擴展了原先的報時功能。因此,研究電子萬年歷及擴大其應用,有著非常現實的意義。1.2 國內外研究現狀近年來,隨著科學技術的迅速發展,無論在國內還是國外,電子萬年歷的設計方案已經越發成熟,穩定性及實用性有很大的提高,電子萬年歷也發展成為由原來的只能實現基本功能到現在市面上集娛樂性于一身的常見電子產品?,F在的電子萬年歷產品基本都采用了集成度極高的專用芯片,這大大地降低了產品的設計難度,同時也縮
7、短了產品的生產周期。正是基于電子萬年歷很好的開放性和可發揮性,多種多樣的電子萬年歷被設計出來。目前市場上有普通萬年歷,溫度萬年歷,計算器萬年歷,天氣預報萬年歷,多功能萬年歷,世界時萬年歷,掌心萬年歷等等。然而,現代的數碼產品市場更新換代的周期越來越短,所以在設計萬年歷產品的時候在完成一些基本功能的情況下,在控制好生產成本的前提下,往產品內加入更多的娛樂功能已經成為一種趨勢,這也會成為制約萬年歷產品的受歡迎程度的一個重要因素。1.3 設計需要解決的主要問題本設計的主要問題是公歷轉農歷的算法問題和時間可調問題,這兩個問題是否能夠成功解決關系到本次設計的成敗。公歷與農歷是我國目前并存的兩種歷法,各有
8、其固有的規律。農歷與月球的運行相對應其影響因素多,它的大小月和閏月與天體運行有關計算十分復雜,成都工業學院 通信工程系畢業設計論文2且每年都不一致。因此要用單片機實現公歷與農歷的轉換用查表法是最方便實用的辦法。按日查表是速度最快的方法,但單片機尋址能力有限,不可能采用按日查表的方法。除按日查外,我們可以通過按年查表的方法,再通過適當的計算,來確定公歷日所對應的農歷日期。時間可調可以說本研究關鍵的一步。由于系統要在供電狀態才工作,若斷電一段時間后再通電,時間不能實時顯示。所以通過按鍵來調時,可達到實時顯示時間數據的功能。1.4 本文主要工作通過查詢多方面的信息,設計一款讀取方便、顯示直觀,功能多
9、樣、電路簡潔、成本低廉的電子萬年歷。 本設計要求的電子萬年歷不僅能顯示時間、星期、公歷日期信息,還能顯示農歷信息(因為在我們國家,很多節日都是定在農歷的,如年初一、七夕、八月十五等)以及實現實時溫度顯示等功能。在這個萬年歷設計系統中,還具有時間可調功能,比如我們想知道某一年的某一天的農歷時間,我們可以調到相應的公歷日,則農歷就會根據公歷日期被系統自動轉換過來,再顯示相應的農歷信息。1.5 本文的組織結構本設計先對系統所需要的主要芯片進行選擇和論證,確定了選用AT89S52單片機作為系統的主要控制芯片,時鐘芯片DS1302提供時鐘,數字式溫度傳感器實現實時溫度顯示,而顯示部分采用的是LED數碼管
10、動態顯示。接著重點對相應主要模塊的硬件進行詳細的講解,比如AT89S52、DS1302、DS18B20 和顯示部分 7SEG-MPX8-CA 等芯片的引腳功能和工作原理,有利于對各模塊的理解。然后簡要地介紹了系統的調試工具,并進行相應的測試分析。在最后給出電路原理圖,以及主程序和部分子程序。成都工業學院 通信工程系畢業設計論文3第 2 章 方案選擇與論證2.1 單片機芯片的選擇與論證 方案一: 采用 89C51 芯片作為硬件核心,采用 Flash ROM,內部具有 4KB ROM 存儲空間,能于 3V 的超低壓工作,而且與 MCS-51 系列單片機完全兼容,但是運用于電路設計中時由于不具備 I
11、SP 在線編程技術, 當在對電路進行調試時,由于程序的錯誤修改或對程序的新增功能需要燒入程序時,對芯片的多次拔插會對芯片造成一定的損壞。 方案二:采用 AT89S52,片內 ROM 全都采用 Flash ROM;能以 3V 的超底壓工作;同時也與 MCS-51 系列單片機完全該芯片內部存儲器為 8KB ROM 存儲空間,同樣具有 89C51 的功能,且具有在線編程可擦除技術,當在對電路進行調試時,由于程序的錯誤修改或對程序的新增功能需要燒入程序時,不需要對芯片多次拔插,所以不會對芯片造成損壞。 所以選擇采用 AT89S52 作為主控制系統。2.2 顯示模塊選擇方案和論證 方案一: 采用 LED
12、 液晶顯示屏,液晶顯示屏的顯示功能強大,可顯示大量文字,圖形,顯示多樣,清晰可見,但是價格昂貴,需要的接口線多,所以在此設計中不采用LED 液晶顯示屏. 方案二: 采用點陣式數碼管顯示,點陣式數碼管是由八行八列的發光二極管組成,對于顯示文字比較適合,如采用在顯示數字顯得太浪費,且價格也相對較高,所以也不用此種作為顯示. 方案三: 采用 LED 數碼管動態掃描,LED 數碼管價格適中,對于顯示數字最合適,而且采用動態掃描法與單片機連接時,占用的單片機口線少。 所以采用了 LED 數碼管作為顯示。2.3 時鐘芯片的選擇方案和論證 方案一: 直接采用單片機定時計數器提供秒信號,使用程序實現年、月、日
13、、星期、時、分、秒計數。采用此種方案雖然減少芯片的使用,節約成本,但是,實現的時間誤差較大。所以不采用此方案。 方案二: 采用 DS1302 時鐘芯片實現時鐘,DS1302 芯片是一種高性能的時鐘芯片,可自動對秒、分、時、日、周、月、年以及閏年補償的年進行計數,而且精度高,位的 RAM 做為數據暫存區,工作電壓 2.5V5.5V 范圍內,2.5V 時耗電小于300nA。 所以采用 DS1302 作為時鐘芯片。成都工業學院 通信工程系畢業設計論文42.4 溫度傳感器的選擇方案與論證 方案一: 使用熱敏電阻作為傳感器,用熱敏電阻與一個相應阻值電阻相串聯分壓,利用熱敏電阻阻值隨溫度變化而變化的特性,
14、采集這兩個電阻變化的分壓值,并進行 A/D 轉換。 。此設計方案需用 A/D 轉換電路,增加硬件成本而且熱敏電阻的感溫特性曲線并不是嚴格線性的,會產生較大的測量誤差。 方案二: 采用數字式溫度傳感器 DS18B20,此類傳感器為數字式傳感器而且僅需要一條數據線進行數據傳輸,易于與單片機連接,可以去除 A/D 模塊,降低硬件成本,簡化系統電路。另外,數字式溫度傳感器還具有測量精度高、測量范圍廣等優點。 所以采用 DS18B20 作為本次設計的溫度傳感器。2.5 電路設計最終方案決定 綜上各方案所述,對此次設計的方案選定: 采用 AT89S52 作為主控制系統; DS1302 提供時鐘;DS18B
15、20 數字式溫度傳感器;LED 數碼管動態顯示作為顯示模塊。成都工業學院 通信工程系畢業設計論文5第 3 章 系統的設計與實現3.1 電路設計框圖本系統以集成芯片為主,以匯編語言為開發語言,通過對硬件進行軟件編程實現所需要的功能。系統的模塊圖如圖 31 所示,以下的內容就是根據模塊逐步實現的。圖 3-1 系統模塊圖模塊說明: DS1302 時鐘模塊可以輸出其當前日期及時間;鍵盤輸入電路可以調整日期,時間及整體的轉換;DS18B20 溫度模塊可以測量當前室內的溫度;顯示電路則顯示當前的系統運行情況。3.2 主要電路模塊的設計3.2.1 單片機主控制模板1、AT89S52 的簡介AT89S52 是
16、一種低功耗,高性能的 CMOS 8 位微處理器,內部有 8K 字節的閃速 PEROM ,該芯片采用 ATMEL 公司高密度、非揮發性存儲器工藝制成且與工業標準的 MCS-51 系列的引腳及指令兼容,FLASH 系列存儲器為快速擦寫存貯器。相對于 MCS-51 系列芯片而言,其特點如下 :1、可擦寫 1000 次2、全靜態操作:0Hz.24MHz3、32 根可編程 I/O 口線4、內部 RAM 為 256 字節5、三個 16 位的定時/計數器6、8 個中斷源AT89S52 有 40 個引腳,32 個外部雙向輸入/輸出(I/O)端口,同時內含 2個外中斷口,3 個 16 位可編程定時計數器,2 個
17、全雙工串行通信口,2 個讀寫口線,AT89S52 可以按照常規方法進行編程,也可以在線編程。其將通用的微處理器和 Flash 存儲器結合在一起,特別是可反復擦寫的 Flash 存儲器可有效地降低開發成本。AT89S52 芯片圖如圖 3-2 所示。AT89S52主控制模 塊DS1302 時鐘模塊LED 數碼管動態掃描顯示模塊溫度采集模塊鍵盤模塊成都工業學院 通信工程系畢業設計論文6圖 3-2 AT89S52 芯片圖2、AT89S52 芯片的管腳、引線與功能(1) 輸入輸出(I/O)引腳介紹:P0 口(32 腳39 腳):是雙向 8 位三態 I/O 口,在外接存儲器時,與地址總線的低 8 位及數據
18、總線復用,能以吸收電流的方式驅動 8 個 TTL 負載。P1 口(1 腳8 腳):是 8 位準雙向 I/O 口。由于這種借口輸出沒有高阻狀態,輸入也不能鎖存,故不是真正的雙向 I/O 口。P1 口能驅動(吸收或輸出電流)4 個 TTL 負載。P2 口(21 腳28 腳):是 8 位準雙向 I/O 口。訪問外部存儲器時,它可以作為高 8 位地址總線送出高 8 位地址。P2 可以驅動(吸收或輸出電流)4 個TTL 負載。P3 口(10 腳17 腳):是 8 位準雙向 I/O 口,P3 口能驅動(吸收或輸出電流)4 個 TTL 負載。P3 口除了作為一般的準雙向通用 I/O 口使用外,每個引腳還有第
19、二功能。P3 口的 8 條線都定義有第二功能,如表 31 所列。表 31 P3 口的第二功能表引腳第二功能P3.0RXD(串行口輸入端)P3.1TXD(串行口輸出端)P3.2INT0(外部中斷 0 請求輸入端,低電平有效)P3.3INT1(外部中斷 0 請求輸入端,低電平有效)P3.4T0(定時器/計數器 0 的技數脈沖輸入端)P3.5T1(定時器/計數器 0 的技數脈沖輸入端)P3.6WR(片外數據存儲器寫選通信號輸出端,低電平有效)成都工業學院 通信工程系畢業設計論文7P3.7RD(片外數據存儲器寫選通信號輸出端,低電平有效)3、AT89S52 的總線結構AT89S52 的管腳除了電源、復
20、位、時鐘接入、用戶 I/O 口部分 P3外,其余管腳都是為實現系統擴展而設置的。這些管腳構成了三總線形式,即:(1)地址總線(AB):地址總線寬度為 16 位,因此,其外部存儲器直接地址外圍為 64K 字節。16 位地址總線由 P0經地址鎖存器提供低 8 位地址(A0A7) ;P2口直接提供高 8 位地址(A8A15) 。(2)數據總線(DB):數據總線寬度為 8 位,由 P0口提供。(3)控制總線 (CB):由部分 P3口的第二功能狀態和 4 根獨立控制線RESET、EA、ALE、PSE 組成。AT89S52 結構框圖如圖 3-3 所示。圖 3-3 AT89S52 結構框圖3.2.2 時鐘模
21、塊電路的設計1、DS1302 簡介DS1302 是 DALLAS 公司推出的涓流充電時鐘芯片內含有一個實時時鐘/日歷和 31 字節靜態 RAM。通過簡單的串行接口與單片機進行通信,實時時鐘/日歷電路提供秒分時日月年的信息,每月的天數和閏年的天數可自動調整。時鐘操作可通過 AM/PM 指示決定采用 24 或 12 小時格式。DS1302 與單片機之間能簡單地采用同步串行的方式進行通信,僅需用到三個口線。1.RES 復位,2.I/O 數據線,3.SCLK 串行時鐘。時鐘/RAM 的讀/寫數據以一個字節或多達 31 個字節的字符組方式通信。DS1302 工作時功耗很低,保持數據和時鐘信息時功率小于1
22、mW。具有如下性能:(1)實時時鐘具有能計算 2100 年之前的秒,分,時,日,星期,月,年的能力,還有閏年調整的能力。(2)31*8 位暫存數據存儲 RAM(3)串行 I/O 口方式使得管腳數量最少(4)寬范圍工作電壓:2.0V5.5V(5)工作電流:2.0V 時,小于 300nA(6)讀/寫時鐘或 RAM 時,有兩種傳送方式:單字節傳送和多字節傳送.(7)8 腳 DIP 封裝或可選的 8 腳 SOIC 封裝(8)簡單的 3 線串行 I/O 接口(9)與 TTL/COMS 兼容(VCC=5V 時)(10)可選工業級溫度范圍:-40oC+85oC成都工業學院 通信工程系畢業設計論文82、DS1
23、302 結構與工作原理(1)DS1302 引腳功能如表 3-2 所示。表 3-2 DS1302 引腳功能引腳號引腳名稱功能1Vcc2主電源引腳2,3X1,X2振蕩源,外接 32.768KHz 晶振4RST接地5GND復位/片選端6I/O串行數據輸入/輸出端(雙向)7SCLK串行時鐘輸入端8Vcc1備用電源(2)時鐘芯片 DS1302 的工作原理:DS1302 在每次進行讀、寫程序前都必須初始化,先把 SCLK 端置 “0” ,接著把 RST 端置“1” ,最后才給予 SCLK 脈沖;DS1302 的控制字節,此控制字的位 7 必須置 1,若為 0 則不能把對 DS1302 進行讀寫數據。對于位
24、 6,若對程序進行讀/寫時 RAM=1,對時間進行讀/寫時,CK=0。位 1 至位 5 指操作單元的地址。位 0 是讀/寫操作位,進行讀操作時,該位為 1;該位為 0 則表示進行的是寫操作??刂谱止澘偸菑淖畹臀婚_始輸入/輸出的。 “CH”是時鐘暫停標志位,當該位為 1 時,時鐘振蕩器停止,DS1302 處于低功耗狀態;當該位為 0 時,時鐘開始運行。 “WP”是寫保護位,在任何的對時鐘和 RAM 的寫操作之前,WP 必須為 0。當“WP”為 1 時,寫保護位防止對任一寄存器的寫操作。(3)DS1302 的控制字節DS1302 的控制字如表 3-3 所示。控制字節的最高有效位(位 7)必須是邏輯
25、 1,如果它為 0,則不能把數據寫入到 DS1302 中;位 6 如果為 0,則表示存取日歷時鐘數據,為 1 表示存取 RAM 數據;位 5 至位 1 指示操作單元的地址;最低有效位(位 0)為 0 表示要進行寫操作,為 1 表示進行讀操作,控制字節總是從最低位開始輸出。表 3-3 控制字節命令的格式表D7 D6 D5 D4 D3 D2 D1 D01RAM/CKA4A3A2A1A0RD/ W(4) 數據輸入輸出(I/O)在控制指令字輸入后的下一個 SCLK 時鐘的上升沿時,數據被寫入DS1302,數據輸入從低位即位 0 開始。同樣,在緊跟 8 位的控制指令字后的下一個 SCLK 脈沖的下降沿讀
26、出 DS1302 的數據,讀出數據時從低位 0 位到高位7。如圖 3-4。成都工業學院 通信工程系畢業設計論文9圖 3-4 DS1302 讀/寫時序圖(5) DS1302 的寄存器DS1302 有 12 個寄存器,其中有 7 個寄存器與日歷、時鐘相關,存放的數據位為 BCD 碼形式,其日歷、時間寄存器及其控制字見表 3-4。表 3-4 DS1302 的日歷、時間寄存器此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發寄存器及與 RAM 相關的寄存器等。時鐘突發寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內容。 DS1302 與 RAM 相關的寄存器分為兩類:一類是單個 R
27、AM單元,共 31 個,每個單元組態為一個 8 位的字節,其命令控制字為C0HFDH,其中奇數為讀操作,偶數為寫操作;另一類為突發方式下的 RAM 寄存器,此方式下可一次性讀寫所有的 RAM 的 31 個字節,命令控制字為 FEH(寫)、FFH(讀)。3.2.3 公歷與農歷轉換模塊1、概述公歷是全世界通用的歷法,以地球繞太陽的一周為一年。一年 365 天分為12 個月,1、3、5、7、8、10、12 月為 31 天,2 月為 28 天,其余月份為 30天。事實上地球繞太陽一周共 365 天 5 小時 48 分 46 秒,比公歷一年多出 5 小時 48 分 46 秒,為使年誤差不累積公歷年用閏年
28、法來消除年誤差。由于每年多出 5 小時 48 分 46 秒,每 4 年累計多出 23 小時 15 分 4 秒,接近 1 天。天文學家就規定每 4 年有一個閏年把 2 月由 28 天改為 29 天,凡是公歷年代能被 4 整除的那一年就是閏年。但是這樣一來每 4 年又少了 44 分 56 秒為了更準確地計時天文學家又規定凡能被 100 整除的年份只有能被 400 整除才是閏年,即每 400 年要減掉 3 個閏年,經過這樣處理后實際上每 400 年的誤差只有 2 小時 53 分 20 秒,已相當準確了。 成都工業學院 通信工程系畢業設計論文10農歷與公歷不同,農歷把月亮繞地球一周作為一月。因為月亮繞
29、地球一周不是一整天,所以農歷把月分為大月和小月。大月 30 天,小月 29 天。通過設置大小月使農歷日始終與月亮與地球的位置相對應。為了使農歷的年份與公歷年相對應,農歷通過設置閏月的辦法使它的平均年長度與公歷年相等。農歷是中國傳統文化的代表之一,并與農業生產聯系密切,中國人民特別是廣大農民十分熟悉并喜愛農歷。公歷與農歷是我國目前并存的兩種歷法,各有其固有的規律。農歷與月球的運行相對應其影響因素多,它的大小月和閏月與天體運行有關計算十分復雜,且每年都不一致。因此要用單片機實現公歷與農歷的轉換用查表法是最方便實用的辦法。51 系列單片機因其在功能上能滿足大部份對速度要求不高的應用場合的要求且價格低
30、廉開發工具普及程度高,是目前應用最多的單片機之一。本文介紹一種用 51 單片機實現從 1901 年到 2099 年 199 年公歷日到農歷日及星期的轉換方法。2、基本原理實現公歷與農歷的轉換,一般采用查表法,按日查表是速度最快的方法,但單片機尋址能力有限,不可能采用按日查表的方法。除按日查外,我們可以通過按年查表的方法,再通過適當的計算,來確定公歷日所對應的農歷日期,最大限度地減少表格所占的空間。對于農歷來說,大月為 30 天,小月為 29 天,這是固定不變的,這樣我們就可用 1 個 BIT(1 位)表示大小月信息。農歷一年,如有閏月為 13 個月,否則是 12 個月,所以一年需要用 13 個
31、 BIT,閏月在農歷中所在的月份并不固定,大部分閏月在農歷 2-8 月,但也有少量年份在 9 月以后。所以要表示閏月的信息,至少要 4BIT,在這里我們用 4BIT 的值來表示閏月的月份。值為 0 表示本年沒有閏月。有了以上信息,還不足以判斷公歷日對應的農歷日,因為還需要個參照日,我們選用農歷正月初一所對應的公歷日期作參照日,公歷日最大為31 日,需要 5 BIT 來表示,而春節所在的月份不是 1 月就是 2 月,用 1 BIT 就夠了,考慮到表達方便,我們用 2 BIT 的值直接表示月份。這樣一年的農歷信息只用 3 個字節就全部包括了。每年對應的 3 字節數據格式說明如下: 第一字節 BIT
32、74 位表示閏月月份,值為 0 為無閏月,BIT30 對應農歷 第 14 月的大小。 第二字節 BIT7-0 對應農歷第 512 月大小。 第三字節 BIT7-7 表示農歷第 13 個月大小,BIT6-5 表示春節的公歷月份,BIT40 表示春節的公歷日期。 月份對應的位為 1 表示本農歷月大(30 天),為 0 表示小(29 天)計算公歷對應的農歷日期的方法:先計算出公歷日離當年元旦的天數,然后查表取得當年的春節日期,計算出春節離元旦的天數,二者相減即可算出公歷日離春節的天數,以后只要根據大小月和閏月信息,減月天數,調整農歷月份,即可推算出公歷日對應的農歷日期。如果公歷日不到春節日期,農歷年
33、要比公歷年小一年,農歷大小取前一年的信息。農歷月從 12 月向前推算。公歷日是非常有規律的,所以公歷日所對應的星期天可以通過計算直接得到,理論上公元 0 年 1 月 1 日為星期日,只要求得公歷日離公元 0 年 1 月 1 日的天數,除 7 后的余數就是星期天,為了簡化計算,采用月校正法,根據公歷的年月日可直接計算出星期天。其算法是:日期+年份+所過閏年數+月較正數之和除 7 的余數就是星期天,但如果是在閏年又不到 3 月份,上述之和要減一天成都工業學院 通信工程系畢業設計論文11再除 7。其 1-12 月的校正數為:6,2,2,5,0,3,5,1,4,6,2,4。年份和閏年數只計算 1900
34、 年以后的年份和閏年數,實際校正數為:0,3,3,6,1,4,6,2,5,0,3,5。舉例說明:用查表法得出公歷 2008 年 3 月 9 日對應的農歷及星期信息。1) 查表得 2008 年的數據為0 x09,0 x2d,0 x47(0000,1001;0010,1100;0100,0111) 。該數據表示該年無閏月,農歷月的 2,3,5,6,8,11,12 月為小月 29 天,1,4,7,9,10 月為大月 30 天。該年春節在公歷 2 月 7 日。2) 計算公歷日(2008 年 3 月 9 日)離當年元旦的天數:30+29+968。3) 計算春節離元旦的天數:30+737。4) 算出公歷日
35、(2008 年 3 月 9 日)離春節的天數:683731。5) 調整農歷月份:因為 31301,所以相對應的農歷月份是 2 月,農歷日是1+12。6) 計算星期(日期+年份+所過閏年數+月較正數之和除 7 再求余數):9+(20081900)+(20081900)/4+370綜上所述,公歷日 2008 年 3 月 9 日對應的是農歷 2008 年 2 月 2 日星期天。3、程序流程圖成都工業學院 通信工程系畢業設計論文12圖 3-5 公農歷轉換程序流程圖3.2.4 DS18B20 溫度模塊1、概述美國 DALLAS 公司生產的單線數字溫度傳感器 DS18B20,可把溫度信號直接轉換成串行數字
36、信號供微機處理。由于每片 DS18B20 含有唯一的硅串行數,所成都工業學院 通信工程系畢業設計論文13以在一條總線上可掛接任意多個 DS18B20 芯片。從 DS18B20 讀出的信息或寫入DS18B20 的信息,僅需要一根口線(單線接口) 。讀寫及溫度變換功率來源于數據總線,總線本身也可以向所掛接的 DS18B20 供電,而無需額外電源。DS18B20可提供 912 位溫度讀數,構成多點溫度檢測系統而無需任何外圍硬件。因此,DS18B20 具有如下性能優點:單線接口:僅需一根口線與 MCU 連接進行通信。多個 DS18B20 可以并聯在惟一的 3 線上,實現多點組網功能。無需外圍元件可通過
37、數據線供電,電壓范圍為 3.05.5V。零待機功耗測溫范圍:-55 125 。固有測溫分辨率為 0.5 。通過編程可實現 912 位的數字讀數方式用戶可自設定非易失性的報警上下限值支持多點組網功能,多個 DS18B20 可以并聯在惟一的三線上,實現多點 測溫。報警搜索命令可識別哪片 DS1820 超溫度限負壓特性,電源極性接反時,溫度計不會因發熱而燒毀,但不能正常工作。2、DS18B20 的內部結構圖 3-6 是 DS18B20 的內部結構圖。 I/OC VDD圖 3-6 DS18B20 內部結構(1) 64 位 ROM 結構分為 8 位檢驗 CRC、48 位序列號、8 位工廠代碼(10H)。
38、開始 8 位是產品類型的編號,接著是每個器件的惟一的序號,共有 48 位,最后8 位是前 56 位的 CRC 校驗碼,這也是多個 DS18B20 可以采用一線進行通信的原因。 (2) 高速暫存存儲器DS18B20 溫度傳感器的內部存儲器包括一個高速暫存 RAM 和一個非易失性的可電擦除的 E2PROM。高速 RAM 包含 9 字節存儲器,前兩個字節包含測得的溫度信息。第 3 和第 4 字節是 TH 和 TL 的拷貝,是易失的,每次上電復位時被刷新。第 5 個字節是配置寄存器,它的內容用于確定溫度值的數字轉換分辨率,DS18B20 工作時按此寄存器中的分辨率將溫度轉換為相應精度的數值。低 5 位
39、一直都是 1,TM 是測試模式位,用于設置 DS18B20 在工作模式還是在測試模式。64 位 ROM和單線接口存儲器與控制邏輯高速緩存溫度傳感器低溫觸發器高溫觸發器8 位 CRC 發生器成都工業學院 通信工程系畢業設計論文14高速暫存 RAM 第 68 字節未用,表現為全邏輯 1;第 9 字節讀出的是前面所有8 個字節的 CRC 碼,可用來保證通信正確。 3、DS18B20 的測溫原理DS18B20 的測溫原理如圖 3-7,圖中低溫度系數晶振的振蕩頻率受溫度的影響很小,用于產生固定頻率的脈沖信號送給減法計數器 1,高溫度系數晶振隨溫度變化其震蕩頻率明顯改變,所產生的信號作為減法計數器 2 的
40、脈沖輸入,圖中還隱含著計數門,當計數門打開時,DS18B20 就對低溫度系數振蕩器產生的時鐘脈沖后進行計數,進而完成溫度測量。計數門的開啟時間由高溫度系數振蕩器來決定,每次測量前,先將-55所對應的基數分別置入減法計數器 1 和溫度寄存器中,減法計數器 1 和溫度寄存器被預置在-55所對應的一個基數值。 停止圖 3-7 DS18B20 測溫原理減法計數器 1 對低溫度系數晶振產生的脈沖信號進行減法計數,當減法計數器 1 的預置值減到 0 時溫度寄存器的值將加 1,減法計數器 1 的預置將重新被裝入,減法計數器 1 重新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環直到減法計數器 2 計數
41、到 0 時,停止溫度寄存器值的累加,此時溫度寄存器中的數值即為所測溫度。圖 3-7 中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正減法計數器的預置值,只要計數門仍未關閉就重復上述過程,直至溫度寄存器值達到被測溫度值。另外,由于 DS18B20 單線通信功能是分時完成的,它有嚴格的時隙概念,因此讀寫時序很重要。系統對DS18B20 的各種操作必須按協議進行。操作協議為:初始化 DS18B20(發復位脈沖)發 ROM 功能命令發存儲器操作命令處理數據。4、DS18B20 與單片機的接口設計DS18B20 可以采用兩種方式供電,一種是采用電源供電方式,此時 DS18B20的 1 腳接
42、地,2 腳作為信號線,3 腳接電源;另一種是寄生電源供電方式,單片機端口接單線總線,為保證在有效的 DS18B20 時鐘周期內提供足夠的電流,可用一個 MOSFET 管來完成對總線的上拉。當 DS18B20 處于寫存儲器操作和溫度 A/D 變換操作時,總線上必須有強的上拉,上拉開啟時間最大為 10s。采用寄生電源供電方式是 VDD 和 GND 端均接地。由于單線制只有一根線,因此發送接收口必須是三態的。本設計采用電源供電方式,設計電路如圖 3-8 所示。斜率累加器計數比較器預置減法計數器 1低溫系數振蕩器預置減到 0溫度寄存器高溫度系數振蕩器減法計數器2減到 0成都工業學院 通信工程系畢業設計
43、論文15圖 3-8 DS18B20 溫度采集引腳連接3.2.5 時間可調模塊1、鍵盤掃描原理如圖 3-9 所示,鍵盤是由多個按鍵組成。首先將與按鍵相接的單片機接口都置高電平,當沒有按鍵按下時,單片機和地線之間是不相連的,若第 N 個鍵被按下,則接這個鍵的單片機接口為低電平,通過查詢接到按鍵的單片機接口,就知道是第 N 個按鍵被按下,從而進行相應程序處理。圖 3-9 按鍵電路設計按鍵說明: “設置”:選擇要改變的量,依次為年、月、日、星期、時、分、秒。 “加”:按一次數值加一,依次遞增。 “減”:按一次數值減一,依次遞減。2、按鍵的軟件設計思路首先判斷是否有鍵按下,如果有則延時一段時間,再判斷是
44、否有鍵按下,其目的是為了消除電路抖動和消除干擾信號。一般按鍵的時間至少有十幾毫秒,而干擾信號的時間都很短,只要兩次判斷都有按鍵按下,才被確認為真有鍵按下。當確認有按鍵按下后,進行相應的程序處理。3.2.6 顯示模塊的設計本設計的顯示模塊采用動態掃描顯示,3-8 譯碼器 74LS138 接非門,然后再接到共陽數碼管的 COM 端作為選通位碼信號,每位選擇相應的列。74ls47 接共陽的 LED 數碼管的斷碼。顯示連接部分如圖 3-10 所示。圖 3-10 顯示連接部分1、7SEG-MPX8-CA 數碼管7SEG-MPX8-CA 是共陽極數碼管顯示器,它左下側的 abcdefg dp 是 LED
45、數碼管顯示器的 I/O 口,是段選信號,右下側的 12345678 是它的位選信號,就是從左成都工業學院 通信工程系畢業設計論文16到右分別是第一位到第八位,段選信號與位選信號分別接到單片機的不同輸出口。本設計段選信號接到 P1 口,位選信號接到 P2 口。圖 3-10 是其引腳圖。圖 3-11 7SEG-MPX8-CA2、74LS47 芯片74LS47 是 BCD-7 段數碼管譯碼器/驅動器,74LS47 的功能用于將 BCD 碼轉化成數碼塊中的數字,通過它解碼,可以直接把數字轉換為數碼管的顯示數字,從而簡化了程序,節約了單片機的 IO。圖 3-11 為其引腳圖圖 3-12 74LS47 引
46、腳其中,A 到 D 引腳分別接單片機 IO 口,BI/RBO、RBI、LT 接高電平,QA 到QG 依次接數碼管的段選端。3、74LS138 芯片4LS138 為 3 線8 線譯碼器,其工作原理:當一個選通端(G1)為高電平,另兩個選通端(/(G2A)和/(G2B))為低電平時,可將地址端(A、B、C)的二進制編碼在一個對應的輸出端以低電平譯出。 利用 G1、/(G2A)和/(G2B)可級聯擴展成 24 線譯碼器;若外接一個反相器還可級聯擴展成 32 線譯碼器。若將選通端中的一個作為數據輸入端時,74LS138 還可作數據分配器。其引腳圖如下圖。圖 3-13 74LS138 引腳成都工業學院
47、通信工程系畢業設計論文17第 4 章 系統調試與分析4.1 系統軟件開發一、KEIL 開發工具KEIL S52 標準 C 編譯器為 81 微控制器的軟件開發提供了匯編和 C 語言環境,同時保留了匯編代碼高效,快速的特點。S52 編譯器的功能不斷增強,使你可以更加貼近 CPU 本身,及其它的衍生產品。S52 已被完全集成到 uVision3 的集成開發環境中,這個集成開發環境包含:編譯器,匯編器,實時操作系統,項目管理器,調試器。uVision3 IDE 可為它們提供單一而靈活的開發環境.它可以支持所有 S52 的衍生產品,也可以支持所有兼容的仿真器,同時支持其它第三方開發工具。因此,S52 V
48、7 版本無疑是 AT89S52 開發用戶的最佳選擇。二、uVision3 集成開發環境 1、項目管理工程(project)是由源文件、開發工具選項以及編程說明三部分組成的。 一個單一的 uVision3 工程能夠產生一個或多個目標程序。產生目標程序的源文件構成“組” 。開發工具選項可以對應目標,組或單個文件。 uVision3 包含一個器件數據庫(device database),可以自動設置匯編器、編譯器、連接定位器及調試器選項,來滿足用戶充分利用特定 微控制器的要求,uVision3 可以為片外存儲器產生必要的連接選項:確定起始地址和規模。圖 4-1 uVision3 工作界面2、集成功能
49、uVision3 的強大功能有助于用戶按期完工,具有以下功能:(1)、集成源極瀏覽器利用符號數據庫使用戶可以快速瀏覽源文件。用詳細的符號信息來優化用戶變數存儲器。(2)、文件尋找功能:在特定文件中執行全局文件搜索。(3)、工具菜單:允許在 V3 集成開發環境下啟動用戶功能。(4)、可配置 SVCS 接口:提供對版本控制系統的入口。成都工業學院 通信工程系畢業設計論文18(5)、PCLINT 接口:對應用程序代碼進行深層語法分析。(6)、Infineon 的 DAVE 功能:協助用戶的 CPU 和外部程序。DAVE 工程可被直接輸入 uVision3。4.2 系統硬件開發Proteus ISIS
50、 是英國 Labcenter 公司開發的電路分析與實物仿真軟件。它運行于 Windows 操作系統上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點是:實現了單片機仿真和 SPICE 電路仿真相結合。具有模擬電路仿真、數字電路仿真、單片機及其外圍電路組成的系統的仿真、RS232 動態仿真、I2C 調試器、SPI 調試器、鍵盤和 LCD 系統仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發生器等。支持主流單片機系統的仿真。目前支持的單片機類型有:68000 系列、8051 系列、AVR 系列、PIC12 系列、PIC16系列、PIC18 系列、Z80 系列、HC11 系
51、列以及各種外圍芯片。提供軟件調試功能。在硬件仿真系統中具有全速、單步、設置斷點等調試功能,同時可以觀察各個變量、寄存器等的當前狀態,因此在該軟件仿真系統中,也必須具有這些功能;同時支持第三方的軟件編譯和調試環境,如 Keil C51 uVision3 等軟件。具有強大的原理圖繪制功能。總之,該軟件是一款集單片機和 SPICE 分析于一身的仿真軟件,功能極其強大。圖 4-2 是 Proteus ISIS 軟件的工作界面。圖 4-2 Proteus ISIS 工作界面4.3 測試分析及設計發展4.3.1 測試分析電子成年歷是多功能的數字型,可以看當前日期(陰、陽歷),時間,還有溫度的儀器。電子成年
52、歷功能很多,所以對于它的程序也較為復雜,所以在編寫程序和調試時出現了相對較多的問題。最后經過多次的模塊子程序的修改,一步一步的完成,最終解決了軟件。在軟件的調試過程中主要遇到的問題如下:1燒入程序后,LED 數碼管顯示閃動,而且亮度不均勻。解決:首先對調用的延時進行逐漸修改,可以解決顯示閃動問題。其次,由成都工業學院 通信工程系畢業設計論文19于本作品使作動態掃描方式顯示的數字,動態掃描很快,人的肉眼是無法看出,但是調用的顯示程序時,如果不在反回時屏蔽掉最后的附值,則會出現很亮的現象,所以在顯示的后面加了屏蔽子令,最后解決了此問題。2修改時間、日期時沒有農歷沒有自動對應上。解決:把不相關的程序
53、暫時屏蔽,對農歷的子程序獨立調試,發現在調用農歷自動更新時,對十進制和十六進制處理不好,所以會造成錯亂。最后把相應的十進制進行修改,使得可以與十六進制對應,最后解決了此問題。4.3.2 本設計的發展首先,是解決軟件上的設計問題,通過編程實現鬧鈴可以實現語音整點報時以及實時顯示溫度可精確到一個小數位。其次,用貼片芯片代替直插元件,降低系統的設計成本。最后,實現以下三種創新功能:具有上、下課響鈴功能具有防御報警功能具有娛樂功能成都工業學院 通信工程系畢業設計論文20結 語本設計以 ATMEL 公司的 AT89S52 為主控芯片,配合專用的時鐘芯片及軟件能穩定地顯示當前時間,室內溫度及完成公農歷轉換
54、。本設計的方案選擇與當前主流的設計思想吻合,所用到的模塊具有很高的實用性。由于硬件設備問題,所以設計的硬件以單片機專用仿真軟件 Protues ISIS 6.9 SP4 為開發平臺,軟件以 keil51 為開發平臺,這為系統的軟硬件調試提供了很大方便。與市面上的大多數萬年歷以分立元件為主不同,本設計大多使用集成芯片。集成芯片的穩定性,可靠性及資源利用率都遠優于分立元件。這對系統的長時間穩定工作有決定性的作用。相對于市面上的萬年歷只能簡單顯示公立日期,本設計通過按鍵轉換可以查詢當前的農歷日期。另外,為了充分利用 89S52 及提高系統的實用性,使用了 Dallas 公司的溫度傳感器 DS18B2
55、0,使系統在完成基本功能的同時能顯示當前溫度。當然,任何事情都有雙面性,系統采用了大規模集成模塊在提高穩定性的時候,也大大地增加了系統的設計成本。這對于生產應用是致命的。另外,硬件仿真的時候采用大多采用了直插封裝,這對于系統的模型設計有很大的不利,在生產應用中,現在的直插元件用得越來越少,取而代之的是貼片芯片。在軟件的設計方面,由于實力問題,有些問題還是得不到根本的解決,比如說在顯示模塊上和按鍵切換上就有一定的缺陷。溫度只能實時的顯示當前的整數溫度,不能精確到小數位,顯示的溫度數據誤差較大。相信在以后的工作中會不斷提高的軟硬件問題的能力。通過這次的鍛煉,我不僅動手能力得到了加強,更重要的是學到
56、了很多新的專業技能知識,經驗也更加豐富了。我覺得我還有很多不足的地方,如:基本知識掌握不牢固、動手能力不強、知識面不夠寬。我爭取在以后的學習當中彌補它,不斷的完善自己。雖然期間我們遇到了不少的難題,但是經過自己的努力和他人的幫助,最終還是克服了很多意想不到的困難。 成都工業學院 通信工程系畢業設計論文21致 謝 論文經過三個月后終于完成,在做論文期間,問題一個接著一個,但在宿舍同學的幫助下,問題最后也能迎刃而解。在此對他們的幫助表示最誠摯的感謝。本論文是在我的導師王飛老師的悉心指導下完成的。在此,特別要向本人的指導教師王飛老師致以誠摯的謝意。他嚴謹的治學精神,精益求精的工作作風,讓我學到了許多
57、。從課題的選擇到論文的最終完成,王老師都始終給予我細心的指導。在論文的修訂上,亦給予了我許多寶貴的修改意見,使我在此期間獲益良多,順利的完成了畢業論文工作。成都工業學院 通信工程系畢業設計論文22參考文獻1 王質樸,呂運鵬. MCS-51 單片機原理接口與應用.北京理工大學出版社,2009.2 譚浩強. C 程序設計(第三版).北京:清華大學出版社,2007.3 魯廣英. 基于單片機電子萬年歷的設計與實現.4 應錕. 中國科技博覽.2011 年第 15 期.5 周民標. 電子世界.2002 年第 6 期.6 沈紅衛. 基于單片機的智能系統設計與實現,北京:電子工業出版社.7 李全利. 遲榮強等
58、.單片機原理及接口技術. 北京:高等教育出版社,2004.18 萬福君,潘松峰. 單片微機原理系統設計與應用.北京:中國科學技術大學出版社,2005成都工業學院 通信工程系畢業設計論文23附 錄附錄一:系統電路圖成都工業學院 通信工程系畢業設計論文24附錄二:系統程序清單CONFIG12 EQU 7FH TEMPH EQU 21H TEMPL EQU 20H REG2 EQU 22H REG3 EQU 23H REG4 EQU 24H DAT EQU P0.7 SCLK EQU P3.4 IO EQU P3.3 RST EQU P3.2 year DATA 66H month DATA 65H
59、 week DATA 64H day DATA 63H hour DATA 62H minute DATA 61H second DATA 60HDS1302_ADDR DATA 32HDS1302_DATA DATA 31H bb bit p3.7 XSOUT BIT P3.6 ORG 0000H LJMP START ORG 001BH LJMP INTT1START: ;初值 LCALL ZJ SETB EA MOV TMOD,#10H ;計數器 1,方式 1 MOV TL1,#00H MOV TH1,#00H MOV 32H,#8EH MOV 31H,#00H ;允許寫 1302 LC
60、ALL WRITE MOV 32H,#90H MOV 31H,#0A6H ;1302 充電,充電電流 1.1MA LCALL WRITE ;主程序MAIN1: MOV 32H,#8DH ;讀出年 LCALL READ MOV year,31H MOV 32H,#8BH;讀出星期 LCALL READ MOV week,31H MOV 32H,#89H ;讀出月 LCALL READ MOV month,31H MOV 32H,#87H ;讀出日 LCALL READ MOV day,31H MOV 32H,#85H;讀出小時 LCALL READ MOV hour,31H MOV 32H,#8
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年演出經紀人之演出市場政策與法律法規模擬考試試卷B卷及答案【名師系列】
- 2025年O2O零售模式報告:線上線下融合下的消費體驗升級
- 物理●福建卷丨2024年福建省普通高中學業水平選擇性考試物理試卷及答案
- 企業質量管理精要
- 2025屆高考物理大一輪復習課件 第一章 第3課時 自由落體運動和豎直上拋運動 多過程問題
- 政治●安徽卷丨2024年安徽省普通高中學業水平選擇性考試政治試卷及答案
- 江西省吉安市陽明中學2025屆高考英語保溫卷(一)(原卷版)
- 消防規范試題及答案
- 西部計劃試題及答案青海
- 安徽省宣城市2025年中考三模道德與法治試卷(含答案)
- 簡愛英文讀書報告-(精華版)課件
- 三瓶胸腔閉式引流負壓吸引護理常規
- 西南科技大學熱工基礎題庫(含答案)資料
- 某村古建筑保護建設工程項目可行性方案
- 安全生產知識競賽題庫及答案(共200題)
- GB/T 42441-2023仿生學仿生材料、結構和構件
- 小學英語人教版五年級下冊第六單元《Unit 6 Work quietly》詞匯詳解復習公開課課件
- 2023年中電信數智科技有限公司招聘筆試題庫及答案解析
- GB 1886.358-2022食品安全國家標準食品添加劑磷脂
- GB/T 6176-20162型六角螺母細牙
- GB/T 3125-1994白銅線
評論
0/150
提交評論