




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 課程設計成果說明書題目:基于89C51單片機多功能時鐘的設計學生姓名:學號:學院:機電工程學院班級:指導教師:李良兒浙江海洋學院教務處2012年12月16日本設計是基于89C51單片機,主要以51單片機為控制核心,采用匯編語言進行編程。 設計的單片機多功能時鐘系統由1 塊 AT89C51芯片,1 個 7SEG八位LED數碼管,2塊74HC244列驅動及按鍵電路和鬧鈴電路組成。具有正常的時鐘顯示,秒表計時和時鐘校時等基本功能,同時發揮部分的功能也得到了實現,并且還具有一定的創新功能。關鍵詞單片機;多功能時鐘;AT89C51; 51單片機;、設計任務及主要技術指標和要求 61.1設計任務 61.
2、2主要技術指標和要求、 引言設計方案 TOC o 1-5 h z 3.1系統方案的選定 63.2系統總體設計框圖 6 HYPERLINK l bookmark6 o Current Document 四、系統硬件的設計 74.1系統總電路 74.2顯示器 74.3按鍵電路 7 HYPERLINK l bookmark10 o Current Document 五、系統軟件的設計 8主程序 85.2顯示子程序 85.3定時器TO中斷服務程序 85.4 T1中斷服務程序 9調時功能程序 9秒表功能程序 9鬧鐘時間設定功能程序 9 HYPERLINK l bookmark12 o Current D
3、ocument 六、系統調試 10硬件調試 10軟件調試 10綜合調試 10 HYPERLINK l bookmark14 o Current Document 七、指標測試 10測試儀器 10指標測試 10 HYPERLINK l bookmark16 o Current Document 八、設計總結 10 HYPERLINK l bookmark18 o Current Document 九、參考文獻 11一、設計任務及主要技術指標和要求1.1設計任務:單片機多功能時鐘的設計。1.2主要技術指標和要求:基本要求:(1 )、能實現正常的時鐘功能。分別由 6個數碼管顯示實時的時、分、秒。時、
4、分 后面加小數點區分。(2) 、能實現秒表的功能。以 0.01秒為計數單位,顯示范圍在0 9999.99秒。 有秒表的開始、停止和清零功能。(3)具有時鐘校時功能:能對時、分按實際時間進行手動校正。發揮部分:(1 )被校時段有閃爍功能。(2 )開機能顯示班級、學號等信息,并能滾屏顯示。創新部分:(1)具有定時鬧鈴功能。(2)具有整點報時功能。二、引言單片機,是集CPU ,RAM ,ROM ,計數和多種接口于一體的微控制器。自20世紀70年代問世以來,以其極高的性能價格比,受到人們的重視和關注。可靠性高、靈活性好、開發較 為容易,廣泛應用于智能生產和工業自動化上。51單片機通過軟件編程,在 LE
5、D液晶屏上實現小時,分,秒的顯示,經過對比測試,發現計時的走時精度較高,可滿足多種場合的應 用需求,另外上電時具有滾動顯示子程序,可以方便顯示制作日期等信息。本文詳細介紹了AT89C51單片機的基本原理,本文論述了 7SEG-MPX6-CA-BLU液晶屏和74HC244緩沖器的工 作原理及其軟件設計過程。3.1系統方案的選定為了實現LED顯示器的數字顯示,可以采用靜態顯示法和動態顯示法,由于靜態顯示法需要數據鎖存器等硬件,接口比較復雜,考慮時鐘顯示只有六位, 且系統沒有其他復雜的處理任務,所以采用動態掃描法實現LED的顯示。單片機采用89C51系列,這樣單片機就具有足夠的空余硬件資源實現其他的
6、擴充功能。3.2、系統總體設計框圖四、系統硬件的設計sXTALi口vg.vAVi303fAESfTAl2口 JAtQVD.WAhi叩 PRK;nrr戸口 口 JMKPT-rvaaPZ.A PZJA11AJLBFZ WACkPZAIH-Fiin?”“畑 F3.VT:-Bpf33nrr!pijFl.4-p | spiiaOW: Pirm-P rjSPl.TU1 3- HF3TS1 TP.1於 13F3J1PF bp 1気廠 TH広TT卩 I W- ” 1QP3Pn W J =CP;CDEFG口尸12343678 _ . _ . . _ . . _ . . _ +I-JZ-+U2:AR1 . r/I
7、 Fta - BUZ1-rui P .KIRS i Tr rZ-腰jg RP1 rF.E:PWKB圖4.2單片機時鐘硬件仿真電路單片機時鐘硬件仿真電路見圖8.2。采用單片機最小化應用設計,采用共陽七段LED顯示器, p0 口輸出段碼數據,p2.0-p2.7口作列掃描輸出,pl、p3 口串聯16個按鈕開關后接led發光管,p3.7端口接5v的小峰鳴器用于按鍵發音及定時提醒、整點到時提醒等。為了提醒共陽LED數碼管的列掃描驅動電壓,用74HC244同相驅動器作LED數碼管的電源驅動。采用12MHZ晶振可提高秒計時的精準性。4.1顯示器利用一塊7SEG-MPX8-CA-BLI共陽八位LED數碼管作為
8、顯示屏,如下圖4.30 QU 04.2按鍵電路利用七個開關分別接控制芯片的P1.0P1.6 口,分別對應所要求的功能。五、系統軟件的設計5.1主程序的設計主程序流程圖如下圖5.1進入功能程序2圖5. 1主程序流程,本設計中計時采用定時器 TO中斷完成,秒表使用定時器 T1中斷完成,主程序循環調用 顯示子程序及查鍵,當端口有開關按下時,轉入相應功能程序。5.2顯示子程序時間顯示子程序每次顯示 6個連續內存單元的十進制 BCD碼數據,首地址在調用顯示程 序時先指定。 內存中50H55H為鬧鐘定時單元,60HH 65H為秒表計時單元,70H75H為時 鐘顯示單元。由于采用七段共陽LED數碼管動態掃描
9、實現數據顯示,顯示用十進制BCD碼數據的對應段碼存放在 ROM表中,顯示時,先取出內存地址中的數據,然后查得對應的顯示用段碼從P0 口輸出,P2 口將對應的數碼管選中供電,就能顯示該地址單元的數據值。為了顯 示小數點及“一”、“A”等特殊字符,在開機顯示班級信息和計時使用時采用不同的顯示子程序。5.3定時器TO中斷服務程序定時器TO用于時間計時。定時溢出中斷周期設為50ms,進入中斷后先進行定時中斷初值校正,中斷累計 20次(即50msX 20=1s)時對秒計數單元進行加1操作。時鐘計數單元地址分別在 70H71H (秒八 76H77H (分八 78H79H (時),最大計時值為 23小時59
10、分 59秒。7AH單元內存放“熄滅符”數據(#0AH),用于時間調整時的閃爍功能。在計數單元 中采用十進制BCD碼計數,滿10進位,T0中斷計時程序執行流程見圖 T1中斷服務程序T1中斷程序用于指示時間調整單元數字的閃亮或秒表計數,在時間調整狀態下,每過0.3a左右,將對應調整單元的顯示數據換成“熄滅符”數據(#0AH。這樣在調整時間時,對應調整單元的顯示數據會間隔閃亮。在作秒表計時時,每10s中斷1次,計數單元加1, 每100次為1s。秒表計數單元地址在 60H61H( 10毫秒)、62HH 63H (秒)、64H65H (分),5.5調時功能程序調時功能程序的設計方法是:按下
11、P1.0 口按鍵,若按下時間小于1s,進入省電狀態(數 碼管不亮,時鐘不停),否則進入調分狀態,等待操作,此時計時器停止走動。當再按下P1.0 按鈕時,若按下時間小于0.5s,則時間加1min,若按下時間大于 0.5s,則進入小時調整狀態,按下P1.1按鈕時可進行減1調整。在小時調整狀態下,當按鍵按下的時間大于0.5s時退出時間調整狀態,時鐘從0s開始計時。5.6秒表功能程序在正常時鐘狀態下若按下P1.1 口按鍵,則進行時鐘/秒表顯示功能的轉換,秒表中斷計時程序啟動,顯示首址改為60H, LED將顯示秒表計時單元 60H65H中的數據。按下 P1.2口的按鍵開關可實現秒表清零、秒表啟動、秒表暫
12、停功能,當再按下P1.1 口按鍵時關閉T1秒表中斷計時,顯示首址又改為70H,恢復正常時間的顯示功能。5.7鬧鐘時間設定功能程序在正常時鐘狀態下若按下P1.3 口的按鍵開關,則進入設定鬧時調分狀態,顯示首址改為50H。LED將顯示50H55H中的鬧鐘設定時間,顯示式樣為00: 00:,其中高2位代表時,低2位將代表分,在定時鬧鈴時精確到分。按下P1.2鍵分加1,按P1.0鍵分減1 ;若再按P1.3鍵進入時調整狀態,顯示式樣為00: 00: ,按P1.2鍵時加1,按P1.0鍵時減1,按P1.1鍵鬧鈴有效,顯示式樣變為 00: 00: 0,再按P1.1鍵鬧鈴無效(顯示式 樣又為00: 00 :)。
13、再按P1.3鍵調整鬧鐘時間結束,恢復正常時間的顯示。在鬧鈴時 可按一下P1.3 口按鍵使蜂鳴停止,不按,則蜂鳴器將鳴叫1分鐘后自行中止。在設定鬧鐘后若要取消鬧時功能,可按一下P1.3鍵,可聽到一聲“滴”聲表明已取消了鬧鈴功能。六、系統調試6.1硬件調試由于本次設計沒有通過實際硬件做出電路,故沒有硬件調試,只在Proteus軟件上仿真。6.2軟件調試在Proteus軟件上畫好電路后先要進行硬件線路的測試。(1) 先測試LED數碼管是否會亮,方法是寫一段小程序 (P0 口為#00H, P2 口為#0FFH, 裝入單片機后運行看 8個數碼管是否能顯示 8個“ 8 ”,如不會亮或部分不會亮應檢查硬件連
14、接線路。(2)按鍵小開關的檢查是用鼠標按下小開關看對應口的發光管是否會亮(經調試可以 運行后發光管已省略)。(3)蜂鳴器電路接在 P3.7 口,在按下P3.7 口小開關時應能聽到蜂鳴聲。6.3綜合調試將設計好的程序裝入主控制芯片,進行功能的觀察與調試。七、指標測試7.1測試儀器由于本次設計沒有通過實際硬件做出電路,故不用進行儀器的測試。7.2指標測試基本要求:(1)具有正常的時鐘功能。(2)具有秒表功能。(3)具有時鐘校時功能。發揮部分:(1)具有校時段的閃爍功能。(2)具有開機上電時滾屏顯示年月日及班級學號的功能創新部分:(1)具有整點鬧鈴功能。(2)具有倒計時結束時鬧鈴提醒功能。(3)具有
15、定時鬧鈴功能。八、設計總結通過這一周的學習, 我感覺有很大的收獲:首先,通過這次課程設計使自己對課本上的知識可以應用于實際, 使理論與實際相結合,加深自己對課本知識的更好理解,同時也段練了自己的動手能力: 能夠充分利用電腦去查閱資料,增加了許多課本以外的知識。更加了解了單片機的設計步驟及方法。增加了對AT89C52芯片和7SEG共陽八位LED數碼管引腳結構和功能的理解及運用, 在設計電路過程中,要考慮到整體的美觀性,連接電路時對各線路的連接要細致。在驗證面電路效果時,出現了很多問題,其主要問題各個接線點之間錯接沒接上等。在這個過程中,鍛煉了我的細心和耐性。九、參考文獻.樓然苗、李光飛,單片機課
16、程設計指導M,北京,北京航空航天大學出版社,.蔡美琴等,MCS-51系列單片機系統及其應用(第二版)M,高等教學出版社,、樓然苗、胡佳文等,單片機實驗與課程設計(PROTEU仿真版)M,杭州,2007.07.2004.06.浙江大學出版社,2010.101 附帶程序:顯示首址存放單元小喇叭;存放報時次數;唱歌程序計數器;以下為唱歌寄存器;以下為延時寄存器DISPFIRST EQU 30HBELL EQU P3.7CONBS EQU 2FHSONGCON EQU 31HCONR2 EQU 32HCONR3 EQU 33HCONR4 EQU 34HCONR6 EQU 36HCONR7 EQU 37
17、HCONR5 EQU 35HDELAYR3 EQU 38HDELAYR5 EQU 39HDELAYR6 EQU 3AHDELAYR7 EQU 3BH*JJ;中斷程序入口 ; if*.ORG 0000H;程序執行開始地址LJMP START ;跳到標號START執行ORG 0003H;外中斷0中斷入口RETI;外中斷0中斷返回ORG 000BH; 定時器T0中斷入口LJMP INTT0ORG 0013HRETIORG 001BHLJMP INTT1ORG 0023HRETIJ*JJ;以下程序開始;*JJJ;整點報時功能程序ZDBS:MOV A,#10MOV B,79HMUL ABADD A,78
18、HMOV CONBS,AJZ OUTOOBSLOOP:LCALL DS20msMOV P3,#00HLCALL DL1SLCALL DL1SMOV P3,#0FFHLCALL DL1SDJNZ CONBS,BSLOOPOUT00:CLR 08HAJMP START1;以下為鬧鐘功能時的唱歌程序SPPP: ;LCALL MUSICOMOV B,#10BLOOP:LCALL DS20msLCALL DL1SLCALL DL1SDJNZ B,BLOOPCLR 0AHCLR 05HAJMP START1;倒計時程序進入程序DJS:LCALL DS20msJB P1.4,START1WAITH111:J
19、NB P1.4,WAITH111 LJMP DJSSTJ*JJ;主程序開始;*JJJSTART:MOV SP,#80HLCALL STLCALLSTFUN0LCALLSTMENSETB EASETB ET0SETB TR0MOV R4,#14HMOV DISPFIRST,#70HLCALL MUSICO;以下為主程序循環START1:LCALL DISPLAYJNB P1.0,SETMM1JNB P1.1,FUNSSJNB P1.2,FUNPTJNB P1.3,TSFUNJNB P1.4,DJSJB 08H,ZDBSJB OAH,SPPPAJMP START1JFUNPT:LJMP FUNPT
20、T;以下為鬧鐘時間設定程序,按下p1.3進入設定TSFUN:LCALL DS20msJB P1.3,START1WAIT113:JNB P1.3,WAIT113JB 05H,CLOSESPMOV DISPFIRST,#50HMOV 50H,#0CHMOV 51H,#0AHJDSWAIT:SETB EALCALL DISPLAYJNB P1.2,DSFINCJNB P1.0,DSDECJNB P1.3,DSSFUAJMP DSWAITJCLOSESP:CLR 05HCLR BELLAJMP START1DSSFU:LCALL DS20msJB P1.3,DSWAITLJMP DSSFUNNJSE
21、TMM1:LJMP SETMMJDSFINC:LCALL DS20msJB P1.2,DSWAITDSWAIT12:LCALL DISPLAYJNB P1.2,DSWAIT12CLR EAMOV R0,#53HLCALL ADD1MOV A,R3CLR CCJNE A,#60H,ADDHH22ADDHH22:JC DSWAITACALLCLR0AJMP DSWAITDSDEC:LCALL DS20msJB P1.0,DSWAITDSWAITEE:LCALL DISPLAYJNB P1.0QSWAITEECLR EAMOV R0,#53HLCALL sub1LJMP DSWAIT;以下為秒表功能
22、/時鐘轉化功能程序;按下p1.1可進行功能轉換FUNSS:LCALL DS20msJB P1.1,START11WAIT11:JNB P1.1,WAIT11CPL 03HJNB 03H,TIMFUNMOV DISPFIRST,#60HMOV 60H,#00HMOV 61H,#00HMOV 62H,#00HMOV 63H,#00HMOV 64H,#00HMOV 65H,#00HMOV TL1,#0F0HMOV TL1,#0D8HSETB TR1SETB ET1START11:LJMP START1TIMFUN:MOV DISPFIRST,#70HCLR ET1CLR TR1START12:LJM
23、P START1;以下為秒表暫停/清零功能程序;按下p1.2清零,p1.1推出秒表回到時鐘計時FUNPTT:LCALL DS20msJB P1.2,START12WAIT22:JNB P1.2,WAIT21CLR ET1CLR TR1WAIT33:JNB P1.1,FUNSSJB P1.2,WAIT31LCALL DS20msJB P1.2,WAIT33WAIT66:JNB P1.2,WAIT61MOV 60H,#00HMOV 61H,#00HMOV 62H,#00HMOV 63H,#00HMOV 64H,#00HMOV 65H,#00HWAIT44:JNB P1.1,FUNSSJB P1.2
24、,WAIT41LCALL DS20msJB P1.2,WAIT44WAIT55:JNB P1.2,WAIT51SETB ET1SETB TR1AJMP START1;以下為鍵等待釋放時顯示不會熄滅程序WAIT21:LCALL DISPLAYAJMP WAIT22WAIT31:LCALL DISPLAYAJMP WAIT33WAIT41:LCALL DISPLAYAJMP WAIT44WAIT51:LCALL DISPLAYAJMP WAIT55WAIT61:LCALL DISPLAYAJMP WAIT66*JJ;一秒計時程序*JJ;to中斷服務程序INTT0:PUSH ACCPUSH PSWC
25、LR ETOCLR TROMOV A,#0B7HADD A,TLOMOV TL0,AMOV A,#3CHADDC A,TH0MOV TH0,ASETB TROSETB P3.6SETB P3.5DJNZ R4,OUTT0ADDSS:MOV R4,#14HCLR P3.6CLR P3.5CPL 07HMOV R0,#71HACALLADD1MOV A,R3CLR CCJNE A,#60H,ADDMMADDMM:JC OUTT0ACALLCLR0MOV R0,#77HACALLADD1MOV A,R3CLR CCJNE A,#60H,ADDHHADDHH:JC OUTT0ACALLCLR0LCAL
26、L DS20msSETB 08HMOV R0,#79HACALLADD1MOV A,R3CLR CCJNE A,#24H,HOURHOUR:JC OUTT0ACALLCLR0OUTT0:MOV 72H,76HMOV 73H,77HMOV 74H,78HMOV 75H,79HLCALL BAOJPOP PSWPOP ACCSETB ETORETIJ*JJ;閃動調時程序/秒表功能;*JJ;t1中斷服務程序,用于時間調整單元閃爍指示或秒表計時INTT1:PUSH ACCPUSH PSWJB 09H,SPCCJB 06HQJSFUNJB 03H,MMFUNMOV TL1,#0B0HMOV TH1,#3
27、CHDJNZ R2,INTT1OUTMOV R2,#06HCPL 02HJB 02H,FLASH1MOV 72H,76HMOV 73H,77HMOV 74H,78HMOV 75H,7AHINTT1OUT:POP PSWPOP ACCRETIFLASH1:JB 01H,FLASH2MOV 72H,7AHMOV 73H,7AHMOV 74H,78HMOV 75H,79HAJMP INTT1OUTFLASH2:MOV 72H,76HMOV 73H,77HMOV 74H,7AHMOV 75H,7AHAJMP INTT1OUTJSPCC:INC SONGCONMOV TH1,#0D8HMOV TL1,#
28、0EFHAJMP INTT1OUTDJSFUN:LJMP DJSSMMFUN:CLR TR1MOV A,#0F7HADD A,TL1MOV TL1,AMOV A,#0D8HADDC A,TL1MOV TL1,ASETB TR1MOV R0,#61HACALLADD1CLR CJZ FSS1AJMP OUTT01FSS1:ACALL CLR0MOV R0,#63HACALLADD1MOV A,R3CLR CCJNE A,#60H,ADDHH1ADDHH1:JC OUTT01LCALL CLR0MOV R0,#65HACALLADD1OUTT01:POP PSWPOP ACCRETIJ*JJ;加1
29、子程序;*JJJADD1:MOV A,R0DEC ROSWAP AORL A,R0ADD A,#01HDA AMOV R3,AANL A,#OFHMOV R0,AMOV A,R3INC ROSWAP AANL A,#0FHMOV R0,ARETJ*JJ;分減1子程序;*JJJSUB1:MOV A,R0DEC R0SWAP AORL A,R0JZ SUB11DEC ASUB111:MOV R3,AANL A,#0FHCLR CSUBB A,#0AHSUB1111:JC SUB1110MOV R0,#09HSUB110:MOV A,R3INC R0SWAP AANL A,#0FHMOV R0,AR
30、ETJSUB11:MOV A,#59HAJMP SUB111SUB1110:MOV A,R3ANL A,#0FHMOV R0,AAJMP SUB110J*JJ;時減1程序;*SUBB1:M0V A,RODEC ROSWAP AORL A,R0JZ SUB11DEC ASUBB111:MOV R3,AANL A,#0FHCLR CSUBB A,#0AHSUBB1111:JC SUB1110MOV R0,#09H SUBB110:MOV A,R3INC R0SWAP AANL A,#0FHMOV R0,ARETJSUBB11:MOV A,#23HAJMP SUB111SUBB1110:MOV A,
31、R3ANL A,#0FHMOV R0,AAJMP SUB110J*JJ;清零程序;*JJ;對計時單元復用零用CLR0:CLR AMOV R0,ADEC R0MOV R0,ARETJ*JJ;時鐘時間調整程序;*JJ;當調試按鍵按下進入此程序SETMM:CLR ET02 CLR TROLCALL DL1SLCALL DS20msJB P1.0,CLOSEDISMOV R2,#06HMOV 70H,#00HMOV 71H,#00HSETB ET1SETB TR1SET2:JNB P1.0,SET1SETB 00HSET4:JB P1.0,SET3LCALL DL05SLCALL DS20msJNB
32、P1.0,SETHH MOV R0,#77H LCALL ADD1MOV A,R3CLR CCJNE A,#60H,HHHHHH:JC SET4LCALL CLR0CLR CAJMP SET4CLOSEDIS:SETB ET0SETB TR0CLOSE:JB P1.0,CLOSELCALL DS20msJB P1.0,CLOSEWAITH:JNB P1.0,WAITHLJMP START1SETHH:CLR 00HSETB 01HSETHH1:JNB P1.0,SET5 SET6:JB P1.0,SET7LCALL DL05SLCALL DS20msJNB P1.0,SETOUT MOV R0
33、,#79H LCALL ADD1MOV A,R3CLR CCJNE A,#24H,HOUUHOUU:JC SET6LCALL CLROAJMP SET6SETOUT:JNB P1.0,SETOUT1LCALL DS20msJNB P1.0,SETOUTCLR 01HCLR 00HCLR 02HCLR TR1CLR ET1SETB TR0SETB ET0LJMP START1SET1:LCALL DISPLAYAJMP SET2SET3:LCALL DISPLAYJNB P1.1,FUNSUBBSJMP SET4SET5:LCALL DISPLAYAJMP SETHH1SET7:LCALL DI
34、SPLAYJNB P1.1,FUNSUBBAJMP SET6SETOUT1:LCALL DISPLAYAJMP SETOUT ;FUNSUB分減1程序 FUNSUB:LCALL DS20msJB P1.1,SET41 FUNSUB1:JNB P1.1,FUNSUB1MOV R0,#77HLCALL SUB1LJMP SET4JSET41:LJMP SET4 ;FUNSUBB分減1程序 FUNSUBB:LCALL DS20msJB P1.1,SET61FUNSUBB1:JNB P1.1,FUNSUBB1MOV R0,#79HLCALL SUBB1LJMP SET6SET61:LJMP SET6*
35、JJ;顯示程序;*JJ;顯示數據在70H-75H單元內,用六位LED數碼管顯示,p0 口輸出斷碼數據;p2 口作為掃描控制,每個數碼管亮7毫秒再逐位循環DISPLAY:MOV R1QISPFIRSTMOV R5,#80HPLAY:MOV A,R5MOV P2,AMOV A,R1MOV DPTR,#TABMOVC A,A+DPTRMOV P0,AMOV A,R5JNB ACC.5, LOOP5CLR P0.7LOOP5:JNB ACC.3, LOOP6CLR P0.7LOOP6:LCALL DL1msINC R1MOV A,R5JB ACC.2,ENDOUTRR AMOV R5,AMOV P0,
36、#0FFHAJMP PLAYENDOUT:MOV P2,#00HMOV P0,#0FFHRETTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH;共陽段碼表 0,1,2,3,4,5,6,7,8,9 ,不亮,啊,-J*JJ;SDISPLAY,上電滾動屏顯示程序;*JJ;不帶小數點顯示,有 A,-顯示功能SDISPLAY:MOV R1QISPFIRSTMOV R5,#80HSPLAY:MOV A,R5MOV P2,AMOV A,R1MOV DPTR,#TABSMOVC A,A+DPTRMOV P0,AMOV A,R5L
37、CALL DL1msINC R1MOV A,R5JB ACC.2,ENDOUTSRR AMOV R5,AAJMP SPLAYENDOUTS:MOV P2,#00HMOV P0,#0FFHRETTABS:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0C6H,0BFH,88H;顯示數0 1 2 3 4 5 6 7 8 9 不亮C -A;內存數 0 1 2 3 4 5 6 7 8 9 0AH 0BH 0CH 0DH;STAB表,啟動時顯示 2012.12.16 , C10-1-13 (學號)用STAB:DB 0AH,0AH,0AH,0AH
38、,0AH,0AH,08H,01H,0CH,01H,0CH,00H,01H,0BH,0AH,0AHDB 06H,01H,0CH,02H,01H,0CH,02H,01H,00H,02H,0AH,0AH,0AH,0AH,0AH,0AH;注:OA不亮,OB顯示A,0C顯示-J*JJ;ST ,上電顯示年月班級用,采用移動顯示,先右移,后左移*JJST:MOV R0,#40HMOV R2,#20HMOV R3,#00HMOV R4,#0FEHMOV P1,R4CLR AMOV DPTR,#STABSLOOP:MOVC A,A+DPTRMOV R0,AMOV A,R3INC AMOV R3,AINC ROD
39、JNZ R2,SLOOPMOV DISPFIRST,#5AHMOV R3,#1BHSSLOOP2:MOV R2,#25 SSLOOP12:LCALL SDISPLAYDJNZ R2,SSLOOP12MOV A,R4RL AMOV R4,AMOV P1,ADEC DISPFIRSTDJNZ R3,SSLOOP2MOV P1,#0FFHMOV DISPFIRST,#40HSSLOOP:MOV R2,#25SSLOOP1:LCALL SDISPLAYDJNZ R2,SSLOOP1MOV A,R4RL AMOV R4,AMOV P3,AINC DISPFIRSTMOV A,DISPFIRSTCJNE
40、A,#5AH,SSLOOPMOV P3,#0FFHRET*JJ;延時程序;*JJJ;1毫秒延時程序,LED燈顯示程序DL1ms:MOV DELAYR6,#14HDL1:MOV DELAYR7,#19HDL2:DJNZ DELAYR7,DL2DJNZ DELAYR6,DL1RETDL50ms:MOV DELAYR5,#50DLms:LCALL DL1msDJNZ DELAYR5,DLmsRETLED的顯示閃爍現象;20毫秒延時程序,采用調用子程序以改善DS20ms:CLR BELLLCALL DISPLAYLCALL DISPLAYLCALL DISPLAYSETB BELLRET;延時程序,用
41、按鍵時間長短判斷DL1S:LCALL DL05SLCALL DL05SRETDL05S:MOV DELAYR3,#20HDL05S1:LCALL DISPLAYDJNZ DELAYR3,DL05S1RET*JJ;以下是鬧鈴時間設定程序中的時調整程序*JJDSSFUNN:LCALL DISPLAYJNB P1.3,DSSFUNNMOV 50H,#0AHMOV 51H,#0CHWAITSS:SETB EALCALL DISPLAYJNB P1.2,FFFFJNB P1.0,DDDDJNB P1.3,OOOOJNB P1.1,ENAAJMP WAITSSOOOO:LCALL DS20msJB P1.
42、3,WAITSS DSSFUNNM:LCALL DISPLAYJNB P1.3QSSFUNNMMOV DISPFIRST,#70HLJMP START1ENA:LCALL DISPLAYJB P1.1,WAITSSDSSFUNMM0:LCALL DISPLAYJNB P1.1,DSSFUNMM0CPL05HJNB 05H,WAITSS11 MOV 50H,00H AJMP WAITSS WAITSS11:MOV 50H,#0aH AJMP WAITSSFFFF:LCALL DS20msJB P1.2,WAITSSDSSFUNMM:LCALL DISPLAYJNB P1.2QSSFUNMMCLR
43、 EAMOV R0,#55HLCALL ADD1MOV A,R3CLR CCJNE A,#24H,ADDHH33NADDHH33N:JC WAITSSACALL CLR0AJMP WAITSSDDDD:LCALL DS20msJB P1.0,WAITSSDSSFUNDD:LCALL DISPLAYJNB P1.0QSSFUNDDCLR EAMOV R0,#55HLCALL SUBB1LJMP WAITSS*JJ;以下是鬧鈴判斷子程序;*JJBAOJ:JNB 05H,BBAOMOV A,79HCJNE A,55H,BBAOMOV A,78HCLR CBB3:CJNE A,54H,BBAOMOV
44、A,77HCLR CCJNE A,53H,BBAOMOV A,76HCLR CBB2:CJNE A,52H,BBAOSETB 0AHJNB 05H,BBAOCLR BELLRETBBAO:SETB BELLRET*JJ;倒計時調分十位數;SADD:LCALL DS20msJB P1.5 ,L OOOPSADDWAIT:JNB P1.5,SADDWAITINC 65HMOV A,#9SUBB A,65HJNC LOOOPMOV 65H,#00HAJMP LOOOP;倒計時時調分個位GADD:LCALL DS20msJB P1.6 ,L OOOPGADDWAIT:JNB P1.6,GADDWAIT
45、INC 64HMOV A,#9SUBB A,64HJNC LOOOPMOV 64H,#00HAJMP LOOOP;倒計時程序DJSST:CPL 06HJNB 06H,TIMFUNNMOV DISPFIRST,#60HMOV 60H,#00HMOV 61H,#00HMOV 62H,#00HMOV 63H,#00HMOV 64H,#00HMOV 65H,#00HMOV TL1,#0F0HMOV TH1,#0D8HLOOOP:LCALL DISPLAYJNB P1.5,SADDJNB P1.6,GADDJB P1.4,L OOOPLCALL DS20msJB P1.4,L OOOPSETB TR1S
46、ETB ET1LOOOPP:LCALL DISPLAYJNB P1.4,L OOOPPSTART11222:LJMP START1TIMFUNN:MOV DISPFIRST,#70HCLR ET1CLR TR1LJMP START1JDJSS:CLR TR1MOV A,#0F7HADD A,TL1MOV TL1,AMOV A,#0D8HADDC A,TH1MOV TH1,ASETB TR1MOV A,61HSWAP AORL A,60HJZ FSS111SUBB A,#01HMOV R3,AANL A,#0F0HSWAP AMOV 61H,AMOV A,R3ANL A,#0FHMOV 60H,
47、ACJNE A,#0AH,JJJJJJ:JC OUT011MOV 60H,#09AJMP OUT011FSS111:MOV 50H,#09MOV 61H,#09MOV A,63HSWAP AORL A,62HJZ FSS222SUBB A,#01HMOV R3,AANL A,#0F0HSWAP AMOV 63H,AMOV A,R3ANL A,#0FHMOV 62H,ACJNE A,#0AH,KKKKKK:JC OUT011MOV 62H,#09AJMP OUT011FSS222:MOV 62H,#09MOV 63H,#05MOV A,65HSWAP AORL A,64HJZ FSS333SUB
48、B A,#01HMOV R3,AANL A,#0F0HSWAP AMOV 65H,AMOV A,R3ANL A,#0FHMOV 64H,ACJNE A,#0AH,qqq qqq:JC OUT011MOV 64H,#09AJMP OUT011FSS333:MOV 64H,#00HMOV 65H,#00HMOV 63H,#00HMOV 62H,#00HMOV 61H,#00HMOV 60H,#00HCLR BELLCLR TR1CLR ET1OUT011:POP PSWPOP ACCRETIJ;開啟流水燈子程序STFUN0:MOV A,#0FEH3 FUN0011:MOV P1,ALCALL DL50msJNB ACC.7,MAINENDRL AAJMP FUN0011MAINEND:MOV P1,#0FFHMOV A,#0FEHFUN0022:MOV P3,ALCALL DL
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 有效吸收知識應對2025年證券從業資格證考試試題及答案
- 微生物檢測的實踐意義試題及答案
- 項目實施中的流程優化分析探討試題及答案
- 窯洞修整施工方案怎么寫
- 考生反思與總結證券從業試題及答案
- 福建事業單位考試職業發展形勢的未來展望試題及答案
- 電玩具高級編程語言應用考核試卷
- 2025年危險化學品安全-氯化工藝作業模擬考試題及答案
- 2024年項目管理關鍵干系人的考察試題及答案
- 公路客運信息化建設與應用考核試卷
- GB/T 38615-2020超聲波物位計通用技術條件
- 商業銀行經營管理學商業銀行資產負債管理課件
- 智慧環衛大數據信息化云平臺建設和運營綜合解決方案
- 2022Z世代洞察報告QuestMobile
- 中國制造業數字化轉型研究報告
- 申請法院調查取證申請書(調取銀行資金流水)
- 辦公室事故防范(典型案例分析)
- 三治融合課件講解
- 第二部分-CPO-10中央機房優化控制系統
- 設計概論重點知識
- 留仙洞總部基地城市設計
評論
0/150
提交評論