




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目錄一、摘要1二、緒論3設計的基本思路與主要內容3三、數字時鐘系統設計43.1系統功能要求43.2整體方案4四、硬件設計與分析64.1硬件設計原理64.2各單元電路介紹64.2.1AT89C51單片機介紹6AT89C5164.2.2 單片機最小應用系統64.2.3系統原理圖8五、軟件設計95.1 主程序的設計95.2鍵輸入程序105.3顯示程序115.4延時程序125.5中斷程序12六、調試與運行166.1 電路仿真166.2 調試和運行16七、參考文獻18八、系統原理圖19九、程序清單20數字時鐘設計(電子信息工程專業09(1)班,徐某)一、摘要單片微型計算機簡稱單片機,它是把微型計算機的各
2、個功能部件:中央處理器CPU、隨機存取存儲器RAM、只讀存儲器ROM、I/O接口、定時器/計數器以及串行通信接口等待集成在一塊芯片上,構成一個完整的微型計算機,故又把它稱為單片微型計算機。當今信息科技高速發展,使用方便、低成本電子設備已逐步成為我們日常生活中電子產品的主力軍。用軟件代替硬件的電子設備能大大地節省成本,且有利于資源的節約,因此,以軟代硬的設計必將成為我們現代設計的主流。本設計是利用MCS-51系列單片機內部的定時器/計數器進行中數年定時,配合軟件延時實現時、分、秒的計時。該方案節省硬件成本,且能夠使設計者在定時/計數器的使用、中數年及程序設計方面得到鍛煉和提高,因此本系統將采用軟
3、件方法實現計時。關鍵詞: 單片機;數碼管;程序設計二、緒論設計的基本思路與主要內容設計一個電子產品,首先了解它能實現的功能,時鐘系統最基本的功能就是實現計時,在這里設計的數字電子時鐘,它能實現計時和校時的功能,給電子鐘加上電自動計時,設計一個按鍵對時鐘進行復位和三個按鍵對時間進行調整。硬件設計很簡單,主要包括:單片機、按鍵電路、驅動顯示電路,以及LED顯示器四個部分。單片機選用AT89C51芯片,它無須外擴程序存儲器,設計電路很簡單。由于只用了四個按鍵,所以采用獨立式按鍵使設計更簡單。顯示時、分、秒加兩個分隔符,采用8位的數碼管,用常用的74LS244來驅動LED數碼管顯示字符。簡易數字時鐘可
4、實現校時和整點報時功能,該軟件采用C語言來實現,主要包括主程序、鍵輸入程序、顯示程序、定時程序和中斷程序等軟件模塊。把原程序加入原理圖,做出電子鐘的仿真,以秒計數并顯示時、分、秒。其中秒和分為60進制,小時為24進制計數。可通過按鍵實現時鐘復位和分、秒、時的校正。三、數字時鐘系統設計3.1系統功能要求以單片機技術為核心,充分應用各種外圍電路元器件,設計一個通過顯示器顯示時間(時、分、秒)的電子鐘。要求:上電時,時、分、秒顯示為00時、00分、00秒,并以秒為單位開始計時;運行狀態下,按動控制按扭S-SET,對秒進行調整;運行狀態下,按動控制按扭M-SET,對分進行調整;運行狀態下,按動控制按扭
5、H-SET,對小時進行調整。當數字時鐘運行到正點時,實現自動報時功能。當按下T-SET鍵是實現小時由24進制和12進制的相互轉換。3.2整體方案電子鐘的電路圖主要由單片機(AT89C51)、鍵盤電路、驅動顯示電路和LED顯示器四部分組成,它主要實現時鐘的顯示,以及對時、分、秒進行調整,即實現調時的功能。其數字鐘系統整體結構如圖2-1所示。七段數碼管AT89C51驅動LED顯示器位選按 鍵圖2-1 電子鐘系統整體結構顯示方案方案一:靜態顯示就是當CPU將要顯示的字或字段碼送到輸出口,顯示器就可以顯示出所要顯示的字符,如果CPU不去改寫它,它將一直保持下去;靜態顯示硬件開銷大,電路復雜,信息刷新速
6、度慢。方案二:動態顯示則是一位一位地輪流點亮顯示器地各個位(掃描)。對于顯示器的每一位而言,每隔一段時間點亮一次;動態顯示耗能較小,但編寫程序較復雜。動態顯示硬件連接簡單,信息刷新速度快。由于本次設計是對時間進行顯示,如采用靜態顯示,則所占用的I/O口較多,電路較復雜,所以在此選擇的是方案二,采用動態顯示。鍵盤方案方案一:獨立式鍵盤。獨立式鍵盤的各個按鍵相互獨立,每個按鍵獨立地與一根數據輸入線(單片機并行接口或其他芯片的并行接口)連接。獨立式鍵盤配置靈活,軟件結構簡單,但每個按鍵必須占用一根接口線,在按鍵數量不多時,接口線占用多。所以,獨立式按鍵常用于按鍵數量不多的場合。方案二:矩陣式鍵盤。矩
7、陣式鍵盤采用的是行列式結構,按鍵設置在行列的交點上.(當接口線數量為8時,可以將4根接口線定義為行線,另4根接口線定義為列線,形成4*4鍵盤,可以配置16個按鍵。)由于本設計只用了四個按鍵,不需要采用矩陣式鍵盤,所以選用第一種方案,采用獨立式鍵盤。計時方案采用軟件控制:利用單片機內部的定時/計數器進行定時,配合軟件定時實現時、分、秒的計時。該方案能夠使設計者,在設計的過程中容易實現,且節省硬件成本,因此本系統將采用軟件方法實現計時。四、硬件設計與分析4.1硬件設計原理時鐘電路的核心是AT89C51單片機,其內部帶有2KB的可反復擦寫的只讀Flash程序存儲器和128 bytes的隨機存取數據存
8、儲器(RAM),無須外擴程序存儲器。電腦時鐘沒有大量的運算和暫存數據,現有的128B片內RAM已能滿足要求,也不必外擴片RAM。系統配備8位LED數碼管顯示和3個獨立式按鍵,用P0口作為鍵盤接口電路,P1口和P3口作為段碼和位碼輸出口,并在字段碼輸出口接74LS245芯片,用該芯片來驅動LED數碼管顯示。利用P0.0、P0.1和P0.2作為功能按鍵輸入口。4.2各單元電路介紹4.2.1AT89C51單片機介紹 AT89C51是一個低電壓,高性能CMOS 8位單片機,片內含2k bytes的可反復擦寫的只讀Flash程序存儲器和128 bytes的隨機存取數據存儲器(RAM),器件采用ATMEL
9、公司的高密度、非易失性存儲技術生產,兼容標準MCS51指令系統,片內置通用8位中央處理器和Flash存儲單元,所以說AT89C51是一個功能強大的單片機。 AT89C51是一個低功耗高性能單片機,它有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內含2個外中斷口,2個16位可編程定時計數器,2個全雙工串行通信口,AT89C51可以按照常規方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結合在一起,特別是可反復擦寫的Flash存儲器可有效地降低開發成本。同時AT89C51的時鐘頻率可以為零,即具備可用軟件設置的睡眠省電功能,系統的喚醒方式有RAM、定時/計數器、串行口
10、和外中斷口,系統喚醒后即進入繼續工作狀態。省電模式中,片內RAM將被凍結,時鐘停止振蕩,所有功能停止工作,直至系統被硬件復位方可繼續運行。4.2.2 單片機最小應用系統時鐘電路和復位電路是單片機最小應用系統中必不可少的。單片機時鐘電路圖,如圖3-1所示:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL2應不接。有余輸入至內部時鐘信號要通過一個二分頻觸發器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。圖3-1 單片機時鐘電路圖復位是使單片機或系統中的其他部件處于某種確定
11、的初始狀態。單片機的工作就是從復位開始的,當在單片機的RST引腳引入高電平并保持2個機器周期時,單片機內部就執復位操作(若該引腳持續保持高電平,單片機就處于循環復位狀態)。實際應用中,復位操作有兩種基本的形式:一種是上電復位,另一種是上電與按鍵均有效的復位。由于本次設計采用的是上電復位,所以這里只介紹上電復位,如下圖3-3所示:圖3-3上電復位電路上電復位要求接通電源后,單片機自動實現復位操作。常用的上電復位如上圖所示。上電瞬間RST引腳獲得高電平,隨著電容C1的充電,RST引腳的高電平將逐漸下降。4.2.3系統原理圖AT89C51的P1口接入三個按鍵,對時、分、秒進行調整。P0口輸出字段碼,
12、控制要顯示的字符,外接74LS245芯片,驅動LED顯示。P3口輸出字位碼,去控制要顯示的位,其原理圖如圖3-6所示。圖3-6 電子鐘原理圖當接入電源時,數字電子鐘以秒為單位開始計時。運行狀態下,按下控制按鍵S-SET,對秒進行調整;按下M-SET調整分鐘;按下H-SET對小時進行調整。這樣通過三個按鍵,分別對時、分、秒進行調整,從而實現調時。五、軟件設計在軟件設計中,整個程序的主框架是以定時1s計算的方式來實現電子鐘。定時1s的程序段,使用動態顯示程序實現延時,既完成了延時,也完成了數字的顯示。在計算程序中,使對應于時、分、秒的變化量按照60進制和24進制進行計算,動態顯示程序直接引用這些變
13、量,達到顯示的數字也隨之不斷變化,即完成了電子鐘的功能。其軟件功能模塊主要有鍵輸入程序、中斷程序、顯示程序,以及延時程序。需要說明的是,這里設計的是簡易的電子鐘,主要是用程序運行來計算時間,這樣用程序來確定出1s的時間精度是很有限的,所以整個時鐘的精度不太高。5.1 主程序的設計初始化將時、分、秒各單元的內容清空,置T0為計數器方式1,分別給計數器的高8位和低8位賦計數初值,啟動T0工作。鍵入一個按鍵,如執行此動作,秒值加1,否則重新鍵如按鍵。主程序模塊:主程序流程圖,如圖4-1所示 初始化鍵輸入開始鍵執行結束圖4-1 主程序流程圖5.2鍵輸入程序鍵輸入程序用于調整時間。以秒為例,按下按鍵S-
14、SET,判斷S-SET是否真的被按下,若沒有鍵按下,轉到A1程序段,再次鍵入按鍵,重新判斷。若按鍵按下了,則調用延時程序,消除抖動現象秒值加1,當秒值大于60時,秒清零,進行下一次計時,同時分加一,并轉到J0顯示。此過程循環執行,其程序流程圖如圖4-2所示:顯示S-SET是否按下否按下秒值加1秒60 ?清零N調用延時YYN圖4-2 鍵輸入程序流程圖A1:LCALLDISPLAY;調用延時程序JNBS_SET,S1;判斷按鍵是否按下JNBM_SET,S2JNBH_SET,S3LJMPA1S1: LCALLDELAY;去抖動JBS_SET,A1INCSECOND;秒值加1MOVA,SECONDCJ
15、NEA,#60,J0;判斷是否加到60秒MOVSECOND,#0 ;秒清0LJMPJ0J0:JBS_SET,A1LCALLDISPLAY ;調用顯示SJMPJ05.3顯示程序顯示其時、分、秒的數值,和兩個分隔符。以顯示秒為例,當P3.7輸入高電平時,秒的個位所對應的字段碼點亮,顯示其秒的個位;當秒有十位輸入時,P3.6輸入高電平,秒所十位對應的字段碼點亮,顯示其秒十位。其程序流程圖如圖4-3所示:取字段碼取字位碼顯示秒個位顯示秒十位調用延時圖4-3 顯示程序流程圖DISPLAY:MOVA,SECOND;顯示秒MOVB,#10DIVABCLRP3.6MOVCA, A+DPTR ;取字段碼MOVP
16、0, ALCALLDELAY ;調用延時SETBP3.6 ;顯示秒十位MOVA,BCLRP3.7MOVCA,A+DPTR ;取字段碼MOVP0,ALCALLDELAY ; 調用延時,去抖動SETBP3.7 ;顯示秒個位CLRP3.55.4延時程序按鍵抖動時間一般為5ms10ms,因此延時10ms,其流程圖如圖4-4所示:#10送R6#250送R7返回(R6)=(R7) ?YN圖4-4 延時程序流程圖DELAY:MOVR6,#10 ;延時10msD1:MOVR7,#250DJNZR7,$DJNZR6,D1RET5.5中斷程序中斷程序主要用于控制顯示的字符。當秒值大于60時,秒清零,重新計數,分值
17、加1,秒、分同時顯示;當分值大于60時,分清零,重新計數,小時加1,秒、分、時同時顯示,當小時大于23時,一天的計時完畢,秒、分、時均清零,進行第二天的計時。此任務循環執行。其程序流程圖如圖4-5所示:秒加1秒59?小時23?分59?秒清0,分加1小時清0分清0,時加1NYYYNN圖4-4 中斷程序流程圖DISPLAY: MOVA,SECOND;顯示秒MOVB,#10DIVABCLRP3.6MOVCA, A+DPTRMOVP0, ALCALLDELAY ;調用延時SETBP3.6 ;顯示秒的十位MOVA,BCLRP3.7MOVCA,A+DPTRMOVP0,ALCALLDELAYSETBP3.7
18、 ;顯示秒的個位CLRP3.5MOVP0,#40H;顯示分隔符LCALLDELAYSETBP3.5MOVA,MINUTE;顯示分鐘MOVB,#10DIVABCLRP3.3MOVCA,A+DPTRMOVP0,ALCALLDELAYSETBP3.3 ;顯示分的十位MOVA,BCLRP3.4MOVCA,A+DPTRMOVP0,ALCALLDELAYSETBP3.4 ;顯示分個位CLRP3.2MOVP0,#40H;顯示分隔符LCALLDELAYSETBP3.2MOVA,HOUR;顯示小時MOVB,#10DIVABCLRP3.0MOVCA,A+DPTRMOVP0,ALCALLDELAYSETBP3.0
19、;顯示時的十位MOVA,BCLRP3.1MOVCA,A+DPTRMOVP0,ALCALLDELAYSETBP3.1 ;顯示時的個位RET六、調試與運行6.1 電路仿真此設計的電路在單片機仿真軟件Proteus.Professional.7.1中進行仿真,仿真電路如圖5-1所示:圖5-1 電子鐘仿真電路圖6.2 調試和運行在KEIL (單片機匯編) C51軟件中編寫好的程序,將程序放入單片機仿真軟件中,結合硬件電路進行調試與運行。通過按鍵對時間進行調整。如顯示時間為14-30-22,既是14點30分22秒,通過以下調整則可實現。按動S-SET鍵,將秒調到22;按動M-SET鍵,將分調到30;按動
20、H-SET鍵,將時調到14。則將時間調到了所要顯示的時間14-30-22,通過此方法可將時間調整到任何需要顯示的時間。七、參考文獻1.朱永金等主編,單片機應用技術,中國勞動社會保障出版社。2.彭冬明.韋友春主編,單片機實驗教程,理工大學出版社。 3.朱家建主編,單片機原理及應用,機械工業出版社。4.胡漢才主編,單片機原理及接口技術,清華大學出版社。 5.張偉主編,單片機原理及應用,機械工業出版社。八、系統原理圖九、程序清單S_SETBITP1.0;數字鐘秒控制位M_SETBITP1.1;分鐘控制位H_SETBITP1.2;小時控制位SECONDEQU30HMINUTEEQU31HHOUREQU
21、32HTCNTEQU34H ORG00HSJMPSTARTORG0BHLJMPINT_T0 START: MOVDPTR,#TABLEMOVHOUR,#0;初始化MOVMINUTE,#0MOVSECOND,#0MOVTCNT,#0MOVTMOD,#01H ;置T0為計數器方式1MOVTH0,#(65536-50000)/256;定時50毫秒MOVTL0,#(65536-50000)MOD 256MOVIE,#82HSETB TR0 ;啟動T0工作A1:LCALL DISPLAYJNBS_SET,S1JNBM_SET,S2JNBH_SET,S3LJMPA1S1: LCALLDELAY;去抖動JB
22、S_SET,A1INCSECOND;秒值加1MOVA,SECONDCJNEA,#60,J0;判斷是否加到60秒MOVSECOND,#0LJMPJ0S2: LCALLDELAYJBM_SET,A1K1: INCMINUTE;分鐘值加1MOVA,MINUTECJNEA,#60,J1;判斷是否加到60分MOVMINUTE,#0LJMPJ1S3: LCALLDELAYJBH_SET,A1K2: INCHOUR;小時值加1MOVA,HOURCJNEA,#24,J2;判斷是否加到24小時MOVHOUR,#0 LJMPJ2 J0:JBS_SET,A1LCALLDISPLAYSJMPJ0J1:JB M_SET,A1 LCALLDISPLAYSJMPJ1J2: JB H_SET,A1LCALL DISPLAYSJMP J2INT_T0: MOVTH0,#(65536-50000)/256MOVTL0,#(65536-50000)MOD 256INCTCNTMOVA,TC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 佛山到寧波中考數學試卷
- 肝炎病毒分類介紹課件
- 電子廠面試數學試卷
- 撫州9年級上冊數學試卷
- 肝膽疾病的早期預防和小手術
- 二年級期末沖刺數學試卷
- 高州市一模初中數學試卷
- 連云港市東海縣招聘事業單位人員考試真題2024
- 2024年貴港市平南縣自然資源局招聘筆試真題
- 肌營養不良癥的綜合護理
- 天津市部分區2023-2024學年高一學期期末生物試卷
- 人教版五年級英語下冊期末試卷及答案
- 二年級下冊期末無紙筆測評方案
- CJJ89-2012 城市道路照明工程施工及驗收規程
- 花店上班勞動合同范本共
- 2024年信息科技中考考試題庫及答案(模擬)
- 原發性肝癌教案(勿刪)
- 20G520-1-2鋼吊車梁(6m-9m)2020年合訂本
- 電梯維護保養規則(TSG T5002-2017)
- 義務教育數學課程標準(2022年版)解讀與案例分析
- 弘揚教育家精神主題課件
評論
0/150
提交評論