數字電子時鐘設計_第1頁
數字電子時鐘設計_第2頁
數字電子時鐘設計_第3頁
數字電子時鐘設計_第4頁
數字電子時鐘設計_第5頁
已閱讀5頁,還剩25頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、課程設計說明書 課程設計名稱: 專業課程設計 課程設計題目: 電子鐘的設計 學 院 名 稱 : 信息工程學院 專業:電子信息工程 班級: 120411 學號: 姓名: 評分: 教師: 20 15 年 07 月 05 日 專業 課程設計任務書20142015學年 第 2 學期 分散1周 第16周18周集中 題 目 電子鐘的設計內容及要求:1.利用單片機最小系統設計一個電子鐘(不能采用單片機開發系統)2.用8255擴展鍵盤及顯示接口3.顯示方式:*時*分*秒4.時間可以任意修改進度安排:1.布置任務、查閱資料、選擇方案,領儀器設備: 3天; 2.仿真制作圖:3天;3.領元器件、制作、焊接:2天4.

2、調試:2天5.驗收:2天6.寫報告:3天學生姓名: 指導時間:2015.6.87.3地點:任務下達2015年6月8日任務完成 2015 年7月3日考核方式1.評閱 2.答辯 3.實際操作 4.其它指導教師系(部)主任注:1、此表一組一表二份,課程設計小組組長一份;任課教師授課時自帶一份備查。2、課程設計結束后與“課程設計小結”、“學生成績單”一并交院教務存檔。摘 要當今社會,隨著計算機在社會領域的滲透和大規模集成電路的發展,單片機的應用正在不斷地走向深入,由于它具有功能強,體積小,功耗低價格便宜,工作可靠,使用方便等特點,因此它越來越廣泛地應用于自動控制,智能化儀器,儀表,數據采集,軍工產品以

3、及家用電器等各個領域。本文主要介紹一種以AT89C52單片機為核心,以匯編語言作為程序設計語言,配備數碼管、時鐘電路、復位、電源、按鍵等功能模塊的簡易電子鐘。具有簡潔,成本低、易實現等優點,研究數字鐘及擴大其應用有著非常現實的意義。關鍵詞:匯編語言 單片機 簡易電子鐘 按鍵開關目 錄第一章 設計要求1第二章 系統組成及工作原理22.1系統組成22.2工作原理2第三章 硬件電路方案設計43.1 單元電路設計43.2 參數計算7第四章 軟件設計84.1 程序設計流程8第五章 調試結果125.1電路仿真125.2調試14第六章 結 論15參考文獻16附 錄17附錄一:原件清單17附錄二:程序清單及注

4、釋18第1章 設計要求 1. 利用單片機最小系統設計一個電子鐘(不能采用單片機開發系統) 2. 用8255 擴展鍵盤及顯示接口 3. 顯示方式:* 時* 分* 秒 4. 時間可以任意修改25第2章 系統組成及工作原理2.1系統組成本系統包括單片機最小系統、8255A擴展模塊、數碼管顯示模塊、按鍵模塊。系統框圖如圖2.1所示:圖2.1系統組成框圖2.2工作原理2.2.1實現計時的原理單片機內部有兩個計數器,利用它可以獲得精準的時間。開始計時前先給計數器賦一個初值,然后再讓其計數,計數器計滿時會產生溢出,然后調用中斷程序,通過計算溢出的次數,就可以得到1s的時間。需要說明的是,這里設計的是簡易的電

5、子鐘,主要是用程序運行來計算時間,這樣用程序來確定出1s的時間精度是很有限的,所以整個時鐘的精度不太高。2.2.2時間顯示原理設計中定義24H-2CH8個單元為時間顯示緩沖區,里面存放00H-0AH之間的數,其中0AH在查表時會查到的字形碼。讓定時器T0定時50ms。同時再定義一個單元來記錄T0定時器記滿50ms的次數,當該單元中的次數達到了20次時,即時間走了1s鐘,馬上執行時間加1s的程序。即要對24H-2CH中的秒緩沖單元加一,再將更新后的24H-2CH依次查表后送8255A去顯示,這樣便實現了電子鐘走時的功能。數碼管的動態顯示是指一位一位地循環點亮各個數碼管。對于每一個數碼管來說,每隔

6、一段時間點亮一次。通常點亮時間為1ms左右,相隔時間為20ms。如果連續地循環便可在數碼管上穩定地顯示所需顯示的內容。2.2.3時間調整原理8255A的PC口接有按鍵開關,平時不按下,對應的PC口會獲得一個高電平,可一旦有鍵按下,對應的PC口便會接地而獲得一個低電平。設計中只使用了四個PC口。這樣,無鍵按下或只按下一個鍵PC口都會有一個確定的鍵值對應著。例如,PC2-PC5接著K1-K4四個按鍵開關。根據上面所述可知,無鍵按下時,單片機讀到PC口的值為FFH,當K1按下時為FBH。同理,K2對應F7H,K3對應EFH ,K4對應DFH。如此,我們便可在程序中根據讀取到的鍵值讓單片機去執行相應的

7、設置時、分、加、減和確定等功能程序。第3章 硬件電路方案設計3.1 單元電路設計 本次設計分為單片機最小系統模塊、單片機控制8255A模塊、8255A擴展鍵盤顯示模塊三個模塊,以下內容分別對各模塊說明。3.1.1 單片機最小系統模塊單片機最小系統由時鐘電路及復位電路組成,如圖3.3所示。圖3.1為時鐘電路原理圖,在AT89S52芯片內部有一個高增益反相放大器,其輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。而在芯片內部,XTAL1和XTAL2之間跨接晶體振蕩器和微調電容,從而構成一個穩定的自激振蕩器。時鐘電路產生的振蕩脈沖經過觸發器進行二分頻之后,才成為單片機的時鐘脈沖信號。圖3.2為單

8、片機復位電路原理圖,必須使RST/VPD 或RST引(9)加上持續兩個機器周期(即24個振蕩周期)的高電平。例如,若時鐘頻率為12 MHz,每機器周期為1s,則只需2s以上時間的高電平,在RST引腳出現高電平后的第二個機器周期執行復位。單片機常見的復位如圖3.2所示。電路為上電復位電路及按鍵復位,上電復位是利用電容充電來實現的。在接電瞬間,RESET端的電位與VCC相同,隨著充電電流的減少,RESET的電位逐漸下降。只要保證RESET為高電平的時間大于兩個機器周期,便能正常復位。該電路除具有上電復位功能外,若要復位,只需按圖中的RESET鍵,此時電源VCC經電阻R8分壓,在RESET端產生一個

9、復位高電平。 圖3.1 時鐘電路 圖3.2 復位電路圖3.3 單片機最小系統電路3.1.2 單片機控制8255A模塊單片機與8255A的連接圖如圖3.4所示。單片機通過P2、P0口控制8255A,使8255A每一個口都有自己的地址,然后單片機通過對應地址將數據送入相應的I/O口,達到擴展的目的。圖3.4 單片機控制8225A電路3.1.3 8255A擴展鍵盤顯示模塊1. 數碼管顯示電路的設計方案一:靜態顯示CPU將要顯示的字或段送到輸出口,數碼管就可以顯示需要顯示的字符,如果CPU不去改寫它,它將一直保持下去。但靜態顯示硬件開銷大,電路復雜,信息刷新速度慢,故在此不采用。方案二:動態顯示動態顯

10、示在網上一位一位地輪流點亮數碼管的各位。對于數碼管的某一位而言,每隔一段時間點亮一次。動態顯示耗能較小、且硬件連接簡單、信息刷新速度快,但是程序編寫起來較復雜。本次設計采用動態顯示來實現時間顯示。 2. 鍵盤電路的設計方案一:獨立式鍵盤獨立式鍵盤的按鍵相互獨立,每個按鍵獨立的與一根數據輸入線連接。獨立式鍵盤軟件結構簡單,但每個按鍵必須占有一根接口線。所以獨立式按鍵常用語按鍵數量不多的場合。方案二:矩陣式鍵盤矩陣式鍵盤采用的是行列式結構,按鍵設在行列的交點上。為實現時間可調,計劃采用K1、K2、K3、K4四個鍵盤分別實現:模式選擇(即選擇需要調節的位)、繼續計時、數字加一、數字減一的功能。由于本

11、時鐘計劃采用四個功能鍵,不需要采用矩陣式鍵盤,所以采用獨立式鍵盤。最后設計出的8255A擴展鍵盤顯示電路如圖3.5所示。8255A的PA口接數碼管段選端,PB接數碼管位選端,PC口的PC2-PC5接鍵盤控制電路。圖3.5 鍵盤顯示電路3.2 參數計算設計的電路圖見下圖3.61.原件選擇單片機最小系統中的晶振電路和復位電路采用的都是標準電路,故晶振電路中C1、C2取30pf的瓷片電容,選用12MHz晶振;復位電路中濾波電容C3用22uf的電解電容,限流電阻R1選10K。8255輸出電壓為5V,若直接接數碼管,數碼管可能會因為電流過大而燒毀,所以要在引腳與數碼管之間接上限流電阻。已知紅色LED管的

12、壓降為1.7V,若而其最大能通過的電流為15mA,,工作電流在10mA左右為最佳。當線路中的電流為10mA時,限流電阻的阻值為(5-1.7)V/0.01A330,一般取300。2. 初值計算因為選用12MHz的晶振,則一個時鐘周期為1us(T=12/12MHz),令計數器每隔50ms中斷一次,設此時初值為a,則有(65536-a)x1us=50ms求得a=15536D=3CB0H,即定時器的初值為3CB0H。3.8255地址的計算ATC89C52的P0口配置為復低位地址/數據總線與8255芯片的數據總線DB相連,P2送出高8 位地址數據,其中,P2.7接8255A的/CS,P2.6接8255A

13、的A1,P2.5接8255A的A0,P3.6接8255A的/WR,P3.7接8255A的/RD。所以8255A的地址為PA口地址為1FFFH,PB口地址為3FFFH,PC口地址為5FFFH,控制口地址為7FFFH。3.6 電路圖第4章 軟件設計編寫匯編程序時,用到了單片機定時器T0,讓它工作在定時器方式1。P0、P2、P3口均有用到,且有用到P3口的第二功能。P0、P2作為擴展8255A的端口地址,8255A的PA、PB均作為外設輸出,PC作為按鍵輸入。4.1 程序設計流程(1)主程序主要用于系統初始化:設置計時緩沖區的位置及初值,設置8255A的工作方式、定時器的工作方式和計數初值等參數。主

14、程序流程如圖4.1所示。圖4.1 主程序流程框圖(2)計時程序流程圖如圖4.2所示,即定時器0中斷子程序,完成刷新計時緩沖區的功能。系統使用12MHz的晶振,假設定時器0工作在方式1,則定時器的最大定時時間為65.536ms,這個值遠遠小于1s。因此設定時器0工作在方式1,每隔50ms溢出中斷一次,則循環中斷20次延時時間是1s,上述過程重復60次為1分,分計時60次為1小時,小時計時24次則時間重新回到00:00:00。 圖4.2 計時程序流程圖(3)顯示子程序流程圖如圖4.3所示,是將21H23H的內容轉換為十進制數后采用動態顯示方法送顯。圖4.3 顯示子程序流程框圖(4) 按鍵程序包括按

15、鍵檢測程序與按鍵處理程序,程序流程框圖如圖4.4所示。 先檢測按鍵是否按下,若沒有鍵按下則返回主程序,若有按鍵按下則進入按鍵處理程序。按鍵在閉合和斷開時,觸點會存在抖動現象。按鍵抖動時間一般為5ms10ms,抖動可能造成一次按鍵的多次處理問題,故本設計采用軟件延時的方法來消除抖動。當單片機檢測到有按鍵按下時先定時,然后再檢測按鍵的狀態,若仍是閉合狀態則認為真的有鍵按下。當檢測到按鍵釋放時,亦需要做同樣的處理。做完去抖動處理后,讀取鍵值,然后根據鍵值跳轉到相應的子程序中進行操作,操作完成后將結果送顯,然后再返回主程序。圖4.4 鍵盤檢測程序框圖第5章 調試結果5.1電路仿真在硬件電路設計完成,程

16、序運行無誤后,用Proteus仿真軟件完成電路的搭建。在進行電路仿真時先對硬件電路進行檢測排除硬件電路設計中的電氣錯誤,然后再將Keil中編譯生成的HEX文件加載在C52單片機上,開始仿真。電子鐘上電能顯示時分秒,而且能正常走,見下圖5.1圖5.1 電子鐘正常運行加一、減一鍵均能正常使用,詳見圖5.2、5.3。圖5.2加一操作實現圖5.4 減一操作實現時間也可以任意修改,見仿真圖5.4。圖5.4時間可調根據仿真結果可知,該設計基本能達到設計要求,但是因為protues達不到單片機中完美的效果,所以該設計方案能否達到預期效果還得看硬件調試的結果。5.2調試在仿真成功的基礎上,領取元器件,焊接實體

17、電路。本階段使用的工具主要有萬用表、單片機開發板和5V直流穩壓電源。實體電路焊接的過程中需注意,在遵循基本的焊接步驟的基礎上,最好按模進行焊接,完成一個模塊就用萬用表檢測一次,看是否存在短路、斷路、虛焊等問題,及時進行調整。焊接完成后,先單片機開發板將程序下載到單片機中,然后再接電源,上電觀察系統工作現象。下面是調試過程中遇到的一些問題及其解決辦法。 第一次上電調試的現象是數碼管全不亮。首先,檢查電源與地線是否全部接上,是否有接反。確認無誤后繼續對照原理圖,檢查各個器件之間的連接是否連接正確,尤其是單片機與8255A之間的連線,最后檢查出8255A芯片的電源正負極接反了,導致8255A未能工作

18、,所幸發現及時,芯片只微微有些發燙,沒有燒毀。調整線路后重新上電調試,結果數碼管顯示的字符有誤,a段和f段總是一起亮一起滅,根據這個現象可以初步判定a段和f段可能出現短路。經過檢查,a段和f段確出現短路現象,這是因為在焊接的時候大多采用跳線的方式,而數碼管附近線與線之間過于密集,使得a、f段裸露的電線粘連,導致短路。在將數碼管附近的線路調整完后再次上電測試,發現時鐘能正常走,但是按鍵卻沒有用。在反復的對線路進行排查之后,發現路連接無誤,接著檢查連個芯片是否正常工作,然后發現8255A的PC口無論按鍵是按下還是彈起,電壓值始終都是0V。猜測可能是PC口壞了,為了驗證這一猜想,在其他部分不改動的情

19、況下,將PC的工作方式改為輸出,將其連接方式改為串接一個10K的電阻到地,再進行檢測,發現依舊輸出0V。后更換了一塊8255A,發現按鍵能正常工作,因此可以確定是原先那塊芯片的PC口無法正常工作。但因為原件有限沒有可替換的新的8255A芯片,最后只能將按鍵改接到單片機的P1口,并再程序中進行了相應的修改,再上電調試,系統正常工作,功能與設計要求相符。 第六章 結 論本設計中,程序采用的是自頂向下的設計方法。先按照需要實現的功能劃分模塊,再進行模塊化編碼,具有簡單、可讀性強、不易出錯等優點。且由于采用的是模塊化編碼,為將來的維護也帶來一定便利。硬件部分線路設計的也比較簡潔,具有成本低、易實現等優

20、點。經過測試本設計已基本符合設計要求。設計方案的缺點是時間不夠精確,這里是用程序運行來計算時間,這樣計出的1s精度是有限的,無法滿足更高精確度的要求,故本設計只是提供了一種簡易電子鐘的設計方案。在這次課程設計中,運用到了很多以前的專業知識,雖然過去從未獨立應用過它們,但在學習的過程中帶著問題去學習,發現效率很高,這是這次課程設計的一大收獲。在這次課程設計中,發現、提出、分析、解決問題和實踐能力得到了很大的提高。參考文獻1 謝自美電子線路設計·實驗·測試M武漢:華中理工大學出版社,1992.2 張先庭. 單片機原理丶接口與C51應用程序設計. 第1版M 北京:國防工業出版社,

21、2011.3 夏繼強. 單片機實驗與實踐教程. 北京:北京航空航天大學出版社, 2001.4 朱定華單片機原理及接口技術實驗M北京:北方交通大學出版社2002.11.5 何立民單片機應用系統設計M北京:北京航空航天大學出版社,1993.6 付家才單片機控制工程實踐技術M北京:化學工業出版社 2004.3.7 李光才單片機課程設計實例指導M北京:北京航空航天大學出版社 2004.附 錄附錄一:原件清單名 稱型 號數 量單片機AT89C5218255A1晶 振12MHz1電 阻300810K 9電 容33pf222uf1按鍵開關5插 針2(排)排 線10個一排的4(排)附錄二:程序清單及注釋ORG

22、 0000HAJMP MAINORG 000BHAJMP TIMEORG 0300HMAIN:MOV 20H,#00HMOV 21H,#00HMOV 22H,#00HMOV 23H,#00HMOV IP,#02H ;IP,IE初始化MOV IE,#82HMOV TMOD,#01H ;設定定時器工作方式MOV TL0,#0B0HMOV TH0,#3CHSETB TR0 ;啟動定時 MOV DPTR,#7FFFH ;8255A初始化MOV A,#89HMOVX DPTR,AMOV SP,#40H ;重設堆棧指針NEXT: LCALL DISP ;調用顯示子程序?LCALL KEY ;調用按鍵檢測子

23、程序JZ NEXT ; LCALL ANKEY ;調用按鍵處理子程序SJMP NEXT ;重新循環NOPNOPNOP /*定時中斷處理程序*/TIME:PUSH ACC ;保護現場PUSH PSWPUSH DPHPUSH DPLMOV TL0,#0B0H ;賦定時初值MOV TH0,#3CHINC 20H ;MOV A,20HCJNE A,#20,RETI1MOV 20H,#00H ;一秒鐘時間到MOV A,21HADD A,#01HDA AMOV 21H,ACJNE A,#60H,RETI1MOV 21H,#00H ;一分鐘時間到MOV A,22HADD A,#01HDA AMOV 22H,

24、ACJNE A,#60H,RETI1MOV 22H,#00H ;一小時時間到MOV A,23HADD A,#01HDA AMOV 23H,ACJNE A,#24H,RETI1MOV 23H,#00H ;到時間達到24小時,清零.RETI1: POP DPLPOP DPHPOP PSW ;恢復現場POP ACCRETI ;中斷返回 NOPNOP/*顯示子程序 */DISP: ANL 2FH,#10H MOV A,21H ;處理秒21H->2AH,2BHANL A,#0FHMOV 2BH,AMOV A,21HANL A,#0F0HSWAP AMOV 2AH,A MOV 29H,#0AHANL

25、 2EH,#10HMOV A,22H ;處理分鐘22H->27H,28HANL A,#0FHMOV 28H,AMOV A,22HANL A,#0F0HSWAP AMOV 27H,A MOV 26H,#0AHANL 2DH,#10HMOV A,23H ;處理小時23H->24H,25HANL A,#0FHMOV 25H,AMOV A,23HANL A,#0F0HSWAP AMOV 24H,A MOV R0,#24H ;顯示偏移量MOV R3,#08HMOV A,#0FEHSETB CLOOP1: MOV B,A MOV DPTR,#3FFFHMOVX DPTR,A/*數碼管選通設置

26、*/MOV A,R0MOV DPTR,#TABLEMOVC A,A+DPTRMOV DPTR,#1FFFH;送顯示MOVX DPTR,AMOV R4,#20LL:MOV R2,#20 ;延時DJNZ R2,$DJNZ R4,LLINC R0MOV A,BRLC ADJNZ R3,LOOP1 ;循環顯示RETTABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H NOPNOPKEY:;按鍵判斷程序MOV P1,#0FFHMOV A,P1CPL AANL A,#3CHJZ RETX ;無鍵按下則返回LCALL DISP LCALL DISPMOV

27、 P1,#0FFHMOV A,P1 CPL AANL A,#3CHJZ RETX ;鍵盤去抖動。MOV R6,A ;將鍵值存入R6。LOOP2: LCALL DISP ;MOV DPTR,#5FFFHMOVX A,DPTR CPL AANL A,#3CHJNZ LOOP2 ;等待鍵釋放MOV A,R6RETX: RETNOPNOP/*按鍵處理子程序*/ANKEY: CLR EA ;關中斷LX: MOV A,R6JB ACC.2,L1 ;是功能鍵轉L1JB ACC.3,L2 ;是確認鍵轉L2JB ACC.4,L3 ;是減1鍵轉L3JNB ACC.5,L12 ;不是增1鍵,轉L12JB 2DH.4,L6 ;判斷使哪一位(時、分、秒)的值加1JB 2EH.4,L8JB 2FH.4,L9L12: LCALL DISPLCALL DISPLCALL KEY ;判斷有無鍵按下。JZ L12 LJMP LXL2: MOV 30H,#00H ;確認鍵處理程序CLR 2DH.4CLR 2EH.4CLR 2FH.4SETB EARETL3: JB

溫馨提示

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

評論

0/150

提交評論