基于單片機萬年歷設計.doc
《基于單片機萬年歷設計.doc》由會員分享,可在線閱讀,更多相關《基于單片機萬年歷設計.doc(26頁珍藏版)》請在裝配圖網(wǎng)上搜索。
基于單片機萬年歷設計摘要:本文介紹了基于STC89C52單片機的多功能電子萬年歷的硬件結構和軟硬件設計方法。本設計由數(shù)據(jù)顯示模塊、溫度采集模塊、時間處理模塊和調整設置模塊四個模塊組成。系統(tǒng)以STC89C52單片機為控制器,以串行時鐘日歷芯片DS1302記錄日歷和時間,它可以對年、月、日、時、分、秒進行計時,還具有閏年補償?shù)榷喾N功能。溫度采集選用DS18B20芯片,萬年歷采用直觀的數(shù)字顯示,數(shù)據(jù)顯示采用1602A液晶顯示模塊,可以在LCD上同時顯示年、月、日、周日、時、分、秒,還具有時間校準等功能。此萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優(yōu)點,具有廣闊的市場前景。關鍵字:萬年歷 溫度計 液晶顯示0 前言隨著科技的快速發(fā)展,時間的流逝,從觀太陽、擺鐘到現(xiàn)在電子鐘,人類不斷研究,不斷創(chuàng)新紀錄。它可以對年、月、日、時、分、秒進行計時,還具有閏年補償?shù)榷喾N功能,而且DS1302的使用壽命長,誤差小。對于數(shù)字電子萬年歷采用直觀的數(shù)字顯示,可以同時顯示年、月、日、時、分、秒和溫度等信息,還具有時間校準等功能。該電路采用STC89C52單片機作為核心,功耗小,能在3V的低壓工作,電壓可選用35V電壓供電。此萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。1 總體方案設計單片機電子萬年歷的制作有多種方法,可供選擇的器件和運用的技術也有很多種。所以,系統(tǒng)的總體設計方案應在滿足系統(tǒng)功能的前提下,充分考慮系統(tǒng)使用的環(huán)境,所選的結構要簡單使用、易于實現(xiàn),器件的選用著眼于合適的參數(shù)、穩(wěn)定的性能、較低的功耗以及低廉的成本。系統(tǒng)的功能往往決定了系統(tǒng)采用的結構,經過成本,性能,功耗等多方面的考慮決定用三個8位74LS164串行接口外接LCD顯示器,RESPACK-8對單片機STC89C52進行供電,時間芯片DS1302連接單片機STC89C52。從而實現(xiàn)電子萬年歷的功能。按照系統(tǒng)設計的要求,初步確定系統(tǒng)由電源模塊、時鐘模塊、顯示模塊、鍵盤接口模塊、溫度測量模塊和鬧鐘模塊共六個模塊組成,電路系統(tǒng)構成框圖如圖1所示。鬧鐘模塊獨立按鍵顯示模塊始終模塊STC89C52溫度模塊電源模塊 圖1 硬件電路框圖2 硬件電路設計2.1 單片機的選擇2.1.1 51單片機及12單片機結構及功能單片機又稱單片微控制器,可以完成復雜的運算、邏輯控制、通信等功能。80C51單片機的時鐘信號用來提供單片機內各種位操作時間基準,80C52單片機的時鐘信號。通常有兩種電路形式:內部震蕩方式和外部震蕩方式。由于80C52的系統(tǒng)性能滿足系統(tǒng)數(shù)據(jù)采集及時間精度的要求,而且產品產量豐富來源廣,應用也很成熟,故采用來作為控制核心。單片機系統(tǒng)是實現(xiàn)環(huán)境電壓多路采集功能的核心模塊。每次選通一路通道信號進行模擬量轉換數(shù)字量和輸出允許。STC12C5A60AD/S2系列帶A/D轉換的單片機的A/D轉換口在P1口,上電復位后P1口為弱上拉型IO口,用戶可以通過軟件設置將8路中的任何一路設置為A/D轉換,不須作為A/D使用的口可繼續(xù)作為IO口使用。STC12C5A60AD/S2系列單片機與89C52單片機最小系統(tǒng)相同,而功能上較51單片機相比更為強大。單片機最小系統(tǒng)電路如圖2所示。圖2 單片機最小系統(tǒng)2.1.2時鐘電路 89C51系列單片機的時鐘信號通常有內部振蕩和外部振蕩方式。本最小系統(tǒng)采用外部晶振電路,利用11.0592MHZ的晶體振蕩器和兩個30pF的電容組成。其中晶體振蕩器起振蕩作用,兩電容起到去耦合的作用,具體設計圖如圖3所示:圖3 時鐘電路2.1.3復位電路本系統(tǒng)的復位電路是采用按鍵復位的電路,復位輸入引腳RET為其提供了初始化的手段。當其ALE及PSEN兩引腳輸出高電平,RET引腳高電平到時,單片機復位。按下按鈕,則直接把+5V加到了RET端從而復位稱為手動復位。復位后,P0到P3并行I/O口全為高電平,其它寄存器全部清零,只有SBUF寄存器狀態(tài)不確定。系統(tǒng)復位電路如圖4所示。圖4 復位電路2.2時鐘芯片DS1302接口設計與性能分析2.2.1DS1302性能簡介DS1302是Dallas公司生產的一種實時時鐘芯片。它通過串行方式與單片機進行數(shù)據(jù)傳送,能夠向單片機提供包括秒、分、時、日、月、年等在內的實時時間信息,并可對月末日期、閏年天數(shù)自動進行調整;它還擁有用于主電源和備份電源的雙電源引腳,在主電源關閉的情況下,也能保持時鐘的連續(xù)運行。另外,它還能提供31字節(jié)的用于高速數(shù)據(jù)暫存的RAM。DS1302時鐘芯片內主要包括移位寄存器、控制邏輯電路、振蕩器。DS1302與單片機系統(tǒng)的數(shù)據(jù)傳送依靠RST,I/O,SCLK三根端線即可完成。其工作過程可概括為:首先系統(tǒng)RST引腳驅動至高電平,然后在SCLK時鐘脈沖的作用下,通過I/O引腳向DS1302輸入地址/命令字節(jié),隨后再在SCLK時鐘脈沖的配合下,從I/O引腳寫入或讀出相應的數(shù)據(jù)字節(jié)。因此,其與單片機之間的數(shù)據(jù)傳送是十分容易實現(xiàn)的,DS1302的引腳排列及內部結構圖如圖4:DS1302引腳說明: X1,X2 32.768kHz晶振引腳GND 地線RST 復位端I/O 數(shù)據(jù)輸入/輸出端口SCLK 串行時鐘端口VCC1 慢速充電引腳VCC2 電源引腳 圖4 DS1302的引腳2.2.2DS1302接口電路設計1時鐘芯片DS1302的接口電路及工作原理:圖5 DS1302與MCU接口電路圖5為DS1302的接口電路,其中Vcc1為后備電源,Vcc2為主電源。VCC1在單電源與電池供電的系統(tǒng)中提供低電源并提供低功率的電池備份。VCC2在雙電源系統(tǒng)中提供主電源,在這種運用方式中VCC1連接到備份電源,以便在沒有主電源的情況下能保存時間信息以及數(shù)據(jù)。DS1302由VCC1或VCC2 兩者中較大者供電。當VCC2大于VCC1+0.2V時,VCC2給DS1302供電。當VCC2小于VCC1時,DS1302由VCC1供電。DS1302在每次進行讀、寫程序前都必須初始化,先把SCLK端置 “0”,接著把RST端置“1”,最后才給予SCLK脈沖;讀/寫時序如下圖6所示。表-1為DS1302的控制字,此控制字的位7必須置1,若為0則不能對DS1302進行讀寫數(shù)據(jù)。對于位6,若對時間進行讀/寫時,CK=0,對程序進行讀/寫時RAM=1。位1至位5指操作單元的地址。位0是讀/寫操作位,進行讀操作時,該位為1;進行寫操作時,該位為0。控制字節(jié)總是從最低位開始輸入/輸出的。表-2為DS1302的日歷、時間寄存器內容:“CH”是時鐘暫停標志位,當該位為1時,時鐘振蕩器停止,DS1302處于低功耗狀態(tài);當該位為0時,時鐘開始運行?!癢P”是寫保護位,在任何的對時鐘和RAM的寫操作之前,“WP”必須為0。當“WP”為1時,寫保護位防止對任一寄存器的寫操作。2、DS1302的控制字DS1302的控制字如表2所示??刂谱止?jié)的高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為1表示進行讀操作,為0表示進行寫操作??刂谱止?jié)總是從最低位開始輸出。表2 DS1302的控制字格式 1 RAM/CKA4A3A2A1A0RD/WR3、數(shù)據(jù)輸入輸出(I/O)在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。如下圖6所示。圖6 DS1302讀/寫時序圖4、DS1302的寄存器AMDS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見表3。 表3 DS1302的日歷、時間寄存器寫寄存器讀寄存器Bit7Bit6Bit5Bit7Bit3Bit2Bit1Bit080H81HCH10秒秒82H83H10分分84H85H12/010時時/PM86H87H0010 日日88H89H00010月月8AH8BH00000星期8CH8DH 10年年8EH8FHWP0000000此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與RAM相關的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內容。 DS1302與RAM相關的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0HFDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。2.3溫度芯片DS18B20接口設計與性能分析2.3.1 DS18B20性能簡介1.DS18B20的主要特性DS18B20溫度傳感器是美國DALLAS半導體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9-12位的數(shù)字值讀數(shù)方式?,F(xiàn)場溫度直接以一線總線的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現(xiàn)場溫度測量,如:環(huán)境控制、設備或過程控制、測溫類消費電子產品等。與前一代產品不同,新的產品支持3V5.5V的電壓范圍,使系統(tǒng)設計更靈活、方便。其性能特點可歸納如下:1獨特的單線接口僅需要一個端口引腳進行通信;2測溫范圍在-55到125,分辨率最大可達0.0625;3采用了3線制與單片機相連,減少了外部硬件電路;4零待機功耗;5可通過數(shù)據(jù)線供電,電壓范圍在3.0V-5.5V;6用戶可定義的非易失性溫度報警設置;7報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件; 8負電壓特性,電源極性接反時,溫度計不會因發(fā)熱燒毀,只是不能正常工作。2.DS18B20工作原理 DS18B20的讀寫時序和測溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉換時的延時時間由2s減為750ms。 DS18B20測溫原理如圖5所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產生固定頻率的脈沖信號送給計數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產生的信號作為計數(shù)器2的脈沖輸入。計數(shù)器1和溫度寄存器被預置在55所對應的一個基數(shù)值。計數(shù)器1對低溫度系數(shù)晶振產生的脈沖信號進行減法計數(shù),當計數(shù)器1的預置值減到0時,溫度寄存器的值將加1,計數(shù)器1的預置將重新被裝入,計數(shù)器1重新開始對低溫度系數(shù)晶振產生的脈沖信號進行計數(shù),如此循環(huán)直到計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。圖7中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正計數(shù)器1的預置值。LSB位置/清除增加計數(shù)器1斜率累加器計數(shù)比較器溫度寄存器減到0預置計數(shù)器2減到0停止預置低溫度系數(shù)晶振高溫度系數(shù)晶振圖7 DS18B20測溫原理2.3.2 DS18B20接口電路設計 如8圖所示,該系統(tǒng)中采用數(shù)字式溫度傳感器DS18B20,具有測量精度高,電路連接簡單特點,此類傳感器僅需要一條數(shù)據(jù)線進行數(shù)據(jù)傳輸,用P3.7與DS18B20的DQ口連接,Vcc接電源,GND接地。 圖8溫度傳感器DS18B20接口電路2.3.3 DS18B20的工作時序 1、復位時序圖圖9復位時序圖2、讀時序圖圖10讀時序圖3、寫時序圖圖11 寫時序圖 4、工作時序 1)總線時序圖12 總線時序2)寫周期時序圖13寫周期時序3)起始/停止時序圖14 起始/停止時序4)應答時序圖15 應答時序5)立即地址讀時序圖16 立即地址讀時序2.4 LCD顯示模塊2.4.1LCM1602的特性及使用說明1.LCM1602的接口信號說明如表4:表4 LCM1602的接口信號編號引腳符號功能說明編號引腳符號功能說明1VSS電源地9D2DATA I/O2VDD電源正極10D3DATA I/O3VL液晶顯示偏壓信號11D4DATA I/O4RS數(shù)據(jù)/命令選擇端(H/L)12D5DATA I/O5R/W讀/寫選擇端(H/L)13D6DATA I/O6E使能信號14D7DATA I/O7D0DATA I/O15BLA背光正極8D1DATA I/O16BLK背光負極2、基本操作時序如下:1)讀狀態(tài):RS=L,RW=H,E=H2)寫指令:RS=L,RW=L,D0D7=指令碼,E=高脈沖3)讀數(shù)據(jù):RS=H,RW=H,E=H4)寫數(shù)據(jù):RS=H,RW=L,D0D7=數(shù)據(jù),E=高脈沖3、初始化設置 1)顯示模式設置如表5:表5顯示模式設置指令碼功能00111000設置16*2顯示,5*7點陣,8位數(shù)據(jù)接口2) 顯示開/關及光標設置如表6: 表6 顯示開/關及光標設置指令碼功能00001DCBD=1開顯示;D=0關顯示C=1顯示光標;C=0不顯示光標B=1光標閃爍;B=0光標不顯示000001NSN=1當讀或寫一個字符后地址指針加一,且光標加一N=0當讀或寫一個字符后地址指針減一,且光標減一S=1當寫一個字符,整屏顯示左移(N=1)2.4.2LCM1602與MCU的接口電路 LCD的D0D7分別接單片機的的P2口,作為數(shù)據(jù)線,因為P0口內部沒有上拉電阻,所以外部另外加上10K的上拉電阻;P1.0P1.2分別接LCD的RS、RW、E三個控制管腳;RV1用來調節(jié)LCD的顯示灰度;BLK、BLA為背光的陰極和陽極,接上相應電平即點亮背光燈。2.5按鍵模塊設計 本系統(tǒng)用到了5個按鍵,其中一個用作系統(tǒng)手動復位,另外4個采用獨立按鍵,該種接法查詢簡單,程序處理簡單,可節(jié)省CPU資源,按鍵電路如圖17所示,4個獨立按鍵分別與STC89C52的P3.4、P3.5、P3.6、P3.7接口相連。圖17 按鍵電路 對以上4個按鍵作簡要說明:S4SET 鍵,S3UP鍵,S2DOWN鍵,S5OUT/STOP鍵。SET 鍵:按下SET鍵進入時間校準狀態(tài),按一下進入秒調整,兩下分調整,依此類推可進行各年月日,時分秒以及星期的校準;UP鍵:當SET鍵按下時,UP進行SET選定項(如:小時)的加操作;DOWN鍵:當SET鍵按下時,DOWN進行SET選定項(如:小時)的減操作;OUT鍵:當OUT鍵按下時,此鍵功能為退出校準功能,進入下一模式,顯示溫度值和上下限的溫度值。2.6復位電路的設計 當STC89C52單片機的復位引腳RST(全稱RESET)出現(xiàn)2個機器周期以上的高電平時,單片機就完成了復位操作。如果RST持續(xù)為高電平,單片機就處于循環(huán)復位狀態(tài),而無法執(zhí)行程序。因此要求單片機復位后能脫離復位狀態(tài)。而本系統(tǒng)選用的是12MHz的晶振,因此一個機器周期為1s,那么復位脈沖寬度最小應為2s。在實際應用系統(tǒng)中,考慮到電源的穩(wěn)定時間,參數(shù)漂移,晶振穩(wěn)定時間以及復位的可靠性等因素,必須有足夠的余量。 根據(jù)應用的要求,復位操作通常有兩種基本形式:上電復位、手動復位。上電復位要求接通電源后,自動實現(xiàn)復位操作。STC89C52單片機的上電復位POR(Power On Reset)實質上就是上電延時復位,也就是在上電延時期間把單片機鎖定在復位狀態(tài)上。在單片機每次初始加電時,首先投入工作的功能部件是復位電路。復位電路把單片機鎖定在復位狀態(tài)上并且維持一個延時(記作TRST),以便給予電源電壓從上升到穩(wěn)定的一個等待時間;在電源電壓穩(wěn)定之后,再插入一個延時,給予時鐘振蕩器從起振到穩(wěn)定的一個等待時間;在單片機開始進入運行狀態(tài)之前,還要至少推遲2個機器周期的延時。 本設計采用上電且開關復位電路,如圖18所示上電后,由于電容充電,使RST持續(xù)一段高電平時間。當單片機已在運行之中時,按下復位鍵也能使RST持續(xù)一段時間的高電平,從而實現(xiàn)上電且開關復位的操作。通常選擇C=1030F,本設計采用的電容值為10F的電容和電阻為4.7K的電阻。圖18 復位電路3 系統(tǒng)的軟件設計電子萬年歷的功能是在程序控制下實現(xiàn)的。該系統(tǒng)的軟件設計方法與硬件設計相對應,按整體功能分成多個不同的程序模塊,分別進行設計、編程和調試,最后通過主程序將各程序模塊連接起來。這樣有利于程序修改和調試,增強了程序的可移植性。本系統(tǒng)的軟件部分主要要進行公歷計算程序設計,溫度測量程序設計,按鍵的掃描輸入等。程序開始運行后首先要進行初始化,把單片機的各引腳的狀態(tài)按程序里面的初始化命令進行初始化,初始化完成后運行溫度測量程序,讀取出溫度傳感器測量出來的溫度,然后運行公歷計算程序,得到公歷的時間、日期信息,再運行按鍵掃描程序,檢測有無按鍵按下,如果沒有按鍵按下則直接調用節(jié)日計算程序,根據(jù)得到的公歷日期信息計算出節(jié)日,如果有按鍵按下則更新按鍵修改后的變量后送給節(jié)日計算程序,由節(jié)日計算程序根據(jù)修改后的變量計算出對應的節(jié)假日,計算完成后運行顯示程序,顯示程序將得到的溫度數(shù)據(jù)、公歷信息、節(jié)假日信息送給對應的數(shù)碼管讓其顯示。3.1主程序流程圖的設計主程序流程圖:開始DS1302初始化設置DS1302讀年月日星期時分秒將讀取的數(shù)據(jù)處理后送液晶屏顯示返回圖19 主程序流程圖3.2 程序設計3.2.1 DS1302讀寫程序設計本系統(tǒng)的時間讀取主要來源于單片機對DS1302的操作,在硬件上時鐘芯片DS1302與單片機的連接需要三條線,即SCLK(7)、I/O(6)、RST(5),具體連接圖見系統(tǒng)硬件設計原理圖。讀取寫程序設計如下:sbit clk = P13; /ds1302時鐘線定義sbit io = P14; /數(shù)據(jù)線sbit rst = P15; /復位線/秒 分 時 日 月 年 星期 uchar code write_add=0x80,0x82,0x84,0x86,0x88,0x8c,0x8a; /寫地址uchar code read_add =0x81,0x83,0x85,0x87,0x89,0x8d,0x8b; /讀地址uchar code init_ds =0x58,0x00,0x00,0x01,0x01,0x13,0x1; uchar miao,fen,shi,ri,yue,week,nian;uchar i;uchar fen1=0x11,shi1=0; /兩個鬧鐘變量的定義bit open1;/*寫一個數(shù)據(jù)到對應的地址里*/void write_ds1302(uchar add,uchar dat)rst = 1; /把復位線拿高for(i=0;i= 1; /把地址右移一位clk = 1; /時鐘線拿高for(i=0;i= 1; /把數(shù)據(jù)右移一位clk = 1; /時鐘線拿高rst = 0; /復位線合低clk = 0;io = 0;/*從對應的地址讀一個數(shù)據(jù)出來*/uchar read_ds1302(uchar add)uchar value,i;rst = 1; /把復位線拿高for(i=0;i= 1; /把地址右移一位clk = 1; /時鐘線拿高for(i=0;i= 1;if(io = 1)value |= 0x80;clk = 1; /時鐘線拿高rst = 0; /復位線合低clk = 0;io = 0;return value; /返回讀出來的數(shù)據(jù)/*把要的時間 年月日 都讀出來*/void read_time()miao = read_ds1302(read_add0);/讀秒fen = read_ds1302(read_add1);/讀分shi = read_ds1302(read_add2);/讀時ri = read_ds1302(read_add3);/讀日yue = read_ds1302(read_add4);/讀月nian = read_ds1302(read_add5);/讀年week = read_ds1302(read_add6);/讀星期Conversion(0,nian,yue,ri);/農歷轉換 n_nian = year_moon ;n_yue = month_moon ;n_ri = day_moon ;/*把要寫的時間 年月日 都寫入ds1302里*/void write_time()write_ds1302(0x8e,0x00);/打開寫保護write_ds1302(write_add0,miao);/寫秒write_ds1302(write_add1,fen);/寫分write_ds1302(write_add2,shi);/寫時write_ds1302(write_add3,ri);/寫日write_ds1302(write_add4,yue);/寫月write_ds1302(write_add5,nian);/寫星期write_ds1302(write_add6,week);/寫年write_ds1302(0x8e,0x80);/關閉寫保護/*把數(shù)據(jù)保存到ds1302 RAM中*0-31*/void write_ds1302ram(uchar add,uchar dat)add = 1; /地址是從第二位開始的add &= 0xfe; /把最低位清零 是寫的命令add |= 0xc0; /地址最高兩位為 1 write_ds1302(0x8e,0x00);write_ds1302(add,dat);write_ds1302(0x8e,0x80);/*把數(shù)據(jù)從ds1302 RAM讀出來*0-31*/uchar read_ds1302ram(uchar add)add = 1; /地址是從第二位開始的add |= 0x01; /把最高位置1 是讀命令add |= 0xc0; /地址最高兩位為 1 return(read_ds1302(add);/*初始化ds1302時間*/void init_ds1302()uchar i;rst = 0;/第一次讀寫數(shù)據(jù)時要把IO品拿低clk = 0;io = 0;i = read_ds1302ram(30); if(i != 3)i = 3;write_ds1302ram(30,i); /4050 4100 3080write_ds1302(0x8e,0x00); /打開寫保護for(i=0;i0;i-) value=1; DQ = 0; DQ = 1; delay(1); if(DQ)value|=0x80; delay(6); return(value);/向 1-WIRE 總線上寫一個字節(jié)void write_byte(char val) byte i; for (i=8; i0; i-) / 一次寫一位 DQ = 0; / DQ = val&0x01; delay(5); / DQ = 1; val=val/2; delay(5);4 調試分析在protues上進行仿真實驗。首先使用Keil uVsion 2將編寫完成的程序編譯生成HEX文件,將HEX文件燒錄到兩片單片機中,進行仿真實驗,結果如圖20所示。圖20 仿真圖5 結論在整個設計過程中,硬件方面主要設計了STC89C52單片機的最小系統(tǒng)、DS1302接口電路、DS18B20接口電路、鬧鐘及LCD顯示;軟件方面借助各個渠道的資料,主要設計了陽歷數(shù)據(jù)讀取程序、陽歷轉陰歷程序、溫度采集程序、鬧鈴程序以及LCD顯示程序;系統(tǒng)的調試主要是通過一塊STC89C52開發(fā)板,再借助于Keil、STC以及少許自己搭建的外圍電路實現(xiàn)的;再此過程中,分步調試時顯示出了陽歷的日期及時間,還有實時溫度,集中調試時沒有達到預期效果。此萬年歷具有讀顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。在整個設計過程中學到了許多沒學到的知識,在電路焊接時雖然沒什么大問題,但從中也知道了焊接在整個作品中的重要性,電路工程量大,不能心急,一個個慢慢來不能急于求成。反而達到事半功倍的效果。對電路的設計、布局要先有一個好的構思,才顯得電路板美觀、大方。程序編寫中,由于思路不清晰,開始時遇到了很多的問題,經過靜下心來思考,理清了思路,反而得心應手。在此次設計中,知道了做事要有一顆平常的心,不要想著走捷徑,一步一腳印。也練就了我的耐心,做什么事都要有耐心。在本次設計中學到了很多很多東西,這是最重要的??傊?,此次畢業(yè)設計使我的能力得到了全方位的提高,次設計的電子萬年歷也存在的不足的地方,有待于以后的改進。參考文獻1陳明熒 8051單片機課程設計實訓教程M北京:清華大學出版社2蘇平.單片機的原理與接口技術M.北京:電子工業(yè)出版社,2006:1-113.3王忠民.微型計算機原理M.西安:西安科技大學出版社,2003:15-55.4何立民單片機高級教程M北京:北京航空航天大學出版社,2003年5紀宗南.單片機外圍器件使用手冊M.北京:北京航空航天大學出版社,622-655.6周雪.模擬電子技術M西安: 西安電子科技大學出版社,2005:81-95.7左金生.電子與模擬電子技術M.北京:電子工業(yè)出版社,2004:105-131.8尹勇.單片機開發(fā)環(huán)境Vision2的開發(fā)指南M. 北京:北京航空航天大學出版社,2004:173-199.9馬忠梅,籍順心等單片機的C語言應用程序設計M北京航空航天大學出版社, 2001年10新編單片機原理與應用(第二版).西安電子科技大學出版社,2007.211張萌.單片機應用系統(tǒng)開發(fā)綜合實例M. 北京:清華大學出版社,2007.712樓然苗.單片機課程設計指導M. 北京:北京航空航天大學出版社,2007.713朱思榮51單片機實現(xiàn)公歷與農歷、星期的轉換Z.當當電子網(wǎng)14李廣弟. 單片機原理及應用M 北京航空航天大學出版社,2004年課設體會課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程,隨著科學技術發(fā)展的日新月異,單片機已經成為當今計算機應用中空前活躍的領域,在生活中可以說是無處不在。因此作為二十一世紀的大學來說掌握單片機的開發(fā)技術是十分重要的。通過三周的課程設計,鞏固了課堂上所學的知識。期間不斷的查閱資料,加深了我對單片機的理解。之后焊接硬件過程中出現(xiàn)各種問題,最后在老師和同學的幫助下成功的解決了問題。這讓我懂得了光有課本上的知識是不夠的,一定要理論結合實踐,在實踐中把理論知識具體化,這樣才能更好的掌握好知識。而且通過和同學的合作,讓我更明白相互之間的協(xié)調的重要性。因為我們學的都是單片機理論方面的東西,實際應用方面較少,所以在設計過程中遇到了各種各樣的問題,可以說困難重重。比如說Proteus軟件的仿真電路連接,剛開始使用的時候比較陌生,器件的選取都存在問題。經過上網(wǎng)搜索資料,這個問題很快解決了。這期間難免會遇到過各種各樣的問題,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。這次實習讓我受益匪淺,無論從知識上還是其他的各個方面。上課的時候學習的單片機只是從理論的角度去理解枯燥乏味。但在實習中見過甚至使用了單片機及其系統(tǒng),能夠理論聯(lián)系實際的學習,開闊了眼界,提高了單片機知識的理解和水平。在這次課程設計中又讓我體會到了合作與團隊的力量,當遇到不會的地方就會和同學互相討論。最后感謝老師和同學對我的幫助。附錄1 電路原理圖- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 基于 單片機 萬年歷 設計
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://www.szxfmmzy.com/p-6648146.html