單片機(jī)課程設(shè)計---定時鬧鐘的設(shè)計_第1頁
已閱讀1頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘要</b></p><p>  本設(shè)計是基于單片機(jī)的定時鬧鐘設(shè)計。單片機(jī)是在一塊半導(dǎo)體芯片上集成了CPU、存儲器以及輸入和輸出接口電路的微型計算機(jī);其集成度高、功能強(qiáng)、通用性好,特別是它具有體積小、重量輕、能耗低、價格便宜、抗擾、能力強(qiáng)和使用方便等特點(diǎn)。它不僅僅是一項技術(shù)性上的突破,同時也是對能源方面的有效節(jié)約與有效利用,因此深受國家有關(guān)技術(shù)部門和能源部門的重

2、視和支持。其組合而成的配件產(chǎn)品在日常生活的使用過程中非常方便、簡單且實用,深受著廣大消費(fèi)者的喜愛,從而使單片機(jī)技術(shù)在社會中得到了廣泛的發(fā)展和應(yīng)用。目前,已成為測量控制應(yīng)用系統(tǒng)中的優(yōu)選機(jī)種和新電子產(chǎn)品的關(guān)鍵部件。特別是20世紀(jì)70年代問世以來,以其極高的性能價格比,受到人們的重視和關(guān)注,應(yīng)用很廣、發(fā)展很快,推廣率高,市場利潤率高。而51單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。 </p><p>  本次設(shè)計的

3、定時鬧鐘在硬件方面就采用了AT89C51芯片,用6位LED數(shù)碼管來進(jìn)行顯示。LED用P0口進(jìn)行驅(qū)動,采用的是動態(tài)掃描顯示,能夠比較準(zhǔn)確顯示時時—分分—秒秒。通過S1、S2、S3、和S4四個功能按鍵可以實現(xiàn)對時間的修改和定時,定時時間到喇叭可以發(fā)出報警聲。在軟件方面采用匯編語言編程。整個定時鬧鐘系統(tǒng)能完成時間的顯示,調(diào)時和定時鬧鐘、復(fù)位等功能,并經(jīng)過系統(tǒng)仿真后得到了正確的結(jié)果。</p><p><b> 

4、 目錄</b></p><p><b>  1 概述1</b></p><p><b>  1.1設(shè)計意義1</b></p><p><b>  1.2設(shè)計任務(wù)1</b></p><p>  1.3設(shè)計系統(tǒng)的主要功能1</p><p>

5、;  2 系統(tǒng)總體方案及硬件設(shè)計2</p><p>  2.1 系統(tǒng)總體方案2</p><p>  2.2系統(tǒng)設(shè)計方框圖2</p><p><b>  2.3硬件設(shè)計2</b></p><p>  2.3.1芯片:AT89C512</p><p>  2.3.2喇叭:SPEAKER5&

6、lt;/p><p>  2.3.3時鐘電路5</p><p>  2.3.4顯示器模塊的設(shè)計5</p><p><b>  3 軟件設(shè)計7</b></p><p><b>  3.1劃分模塊7</b></p><p>  3.2程序流程圖7</p><

7、;p><b>  3.3模塊程序8</b></p><p>  3.3.1時間的設(shè)置程序8</p><p>  3.3.2鬧鐘時間的設(shè)置程序10</p><p>  3.3.3喇叭響應(yīng)程序12</p><p>  3.4數(shù)碼顯示13</p><p>  4 proteus軟件仿真

8、14</p><p>  5 課程設(shè)計體會16</p><p><b>  參考文獻(xiàn)16</b></p><p>  附1:源程序代碼17</p><p>  附2:系統(tǒng)原理圖26</p><p><b>  1 概述</b></p><p>

9、;<b>  1.1設(shè)計目的</b></p><p>  本設(shè)計是一個定時鬧鐘,它僅使用單片的20引腳單片機(jī)完成鬧鐘的全部功能。設(shè)計目的是為了學(xué)習(xí)和鞏固單片機(jī)知識,使對已學(xué)過的基礎(chǔ)知識能有更深入的理解,學(xué)會獨(dú)立思考、獨(dú)立思考、獨(dú)立工作,以及提高對所學(xué)應(yīng)用基本理論分析和解決實際問題的能力。</p><p><b>  1.2設(shè)計任務(wù)</b><

10、/p><p>  本文設(shè)計的定時鬧鐘采用AT89C51芯片,用匯編語言進(jìn)行編程,時、分、秒用6位LED數(shù)碼管顯示。在電路中通過四個按鍵S1、S2、S3和S4來進(jìn)行定時和調(diào)時,定時時間到通過喇叭發(fā)出報警聲。</p><p>  1.3設(shè)計系統(tǒng)的主要功能</p><p>  · 能顯示 時時-分分-秒秒。</p><p>  ·

11、; 能夠設(shè)置定時時間、 修改定時時間。</p><p>  · 到定時時間能發(fā)出報警聲。</p><p>  2 系統(tǒng)總體方案及硬件設(shè)計</p><p>  2.1 系統(tǒng)總體方案</p><p>  1)由于要顯示數(shù)字時間,所以需要6位數(shù)碼管。</p><p>  2)時間的定時用時鐘電路,修改時間和定時用手

12、動按鍵控制,報警聲通過喇叭發(fā)出。</p><p>  3)AT89C51單片機(jī)加上外圍器件(數(shù)字顯示器7SEG-MPX6-CC-BLUE,RESPACK-8排阻和SPEAKER喇叭)和應(yīng)用程序(ISIS 6 Professional軟件和WAVE6000編譯軟件),構(gòu)成相應(yīng)的應(yīng)用系統(tǒng)。</p><p>  2.2系統(tǒng)設(shè)計方框圖</p><p><b>  

13、如圖1所示</b></p><p><b>  圖1</b></p><p><b>  2.3硬件設(shè)計</b></p><p>  2.3.1芯片:AT89C51</p><p>  AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programma

14、ble and Erasable Read Only Memory)的低電壓,可穩(wěn)定地工作于5V的電源下.該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器.</p><p>  AT89C51管腳說明:  VCC:供電電壓。  &

15、#160;  GND:接地。     P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗時,P0輸出原碼,此時P0外部必須被拉高。     P

16、1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。     P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上

17、拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址</p><p>  XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。</p><p><b>  如圖2所示</b>

18、;</p><p>  2.3.2喇叭:SPEAKER</p><p>  由P3.7口控制喇叭,使其定時時間到能發(fā)出報警聲。</p><p><b>  2.3.3時鐘電路</b></p><p>  單片機(jī)的時鐘產(chǎn)生方法有兩種:內(nèi)部時鐘方式和外部時鐘方式。本系統(tǒng)中AT89C51單片機(jī)采用內(nèi)部時鐘方式。最常用的內(nèi)部時鐘

19、方式是采用外接晶體和電容組成的并聯(lián)諧振回路。振蕩晶體可在1.2MHz~12MHz之間。電容值無嚴(yán)格要求,但電容取值對振蕩頻率輸出的穩(wěn)定性、大小和振蕩電路起振速度有少許影響,一般可在20pF~100pF之間取值。AT98C51單片機(jī)的時鐘電路。如圖3所示 </p><p><b>  圖3</b></p><p>  上拉電阻:RESPACK-8</p>

20、<p>  控制按鍵:BUTTON ACTIVE SPST PushButton</p><p>  本系統(tǒng)要進(jìn)行時間的調(diào)整和定時,因此用4個手動按鍵對其進(jìn)行控制。</p><p>  2.3.4顯示器模塊的設(shè)計</p><p>  利用7SEG-MPX6-CC-BLUE數(shù)字顯示器的1-6引腳連接AT89C51單片機(jī) P2.0 –P2.5接口,其他8個引腳

21、分別與AT89C51單片機(jī)的P0.0 - P0.7和共陽極管RESPACK-8排阻的 2 - 9 引腳分別連接。</p><p>  數(shù)碼管:7SEG-MPX6-CC-BLUE</p><p>  單片機(jī)中通常使用7段LED,LED是發(fā)光二極管顯示器的縮寫。LED顯示器由于結(jié)構(gòu)簡單,價格便宜,體積小,亮度高,電壓低,可靠性高,壽命長,響應(yīng)速度快,顏色鮮艷,配置靈活,與單片機(jī)接口方便而得到廣

22、泛應(yīng)用。LED顯示器是由若干個發(fā)光二極管組成顯示字段的顯示部件,當(dāng)發(fā)光二極管導(dǎo)通時,相應(yīng)的一個點(diǎn)或一個筆劃發(fā)光,控制不同組合的二極管導(dǎo)通,就能顯示出各種字符。LED顯示器有多種形式,如:“米”字型顯示器,點(diǎn)陣顯示器和七段數(shù)碼顯示器等,在單片機(jī)系統(tǒng)中使用最多的是七段數(shù)碼顯示器。</p><p>  因為共陰極的LED數(shù)碼管它的驅(qū)動電流是分開的,在單片機(jī)進(jìn)行動態(tài)掃描的時候不會影響彼此的電流,故該系統(tǒng)中的6位LED數(shù)碼

23、管均用共陰極的數(shù)碼管。</p><p><b>  如圖4所示</b></p><p><b>  3 軟件設(shè)計</b></p><p><b>  3.1劃分模塊</b></p><p>  根據(jù)設(shè)計要求,定時鬧鐘程序可分為以下幾個模塊:</p><p&g

24、t;  1)顯示時間的設(shè)置;</p><p>  2)鬧鐘時間的設(shè)置:</p><p>  4)定時時間的響應(yīng)。</p><p><b>  3.2程序流程圖</b></p><p><b>  圖5</b></p><p><b>  3.3模塊程序</b&

25、gt;</p><p>  3.3.1時間的設(shè)置程序</p><p><b>  如下:</b></p><p><b>  SETTIME:</b></p><p>  L0:LCALL DISPLAY1</p><p>  MM1: JB P1.2,L1

26、  ;P1.2=1時轉(zhuǎn)移  </p><p>  MOV C,P1.2</p><p><b>  JC MM1</b></p><p>  LCALL DELAY1    ;延時</p><p><b>  JC MM1</b></p><

27、;p>  MSTOP1: MOV C,P1.2</p><p>  JNC MSTOP1 ;P1.2為0時轉(zhuǎn)移</p><p>  LCALL DELAY1 ;延時</p><p>  MOV C,P1.2</p><p>  JNC

28、 MSTOP1</p><p>  INC 22H ;小時自加一</p><p><b>  MOV A,22H</b></p><p>  CJNE A,#18H,GO12 ;小時計數(shù)循環(huán) </p><p>  MOV 22H,#00H

29、 ;復(fù)位</p><p>  MOV 34H,#00H</p><p>  MOV 35H,#00H</p><p><b>  LJMP L0</b></p><p>  L1:JB P1.1,L2 ;P1.1=1時轉(zhuǎn)移</p><p

30、>  MOV C,P1.1</p><p><b>  JC L1</b></p><p>  LCALL DELAY1 ;延時</p><p><b>  JC L1</b></p><p>  MSTOP2: MOV C,P1.1</p>

31、<p>  JNC MSTOP2 ;P1.1=0時轉(zhuǎn)移</p><p>  LCALL DELAY1 ;延時</p><p>  MOV C,P1.1</p><p>  JNC MSTOP2</p><p>  INC 21H

32、 ;分鐘加一</p><p><b>  MOV A,21H</b></p><p>  CJNE A,#3CH,GO11 ;分鐘計數(shù)循環(huán)</p><p>  MOV 21H,#00H ; 復(fù)位</p><p>  MOV 32H,#

33、00H</p><p>  MOV 33H,#00H</p><p><b>  LJMP L0</b></p><p>  GO11:MOV B,#0AH</p><p>  DIV AB</p><p>  MOV 32H,B ;

34、 將A的低4位存入32單元</p><p>  MOV 33H,A ; 將A的高4位存入33單元</p><p>  LJMP L0</p><p>  GO12:MOV B,#0AH</p><p>  DIV AB</p><p>  MOV

35、 34H,B ;將A的低4位存入34單元</p><p>  MOV 35H,A  ;A的高4位存入35單元</p><p>  LJMP L0</p><p>  L2:JB P1.0,L0 ; P1.0=1時轉(zhuǎn)移</p&

36、gt;<p>  MOV C,P1.0</p><p><b>  JC L2</b></p><p>  LCALL DELAY1 ;延時</p><p>  MOV C,P1.0</p><p><b>  JC L2</b></

37、p><p>  STOP1: MOV C,P1.0</p><p>  JNC STOP1 ; P1.0=0時轉(zhuǎn)移</p><p>  LCALL DELAY1 ;延時</p><p>  MOV C,P1.0</p><p>&

38、lt;b>  JNC STOP1</b></p><p>  LJMP LOOP</p><p>  3.3.2鬧鐘時間的設(shè)置程序</p><p>  SETATIME:LCALL DISPLAY2 ; 調(diào)用DISPLAY2</p><p>  N0:LCALL DISPLAY2<

39、/p><p>  MM2: JB P1.1,N1 ;P1.1=1時轉(zhuǎn)移</p><p>  MOV C,P1.1</p><p><b>  JC MM2</b></p><p>  LCALL DELAY1 ; 延時</p>&

40、lt;p><b>  JC MM2</b></p><p>  MSTOP3: MOV C,P1.1</p><p>  JNC MSTOP3 ; P1.1=0時轉(zhuǎn)移</p><p>  LCALL DELAY1 ; 延時</p><p

41、>  MOV C,P1.1</p><p>  JNC MSTOP3</p><p>  INC 24H ;小時加一  </p><p><b>  MOV A,24H</b></p><p>  CJNE A,#24,GO22

42、 ;小時計數(shù)循環(huán)</p><p>  MOV 24H,#00H ;復(fù)位</p><p>  MOV 38H,#00H</p><p>  MOV 39H,#00H</p><p><b>  LJMP N0</b></p><p>  N1

43、:JB P1.3,N2 ;P1.3=1時轉(zhuǎn)移</p><p>  MOV C,P1.3</p><p><b>  JC N1</b></p><p>  LCALL DELAY1 ;延時</p><p><b> 

44、 JC N1</b></p><p>  MSTOP4: MOV C,P1.3</p><p>  JNC MSTOP4 ;P1.3=0時轉(zhuǎn)移</p><p>  LCALL DELAY1 ;延時</p><p>  MOV C,P1

45、.3</p><p>  JNC MSTOP4</p><p>  INC 23H ;分鐘加一</p><p><b>  MOV A,23H</b></p><p>  CJNE A,#60,GO21 ;分鐘計數(shù)循環(huán)</

46、p><p>  MOV 23H,#00H ;復(fù)位</p><p>  MOV 36H,#00H</p><p>  MOV 37H,#00H</p><p><b>  LJMP N0</b></p><p>  GO21:MOV B,#0AH&l

47、t;/p><p>  DIV AB</p><p>  MOV 36H,B ;將A的低4位存入36單元</p><p>  MOV 37H,A ;將A的高4位存入37單元</p><p>  LJMP N0</p>&

48、lt;p>  GO22:MOV B,#0AH</p><p>  DIV AB</p><p>  MOV 38H,B ;將A的低4位存入38單元</p><p>  MOV 39H,A ;將A的高4位存入39單元</p>&l

49、t;p>  LJMP N0</p><p>  N2:JB P1.0 ,N0 ;P1.0=1時轉(zhuǎn)移</p><p>  MOV C,P1.0</p><p><b>  JC N2</b></p><p>  LCALL DELAY1

50、 ;延時</p><p>  MOV C,P1.0</p><p><b>  JC N2</b></p><p>  STOP2: MOV C,P1.0</p><p><b>  JNC STOP2</b></p><p>  LCALL D

51、ELAY1</p><p>  MOV C,P1.0</p><p><b>  JNC STOP2</b></p><p><b>  LJMP LOOP</b></p><p>  3.3.3喇叭響應(yīng)程序</p><p>  TIMEPRO:MOV A,21H</

52、p><p><b>  MOV B,23H</b></p><p>  CJNE A,B,BK ;判斷定時鬧鐘的分鐘</p><p><b>  MOV A,22H</b></p><p><b>  MOV B,24H</b></p

53、><p>  CJNE A,B,BK ;判斷定時鬧鐘的小時</p><p>  SETB 25H.0</p><p>  MOV C,25H.0</p><p><b>  JC XX</b></p><p>  XX: LCALL TIMEOUT

54、 ;調(diào)用TIMEOUT</p><p><b>  BK:RET</b></p><p><b>  TIMEOUT:</b></p><p>  X1:LCALL BZ  ;用喇叭響應(yīng)程序</p><p>  LCALL DISPLA

55、Y2 ;延時</p><p>  CLR 25H.0 ;調(diào)用喇叭響應(yīng)程序結(jié)束</p><p>  JB P1.0, X1 ;P1.3=1時轉(zhuǎn)移</p><p>  LCALL DELAY</p><p><b&g

56、t;  CLR 25H.0</b></p><p>  LJMP DISPLAY1 ;延時</p><p><b>  BZ:</b></p><p><b>  CLR P3.7</b></p><p>  MOV R7,#250

57、 ;喇叭響應(yīng)時間</p><p>  T2: MOV R6,#124</p><p>  T3: DJNZ R6,T3</p><p>  DJNZ R7,T2</p><p><b>  SETB P3.7</b></p><p><b>  RE

58、T</b></p><p><b>  3.4數(shù)碼顯示</b></p><p>  將所編程序在WAVE里進(jìn)行編譯,編譯正確后生成HEX文件。在AT89C51芯片中加載此文件后,進(jìn)行仿真。系統(tǒng)運(yùn)行后,能準(zhǔn)確的顯示時間。通過S1、S2、S3和S4四個按鍵,能夠?qū)r間進(jìn)行修改和鬧鐘的設(shè)置。定時時間到能發(fā)出報警聲。如圖6所示</p><p&g

59、t;<b>  圖6</b></p><p><b>  5 課程設(shè)計體會</b></p><p>  課程設(shè)計是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn)、提出、分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程。隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計算機(jī)應(yīng)用中空前活躍的領(lǐng)域,在生活中可以說得是無處不在,作為二十

60、一世紀(jì)的大學(xué)生來說掌握單片機(jī)的開發(fā)技術(shù)是十分重要的。</p><p>  通過本次單片機(jī)原理及應(yīng)用課程設(shè)計使我充分認(rèn)認(rèn)到了課程設(shè)計的理要性和必要性,本次設(shè)計使我對已學(xué)過的基礎(chǔ)知識有了更深入的理解,學(xué)會了獨(dú)立思考、獨(dú)立工作以及對應(yīng)用所學(xué)基本理論分析和解決實際問題的能力有了很大的提高。另外,本次設(shè)計使我的實際操作技能得到了訓(xùn)練, 同時也進(jìn)一步培養(yǎng)了我嚴(yán)謹(jǐn)?shù)目茖W(xué)作風(fēng)。</p><p>  回顧起

61、此次單片機(jī)課程設(shè)計,從選題到定稿,從理論到實踐,在整整一星期的日子里,可以說得是苦多于甜,但是從中卻學(xué)到很多很多的東西,不但鞏固了以前所學(xué)過的知識,而且對單片機(jī)原理課外知識也的到了拓展。做的過程中,開始的確遇到了不少困難的問題,比如說芯片管腳不熟悉怎么放置,對單片機(jī)匯編語言掌握得不好等等,同時在這過程中也發(fā)現(xiàn)了自己的許多不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固。 </p><p>  通過單片機(jī)

62、課程設(shè)計之后,我不僅加深了對單片機(jī)理論的理解,將理論很好地應(yīng)用到實際當(dāng)中去,而且我們還學(xué)會了如何去培養(yǎng)創(chuàng)新精神和嚴(yán)謹(jǐn)?shù)目茖W(xué)作風(fēng),從而不斷地戰(zhàn)勝自己,超越自己。更重要的是,我在這一設(shè)計過程中,學(xué)會了堅持不懈,不輕易言棄。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1].李朝青.單片機(jī)原理及接口技術(shù)(修訂版).北京:北京航空航天大學(xué)出版社,199

63、8[2]. 李廣弟.單片機(jī)基礎(chǔ).北京:北京航空航天大學(xué)出版社,1992[3]. 何立民.單片機(jī)應(yīng)用技術(shù)大全.北京:北京航空航天大學(xué)出版社, 1994[4].張毅剛. 單片機(jī)原理及接口技術(shù).哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1990[5].譚浩強(qiáng).單片機(jī)課程設(shè)計. 北京:清華大學(xué)出版社,1989</p><p>  [6].余發(fā)山主編,單片機(jī)原理及應(yīng)用技術(shù),中國礦業(yè)大學(xué)出版社2003.12[7]. 

64、Mak.S, Radford. D, ‘Design considerations for implementation of large scale automatic meter reading systems’, Power Delivery, IEEE Tran

65、sactions on,Volume 10,  Issue 1,  Jan. 1995 </p><p><b>  附1:源程序代碼</b></p><p><b>  ORG 0000H</b></p><p><b>

66、  LJMP MAIN</b></p><p><b>  ORG 000BH</b></p><p><b>  LJMP TIME</b></p><p>  ;;;************ MAIN PROGRAM ***************</p><p><b&g

67、t;  ORG 0100H</b></p><p>  MAIN:MOV SP,#50H</p><p>  MOV 20H,#00H ;BIN SECOND</p><p>  MOV 21H,#00H ;BIN MINUTE</p>&

68、lt;p>  MOV 22H,#00H ;BIN HOUR</p><p>  MOV 23H,#01H</p><p>  MOV 24H,#01H</p><p>  MOV 25H,#00H</p><p>  MOV 30H,#00H ;BCD

69、 SECOND</p><p>  MOV 31H,#00H</p><p>  MOV 32H,#00H ;BCD MINUTE</p><p>  MOV 33H,#00H</p><p>  MOV 34H,#00H ;BCD HOUR</p>

70、;<p>  MOV 35H,#00H</p><p>  MOV 36H,#01H</p><p>  MOV 37H,#00H</p><p>  MOV 38H,#01H</p><p>  MOV 39H,#00H</p><p>  MOV TMOD,#01H

71、;16位計數(shù)器</p><p>  MOV TH0,#03CH ;賦初值</p><p>  MOV TL0,#0B0H</p><p>  MOV IE,#10000111 ;中斷允許</p><p>  SETB TR0

72、 ;啟動T0</p><p>  MOV R2,#14H</p><p>  MOV P2,#0FFH</p><p>  LOOP:LCALL TIMEPRO</p><p>  LCALL DISPLAY1</p><p>  JB P1.3,M1 ;P1.3=1時

73、轉(zhuǎn)移</p><p>  LCALL SETTIME ;調(diào)用SETTIME子程序</p><p><b>  LJMP LOOP</b></p><p>  M1:JB P1.2,M2 ;P1.2=1時轉(zhuǎn)移      </p><p>  

74、LCALL SETATIME ;調(diào)用SETTIME子程序     </p><p><b>  LJMP LOOP</b></p><p>  M2:JB P1.0,M4 ;P1.0=1時轉(zhuǎn)移</p><p>  LCALL LOOKATIME

75、 ;調(diào)用LOOKATIME子程序</p><p>  M4:LJMP LOOP</p><p>  DELAY:MOV R4,#030H ;延時</p><p>  DL00:MOV R5,#0FFH</p><p>  DL11:MOV R6,#9H</p><p

76、>  DL12:DJNZ R6,DL12</p><p>  DJNZ R5,DL11</p><p>  DJNZ R4,DL00</p><p><b>  RET</b></p><p><b>  SETTIME:</b></p><p>  L0:LCALL

77、DISPLAY1</p><p>  MM1: JB P1.2,L1  ;P1.2=1時轉(zhuǎn)移  </p><p>  MOV C,P1.2</p><p><b>  JC MM1</b></p><p>  LCALL DELAY1 ;延時</p&

78、gt;<p><b>  JC MM1</b></p><p>  MSTOP1: MOV C,P1.2</p><p>  JNC MSTOP1 ;P1.2為0時轉(zhuǎn)移</p><p>  LCALL DELAY1 ;延時</

79、p><p>  MOV C,P1.2</p><p>  JNC MSTOP1</p><p>  INC 22H ;小時自加一</p><p><b>  MOV A,22H</b></p><p>  CJNE A,#18H,GO12

80、 ;小時計數(shù)循環(huán) </p><p>  MOV 22H,#00H ;復(fù)位</p><p>  MOV 34H,#00H</p><p>  MOV 35H,#00H</p><p><b>  LJMP L0</b></p><p>  L1

81、:JB P1.1,L2   ;P1.1=1時轉(zhuǎn)移</p><p>  MOV C,P1.1</p><p><b>  JC L1</b></p><p>  LCALL DELAY1 ;延時</p><p><b>  JC L1&

82、lt;/b></p><p>  MSTOP2: MOV C,P1.1</p><p>  JNC MSTOP2 ;P1.1=0時轉(zhuǎn)移</p><p>  LCALL DELAY1 ;延時</p><p>  MOV C,P1.1</p>

83、<p>  JNC MSTOP2</p><p>  INC 21H ;分鐘加一</p><p><b>  MOV A,21H</b></p><p>  CJNE A,#3CH,GO11  ;分鐘計數(shù)循環(huán)</p><p>

84、  MOV 21H,#00H  ; 復(fù)位</p><p>  MOV 32H,#00H</p><p>  MOV 33H,#00H</p><p><b>  LJMP L0</b></p><p>  GO11:MOV B,#0AH</p><p>

85、;  DIV AB</p><p>  MOV 32H,B ; 將A的低4位存入32單元</p><p>  MOV 33H,A ; 將A的高4位存入33單元</p><p>  LJMP L0</p><p>  GO12:MOV

86、 B,#0AH</p><p>  DIV AB</p><p>  MOV 34H,B ;將A的低4位存入34單元</p><p>  MOV 35H,A ; 將A的高4位存入35單元</p><p>  LJMP

87、L0</p><p>  L2:JB P1.0,L0 ; P1.0=1時轉(zhuǎn)移</p><p>  MOV C,P1.0</p><p><b>  JC L2</b></p><p>  LCALL DELAY1 ;延

88、時</p><p>  MOV C,P1.0</p><p><b>  JC L2</b></p><p>  STOP1: MOV C,P1.0</p><p>  JNC STOP1 ; P1.0=0時轉(zhuǎn)移</p><p>  

89、LCALL DELAY1 ;延時</p><p>  MOV C,P1.0</p><p><b>  JNC STOP1</b></p><p>  LJMP LOOP</p><p>  SETATIME:LCALL DISPLAY2

90、 ; 調(diào)用DISPLAY2</p><p>  N0:LCALL DISPLAY2</p><p>  MM2: JB P1.1,N1 ;P1.1=1時轉(zhuǎn)移</p><p>  MOV C,P1.1</p><p><b>  JC MM2</b></p>

91、<p>  LCALL DELAY1 ; 延時</p><p><b>  JC MM2</b></p><p>  MSTOP3: MOV C,P1.1</p><p>  JNC MSTOP3 ; P1.1=0時轉(zhuǎn)移</p

92、><p>  LCALL DELAY1 ; 延時</p><p>  MOV C,P1.1</p><p>  JNC MSTOP3</p><p>  INC 24H ;小時加一  </p><p><b&g

93、t;  MOV A,24H</b></p><p>  CJNE A,#24,GO22 ;小時計數(shù)循環(huán)</p><p>  MOV 24H,#00H ;復(fù)位</p><p>  MOV 38H,#00H</p><p>  MOV 39H,#0

94、0H</p><p><b>  LJMP N0</b></p><p>  N1:JB P1.3,N2 ;P1.3=1時轉(zhuǎn)移</p><p>  MOV C,P1.3</p><p><b>  JC N1</b></p>&

95、lt;p>  LCALL DELAY1 ;延時</p><p><b>  JC N1</b></p><p>  MSTOP4: MOV C,P1.3</p><p>  JNC MSTOP4 ;P1.3=0時轉(zhuǎn)移</p>

96、<p>  LCALL DELAY1 ;延時</p><p>  MOV C,P1.3</p><p>  JNC MSTOP4</p><p>  INC 23H ;分鐘加一</p><p><b>  MOV A

97、,23H</b></p><p>  CJNE A,#60,GO21 ;分鐘計數(shù)循環(huán)</p><p>  MOV 23H,#00H ;復(fù)位</p><p>  MOV 36H,#00H</p><p>  MOV 37H,#00H</p&

98、gt;<p><b>  LJMP N0</b></p><p>  GO21:MOV B,#0AH</p><p>  DIV AB</p><p>  MOV 36H,B ;將A的低4位存入36單元</p><p>  MOV

99、 37H,A ;將A的高4位存入37單元</p><p>  LJMP N0</p><p>  GO22:MOV B,#0AH</p><p>  DIV AB</p><p>  MOV 38H,B

100、 ;將A的低4位存入38單元</p><p>  MOV 39H,A ;將A的高4位存入39單元</p><p>  LJMP N0</p><p>  N2:JB P1.0 ,N0 ;P1.0=1時轉(zhuǎn)移</p><

101、p>  MOV C,P1.0</p><p><b>  JC N2</b></p><p>  LCALL DELAY1 ;延時</p><p>  MOV C,P1.0</p><p><b>  JC N2</b></p&g

102、t;<p>  STOP2: MOV C,P1.0</p><p><b>  JNC STOP2</b></p><p>  LCALL DELAY1</p><p>  MOV C,P1.0</p><p><b>  JNC STOP2</b></p>&

103、lt;p><b>  LJMP LOOP</b></p><p>  TIMEPRO:MOV A,21H</p><p><b>  MOV B,23H</b></p><p>  CJNE A,B,BK ;判斷定時鬧鐘的分鐘</p><p&g

104、t;<b>  MOV A,22H</b></p><p><b>  MOV B,24H</b></p><p>  CJNE A,B,BK ;判斷定時鬧鐘的小時</p><p>  SETB 25H.0</p><p>  MOV C,25H

105、.0</p><p><b>  JC XX</b></p><p>  XX: LCALL TIMEOUT ;調(diào)用TIMEOUT</p><p><b>  BK:RET</b></p><p><b>  TIMEOUT:</b&g

106、t;</p><p>  X1:LCALL BZ ;調(diào)用喇叭響應(yīng)程序</p><p>  LCALL DISPLAY2 ;延時</p><p>  CLR 25H.0 ;調(diào)用喇叭響應(yīng)程序結(jié)束&

107、lt;/p><p>  JB P1.0, X1 ;P1.3=1時轉(zhuǎn)移</p><p>  LCALL DELAY</p><p><b>  CLR 25H.0</b></p><p>  LJMP DISPLAY1

108、 ;延時</p><p><b>  BZ:</b></p><p><b>  CLR P3.7</b></p><p>  MOV R7,#250 ;喇叭響應(yīng)時間</p><p>  T2: MOV R6,#124&l

109、t;/p><p>  T3: DJNZ R6,T3</p><p>  DJNZ R7,T2</p><p><b>  SETB P3.7</b></p><p><b>  RET</b></p><p>  LOOKATIME:LCALL DISPLAY2</p&g

110、t;<p>  MM: JB P1.0,LOOKATIME</p><p>  MOV C,P1.0</p><p><b>  JC MM</b></p><p>  LCALL DELAY1</p><p>  MOV C,P1.0</p><p><b>

111、;  JC MM</b></p><p>  STOP3: MOV C,P1.0</p><p><b>  JNC STOP3</b></p><p>  LCALL DELAY1</p><p>  MOV C,P1.0</p><p><b>  JNC S

112、TOP3</b></p><p>  LJMP LOOP</p><p>  DELAY1: MOV R4,#14H ;時間延時</p><p>  DL001: MOV R5,#0FFH</p><p>  DL111: DJNZ R5,DL111</

113、p><p>  DJNZ R4,DL001</p><p><b>  RET</b></p><p>  ;*********** TIME PROCESS **************</p><p>  TIME: PUSH ACC ;保護(hù)

114、現(xiàn)場</p><p><b>  PUSH PSW</b></p><p>  MOVTH0,#03CH ;初值</p><p>  MOVTL0,#0B0H</p><p>  DJNZR2,RET0</p><p>  MOVR2,

115、#14H</p><p><b>  MOVA,20H</b></p><p><b>  CLR C</b></p><p>  INC A ;秒自加一</p><p>  CJNE A,#3CH,GO1

116、 ;秒計數(shù)循環(huán)</p><p>  MOV20H,#0 ;復(fù)位</p><p>  MOV 30H,#0</p><p>  MOV 31H,#0</p><p><b>  MOVA,21H</b>

117、</p><p>  INCA ;分鐘自加一</p><p>  CJNEA,#3CH,GO2 ;分鐘計數(shù)循環(huán)</p><p>  MOV 21H,#0H

118、 ;復(fù)位</p><p>  MOV 32H,#0</p><p>  MOV 33H,#0</p><p><b>  MOVA,22H</b></p><p>  INCA ;小時自加一</p>&

119、lt;p>  CJNEA,#18H,GO3 ;小時計數(shù)循環(huán)</p><p>  MOV 22H,#00H ;復(fù)位</p><p>  MOV 34H,#0</p><p>  MOV 35H,#0</p><p&g

120、t;<b>  AJMPRET0</b></p><p>  GO1:MOV 20H,A</p><p>  MOV B,#0AH</p><p>  DIV AB</p><p>  MOV 31H,A ;將A的低4位存入31

121、單元</p><p>  MOV 30H,B ;將A的高4位存入30單元</p><p><b>  AJMPRET0</b></p><p>  GO2: MOV 21H,A</p><p>  MOV B,#0AH

122、</p><p>  DIV AB</p><p>  MOV 33H,A ;將A的低4位存入33單元</p><p>  MOV 32H,B ;將A的高4位存入32單元</p><p>&l

123、t;b>  AJMPRET0</b></p><p>  GO3:MOV 22H,A</p><p>  MOV B,#0AH</p><p>  DIV AB</p><p>  MOV 35H,A ;將A的低4位存入35單元&l

124、t;/p><p>  MOV 34H,B ;將A的高4位存入34單元</p><p><b>  AJMPRET0</b></p><p>  RET0: POP PSW ;恢復(fù)現(xiàn)場

125、</p><p><b>  POP ACC</b></p><p><b>  RETI</b></p><p>  ;;;*******DISPLAY PART**********</p><p>  DISPLAY1:MOVR0,#30H</p><p>  MO

126、V R3,#0FEH</p><p><b>  MOV A,R3</b></p><p>  PLAY1: MOV P2,A</p><p>  MOV A,@R0 ;取要顯示的數(shù)據(jù)</p><p>  MOV DPTR,#DSEG1

127、 ;指向字形段碼首地址</p><p>  MOVC A,@A+DPTR ;查表取字形段碼</p><p>  MOV P0,A ;指向P0口</p><p><b>  LCAL

128、L DL1</b></p><p>  MOV P2,#0FFH</p><p>  MOV A,R3 ;判斷是否顯示到最低位</p><p>  RL A ;左移一位</p><

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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

提交評論