




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)課程設(shè)計(jì)-新穎的60秒旋轉(zhuǎn)電子鐘新穎的60秒旋轉(zhuǎn)電子鐘新穎60秒旋轉(zhuǎn)電子鐘材料清單單片機(jī)課程設(shè)計(jì)-新穎的60秒旋轉(zhuǎn)電子鐘新穎的60秒旋轉(zhuǎn)電子鐘參考電路原理圖單片機(jī)課程設(shè)計(jì)-新穎的60秒旋轉(zhuǎn)電子鐘60秒旋轉(zhuǎn)電子鐘部分參考程序清單ALARMHBUFF2 EQU 77H ;鬧鈴時(shí)間的時(shí)十位計(jì)時(shí)綬沖ALARMHBUFF1 EQU 76H ;鬧鈴時(shí)間的時(shí)個(gè)位計(jì)時(shí)綬沖ALARMMBUFF2 EQU 75H ;鬧鈴時(shí)間的分十位計(jì)時(shí)綬沖ALARMMBUFF1 EQU 74H ;鬧鈴時(shí)間的分個(gè)位計(jì)時(shí)綬沖HBUFF2 EQU 73H ;時(shí)十位計(jì)時(shí)綬沖HBUFF1 EQU 72H ;時(shí)個(gè)位計(jì)時(shí)綬沖MBUFF2
2、 EQU 71H ;分十位計(jì)時(shí)綬沖MBUFF1 EQU 70H ;分個(gè)位計(jì)時(shí)綬沖DP EQU 6FH ;控制數(shù)碼管點(diǎn)的亮暗NUM EQU 78H ;前四秒還是后四秒計(jì)數(shù)SBUFF EQU 79H ;秒十進(jìn)制計(jì)時(shí)綬沖(低四位對應(yīng)個(gè)位,高四位對應(yīng)十位)MBUFF EQU 7AH ;分十進(jìn)制計(jì)時(shí)綬沖HBUFF EQU 7BH ;時(shí)十進(jìn)制計(jì)時(shí)綬沖ALARMMBUFF EQU 7CH ;鬧鈴時(shí)間的分十進(jìn)制計(jì)時(shí)綬沖ALARMHBUFF EQU 7DH ;鬧鈴時(shí)間的時(shí)十進(jìn)制計(jì)時(shí)綬沖NUMT1 EQU 67H ;用于控制時(shí)間調(diào)整時(shí)按鍵p3.2一次按下時(shí),計(jì)數(shù)器T1中斷的次數(shù)NUMT2 EQU 68H ;用于控
3、制時(shí)間調(diào)整時(shí)按鍵p3.3一次按下時(shí),計(jì)數(shù)器T1中斷的次數(shù)KEYNUMT1 EQU 69H ;用于存儲NUMT1已經(jīng)計(jì)數(shù)到第幾個(gè)半秒KEYNUMT2 EQU 6AH ;用于存儲NUMT1已經(jīng)計(jì)數(shù)到第幾個(gè)半秒STOREKEYNUMT2 EQU 6BH ;用于存儲當(dāng)前KEYNUMT1的值,以和下次做比較,看是否有變化STOREKEYNUMT1 EQU 6CH ;用于存儲當(dāng)前KEYNUMT2的值,以和下次做比較,看是否有變化ORG 0000HAJMP STARTORG 000BHMOV TH0 , #0BH ;設(shè)置計(jì)數(shù)初值 ,R4用來存儲低位的初值MOV TL0 , R4AJMP INTERT0ORG
4、 001BHAJMP INTERT1ORG 0040HSTART: MOV NUMT1 , #00HMOV NUMT2 , #00HMOV KEYNUMT1 , #00HMOV KEYNUMT2 , #00HMOV STOREKEYNUMT2 , #00HMOV STOREKEYNUMT1 , #00H單片機(jī)課程設(shè)計(jì)-新穎的60秒旋轉(zhuǎn)電子鐘MOV NUM , #8MOV DPTR , #TABMOV ALARMHBUFF , #18H ;置鬧鈴時(shí)間初始值為18:55MOV ALARMMBUFF , #55HMOV ALARMHBUFF2, #01HMOV ALARMHBUFF1, #08HMO
5、V ALARMMBUFF2 , #05HMOV ALARMMBUFF1 , #05HMOV HBUFF2, #01H ;置鬧鐘時(shí)間為18:53MOV HBUFF1, #08HMOV MBUFF2 , #05HMOV MBUFF1 , #03HMOV HBUFF , #18HMOV MBUFF , #53HMOV SBUFF , #3CH ;置初始秒為60,計(jì)時(shí)時(shí)減MOV TCON , #05H ;下降沿觸發(fā)MOV TMOD , #11H ;初始化定時(shí)器,T0 ,T1 16位計(jì)時(shí) MOV TH0 , #0BH ;設(shè)置計(jì)數(shù)初值,125ms計(jì)時(shí)MOV TL0 , #0DBHMOV TH1 , #3C
6、H ;T1置初值,進(jìn)行100ms計(jì)時(shí),用于調(diào)整時(shí)間 MOV TL1 , #0B0HMOV IE , #82H ;開T0中斷SETB PT0 ;T0中斷優(yōu)先級最高SETB TR0 ;允許T0計(jì)數(shù)SETB P3.2SETB P3.3START1: MOV A , HBUFF ; 顯示時(shí),7點(diǎn)以前及21點(diǎn)以后亮度調(diào)暗 SUBB A , #7HJC START2MOV A , HBUFFSUBB A , #21HJNC START2ACALL DISPLAYACALL ZDBSAJMP START3START2: ACALL NIGHTDISPLAYSTART3: MOV A ,ALARMHBUFF
7、;檢測是否是定鬧時(shí)間CJNE A , HBUFF , START4MOV A , ALARMMBUFFCJNE A , MBUFF ,START4MOV C, DP ;若是定鬧時(shí)間,則利用dp的值來決定蜂鳴 MOV P3.2, CMOV A , SBUFFJNZ START1 ;若還沒到1分鐘,則繼續(xù)蜂鳴單片機(jī)課程設(shè)計(jì)-新穎的60秒旋轉(zhuǎn)電子鐘SETB P3.2START4: JNB P3.2,ADJUSTTIME1 ;循環(huán)等待中斷,并檢測是否鍵按下,若是,則進(jìn)入相應(yīng)程序JNB P3.3,ADJUSTTIME2AJMP START1AJMP START1;*;*int0中斷子程序*;*ADJUS
8、TTIME1:NOPMOV KEYNUMT1 ,#00HMOV TH1 , #3CH ;T1置初值,進(jìn)行100ms計(jì)時(shí),用于調(diào)整時(shí)間MOV TL1 , #0B0HSETB ET1 ;開T1中斷SETB PT1 ;設(shè)T1中斷優(yōu)先級最高SETB TR1 ;允許T1計(jì)時(shí)MOV STOREKEYNUMT1 , KEYNUMT1 ;存儲當(dāng)前次KEYNUMT1的值TIME1_1:ACALL DISPLAYMOV A , KEYNUMT1CJNE A , STOREKEYNUMT1,TIME1_2 ;若當(dāng)前KEYNUMT1的值與上一次的值不等,則時(shí)間加1分,否則繼續(xù)循環(huán),等等至半分鐘AJMP TIME1_3
9、TIME1_2:MOV STOREKEYNUMT1 , KEYNUMT1 ;加1后存儲當(dāng)前的KEYNUMT1的值A(chǔ)CALL ADDBUFF0 ;分加1TIME1_3:JNB P3.2,TIME1_1 ;若p3.2已關(guān),則退出增時(shí),否則繼續(xù)循環(huán)CLR ET1CLR PT1CLR TR1AJMP START1;*;*時(shí)間增1分*;*ADDBUFF0:MOV A , MBUFF ; 若按鍵小于1s,則分增1ADD A , #1DA AMOV MBUFF , AANL A , #0FHMOV MBUFF1 , AMOV A , MBUFF單片機(jī)課程設(shè)計(jì)-新穎的60秒旋轉(zhuǎn)電子鐘SWAP AANL A ,
10、 #0FHMOV MBUFF2 , AMOV A , MBUFFCJNE A , #60H , ADDBUFF1MOV MBUFF , #00HMOV MBUFF2 , #00HMOV MBUFF1 , #00HMOV A , HBUFF ;時(shí)增1ADD A , #1DA AMOV HBUFF , AANL A , #0FHMOV HBUFF1 , AMOV A , HBUFFSWAP AANL A , #0FHMOV HBUFF2 , AMOV A , HBUFFCJNE A , #24H , ADDBUFF1 ;若沒到24小時(shí),則不必初值置0MOV HBUFF , #00HMOV HBUF
11、F2 , #00HMOV HBUFF1 , #00HADDBUFF1:RET;*;*int1中斷子程序*;*ADJUSTTIME2: NOPACALL DL100MSMOV C , P3.3JC TIME2_6 ;如果(P3.3按鍵100ms以上) 則不做處理 MOV KEYNUMT2 , #00H ;否則進(jìn)入定鬧設(shè)置MOV STOREKEYNUMT2 , KEYNUMT2 ;記錄當(dāng)前NUMT2的數(shù)據(jù),以看下次有沒改變 TIME2_1:NOPMOV TH1 , #3CH ;T1置初值,進(jìn)行100ms計(jì)時(shí),用于調(diào)整時(shí)間 MOV TL1 , #0B0HSETB ET1 ;開T1中斷SETB PT1
12、 ;設(shè)T1中斷優(yōu)先級最高SETB TR1 ;允許T1計(jì)時(shí)TIME2_2:ACALL ALARMDISPLAYMOV A , KEYNUMT2CJNE A , STOREKEYNUMT2 ,TIME2_3單片機(jī)課程設(shè)計(jì)-新穎的60秒旋轉(zhuǎn)電子鐘AJMP TIME2_4TIME2_3: MOV STOREKEYNUMT2 , KEYNUMT2MOV A , ALARMMBUFF ; 若按鍵小于1s,則分增1 ADD A , #1DA AMOV ALARMMBUFF , AANL A , #0FHMOV ALARMMBUFF1 , AMOV A , ALARMMBUFFSWAP AANL A , #0
13、FHMOV ALARMMBUFF2 , AMOV A , ALARMMBUFFCJNE A , #60H , TIME2_4MOV ALARMMBUFF , #00HMOV ALARMMBUFF2 , #00HMOV ALARMMBUFF1 , #00HMOV A , ALARMHBUFF ;ADD A , #1DA AMOV ALARMHBUFF , AANL A , #0FHMOV ALARMHBUFF1 , AMOV A , ALARMHBUFFSWAP AANL A , #0FHMOV ALARMHBUFF2 , AMOV A , ALARMHBUFFCJNE A , #24H , T
14、IME2_4 ;MOV ALARMHBUFF , #00HMOV ALARMHBUFF2 , #00HMOV ALARMHBUFF1 , #00HTIME2_4:NOPJNB P3.3,TIME2_2 ;CLR ET1CLR TR1MOV KEYNUMT2 , #00HMOV NUMT2 , #00HMOV R2TIME2_7:MOV R1 , #200TIME2_5:ACALL ALARMDISPLAYACALL DL1MSJNB P3.3 , TIME2_1時(shí)增1 若沒到24小時(shí),則初值不必置0 若按鍵已經(jīng)未按,則退出循環(huán) , #10 ; 直到p3.3 20s鐘內(nèi)都是未按,此時(shí)復(fù)原數(shù)據(jù),即
15、退出設(shè)置單片機(jī)課程設(shè)計(jì)-新穎的60秒旋轉(zhuǎn)電子鐘DJNZ R1 , TIME2_5DJNZ R2 , TIME2_7TIME2_6:CLR ET1CLR PT1CLR TR1LJMP START1;*;*T1中斷子程序*;*INTERT1:NOPMOV TH1 , #3CH ;T1置初值,進(jìn)行100ms計(jì)時(shí),用于調(diào)整時(shí)間MOV TL1 , #0B0HPUSH ACCPUSH PSWCLR ET0CLR ET1 ;關(guān)T1中斷MOV A , NUMT1INC AMOV NUMT1 , A ;中斷一次則相應(yīng)的增加NUMT1CJNE A , #5 , INTERT1NEXT ;每中斷五次,即半秒,都增加
16、KEYNUMT1 MOV A ,KEYNUMT1INC AMOV KEYNUMT1 , AMOV NUMT1 , #00H ;NUMT1已經(jīng)是5了,則處理過KEYNUMT1后,重置NUMT1 INTERT1NEXT:NOPMOV A , NUMT2 ;中斷一次則相應(yīng)的增加NUMT1INC AMOV NUMT2 , ACJNE A, #5,ENDINTERT1 ;每中斷五次,即半秒,都增加KEYNUMT1MOV A , KEYNUMT2INC AMOV KEYNUMT2 , AMOV NUMT2 , #00H ;NUMT1已經(jīng)是5了,則處理過KEYNUMT1后,重置NUMT1 ENDINTERT
17、1: SETB ET1SETB ET0POP ACCPOP PSWRETI;*;* 整點(diǎn)報(bào)時(shí) *;*單片機(jī)課程設(shè)計(jì)-新穎的60秒旋轉(zhuǎn)電子鐘ZDBS: MOV A , MBUFF ;在整點(diǎn)時(shí),響半秒 JNZ ZDBSENDMOV A , SBUFFCJNE A , #3CH , ZDBSENDCLR P3.2ACALL DL0FIVESETB P3.2ZDBSEND:RET;*;*定鬧顯示子程序*;*ALARMDISPLAY: MOV P1 ,#0FFH ;MOV A , ALARMHBUFF2MOVC A , A+DPTRSETB ACC.7MOV P1 , ACLR P3.0ACALL DL
18、1MSSETB P3.0MOV A , ALARMHBUFF1 ;MOVC A , A+DPTRMOV C , DPMOV ACC.7 , CMOV P1 , ACLR P3.1ACALL DL1MSSETB P3.1MOV A ,ALARMMBUFF2 ;MOVC A , A+DPTRMOV C , DPMOV ACC.7 , CMOV P1 , ACLR P3.4ACALL DL1MSSETB P3.4MOV A , ALARMMBUFF1 ;MOVC A , A+DPTRSETB ACC.7MOV P1,ACLR P3.5ACALL DL1MSSETB P3.5RET使時(shí)的十位亮 使時(shí)的
19、個(gè)位亮 使分的十位亮 使時(shí)的個(gè)位亮單片機(jī)課程設(shè)計(jì)-新穎的60秒旋轉(zhuǎn)電子鐘;*;*晚上顯示子程序*;* ;降低顯示的占空比,數(shù)碼管進(jìn)入節(jié)能 NIGHTDISPLAY: NOPMOV P1 ,#0FFHMOV A , HBUFF2MOVC A , A+DPTRSETB ACC.7MOV P1 , ACLR P3.0ACALL DL1MS ;SETB P3.0ACALL DL1MSACALL DL1MS ;MOV A , HBUFF1MOVC A , A+DPTRMOV C , DPMOV ACC.7 , CMOV P1 , ACLR P3.1ACALL DL1MSSETB P3.1ACALL DL
20、1MSACALL DL1MSMOV A ,MBUFF2MOVC A , A+DPTRMOV C , DPMOV ACC.7 , CMOV P1 , ACLR P3.4ACALL DL1MSSETB P3.4ACALL DL1MSACALL DL1MSMOV A , MBUFF1MOVC A , A+DPTRSETB ACC.7MOV P1,ACLR P3.5ACALL DL1MSSETB P3.5ACALL DL1MSACALL DL1MS亮1ms 暗2ms單片機(jī)課程設(shè)計(jì)-新穎的60秒旋轉(zhuǎn)電子鐘RET;*;*顯示子程序*;*DISPLAY: MOV P1 ,#0FFHMOV A , HBUFF
21、2MOVC A , A+DPTRSETB ACC.7MOV P1 , ACLR P3.0ACALL DL1MSSETB P3.0MOV A , HBUFF1MOVC A , A+DPTRMOV C , DPMOV ACC.7 , CMOV P1 , ACLR P3.1ACALL DL1MSSETB P3.1MOV A ,MBUFF2MOVC A , A+DPTRMOV C , DPMOV ACC.7 , CMOV P1 , ACLR P3.4ACALL DL1MSSETB P3.4MOV A , MBUFF1MOVC A , A+DPTRSETB ACC.7MOV P1,ACLR P3.5ACALL DL1MSSETB P3.5RETTAB: DB 88H,0BBH,94H,91H,0A3H ; 0 1 2 3 4 DB 0C1H,0C0H,9BH,80H,81H ; 5 6 7 8 9;*單片機(jī)課程設(shè)計(jì)-新穎的60秒旋轉(zhuǎn)電子鐘;*延時(shí)程序*;*DL1MS: MOV R6 , #20 ;延時(shí)1ms DL11: MOV R7 , #25DL12: DJNZ R7 , DL12DJNZ R6 , DL11RETDL100MS:MOV R6 ,
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 共同經(jīng)營貨車合同范本
- 個(gè)人法制宣傳教育工作總結(jié)
- 個(gè)人工作崗位調(diào)動申請書
- 業(yè)主授權(quán)委托書
- 個(gè)人之間合伙合同范本
- 企業(yè)餐廳布置租房合同范本
- 買賣房合同范本簡易
- 原材供貨合同范本
- 與律師事務(wù)所簽署合同范本
- 前程無憂合同范本
- 高中主題班會 悟哪吒精神做英雄少年-下學(xué)期開學(xué)第一課主題班會課件-高中主題班會課件
- 2025電力物資檢儲配一體化建設(shè)技術(shù)導(dǎo)則
- 新學(xué)期 開學(xué)第一課 主題班會課件
- 民法典合同編講座
- DBJ51-T 198-2022 四川省既有民用建筑結(jié)構(gòu)安全隱患排查技術(shù)標(biāo)準(zhǔn)
- 《干細(xì)胞及其應(yīng)用》課件
- 課題申報(bào)書:生成式人工智能提升中小學(xué)教師數(shù)字素養(yǎng)的路徑探究
- 臨床婦產(chǎn)題庫+參考答案
- 數(shù)據(jù)安全重要數(shù)據(jù)風(fēng)險(xiǎn)評估報(bào)告
- 起重機(jī)械質(zhì)量安全風(fēng)險(xiǎn)管控清單(起重機(jī)械制造、安裝、修理、改造單位)
- GB_T 27025-2019 檢測和校準(zhǔn)實(shí)驗(yàn)室能力的通用要求(高清版)
評論
0/150
提交評論