《單片機原理及應用》課程設計電子萬年歷
《《單片機原理及應用》課程設計電子萬年歷》由會員分享,可在線閱讀,更多相關《《單片機原理及應用》課程設計電子萬年歷(19頁珍藏版)》請在裝配圖網上搜索。
1、單片機原理及應用課程設計 題 目: 電子萬年歷 專 業(yè):電子信息工程技術 班 級: 姓 名: 學 號: 指導老師: 日 期: 成 績: 目錄 摘要 1 概述 1.1 單片機原理及應用簡介 1.2 設計目的 1.3 設計要求 2 系統(tǒng)總體方案及硬件設計 2.1 系統(tǒng)總體方案 2.2 硬件電路的總體框圖設計 2.3 硬件電路原理圖設計 3 軟件設計 3.1 主程序流程圖設計 3.2 顯示模塊流程圖 4 課程設計體會 5 參考文獻 6 附圖 摘要:本設計是電子萬年歷。具備三個功能:能顯示:年、月、日、時、分、秒及星期信息,并具有 可調整日期和時間功能。 我選用的是單片機 AT89C51 來實現電子萬
2、年歷的功能。該電子萬年歷能夠成功實現時鐘運行,調整,顯示 年月日時分秒及星期,溫度等信息。 該電子萬年歷使用 12MHZ 晶振與單片機 AT89C51 相連接,通過軟件編程的方法實現了以 24 小時為一個周期, 同時顯示小時、分鐘和秒的要求。利用單片機定時器及計數器產生定時效果通過編程形成數字鐘效果,再利用 數碼管動態(tài)掃描顯示單片機內部處理的數據。同時通過端口讀入當前外部控制狀態(tài)來改變程序的不同狀態(tài),實 現不同功能。 電子萬年歷設計與制作可采用數字電路實現,也可以采用單片機來完成。若用數字電路完成,所設計的電路 相當復雜,大概需要十幾片數字集成塊,其功能也主要依賴于數字電路的各功能模塊的組合來
3、實現,焊接的過程 比較復雜,成本也非常高。若用單片機來設計制作完成,由于其功能的實現主要通過軟件編程來完成,這樣一來 就降低了硬件電路的復雜性,從而使得其成本降低,更適合我們大學生自主研發(fā)。所以在該設計與制作中我選用 了單片機 AT89C51。另外, 單片機 AT89C51 的指令系統(tǒng)和引腳與 AT89C51 完全兼容,片內有 128B 的 RAM、32 條 I/O 口線、2 個 16 位定時計數器、5 個中斷源、一個全雙工串行口等。 因此,采用單片機 AT89C51 原理制作的電子萬年歷,不僅僅在原理上能夠成功實現計時等功能,也更經 濟,更適用,更符合我們實際生活的需要,對我們大學生來說也更
4、加有用。 1 概述 1.1 單片機原理及應用簡介 隨著國內超大規(guī)模集成電路的出現,微處理器及其外圍芯片有了迅速的發(fā)展。集成技術的最新發(fā)展之一是 將 CPU 和外圍芯片,如程序存儲器、數據存儲器、并行、串行 I/O 口、定時/計數器、中斷控制器及其他控制 部件集成在一個芯片之中,制成單片計算機(Single-Chip Microcomputer) 。而近年來推出的一些高檔單片機 還包括有許多特殊功能單元,如 A/D、D/A 轉換器、調制解調器、通信控制器、鎖相環(huán)、DMA、浮點運算單元等。 因此,只要外加一些擴展電路及必要的通道接口就可以構成各種計算機應用系統(tǒng),如工業(yè)控制系統(tǒng)、數據采集 系統(tǒng)、自動
5、測試系統(tǒng)、萬年歷電子表等。 單片機的出現,并在各個技術領域中得到如此迅猛的發(fā)展,與單片機構成計算機應用系統(tǒng)所形成的下述特 點有關: 1、單片機構成的應用系統(tǒng)有較大的可靠性。這些可靠性的獲得除了依靠單片機芯片本身的高可靠性以及 應用有最少的聯接外,還可以方便地采用軟、硬件技術。 2、系統(tǒng)擴展、系統(tǒng)配置較典型、規(guī)范,容易構成各種規(guī)模的應用系統(tǒng),應用系統(tǒng)有較高的軟、硬件利用 系數。 3、由于構成的應用系統(tǒng)是一個計算機系統(tǒng),相當多的測、控功能由軟件實現,故具有柔性特征,不須改 變硬件系統(tǒng)就能適當地改變系統(tǒng)功能。 4、有優(yōu)異的性能、價格比。 可以說,對于廣大的電子應用專業(yè)技術人員,目前國和內國外面臨的單
6、片機應用技術,如同 60 年代面臨晶體管技術,70 年代面臨數字集成電路一樣。單片機和可編程門陣列相結合,構成新一代電子應 用技術是不可能回避的一項新型的工程應用技術。 單片機是微型計算機的一個重要分枝,單片機是把中央處理器、隨機存儲器、只讀存儲器、定時器/計數 器、并行接口接口、串行接口、A/D 轉換器等主要計算機部件,集中在一塊集成電路芯片上。雖然只是一個芯 片,但從功能上它就相當于一臺完整的微機。隨著科學技術的迅猛發(fā)展,單片計集成度高、體積小、運算速度 快、功耗低、運行可靠、價格低廉等諸多優(yōu)點,越來越顯現出來。目前可以說單片機已經滲透到我們的生活的 各個領域,在工業(yè)方面:像過程控制、數據
7、采集,機電一體化、智能化儀器儀表,特別在軍事武器控制方面尤 為突出。在日常生活方面,我們使用彩電、洗衣機、電冰箱,錄放機、VCD、照相機、手機、高級定時鬧鐘以 及公共汽車上的報站器等等可以說舉不勝舉。 1.2 設計目的 1、熟悉 MCS-51 定時/計數器、中斷的應用。 2、熟悉時鐘時、分、秒計時方法,掌握編程技巧。 3、掌握鍵盤的基本工作原理,鍵的識別,鍵抖動和重鍵問題的解決,鍵盤工作方式和鍵盤程序的編程。 4、掌握七段碼 LED 顯示器的結構,七段碼 LED 顯示器的工作方式和顯示程序的編程。 5、掌握串行通信程序的編寫。 1.3.設計要求 1、設計實現電子萬年歷的硬件原理圖。 2、用 T
8、0 定時器,產生時鐘信號,設計定時中斷程序。3、通過按鍵切換,分別顯示時、分、秒,設計顯示程 序。 4、可用鍵盤進行校對時間,設計鍵盤程序。5、當前時間可通過串口在其他單片機系統(tǒng)上顯示。 AT89C51 的引腳圖及部分引腳功能 RST:復位輸入。當振蕩器復位器件時,要保持 RST 腳兩個機器周期的高電平時間。 ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN 有效。 /EA/VPP:當/EA 保持低電平時,則在此期間外部程序存儲器(0000 H- FFFFH),不管
9、是否有內 部程序存儲器。 XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。 口管腳 備選功能 P1.0P1.7 8 位雙向口 P2.0P2.7 8 位雙向口 P3.0P3.7 8 位雙向口 P3.0 RXD 串行輸入口 P3.1 TXD 串行輸出口 P3.2 /INT0 外部中斷 0 P3.3 /INT1 外部中斷 1 P3.4 T0 記時器 0 外部輸入 P3.5 T1 記時器 1 外部輸入 P3.6 /WR 外部數據存儲器寫選通 P3.7 /RD 外部數據存儲器讀選通 2 系統(tǒng)總體方案及硬件設計 2.1 系統(tǒng)總體方案 我選用的是單片機(AT89
10、C51)來實現電子萬年歷的功能。共具備兩個功能: (1)顯示年月日及分秒信息 (2)具有可調整日期和時間功能。 1 微處理器 在設計過程中我使用 12MHZ 晶振與單片機 AT89C51 相連接,通過軟件編程的方法實現了以 24 小時為一個周期同時顯示小時,分鐘和秒的要求,該定時鬧鐘設有九個按鍵,使之具備了校時、 定時功能。利用單片機定時器及計數器產生定時效果通過編程形成數字鐘效果,再利用數碼管動 態(tài)掃描顯示單片機內部處理的數據。同時通過端口讀入當前外部控制狀態(tài)來改變程序的不同狀態(tài), 實現不同功能。 2.2 硬件電路的總體框圖設計 該設計的硬件電路的總體框圖如圖所示 2.3 硬件電路原理圖設計
11、 該萬年歷是以單片機 89s52 為核心來完成的。 在硬件電路中采用 P0 口作為 6 位液晶顯示電路的驅動接口,這是由于 P0 口輸出驅動電路工作處 于開漏狀態(tài),它的驅動能力強,故只需外接上拉電阻便可以把 LED 數碼管點亮。因為共陰的 LED 數 碼管它的驅動電流是分開的,在單片機進行動態(tài)掃描的時候不會影響彼此的電流,故該電路中的 8 位 LED 數碼管均用共陽陰極的數碼管。8 位 LED 數碼管的位選線分別由相應的 P2. 0P2. 5 控 制,而將其相應的段選線并聯在一起,由一個 8 位的 I/O 口控制,即 P0 口。P3 口與八個校時按鍵 相連,以成功實現萬年歷校時的功能。主控制原
12、理圖: 3.軟件設計 程序框圖: 開始 初始化 按鍵掃描 有鍵按下 按鍵處理,確定模式 時間顯示模式 根據按鍵狀態(tài)顯示相應時間段 時間修改模式 根據按鍵狀態(tài)修改時間 NO NO YES YES 圖 1 主程序 流程框圖 開始 裝入計數初值(50ms 中斷) 計數標志 num+ num=20? num=0 時間加 1 秒 結束 圖 2 定時中斷流程框圖 NO YES 開始 清零按鍵狀態(tài)位 按鍵為低電平? 延時,去抖動 按鍵為低電平? 按鍵為低高平? 有按鍵,置按鍵狀態(tài) YES YES 結束 圖 3 按鍵掃描流程框圖 NO NO YES 清零按鍵狀態(tài) 程序中使用到了 T0,T1 和串口中斷,P0,
13、P2 口為 LED 的輸出數據口,P32,P33,P34 分別為時分 秒轉換,時間校驗和時間停止位 (一):主機程序: org 0000h ljmp main org 000bh ljmp time org 0023h ljmp chuanxing org 0030h main: setb p3.2 setb p3.3 setb p3.7 setb p3.5 mov pcon,#00h mov scon,#01010000b mov tmod,#21h mov tl0,#0b0h mov th0,#3ch mov th1,#0cch ;產生 600 波特率 mov tl1,#0cch mov
14、r5, #20 ;20 次以達到 1S 的計時 mov r4,#3 ;切換標志位 mov r6,#0ffh ;恢復暫停標志 mov r7,#1 mov r3,#0ffh ;暫停標志 mov 50h,#0 ;存放時分秒的數據空間地址 mov 51h,#0 mov 52h,#0 mov 53h,#0 mov 54h,#0 mov 55h,#0 mov 60h,#0ffh ;串性發(fā)送標志 mov 61h,#0ffh mov 62h,#0ffh mov 70h,#0 ;存放串行接受的數 mov 71h,#0 ;接受從機發(fā)送的切換標志 setb ea setb es setb et0 setb tr0
15、setb tr1 start: call key mov a,70h cjne a,#0f1h,qiehuan ;是否為串性標接受到的切換志 mov 70h,#0 mov 71h,#1 ljmp xianshi qiehuan: cjne a,#0f2h,qiehuan1 mov 70h,#0 mov 71h,#2 ljmp xianshi qiehuan1: cjne a,#0f3h,qiehuan2 mov 70h,#0 mov 71h,#3 ljmp xianshi qiehuan2: mov a,r0 jnz xianshi mov a,70h cjne a,#0f6h,qiehuan
16、3 ;是否為串性接受到的恢復暫停標志 mov r6,#0 ljmp stop qiehuan3: mov a,r3 jz stop1 mov a,70h cjne a,#0f7h,xianshi mov 70h,#0 mov r6,#0ffh sjmp xianshi stop1: ljmp stop ;51h, 50h miao ;53h,52h fen ;55h,54h shi xianshi: ;顯示子程序 mov dptr,#segtab ;顯示秒 mov a,71h cjne a,#1,bingxing1 sjmp bingxing2 bingxing1: cjne r4,#3 ,f
17、en bingxing2: mov a,51h movc a,a+dptr mov p0,a mov a,50h movc a,a+dptr mov p2,a mov a,60h ;串行發(fā)送秒 jnz biaozhi clr ti mov a,50h mov sbuf,a call t10ms jb ti ,$ mov a,51h mov sbuf,a jb ti,$ mov 60h,#0ffh ;call t10ms biaozhi: ljmp start fen: ;顯示分 mov a,71h cjne a,#2,bingxing3 sjmp bingxing4 bingxing3: cj
18、ne r4,#2 ,shi bingxing4: mov a,53h movc a,a+dptr mov p0,a mov a,52h movc a,a+dptr mov p2,a mov a,61h ;串行發(fā)送分 jnz biaozhi1 clr ti mov a,52h mov sbuf,a jb ti ,$ call t10ms mov a,53h mov sbuf,a jb ti,$ mov 60h,#0ffh ;call t10ms biaozhi1: ;call t10ms ljmp start shi: ;顯示時 mov a,71h cjne a,#3,bingxing5 sjm
19、p bingxing6 bingxing5: cjne r4,#1,shi1 bingxing6: mov a,55h movc a,a+dptr mov p0,a mov a,54h movc a,a+dptr mov p2,a mov a,62h ;串行發(fā)送時 ? jnz biaozhi2 clr ti mov a,54h mov sbuf,a jb ti ,$ call t10ms mov a,55h mov sbuf,a jb ti,$ mov 60h,#0ffh ;call t10ms biaozhi2: ;call t10ms shi1: ljmp start stop: ;暫停子
20、程序 mov a,r6 jz xianshi1 ljmp start xianshi1: mov a,70h cjne a,#0f4h,aa mov 70h,#0 ljmp num1 aa: mov a,r1 jnz num1 mov a,70h cjne a,#0f5h,bb mov 70h,#0 ljmp num2 bb: mov a,r2 jnz num2 ljmp start num1: ;高位累加 cjne r4,#3,fen1 ;秒 inc 51h mov a,51h cjne a,#6 ,qingling0 mov 51h,#0 qingling0: ljmp xianshi f
21、en1: ;分 cjne r4,#2,shi11 inc 53h mov a,53h cjne a,#6 ,qingling1 mov 53h,#0 qingling1: ljmp xianshi ;時 shi11: cjne r4,#1,qingling2 inc 55h mov a,55h cjne a,#6 ,qingling2 mov 55h,#0 qingling2: ljmp xianshi num2: ;低位累加 cjne r4,#3,fen2 ;秒 inc 50h mov a,50h cjne a,#10,qingling3 mov 50h,#0 qingling3: ljmp
22、 xianshi fen2: cjne r4,#2,shil2 ;分 inc 52h mov a,52h cjne a,#10 ,qingling4 mov 52h,#0 qingling4: ljmp xianshi ;時 shil2: cjne r4,#1,qingling5 inc 54h mov a,54h cjne a,#10 ,qingling5 mov 54h,#0 qingling5: ljmp xianshi time: ;中斷子程序 mov a,r6 jnz fanhui11 reti fanhui11: djnz r5,next mov r5,#20 inc 50h mo
23、v a,60h cpl a mov 60h,a mov a,50h cjne a,#10,next inc 51h mov 50h,#0 mov a,51h cjne a,#6,next inc 52h mov a,61h cpl a mov 61h,a mov 51h,#0 mov a,52h cjne a,#10,next inc 53h mov 52h,#0 mov a,53h cjne a,#6,next inc 54h mov a,62h cpl a mov 62h,a mov 53h,#0 mov a,54h cjne a,#10,next inc 55h mov 54h,#0 m
24、ov a,55h cjne a,#6,next mov 55h,#0 ;重裝初值 next: ljmp fanhui1 key ;鍵盤掃描子程序 p3.2 切換 p3.3 十位加 p3.5 暫停 p3.7 個位加 mov r0,#0 mov r1,#0 mov r2,#0 jb p3.2, rel1 call t10ms jnb p3.2,fanhui ;第一個鍵按下子程序 mov r0,#1 mov p1,#0feh dec r4 mov a,r4 jnz rel5 mov r4,#3 rel5: ljmp t10ms rel1: ;第二個鍵按下子程序 jb p3.3,rel2 call t
25、10ms jnb p3.3 ,fanhui mov r1,#1 ljmp fanhui ;第三個鍵按下子程序 rel2: jb p3.7,rel3 call t10ms jnb p3.7 ,fanhui mov r2,#1 ljmp fanhui ;第四個鍵按下子程序 rel3: jb p3.5,fanhui call t10ms jnb p3.5 ,fanhui mov a,r3 cpl a mov r3,a mov a,r6 cpl a mov r6,a ljmp fanhui t10ms: ;十毫秒延時程序 push 50h push 51h mov 50h,#0ffh loop1: m
26、ov 51h,#0ffh nop loop2: nop djnz 51h,loop2 djnz 50h,loop1 pop 51h pop 50h fanhui: ret fanhui1: mov tl0,#0b0h mov th0,#3ch reti ;查表段 segtab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h chuanxing: ;串性中斷子程序 jb ri,loop clr ti ajmp endt loop: mov a,sbuf mov 70h,a clr ri endt: reti t1ms: ;一豪秒的延時 ? pus
27、h 50h push 51h mov 50h,#0ffh loop11: mov 51h,#0ffh nop loop22: nop djnz 51h,loop22 djnz 50h,loop11 pop 51h pop 50h ret end 4 課程設計體會 通過這一周的課程設計,我學到了不少的知識。把以前沒有學好的模擬電路的知識進行了補 充和加強。這使我受益很大。加深了我對于單片機和數字電路的認識,相信在以后的學習和工作 中碰到這些基礎的元器件我會更加得心應手。通過查閱大量的資料,我獲得了以前在課堂上學不 到的東西,我想這對于以后的畢業(yè)設計,或者工作也好,都是很有幫助的。我很認真地對待這
28、個 過程中的每一個細節(jié),希望自己能做得更好。希望今后還有這樣的機會,能夠讓我學到更多的知 識。在此次的數字鐘設計過程中,更進一步地熟悉了芯片的結構及掌握了各芯片的工作原理和其 具體的使用方法。 5 參考文獻 1李建忠.單片機原理及應用.西安電子科技大學出版 2006.02 2張俊謨.單片機中級教程.北京航空航天大學出版 2006.03 3余發(fā)山.單片機原理及及應用技術.中國礦業(yè)大學出版社 2003.12 4楊凌霄.微型計算機原理及應用.中國礦業(yè)大學出版社 2004.08 5何立民.單片機應用技術選編.北京航空航天大學出版社 2000.08 6萬光毅.單片機實驗與實踐教程.北京航空航天大學出版社 2005.01 7周航慈.單片機程序設計基礎.北京航空航天大學出版社 1991.11 8黃遵熹.單片機原理接口與應用.西北工業(yè)大學出版社 1997.05 6. 附圖:(整體原理圖)
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。