




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、摘要本設(shè)計主要是對51單片機的一個方面的擴展,是能實現(xiàn)一般定時鬧鐘功能的設(shè)計。需要實現(xiàn)某一功能時,按對應(yīng)的按鍵即可,經(jīng)多次驗證此設(shè)計靈活簡便,可以實現(xiàn)顯示,定時,修改定時,定時時間到能發(fā)出報警聲的功能。系統(tǒng)采用單片機AT89C51作為本設(shè)計的核心元件,在其基礎(chǔ)上外圍擴展芯片和外圍電路,附加時鐘電路,復(fù)位電路,鍵盤接口及LED顯示器。鍵盤采用獨立連接式。還有定時報警系統(tǒng),即定時時間到,通過揚聲器發(fā)出報警聲,提示預(yù)先設(shè)定時間時間到,從而起到定時作用。外圍器件有LED顯示驅(qū)動器及相應(yīng)的顯示數(shù)字電子鐘設(shè)計與制作可采用數(shù)字電路實現(xiàn),也可以采用單片機來完成。若用數(shù)字電路完成,所設(shè)計的電路相當(dāng)復(fù)雜,大概需要
2、十幾片數(shù)字集成塊,其功能也主要依賴于數(shù)字電路的各功能模塊的組合來實現(xiàn),焊接的過程比較復(fù)雜,成本也非常高。若用單片機來設(shè)計制作完成,由于其功能的實現(xiàn)主要通過軟件編程來完成,那么就降低了硬件電路的復(fù)雜性,而且其成本也有所降低,所以在該設(shè)計與制作中采用單片機AT89C51,它是低功耗、高性能的CMOS型8位單片機。片內(nèi)帶有4KB的Flash存儲器,且允許在系統(tǒng)內(nèi)改寫或用編程器編程。另外, AT89C51的指令系統(tǒng)和引腳與8051完全兼容,片內(nèi)有128B 的RAM、32條I/O口線、2個16位定時計數(shù)器、5個中斷源、一個全雙工串行口等。在LED顯示器中,分成靜態(tài)顯示和動態(tài)顯示兩類,在這個設(shè)計的最小系統(tǒng)
3、中主要用了它的動態(tài)顯示功能,動態(tài)顯示器利用了人視覺的短暫停留,在數(shù)據(jù)的傳輸中是一個一個傳輸?shù)?,且先傳輸?shù)臀弧K芡瑫r顯示時,分和秒。按鍵電路設(shè)有四個按鍵:從上往下為k1,k2,k3和k4鍵。按下k1鍵顯示時、分、秒,k3鍵起到定時作用,k2鍵每按一下小時加一,k4鍵每按一下分鐘加一,定時時間到能發(fā)出報警聲。當(dāng)需要校正時間時,先按下k4鍵,再按k2鍵或k3鍵,k3鍵每按一下小時加一,k2鍵每按一下分鐘加一,按k1鍵即回到時間狀態(tài)。能夠設(shè)定定時時間,也可以修改定時時間。 目錄1 概述311 課程設(shè)計的概況312 課程設(shè)計實現(xiàn)的功能32 系統(tǒng)總體方案及硬件設(shè)計421總體方案422硬件設(shè)計42.2.1
4、單片機AT89C514時鐘電路6數(shù)碼管顯示電路63 軟件設(shè)計831 系統(tǒng)軟件設(shè)計832 鍵盤服務(wù)程序833 LED的編程思想83.3.1 方案選擇83.3.2 LED顯示834音響報警電路835系統(tǒng)流程圖93. 6程序模塊104 proteus的系統(tǒng)仿真1541操作過程1542運行結(jié)果圖155 課程設(shè)計體會17參考文獻17附1 定時鬧鐘源程序代碼18附2 系統(tǒng)總體電路圖271概述本文主要是通過單片機系統(tǒng),綜合運用定時器、中斷、數(shù)碼顯示等知識設(shè)計一個可定時的電子鐘。它包括系統(tǒng)總體方案及硬件設(shè)計,軟件設(shè)計,Proteus軟件仿真等部分。 系統(tǒng)總體方案及硬件設(shè)計是本設(shè)計的重要組成部分,在這部分詳細介
5、紹了時鐘原理,硬件設(shè)計,數(shù)碼管LED,以及在設(shè)計過程中考慮到技術(shù)指標(biāo),機型的選擇,器件的選擇等一系列問題。 硬件設(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ǔ),因此必須充分重視。在本設(shè)計中采用應(yīng)用廣泛的C語言編程,便于調(diào)試。用Proteus軟件仿真檢查設(shè)計是否合理。11 課程設(shè)計的概況 通過對51單片機的擴展,接鍵盤,顯示器等相應(yīng)的外圍器件。在LED顯示器中分成靜態(tài)顯示和動態(tài)顯示兩類,在本設(shè)計中主要用了它的動態(tài)顯示功能,動態(tài)顯示利用了人視
6、覺的短暫停留,在數(shù)據(jù)的傳輸中是一個一個傳輸?shù)?,且先傳輸?shù)臀?。鍵盤是由若干個按鍵組成的開關(guān)矩陣,是一種廉價的輸入設(shè)備。鍵盤通常包括有數(shù)字鍵,字母鍵以及一些功能鍵。操作人員可以通過對鍵盤向計算機輸入數(shù)據(jù),地址,指令或其他的控制命令,實現(xiàn)簡單的人機對話。這里采用非編碼式鍵盤。通過51單片機的P1口擴展出獨立連接式鍵盤。外圍擴展復(fù)位,時鐘電路,利用軟件源程序代碼實現(xiàn)相應(yīng)的功能。12 課程設(shè)計實現(xiàn)的功能:u 能顯示 時時-分分-秒秒。u 能夠設(shè)定定時時間,修改定時時間。u 定時時間到能發(fā)出警報聲或者啟動繼電器,從而控制電器的起停。2 系統(tǒng)總體方案及硬件設(shè)計21總體方案 使用是單片機作為核心的控制元件,使
7、得電路的可靠性比較高,功能也比較強大, 而且可以隨時的更新系統(tǒng),進行不同狀態(tài)的組合。 本系統(tǒng)采用單片機AT89C51作為本設(shè)計的核心元件,利用7段共陰LED作為顯示器件。接入共陰LED顯示器,可顯示時,分鐘,秒,單片機外圍接有定時報警系統(tǒng),定時時間到,揚聲器發(fā)出報警聲,提示預(yù)先設(shè)定時間電器的起停時間到,從而控制電器的起停。電路由下列部分組成:時鐘電路、復(fù)位電路、控制電路、LED顯示,報警電路,芯片選用AT89C51 單片機。 系統(tǒng)基本框圖:報警器數(shù)碼顯示時鐘電路AT89C51鍵盤電路圖 1系統(tǒng)基本框圖22硬件設(shè)計2.2.1 單片機AT89C51AT89C51是一個低電壓,高性能CMOS型 8位
8、單片機,片內(nèi)含4KB的可反復(fù)擦寫的Flash只讀程序存儲器(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提供了高性價比的解決方案。 AT89C51是一個低功耗高性能單片機,40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,AT89C51可以按照常規(guī)方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)
9、擦寫的Flash存儲器可有效地降低開發(fā)成本。主要功能特性:兼容MCS-51指令系統(tǒng)可編程UARL通道兩個16位可編程定時/計數(shù)器1個串行中斷兩個外部中斷源共6個中斷源可直接驅(qū)動LED引腳使用說明:I/O端口的編程實際上就是根據(jù)應(yīng)用電路的具體功能和要求對I/O寄存器進行編程。具體步驟如下:l)根據(jù)實際電路的要求,選擇要使用哪些I/O端口。2)初始化端口的數(shù)據(jù)輸出寄存器,應(yīng)避免端口作為輸出時的開始階段出現(xiàn)不確定狀態(tài),影響外圍電路正常工作。3)根據(jù)外圍電路功能,確定FO端口的方向,初始化端口的數(shù)據(jù)方向寄存器。對于用作輸入的端口可以不考慮方向初始化,因為FO的復(fù)位缺省值為輸入。4)用作輸入的FO管腳,
10、如需上拉,再通過輸入上拉使能寄存器為其內(nèi)部配置上拉電阻。5)最后對I/O端口進行輸出(寫數(shù)據(jù)輸出寄存器)和輸入(讀端口)編程,完成對外圍電路的相應(yīng)功能。幾個特殊管腳:XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平。圖2 AT89C51管腳圖2.2.2時鐘電路單片機的時鐘產(chǎn)生方法有兩種:內(nèi)部時鐘方式和外部時鐘方式。本系統(tǒng)中AT89C51單片機采用內(nèi)部時鐘方式。最常用的內(nèi)部時鐘方式是采用外接晶體和電容組成的并聯(lián)諧振回路。振蕩晶體可在1.2MHz12MHz之
11、間。電容值無嚴格要求,但電容取值對振蕩頻率輸出的穩(wěn)定性、大小和振蕩電路起振速度有少許影響,一般可在20pF100pF之間取值。AT98C51單片機的時鐘電路如圖3所示。 圖3 時鐘電路數(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顯示器有多種形式,如:“米”字型顯示器,點陣
12、顯示器和七段數(shù)碼顯示器等,在單片機系統(tǒng)中使用最多的是七段數(shù)碼顯示器。LED七段數(shù)碼顯示器由8個發(fā)光二極管組成顯示字符,根據(jù)內(nèi)部發(fā)光二極管圖4 引腳配置圖5 數(shù)碼管內(nèi)部結(jié)構(gòu) 的連接形式不同,LED有共陰極和共陽極兩種,如上圖所示:采用高亮共陰型數(shù)位數(shù)碼管,為示區(qū)別,顯示秒的兩個數(shù)碼管個頭較小,另外4個較大。共陰數(shù)碼管連接線路如下:一般用7個發(fā)光二極管構(gòu)成顯示數(shù)字和符號,另外還用一段發(fā)光二極管顯示小數(shù)點。這種顯示器一般分為兩種,共陽極顯示器和共陰極顯示器,共陽極顯示器是把每個二極管的正端連在一起,共陰極顯示器是把每個二極管的陰極連在一起。一只顯示器是有8個發(fā)光二極管構(gòu)成,當(dāng)把某段加正向電壓時,則該
13、段所對應(yīng)的筆劃亮,不加正向電壓則暗,為了保護各段不受損壞需要加限流電阻,無論是共陽極顯示器還是共陰極顯示器,它的8段排列順序都是一樣的:A段、B段、C段、D段、E段、F段、G段和DP段。在單片機中通常使用7段LED。3 軟件設(shè)計31 系統(tǒng)軟件設(shè)計該系統(tǒng)軟件主要有主程序模塊,定時中斷服務(wù)程序,中斷等待服務(wù)程序,鍵盤服務(wù)程序,顯示子程序服務(wù)程序等六大模塊組成,因為匯編語言使用助記符,符號和數(shù)字等來表示指令程序的語言,容易理解和記憶,它與機器語言指令是一一對應(yīng)的,所以我們用匯編語言來寫此程序。32 鍵盤服務(wù)程序 鍵盤采用查詢的方式,放在主程序中,當(dāng)沒有按鍵按下的時候,單片機循環(huán)主程序,一旦有鍵按下,
14、便轉(zhuǎn)向相應(yīng)的子程序處理,處理結(jié)束后再返回。33 LED的編程思想3.3.1 方案選擇方案一:使用數(shù)碼管顯示該方案控制最簡單,但是只能顯示有限的符號和數(shù)字,對于設(shè)計中復(fù)雜的顯示功能顯然不能勝任。方案二:使用點陣液晶顯示點陣液晶可以顯示多種字符和圖形,擁有友好的人機界面及強大的顯示功能。特別適用于智能控制的可編程人性化顯示。權(quán)衡之后,考慮到實際的狀況,價格以及本設(shè)計要達到的效果,選用方案一比較經(jīng)濟實惠,足夠?qū)崿F(xiàn)需要的功能。3.3.2 LED顯示 七段LED由七個發(fā)光二極管按日字排開,所有發(fā)光二極管的陽極連在一起成共陽極,陰極連在一塊稱共陰極接法。當(dāng)采用芯片驅(qū)動時不需要加限流電阻,其他情況下一般應(yīng)外
15、接限流電阻。動態(tài)顯示電路有顯示塊,字形碼封鎖驅(qū)動器,字位鎖存驅(qū)動器三部分組成。34音響報警電路 在AT89C51外圍的一個管口上加揚聲器,通過軟件與硬件的結(jié)合可實現(xiàn)定時報警功能。35系統(tǒng)流程圖判斷鬧鐘時間到否程序初始化調(diào)用顯示程序開始P1.1是否按下?調(diào)用時間設(shè)定程序P1.2是否按下?Y調(diào)用鬧鐘時間設(shè)定程序NNY圖6 程序流程圖3. 6程序模塊(1)×××××設(shè)定時間程序:××××× SETTIME: L0:LCALL DISPLAY1 ;調(diào)用時間允許程序 MM1: JB P1.2,L1 MOV
16、 C,P1.2 JC MM1 LCALL DELAY1 ;調(diào)用延時 JC MM1 MSTOP1: MOV C,P1.2 JNC MSTOP1 ;判斷P1.2是否釋放?釋放則繼續(xù) LCALL DELAY1 ;調(diào)用延時 MOV C,P1.2 JNC MSTOP1 INC 22H ;小時增加1 MOV A,22H CJNE A,#18H,GO12 ;判斷小時是否到24時?未到繼續(xù)循環(huán) MOV 22H,#00H ;小時復(fù)位 MOV 34H,#00H MOV 35H,#00H LJMP L0 L1:JB P1.3,L2 MOV C,P1.3 JC L1 LCALL DELAY1 ;延時 JC L1MST
17、OP2: MOV C,P1.3 JNC MSTOP2 ;判斷P1.3是否釋放?釋放則繼續(xù) LCALL DELAY1 ;調(diào)用延時 MOV C,P1.3 JNC MSTOP2 INC 21H ;分鐘增加一 MOV A,21H CJNE A,#3CH,GO11 MOV 21H,#00H ;分鐘復(fù)位 MOV 32H,#00H MOV 33H,#00H LJMP L0 GO11:MOV B,#0AH ;將A中的內(nèi)容分成高低兩部分 DIV AB MOV 32H,B MOV 33H,A LJMP L0 GO12: MOV B,#0AH DIV AB MOV 34H,B MOV 35H,A LJMP L0 L
18、2:JB P1.4,L0 MOV C,P1.4 JC L2 LCALL DELAY1 ;調(diào)用延時 MOV C,P1.4 JC L2STOP1: MOV C,P1.4 ;判斷按鍵P1.4是否釋放? JNC STOP1 LCALL DELAY1 ;調(diào)用延時(2)×××××設(shè)置鬧鐘時間××××× SETATIME:LCALL DISPLAY2 ;調(diào)用時間運行 N0:LCALL DISPLAY2 MM2: JB P1.3,N1 ;判斷P1.3是否按下? MOV C,P1.3 JC MM2 LCALL D
19、ELAY1 JC MM2MSTOP3: MOV C,P1.3 ;判斷P1.3是否釋放? JNC MSTOP3 LCALL DELAY1 MOV C,P1.3 JNC MSTOP3 INC 24H ;設(shè)定小時增加1 MOV A,24H CJNE A,#24,GO22 MOV 24H,#00H ;時鐘復(fù)位 MOV 38H,#00H MOV 39H,#00H LJMP N0 N1:JB P1.1,N2 ;判斷P1.1是否按下? MOV C,P1.1 JC N1 LCALL DELAY1 JC N1MSTOP4: MOV C,P1.1 ;判斷P1.1是否釋放? JNC MSTOP4 LCALL DEL
20、AY1 MOV C,P1.1 JNC MSTOP4 INC 23H ;設(shè)定鬧鐘分鐘增加1 MOV A,23H CJNE A,#60,GO21 ;判斷A是否到60分? MOV 23H,#00H ;分鐘復(fù)位 MOV 36H,#00H MOV 37H,#00H LJMP N0 GO21:MOV B,#0AH ;將A中的內(nèi)容分成高低兩部分 DIV AB MOV 36H,B MOV 37H,A LJMP N0 GO22: MOV B,#0AH DIV AB MOV 38H,B MOV 39H,A LJMP N0 N2:JB P1.4 ,N0 ;判斷P1.4是否按下? MOV C,P1.4 JC N2 L
21、CALL DELAY1 MOV C,P1.4 JC N2STOP2: MOV C,P1.4 ;判斷P1.4是否釋放? JNC STOP2 LCALL DELAY1 MOV C,P1.4 JNC STOP2 LJMP LOOP TIMEPRO:MOV A,21H MOV B,23H CJNE A,B,BK ;判斷分鐘是否運行到設(shè)定的鬧鐘的分鐘? MOV A,22H MOV B,24H CJNE A,B,BK ;判斷時鐘是否運行到設(shè)定的鬧鐘的時鐘? SETB 25H.0 MOV C,25H.0 JC XX XX: LCALL TIMEOUT ;調(diào)用時間鬧鐘響應(yīng)程序 BK:RET TIMEOUT:
22、X1:LCALL BZ ;調(diào)用喇叭響應(yīng)程序 LCALL DISPLAY2 CLR 25H.0 JB P1.4, X1 ;判斷P1.4是否按下? LCALL DELAY CLR 25H.0 LJMP DISPLAY1 BZ: CLR P3.7 ;喇叭響應(yīng)程序 MOV R7,#250 ;響應(yīng)延時時間 T2: MOV R6,#124 T3: DJNZ R6,T3 DJNZ R7,T2 SETB P3.7 RET LOOKATIME:LCALL DISPLAY2 ;調(diào)用時間運行程序 MM: JB P1.4,LOOKATIME ;判斷按鍵P1.4是否按下 MOV C,P1.4 JC MM LCALL D
23、ELAY1 MOV C,P1.4 JC MMSTOP3: MOV C,P1.4 JNC STOP3 LCALL DELAY1 MOV C,P1.4 JNC STOP3 LJMP LOOP DELAY1: MOV R4,#14H ;時間延時DL001: MOV R5,#0FFHDL111: DJNZ R5,DL111 DJNZ R4,DL001 RET4 proteus的系統(tǒng)仿真41 操作過程我們不防設(shè)幾個按鍵從上往下為k1,k2,k3,k4 。k1與p1.4相連,k2與p1.3相連,k3與p1.3相連,k4與p1.1相連。當(dāng)需要設(shè)定當(dāng)前時間時,按一下k4鍵,進入時間設(shè)定狀態(tài),按一下k2,分加1
24、;按一下k3,小時加1。如此反復(fù)來設(shè)定當(dāng)前時間。調(diào)好時間后按k1退出當(dāng)前時間設(shè)定狀態(tài)。如下圖(a)。當(dāng)要設(shè)定定時時間時,按下k3,進入定時時間設(shè)定狀態(tài),按一下k2,小時加1;按一下k4,分鐘加1。如此反復(fù)來設(shè)定要設(shè)定的定時時間。設(shè)好后,按下k1退出定時時間設(shè)定狀態(tài)。如下圖(b)。42運行結(jié)果圖(a)調(diào)時仿真圖(b)定時仿真圖5 課程設(shè)計體會在做課程設(shè)計的過程中,我進一步認識到全面專業(yè)的科學(xué)知識以及邏輯思考方式對研究問題的重要性,同時我也更加具體的掌握了課程設(shè)計的基本方法。經(jīng)過不斷的的努力,我終于完成了這次課程設(shè)計,總的來說,我學(xué)到了不少的東西,知道了理論聯(lián)系實際的重要性。在設(shè)計過程中我遇到了很
25、多的困難,但沒放棄,查閱了許多相關(guān)的書籍,自己獨立思考和借鑒了前人的許多優(yōu)秀成果,并與所學(xué)的知識緊密的結(jié)合了起來。我相信這過程對我今后的學(xué)習(xí)和工作給與積極的影響,搭好了平臺。通過這次設(shè)計,我對這門課有了更好的理解,尤其結(jié)合了這兩年學(xué)的相關(guān)的專業(yè)知識,對各門課都有了一個較全面的理解。這必將對我以后的學(xué)習(xí)和工作有很大的幫助。本次課程設(shè)計的定時鬧鐘電路,可以滿足人們的基本要求,但因為水平有限,此電路中存在一定的問題,雖可以通過增加電路解決,但過于復(fù)雜和現(xiàn)有水平有限,本次設(shè)計就未深入涉及,想要更好的改進電路,需要進一步的努力,如果有好的意見,希望老師給以支持。在整個設(shè)計中得到了老師的悉心指導(dǎo),在課程設(shè)
26、計完成之際,獻上我真摯的謝意!在此對老師們的幫助和耐心指導(dǎo)表示忠心的感謝。同時也對那些在課設(shè)中,給予我?guī)椭耐瑢W(xué)表示感謝。參考文獻:1 何立民.單片機應(yīng)用技術(shù)選編10.北京:北京航空航天大學(xué)出版社,2004,20-352 何立民.單片機應(yīng)用技術(shù)選編8.北京:北京航空航天大學(xué)出版社,2000,103 沙占友等.單片機外圍電路設(shè)計.西安:電子工業(yè)出版社,2003,84 江力.蔡駿.王艷春.董澤芳.單片機原理與應(yīng)用技術(shù).北京,清華大學(xué)出版社,2006(2007重?。?5-205 李朝青.單片機原理與接口技術(shù).北京,北京航空航天大學(xué)出版社,1998,11-156 潘永紅.柳殊.單片機原理與應(yīng)用.西安,
27、西安電子科技大學(xué)出版社,2000,6 7 2003年單片機及嵌入式系統(tǒng)學(xué)術(shù)年會論文集.北京:北京航空航天大學(xué)出版社,2003,10附1 定時鬧鐘源程序代碼 ORG 0000H LJMP MAIN ORG 000BH LJMP TIME ;×××××主程序部分:××××× ORG 0100H MAIN:MOV SP,#50H MOV 20H,#00H ;秒鐘BIN MOV 21H,#00H ;分鐘BIN MOV 22H,#00H ;小時BIN MOV 23H,#01H MOV 24H,#01H M
28、OV 25H,#00H MOV 30H,#00H MOV 31H,#00H MOV 32H,#00H MOV 33H,#00H MOV 34H,#00H MOV 35H,#00H MOV 36H,#01H MOV 37H,#00H MOV 38H,#01H MOV 39H,#00H MOV TMOD,#01H ;16位計數(shù)器 MOV TH0,#03CH ;賦計數(shù)初值 MOV TL0,#0B0H MOV IE,#10000111B SETB TR0 ;T0啟動計數(shù) MOV R2,#14H MOV P2,#0FFH LOOP: LCALL TIMEPRO LCALL DISPLAY1 JB P1.
29、1,M1 LCALL SETTIME ;調(diào)用設(shè)定時間程序 LJMP LOOP M1:JB P1.2,M2 LCALL SETATIME ;調(diào)用設(shè)定時間程序 LJMP LOOP M2:JB P1.4,M4 LCALL LOOKATIME ;調(diào)用設(shè)定鬧鐘時間程序 M4:LJMP LOOP DELAY:MOV R4,#030H ;延時時間 DL00:MOV R5,#0FFH DL11:MOV R6,#9H DL12:DJNZ R6,DL12 DJNZ R5,DL11 DJNZ R4,DL00 RET ;×××××設(shè)定時間程序:××
30、××× SETTIME: L0:LCALL DISPLAY1 ;調(diào)用時間允許程序 MM1: JB P1.2,L1 MOV C,P1.2 JC MM1 LCALL DELAY1 ;調(diào)用延時 JC MM1 MSTOP1: MOV C,P1.2 JNC MSTOP1 ;判斷P1.2是否釋放?釋放則繼續(xù) LCALL DELAY1 ;調(diào)用延時 MOV C,P1.2 JNC MSTOP1 INC 22H ;小時增加1 MOV A,22H CJNE A,#18H,GO12 ;判斷小時是否到24時?未到繼續(xù)循環(huán) MOV 22H,#00H ;小時復(fù)位 MOV 34H,#00H MO
31、V 35H,#00H LJMP L0 L1:JB P1.3,L2 MOV C,P1.3 JC L1 LCALL DELAY1 ;延時 JC L1MSTOP2: MOV C,P1.3 JNC MSTOP2 ;判斷P1.3是否釋放?釋放則繼續(xù) LCALL DELAY1 ;調(diào)用延時 MOV C,P1.3 JNC MSTOP2 INC 21H ;分鐘增加一 MOV A,21H CJNE A,#3CH,GO11 MOV 21H,#00H ;分鐘復(fù)位 MOV 32H,#00H MOV 33H,#00H LJMP L0 GO11:MOV B,#0AH ;將A中的內(nèi)容分成高低兩部分 DIV AB MOV 32
32、H,B MOV 33H,A LJMP L0 GO12: MOV B,#0AH DIV AB MOV 34H,B MOV 35H,A LJMP L0 L2:JB P1.4,L0 MOV C,P1.4 JC L2 LCALL DELAY1 ;調(diào)用延時 MOV C,P1.4 JC L2STOP1: MOV C,P1.4 ;判斷按鍵P1.4是否釋放? JNC STOP1 LCALL DELAY1 ;調(diào)用延時 MOV C,P1.4 JNC STOP1 LJMP LOOP;×××××設(shè)置鬧鐘時間×××××
33、SETATIME:LCALL DISPLAY2 ;調(diào)用時間運行 N0:LCALL DISPLAY2 MM2: JB P1.3,N1 ;判斷P1.3是否按下? MOV C,P1.3 JC MM2 LCALL DELAY1 JC MM2MSTOP3: MOV C,P1.3 ;判斷P1.3是否釋放? JNC MSTOP3 LCALL DELAY1 MOV C,P1.3 JNC MSTOP3 INC 24H ;設(shè)定小時增加1 MOV A,24H CJNE A,#24,GO22 MOV 24H,#00H ;時鐘復(fù)位 MOV 38H,#00H MOV 39H,#00H LJMP N0 N1:JB P1.1
34、,N2 ;判斷P1.1是否按下? MOV C,P1.1 JC N1 LCALL DELAY1 JC N1MSTOP4: MOV C,P1.1 ;判斷P1.1是否釋放? JNC MSTOP4 LCALL DELAY1 MOV C,P1.1 JNC MSTOP4 INC 23H ;設(shè)定鬧鐘分鐘增加1 MOV A,23H CJNE A,#60,GO21 ;判斷A是否到60分? MOV 23H,#00H ;分鐘復(fù)位 MOV 36H,#00H MOV 37H,#00H LJMP N0 GO21:MOV B,#0AH ;將A中的內(nèi)容分成高低兩部分 DIV AB MOV 36H,B MOV 37H,A LJ
35、MP N0 GO22: MOV B,#0AH DIV AB MOV 38H,B MOV 39H,A LJMP N0 N2:JB P1.4 ,N0 ;判斷P1.4是否按下? MOV C,P1.4 JC N2 LCALL DELAY1 MOV C,P1.4 JC N2STOP2: MOV C,P1.4 ;判斷P1.4是否釋放? JNC STOP2 LCALL DELAY1 MOV C,P1.4 JNC STOP2 LJMP LOOP TIMEPRO:MOV A,21H MOV B,23H CJNE A,B,BK ;判斷分鐘是否運行到設(shè)定的鬧鐘的分鐘? MOV A,22H MOV B,24H CJN
36、E A,B,BK ;判斷時鐘是否運行到設(shè)定的鬧鐘的時鐘? SETB 25H.0 MOV C,25H.0 JC XX XX: LCALL TIMEOUT ;調(diào)用時間鬧鐘響應(yīng)程序 BK:RET TIMEOUT: X1:LCALL BZ ;調(diào)用喇叭響應(yīng)程序 LCALL DISPLAY2 CLR 25H.0 JB P1.4, X1 ;判斷P1.4是否按下? LCALL DELAY CLR 25H.0 LJMP DISPLAY1 BZ: CLR P3.7 ;喇叭響應(yīng)程序 MOV R7,#250 ;響應(yīng)延時時間 T2: MOV R6,#124 T3: DJNZ R6,T3 DJNZ R7,T2 SETB
37、P3.7 RET LOOKATIME:LCALL DISPLAY2 ;調(diào)用時間運行程序 MM: JB P1.4,LOOKATIME ;判斷按鍵P1.4是否按下 MOV C,P1.4 JC MM LCALL DELAY1 MOV C,P1.4 JC MMSTOP3: MOV C,P1.4 JNC STOP3 LCALL DELAY1 MOV C,P1.4 JNC STOP3 LJMP LOOP DELAY1: MOV R4,#14H ;時間延時DL001: MOV R5,#0FFHDL111: DJNZ R5,DL111 DJNZ R4,DL001 RET;×××××時間運行程序×××××TIME: PUSH ACC ;現(xiàn)場保護 PUSH PSW MOVTH0,#03CH ;賦初值 MOVTL0,#0B0HDJNZR2,RET0MOVR2,
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 外資企業(yè)中國雇員培訓(xùn)與發(fā)展協(xié)議
- 高端游艇碼頭泊位使用及船舶代購服務(wù)合同
- 海外投資風(fēng)險管理與審計合作協(xié)議
- 果園采摘機器人租賃與農(nóng)資供應(yīng)綜合服務(wù)合同
- 國際商標(biāo)注冊及市場拓展代理合作協(xié)議
- 《美術(shù)教學(xué)之道》課件
- 《建筑工程合同管理與結(jié)算課件》
- 美容院衛(wèi)生培訓(xùn)大綱
- 《光開關(guān)技術(shù)》課件
- 空乘禮儀握手課程規(guī)范
- 心智突圍:個體與組織如何打破變革免疫
- 計算機風(fēng)險評估報告
- 《認識其他動物的卵》優(yōu)質(zhì)課件
- 醫(yī)療機構(gòu)診療科目名錄匯總
- GB/T 1965-2023多孔陶瓷室溫彎曲強度試驗方法
- 一種改進的ip-q諧波電流檢測方法
- 擔(dān)保書之第三方擔(dān)保合同模板
- 南京大屠殺資料
- 河道治理水葫蘆施工方案
- 眼科門診病歷(清晰整齊)
- 學(xué)校專任教師基本情況統(tǒng)計樣表
評論
0/150
提交評論