




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、畢業(yè)設(shè)計(jì)(論文) 題 目:基于單片機(jī)AT89C52的實(shí)時(shí)日歷時(shí)鐘系統(tǒng)的設(shè)計(jì)學(xué)生姓名:學(xué) 號(hào):所在學(xué)院:機(jī)械與電子工程學(xué)院專業(yè)班級(jí):屆 別:指導(dǎo)教師:皖西學(xué)院本科畢業(yè)設(shè)計(jì)(論文)創(chuàng)作誠信承諾書1.本人鄭重承諾:所提交的畢業(yè)設(shè)計(jì)(論文),題目基于單片機(jī)AT89C52的實(shí)時(shí)日歷時(shí)鐘系統(tǒng)的設(shè)計(jì)是本人在指導(dǎo)教師指導(dǎo)下獨(dú)立完成的,沒有弄虛作假,沒有抄襲、剽竊別人的內(nèi)容; 2.畢業(yè)設(shè)計(jì)(論文)所使用的相關(guān)資料、數(shù)據(jù)、觀點(diǎn)等均真實(shí)可靠,文中所有引用的他人觀點(diǎn)、材料、數(shù)據(jù)、圖表均已標(biāo)注說明來源; 3. 畢業(yè)設(shè)計(jì)(論文)中無抄襲、剽竊或不正當(dāng)引用他人學(xué)術(shù)觀點(diǎn)、思想和學(xué)術(shù)成果,偽造、篡改數(shù)據(jù)的情況; 4.本人已被告
2、知并清楚:學(xué)校對(duì)畢業(yè)設(shè)計(jì)(論文)中的抄襲、剽竊、弄虛作假等違反學(xué)術(shù)規(guī)范的行為將嚴(yán)肅處理,并可能導(dǎo)致畢業(yè)設(shè)計(jì)(論文)成績(jī)不合格,無法正常畢業(yè)、取消學(xué)士學(xué)位資格或注銷并追回已發(fā)放的畢業(yè)證書、學(xué)士學(xué)位證書等嚴(yán)重后果; 5.若在省教育廳、學(xué)校組織的畢業(yè)設(shè)計(jì)(論文)檢查、評(píng)比中,被發(fā)現(xiàn)有抄襲、剽竊、弄虛作假等違反學(xué)術(shù)規(guī)范的行為,本人愿意接受學(xué)校按有關(guān)規(guī)定給予的處理,并承擔(dān)相應(yīng)責(zé)任。 學(xué)生(簽名): 日期: 年 月 日目 錄1 緒論22 設(shè)計(jì)思路22.1 硬件的設(shè)計(jì)思路22.2 軟件的設(shè)計(jì)思路33 硬件電路設(shè)計(jì)33.1 系統(tǒng)結(jié)構(gòu)框圖33.2單片機(jī)AT89C52的介紹33.3 時(shí)鐘芯片DS1302接口設(shè)計(jì)與
3、性能分析43.5 按鍵模塊設(shè)計(jì)73.6 復(fù)位電路模塊的設(shè)計(jì)74 軟件的設(shè)計(jì)84.1 主程序運(yùn)行流程圖及說明84.2 時(shí)鐘芯片DS1302的軟件設(shè)計(jì)及流程圖94.3 按鍵控制及流程圖114.4 1602LCD操作說明及流程圖125 系統(tǒng)的仿真與結(jié)果分析145.1 用Proteus仿真及結(jié)果145.2 實(shí)物的制作155.3 誤差分析16總結(jié)17參考文獻(xiàn):18致 謝19 皖西學(xué)院2016屆本科畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)AT89C52的實(shí)時(shí)日歷時(shí)鐘系統(tǒng)的設(shè)計(jì)學(xué)生: (指導(dǎo)老師: )(皖西學(xué)院機(jī)械與電子工程學(xué)院)摘 要:日歷時(shí)鐘是一個(gè)常見的用品,它滲透到我們生產(chǎn)、生活、學(xué)習(xí)中的每一個(gè)角落,一個(gè)性能精準(zhǔn)、
4、功能齊全、外表美觀的日歷時(shí)鐘對(duì)我們的工作、學(xué)習(xí)生活起著非常重要的作用。本文設(shè)計(jì)一種實(shí)時(shí)日歷時(shí)鐘系統(tǒng),它以單片機(jī)AT89C52為主控制器,以DS1302日歷時(shí)鐘芯片,以1602LCD數(shù)碼管為顯示器件,再配以適當(dāng)?shù)耐鈬娐?,具有顯示精準(zhǔn)、調(diào)節(jié)方便、高可靠性、高性價(jià)比、低電壓、低功耗等優(yōu)點(diǎn)。關(guān)鍵詞:AT89C52單片機(jī);DS1302;1602LCD數(shù)碼管顯示;時(shí)鐘 Design of real time calendar clock system based on single chip microcomputer AT89C52Student:WangXiang(Guidance teacher:
5、ZhouTongxu)(College of mechanical and electronic engineering of West Anhui University)Abstract:In the 51 single chip microcomputer application system, it is often needed to record real-time information and long-term preservation. For example, at the time of data acquisition, for some important infor
6、mation requires not only record the content, also need the exact time of the records the event; single chip microcomputer for the high reliability, high price, low voltage, low power consumption, and a series of advantages, in recent years get rapid development and promotion of a wide range, is wide
7、ly used in industrial control systems, communications equipment, daily consumption class products and toys . This design uses the AT89C52 single chip microcomputer as well as the DS1302 calendar clock chip to realize the design of the calendar clock.The design results show that the design of real ti
8、me clock based on DS1302 through the1602LCD digital tube display system can meet the design requirement.Key Words: 52 Microcontroller;DS1302;1602LCD digital tube display;clock11 緒論時(shí)間與人類的生活緊密相連,是一個(gè)重要的參數(shù)。這個(gè)參數(shù)無論什么時(shí)候都是非常重要的,少了時(shí)間這個(gè)參數(shù),社會(huì)的進(jìn)步也會(huì)隨之變得緩慢,足以可見對(duì)時(shí)間的研究是非常有必要的。本次設(shè)計(jì)的功能是在51系列單片機(jī)系統(tǒng)中設(shè)置、獲取、記錄實(shí)時(shí)的日歷時(shí)鐘信息并通過
9、數(shù)碼管顯示,要求能夠進(jìn)行長(zhǎng)時(shí)間的記錄,并且在斷電的情況下,還能繼續(xù)保對(duì)時(shí)間的回去和記錄。實(shí)時(shí)顯示可以通過軟件編程實(shí)現(xiàn),但這種方法需要編制的程序復(fù)雜,代碼多且單片機(jī)軟件開銷大,時(shí)間信息也不宜長(zhǎng)期保存。而采用專用實(shí)時(shí)時(shí)鐘芯片可以避免這些問題,并且可以非易失地長(zhǎng)期保存時(shí)間信息,因此,在設(shè)計(jì)中選擇使用專用芯片來實(shí)現(xiàn)日歷時(shí)鐘顯示系統(tǒng)。根據(jù)功能模塊的劃分,本系統(tǒng)包括3個(gè)部分:1) 51單片機(jī)模式塊:其作用是和外圍的時(shí)鐘芯片通信,并控制數(shù)據(jù)傳輸過程,采集時(shí)間信息并予以處理;2) 日歷時(shí)鐘模塊:此模塊由專用的實(shí)時(shí)時(shí)鐘芯片構(gòu)成,它是本設(shè)計(jì)的核心模塊,由它提供實(shí)時(shí)的日歷時(shí)鐘信息;3) 數(shù)碼管顯示模塊:此模塊用于實(shí)
10、時(shí)日歷時(shí)鐘信息顯示;程序部分包括單片機(jī)和時(shí)鐘芯片的接口程序(實(shí)現(xiàn)單片機(jī)和時(shí)鐘芯片之間的數(shù)據(jù)傳輸過程)以及數(shù)碼管顯示程序。2 設(shè)計(jì)思路2.1 硬件的設(shè)計(jì)思路由于系統(tǒng)要實(shí)現(xiàn)的功能比較簡(jiǎn)單,主要是采集實(shí)時(shí)日歷時(shí)間及鬧鐘的設(shè)置,因此,硬件設(shè)計(jì)思路非常清晰。采用AT89C52芯片作為硬件核心,具有在線編程可擦除技術(shù),當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r(shí),不需要對(duì)芯片多次拔插,所以不會(huì)對(duì)芯片造成損壞。采用DS1302時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘,DS1302芯片是一種高性能的時(shí)鐘芯片,可自動(dòng)對(duì)秒、分、時(shí)、星期、日、周、月、年以及閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù),而且精度高位的RAM作為數(shù)據(jù)暫存
11、區(qū),工作電壓2.5V5.5V范圍內(nèi),2.5V時(shí)耗電小于300nA.故采用DS1302作為時(shí)鐘芯片。當(dāng)然,其他的外接電路中顯示器及按鍵等硬件的設(shè)計(jì)都非常簡(jiǎn)單了。本設(shè)計(jì)采用的是1602LCD液晶顯示器。它是一種專門用來顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊,能很好地顯示出本設(shè)計(jì)要求的結(jié)果(對(duì)實(shí)時(shí)日歷時(shí)鐘的顯示)。2.2 軟件的設(shè)計(jì)思路 整個(gè)單片機(jī)應(yīng)用系統(tǒng)是一個(gè)整體。在應(yīng)用系統(tǒng)整體設(shè)計(jì)時(shí),軟件和硬件要統(tǒng)一考慮進(jìn)來的。其中軟件的設(shè)計(jì)要根據(jù)系統(tǒng)要達(dá)到的功能要求,將其分為若干個(gè)獨(dú)立的模塊,畫出程序流程圖。根據(jù)系統(tǒng)的特點(diǎn)和考慮實(shí)際的情況選擇編程語言。一般選擇匯編語言和C語言。匯編語言對(duì)硬件操作方便,程序代碼
12、短;C語言功能較多,表達(dá)能力好,使用方便,在應(yīng)用方面也很廣,程序效率高,移植性韌度好,現(xiàn)在很多單片機(jī)都是用C語言作為編程語言。軟件系統(tǒng)設(shè)計(jì)時(shí),要分配好系統(tǒng)的資源。一個(gè)單片機(jī)系統(tǒng)的資源主要是片內(nèi)和片外資源,前者是指單片機(jī)內(nèi)部的中央處理器、程序儲(chǔ)存器、書數(shù)據(jù)儲(chǔ)存器、定時(shí)/計(jì)數(shù)器、串行口、并行口等。所以,在設(shè)計(jì)的時(shí)候要分出各個(gè)獨(dú)立的模塊設(shè)計(jì)軟件。本設(shè)計(jì)應(yīng)該把單片機(jī)分為單片機(jī)AT89C52主程序、時(shí)鐘芯片DS1302的軟件設(shè)計(jì)、1602LCD的設(shè)計(jì)和其它外接電路模塊。這樣,對(duì)本次的設(shè)計(jì)又有一定程度的簡(jiǎn)化。 3 硬件電路設(shè)計(jì)本設(shè)計(jì)的硬件電路設(shè)計(jì)主要是圍繞日歷時(shí)鐘芯片DS1302的使用進(jìn)行的。3.1 系統(tǒng)
13、結(jié)構(gòu)框圖本設(shè)計(jì)的硬件電路包括單片機(jī)電路、日歷時(shí)鐘芯片電路和數(shù)碼管顯示輸出電路,其結(jié)構(gòu)框圖如圖1所示。圖1系統(tǒng)硬件結(jié)構(gòu)框圖3.2單片機(jī)AT89C52的介紹單片機(jī)選用美國ATMEL公司生產(chǎn)的AT89C52單片機(jī)。AT89C52是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的只讀程序存儲(chǔ)器(PEROM)和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用8位中央處理器(CPU)和Flash存儲(chǔ)單元,功能強(qiáng)大的AT89C52單片機(jī)適合于許多較
14、為復(fù)雜控制應(yīng)用場(chǎng)合。AT89C52單片機(jī)引腳分布如圖2所示。圖2 AT89C52單片機(jī)引腳分布圖3.3 時(shí)鐘芯片DS1302接口設(shè)計(jì)與性能分析DS1302是Dallas公司生產(chǎn)的一種實(shí)時(shí)時(shí)鐘芯片。它與單片機(jī)連起來,向單片機(jī)傳送年、月、日、時(shí)、分、秒的功能。它還擁有用于主電源和備份電源的雙電源引腳,在沒有主電源的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。另外,它還能提供31字節(jié)的用于高速數(shù)據(jù)暫存的RAM。表1 DS1302引腳功能X1,X232.768kHz晶振引腳GND地線RST復(fù)位端I/O數(shù)據(jù)輸入/輸出端口SCLK串行時(shí)鐘端口VCC1慢速充電引腳 VCC2電源引腳圖3 內(nèi)部鏈接DS1302時(shí)鐘芯片內(nèi)主
15、要包括移位寄存器、控制邏輯電路、振蕩器。DS1302與單片機(jī)系統(tǒng)的數(shù)據(jù)傳送依靠RST,I/O,SCLK三根端線即可完成。其工作過程可概括為:首先系統(tǒng)RST引腳驅(qū)動(dòng)至高電平,然后在SCLK時(shí)鐘脈沖的作用下,通過I/O引腳向DS1302輸入地址/命令字節(jié),隨后再在SCLK時(shí)鐘脈沖的配合下,從I/O引腳寫入或讀出相應(yīng)的數(shù)據(jù)字節(jié)。DS1302的引腳排列如表1及內(nèi)部結(jié)構(gòu)圖如圖3所示。3.4 DS1302接口電路設(shè)計(jì)1、時(shí)鐘芯片DS1302的接口電路及工作原理: 圖4 DS1302的時(shí)鐘模塊圖4為DS1302的接口電路,其中Vcc1為后備電源,Vcc2為主電源。VCC1為提供低功率的電池備份。VCC2在雙
16、電源系統(tǒng)中提供主電源,在這種運(yùn)用方式中VCC1連接到備份電源,以便在沒有主電源的情況下能保存時(shí)間信息以及數(shù)據(jù)。此外,DS1302由VCC1或VCC2 兩者中較大者供。DS1302在每次進(jìn)行讀、寫程序前都必須初始化,先把SCLK端置 “0”,接著把RST端置“1”,最后才給予SCLK脈沖;讀/寫時(shí)序如下圖5所示。表-1為DS1302的控制字,此控制字的位7必須置1,若為0則不能對(duì)DS1302進(jìn)行讀寫數(shù)據(jù)。對(duì)于位6,若對(duì)時(shí)間進(jìn)行讀/寫時(shí),CK=0,對(duì)程序進(jìn)行讀/寫時(shí)RAM=1。位1至位5指操作單元的地址。位0是讀/寫操作位,進(jìn)行讀操作時(shí),該位為1;進(jìn)行寫操作時(shí),該位為0??刂谱止?jié)總是從最低位開始輸
17、入/輸出的。表-2為DS1302的日歷、時(shí)間寄存器內(nèi)容:“CH”是時(shí)鐘暫停標(biāo)志位,當(dāng)該位為1時(shí),時(shí)鐘振蕩器停止,DS1302處于低功耗狀態(tài);當(dāng)該位為0時(shí),時(shí)鐘開始運(yùn)行。“WP”是寫保護(hù)位,在任何的對(duì)時(shí)鐘和RAM的寫操作之前,“WP”必須為0。當(dāng)“WP”為1時(shí),寫保護(hù)位防止對(duì)任一寄存器的寫操作。2、DS1302的控制字DS1302的控制字如表2所示。控制字節(jié)的高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為1表示進(jìn)行讀操作,為0表示進(jìn)行寫操作。5控制字節(jié)總是從
18、最低位開始輸出。表2 DS1302的控制字格式1RAM/CKA4A3A2A1A0RD/WR3、數(shù)據(jù)輸入輸出(I/O)在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。如圖5所示:圖5 DS1302讀/寫時(shí)序圖4、DS1302的寄存器DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時(shí)間寄存器及其控制字見表3。 表3 DS1302的日歷、時(shí)間寄存器寫寄存器讀寄存器Bit7Bit6Bit5B
19、it4Bit3Bit2Bit1Bit080H81HCH10秒秒82H83H10分分84H85H12/24010時(shí)時(shí)AM/PM86H87H0010日日8A8B00000星期8C8D10年年8EH8FHWP0000000此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為C0HFDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所
20、有的RAM的31個(gè)字節(jié),命令控制字為FEH(寫)、FFH(讀)。3.5 按鍵模塊設(shè)計(jì)本系統(tǒng)采用了5個(gè)按鍵,其中4個(gè)采用獨(dú)立按鍵,因?yàn)檫@種方法查詢方便,程序簡(jiǎn)單,可節(jié)省CPU資源,按鍵電路如圖6所示,4個(gè)獨(dú)立按鍵分別與AT89C52的P3.3、P3.4、P3.5、P3.6接口相圖6 按鍵電路對(duì)圖6中的各個(gè)按鍵做一下說明:set鍵:按下SET鍵進(jìn)入時(shí)間校準(zhǔn)狀態(tài),按一下顯示時(shí)間的調(diào)整,按兩下顯示年月日的調(diào)整;up鍵:當(dāng)按下set鍵后,up進(jìn)行set選定項(xiàng)(如:分鐘)的加操作;down鍵:當(dāng)按下set鍵后,down進(jìn)行set選定項(xiàng)(如:分鐘)的減操作;chose鍵:當(dāng)按下set鍵后,chose就會(huì)對(duì)年
21、月日,時(shí)分秒的某一位進(jìn)行準(zhǔn)確的調(diào)整;3.6 復(fù)位電路模塊的設(shè)計(jì)當(dāng)AT89C52單片機(jī)的復(fù)位引腳RST出現(xiàn)2個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)就執(zhí)行了復(fù)位操作。若ST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位,從而無法執(zhí)行程序。而本系統(tǒng)選用的是12MHz的晶振,因此一個(gè)機(jī)器周期為1s,那么復(fù)位脈沖寬度最小應(yīng)為2s。在實(shí)際應(yīng)用系統(tǒng)中,考慮到電源的穩(wěn)定時(shí)間,參數(shù)漂移,晶振穩(wěn)定時(shí)間以及復(fù)位的可靠性等因素,必須有足夠的余量。如圖7位晶振電路所示:本設(shè)計(jì)采用上電且開關(guān)復(fù)位電路,如圖8所示上電后,由于電容充電,使RST持續(xù)一段高電平時(shí)間。當(dāng)單片機(jī)已在運(yùn)行之中時(shí),按下復(fù)位鍵也能使RST持續(xù)一段時(shí)間的高電平,從而實(shí)現(xiàn)上電
22、且開關(guān)復(fù)位的操作。通常選擇C=1030F,本設(shè)計(jì)采用的電容值為20F的電容和電阻為100歐的電阻。圖7 晶振電路圖8 復(fù)位電路4 軟件的設(shè)計(jì)4.1 主程序運(yùn)行流程圖及說明在進(jìn)行微機(jī)控制系統(tǒng)設(shè)計(jì)時(shí),除了系統(tǒng)硬件設(shè)計(jì)外,大量的工作就是如何根據(jù)每個(gè)生產(chǎn)對(duì)象的實(shí)際需要設(shè)計(jì)應(yīng)用程序。因此,軟件設(shè)計(jì)在微機(jī)控制系統(tǒng)設(shè)計(jì)中占重要地位。在單片機(jī)控制系統(tǒng)中,大體上可分為數(shù)據(jù)處理、過程控制兩個(gè)基本類型。數(shù)據(jù)處理包括:數(shù)據(jù)的采集、數(shù)字濾波等。過程控制程序主要是使單片機(jī)按一定的方法進(jìn)行計(jì)算,然后再輸出,以便控制實(shí)現(xiàn)想要的結(jié)果。為了實(shí)現(xiàn)本次設(shè)計(jì)的任務(wù),在進(jìn)行軟件設(shè)計(jì)時(shí),通常把整個(gè)過程分成若干個(gè)部分,每一部分叫做一個(gè)模塊。
23、所謂“模塊”,實(shí)質(zhì)上就是所完成一定功能,相對(duì)獨(dú)立的程序段,這種程序設(shè)計(jì)方法叫模塊程序設(shè)計(jì)法。模塊程序設(shè)計(jì)法對(duì)本設(shè)計(jì)完成的好處是:?jiǎn)蝹€(gè)模塊比起一個(gè)完整的程序易編寫及調(diào)試;模塊可以共存,一個(gè)模塊可以被多個(gè)任務(wù)在不同條件下調(diào)用;模塊程序分割任務(wù)和利用已有程序,來簡(jiǎn)化的完成設(shè)計(jì)要求。本系統(tǒng)軟件采用模塊化結(jié)構(gòu),主要由主程序DS1302子程序及鍵盤控制子程序構(gòu)成。如圖9為主程序流程圖所示:開始系統(tǒng)初始化調(diào)節(jié)時(shí)分秒歡迎界面顯示主界面按鍵調(diào)節(jié)按鍵調(diào)節(jié)調(diào)節(jié)年月日是否調(diào)節(jié)顯示時(shí)間是否是是否否 圖9 主程序流程圖4.2 時(shí)鐘芯片DS1302的軟件設(shè)計(jì)及流程圖本系統(tǒng)的時(shí)間顯示來源于DS1302對(duì)單片機(jī)的執(zhí)行,二者的連
24、接需要3根線,CLK(7)、I/O(6)、RST(5),具體連接圖見系統(tǒng)硬件設(shè)計(jì)原理圖如圖10所示:圖10 單片機(jī)與DS1302的連接進(jìn)入主程序后,DS1302先進(jìn)行初始化設(shè)置,若串行口有數(shù)據(jù),最后則調(diào)用函數(shù)從日歷時(shí)鐘芯片獲取日歷時(shí)鐘信息,調(diào)用顯示函數(shù)顯示日歷時(shí)鐘信息顯示出來,重復(fù)進(jìn)行。這部分包括對(duì)DS1302某個(gè)單元寫、讀DS1302某個(gè)單元的內(nèi)容和對(duì)DS1302設(shè)定時(shí)間。在DS1302的時(shí)鐘日歷或RAM進(jìn)行數(shù)據(jù)傳送時(shí),DS1302必須首先發(fā)送命令字節(jié)。若進(jìn)行單字節(jié)傳送,8位命令字節(jié)傳送結(jié)束之后,在下2個(gè)SCLK周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8個(gè)SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。讀、寫DS
25、1302的數(shù)據(jù)流程圖如圖11所示 :開始變量初始化使DS1302不具備寫保護(hù)復(fù)位端產(chǎn)生一個(gè)高電平寫1302地址延時(shí)一段時(shí)間地址數(shù)據(jù)寫出地址增加寫完地址?復(fù)位端產(chǎn)生一個(gè)高電平讀1302地址延時(shí)一段時(shí)間將該地址的數(shù)據(jù)讀出地址增加顯示數(shù)據(jù)數(shù)據(jù)讀完?否是是否 圖11讀寫DS1302數(shù)據(jù)流程圖 其中DS1302的讀寫程序見附錄1。4.3 按鍵控制及流程圖當(dāng)set鍵按下時(shí),秒位置閃爍。每次按下set鍵按下時(shí),分別在秒、分、時(shí)、日、月、年處閃爍。當(dāng)set鍵再次按下時(shí),加一或減一鍵有效并在相應(yīng)位置加一或減一。比如選定分位,按下增大鍵,調(diào)整顯示分位的增加,當(dāng)秒增加至滿60后,自動(dòng)清零,同時(shí)調(diào)節(jié)一次送至下一位顯示
26、,顯示位置重新回到調(diào)節(jié)處;當(dāng)按下減小鍵時(shí),調(diào)整顯示位秒的減小,當(dāng)秒減至0后,自動(dòng)跳轉(zhuǎn)為59,同時(shí)調(diào)節(jié)一次送至下一位顯示,顯示位置重新回到調(diào)節(jié)處;年月日時(shí)分的調(diào)節(jié)只需要按chose鍵進(jìn)行選擇調(diào)節(jié)的位置,調(diào)節(jié)方法一樣。鍵盤加一減一流程圖如圖12所示開始 光標(biāo)定位分單元 Fen =59 =Fen =0 =Fen =-1? =Fen=60? =Fen -1 =Fen+1 =減小鍵按down增大鍵按下up Y 功能鍵set按下? 寫入分 圖12 鍵盤加一減一操作流程圖 4.4 1602LCD操作說明及流程圖顯示主要是通過從芯片中讀入程序,分別對(duì)秒、分、時(shí)、星期、日、月、年以及鬧鐘進(jìn)行顯示,并且通過鍵盤的
27、操作,對(duì)時(shí)間進(jìn)行加減操作,使時(shí)間更新顯示。進(jìn)入主函數(shù)后,執(zhí)行完1602LCD的初始化函數(shù),然后用write_com(0x80)指令,命令先將數(shù)據(jù)指針定位在第一行第一個(gè)字處,然后寫入第一行要顯示的數(shù)據(jù),在每個(gè)字之間簡(jiǎn)短的延時(shí);在第二行重新定位數(shù)據(jù)指針write_com(0x80+0x40),將數(shù)據(jù)指針定位在第二行,然后再將第二行所要顯示的數(shù)據(jù)寫入,繼而顯示。1602LCD的寫命令操作和寫數(shù)據(jù)操作分別用兩個(gè)獨(dú)立的函數(shù)來完成,函數(shù)內(nèi)部唯一的區(qū)別就是液晶數(shù)據(jù)命令選擇端的電平。寫命令函數(shù)解釋如下:void write_com(uchar com) /向液晶寫入命令 rs=0; /選擇寫命令模式 lcde
28、n=0; /使能端置零 P0=com; /將要寫的命令送到數(shù)據(jù)總線上 delay(3); /延時(shí),以待數(shù)據(jù)穩(wěn)定 lcden=1; /給使能端一個(gè)高脈沖 delay(3); /延時(shí) lcden=0; /將使能端置零,以完成高脈沖寫數(shù)據(jù)函數(shù)操作如下:void write_date(uchar date) /向液晶寫入數(shù)據(jù) rs=1; /選擇寫數(shù)據(jù)模式 lcden=0; /使能端置零 P0=date; /將要寫的數(shù)據(jù)送到數(shù)據(jù)總線上 delay(3); /延時(shí),以待數(shù)據(jù)穩(wěn)定 lcden=1; /給使能端一個(gè)高脈沖 delay(3); /延時(shí) lcden=0; /將使能端置零,以完成高脈沖1602LCD
29、的初始化如下:write_com(0x38); /1602液晶初始化 write_com(0x0c); /開光標(biāo)閃爍:0x0f,關(guān)光標(biāo)閃爍:0x0c write_com(0x06); /寫一個(gè)字符后,地址指針自動(dòng)加1 write_com(0x01); /顯示清0,數(shù)據(jù)指針清01602LCD的流程圖如圖13所示。開始 1602初始化 讀取數(shù)據(jù) 第一行顯示 讀取數(shù)據(jù) 第二行顯示 結(jié)束 圖13 1602LCD的流程圖5 系統(tǒng)的仿真與結(jié)果分析5.1 用Proteus仿真及結(jié)果 Proteus是是英國Lab Center Electronics公司出版的一個(gè)能很好的仿真單片機(jī)的軟件。所以,仿真軟件的選擇
30、就是Proteus。 由于在元件庫的版本比較低,沒有1602LCD這個(gè)元件,所以,采用共陽極和共陰極斷碼器7SEG-MPX-CA和7SEG-MPX-CC代替1602LCD來仿真。所以,此時(shí)總程序見附錄2。 當(dāng)按下set鍵時(shí),系統(tǒng)進(jìn)入另一模式,系統(tǒng)最先進(jìn)入的是時(shí)分秒的調(diào)整,按下chose進(jìn)入具體的某一位(時(shí)或分或秒)的調(diào)整。繼續(xù)按set鍵,進(jìn)入年月日的調(diào)整,按下chose,進(jìn)入某一位(年或月或日)的調(diào)整。如圖14所示為Proteus仿真顯示圖14 用Proteus仿真的結(jié)果顯示時(shí)間和日期 仿真開始時(shí)輸入的是電腦的時(shí)間,如圖15所示: 圖15 仿真開始時(shí)輸入電腦的時(shí)間按下set鍵,調(diào)整時(shí)間的仿真如
31、圖16所示: 圖16 仿真調(diào)整時(shí)間5.2 實(shí)物的制作 由于在制作實(shí)物的過程中用斷碼器7SEG-MPX-CA和7SEG-MPX-CC的引腳比較多,而且顯示為閃動(dòng)的,可能實(shí)物和仿真對(duì)比誤差較大,所以,實(shí)物的制作還是采用1602LCD作為顯示器。如圖17為制作好的日歷時(shí)鐘。 圖17 制作好的日歷時(shí)鐘電路板5.3 誤差分析 在實(shí)際的制作中有很大的影響因素,比如電容的損壞、電源的穩(wěn)定性、晶振的穩(wěn)定時(shí)間或者復(fù)位的可靠性等各方面因素,都可能導(dǎo)致制作實(shí)物和用Proteus仿真出來的結(jié)果會(huì)有一定的差距。并且仿真圖就是一個(gè)模擬用的,和實(shí)際效果是有點(diǎn)差別的,仿真中沒有晶振電路和復(fù)位電路都是可以工作的,焊接是按照原理
32、圖來的而不是仿真.所以,在實(shí)際制作過程中要留一些余量。總結(jié)本設(shè)計(jì)硬件電路較簡(jiǎn)單,所用器件較少,電路中使用AT89C52單片機(jī)、DS1302時(shí)鐘顯示芯片等主要器件,實(shí)現(xiàn)計(jì)時(shí)、校時(shí)的功能。在整個(gè)設(shè)計(jì)過程中,硬件方面主要設(shè)計(jì)了AT89C52單片機(jī)的最小系統(tǒng)、DS1302接口電路;軟件方面借助各個(gè)渠道的資料。系統(tǒng)的調(diào)試主要是通過一塊AT89C52開發(fā)板,再借助于Proteus以及少許自己搭建的外圍電路實(shí)現(xiàn)的;再此過程中,分步調(diào)試時(shí)顯示出了日期、時(shí)間及鬧鐘,集中調(diào)試時(shí)沒有達(dá)到預(yù)期效果。本次設(shè)計(jì)的萬日歷時(shí)鐘具有讀顯示直觀、電路簡(jiǎn)潔、成本低廉等諸多優(yōu)點(diǎn),符合電子儀器儀表的發(fā)展趨勢(shì),具有廣闊的市場(chǎng)前景。在對(duì)芯
33、片的管腳功能和用法有充分的了解后,根據(jù)設(shè)計(jì)要求設(shè)計(jì)硬件電路,包括單片機(jī)控制電路、時(shí)鐘電路、顯示電路、供電電路、鍵盤電路、復(fù)位電路。然后通過軟件編程,實(shí)現(xiàn)了對(duì)年、月、日、時(shí)、分、秒及鬧鐘自動(dòng)調(diào)整,用按鍵進(jìn)行控制,用液晶模塊進(jìn)行顯示。在整個(gè)設(shè)計(jì)過程中學(xué)到了許多處理事情的方法,在電路焊接時(shí)雖然沒什么大問題,但是從焊接過程中也知道了焊接在整個(gè)作品中的重要性,電路的模塊比較多,焊接比較復(fù)雜,不能心急,慢慢來不能急于求成。反而達(dá)到事半功倍的效果。在編寫程序代碼的時(shí)候,因?yàn)樗悸烽_始比較模糊,碰到過許多問題,經(jīng)過靜下心來思考,理清了思路,問題就迎刃而解。在此次設(shè)計(jì)中,知道了做事要有持之以恒的決心和一步一個(gè)腳印
34、的耐心,這樣才能做好一件事情。實(shí)時(shí)日歷時(shí)鐘可以正常顯示時(shí)間并進(jìn)行時(shí)間調(diào)整,基本完成了預(yù)期要實(shí)現(xiàn)的目標(biāo)。 17參考文獻(xiàn):1陳明熒 8051單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)教程M北京:清華大學(xué)出版社,2005:11-13.2蘇平.單片機(jī)的原理與接口技術(shù)M.北京:電子工業(yè)出版社,2006:1-113.3王忠民.微型計(jì)算機(jī)原理M.西安:西安科技大學(xué)出版社,2003:15-55.4何立民單片機(jī)高級(jí)教程M北京:北京航空航天大學(xué)出版社,2003:25-125.5紀(jì)宗南.單片機(jī)外圍器件使用手冊(cè)M.北京:北京航空航天大學(xué)出版社,2004:622-655.6周雪.模擬電子技術(shù)M西安: 西安電子科技大學(xué)出版社,2005:81-9
35、5.7左金生.電子與模擬電子技術(shù)M.北京:電子工業(yè)出版社,2004:105-131.8馬忠梅,籍順心等單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)M北京航空航天大學(xué)出版社, 2001:123-189.9新編單片機(jī)原理與應(yīng)用(第二版).西安電子科技大學(xué)出版社,2007:126-239.10張萌.單片機(jī)應(yīng)用系統(tǒng)開發(fā)綜合實(shí)例M.北京:清華大學(xué)出版社,2007:127-298.11王越明.電子萬年歷的設(shè)計(jì)J.黑龍江科技信息,2004:166-135.致 謝首先,在這里感謝學(xué)校給我們安排這次課程設(shè)計(jì),使我有一個(gè)可以自己動(dòng)手學(xué)習(xí)的機(jī)會(huì)。通過動(dòng)手實(shí)踐,我學(xué)習(xí)到了很多課本以外的知識(shí),體會(huì)到了自己親自動(dòng)手做出成果的喜悅。其次,在
36、這要感謝我們可敬可愛的老師,雖然老師工作繁忙,但還是會(huì)時(shí)常關(guān)注學(xué)生的課設(shè)進(jìn)展,并給出很多寶貴的點(diǎn)撥,幫助我們解決了很多技術(shù)上難題。老實(shí)說,沒有老師的悉心指導(dǎo),就不會(huì)有我今天的作品。最后,我還要感謝這次設(shè)計(jì)中給我?guī)椭耐瑢W(xué),是你們的幫助,我才能順利的完成畢業(yè)設(shè)計(jì)任務(wù)。謝謝你們的幫助!19附錄1#ifndef _DS1302_H_#define _DS1302_H_/*ds1302 內(nèi)部RAM RAM0 1100 000R/W 1讀 0寫 RAM1 1100 001R/W . RAM30 1111 110R/W */sbit clk = P13; /ds1302時(shí)鐘線定義sbit io = P14
37、; /數(shù)據(jù)線sbit rst = P15; /復(fù)位線/秒 分 時(shí) 日 月 年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 open1;/*寫一個(gè)數(shù)據(jù)到對(duì)應(yīng)的地址里*/void write_ds
38、1302(uchar add,uchar dat)rst = 1; /把復(fù)位線拿高for(i=0;i<8;i+) /低位在前clk = 0; /時(shí)鐘線拿低開始寫數(shù)據(jù)io = add & 0x01; add >>= 1; /把地址右移一位clk = 1; /時(shí)鐘線拿高for(i=0;i<8;i+)clk = 0; /時(shí)鐘線拿低開始寫數(shù)據(jù)io = dat & 0x01;/*把要的時(shí)間 年月日 都讀出來*/void read_time()miao = read_ds1302(read_add0);/讀秒fen = read_ds1302(read_add1);
39、/讀分shi = read_ds1302(read_add2);/讀時(shí)ri = read_ds1302(read_add3);/讀日yue = read_ds1302(read_add4);/讀月nian = read_ds1302(read_add5);/讀年 /n_nian = year_moon ;/n_yue = month_moon ;/n_ri = day_moon ;/*把要寫的時(shí)間 年月日 都寫入ds1302里*/void write_time() /把時(shí)間寫進(jìn)去write_ds1302(0x8e,0x00);/打開寫保護(hù)write_ds1302(write_add0,miao
40、);/寫秒write_ds1302(write_add1,fen);/寫分write_ds1302(write_add2,shi);/寫時(shí)write_ds1302(write_add3,ri);/寫日write_ds1302(write_add4,yue);/寫月write_ds1302(write_add6,week);/寫年write_ds1302(0x8e,0x80);/關(guān)閉寫保護(hù)/*把數(shù)據(jù)保存到ds1302 RAM中*0-31*/void write_ds1302ram(uchar add,uchar dat)add <<= 1; /地址是從第二位開始的add &=
41、 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時(shí)間*/void init_ds13
42、02()uchar i;rst = 0;/第一次讀寫數(shù)據(jù)時(shí)要把IO品拿低clk = 0;io = 0;i = read_ds1302ram(30); fen1 = read_ds1302ram(1);shi1 = read_ds1302ram(2);open1 = read_ds1302ram(3);read_time(); /讀時(shí)間if(miao >= 0x60)write_ds1302(0x8e,0x00); /打開寫保護(hù)write_ds1302(write_add0,init_ds0);/允許ds1302工作write_ds1302(0x8e,0x80);/關(guān)寫保護(hù)/*設(shè)置ds13
43、02時(shí)間函數(shù)*/void set_ds1302time(uchar num,uchar *shi,uchar dat) /調(diào)時(shí) if(num = 1) *shi+=0x01;if(*shi & 0x0f) >= 0x0a)*shi = (*shi & 0xf0) + 0x10;if(*shi >= dat)*shi = 0; else if(*shi = 0x00)*shi = dat;if(*shi & 0x0f) = 0x00)*shi = (*shi | 0x0a) - 0x10;*shi -=0x01 ; #endif附錄2#include <
44、reg51.h> /調(diào)用單片機(jī)頭文件#define uchar unsigned char /無符號(hào)字符型 宏定義變量范圍0255#define uint unsigned int /無符號(hào)整型 宏定義變量范圍065535#include "ds1302.h"/數(shù)碼管段選定義 0 1 2 3 4 5 6 7 8 9uchar code smg_du=0xa0,0x75,0x32,0x2a,0x32,0x25,0xb4,0xBa,0x20,0x28, 0x30,0x25,0xe4,0x23,0x64,0x74,0xff; /斷碼/數(shù)碼管位選定義uchar code smg_we=0xfe,0xbf,0xfb,0xef,0xf7,0xdf,0xfd,0x7f;/數(shù)碼管位選定義uchar dis_smg8 = 0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xBa;uchar smg_i = 8; /顯示數(shù)碼管的個(gè)位數(shù)bit flag_200ms ;bit flag_100ms ;bit f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 防火員試題庫(含參考答案)
- 《試說新語-聚沙成塔豐富詞語積累》教學(xué)設(shè)計(jì) 2024-2025學(xué)年統(tǒng)編版高中語文必修上冊(cè)
- 第13課·清朝前中期的鼎盛與危機(jī)·教學(xué)設(shè)計(jì) -2024-2025學(xué)年高一統(tǒng)編版2019必修中外歷史綱要上冊(cè)
- 第六章 《發(fā)展與合作》 教學(xué)設(shè)計(jì) 2024-2025學(xué)年人教版(2024)七年級(jí)地理上冊(cè)
- 2025年黑龍江農(nóng)墾職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫帶答案
- Module 2 My home town and my country 教學(xué)設(shè)計(jì) 2024-2025學(xué)年外研版英語八年級(jí)上冊(cè)
- 2025年湖南高速鐵路職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫帶答案
- 2025年石油鉆采井口裝備合作協(xié)議書
- 內(nèi)蒙古自治區(qū)錫林郭勒盟2023-2024學(xué)年高三上學(xué)期期末考試地理試題(解析版)
- 2025年湖南都市職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫審定版
- 機(jī)器狗:技術(shù)成熟性能優(yōu)越場(chǎng)景剛需放量在即2025
- 《教育強(qiáng)國建設(shè)規(guī)劃綱要(2024-2035年)》解讀-知識(shí)培訓(xùn)
- 《加油站安全管理培訓(xùn)課件》
- 《生態(tài)安全》課件
- 2025年春新人教版一年級(jí)下冊(cè)數(shù)學(xué)全冊(cè)教學(xué)課件
- 1.北京的春節(jié) 練習(xí)題(含答案)
- 抗震支架安裝工程施工方案范文
- GB/T 45071-2024自然保護(hù)地分類分級(jí)
- 普通高中生物學(xué)課程標(biāo)準(zhǔn)-(2024修訂版)
- 農(nóng)業(yè)托管合同范例
- 食品中阿維菌素等55種農(nóng)藥最大殘留限量
評(píng)論
0/150
提交評(píng)論