單片機匯編程序電子鬧鐘_第1頁
單片機匯編程序電子鬧鐘_第2頁
單片機匯編程序電子鬧鐘_第3頁
單片機匯編程序電子鬧鐘_第4頁
單片機匯編程序電子鬧鐘_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、電子鬧鐘課程設(shè)計摘要:本課程設(shè)計主要是通過單片機系統(tǒng),綜合運用定時器、中斷、數(shù)碼顯 示等知識設(shè)計一個可定時的電子鐘。它包括系統(tǒng)總體方案及硬件設(shè)計,軟件設(shè)計, Proteus軟件仿真等部分。硬件設(shè)計的主要任務(wù)是根據(jù)總體設(shè)計要求,以及在所選機型的基礎(chǔ)上,確定系統(tǒng)擴展所要用的存儲器,I/O電路及有關(guān)外圍電路等然后設(shè)計出系統(tǒng)的電路原 理圖。合理的軟件結(jié)構(gòu)是設(shè)計出一個性能優(yōu)良的單片機應(yīng)用性系統(tǒng)軟件的基礎(chǔ),因此必須充分重視。編寫完程序后在用 Proteus軟件仿真檢查設(shè)計是否合理。 一.課程設(shè)計的概況通過對51單片機的擴展,接鍵盤,顯示器等相應(yīng)的外圍器件。在LED顯示器中分成靜態(tài)顯示和動態(tài)顯示兩類,在本設(shè)

2、計中主要用了它的動態(tài)顯示功能, 動態(tài)顯示利用了人視覺的短暫停留, 在數(shù)據(jù)的傳輸中是一個一個傳輸?shù)模?且先傳 輸?shù)臀?。鍵盤是由若干個按鍵組成的開關(guān)矩陣, 是一種廉價的輸入設(shè)備。鍵盤通 常包括有數(shù)字鍵,字母鍵以及一些功能鍵。操作人員可以通過對鍵盤向計算機輸 入數(shù)據(jù),地址,指令或其他的控制命令,實現(xiàn)簡單的人機對話。這里采用非編碼 式鍵盤。通過51單片機的P1 口擴展出獨立連接式鍵盤。外圍擴展復(fù)位,時鐘 電路,利用軟件源程序代碼實現(xiàn)相應(yīng)的功能。二課程設(shè)計實現(xiàn)的功能:1 .能顯示時時-分分-秒秒。2.能夠設(shè)定定時時間,修改定時時間。3.定時時間到能發(fā)出警報聲或者啟動繼電器,從而控制電器的起停使用是單片機

3、作為核心的控制元件,使得電路的可靠性比較高,功能也比較 強大,而且可以隨時的更新系統(tǒng),進(jìn)行不同狀態(tài)的組合。本系統(tǒng)采用單片機AT89C51作為本設(shè)計的核心元件,利用7段共陰LED 作為顯示器件。接入共陰LED顯示器,可顯示時,分鐘,秒,單片機外圍接有 定時報警系統(tǒng),定時時間到,揚聲器發(fā)出報警聲,提示預(yù)先設(shè)定時間電器的起停 時間到,從而控制電器的起停。電路由下列部分組成:時鐘電路、復(fù)位電路、控制電路、LED顯示,報警電路,芯片選用AT89C51單片機。系統(tǒng)框圖四.硬件設(shè)計1. 單片機AT89C51AT89C51是一個低電壓,高性能CMOS型8位單片機,片內(nèi)含4KB的可 反復(fù)擦寫的Flash只讀程序

4、存儲器(ROM )和128 B的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn) MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,內(nèi)置功能強 大的微型計算機的AT89C51提供了高性價比的解決方案。引腳使用說明:I/O端口的編程實際上就是根據(jù)應(yīng)用電路的具體功能和要求對I/O寄存器進(jìn)行編程。具體步驟如下:1)根據(jù)實際電路的要求,選擇要使用哪些I/O端口。2)初始化端口的數(shù)據(jù)輸出寄存器,應(yīng)避免端口作為輸出時的開始階段出現(xiàn)不 確定狀態(tài),影響外圍電路正常工作。3)根據(jù)外圍電路功能,確定FO端口的方向,初始化端口的數(shù)據(jù)方向寄存器。對于用作輸

5、入的端口可以不考慮方向初始化,因為FO的復(fù)位缺省值為輸入。4)用作輸入的FO管腳,如需上拉,再通過輸入上拉使能寄存器為其內(nèi)部配 置上拉電阻。5)最后對I/O端口進(jìn)行輸出(寫數(shù)據(jù)輸出寄存器)和輸入(讀端口)編程,完成 對外圍電路的相應(yīng)功能。幾個特殊管腳:XTAL1 :反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2 :來自反向振蕩器的輸出。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電Pi PHo :ii1ftVCC i P0.DAD ftPII J3J fP-0.1(AD*)* ;440 ?(ACJJPI4 .;5a pgs &P i -;垢PIe dr PO.

6、SPIf d4剛冷R137;丨 P0 ?|AOF)H 1 F 1a門1 03 1(TKOj P3i H1 1主於1 ALEiFHOSFle d1 2ZV5 P&ENi”j rtl?2 * I1 A B忡Pl14 PJ B5 :ID扣0 “1*1 | Wit ) P3s q1 AT5n fz a(A 1 J $ d卩2J蝕1XlALiIV3*3.1 P2 2A1&1HlAlk I d1 Q32J1CAf 3GMO/i:1PS 0ElR$r/vpp d1p vccP3 0219h PI T(TKD| 吟 13iaPl 6XTALZ L斗17h pi sXTALl61*Pl.41 侗P3 ? UG1

7、6u Pi a(INTli P3 3 714b pi s(TO) P ,4a131 P13 |AIN1)(T1) P3.& rig12F1.Q (AINO)GnO匚10np P3.7AT89C51AT89C20512. 時鐘電路單片機的時鐘產(chǎn)生方法有兩種:內(nèi)部時鐘方式和外部時鐘方式。本系統(tǒng)中AT89C51單片機采用內(nèi)部時鐘方式。最常用的內(nèi)部時鐘方式是采用外接晶體和 電容組成的并聯(lián)諧振回路。振蕩晶體可在1.2MHz12MHz之間。電容值無嚴(yán)格要求,但電容取值對振蕩頻率輸出的穩(wěn)定性、 大小和振蕩電路起振速度有少許影響,一般可在20pF100pF之間取值。時鐘電路圖如下:XTA1.2AT89C51_

8、 aXTAL1TAT89C513. 數(shù)碼管顯示電路單片機中通常使用7段LED, LED是發(fā)光二極管顯示器的縮寫。LED顯示器由 于結(jié)構(gòu)簡單,價格便宜,體積小,亮度高,電壓低,可靠性高,壽命長,響應(yīng)速 度快,顏色鮮艷,配置靈活,與單片機接口方便而得到廣泛應(yīng)用。LED顯示器是由若干個發(fā)光二極管組成顯示字段的顯示部件,當(dāng)發(fā)光二極管導(dǎo)通時,相應(yīng)的一個點或一個筆劃發(fā)光,控制不同組合的二極管導(dǎo)通,就能顯示出各種字符。LED顯示器有多種形式,在單片機系統(tǒng)中使用最多的是七段數(shù)碼顯示器。LED七段數(shù)碼顯示器由8個發(fā)光二極管組成顯示字符,根據(jù)內(nèi)部發(fā)光二極管的連 接形式不同,LED有共陰極和共陽極兩種,如下圖所示引

9、腳和其內(nèi)部結(jié)構(gòu):VL - J-pVT3 81爼b1C7衛(wèi)六1 87- ? 1_| J ;F總!71五軟件設(shè)計1.設(shè)計流程圖LJMP MAINORG 000BH/LJMP TIME主程序部分ORG 0100HMAIN:MOV SP ,#50HMOV 20H,#00H;秒鐘 BINMOV 21H,#00H;分鐘 BINMOV 22H,#00H;小時 BINMOV 23H,#01HMOV 24H,#01HMOV 25H,#00HMOV 30H,#00HMOV 31H,#00HMOV 32H,#00HMOV 33H,#00HMOV 34H,#00HMOV 35H,#00HMOV 36H,#01HMOV

10、 37H,#00HMOV 38H,#01HMOV 39H,#00HMOV TMOD,#O1H;16位計數(shù)器MOV TH0,#03CH;賦計數(shù)初值MOV TL0,#0B0HMOV IE,#10000111BSETB TR0;T0啟動計數(shù)MOV R2,#14HMOV P2,#0FFHLOOP: LCALL TIMEPROLCALL DISPLAY1JB P1.1,M1LCALL SETTIME;調(diào)用設(shè)定時間程序LJMP LOOPLCALL SETATIME ;調(diào)用設(shè)定時間程序;調(diào)用設(shè)定鬧鐘時間程序;延時時間;調(diào)用時間允許程序;調(diào)用延時;判斷P1.2是否釋放?釋放則繼續(xù);調(diào)用延時;小時增加1;判斷小

11、時是否到 24時?未到繼續(xù)循環(huán);小時復(fù)位涎時LJMP LOOPM2:JB P1.4,M4LCALL LOOKATIMEM4:LJMP LOOPDELAY:MOV R4,#030HDLOO:MOV R5,#0FFHDL11:MOV R6,#9HDL12:DJNZ R6,DL12DJNZ R5,DL11DJNZ R4,DL00RET/設(shè)定時間程序SETTIME:L0:LCALL DISPLAY1MM1:JB P1.2 ,L1MOV C,P1.2JC MM1LCALL DELAY1JC MM1MSTOP1:MOV C,P1.2JNC MSTOP1LCALL DELAY1MOV C,P1.2JNC M

12、STOP1INC 22HMOV A,22HCJNE A,#18H,GO12MOV 22H,#00HMOV 34H,#00HMOV 35H,#00HLJMP L0L1:JB P1.3 ,L2MOV C,P1.3JC L1LCALL DELAY1JC L1JNC MSTOP2LCALL DELAY1;判斷P1.3是否釋放?釋放則繼續(xù);調(diào)用延時;分鐘增加一;分鐘復(fù)位MOV C,P1.3JNC MSTOP2INC 21HMOV A,21HCJNE A,#3CH,GO11MOV 21H,#00HMOV 32H,#00HMOV 33H,#00HLJMP L0GO11:MOVB,#0AH;將A中的內(nèi)容分成高

13、低兩部分DIVABMOV32H,BMOV33H,ALJMPL0GO12:MOVB,#0AHDIVABMOV34H,BMOV35H,ALJMPL0L2:JB P1.4,L0MOV C,P1.4JC L2LCALL DELAY1MOV C,P1.4JC L2STOP1:MOV C,P1.4JNC STOP1LCALL DELAY1/設(shè)置鬧鐘時間;調(diào)用延時;判斷按鍵P1.4是否釋放?;調(diào)用延時SETATIME:LCALL DISPLAY2;調(diào)用時間運行MM2:N0:LCALL DISPLAY2JB P1.3,N1JC MM2LCALL DELAY1JC MM2MSTOP3:MOV C,P1.3JNC

14、 MSTOP3LCALL DELAY1MOV C,P1.3JNC MSTOP3INC 24HMOV A,24HCJNE A,#24,GO22MOV 24H,#00HMOV 38H,#00HMOV 39H,#00HLJMP NON1:JB P1.1,N2MOV C,P1.1JC N1LCALL DELAY1JC N1MSTOP4:MOV C,P1.1JNC MSTOP4LCALL DELAY1MOV C,P1.1JNC MSTOP4INC 23HMOV A,23HCJNE A,#60,GO21MOV 23H,#00HMOV 36H,#00HMOV 37H,#00HLJMP N0GO21:MOVB

15、,#0AHDIVABMOV36H,BMOV37H,A;判斷P1.3是否釋放?;設(shè)定小時增加1;時鐘復(fù)位;判斷P1.1是否按下?;判斷P1.1是否釋放?;設(shè)定鬧鐘分鐘增加1;判斷A是否到60分?;分鐘復(fù)位;將A中的內(nèi)容分成高低兩部分LJMPNOGO22:MOVB,#0AHDIVABMOV38H,BMOV39H,ALJMPN0N2:JB P1.4 ,NO;判斷P1.4是否按下?MOV C,P1.4JC N2LCALL DELAY1MOV C,P1.4JC N2STOP2:MOV C,P1.4;判斷P1.4是否釋放?JNC STOP2LCALL DELAY1MOV C,P1.4JNC STOP2LJ

16、MP LOOPTIMEPRO:MOV A,21HMOV B,23HCJNE A,B,BKMOV A,22HMOV B,24HCJNE A,B,BKSETB 25H.0MOV C,25H.0JC XXXX:LCALL TIMEOUTBK:RETTIMEOUT:X1:LCALL BZLCALL DISPLAY2CLR 25H.0JB P1.4, X1LCALL DELAY;判斷分鐘是否運行到設(shè)定的鬧鐘的分鐘?;判斷時鐘是否運行到設(shè)定的鬧鐘的時鐘?;調(diào)用時間鬧鐘響應(yīng)程序;調(diào)用喇叭響應(yīng)程序CLR 25H.0LJMP DISPLAY1BZ: CLR P3.7MOV R7,#250T2:MOV R6,#1

17、24T3: DJNZ R6,T3DJNZ R7,T2SETB P3.7RET;喇叭響應(yīng)程序;響應(yīng)延時時間LOOKATIME:LCALL DISPLAY2MM:JB P1.4, LOOKATIMEMOV C,P1.4JC MMLCALL DELAY1MOV C,P1.4JC MMSTOP3:MOV C,P1.4JNC STOP3LCALL DELAY1MOV C,P1.4JNC STOP3LJMP LOOPDELAY1:MOV R4,#14HDL001:MOV R5,#0FFHDL111:DJNZ R5,DL111DJNZ R4,DL001RET/延時時間;調(diào)用時間運行程序;判斷按鍵P1.4是否

18、按下;時間延時DL1:MOVR7,#02HDL:MOVR6,#0200HDL6:DJNZR6,$DJNZR7,DLRET;延時時間DSEG1:DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FHEND六系統(tǒng)仿真1.操作過程首先將幾個按鍵從上往下為 k1,k2,k3,k4。k1與p1.4相連,k2與p1.3相連,k3與p1.3相連,k4與p1.1相連。當(dāng)需要設(shè)定當(dāng)前時間時,按一下 k4鍵,進(jìn)入時間設(shè)定狀態(tài),按一下 k2, 分加1 ;按一下k3,小時加1。如此反復(fù)來設(shè)定當(dāng)前時間。調(diào)好時間后按k1退出當(dāng)前時間設(shè)定狀態(tài)。當(dāng)要設(shè)定定時時間時,按下k3,進(jìn)入定時時間設(shè)定狀態(tài),按一下 k2,小時 加1 ;按一下k4,分鐘加1。如此反復(fù)來設(shè)定要設(shè)定的定時時間。設(shè)好后,按下 k1退出定時時間設(shè)定狀態(tài)。2.系統(tǒng)總體電路圖GNDLSIsU121.3239VCC17162322P3.7/RDP1.7P3.6/WRP1.6P3.5/T1P1.5P3.4/T0P1.4P3.3/INT1P1.3P3.2/tNT0P1.2P3.1/TXDP1.1P3.0/RXDP1.0P2.7/A15P2.6/A14P2.5/A13EAP2.4/A12ALE

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論