單片機課程設計之多功能電子萬年歷的設計_第1頁
單片機課程設計之多功能電子萬年歷的設計_第2頁
單片機課程設計之多功能電子萬年歷的設計_第3頁
單片機課程設計之多功能電子萬年歷的設計_第4頁
單片機課程設計之多功能電子萬年歷的設計_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

單片機應用系統(tǒng)設計課題:多功能電子萬年歷的設計姓名:班級:學號:指導老師:日期:一、緒論隨著科技的快速發(fā)展,時間的流逝,至從觀太陽、擺鐘到現(xiàn)在電子鐘,人類不斷研究,不斷創(chuàng)新紀錄。美國DALLAS公司推出的具有涓細電流充電能的低功耗實時時鐘電路DS1302。它可以對年、月、日、周日、時、分、秒進行計時,還具有閏年補償?shù)榷喾N功能,而且DS1302的使用壽命長,誤差小。對于數(shù)字電子萬年歷采用直觀的數(shù)字顯示,可以同時顯示年、月、日、周日、時、分、秒和溫度等信息,還具有時間校準等功能。該電路采用AT89S51單片機作為核心,功耗小,能在3V的低壓工作,電壓可選用3~5V電壓供電。綜上所述此萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。二、系統(tǒng)總體方案我選用的是單片機(8051)來實現(xiàn)電子萬年歷的功能。共具備兩個功能:(1)顯示年月日及分秒信息(2)具有可調(diào)整日期和時間功能。該電子萬年歷能夠成功實現(xiàn)時鐘運行,調(diào)整功能,且精確度經(jīng)調(diào)試一天的誤差在2S內(nèi)。1微處理器本系統(tǒng)采用的就是51系列的AT89C51單片機進行的萬年歷設計。由于51系列的上下兼容性,51核的內(nèi)部功能大體一致。下圖為51系列單片機的管腳圖。AT89C51管腳圖VCC:供電電壓。

GND:接地。

P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。

P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。

P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。P3口可以為閃爍編程和編程校驗接收一些控制信號。

RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:地址鎖存允許/編程脈沖輸入端。

PSEN:外部程序存儲器的選通信號。

EA/VPP:尋址外部ROM控制端/編程電源輸入端。

XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。

XTAL2:來自反向振蕩器的輸出。2輸出LED顯示功能簡介在單片機應用系統(tǒng)中常用的顯示器有發(fā)光二極管數(shù)碼顯示器LED和液晶顯示器LCD。LED顯示器具有耗電少、成本低廉、配置簡單靈活,抗干擾性強等優(yōu)點,但顯示內(nèi)容有限,且不能顯示圖形,因而其靈活性受到限制;LCD顯示了具有LED特點外還能顯示圖形,但其驅(qū)動比較復雜。本設計的萬年歷輸出部分采用LED3按鍵電路由于我設計的是電子萬年歷,在設計過程中我一共采用了4個按鍵,盡量在小的空間里實現(xiàn)最多的功能。其中MODE鍵是年月日與時間顯示切換鍵,按下一次就能夠更換一次顯示位。在調(diào)整顯示環(huán)境下UP和DONW鍵是顯示調(diào)整位的的加1減1鍵,F(xiàn)UNCTION鍵實現(xiàn)清零,并提高萬年歷顯示的精確性。按鍵電路如圖所示4時鐘芯片DS1302的工作原理:DS1302在每次進行讀、寫程序前都必須初始化,先把SCLK端置“0”,接著把RST端置“1”,最后才給予SCLK脈沖;讀/寫時序如下圖4所示。圖5為DS1302的控制字,此控制字的位7必須置1,若為0則不能把對DS1302進行讀寫數(shù)據(jù)。對于位6,若對程序進行讀/寫時RAM=1,對時間進行讀/寫時,CK=0。位1至位5指操作單元的地址。位0是讀/寫操作位,進行讀操作時,該位為1;該位為0則表示進行的是寫操作??刂谱止?jié)總是從最低位開始輸入/輸出的。表6為DS1302的日歷、時間寄存器內(nèi)容:“CH”是時鐘暫停標志位,當該位為1時,時鐘振蕩器停止,DS1302處于低功耗狀態(tài);當該位為0時,時鐘開始運行?!癢P”是寫保護位,在任何的對時鐘和RAM的寫操作之前,WP必須為0。當“WP”為1時,寫保護位防止對任一寄存器的寫操作。(2)DS1302的控制字節(jié)DS1302的控制字如表-1所示??刂谱止?jié)的高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出RAMRD1A4A3A2A1A0/CK/WR表-1DS1302的控制字格式(3)數(shù)據(jù)輸入輸出(I/O)在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。如下圖-4所示圖-4DS1302讀/寫時序(4)DS1302的寄存器DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見表-2。表-2DS1302的日歷、時間寄存器此外,DS1302還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與RAM相關的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。DS1302與RAM相關的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)三、硬件電路的總體框圖設計該設計的硬件電路的總體框圖下圖所示按鍵與按鈕電路按鍵與按鈕電路液晶顯示電路總體開關復位等輔助電路電源系統(tǒng)CPUAT89C51四、系統(tǒng)軟件設計主程序流程圖CPU系統(tǒng)初始化CPU系統(tǒng)初始化定時器初始化串口初始化讀寫日期、時間信息分離日期時間信息顯示子程序顯示出的時間時間是否正確?日期、時間修改子程序返回ProteusISIS簡介Labcenter公司開發(fā)的電路分析與實物仿真軟件。它運行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路。該軟件的特點是:(1)全部滿足我們提出的單片機軟件仿真系統(tǒng)的標準,并在同類產(chǎn)品中具有明顯的優(yōu)勢。(2)具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、RS-232動態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。(3)目前支持的單片機類型有:ARM7系列、68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。(4)支持大量的存儲器和外圍芯片??傊?,該軟件是一款集單片機和SPICE分析于一身的仿真軟件,功能極其強大,可仿真ARM、51、AVR、PIC。 Proteus啟動畫面:圖9界面仿真結果通過在KEIL下對源程序的編譯,改正了其中的很多錯誤,運行之后生成HEX文件。然后按原理圖選擇正確合理的電氣元件,畫出正確而且美觀的電路圖,加載源程序運行,順利實現(xiàn)了電子萬年歷年月日時分秒以及星期和陰歷日期的輸出。下圖為電子萬年歷的顯示效果:按下調(diào)時鍵后(第一個鍵)表示小時的數(shù)字開始閃動按下調(diào)日期鍵后(第三個鍵)年代鍵開始閃動第2個鍵為調(diào)整顯示數(shù)字按鍵,實行加一仿真結果通過在WAVE6000下對源程序的編譯,改正了其中的很多錯誤,然后運行,保證源程序的正確性。然后按原理圖選擇正確合理的電器元件,畫出正確的電路圖,加載源程序運行,順利實現(xiàn)了單片機數(shù)字電子鐘的“小時”、“分鐘”、“秒”的顯示。該電子萬年歷的顯示效果如圖五、總結課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程.隨著科學技術發(fā)展的日新日異,單片機已經(jīng)成為當今計算機應用中空前活躍的領域,在生活中可以說得是無處不在。因此作為二十一世紀的大學生,掌握單片機的開發(fā)技術是十分重要的。此次設計立足于電子技術的實際運用,不斷實踐,開拓了思維,設計以考查、調(diào)研、搜集資料、擬訂方案、進行系統(tǒng)規(guī)劃、編程、仿真、調(diào)試的流程,使我深刻的體會到了在學習我們專業(yè)的過程中理論與實踐相結合的重要性,同時也解決了以前學習比較模糊的專業(yè)知識點,使自己掌握的專業(yè)知識更加結構化、系統(tǒng)化。參考文獻AT89C51,,廣州周立功單片機發(fā)展有限公司DS1302TrickleChargeTimekeepingChip,劉嘉新李明于明淳DS18B20在林學氣象測量中的應用,2002年7月第30卷第4期蔣敏,單片微機萬年歷設計,職大學報2002年第2期邸春芳,電腦實時時鐘的設計,(西南石油學院電子信息工程學院)維普資訊王越明,電子萬年歷的設計,黑龍江煤礦機電設備廠,維普資訊適用于51系列單片機的一種萬年歷優(yōu)化算法,維普資訊吳有富,推導萬年星期歷的turoc-c程序,貴州民族學院劉峰周炳峻李曉靜,遙控電腦萬年歷的改造,河北,應用與改造藤迪安,最新萬年歷,《黑龍江珠算》1996年第5期韓志軍劉新民,數(shù)字溫度傳感器DS18B20及其應用,2003年3月第1卷第1期附源程序代碼: SCLK EQU P3.2 IO EQU P3.3 RST EQU P3.4 TRL EQU P3.5 JIA1 EQU P3.6 TSH EQU P3.7 YEAR DATA 66H MONTH DATA 65H WEEK DATA 64H DAY DATA 63H HOUR DATA 62H MINUTE DATA 61H SECOND DATA 60H DS_ADDR DATA 32H DS_DATA DATA 31H ORG 00H AJMP STARTMAIN2F: LJMP MAIN2START: MOV SP,#70H LCALL DELAY1 MOV DS_ADDR,#8EH MOV DS_DATA,#00H LCALL WRITESTART0: MOV DS_ADDR,#81H LCALL READ MOV DS_ADDR,#80H MOV DS_DATA,A LCALL WRITESTAR1: MOV DS_ADDR,#0C0H MOV DS_DATA,#9CH LCALL WRITE MOV 20H,#0 MOV 21H,#0FHMAIN1: JB TRL,MAIN2FA MOV 22H,#1 AJMP MAIN2FBMAIN2FA:JB TSH,MAIN2F MOV 22H,#2 MOV DS_ADDR,#81H LCALL READ ORL A,#80H MOV DS_ADDR,#80H MOV DS_DATA,A LCALL WRITEMAIN4: LCALL DISP JNB TSH,MAIN4 MOV 22H,#2 LJMP SSSMAIN2FB:MOV DS_ADDR,#81H LCALL READ ORL A,#80H MOV DS_ADDR,#80H MOV DS_DATA,A LCALL WRITEMAIN4J: LCALL DISP JNB TRL,MAIN4J MOV 22H,#1NNN: LCALL DISP JNB TRL,YYY MOV 20H,#8 LCALL DISP JB JIA1,NNNNNN2: LCALL DISP JNB JIA1,NNN2 MOV R7,YEAR LCALL JIAY1 MOV YEAR,A CJNE A,#30H,NNN1 MOV YEAR,#06NNN1: MOV DS_ADDR,#8CH MOV DS_DATA,YEAR LCALL WRITE MOV R0,YEAR LCALL DIVIDE MOV 4AH,R1 MOV A,4AH SWAP A MOV 4AH,A MOV 4BH,R2 MOV A,4BH SWAP A MOV 4BH,A SJMP NNNYYY: LCALL DISP JNB TRL,YYYYYY3: JNB TRL,DDD MOV 20H,#4 LCALL DISP JB JIA1,YYY3YYY2: LCALL DISP JNB JIA1,YYY2 MOV R7,MONTH LCALL JIAY1 MOV MONTH,A CJNE A,#13H,YYY1 MOV MONTH,#1YYY1: MOV DS_ADDR,#88H MOV DS_DATA,MONTH LCALL WRITE MOV R0,MONTH LCALL DIVIDE MOV 48H,R1 MOV A,48H SWAP A MOV 48H,A MOV 49H,R2 MOV A,49H SWAP A MOV 49H,A SJMP YYY3DDD: LCALL DISP JNB TRL,DDD MOV 20H,#2HDDD3: JNB TRL,NYD MOV 20H,#2 LCALL DISP JB JIA1,DDD3DDD2: LCALL DISP JNB JIA1,DDD2 MOV R7,DAY LCALL JIAY1 MOV DAY,A CJNE A,#32H,DDD1 MOV DAY,#1DDD1: MOV DS_ADDR,#86H MOV DS_DATA,DAY LCALL WRITE MOV R0,DAY LCALL DIVIDE MOV 46H,R1 MOV A,46H SWAP A MOV 46H,A MOV 47H,R2 MOV A,47H SWAP A MOV 47H,A SJMP DDD3NYD: LJMP MAIN3ASSS: LCALL DISP JNB TSH,FFF MOV 20H,#8SSS3: JNB TSH,FFF LCALL DISP JB JIA1,SSS3SSS2: LCALL DISP JNB JIA1,SSS2 MOV R7,HOUR LCALL JIAY1 MOV HOUR,A CJNE A,#24H,SSS1 MOV HOUR,#0SSS1: MOV DS_ADDR,#84H MOV DS_DATA,HOUR LCALL WRITE MOV R0,HOUR LCALL DIVIDE MOV 44H,R1 MOV 45H,R2 SJMP SSSFFF: LCALL DISP JNB TSH,FFF MOV 20H,#4FFF3: JNB TSH,MMM LCALL DISP JB JIA1,FFF3FFF2: LCALL DISP JNB JIA1,FFF2 MOV R7,MINUTE LCALL JIAY1 MOV MINUTE,A CJNE A,#60H,FFF1 MOV MINUTE,#0FFF1: MOV DS_ADDR,#82H MOV DS_DATA,MINUTE LCALL WRITE MOV R0,MINUTE LCALL DIVIDE MOV 42H,R1 MOV 43H,R2 SJMP FFF3MMM: LCALL DISP JNB TSH,MMM MOV 20H,#2MMM3: JNB TSH,MAIN3 LCALL DISP JB JIA1,MMM3MMM2: LCALL DISP JNB JIA1,MMM2 MOV R7,SECOND LCALL JIAY1 MOV SECOND,A CJNE A,#60H,MMM1 MOV SECOND,#0MMM1: ORL SECOND,#80H MOV DS_ADDR,#80H MOV DS_DATA,SECOND LCALL WRITE ANL SECOND,#7FH MOV R0,SECOND LCALL DIVIDE MOV 40H,R1 MOV 41H,R2 SJMP MMM3MAIN3: SETB P3.0 SETB P3.1 MOV 22H,#0 LCALL DISP JNB TSH,MAIN3 MOV 20H,#0 MOV 21H,#0FH MOV 22H,#0 MOV DS_ADDR,#81H LCALL READ ANL A,#7FH MOV DS_ADDR,#80H MOV DS_DATA,A LCALL WRITE LJMP MAIN1MAIN3A: SETB P3.0 SETB P3.1 MOV 22H,#0 LCALL DISP JNB TRL,MAIN3A MOV 20H,#0 MOV 21H,#0FH MOV 22H,#0 MOV DS_ADDR,#81H LCALL READ ANL A,#7FH MOV DS_ADDR,#80H MOV DS_DATA,A LCALL WRITE LJMP MAIN1MAIN2: MOV P1,#0 MOV DS_ADDR,#8DH LCALL READ MOV YEAR,DS_DATA MOV DS_ADDR,#89H LCALL READ MOV MONTH,DS_DATA MOV DS_ADDR,#87H LCALL READ MOV DAY,DS_DATA MOV DS_ADDR,#85H LCALL READ MOV HOUR,DS_DATA MOV DS_ADDR,#83H LCALL READ MOV MINUTE,DS_DATA MOV DS_ADDR,#81H LCALL READ MOV SECOND,DS_DATA MOV R0,YEAR LCALL DIVIDE MOV 4AH,R1 MOV A,4AH SWAP A MOV 4AH,A MOV 4BH,R2 MOV A,4BH SWAP A MOV 4BH,A MOV R0,MONTH LCALL DIVIDE MOV 48H,R1 MOV A,48H SWAP A MOV 48H,A MOV 49H,R2 MOV A,49H SWAP A MOV 49H,A MOV R0,DAY LCALL DIVIDE MOV 46H,R1 MOV A,46H SWAP A MOV 46H,A MOV 47H,R2 MOV A,47H SWAP A MOV 47H,A MOV R0,HOUR LCALL DIVIDE MOV 44H,R1 MOV 45H,R2 MOV R0,MINUTE LCALL DIVIDE MOV 42H,R1 MOV 43H,R2 MOV R0,SECOND LCALL DIVIDE MOV 40H,R1 MOV 41H,R2 LCALL DISP LJMP MAIN1DISP: SETB P3.1 SETB P3.0 JNB 10H,DISP2 CLR P3.0DISP2: JNB 11H,DISP1 CLR P3.1DISP1: NOP MOV A,46H ORL A,40H MOV P1,A JNB 01H,MIAOL MOV A,21H RL A MOV 21H,A CJNE A,#78H,MIAO1MIAO1: JC MIAOL CLR P2.4 CLR P2.5 SJMP FENMIAOL: SETB P2.5 LCALL DELAY1 CLR P2.5 LCALL DELAY2 MOV A,47H ORL A,41H MOV P1,A SETB P2.4 LCALL DELAY1 CLR P2.4 LCALL DELAY2FEN: MOV A,48H ORL A,42H MOV P1,A JNB 02H,FENL MOV A,21H RL A MOV 21H,A CJNE A,#78H,FEN1FEN1: JC FENL CLR P2.2 CLR P2.3 SJMP SHIFENL: SETB P2.3 LCALL DELAY1 CLR P2.3 LCALL DELAY2 MOV A,49H ORL A,43H MOV P1,A SETB P2.2 LCALL DELAY1 CLR P2.2 LCALL DELAY2SHI: MOV A,4AH ORL A,44H MOV P1,A JNB 03H,SHIL MOV A,21H RL A MOV 21H,A CJNE A,#78H,SHI1SHI1: JC SHIL SJMP SHI2SHIL: SETB P2.1 LCALL DELAY1 CLR P2.1 LCALL DELAY2 MOV A,4BH ORL A,45H MOV P1,A SETB P2.0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論