LED數(shù)字倒計(jì)時器課程設(shè)計(jì)報(bào)告.doc

上傳人:good****022 文檔編號:116421227 上傳時間:2022-07-05 格式:DOC 頁數(shù):29 大小:405.32KB
收藏 版權(quán)申訴 舉報(bào) 下載
LED數(shù)字倒計(jì)時器課程設(shè)計(jì)報(bào)告.doc_第1頁
第1頁 / 共29頁
LED數(shù)字倒計(jì)時器課程設(shè)計(jì)報(bào)告.doc_第2頁
第2頁 / 共29頁
LED數(shù)字倒計(jì)時器課程設(shè)計(jì)報(bào)告.doc_第3頁
第3頁 / 共29頁

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

15 積分

下載資源

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

資源描述:

《LED數(shù)字倒計(jì)時器課程設(shè)計(jì)報(bào)告.doc》由會員分享,可在線閱讀,更多相關(guān)《LED數(shù)字倒計(jì)時器課程設(shè)計(jì)報(bào)告.doc(29頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、單片機(jī)課程設(shè)計(jì)報(bào)告淮陰師范學(xué)院物理與電子電氣工程學(xué)院課程設(shè)計(jì)報(bào)告學(xué)生姓名曹金莎學(xué) 號171313242班 級1304專 業(yè)電子信息科學(xué)與技術(shù)題 目LED數(shù)字倒計(jì)時器指導(dǎo)教師(姓名)戴金橋 王欣(職稱)2015年11月一、設(shè)計(jì)任務(wù)與要求 近年來隨著計(jì)算機(jī)在社會領(lǐng)域的滲透,單片機(jī)的應(yīng)用正在不斷深入人們的生活,同時帶動傳統(tǒng)控制檢測日新月異。在實(shí)時檢測和自動控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往作為一個核心部件來使用,僅單片機(jī)方面的知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),針對具體應(yīng)用特點(diǎn)與軟件結(jié)合。本項(xiàng)目討論了LED數(shù)字倒計(jì)時器的設(shè)計(jì)與制作,此方案線路簡單,成本低,應(yīng)用前景廣闊。本次設(shè)計(jì)的任務(wù)與要求是,使基于

2、AT89C51單片機(jī)的LED數(shù)字倒計(jì)時器主要具有如下功能:(1)LED數(shù)碼管顯示倒計(jì)時時間。(2)倒計(jì)時過程中能設(shè)置多個鬧鐘,當(dāng)?shù)褂?jì)時值倒計(jì)到設(shè)定值時會發(fā)出約2s的報(bào)警聲音。(3)通過按鍵可以對倒計(jì)時設(shè)定初值。倒計(jì)時初始值范圍在24:00:00-00:00:60之間,用戶可根據(jù)需要對其進(jìn)行設(shè)置,設(shè)置成功后復(fù)位初始值為成功設(shè)定值。二、硬件電路設(shè)計(jì)設(shè)計(jì)電路采用模塊化設(shè)計(jì),主要由AT89C51單片機(jī)、復(fù)位電路、LED顯示模塊和控制模塊組成(如圖2.1)。晶振電路數(shù)碼管電路AT89C51復(fù)位電路蜂鳴電路按鍵電路 圖2.1 基于AT89C51單片機(jī)的數(shù)字倒計(jì)時器系統(tǒng)框圖 圖2.2 基于AT89C51單片

3、機(jī)的數(shù)字倒計(jì)時器電路原理圖(元件清單見附錄一)(2)AT89C51單片機(jī)控制模塊 圖2.3 單片機(jī)控制模板(3)復(fù)位電路 復(fù)位是單片機(jī)的初始化操作,只需給AT89S51的復(fù)位引腳RST加上大于2個機(jī)器周期(即24個時鐘振蕩周期)的高電平就可得單片機(jī)復(fù)位,復(fù)位時,PC初始化為0000H,使單片機(jī)從OUT單元開始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外由于程序運(yùn)行出錯或操作錯誤而使系統(tǒng)處于死鎖狀態(tài),為擺脫死鎖狀態(tài),也需按復(fù)位鍵使得RST腳為高電平,使單片機(jī)重新啟動。 圖2.4復(fù)位電路(4) LED顯示模塊 圖2.5 LED顯示模塊(5)按鍵電路 按鍵電路的按鍵功能說明:(1)K1用于設(shè)置時間的分鐘。

4、(2)K2用于設(shè)置小時以及設(shè)置鬧鐘的開關(guān)。(3)K3用于設(shè)置分鐘和鬧鐘的分鐘。(4)K4用于設(shè)置完成退出。 圖2.6 按鍵模塊3、 軟件設(shè)計(jì)(1)程序流程圖開始CPU系統(tǒng)初始化定時器0初始化中斷初始化設(shè)置時間?設(shè)置鬧鈴時間顯示刷新啟動走時有關(guān)變量初始化時分變化?刷新顯示1秒到秒指示鬧鈴時間?蜂鳴器結(jié)束YNYNYNYN 圖3.1 LED數(shù)字倒計(jì)時器程序流程圖(2) 程序清單(匯編語言) K1 EQU p1.0 K2 EQU P1.1 K3 EQU p1.2 K4 EQU P1.3 ORG 0000H LJMP MAIN ORG 000BH LJMP TIME ORG 0100H MAIN: MO

5、V SP, #50H MOV 20H, #3CH ;時間 BIN SECOND MOV 21H, #3CH ; BIN MINUTE MOV 22H, #18H ; BIN HOUR MOV 23H, #01H ;鬧鈴 BIN MINUTE MOV 24H, #01H ; BIN HOUR MOV 25H, #00H ;定義一個標(biāo)志位 MOV 30H, #00H ;時間 BCD SECOND MOV 31H, #00H MOV 32H, #00H ; BCD MINUTE MOV 33H, #00H MOV 34H, #00H ; BCD HOUR MOV 35H, #00H MOV 36H,

6、 #01H ;鬧鈴 BCD MINUTE MOV 37H, #00H MOV 38H, #01H ; BCD HOUR MOV 39H, #00H MOV TMOD, #01H ;16位計(jì)數(shù)器T0,方式1 MOV THO, #03CH ;賦初值 MOV TLO, #0B0H MOV IE, #10000111B;開中斷TO,EA=1 SETB TRO ;T0啟動計(jì)數(shù) MOV R2, #14H ;計(jì)數(shù)器 MOV P2, #0FFH LOOP:LCALL TIMEPRO ;調(diào)用現(xiàn)在時間與鬧鈴時間比較程序 LCALL DISPLAY1 ;調(diào)用現(xiàn)在時間顯示子程序 JB K1,M1 ;判斷按鍵是否按下

7、LCALL XIAOZHEN1 ;調(diào)用消抖程序 MOV C, 25H.0 JC A1 A1: CLR 25H.0 LCALL SETTIME ;調(diào)用設(shè)置現(xiàn)在時間子程序 LJMP LOOP M1: JB K2, M2 LCALL XIAOZHEN2 MOV C, 25H.0 JC A2 A2: CLR 25H.0 LCALL SETTIME ;調(diào)用設(shè)置鬧鐘的程序 LJMP LOOP M2: JB K4, M3 A3: LCALL XIAOZHEN3 MOV C, 25H.0 JC A4 A4: CLR 25H.0 M3: LJMP LOOP SETTIME: LO: LCALL DISPLAY1

8、 JB K2, L1 LCALL XIAOZHEN4 MOV C, 25H.0 JC A5 A5: CLR 25H.0 DEC 22H MOV A,22H CJNE A,#18H,G012 MOV 22H, #00H MOV 34H, #00H MOV 35H, #00H LJMP L0 L1: JB K3, L2 LCALL XIAOZHEN5 MOV C, 25H.0 JC A6 A6: CLR 25H.0 DEC 21H MOV A,21H CJNE A,#3CH,G011 MOV 21H, #00H MOV 32H, #00H MOV 33H, #00H LJMP L0 GO11: M

9、OV B,#0AH DIV AB MOV 32H, B MOV 33H, A LJMP L0 GO12: MOV B,#0AH DIV AB MOV 34H, B MOV 35H, A LJMP L0 L2: JB K4, L0 LCALL XIAOZHEN3 MOV C, 25H.0 JC AX AX: CLR 25H.0 RET SETATIME: LCALL DISPLAY2 NO: LCALL DISPLAY2 JB K3, N1 LCALL XIAOZHEN6 MOV C, 25H.0 JC A7A7: CLR 25H.0DEC 24HMOV A, 24H CJNE A,#24,G0

10、22 MOV 24H, #00HMOV 38H, #00HMOV 39H, #00HLJMP N0N1: JB K1 N2 LCALL XIAOZHEN7MOV C, 25H.0JC A8A8: CLR 25H.0DEC 23HMOV A, 23HCJNE A,#60,G021 MOV 23H, #00HMOV 36H, #00HMOV 37H, #00HLJMP N0G021: MOV B, #0AH DIV AB MOV 36H, B MOV 37H, ALJMP N0 G022: MOV B, #0AH DIV AB MOV 38H, B MOV 39H, ALJMP N0N2: JB

11、K4 N0 LCALL XIAOZHEN3MOV C, 25H.0JC A9 A9: CLR 25H.0RETTIMEPRO: MOV A, 21HMOV B, 23H CJNE A, B, BK MOV A, 22H MOV B, 24H CJNE A, B, BK SETB 25H.0 MOV C, 25H.0 JC XX XX: LCALL TIMEOUT BK: RET TIMEOUT: X1: LCALL BZ LCALL DISPLAY2CLR 25H.0JB K4,X1RETBZ: CLR P3.7MOV R7, #250T2: MOV R6, #124T3: DJNZ R6,T

12、3DJNZ R7,T2JB K4,XYLCALL XIAOZHEN3MOV C, 25H.0JC XY1XY: RETXY1: LJMP LOOPXIAOZHEN1: LCALL DISPLAY1JB K1,XIAOZHEN1MOV C, K1LCALL JC XIAOZHEN1LCALL DELAYMOV C, K1JC XIAOZHEN1STOP1: MOV C, K1JNC STOP1LCALL DELAYMOV C, K1JNC STOP1SETB 25H.0RETXIAOZHEN2: LCALL DISPLAY2 JB K2,XIAOZHEN2MOV C, K2JC XIAOZHEN

13、2STOP2: MOV C, K2 JNC STOP2 LCALL DELAY MOV C, K2 JNC STOP2 SETB 25H.0 RET XIAOZHEN3: LCALL DISPLAY1 JB K4,XIAOZHEN3 MOV C, K4 JC XIAOZHEN3 LCALL DELAY MOV C, K4 JC XIAOZHEN3 STOP3: MOV C, K4 JNC STOP3 LCALL DELAY MOV C, K4JNC STOP3SETB 25H.0RETXIAOZHEN4: LCALL DISPLAY1 JB K2,XIAOZHEN4MOV C, K2JC XI

14、AOZHEN4 LCALL DELAY MOV C, K2 JC XIAOZHEN4 STOP4: MOV C, K2 JNC STOP4 LCALL DELAY MOV C, K2 JNC STOP4 SETB 25H.0RETXIAOZHEN5: LCALL DISPLAY1 JB K3,XIAOZHEN5MOV C, K3JC XIAOZHEN5LCALL DELAYMOV C, K3JC XIAOZHEN5STOP5: MOV C, K3 JNC STOP5LCALL DELAYMOV C, K3JNC STOP5SETB 25H.0RETXIAOZHEN6: LCALL DISPLA

15、Y2 JB K3, XIAOZHEN6 MOV C, K3 JC XIAOZHEN6 LCALL DELAY MOV C, K3 JC XIAOZHEN6 STOP6: MOV C, K3 JNC STOP6 LCALL DELAY MOV C, K3 JNC STOP6 SETB 25H.0 RETXIAOZHEN7: LCALL DISPLAY2 JB K1, XIAOZHEN7 MOV C, K1 JC XIAOZHEN7 LCALL DELAY MOV C, K1 JC XIAOZHEN7 STOP7: MOV C, K1 JNC STOP7 LCALL DELAY MOV C, K1

16、 JNC STOP7 SETB 25H.0 RET DELAY: MOV R4, #14H DL00: MOV R5, #OFFH DL11: DJNZ R5, DL11 DJNZ R4, DL00 RETTIME: PUSH ACC PUSH PSWMOVTH0, #03CHMOV TL0, #0B0HDJNZ R2, RET0MOV R2, #14HMOV A, 20HCLR CDEC ACJNE A, #0, G01MOV 20H, #3CHMOV 30H, #0MOV 31H, #0MOV A, 21HDEC ACJNE A, #3CH, G02MOV 21H, #0HMOV 32H,

17、 # 0 MOV 33H, # 0 MOV A, 22H DEC A CJNE A, #18H,GO3 MOV 22H, # 00H MOV 34H, # 0 MOV 35H, # 0 AJMP RETOGO1: MOV 20H, A MOV B, # 0AH DIV AB MOV 31H, A MOV 30H, B AJMP RETO GO2: MOV 21H, A MOV B, # 0AH DIV AB MOV 33H, AEEH MOV 32H, B AJMP RETO GO3: MOV 22H, A MOV B, # OAH DIV AB MOV 35H, A MOV 34H, B A

18、JMP RETO RETO: POP PSW POP ACC RETI DISPLAY1: MOV R0, # 30H MOV R3, # 0EEH MOV A, R3 PLAY1: MOV P2, A MOV A,RO MOV DPTR, # DSEG1 MOVC A,A + DPTR MOV P0, A LCALL DL1 MOV P2, # 0EEH MOV A, R3 RL A JNB ACC.6, LD1 INC R0 MOV R3, A LJMP PLAY1 LD1: RET DISPLAY2: PUSH ACC PUSH PSW MOV RO, # 36H MOV A, R3 P

19、LAY2: MOV P2, A MOV A,R0 MOV DPTR, # DSEG1 MOVC A,A+DPTR MOV P0, A LCALL DLL MOV P2, # 0FFH MOV A, R3 RL A JNB ACC.6, LD2 INC R0 MOV R3, A LJMP PLAY2 LD2: POP PSW POP ACC RET DL1: MOV R7, # 05H DL: MOV R6, # 0FFH DL6: DJNZ R6, $ DJNZ R7, DL RETDSEG1: DB 3FH, 06H, 5BH, 4FH, 66H DB 6DH, 7DH, 07H, 7FH,

20、 6FH END程序清單2(C語言)#include sbit kh=P10;/定義kh為與P1.0相連接的按鍵B1 sbit km=P11;/定義km為與P1.1相連接的按鍵B2 sbit ks=P12;/定義ks為與P1.2相連接的按鍵B3 sbit st=P13;/定義st為與P1.3相連接的按鍵B4 sbit b=P37;/定義b為P3.7unsigned char table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71; / LED數(shù)碼管

21、從0到F的顯示unsigned char i=0,hour=0,minute=0,second=0;void delayms(unsigned int x) unsigned char a=160;/定義無符號變量a的值為160,指延時時間為160個及其周期乘以x,160可以為180等,自己設(shè)置 while(x-) while(a-); a=160; /定義延時程序的延時時間為160個及其周期乘以x,避免按鍵抖動的影響main() TH0=(65536-50000)/256;/設(shè)置定時時間對高八位賦值,50000是50000個機(jī)器周期,0.05秒 TL0=(65536-50000)%256;/

22、設(shè)置定時時間對低八位賦值,50000是50000個機(jī)器周期,0.05秒TMOD=1;/定時器模式 TR0=0;/停止計(jì)時 ET0=1;/開定時器中斷 EA=1;/開總中斷 while(1) P0=tablehour/10;/顯示分鐘的十位 P2=32;/對數(shù)碼管進(jìn)行位選和段選,選中顯示分鐘的十位 delayms(1);/延時以便于顯示 P2=0 xff;/重新給P2口一個高電平,避免誤操作 P0=tablehour%10;/顯示分鐘的個位 P2=16;/對數(shù)碼管進(jìn)行位選和段選,選中顯示分鐘的個位 delayms(1);/延時以便于顯示 P2=0 xff;/重新給P2口一個高電平,避免誤操作 P

23、0=tableminute/10;/顯示秒鐘的十位 P2=8;/對數(shù)碼管進(jìn)行位選和段選,選中顯示秒鐘的十位 delayms(1);/延時以便于顯示 P2=0 xff;/重新給P2口一個高電平,避免誤操作P0=tableminute/10;/顯示秒鐘的十位 P2=4;/對數(shù)碼管進(jìn)行位選和段選,選中顯示秒鐘的十位 delayms(1);/延時以便于顯示 P2=0 xff;/重新給P2口一個高電平,避免誤操作 P0=tablesecond%10;/對數(shù)碼管進(jìn)行位選和段選,選中顯示秒鐘的個位 P2=1;/對數(shù)碼管進(jìn)行位選和段選,選中顯示秒鐘的個位 delayms(1);/延時以便于顯示 P2=0 xf

24、f;/重新給P2口一個高電平,避免誤操作 if(!kh)/如果小時按鍵B1按下 delayms(200);/延時200乘以160個機(jī)器周期,避免按鍵抖動的影響 hour+;/定時時間的小時加一 if(hour23)/因?yàn)槭菬o符號的變量,減到0之后,再減就會變成ff,大于23 hour=23; else if(!km)/如果分鐘按鍵B2按 delayms(200);/延時200乘以160個機(jī)器周期,避免按鍵抖動的影響 minute+; if(minute59)/因?yàn)槭菬o符號的變量,減到0之后,再減就會變成ff,大于59 minute=59; else if(!ks)/如果秒按鍵按下B3 dela

25、yms(200);/延時200乘以160個機(jī)器周期,避免按鍵抖動的影響 second+; if(second59)/因?yàn)槭菬o符號的變量,減到0之后,再減就會變成ff,大于59 second=59; if(!st)/開始按加按 delayms(200);/延時200乘以160個機(jī)器周期,避免按鍵抖動的影響 TR0=1;/開始計(jì) if(TR0=1&hour=0&minute=0&second=20)/定時滿20次是1秒,即50000個機(jī)器周期為一 i=0; second-;/秒減一 if(second59)/因?yàn)槭菬o符號的變量,減到0之后,再減就會變成ff,大于59 second=59;/秒為59

26、 minute-;/分鐘減一 if(minute59)/因?yàn)槭菬o符號的變量,減到0之后,再減就會變成ff,大于59 minute=59;/因?yàn)槭菬o符號的變量,減到0之后,再減就會變成ff,大于59 hour-;/小時減一 if(hour23)/因?yàn)槭菬o符號的變量,減到0之后,再減就會變成ff59,如果小時減過0說明計(jì) hour=0; minute=0; second=0; TR0=0;/停止計(jì)時 4、 利用Proteus軟件仿真 打開Proteus的ISIS 7 Professional編輯環(huán)境,并從元件庫中選出所需的元件,放置元器件、電源和地、連線得到電路原理圖(如圖2.2)。打開Keil

27、uVision4編輯環(huán)境,單擊Create a new file按鈕新建一個空白文本,將匯編程序輸入文本中后以.asm后綴保存匯編文件,點(diǎn)擊菜單欄中Project新建Project工程,建立一個工程文件,選擇Atmel_AT89C51型號的CPU。在樹狀文件目錄中右擊Source Group1加載.asm文件到工程中,右擊Target1后選擇Option for GroupSource Group1設(shè)置頻率為12MHz并選擇創(chuàng)建HEX文件。單擊編譯按鈕未出現(xiàn)錯誤在電路原理圖中單擊單片機(jī),加載HEX文件。圖4.1 程序代碼文件加載圖點(diǎn)擊開始按鈕仿真開始。第一次仿真 第二次仿真調(diào)節(jié)鬧鐘 按K4鍵完

28、成設(shè)置 仿真完成五總結(jié) 單片機(jī)的應(yīng)用正在不斷深入人們的生活,同時帶動傳統(tǒng)控制檢測日新月異。AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲器。 通過本次設(shè)計(jì),使我們認(rèn)識并了解了基本的設(shè)計(jì)開發(fā)過程,在這過程中,我的身邊的同學(xué)們給了我很大的啟示和幫助,而且我覺得對以前不了解的單片機(jī)只是有了一個更感更深的了解。我相信我所學(xué)的東西在以后的工作學(xué)習(xí)中會起很大的作用。 在本次設(shè)計(jì)中得到了指導(dǎo)老師王老師和魏老師的大力支持還有小組成員的討論與合作才能完成本次設(shè)計(jì),在此表示感謝! 附錄一元件名稱型號數(shù)量/個用途單片機(jī) AT89SC511控制核心晶振12MHz1晶振電路電容30pF2晶振電路電解電容22F/10V1復(fù)位電路電阻10k1復(fù)位電路按鍵5按鍵電路數(shù)碼管共陽6顯示器三極管2N50881蜂鳴器喇叭8/0.5W1蜂鳴器電阻1k2蜂鳴器電阻1001蜂鳴器電阻2.7k4上拉電阻電阻3308上拉電阻電源+5V/0.5A1提供+5V- 29 -

展開閱讀全文
溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(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)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!