版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、昆山登云科技職業(yè)學(xué)院畢業(yè)論文編號(hào):論文題目教 學(xué) 系: 專(zhuān)業(yè)班級(jí): 學(xué)生姓名: 指導(dǎo)教師: 2014年 4 月 22 日摘要隨著科技的快速發(fā)展,時(shí)間的流逝,至從觀太陽(yáng)、擺鐘到現(xiàn)在電子鐘,人類(lèi)不斷研究,不斷創(chuàng)新紀(jì)錄。美國(guó)DALLAS公司推出的具有涓細(xì)電流充電能的低功耗實(shí)時(shí)時(shí)鐘電路DS1302。它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),還具有閏年補(bǔ)償?shù)榷喾N功能,而且DS1302的使用壽命長(zhǎng),誤差小。對(duì)于數(shù)字電子萬(wàn)年歷采用直觀的數(shù)字顯示,可以同時(shí)顯示年、月、日、周日、時(shí)、分、秒和溫度等信息,還具有時(shí)間校準(zhǔn)等功能。該電路采用AT89S52單片機(jī)作為核心,功耗小,能在3V的低壓工作,電壓可選用35V
2、電壓供電。 綜上所述此萬(wàn)年歷具有讀取方便、顯示直觀、功能多樣、電路簡(jiǎn)潔、成本低廉等諸多優(yōu)點(diǎn),符合電子儀器儀表的發(fā)展趨勢(shì),具有廣闊的市場(chǎng)前景。本設(shè)計(jì)是基于51系列的單片機(jī)進(jìn)行的電子萬(wàn)年歷設(shè)計(jì),可以顯示年月日時(shí)分秒及周信息,具有可調(diào)整日期和時(shí)間功能。在設(shè)計(jì)的同時(shí)對(duì)單片機(jī)的理論基礎(chǔ)和外圍擴(kuò)展知識(shí)進(jìn)行了比較全面準(zhǔn)備。在硬件與軟件設(shè)計(jì)時(shí),沒(méi)有良好的基礎(chǔ)知識(shí)和實(shí)踐經(jīng)驗(yàn)會(huì)受到很大限制,每項(xiàng)功能實(shí)現(xiàn)時(shí)需要那種硬件,程序該如何編寫(xiě),算法如何實(shí)現(xiàn)等,沒(méi)有一定的基礎(chǔ)就不可能很好的實(shí)現(xiàn)。關(guān)鍵詞:萬(wàn)年歷 時(shí)間 溫度 單片機(jī) 液晶顯示昆山登云科技職業(yè)學(xué)院畢業(yè)論文目 錄1方案論證.31.1單片機(jī)芯片的選擇方案和論證.31.
3、2顯示模塊選擇方案和論證.31.3時(shí)鐘芯片的選擇方案和論證.31.4電路設(shè)計(jì)最終方案決定.42系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn).52.1電路設(shè)計(jì)框圖.52.2系統(tǒng)硬件概述.52.3單片機(jī)主控制模塊的設(shè)計(jì).52.3.1時(shí)鐘電路模塊的設(shè)計(jì). 62.3.2電路原理及說(shuō)明.72.3.3顯示模塊的設(shè)計(jì).83系統(tǒng)的軟件設(shè)計(jì).93.1程序流程框圖.94測(cè)試與結(jié)果分析.114.1硬件測(cè)試.114.2軟件測(cè)試.114.3測(cè)試結(jié)果分析與結(jié)論.114.3.1 測(cè)試結(jié)果分析.114.3.2 測(cè)試結(jié)論.115 proteus軟件仿真.125.1Proteus ISIS簡(jiǎn)介.125.2Proteus運(yùn)行流程.135.3Proteus
4、功能仿真.136課程設(shè)計(jì)總結(jié)與致謝.16參考文獻(xiàn).17附錄一:系統(tǒng)電路圖.18附錄二:系統(tǒng)程序.191 緒論1.1 選題的依據(jù)及意義單片機(jī)應(yīng)用技術(shù)迅速發(fā)展,在我們生活的各個(gè)領(lǐng)域,無(wú)論工業(yè)發(fā)展中還是現(xiàn)實(shí)生活中都離不開(kāi)它,它是集CPU,RAM,ROM,定時(shí),計(jì)數(shù)和多接口于一體的微控制器。它體積小,成本低,功能強(qiáng)大,廣泛應(yīng)用于只能產(chǎn)業(yè)和工業(yè)自動(dòng)化上。51系列單片機(jī)是各種單片機(jī)中最具典型和最有代表性的一種。通過(guò)這次畢業(yè)設(shè)計(jì)可以讓我提升學(xué)習(xí),設(shè)計(jì),開(kāi)發(fā)軟硬件的能力。電子萬(wàn)年歷的設(shè)計(jì)就是建立在單片機(jī)的基礎(chǔ)上,它是應(yīng)用非常廣泛的日常計(jì)時(shí)工具,而且顯示清晰直觀,走時(shí)準(zhǔn)確,可以進(jìn)行夜視。數(shù)字顯示的日歷鐘已經(jīng)越來(lái)
5、越流行,特別是在家庭居室,辦公室,車(chē)站和廣場(chǎng)等使用,壁掛式LED數(shù)碼顯示的日歷鐘逐漸受到人們的歡迎。1隨著科學(xué)技術(shù)的快速發(fā)展,時(shí)間的流逝,從擺鐘到現(xiàn)在的電子鐘,人類(lèi)不斷的研究,不斷創(chuàng)新紀(jì)錄。美國(guó)DALLAS公司推出的具有涓流電流充電能的低功耗實(shí)時(shí)時(shí)鐘電路DS1302.它可以對(duì)年,月,日,周,時(shí),分,秒進(jìn)行計(jì)時(shí),還具有閏年補(bǔ)償?shù)榷喾N功能,而且DS1302的使用壽命長(zhǎng),誤差小。對(duì)于數(shù)字電子萬(wàn)年歷采用直觀的數(shù)字顯示,可以同時(shí)顯示年,月,日,周,時(shí),分,秒和溫度等信息,還具有時(shí)間校準(zhǔn)等功能。該電路采用AT89C52單片機(jī)作為核心,功能小,能在3V的低壓工作,電壓可選用35V電壓供電。2綜上所述此萬(wàn)年歷
6、具有讀取方便,顯示直觀,功能多樣,電路簡(jiǎn)潔,成本低廉等諸多優(yōu)點(diǎn),符合電子儀器儀表的發(fā)展趨勢(shì),具有管擴(kuò)大市場(chǎng)前景,值得我們進(jìn)入深入的研究和了解。意義: (1)通過(guò)設(shè)計(jì)提高對(duì)單片機(jī)的認(rèn)識(shí),進(jìn)一步熟悉和掌握單片機(jī)的結(jié)構(gòu)及工作原理。(2)通過(guò)設(shè)計(jì)、制作提高焊接、布局、電路檢查能力;(3)通過(guò)實(shí)際程序設(shè)計(jì)和調(diào)試,逐步掌握模塊化程序設(shè)計(jì)方法和調(diào)試技術(shù),提高軟件設(shè)計(jì)、調(diào)試能力;(4)通過(guò)完成一個(gè)實(shí)際電子產(chǎn)品從電路設(shè)計(jì)、程序開(kāi)發(fā)、系統(tǒng)調(diào)試的完整過(guò)程,熟悉以單片機(jī)核心的應(yīng)用系統(tǒng)開(kāi)發(fā)的全過(guò)程,掌握硬件電路設(shè)計(jì)的基本方法和技術(shù),掌握相關(guān)電路參數(shù)的計(jì)算方法。通過(guò)此畢業(yè)課題的設(shè)計(jì),加深對(duì)理論知識(shí)的理解,學(xué)會(huì)將學(xué)習(xí)的理論
7、知識(shí)在實(shí)際中運(yùn)用,培養(yǎng)動(dòng)手能力和解決實(shí)際問(wèn)題的能力,為今后從事相關(guān)工作打下基礎(chǔ)。1.2 國(guó)內(nèi)外研究現(xiàn)狀及發(fā)展趨勢(shì)隨著科學(xué)技術(shù)的發(fā)展,以前的年歷已發(fā)展成現(xiàn)在的電子萬(wàn)年歷,他一開(kāi)始是采用數(shù)字電路實(shí)現(xiàn)的,電路復(fù)雜,精確度差,每天都需要調(diào)時(shí),由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得它的電路越來(lái)越簡(jiǎn)單,精確度越來(lái)越高,現(xiàn)在的電子萬(wàn)年歷一般都是集成芯片和軟件結(jié)合實(shí)現(xiàn),電路簡(jiǎn)單,制作方法簡(jiǎn)便,給人們生產(chǎn)生活帶來(lái)了極大的便利,它已成為我們生活中不可缺少的家居用品。3二十一世紀(jì)的今天,最具有代表性的計(jì)時(shí)產(chǎn)品就是電子萬(wàn)年歷,它是近代世界鐘表業(yè)界的第三次革命。前兩次革命是擺和擺輪游絲的發(fā)明,以及石英晶
8、體振蕩器的應(yīng)用,第三次革命就是單片機(jī)數(shù)碼計(jì)時(shí)技術(shù)的應(yīng)用(電子萬(wàn)年歷),使得從原來(lái)傳統(tǒng)指針計(jì)時(shí)的方式發(fā)展為人們?nèi)粘8鼮槭煜さ囊构鈹?shù)字顯示方式,直觀明了,并增加了全自動(dòng)日期,星期,溫度以及其他日常附屬信息的顯示功能,它更符合消費(fèi)者的生活需求!因此,電子萬(wàn)年歷的出現(xiàn)帶來(lái)了鐘表計(jì)時(shí)業(yè)界跨越性的進(jìn)步。 電子萬(wàn)年歷的發(fā)展趨勢(shì)將會(huì)朝著功能多,讀取操作簡(jiǎn)單,顯示更加直觀,電路更加簡(jiǎn)潔,成本越來(lái)越低,滿(mǎn)足大部分人的要求。隨著國(guó)內(nèi)超大規(guī)模集成電路的出現(xiàn),微處理器及其外圍芯片有了迅速的發(fā)展。集成技術(shù)的最新發(fā)展之一就是將CPU和外圍芯片,如程序存儲(chǔ)器,數(shù)據(jù)存儲(chǔ)器,并行,串行I/O口,定時(shí)/計(jì)數(shù)器,中斷控制器及其他控制
9、器件集成在一個(gè)芯片中,支撐單片計(jì)算機(jī)。而近年來(lái)推出的一些高檔單片機(jī)還包括有許多特殊功能的單元,如A/D,D/A轉(zhuǎn)換器,調(diào)制解調(diào)器,鎖相環(huán),浮點(diǎn)運(yùn)算單元等。因此只要外加一些擴(kuò)展電路及必要的通道接口就可以構(gòu)成各種計(jì)算機(jī)應(yīng)用系統(tǒng),如數(shù)據(jù)采集系統(tǒng),自動(dòng)測(cè)試系統(tǒng)等。41.3 本課題研究?jī)?nèi)容設(shè)計(jì)一個(gè)基于單片機(jī)多功能的電子萬(wàn)年歷。單片機(jī)最為本設(shè)計(jì)的核心,實(shí)現(xiàn)時(shí)鐘日歷的顯示:用1602顯示月、日、星期、時(shí)、分、秒,用DS1302作為該設(shè)計(jì)的實(shí)時(shí)時(shí)鐘芯片。2 系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn)AT89S52主控制模 塊2.1 電路設(shè)計(jì)框圖LCD液晶顯示屏顯示模塊鍵盤(pán)模塊 DS1302時(shí)鐘模塊圖1系統(tǒng)原理圖2.2 系統(tǒng)硬件概述
10、本電路是由AT89S52單片機(jī)為控制核心,具有在線(xiàn)編程功能,低功耗,能在3V超低壓工作;時(shí)鐘電路由DS1302提供,它是一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V5.5V。采用三線(xiàn)接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31*8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。可產(chǎn)生年、月、日、周日、時(shí)、分、秒,具有使用壽命長(zhǎng),精度高和低功耗等特點(diǎn),同時(shí)具有掉電自動(dòng)保存功能;溫度的采集由DS18B20構(gòu)成;顯示部份由LCD液晶顯示屏顯示。2.3 單片機(jī)主控制模塊
11、的設(shè)計(jì) AT89S52單片機(jī)為40引腳雙列直插芯片,有四個(gè)I/O口P0,P1,P2,P3, MCS-51單片機(jī)共有4個(gè)8位的I/O口(P0、P1、P2、P3),每一條I/O線(xiàn)都能獨(dú)立地作輸出或輸入。單片機(jī)的最小系統(tǒng)如下圖所示,18引腳和19引腳接時(shí)鐘電路,XTAL1接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,XTAL2接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出。第9引腳為復(fù)位輸入端,接上電容,電阻及開(kāi)關(guān)后夠上電復(fù)位電路,20引腳為接地端,40引腳為電源端。 如圖2 所示: 圖2 主控制系統(tǒng) 2.3.1 時(shí)鐘電路模塊的設(shè)計(jì)圖.3示出DS1302的引腳排列,其
12、中Vcc1為后備電源,Vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。X1和X2是振蕩源,外接32.KHz晶振。RST是復(fù)位/片選線(xiàn),通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過(guò)程中RSTS置
13、為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電動(dòng)行時(shí),在Vcc大于等于2.5V之前,RST必須保持低電平。中有在SCLK 為低電平時(shí),才能將RST置為高電平,I/O為串行數(shù)據(jù)輸入端(雙向)。SCLK始終是輸入端。 圖3 DS1302的引腳圖2.3.2 電路原理及說(shuō)明(1) 時(shí)鐘芯片DS1302的工作原理: DS1302在每次進(jìn)行讀、寫(xiě)程序前都必須初始化,先把SCLK端置 “0”,接著把RST端置“1”,最后才給予SCLK脈沖;讀/寫(xiě)時(shí)序如下圖4所示。DS1302的控制字的位7必須置1,若為0則不能把對(duì)DS1302進(jìn)行讀寫(xiě)數(shù)據(jù)。對(duì)于位6,若對(duì)程序進(jìn)行讀/寫(xiě)時(shí)RAM=1,對(duì)時(shí)間進(jìn)行讀/
14、寫(xiě)時(shí),CK=0,位1至位5指操作單元的地址。位0是讀/寫(xiě)操作位,進(jìn)行讀操作時(shí),該位為1;該位為0則表示進(jìn)行的是寫(xiě)操作??刂谱止?jié)總是從最低位開(kāi)始輸入/輸出的。表.2為DS1302的日歷、時(shí)間寄存器內(nèi)容:“CH”是時(shí)鐘暫停標(biāo)志位,當(dāng)該位為1時(shí),時(shí)鐘振蕩器停止,DS1302處于低功耗狀態(tài);當(dāng)該位為0時(shí),時(shí)鐘開(kāi)始運(yùn)行?!癢P”是寫(xiě)保護(hù)位,在任何的對(duì)時(shí)鐘和RAM的寫(xiě)操作之前,WP必須為0。當(dāng)“WP”為1時(shí),寫(xiě)保護(hù)位防止對(duì)任一寄存器的寫(xiě)操作。(2) DS1302的控制字節(jié):DS1302控制字節(jié)的高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫(xiě)入DS1302中,位6如果0,則表示存取日歷時(shí)鐘數(shù)據(jù),為
15、1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫(xiě)操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開(kāi)始輸出(3) 數(shù)據(jù)輸入輸出(I/O)在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫(xiě)入DS1302,數(shù)據(jù)輸入從低位即位0開(kāi)始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。(4) DS1302的寄存器DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式。此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等
16、。時(shí)鐘突發(fā)寄存器可一次性順序讀寫(xiě)除充電寄存器外的所有寄存器內(nèi)容。 DS1302與RAM相關(guān)的寄存器分為兩類(lèi):一類(lèi)是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為C0HFDH,其中奇數(shù)為讀操作,偶數(shù)為寫(xiě)操作;另一類(lèi)為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫(xiě)所有的RAM的31個(gè)字節(jié),命令控制字為FEH(寫(xiě))、FFH(讀)。 2.3.3 顯示模塊的設(shè)計(jì)如圖.4為L(zhǎng)CD顯示模塊,和最小系統(tǒng)上的連線(xiàn)一樣,無(wú)需修改。圖4 LCD液晶顯示屏顯示模塊 3 系統(tǒng)的軟件設(shè)計(jì) 3.1 程序流程框圖開(kāi)始初始化 讀日期、時(shí)間 寫(xiě)日期、時(shí)間 顯示子程序 時(shí)間修改子程序 日期修改子程序顯示結(jié)果
17、返回 開(kāi)關(guān)控制子程序 圖5主程序流程圖4 測(cè)試與結(jié)果分析4.1 硬件測(cè)試電子萬(wàn)年歷的電路系統(tǒng)較大,對(duì)于焊接方面更是不可輕視,龐大的電路系統(tǒng)中只要出于一處的錯(cuò)誤,則會(huì)對(duì)檢測(cè)造成很大的不便,而且電路的交線(xiàn)較多,對(duì)于各種鋒利的引腳要注意處理,否則會(huì)刺被帶有包皮的導(dǎo)線(xiàn),則會(huì)對(duì)電路造成短路現(xiàn)象。在本成電子萬(wàn)年歷的設(shè)計(jì)調(diào)試中遇到了很多的問(wèn)題?;叵脒@些問(wèn)題只要認(rèn)真多思考都是可以避免的,以下為主要的問(wèn)題:(1)LCD液晶顯示屏顯示部分已經(jīng)連在最小系統(tǒng)上,節(jié)省了不少時(shí)間和精力。(2)對(duì)萬(wàn)年歷修改時(shí)間或日期時(shí),有時(shí)LCD液晶顯示屏被屏蔽掉,造成不亮現(xiàn)象。解決:根據(jù)儀器的測(cè)試,發(fā)現(xiàn)電路的驅(qū)動(dòng)能力不足,最后在DS13
18、02時(shí)鐘芯片的/CS、SCLK、RET端接入5.1K的上拉電阻后,電路的驅(qū)動(dòng)能力才能滿(mǎn)足,即可解決不亮現(xiàn)象。4.2 軟件測(cè)試電子成年歷是多功能的數(shù)字型,可以看當(dāng)前日期,時(shí)間。電子成年歷功能很多,所以對(duì)于它的程序也較為復(fù)雜,所以在編寫(xiě)程序和調(diào)試時(shí)出現(xiàn)了相對(duì)較多的問(wèn)題。最后經(jīng)過(guò)多次的模塊子程序的修改,一步一步的完成,最終解決了軟件。在軟件的調(diào)試過(guò)程中遇到的主要問(wèn)題是: 燒入程序后,LCD液晶顯示屏顯示亮度不好。 解決:一遍旋轉(zhuǎn)10K歐的滑動(dòng)變阻器,一遍觀看LCD顯示屏,知道看到合適的亮度為止。4.3 測(cè)試結(jié)果分析與結(jié)論4.3.1 測(cè)試結(jié)果分析 1.在測(cè)試中遇到LCD液晶顯示屏為不顯示時(shí),首先使用試
19、測(cè)儀對(duì)電路進(jìn)行測(cè)試,觀察是否存在漏焊,虛焊,或者元件損壞,滑動(dòng)變阻器器沒(méi)有調(diào)好:查看燒寫(xiě)的程序是否正確無(wú)誤,對(duì)程序進(jìn)行認(rèn)真修改。4.3.2 測(cè)試結(jié)論經(jīng)過(guò)多次的反復(fù)測(cè)試與分析,可以對(duì)電路的原理及功能更加熟悉,同時(shí)提高了設(shè)計(jì)能力與及對(duì)電路的分析能力。同時(shí)在軟件的編程方面得到更到的提高,對(duì)編程能力得到加強(qiáng),同時(shí)對(duì)所學(xué)的知識(shí)得到很大的提高與鞏固。 5 Proteus軟件仿真5.1Proteus ISIS簡(jiǎn)介Proteus ISIS是英國(guó)Labcenter公司開(kāi)發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路。該軟件的特點(diǎn)是:(1)全部滿(mǎn)足
20、我們提出的單片機(jī)軟件仿真系統(tǒng)的標(biāo)準(zhǔn),并在同類(lèi)產(chǎn)品中具有明顯的優(yōu)勢(shì)。(2)具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、I2 C調(diào)試器、SPI調(diào)試器、鍵盤(pán)和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。(3)目前支持的單片機(jī)類(lèi)型有:ARM7系列、68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。(4)支持大量的存儲(chǔ)器和外圍芯片??傊?,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大 ,可仿真ARM、51、AVR、PIC。Prot
21、eus啟動(dòng)畫(huà)面:圖7 Proteus啟動(dòng)畫(huà)面5.2Proteus運(yùn)行流程Proteus ISIS的工作界面是一種標(biāo)準(zhǔn)的Windows界面,如圖所示。包括:標(biāo)題欄、主菜單、標(biāo)準(zhǔn)工具欄、繪圖工具欄、狀態(tài)欄、對(duì)象選擇按鈕、預(yù)覽對(duì)象方位控制按鈕、仿真進(jìn)程控制按鈕、預(yù)覽窗口、對(duì)象選擇器窗口、圖形編輯窗口。運(yùn)行Proteus程序后,進(jìn)入軟件的主界面。通過(guò)左側(cè)工具欄中的P(從庫(kù)中選擇元件命令)命令,在Pick Devices 左側(cè)窗口中選擇所需元件的關(guān)鍵字,然后放置元件并調(diào)整方向和位置以及參數(shù)設(shè)置,最后進(jìn)行連線(xiàn)。Proteus ISIS的工作界面:圖8 Proteus ISIS的工作界面5.3Proteus
22、功能仿真Proteus仿真效果最后載入hex文件后可以進(jìn)行模擬仿真,可以全速運(yùn)行也可以單步調(diào)試運(yùn)行。圖9運(yùn)行按鍵上電后后LED顯示: 圖10調(diào)節(jié)秒鐘:圖11調(diào)節(jié)分鐘:圖12調(diào)節(jié)時(shí)鐘:圖13調(diào)節(jié)星期:圖14調(diào)節(jié)日期:圖15調(diào)節(jié)月份:圖16調(diào)節(jié)年份:圖17點(diǎn)擊確定鍵顯示:圖18按鍵功能自上而下依次為:選擇修改項(xiàng)鍵、增大鍵、減小鍵、確定鍵。圖196課程設(shè)計(jì)總結(jié)制作這次課程設(shè)計(jì)一切都是從零開(kāi)始,從最簡(jiǎn)單的畫(huà)流程圖起步,這次課程設(shè)計(jì)可以圓滿(mǎn)完成,跟單片機(jī)課程里面的課外作業(yè)是離不開(kāi)的。這次課程設(shè)計(jì)從開(kāi)始到制作成功前后超過(guò)了一個(gè)星期。當(dāng)電子萬(wàn)年歷可以成功實(shí)現(xiàn)時(shí),那種激動(dòng)和喜悅只有自己可以體會(huì)。在整個(gè)設(shè)計(jì)過(guò)程
23、中,充分發(fā)揮人的主觀能動(dòng)性,自主學(xué)習(xí),學(xué)到了許多沒(méi)學(xué)到的知識(shí)。較好的完成了設(shè)計(jì),達(dá)到了預(yù)期的目的,完了最初的設(shè)想。對(duì)電路的設(shè)計(jì)、布局要先有一個(gè)好的構(gòu)思,才顯得電路板美觀、大方。程序編寫(xiě)中,由于思路不清晰,開(kāi)始時(shí)遇到了很多的問(wèn)題,經(jīng)過(guò)靜下心來(lái)思考,和同學(xué)討論,理清了思路,反而得心應(yīng)手。在此次設(shè)計(jì)中,知道了做凡事要有一顆平常的心,不要想著走捷徑,一步一腳印。也練就了我的耐心,做什么事都在有耐心。此次課程設(shè)計(jì)中學(xué)到了很多很多東西,這是最重要的??傊?,此次課設(shè)使我的能力得到了全方位的提高,使得我的操作能力和專(zhuān)業(yè)技能都有了很大的提高。參考文獻(xiàn)1劉勇 編 數(shù)字電路 電子工業(yè)出版社 20042陳正振 編 電
24、子電路設(shè)計(jì)與制作 廣西交通職業(yè)技術(shù)學(xué)院信息工程系 20073楊子文 編 單片機(jī)原理及應(yīng)用 西安電子科技大學(xué)出版社 20064王法能 編 單片機(jī)原理及應(yīng)用 科學(xué)出版社 2004附錄一:系統(tǒng)電路圖附錄二:系統(tǒng)程序#include <REG51.H>#include <intrins.h>/#include "LCD1602.h"/#include "DS1302.h"#define uint unsigned int#define uchar unsigned charsbit DS1302_CLK = P17; /實(shí)時(shí)時(shí)鐘時(shí)鐘線(xiàn)引腳
25、 sbit DS1302_IO = P16; /實(shí)時(shí)時(shí)鐘數(shù)據(jù)線(xiàn)引腳 sbit DS1302_RST = P15; /實(shí)時(shí)時(shí)鐘復(fù)位線(xiàn)引腳sbit ACC0 = ACC0;sbit ACC7 = ACC7;char hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year; /秒,分,時(shí)到日,月,年位閃的計(jì)數(shù)sbit Set = P20; /模式切換鍵sbit Up = P21; /加法按鈕sbit Down = P22; /減法按鈕sbit out = P23; /立刻跳出調(diào)整模式按鈕char done,count,t
26、emp,flag,up_flag,down_flag;uchar TempBuffer5,week_value2;void show_time(); /液晶顯示程序/*1602液晶顯示部分子程序*/Port Definitions*sbit LcdRs= P25;sbit LcdRw= P26;sbit LcdEn = P27;sfr DBPort = 0x80;/P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.數(shù)據(jù)端口/內(nèi)部等待函數(shù)*unsigned char LCD_Wait(void)LcdRs=0;LcdRw=1;_nop_();LcdEn=1;_nop_();LcdE
27、n=0;return DBPort;/向LCD寫(xiě)入命令或數(shù)據(jù)*#define LCD_COMMAND0 / Command#define LCD_DATA1 / Data#define LCD_CLEAR_SCREEN0x01 / 清屏#define LCD_HOMING 0x02 / 光標(biāo)返回原點(diǎn)void LCD_Write(bit style, unsigned char input)LcdEn=0;LcdRs=style;LcdRw=0;_nop_();DBPort=input;_nop_();/注意順序LcdEn=1;_nop_();/注意順序LcdEn=0;_nop_();LCD_W
28、ait();/設(shè)置顯示模式*#define LCD_SHOW0x04 /顯示開(kāi)#define LCD_HIDE0x00 /顯示關(guān) #define LCD_CURSOR0x02 /顯示光標(biāo)#define LCD_NO_CURSOR0x00 /無(wú)光標(biāo) #define LCD_FLASH0x01 /光標(biāo)閃動(dòng)#define LCD_NO_FLASH0x00 /光標(biāo)不閃動(dòng)void LCD_SetDisplay(unsigned char DisplayMode)LCD_Write(LCD_COMMAND, 0x08|DisplayMode);/設(shè)置輸入模式*#define LCD_AC_UP0x02#d
29、efine LCD_AC_DOWN0x00 / default#define LCD_MOVE0x01 / 畫(huà)面可平移#define LCD_NO_MOVE0x00 /defaultvoid LCD_SetInput(unsigned char InputMode)LCD_Write(LCD_COMMAND, 0x04|InputMode);/初始化LCD*void LCD_Initial()LcdEn=0;LCD_Write(LCD_COMMAND,0x38); /8位數(shù)據(jù)端口,2行顯示,5*7點(diǎn)陣LCD_Write(LCD_COMMAND,0x38);LCD_SetDisplay(LCD_
30、SHOW|LCD_NO_CURSOR); /開(kāi)啟顯示, 無(wú)光標(biāo)LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); /清屏LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); /AC遞增, 畫(huà)面不動(dòng)/液晶字符輸入的位置*void GotoXY(unsigned char x, unsigned char y)if(y=0)LCD_Write(LCD_COMMAND,0x80|x);if(y=1)LCD_Write(LCD_COMMAND,0x80|(x-0x40);/將字符輸出到液晶顯示void Print(unsigned char *str)
31、while(*str!='0')LCD_Write(LCD_DATA,*str);str+;/*DS1302時(shí)鐘部分子程序*/typedef struct _SYSTEMTIME_unsigned char Second;unsigned char Minute;unsigned char Hour;unsigned char Week;unsigned char Day;unsigned char Month;unsigned char Year;unsigned char DateString11;unsigned char TimeString9;SYSTEMTIME;/
32、定義的時(shí)間類(lèi)型SYSTEMTIME CurrentTime;#define AM(X)X#define PM(X)(X+12) / 轉(zhuǎn)成24小時(shí)制#define DS1302_SECOND0x80 /時(shí)鐘芯片的寄存器位置,存放時(shí)間#define DS1302_MINUTE0x82#define DS1302_HOUR0x84 #define DS1302_WEEK0x8A#define DS1302_DAY0x86#define DS1302_MONTH0x88#define DS1302_YEAR0x8C void DS1302InputByte(unsigned char d) /實(shí)時(shí)時(shí)鐘
33、寫(xiě)入一字節(jié)(內(nèi)部函數(shù)) unsigned char i;ACC = d; for(i=8; i>0; i-) DS1302_IO = ACC0; /相當(dāng)于匯編中的 RRC DS1302_CLK = 1; DS1302_CLK = 0; ACC = ACC >> 1; unsigned char DS1302OutputByte(void) /實(shí)時(shí)時(shí)鐘讀取一字節(jié)(內(nèi)部函數(shù)) unsigned char i; for(i=8; i>0; i-) ACC = ACC >>1; /相當(dāng)于匯編中的 RRC ACC7 = DS1302_IO; DS1302_CLK =
34、1;DS1302_CLK = 0; return(ACC); void Write1302(unsigned char ucAddr, unsigned char ucDa)/ucAddr: DS1302地址, ucData: 要寫(xiě)的數(shù)據(jù) DS1302_RST = 0; DS1302_CLK = 0; DS1302_RST = 1; DS1302InputByte(ucAddr); / 地址,命令 DS1302InputByte(ucDa); / 寫(xiě)1Byte數(shù)據(jù) DS1302_CLK = 1; DS1302_RST = 0; unsigned char Read1302(unsigned c
35、har ucAddr)/讀取DS1302某地址的數(shù)據(jù) unsigned char ucData; DS1302_RST = 0; DS1302_CLK = 0; DS1302_RST = 1; DS1302InputByte(ucAddr|0x01); / 地址,命令 ucData = DS1302OutputByte(); / 讀1Byte數(shù)據(jù) DS1302_CLK = 1; DS1302_RST = 0; return(ucData);void DS1302_GetTime(SYSTEMTIME *Time) /獲取時(shí)鐘芯片的時(shí)鐘數(shù)據(jù)到自定義的結(jié)構(gòu)型數(shù)組unsigned char Read
36、Value;ReadValue = Read1302(DS1302_SECOND);Time->Second = (ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_MINUTE);Time->Minute = (ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_HOUR);Time->Hour = (ReadValue&0x70)&g
37、t;>4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_DAY);Time->Day = (ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_WEEK);Time->Week = (ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_MONTH);Time->Month = (
38、ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_YEAR);Time->Year = (ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);void DateToStr(SYSTEMTIME *Time) /將時(shí)間年,月,日,星期數(shù)據(jù)轉(zhuǎn)換成液晶顯示字符串,放到數(shù)組里DateString if(hide_year<2) /這里的if,else語(yǔ)句都是判斷位閃爍,<2顯示數(shù)據(jù),>2就不顯示,輸出字
39、符串為 2007/07/22 Time->DateString0 = '2' Time->DateString1 = '0' Time->DateString2 = Time->Year/10 + '0' Time->DateString3 = Time->Year%10 + '0' else Time->DateString0 = ' ' Time->DateString1 = ' ' Time->DateString2 = '
40、9; Time->DateString3 = ' 'Time->DateString4 = '/'if(hide_month<2)Time->DateString5 = Time->Month/10 + '0' Time->DateString6 = Time->Month%10 + '0' else Time->DateString5 = ' ' Time->DateString6 = ' 'Time->DateString7 =
41、9;/'if(hide_day<2)Time->DateString8 = Time->Day/10 + '0' Time->DateString9 = Time->Day%10 + '0' elseTime->DateString8 = ' 'Time->DateString9 = ' ' if(hide_week<2) week_value0 = Time->Week%10 + '0' /星期的數(shù)據(jù)另外放到 week_value數(shù)組里,跟年,月,日的
42、分開(kāi)存放,因?yàn)榈纫幌乱谧詈箫@示 else week_value0 = ' ' week_value1 = '0'Time->DateString10 = '0' /字符串末尾加 '0' ,判斷結(jié)束字符void TimeToStr(SYSTEMTIME *Time) /將時(shí),分,秒數(shù)據(jù)轉(zhuǎn)換成液晶顯示字符放到數(shù)組 TimeString; if(hide_hour<2) Time->TimeString0 = Time->Hour/10 + '0' Time->TimeString1 =
43、Time->Hour%10 + '0' else Time->TimeString0 = ' 'Time->TimeString1 = ' 'Time->TimeString2 = ':'if(hide_min<2) Time->TimeString3 = Time->Minute/10 + '0' Time->TimeString4 = Time->Minute%10 + '0' else Time->TimeString3 = '
44、; 'Time->TimeString4 = ' ' Time->TimeString5 = ':' if(hide_sec<2) Time->TimeString6 = Time->Second/10 + '0' Time->TimeString7 = Time->Second%10 + '0' elseTime->TimeString6 = ' 'Time->TimeString7 = ' ' Time->DateString8
45、 = '0'void Initial_DS1302(void) /時(shí)鐘芯片初始化 unsigned char Second=Read1302(DS1302_SECOND);if(Second&0x80) /判斷時(shí)鐘芯片是否關(guān)閉 Write1302(0x8e,0x00); /寫(xiě)入允許Write1302(0x8c,0x07); /以下寫(xiě)入初始化時(shí)間 日期:07/07/25.星期: 3. 時(shí)間: 23:59:55Write1302(0x88,0x07);Write1302(0x86,0x25);Write1302(0x8a,0x07);Write1302(0x84,0x23)
46、;Write1302(0x82,0x59);Write1302(0x80,0x55);Write1302(0x8e,0x80); /禁止寫(xiě)入void Delay1ms(unsigned int count)unsigned int i,j;for(i=0;i<count;i+)for(j=0;j<120;j+);/*延時(shí)子程序*/void mdelay(uint delay)uint i;for(;delay>0;delay-)for(i=0;i<62;i+) /1ms延時(shí).;void outkey() /跳出調(diào)整模式,返回默認(rèn)顯示 uchar Second;if(out=0) mdelay(8); count=0;hide_sec=0,hide_min=0,hide
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋貼皮維修工人和工頭的合同(2篇)
- 二零二五年度男方房產(chǎn)贈(zèng)與女方及子女的財(cái)產(chǎn)贈(zèng)與合同14篇
- 二零二五年度離婚后子女撫養(yǎng)費(fèi)及探望權(quán)執(zhí)行合同4篇
- 2025年度智能農(nóng)貿(mào)場(chǎng)裝修升級(jí)合同4篇
- 二零二五年度農(nóng)藥行業(yè)供應(yīng)鏈金融服務(wù)合同4篇
- 二零二五版模具維修改型及知識(shí)產(chǎn)權(quán)保護(hù)合同3篇
- 二零二五版金融控股公司首席風(fēng)險(xiǎn)官(CRO)合同3篇
- 2025年度寧波高端住宅項(xiàng)目購(gòu)房合同范本4篇
- 2025年度特色民宿搭棚建設(shè)合同4篇
- 2025年度外墻涂料專(zhuān)業(yè)承包及售后服務(wù)合同4篇
- 長(zhǎng)亭送別完整版本
- 2024年英語(yǔ)高考全國(guó)各地完形填空試題及解析
- 智能養(yǎng)老院視頻監(jiān)控技術(shù)方案
- 你比我猜題庫(kù)課件
- 無(wú)人駕駛航空器安全操作理論復(fù)習(xí)測(cè)試附答案
- 建筑工地春節(jié)留守人員安全技術(shù)交底
- 默納克-NICE1000技術(shù)交流-V1.0
- 蝴蝶蘭的簡(jiǎn)介
- 老年人心理健康量表(含評(píng)分)
- 《小兒靜脈輸液速度》課件
- 營(yíng)銷(xiāo)人員薪酬標(biāo)準(zhǔn)及績(jī)效考核辦法
評(píng)論
0/150
提交評(píng)論