




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 引言本系統采用單片機AT89C51控制,以AT89C51為核心,它完成整個系統的信息處理及協調功能,本次設計我們選用ATMEL公司的AT89C51芯片,其功能強大,兼容性好,還支持軟件選擇的空間和掉電兩種節電方式。本設計的軟件,硬件都采用模塊化的設計方法,提高了設計的效率。 本次設計通過對一個實現定時、時鐘顯示、報時、鬧鐘、無線電控制等功能的時間系統的設計,其中結合了數據轉換顯示、數碼管顯示、動態掃描、單片機定時中斷等技術。系統由AT89C51、LED數碼管、按鍵、三極管、74LS47、74LS138、VD5026、VD5027、電阻等組成。能實現時鐘時、分、秒的顯示。也具有時間設置、鬧鈴開
2、和關設置、制式切換、無線控制。文章后附有電路圖、程序清單。多功能電子時鐘的設計一、 設計題目本系統采用單片機AT89C51控制,以AT89C51為核心,它完成整個系統的信息處理及協調功能,本次設計我們選用ATMEL公司的AT89C51芯片,其功能強大,兼容性好,還支持軟件選擇的空間和掉電兩種節電方式。本設計的軟件,硬件都采用模塊化的設計方法,提高了設計的效率。 本次設計通過對一個實現定時、時鐘顯示、報時、鬧鐘、無線電控制等功能的時間系統的設計,其中結合了數據轉換顯示、數碼管顯示、動態掃描、單片機定時中斷等技術。系統由AT89C51、LED數碼管、按鍵、三極管、74LS47、74LS138、VD
3、5026、VD5027、電阻等組成。能實現時鐘時、分、秒的顯示。也具有時間設置、鬧鈴開和關設置、制式切換、無線控制。文章后附有電路圖、程序清單。 二、設計要求單片機控制系統是整個控制系統的核心,它完成整個系統的信息處理及協調功能。本次我們選用ATMEL公司的AT89C51芯片;其功能強大,兼容性好。AT89C51是與8051兼容的CHMOS微控制器。與CHMOS工藝的8051一樣,支持軟件選擇的空閑和掉電兩種節電方式。 在AT89C51的P2.0P2.3是數碼管的段選;P2.4P2.6是數碼管的位選。P1.0和P1.1是發光二極管。是顯示制式切換后的工作制式.P1.2是蜂鳴器,作鬧鈴和準點報時
4、用。P0.0P0.7是按鍵的判斷輸入口,是對時間調整鬧鈴時間設置,和其他功能的區分。三、設計的作用以及目的該課題主要有兩種方案:一種是用數字電路通過硬件實現,另一種是用單片機通過軟件編程實現。在以上兩種方案中:第一種是直接采用的是數字電路,但是在外圍電路和控制比較麻煩,需要比較多的器件來控制;第二種是采用軟件來實現一些特定功能,硬件電路只需要一些顯示部件和控制部件,其他的都是由軟件來實現。第一種一切都由硬件實現,幾乎沒有軟件編程,但電路復雜、芯片多、后續制板及硬件調試麻煩而且成本高;第二種雖電路簡單、芯片少、成本低,但編寫程序相當復雜。經過一番利弊的權衡及對今后電子業發展趨勢的考量,最后敲定用
5、單片機方案實現。另外用單片機實現本設計也有兩種可選的子方案:第一種,用軟件編程實現設計中的鐘控功能;另一種則選用單片機加時鐘芯片實現鐘控功能。在本次主要的是時間的設計,因此對時間的精度要求是比較高的,竟量是誤差減少到最小值,但是為了更好的練習復習自己在以前所學習的編程能力,所以不采用單片機加時鐘芯片的方案,直接用軟件編程實現鐘控功能。總的來看,單片機已成為工控領域、尖端武器、日常生活中最廣泛使用的計算機,且將進一步向著CMOS化、低功耗、小體積、大容量、高性能、低價格方向發展,因此敲定用單片機加軟編程方案符合今后電子業發展趨勢;另外運用此方案既能將自己以前學過的模擬電路、數字電路、單片機、匯編
6、語言、Protel99等知識結合實踐進行一次全面的檢測,又能為將來實際制作電路積累寶貴的經驗。四、元器件清單表4-1 元器件清單表器件數量/規格單面覆銅板1塊AT89C51單片機1塊74LS471塊74LS1382塊74LS1481只VD50261只VB50271只共陽數碼管8只9012三極管8只按鈕開關18只蜂鳴器1只電阻10k,4.7k,100,8.2k,100k,200k發光二極管LED2只電容器10uf(1只),30pf(2只)晶振12M(1只)接插件8口(4副),2口(2副)底座6只語音芯片1只芯片6塊五、硬件和軟件設計 5.1、硬件設計 5.1.1控制部分:AT89C2051單片機
7、AT89C51單片機概述:AT89C51單片機是國Atmel公司生產的采用高性能的靜態89C2051設計,是一個低電壓,高性能CHMOS 8位單片機,片內含4kbytes的可反復擦寫的只讀Flash程序存儲器和128 bytes的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置通用8位中央處理器和Flash存儲單元。 AT89C51是一個功能強大的單片機,但它只有40個引腳,32個雙向輸入/輸出(I/O)端口,其中P1是一個完整的8位雙向I/O口,兩個外中斷口,兩個16位可編程定時計數器,兩個全雙向串行通信口,
8、一個模擬比較放大器。此外,由于器件采用了動態設計,可提供很寬的操作頻率范圍(頻率0HZ24MHZ)。即具備可用軟件設置的睡眠省電功能,系統的喚醒方式有RAM、定時/計數器、串行口和外中斷口,系統喚醒后即進入繼續工作狀態。省電模式中,片內RAM將被凍結,時鐘停止振蕩,所有功能停止工作,直至系統被硬件復位方可繼續運行。圖5-1 AT89C51時鐘電路連接在本設計中AT89C51的時鐘電路采用內部時鐘方式,此方式是在XTAL1和XTAL2兩端跨接晶體或陶瓷諧振器。在本設計中XTAL1和XTAL2兩端跨接12MHz晶體振蕩器,其發出的脈沖直接送入內部時鐘電路。本設計采用按鍵手動復位的按鍵電平復位
9、60;。圖5-2 89C2051外部復位電路設計AT89C51在本設計中的I/O口應用:AT89C51的P2.0P2.3控制7448譯碼實現數碼管段選;AT89C51的P2.4P2.6控制74LS138實現數碼管位選;AT89C51的P1.1 P1.1控制AM PM顯示;AT89C51的P1.2控制蜂鳴器實現鬧鐘的鬧鈴;AT89C51的P0連接按鈕,用于輸入校時、定時信號和停止信號。5.1.2數碼管顯示部分 本設計中所涉及數碼管皆采用共陰數碼管,顯示電路為動態掃描式顯示。圖5-3數碼管及顯示電路選擇數碼管顯示位選:AT89C51的P2.4P2.6輸出控制數碼管位選,在本次設計的電路中,因為是使
10、用的是共陰數碼管,因此由AT89C51的P2.4P2.6的輸出控制74LS138,使之輸出相應的端口為低電平,控制數碼管點亮。 74ls138芯片簡介:圖5-4 74LS138芯片 74ls138芯片是由非門,與門和與非門組成的3線8線譯碼器,由A1,A2,A3三個端口輸入的不同的信號,經過譯碼,輸出端口輸出相應的二進制數字。現將輸入與輸出的對應關系圖表示如下:圖5-5譯碼真值表圖5-6 數碼管位選原理數碼管段選AT89C51的P2.0P2.3控制7448譯碼實現數碼管段選,在本次設計的電路中,由于二級管使用的是共陰數碼管,在輸出的是要高電平。在設計的時候,怕在芯片輸出的電流信號過大,因此在輸
11、出的時候加了限流電阻,為保護數碼管,防止燒壞。 圖5-7 數碼管段選原理5.1.3 發光二極管電路 在本次設計電路之中,由于在內存的不足,因此在鬧鐘的秒脈沖有發光二極管來顯示,當過一秒起點亮一次,由P1.1口輸出,在其內部無上拉電阻,因此在其外部另接了10K上拉電阻,能夠在起輸出高電平的時候快速執行。圖5-8 發光二極管5.1.4 鬧鐘設計當設計的時間到達的時候,要驅動蜂鳴器,使其能夠響起,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單處機某個口線的高電平或低電平,則在該口線上就能產生一定頻率的矩形波,接上喇叭就能發出一定頻率的聲音,若再利用延時程序控制“高”“低”電平的持續時間,就能
12、改變輸出頻率,從而改變音調。5.1.5 按鈕與開關部分S1按鈕: 秒加1鍵 ;S2按扭: 分加1鍵;S3按扭: 時加1鍵;S4按扭: 制式轉換鍵;S5按扭: 鬧鐘停止鍵;S6按扭: 鬧鐘調整時間開關;S7按扭: 設置時間開關;S8按扭: 鬧鐘開關。圖5-9按鍵電路原理5.1.9發射模塊八個按鈕通過編碼送入VD5026芯片,經過發射模塊315M發射。圖5-10 發射模塊5.1.10接收模塊通過接收模塊接收,經74LS138解碼送到VD5027,送到單片機的PO口進行控制。圖5-11 接收模塊 圖5-12 電路原理圖 圖5-13 PCB圖 5.2、軟件設計5.2.1程序原理概述 在程序設計這一環節
13、,本次將其分為時鐘中斷程序、時鐘顯示程序、鍵盤程序、鬧鐘定時控制程序、鬧鐘響鬧程序、音樂響鬧程序、主程序、各程序銜接程序。在以下幾節中將根據實際各個部分的編程及調試順序,依次介紹各程序的設計思想和流程。5.2.2總的設計思想 在本次主要是使用的是數字鬧鐘,因此主要部分是數字鐘的實現,因此要實現這樣的功能必須要在硬件的電路上實現數字鐘的實現,然后在此基礎上逐步實現其他的功能, 數字電子鐘的程序大概可以分為三個部分:時鐘主程序、時鐘顯示程序、時鐘中斷程序。時鐘主程就是對時鐘的各個模塊的實現。時鐘顯示程序是將秒顯示用發光二極管顯示,每一秒點亮一次;將分個位、分十位、時個位、時十位數據存儲單元的計時數
14、據通過設置段選和位選、由74LS47段選譯碼,最后顯示在相應的數碼管上。時鐘中斷程序則通過重設計時、1秒計時與時鐘程序相結合實現秒個位、秒十位、分個位、分十位、時個位、時十位數據存儲單元的數據按計時規則加1進位和清零,以配合時鐘顯示程序實現數字電子鐘。在實現數字電子鐘的基礎上,逐一添加調試鍵盤程序、鬧鐘定時程序,鬧鐘音樂程序,最后實現設計目標。鍵盤程序就是通過軟件掃描各按鍵狀態來實現各按鈕的功能。5.2.3源程序k0 bit p0.0k1 bit p0.1k2 bit p0.2k3 bit p0.3k4 bit p0.4k5 bit p0.5k6 bit p0.6k7 bit p0.7xiao
15、shi data 2ahfengzhong data 2bhmiao data 2ch org 0000h jmp start org 000bh jmp tim0start: mov sp,#70h ;設置堆棧在70H mov 28h,#00 ;顯示寄存器初值為12H mov 2ah,#12h mov 2bh,#00 mov 2ch,#00 mov tmod,#00000001b mov th0,#high(65536-4000) mov tl0,#low(65536-4000) mov ie,#10000010b mov r4,#250 setb tr0loop: jb p0.0,n2 c
16、all delay mov a,2ch add a,#01h da a mov 2ch,a cjne a,#60h,n1 mov 2ch,#00n1: jnb p0.0,$ call delayn2: jb p0.1,n4 call delay mov a,2bh add a,#01h da a mov 2bh,a cjne a,#60h,n3 mov 2bh,#00n3: jnb p0.1,$ call delayn4: jb p0.2,loop call delay mov a,2ah add a,#01 da a mov 2ah,a cjne a,#24h,n5 mov 2ah,#00n
17、5: jnb p0.2,$ call delay jmp looptim0: mov th0,#high(65536-4000) mov tl0,#low(65536-4000) push acc push psw djnz r4,x2 mov r4,#250 call clock call dispx2: call saomiao pop psw pop acc retisaomiao: mov r0,#28h inc r0 cjne r0,#6,x3 mov r0,#0x3: mov a,r0 add a,#20h mov r1,a mov a,r0 swap a orl a,r1 mov
18、 p2,a retclock: mov a,2ch add a,#1 da a mov 2ch,a cjne a,#60h,x4 mov 2ch,#00 mov a,2bh add a,#1 da a mov 2bh,a cjne a,#60h,x4 mov 2bh,#00 mov a,2ah add a,#1 da a mov 2ah,a cjne a,#24h,x4 mov 2ah,#00x4: retdisp: mov r1,#20h mov a,2ch mov b,#10h div ab mov r1,b inc r1 mov r1,a inc r1 mov a,2bh mov b,#
19、10h div ab mov r1,b inc r1 mov r1,a inc r1 mov a,2ah mov b,#10h div ab mov r1,b inc r1 mov r1,a retdelay: mov r6,#60d1: mov r7,#248 djnz r7,$ djnz r6,d1 retend六、調試 在繪制好PCB以后,就用腐蝕液將不需要的銅泊進行腐蝕和打孔,然后用萬用表檢查線路的好壞,在進行腐蝕的時候,由于在腐蝕的時候是人工的,而且在用鑷子搖PCB板的時候,將需要的線路給劃傷,所以就被腐蝕液給腐蝕了,將無法復原,因此就必須在腐蝕完后用電烙鐵將線路補好,再使用萬用表檢
20、查以消除電路的短路與斷路七、心得體會任何一個作品都不可能是完美的,這個作品也一樣。按照人類的習慣,電子鐘的時和分之間,分和秒之間都應該有“:”此符號,但在此設計中卻沒有達到這一點 (要解決這個問題只需要將第三個和第五個LED數碼管倒一下就行了);這個數字鐘顯示的亮暗度是無法調解的(需要在軟件設計中加入一個分支程序);在位選和段選用的是獨立連接式鍵盤,如果換作矩陣式鍵盤,可以使得接口線更加的節省,從而可以連接更加豐富的功能。基于以上的不足,根據余老師在上課時的講解,我雖然知道該在方面對其進行修改,但是具體實現起來還是有點困難的,我現在也終于明白了余老師的那句話只要動手就能學到東西。俗話說“好的開
21、始是成功的一半”。說起課程設計,我認為最重要的就是做好設計的預習,選一個自己有興趣的題目。其次,對老師的要求要一絲不茍的去想,因為只有都明白了,做起設計就會事半功倍,如果沒弄明白,就迷迷糊糊的去選題目做設計,到頭來一點收獲也沒有。最后,要重視程序的模塊化,修改的方便,也要注重程序的調試,掌握其方法。 在學習態度方面,自從進入大學以后在這一方面我從不認為自己是懶惰的,但這次課程設計使我對學習態度有了重新的認識勤奮不等于好結果,只有科學的方法加上汗水才能出成品啊!對于這次單片機綜合課程實習,我的第一大心得體會就是作為一名工科專業的大學生,要求具備的首要素質絕對應該是嚴謹。我們這次實習所遇到的多半問題多數都是由于我們不夠嚴謹。其次在做人上,我認識到,無論做什么事情,只要你足夠堅強,有足夠的毅力與決心,有足夠的挑戰困難的勇氣,就沒有什么辦不到的當考試結束,開始課程設計的時候,我有一種莫名的火氣,天哪!這可怎么辦,時間這么
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論