基于51單片機可調(diào)數(shù)字鐘的設(shè)計

上傳人:ly****51 文檔編號:70141173 上傳時間:2022-04-06 格式:DOC 頁數(shù):13 大?。?9KB
收藏 版權(quán)申訴 舉報 下載
基于51單片機可調(diào)數(shù)字鐘的設(shè)計_第1頁
第1頁 / 共13頁
基于51單片機可調(diào)數(shù)字鐘的設(shè)計_第2頁
第2頁 / 共13頁
基于51單片機可調(diào)數(shù)字鐘的設(shè)計_第3頁
第3頁 / 共13頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于51單片機可調(diào)數(shù)字鐘的設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《基于51單片機可調(diào)數(shù)字鐘的設(shè)計(13頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、. 單片機技術(shù)課程實踐 ——基于89C51單片機可調(diào)數(shù)字鐘的仿真設(shè)計 班級: : **: 輔導(dǎo)教師: 設(shè)計時間: . > . 1. 設(shè)計目的 1.1設(shè)計目的 〔1〕掌握51系列部定時/計數(shù)器的原理和根本應(yīng)用; 〔2〕掌握使用單片機處理復(fù)雜邏輯的方法;

2、 〔3〕掌握多位數(shù)碼管動態(tài)顯示的方法; 〔4〕掌握獨立式〔和矩陣〕鍵盤的編程方法; 〔5〕掌握利用匯編語言編寫單片機系統(tǒng)的應(yīng)用軟件的方法; 〔6) 穩(wěn)固,加深和擴大單片機應(yīng)用的知識面,提高綜合及靈活運用所學(xué)知識解決工業(yè)控制的能力; (7) 培養(yǎng)針對課題需要,選擇和查閱有關(guān)手冊,圖表及文獻資料的自學(xué)能力,提高組成系統(tǒng),編程,調(diào)試的動手能力; (8) 熟悉單片機用系統(tǒng)開發(fā),研制的過程,軟硬件設(shè)計方法,容及步驟. (9) 了解數(shù)字鐘的組成及工作原理. 1.2設(shè)計性能 〔1〕用51單片機的定時/計數(shù)器TMR0產(chǎn)生一秒的定時時間,作為秒計數(shù)時間

3、; 〔2〕當(dāng)一秒產(chǎn)生時,秒計數(shù)加1; 〔3〕開機時,顯示00.00.00,并開場連續(xù)計時; 〔4〕計時滿23.29.59時,返回00.00.00重新開場計時; 〔5〕在以上設(shè)計根底上,在單片機的I/O口上分別接入四個按鍵:K0—控制"秒〞的調(diào)整,每按一次加1秒;K1—控制"分〞的調(diào)整,每按一次加1分;K2—控制"時〞的調(diào)整,每按一次加1小時;K3—時間復(fù)位按鍵。 2.系統(tǒng)電路的方案 2.1實現(xiàn)時鐘計時的根本方法 用AT89C51單片機的定時/計數(shù)器T0產(chǎn)生一秒的定時時間,作為秒計數(shù)時間,當(dāng)一秒產(chǎn)生時,秒計數(shù)加1開機時。顯示00-00-00的時間,開場計時;

4、計時滿23-59-59時,返回00-00-00重新計時 AT89C51單片機的部16位定時/計數(shù)器是一個可編程定時/計數(shù)器,它既可以工作在13位定時方式,也可以工作在16位定時方式和8位定時方式。只要通過設(shè)置特殊功能存放器TMOD,即可完成。定時/計數(shù)器何時工作也是通過TCON特殊功能存放器來設(shè)置的。 在此設(shè)計中,選擇16位定時工作方式。對于T0來說,系統(tǒng)時鐘為12MHz,最大定時也只有65536us,即65.536ms,無法到達我們所需要的1秒的定時,因此,必須通過軟件來處理這個問題,假設(shè)取T0的最大定時為50ms,即要定時1秒需要經(jīng)過20次的50ms的定時。對于這20次計數(shù),就可以采用

5、軟件的方法來統(tǒng)計了。 設(shè)定TMOD=01H,設(shè)置定時/計數(shù)器0工作在方式1。 給T0定時/計數(shù)器的TH0,TL0裝入預(yù)置初值,通過下面的公式可以計算出: N=t/Ty=(50×10^-3)/(1×10^-6)=50000 *=65536-50000=15536=3CB0H 即TH0=3CH,TL0=0B0H. 這樣,當(dāng)定時/計數(shù)器0計滿50ms時,產(chǎn)生一個中斷,我們可以在中斷效勞程序中,對中斷次數(shù)加以統(tǒng)計,以實現(xiàn)數(shù)字鐘的邏輯功能。 2.2數(shù)字鐘的時間顯示 顯示器的時間顯示采用動態(tài)掃描電路驅(qū)動形式,以到達簡化電路的目的。但要注意所需的驅(qū)動電流比靜態(tài)驅(qū)動時要大,因此要增加驅(qū)

6、動電路。可采用 74LS244或者晶體管;其中74LS244是用來驅(qū)動段選碼,晶體管是驅(qū)動位選碼。 電子鐘的時鐘時間在六位數(shù)碼管上進展顯示,因此,在部RAM中設(shè)置顯示緩沖區(qū)共8個單元。 LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1 37H 36H 35H 34H 33H 32H 31H 30H 小時 分隔符 分鐘 分隔符 秒 . > . 3.系統(tǒng)的硬

7、件設(shè)計 3.1單片機的功能介紹 AT89C51是一種帶4K字節(jié)FLASH存儲器的低電壓、高性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃速存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。外形及引腳排列如下圖 。 圖

8、3.1 單片機AT89C52引腳功能簡化圖 3.2時鐘振蕩電路 時鐘振蕩器即時鐘脈沖發(fā)生器,產(chǎn)生整個芯片部各功能電路正常操作所需的時鐘脈沖和定時信號。最常用的一種電路連接方法是,在*TAL1和*TAL2這2只引腳之間外接一只晶體振蕩器*TAL和2只電容C1和C2到地〔如圖5-3所示〕,與片電路共同構(gòu)成一個多諧振蕩器電路。其振蕩頻率取決于外接石英晶體振蕩器元件*TAL的固有頻率,常選取12MHZ或6MHZ的晶振。 典型的晶振取11.0592MHz(因為可以準(zhǔn)確地得到9600波特率和19200波特率,用于有串口通訊的場合)/12MHz(產(chǎn)生準(zhǔn)確的uS級時歇,方便定時操作)

9、特別注意:對于31腳(EA/Vpp),當(dāng)接高電平時,單片機在復(fù)位后從部ROM的0000H開場執(zhí)行;當(dāng)接低電平時,復(fù)位后直接從外部ROM的0000H開場執(zhí)行。 圖3.2時鐘振蕩電路圖 3.3鍵盤控制電路 鍵盤分編碼鍵盤和非編碼鍵盤。鍵盤上閉合鍵的識別由專用的硬件編碼器實現(xiàn),并產(chǎn)生鍵編碼號或鍵值的稱為編碼鍵盤,如計算機鍵盤.而靠軟件編程來識別的稱為非編碼鍵盤; 在單片機組成的各種系統(tǒng)中,用的最多的是非編碼鍵盤。也有用到編碼鍵盤的。非編碼鍵盤有分為:獨立鍵盤和行列式〔又稱為矩陣式〕鍵盤。下列圖5-6是非編碼鍵盤式控制電路。 圖3.3 鍵盤控制電路 按鍵在閉合和斷開

10、時,觸點會存在抖動現(xiàn)象為使CPU能正確地讀出端口的狀態(tài),對每一次按鍵只作一次響應(yīng),就必須考慮如何去除抖動,常用的去抖動的方法有兩種:硬件方法和軟件方法。單片機中常用軟件法,軟件法其實很簡單,就是在單片機獲得端口為低的信息后,不是立即認定按鍵已被按下,而是延時10毫秒或更長一些時間后再次檢測端口,如果仍為低,說明按鍵確實按下了,這實際上是避開了按鍵按下時的抖動時間。而在檢測到按鍵釋放后〔端口為高〕再延時5-10個毫秒,消除后沿的抖動,然后再對鍵值處理。不過一般情況下,我們通常不對按鍵釋放的后沿進展處理,實踐證明,也能滿足一定的要求。 4.系統(tǒng)的軟件設(shè)計 4.1系統(tǒng)軟件設(shè)計流程圖

11、 這次的數(shù)字鐘設(shè)計用到很多子程序,最好將它們分為假設(shè)干個相對獨立且相互聯(lián)系的局部。主程序是先開場,然后啟動定時器,定時器啟動后在進展按鍵檢測,檢測完后,就可以顯示時間。以下是數(shù)字鐘工作的流程圖。 開場 顯示初始化,設(shè)置定時器,定時50毫秒,開斷斷。器 根據(jù)計數(shù)值顯示時間 到60秒? S鍵按下? M鍵按下? H鍵按下? 到60分? 到24小時? 秒計數(shù)加1 小時計數(shù)加1 分計數(shù)加1 小時計數(shù)值清0 是 否 否 否 是 是 是 否 否 是 否 R鍵按下? 否 是 秒計數(shù)清零 是 分計數(shù)清零 圖4.1 數(shù)字鐘

12、工作流程圖 4.2 系統(tǒng)中斷流程圖 單片機一般允許有多個中斷源,當(dāng)幾個中斷源同時向CPU請求中斷時,就存在CPU優(yōu)先響應(yīng)哪一個中斷請求源的問題〔優(yōu)先級問題〕,一般根據(jù)中斷源的輕重緩急排隊,優(yōu)先處理最緊急事件的中斷請求,于是便規(guī)定每一個中斷源都有一個中斷優(yōu)先級別,并且CPU總是響應(yīng)級別最高的中斷請求。 當(dāng)CPU正在處理一個中斷源請求的時候,又發(fā)生了另一個優(yōu)先級比它高的中斷源請求,如果CPU能夠暫時中止對原來中斷處理程序的執(zhí)行,轉(zhuǎn)而去處理優(yōu)先級更高的中斷源請求,待處理完以后,再繼續(xù)執(zhí)行原來的低級中斷處理程序,這樣的過程稱為中斷嵌套。 以下列圖是定時器中斷效勞子程序流

13、程圖 開場 顯示初始化,設(shè)置定時器,定時50毫秒 根據(jù)計數(shù)值顯示時間 到60秒? 到60分? 到24小時? 秒計數(shù)加1 小時計數(shù)加1 分計數(shù)加1 所有計數(shù)值清0 是 否 是 否 是 否 圖4.2 定時器中斷效勞子程序流程圖 4.3子程序說明 4.3.1 按鍵掃描 按鍵處理是先檢測秒按鍵是否按下,秒按鍵如果按下,秒就加1;如果沒有按下,就檢測分按鍵是否按下,分按鍵如果按下,分就加1;如果沒有按下,就檢測時按鍵是否按下,時按鍵如果按下,時就加1;如果沒有按下,就檢測復(fù)位鍵是否按下,復(fù)位健按鍵如果按下,時鐘就復(fù)位。如果沒有按下,把時

14、間顯示出來。 4.3.2 數(shù)碼管動態(tài)掃描 時間顯示是先秒個位計算顯示,然后是秒十位計算顯示,再是分個位計算顯示,再然后是分十位顯示,再就是時個位計算顯示,最后是時十位顯示。 動態(tài)顯示的特點是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留特性,使人的感覺好似各位數(shù)碼管同時都在顯示。 5.數(shù)字鐘元件清單和軟件介紹 5.1數(shù)字鐘元件清單 列元件清單的主要目的是為了更好地理論聯(lián)系實際,為了硬件設(shè)計和仿真起到了不可磨滅的作用,做到心中

15、有數(shù)。以下是數(shù)字鐘的元件清單 元件名稱 規(guī)格型號 數(shù)量〔個〕 單片機 AT89C51 1 電阻 RES/10K,RES/220 5,8 晶振 11.0592MHz 1 電容 30pF/220uf 2,1 按鍵 BUTTON 4 排阻 RESPACK-8/10K 1 鎖存器 74LS245 1 液晶顯示 7SEG-MP*6-CC 1 二極管 1N4148 4 表5.1電子鐘元器件清單 5.2軟件調(diào)試 翻開程序調(diào)試軟件keil uVision3,在里面新建一個工程,接著新建文件,編寫相應(yīng)程序。編寫好的各個程序進展編譯與連接。

16、但假設(shè)是在該過程中,看見我們編好的程序有錯誤,則根據(jù)他相應(yīng)的提示來修改錯誤,直到該程序能夠正確編譯為止。能夠正常編譯的程序說明沒有什么問題了,此時我們在點擊相關(guān)欄目,讓它生成我們在硬件仿真時所需要的.HE*文件。 5.3硬件調(diào)試 翻開Proteus 仿真軟件,按照方案所選的電路元件來設(shè)計整體電路,先把芯片按一定的位置放好,然后按相應(yīng)的對象進展連接,連接時需仔細,以免調(diào)試時發(fā)生錯誤。做好之后把編程所生成的。HE*文件加載到AT89C52中,運行仿真軟件,查看運行效果。如果運行出錯則就根據(jù)他相應(yīng)的提示來修改錯誤,直到仿真成功為止。 .

17、 > . 總結(jié) 通過本次仿真的設(shè)計,我遇到很多自己不理解的問題及書本上或是我以前沒有看見過的知識點。在面對這些問題時,我首先采用的是上網(wǎng)搜尋的方法,在根據(jù)別人的提示,想想自己的問題出在哪里,該怎么解決。當(dāng)我還是無法想到解決的方法時,我就帶著自己的問題到圖書館查閱資料或找同學(xué)互相交流,如果我的問題還是沒有解決,我就帶著問題去問我們的指導(dǎo)教師,讓他幫我解決。采用這樣的方法,我的很多問題都迎刃而解了!其次,我不但努力解決自己遇到的問題,還幫助同學(xué)解決他們遇到的問題。這樣一來,我的知識得到了進一步的穩(wěn)固,

18、同學(xué)的問題也得到了相應(yīng)的解決,我到達了一舉雙收的效果,我為此而感到快樂。 讓我覺得仿真的最大成果是:知道了將理論用到實際當(dāng)中時,會遇到很多的問題。需要我們一個一個地把它解決,根據(jù)自己所學(xué)的專業(yè)根底知識分析具體原因,具體問題具體分析,再逐一把它克制掉。知道理論與實際的差距,所以以后要多加強實際動手的能力。因此,學(xué)習(xí)就應(yīng)該采取理論與實踐相結(jié)合的方式,理論的問題,也就是實踐性的課題。這種做法既有助于完成理論知識的穩(wěn)固,又有助于帶動實踐,解決實際問題,加強我們的動手能力和解決問題的能力。最后,我相信以后不管遇到什么困難和挫折,不要畏懼,要敢于向前探索。這樣問題才能迎刃而解。 .

19、 > . 附錄一 系統(tǒng)程序源代碼 S_SET BIT P1.0 ;數(shù)字鐘秒控制位 M_SET BIT P1.1 ;分鐘控制位 H_SET BIT P1.2 ;小時控制位 RESET BIT P1.3 ;復(fù)位鍵 SECONDEQU 30H MINUTEEQU 31H HOUREQU 32H TTEQU 34H ORG 0000H SJMP START ORG 0BH LJMP INT_T0 ;定時器0溢出

20、中斷矢量 START:MOV DPTR,#TABLE MOV HOUR, #0 ;初始化 MOV MINUTE,#0 MOV SECOND,#0 MOV TT,#0 ;計數(shù)值賦0 MOV TMOD,#01H ;定時器/計數(shù)器工作在方式1 MOV TH0,#3CH ;定時50毫秒 MOV TL0,#0B0H MOV IE,#82H ;EA中斷總允許位置1 SETB TR0 ;允許T0累加計數(shù)。 ;判斷是否有控制鍵按下,是哪一個鍵按下 A1: LCALL DISPLAY MOV P1,#0FFH ;把P1腳置成高電平 JNB S_SET

21、,S1 JNB M_SET,S2 JNB H_SET,S3 JNB RESET,S4 LJMP A1 ;如果沒有鍵按下重新檢測 S1: LCALL DELAY ;有S_SET鍵按下去抖動 S_SET,A1 ;確實有鍵按下進入下面處理,否則為干擾重新檢測 INC SECOND ;秒值加1 LCALL DISPLAY MOV A,SECOND CJNE A, #60, J0 ;判斷是否加到60秒 MOV SECOND,#0 LJMP J0 ;等待按鍵彈起來,按一次,只加一次 S2: LCALL DELAY

22、 ;有M_SET鍵按下去抖動 M_SET,A1 INC MINUTE ;分鐘值加1 LCALL DISPLAY MOV A,MINUTE CJNE A,#60,J1 ;判斷是否加到60分 MOV MINUTE,#0 LJMP J1 S3: LCALL DELAY ;有H_SET鍵按下去抖動 H_SET,A1 INC HOUR ;小時值加1 LCALL DISPLAY MOV A,HOUR CJNE A,#24,J2 ;判斷是否加到24小時 MOV HOUR,#0 LJMP J2 S4: LCALL

23、 DELAY ;有RESET鍵按下去抖動 RESET,A1 LJMP START J0: S_SET,A1 LCALL DISPLAY SJMP J0 J1: M_SET,A1 LCALL DISPLAY SJMP J1 J2: H_SET,A1 LCALL DISPLAY SJMP J2 ;定時器中斷效勞程序(每50ms中斷一次),對秒,分鐘和小時的計數(shù) INT_T0:MOV TH0,#3CH MOV TL0,#0B0H INC TT MOV A,TT CJNE A,#20,RETUNE ;計時1秒 INC SECON

24、D MOV TT,#0 MOV A,SECOND CJNE A,#60,RETUNE INC MINUTE MOV SECOND,#0 MOV A,MINUTE CJNE A,#60,RETUNE INC HOUR MOV MINUTE,#0 MOV A,HOUR CJNE A,#24,RETUNE MOV HOUR,#0 MOV MINUTE,#0 MOV SECOND,#0 MOV TT,#0 RETUNE: RETI ;顯示控制子程序 DISPLAY: MOV A,SECOND ;顯示秒 MOV B,#10 DIV AB ;商和

25、余數(shù)分別保存在A和B CLR P3.6 MOVC A,A+DPTR ;把A+DPTR指定單元容復(fù)制到A MOV P0,A;將A中查得結(jié)果送P0端口顯示 LCALL DELAY SETB P3.6 MOV A,B CLR P3.7 MOVC A,A+DPTR ;把A+DPTR指定單元容復(fù)制到A MOV P0,A LCALL DELAY SETB P3.7 CLR P3.5 MOV P0,#40H ;顯示分隔符 LCALLDELAY SETB P3.5 MOV A,MINUTE ;顯示分鐘 MOV B,#10 DIV AB CLR P3.

26、3 MOVC A,A+DPTR MOV P0,A LCALL DELAY SETB P3.3 MOV A,B CLR P3.4 MOVC A,A+DPTR MOV P0,A LCALL DELAY SETB P3.4 CLR P3.2 MOV P0,#40H ;顯示分隔符 LCALL DELAY SETB P3.2 MOV A,HOUR ;顯示小時 MOV B,#10 DIV AB CLR P3.0 MOVC A,A+DPTR MOV P0,A LCALL DELAY SETB P3.0 MOV

27、 A,B CLR P3.1 MOVC A,A+DPTR MOV P0,A LCALL DELAY SETB P3.1 RET TABLE:DB3FH,06H,5BH,4FH,66H DB6DH,7DH,07H,7FH,6FH DELAY: MOVR6,#5 ;5ms延時子程序 D1:MOVR7,#250 ;1ms D0:NOP NOP DJNZ R7,D0 DJNZ R6,D1 RET END 附錄二系統(tǒng)電路圖 . >

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!