版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)字鐘在單片機(jī)上的實(shí)現(xiàn)(匯編語言)數(shù)字鐘在單片機(jī)上的實(shí)現(xiàn)(匯編語言)數(shù)字鐘在單片機(jī)上的實(shí)現(xiàn)(匯編語言)數(shù)字鐘在單片機(jī)上的實(shí)現(xiàn)(匯編語言)編制僅供參考審核批準(zhǔn)生效日期地址:電話:傳真:郵編:武漢大學(xué)電子信息學(xué)院電子系統(tǒng)綜合設(shè)計(jì)課程論文數(shù)字鐘在單片機(jī)上的實(shí)現(xiàn)(匯編語言)專業(yè):年級(jí):作者:__________________________指導(dǎo)教師:2012年06目錄1作品的背景與意義 12功能指標(biāo)設(shè)計(jì) 1設(shè)計(jì)要求 1基本要求 1拓展要求 1功能設(shè)計(jì)方案 13作品方案設(shè)計(jì) 2總體方案的選擇 2模塊劃分及分析 3單模塊設(shè)計(jì)流程圖 34模塊源程序 75系統(tǒng)測(cè)試 35測(cè)試數(shù)據(jù): 366心得體會(huì) 361作品的背景與意義數(shù)字鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的鐘表。與機(jī)械鐘相比具有更高的準(zhǔn)確性和直觀性,具有更長的使用壽命,已得到廣泛的使用。數(shù)字鐘的設(shè)計(jì)方法有許多種,例如可用中小規(guī)模集成電路組成電子鐘,也可以利用專用的電子鐘芯片配以顯示電路及其所需要的外圍電路組成電子鐘,還可以利用單片機(jī)來實(shí)現(xiàn)電子鐘等等。這些方法都各有其特點(diǎn),其中利用單片機(jī)實(shí)現(xiàn)的電子鐘具有編程靈活,以便于功能的擴(kuò)展。2功能指標(biāo)設(shè)計(jì)設(shè)計(jì)要求基本要求設(shè)計(jì)一個(gè)精確的1秒定時(shí)器;根據(jù)1秒定時(shí)器,設(shè)計(jì)一個(gè)帶小時(shí)、分鐘、秒的時(shí)鐘,并將小時(shí)、分鐘、秒顯示在LED上;設(shè)計(jì)小時(shí)、分鐘、秒的修改按鍵,可分別調(diào)整小時(shí)、分鐘、秒(按鍵設(shè)計(jì)參考電子表)。拓展要求增加小時(shí)、分鐘、秒的鍵盤直接修改功能;設(shè)計(jì)鬧鐘功能,最多支持5個(gè)鬧鐘,可分別查看和修改鬧鐘時(shí)間,可分別設(shè)置鬧鐘開關(guān);增加萬年歷功能。功能設(shè)計(jì)方案1.實(shí)現(xiàn)正常走時(shí)(秒-分-時(shí)-日-月-年進(jìn)位);2.能夠設(shè)置時(shí)間和日期;3.能夠自動(dòng)區(qū)分平閏年和大小月及2月;4.具有5個(gè)鬧鐘及其設(shè)置功能;5.在任何設(shè)置狀態(tài)下,修改位會(huì)閃爍顯示。3作品方案設(shè)計(jì)總體方案的選擇以T0計(jì)時(shí)器中斷產(chǎn)生1s信號(hào),T1計(jì)時(shí)器中斷刷新數(shù)碼管。系統(tǒng)軟件流程圖如下所示:設(shè)計(jì)時(shí)使T0優(yōu)先級(jí)高于T1以確保準(zhǔn)確計(jì)時(shí),初始化完成后,程序一直處于主循環(huán)模塊,主循環(huán)模塊中有設(shè)置按鍵的檢測(cè)模塊,當(dāng)遇到設(shè)置信號(hào)暫時(shí)跳出主循環(huán)去執(zhí)行相應(yīng)的設(shè)置模塊,時(shí)間設(shè)置,日期設(shè)置,鬧鐘設(shè)置3大模塊彼此之間是相互獨(dú)立且平行的,他們和主循環(huán)模塊也不干擾。因此,當(dāng)進(jìn)入任何一個(gè)模塊時(shí),其他模塊中的所有功能和按鍵都暫時(shí)失效,程序由始至終中斷服務(wù)一直打開。模塊劃分及分析??MAIN:初始化程序模塊進(jìn)行初值的分配(棧頂?shù)刂?,初始時(shí)間,初始日期,初始化鬧鐘及相關(guān)標(biāo)志地址)各定時(shí)器,中斷初始化。?ZHUXUNHUAN:主循環(huán)模塊程序主要執(zhí)行部分,包含鬧鐘檢測(cè),獨(dú)立按鍵檢測(cè)(日期—時(shí)間轉(zhuǎn)換檢測(cè)),矩陣按鍵檢測(cè)(鬧鐘設(shè)置,日期設(shè)置,時(shí)間設(shè)置)3大檢測(cè)部分。??SERVE:1s中斷服務(wù)中斷走時(shí):秒→分→時(shí)→日→月→年?XIAGSHI:刷屏中斷服務(wù)(顯示中斷服務(wù))以人眼不能分辨的頻率一次刷新8或6位數(shù)碼管來顯示時(shí)間或日期及其他設(shè)置界面。?SHIJIANSHEZHI:時(shí)間設(shè)置模塊修改時(shí)間,其中修改位閃爍顯示加以區(qū)分,內(nèi)嵌了時(shí)間的自動(dòng)檢測(cè)和校正代碼,既不允許修改出現(xiàn)不存在的時(shí)間。?WANNIANLISHEZHI:日期設(shè)置模塊修改日期,同樣的修改位閃爍加以區(qū)分,內(nèi)嵌了日期的自動(dòng)檢測(cè)和校正代碼,既不允許出現(xiàn)不存在的日期。?NAOZHONGSHEZHI:鬧鐘設(shè)置模塊修改鬧鐘時(shí)間,鬧鐘開關(guān)的置換,修改位閃爍加以區(qū)分,內(nèi)嵌時(shí)間自動(dòng)監(jiān)測(cè)和校正代碼已設(shè)置正確的時(shí)間。單模塊設(shè)計(jì)流程圖在完成的整體設(shè)計(jì)和模塊劃分后,便進(jìn)入到工作量最大的單模塊流程設(shè)計(jì)。?主循環(huán):說明:1.初始化時(shí),將保存5個(gè)鬧鐘(按時(shí)分秒順序排放)的15個(gè)地址50H—5EH均清零,將對(duì)應(yīng)的5個(gè)鬧鐘開關(guān)0AH—0EH也都清零表示鬧鐘開關(guān)狀態(tài),檢測(cè)鬧鐘時(shí),從第一個(gè)鬧鐘開始分別檢測(cè)開關(guān),時(shí)分秒只要有任何一項(xiàng)不符合及即檢測(cè)下一個(gè)鬧鐘,到最后一個(gè)鬧鈴也不符合時(shí),進(jìn)入按鍵檢測(cè)部分。2.按鍵檢測(cè)包含獨(dú)立按鍵和矩陣按鍵兩部分,獨(dú)立按鍵很簡單,矩陣按鍵則編寫檢測(cè)子程序,將檢測(cè)到的鍵值保存在寄存器R7中,沒有檢測(cè)到按鍵時(shí)不改變R7的數(shù)值。因此,檢測(cè)器先將R7里面放入#0FH(只要不是#00H—#0CH中的數(shù)即可),然后調(diào)用矩陣鍵盤檢測(cè)子程序,再來通過檢測(cè)R7的數(shù)值來判斷有無按鍵按下或按下的那個(gè)鍵。?時(shí)間設(shè)置模塊:說明:1.進(jìn)入時(shí)間設(shè)置模塊后,時(shí)的十位開始閃爍,通過獨(dú)立按鍵s17,s18可以向右向左移動(dòng)閃爍即修改位,修改正確的判斷實(shí)際上是對(duì)將要修改完成的時(shí)間進(jìn)行合理性的判斷,如合理則修改時(shí)間,若不合理則此次按鍵失效。2.檢測(cè)到退出信號(hào)后,先要將所有初始化過程中改變了的標(biāo)志位還原,如閃爍開關(guān)位等,再調(diào)回主循環(huán)。?日期設(shè)置模塊:日期設(shè)置模塊和時(shí)間設(shè)置模塊幾乎完全一樣,所不同的是初始化不一樣及日期設(shè)置里面有8位數(shù)碼管需要刷新,而且由于日期比時(shí)間復(fù)雜,因此該模塊中有兩處日期校正部分,一部分是對(duì)按鍵修改是否正確的判斷,使用方法也是使相應(yīng)按鍵暫時(shí)失效(例如:修改前日期是2012:03:31,那么此時(shí)月份上得十位1-9所以數(shù)字都暫時(shí)失效,日個(gè)位上的2-9所以數(shù)字也都全部暫時(shí)失效);另一部分是修改后的日期校正,通過調(diào)用該子程序,防止上一部分不能消除的錯(cuò)誤日期設(shè)置(例如:修改前日期是2012:01:31,這時(shí)修改月份個(gè)位為2則日期變?yōu)?012:02:31,顯然這樣的日期是不存在的,這時(shí)校正程序?qū)⑷掌谶M(jìn)位,日期更改為2012:03:01)。這部分校正模塊在后面的1s中斷服務(wù)中也有使用。下圖為該模塊流程圖:?鬧鐘設(shè)置模塊:鬧鐘設(shè)置模塊和時(shí)間設(shè)置一是大同小異,主要區(qū)別在于多了一部分鬧鈴開關(guān)的檢測(cè)。下圖為該模塊流程圖:4模塊源程序 ORG0000HAJMPMAIN ORG000BH AJMPSERVEORG001BHAJMPXIANSHITAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,40H ;段選表0,1,2,3,4,5,6,7,8,9,熄滅,-TAB1:DB0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH,00H,40H ;段選表帶小數(shù)點(diǎn),同上MAIN:/*****************************************************************************///初始化MOVSP,#60H ;棧指針地址賦值MOV3CH,#0CH ;設(shè)置界面修改位的閃爍頻率具體代碼在SERVE1秒中斷服務(wù)中MOV37H,#0FFH ;臨時(shí)地址預(yù)留給39H MOV39H,#0FFH ;段位標(biāo)志8位數(shù)據(jù)對(duì)應(yīng)8個(gè)數(shù)碼管為0的那位數(shù)碼管始終暗 MOV3AH,#B;界面轉(zhuǎn)換標(biāo)志 ******01為時(shí)間界面取反后******10為萬年歷界面******00為設(shè)置鬧鐘界面 CLRA ;時(shí)間萬年歷初始化時(shí)間00:00:00萬年歷2000。01。01 MOV30H,A ;時(shí) MOV31H,A ;分 MOV32H,A ;秒 MOV33H,#01H ;日 MOV34H,#01H ;月 MOV35H,A ;年 只能顯示2000-2099的時(shí)間 MOV3DH,A;數(shù)碼管閃爍開關(guān)初始化為關(guān)閉狀態(tài)取反后打開 MOV40H,A;鬧鐘設(shè)置界面預(yù)留地址地址 MOV41H,A MOV42H,A MOV43H,A MOV44H,A MOV45H,A MOV46H,A MOV47H,A MOV50H,A;鬧鐘1時(shí) MOV51H,A ;鬧鐘1分 MOV52H,A ;鬧鐘1秒 MOV0AH,A ;鬧鐘1開關(guān)00000000為關(guān)閉狀態(tài)取反后打開鬧鐘1 MOV53H,A ;同上 MOV54H,A MOV55H,A MOV0BH,A MOV56H,A MOV57H,A ;同上 MOV58H,A MOV0CH,A MOV59H,A ;同上 MOV5AH,A MOV5BH,A MOV0DH,A MOV5CH,A ;同上 MOV5DH,A MOV5EH,A MOV0EH,A//中斷,定時(shí)器初始化MOVTMOD,#11H MOV38H,#14H ;T0定時(shí)器每50ms溢出一次溢出20次為一秒 SETBPT0 ;優(yōu)先級(jí)設(shè)置1秒中斷為最高級(jí)屏幕刷新優(yōu)先級(jí)低 SETBPT1 SETBET0 SETBET1 SETBEA MOVTH1,#0DFH ;T1定時(shí)器設(shè)置顯示掃描頻率 MOVTL1,#0E0H MOVTH0,#3CH ;T0定時(shí)器設(shè)置為50ms MOVTL0,#0B0H SETBTR1 SETBTR0/***********************************************************************///程序主循環(huán) ZHUXUNHUAN://鬧鐘檢測(cè) MOVA,0AH JZNAO2 ;檢測(cè)鬧鐘開關(guān)若關(guān)檢測(cè)下一個(gè)鬧鐘,否則檢測(cè)時(shí)間是否為鬧鐘設(shè)定時(shí)間 MOVA,30H CJNEA,50H,NAO2 MOVA,31H CJNEA,51H,NAO2 MOVA,32H CJNEA,52H,NAO2 AJMPXIANG ;時(shí)間為鬧鐘設(shè)定時(shí)間吻合進(jìn)入鬧鈴程序下同NAO2: MOVA,0BH JZNAO3 MOVA,30H CJNEA,53H,NAO3 MOVA,31H CJNEA,54H,NAO3 MOVA,32H CJNEA,55H,NAO3 AJMPXIANGNAO3: MOVA,0CH JZNAO4 MOVA,30H CJNEA,56H,NAO4 MOVA,31H CJNEA,57H,NAO4 MOVA,32H CJNEA,58H,NAO4 AJMPXIANGNAO4: MOVA,0DH JZNAO5 MOVA,30H CJNEA,59H,NAO5 MOVA,31H CJNEA,5AH,NAO5 MOVA,32H CJNEA,5BH,NAO5 AJMPXIANGNAO5: MOVA,0EH JZBU MOVA,30H CJNEA,5CH,BU MOVA,31H CJNEA,5DH,BU MOVA,32H CJNEA,5EH,BU AJMPXIANG//檢測(cè)獨(dú)立按鍵BU:JBT0,ZHU1 ;檢測(cè)s19是否按下按下進(jìn)入萬年歷界面,否則檢測(cè)矩陣鍵盤 MOVA,3AH ;界面轉(zhuǎn)換標(biāo)志取反即可使得時(shí)間和萬年歷界面相互轉(zhuǎn)換 CPLA MOV3AH,A//檢測(cè)矩陣鍵盤//檢測(cè)到按鍵1,2,3,4,5時(shí)進(jìn)入對(duì)應(yīng)的鬧鐘設(shè)置界面檢測(cè)到0BH(對(duì)應(yīng)s11)進(jìn)入時(shí)間設(shè)置界面檢測(cè)到0CH(對(duì)應(yīng)s12)進(jìn)入萬年歷設(shè)置界面//若未檢測(cè)到按鍵則跳回主程序繼續(xù)下一個(gè)檢測(cè)周期ZHU1: MOVR7,#0FH ACALLJIANCEANJIAN;矩陣鍵盤檢測(cè)子程序?qū)z測(cè)到的鍵值存入r7 CJNER7,#0FH,ZHU2 AJMPZHUXUNHUANZHU2: CJNER7,#0BH,ZHU3 AJMPSHIJIANSHEZHIZHU3: CJNER7,#0CH,ZHU4 AJMPWANNIANLISHEZHIZHU4: CJNER7,#01H,ZHU5 AJMPNAOZHONGSHEZHIZHU5: CJNER7,#02H,ZHU6 AJMPNAOZHONGSHEZHIZHU6: CJNER7,#03H,ZHU7 AJMPNAOZHONGSHEZHIZHU7: CJNER7,#04H,ZHU8 AJMPNAOZHONGSHEZHIZHU8: CJNER7,#05H,ZHUXUNHUAN0 AJMPNAOZHONGSHEZHIZHUXUNHUAN0: AJMPZHUXUNHUAN/****************************************************************************///1秒中斷服務(wù) 見書141例6-6SERVE: CLREA PUSHB PUSHDPH PUSHDPLPUSHPSW PUSHACC MOVTH0,#3CH MOVTL0,#0B0H MOVA,3DH JZSE MOVA,3CH CJNEA,#6,SE0 MOV39H,37HSE0:DJNZ3CH,SE MOV39H,#0FFH MOV3CH,#0CHSE: DJNZ38H,RETURN MOV38H,#14H MOVA,#01H ADDA,32H MOV32H,A CJNEA,#3CH,RETURN MOV32H,#00H MOVA,#01H ADDA,31H MOV31H,A CJNEA,#3CH,RETURN MOV31H,#00H MOVA,#01H ADDA,30H MOV30H,A CJNEA,#18H,RETURN MOV30H,#00H MOVA,#01H ADDA,33H MOV33H,A ACALLNYRRETURN:POPACC POPPSW POPDPL POPDPH POPB SETBEA RETI/**************************************************************************///年月日校正子程序用于萬年歷進(jìn)位和萬年歷設(shè)置防止出現(xiàn)不存在的時(shí)間NYR: MOVA,33H CJNEA,#32,MONTH ;日為32時(shí),月進(jìn)位日置1 MOV33H,#01H AJMPMONTH0MONTH: CJNEA,#31,MONTH1 ;日為31時(shí)分辨大小月及2月 MOVA,34H CJNEA,#4,MONTH2 MOV33H,#01H AJMPMONTH0MONTH2: CJNEA,#2,MONTH6 MOV33H,#01H AJMPMONTH0MONTH6: CJNEA,#6,MONTH9 MOV33H,#01H AJMPMONTH0MONTH9: CJNEA,#9,MONTH11 MOV33H,#01H AJMPMONTH0MONTH11: CJNEA,#11,RETURN0 MOV33H,#01H AJMPMONTH0MONTH1: CJNEA,#30,MONTH29 ;日為30時(shí)分辨2月 MOVA,34H CJNEA,#02H,RETURN0 MOV33H,#01H AJMPMONTH0MONTH29: CJNEA,#29,RETURN0 ;日為29時(shí)分辨閏平年2月 MOVA,34H CJNEA,#02H,RETURN0 MOVA,35H MOVB,#04H DIVAB MOVA,B JNZMONO AJMPRETURN0MONO: MOV33H,#01HMONTH0: MOVA,#01H ;月進(jìn)位 ADDA,34H MOV34H,A CJNEA,#0DH,RETURN0 MOV34H,#01H MOVA,#01H ADDA,35H MOV35H,A CJNEA,#100,RETURN0 ;年最多只能99 MOV35H,#00RETURN0:RET/******************************************************************///屏幕刷新中斷XIANSHI:PUSHBPUSHDPH PUSHDPL PUSHPSW PUSHACC MOVTH1,#0DFH MOVTL1,#0E0H MOVA,3AH JNB,WANNIANLI;界面顯示判斷//時(shí)間界面 MOVA,32H MOVB,#0AH DIVAB MOV10H,B MOV11H,A MOVA,31H MOVB,#0AH DIVAB MOV12H,B MOV13H,A MOVA,30H MOVB,#0AH DIVAB MOV14H,B MOV15H,A MOV16H,#0AH MOV17H,#0AH AJMPLIANG//萬年歷界面WANNIANLI:JNB,SHEZHIMOVA,33H MOVB,#0AH DIVAB MOV10H,B MOV11H,A MOVA,34H MOVB,#0AH DIVAB MOV12H,B MOV13H,A MOVA,35H MOVB,#0AH DIVAB MOV14H,B MOV15H,A MOV16H,#00H MOV17H,#02H AJMPLIANG//鬧鐘設(shè)置界面SHEZHI:MOV10H,40H MOV11H,41H MOV12H,42H MOV13H,43H MOV14H,44H MOV15H,45H MOV16H,46H MOV17H,47H//刷新屏幕LIANG:MOVR6,#B ;位選 MOVR0,#10H ;利用r0間接訪問功能實(shí)現(xiàn)選中位顯示控制 MOVR4,#8H ;刷新8次MAIN0: ;位選子程序ACALLL CJNER0,#12H,TT1 MOVDPTR,#TAB1 AJMPK TT1: CJNER0,#14H,TT2 MOVDPTR,#TAB1 AJMPKTT2: MOVDPTR,#TABK: MOVA,@R0 MOVCA,@A+DPTR MOVR5,A//數(shù)碼管開關(guān)判斷不刷新39H中對(duì)應(yīng)為0的那段數(shù)碼管 MOVA,39H JNB,AC0 JNB,AC1 JNB,AC2 JNB,AC3 JNB,AC4 JNB,AC5 JNB,AC6 JNB,AC7 AJMPJ0AC0:CJNER4,#08H,J0AJMPJ1AC1:CJNER4,#07H,J0AJMPJ1AC2:CJNER4,#06H,J0AJMPJ1AC3:CJNER4,#05H,J0AJMPJ1AC4:CJNER4,#04H,J0AJMPJ1AC5:CJNER4,#03H,J0AJMPJ1AC6:CJNER4,#02H,J0AJMPJ1AC7:CJNER4,#01H,J0AJMPJ1 J0: ACALLR ;段選子程序J1: MOVA,R6 RLAMOVR6,A INCR0 ACALLDELAY1 ;延時(shí)越長數(shù)碼管越亮但過長導(dǎo)致刷新過慢數(shù)碼管不能同時(shí)全亮 MOVDPTR,#8200H MOVA,#00H MOVX@DPTR,A DJNZR4,MAIN0 POPACC POPPSW POPDPL POPDPH POPB RETIL:MOVDPTR,#8300H MOVA,R6 MOVX@DPTR,A RETR: MOVDPTR,#8200H MOVA,R5 MOVX@DPTR,A RET/********************************************************************///延時(shí)子程序DELAY: ;延時(shí)20毫秒用于矩陣鍵盤的檢測(cè)MOV3EH,#120LOOP1: MOV3FH,#30LOOP2: DJNZ3FH,LOOP2 DJNZ3EH,LOOP1 RETMDELAY: MOV3EH,#5MLOOP1: MOV3FH,#0AAHMLOOP2: DJNZ3FH,MLOOP2 DJNZ3EH,MLOOP1 RETDELAY1: MOV3EH,#15LOOP11: MOV3FH,#40LOOP21: DJNZ3FH,LOOP21 DJNZ3EH,LOOP11 RETDELAY0: MOV3EH,#0FFHLOOP10: MOV3FH,#0FFHLOOP20: DJNZ3FH,LOOP20 DJNZ3EH,LOOP10 RET/***********************************************************///時(shí)間設(shè)置SHIJIANSHEZHI:MOV39H,#B ;時(shí)的十位閃爍 MOV37H,39H MOV3DH,#0FFH ;開閃爍開關(guān)M: JBT1,S1 ;檢測(cè)獨(dú)立按按鍵s20按下則退出時(shí)間設(shè)置繼續(xù)進(jìn)入主循環(huán) MOV39H,#0FFH MOV3DH,#00H AJMPZHUXUNHUANS1: JBINT0,S2 ;閃爍位即修改為右移MOVA,37H CJNEA,#B,SS0 RRA RRA RR A MOV37H,AS10: JNBINT0,S10 ;右移按鍵松開才繼續(xù)下面的程序 防止一次按鍵右移多位下同 AJMPMSS0: RRA MOV37H,AS11: ;左移 JNBINT0,S11 AJMPMS2: JBINT1,M1MOVA,37H CJNEA,#B,SS1 RLA RLA RL A MOV37H,AS12: JNBINT1,S12 AJMPMSS1: RLA MOV37H,AS13: JNBINT1,S13 AJMPM//檢測(cè)矩陣按鍵修改時(shí)間 M1: MOVR7,#0FHACALLJIANCEANJIAN CJNER7,#0FH,SJSZ1 AJMPMSJSZ1: MOVA,37H ;檢測(cè)修改的是哪位 JB,SJSZ2//修改時(shí)十位只能修改為0,1,2但時(shí)個(gè)位部位0,1,2,3時(shí)不能修改為2 CJNER7,#00H,SJS1 AJMPLED6SJS1: CJNER7,#01H,SJS2 AJMPLED6SJS2: CJNER7,#02H,M AJMPLED6LED6:MOVA,30H MOVB,#0AH DIVAB MOV1FH,B MOVB,#0AH MOVA,R7 MULAB ADDA,1FH MOV30H,A MOVA,37H RRA MOV37H,A AJMPMSJSZ2:JB,SJSZ3//修改時(shí)個(gè)位但時(shí)十位為2時(shí)只能修改為0,1,2,3 MOVA,30H MOVB,#0AH DIVAB CJNEA,#02H,LED5 CJNER7,#00H,SJS4 AJMPLED5SJS4: CJNER7,#01H,SJS5 AJMPLED5SJS5: CJNER7,#02H,SJS6 AJMPLED5SJS6: CJNER7,#03H,MM1 AJMPLED5MM1:AJMPMLED5: MOVB,#0AH MULAB ADDA,R7 MOV30H,A MOVA,37H RRA MOV37H,A AJMPMSJSZ3:JB,SJSZ4//修改分十位只能修改為0,1,2,3,4,5 CJNER7,#00H,SJ1 AJMPLED4 SJ1: CJNER7,#01H,SJ2 AJMPLED4 SJ2: CJNER7,#02H,SJ3 AJMPLED4 SJ3: CJNER7,#03H,SJ4 AJMPLED4 SJ4: CJNER7,#04H,SJ5 AJMPLED4 SJ5: CJNER7,#05H,MM AJMPLED4 MM:AJMPM LED4: MOVA,31H MOVB,#0AH DIVAB MOV1FH,B MOVA,R7 MOVB,#0AH MULAB ADDA,1FH MOV31H,A MOVA,37H RRA MOV37H,A AJMPMSJSZ4:JB,SJSZ5//修改分個(gè)位 MOVA,31H MOVB,#0AH DIVAB MOVB,#0AH MULAB ADDA,R7 MOV31H,A MOVA,37H RRA MOV37H,A AJMPMSJSZ5:JB,SJSZ6//修改秒十位只能改為0,1,2,3,4,5 CJNER7,#00H,SJ10 AJMPLED2 SJ10: CJNER7,#01H,SJ20 AJMPLED2 SJ20: CJNER7,#02H,SJ30 AJMPLED2 SJ30: CJNER7,#03H,SJ40 AJMPLED2 SJ40: CJNER7,#04H,SJ50 AJMPLED2 SJ50: CJNER7,#05H,MM0 AJMPLED2 MM0:AJMPM LED2: MOVA,32H MOVB,#0AH DIVAB MOV1FH,B MOVA,R7 MOVB,#0AH MULAB ADDA,1FH MOV32H,A MOVA,37H RRA MOV37H,A AJMPMSJSZ6://修改秒個(gè)位 MOVA,32H MOVB,#0AH DIVAB MOVB,#0AH MULAB ADDA,R7 MOV32H,A MOV37H,#B AJMPM/****************************************************************///萬年歷設(shè)置WANNIANLISHEZHI:MOV3AH,#0FEH ;轉(zhuǎn)換設(shè)置界面 MOV39H,#B ;設(shè)置閃爍位 MOV37H,39H MOV3DH,#0FFH ;開閃爍開關(guān)WM: ACALLNYR ;校正萬年歷JBT1,WS1 ;s20按下退出設(shè)置界面 MOV39H,#0FFH ;關(guān)閃爍 MOV3DH,#00H ;閃爍開關(guān)關(guān) MOV3AH,#B ;轉(zhuǎn)換成時(shí)間設(shè)置界面 AJMPZHUXUNHUANWS1: JBINT0,WS2 ;修改位右移同上MOVA,37H CJNEA,#B,WSS0 RRA RRA RR A MOV37H,AS20: JNBINT0,S20 AJMPWMWSS0: RRA MOV37H,AS21: JNBINT0,S21 AJMPWMWS2: JBINT1,WM1 ;修改位左移MOVA,37H CJNEA,#B,WSS1 RLA RLA RL A MOV37H,AS23: JNBINT1,S23 AJMPWMWSS1: RLA MOV37H,AS24: JNBINT1,S24 AJMPWM//矩陣鍵盤檢測(cè)修改萬年歷 WM1: MOVR7,#0FHACALLJIANCEANJIAN CJNER7,#0FH,WSJSZ1 AJMPWMWSJSZ1: MOVA,37H ;檢測(cè)修改位 JB,WSJSZ2//修改年十位 MOVA,35H MOVB,#0AH DIVAB MOV1FH,B MOVA,R7 MOVB,#0AH MULAB ADDA,1FH MOV35H,A MOVA,37H RRA MOV37H,A AJMPWMWSJSZ2:JB,WSJSZ3//修改年個(gè)位 MOVA,35H MOVB,#0AH DIVAB MOVB,#0AH MULAB ADDA,R7 MOV35H,A MOVA,37H RRA MOV37H,A AJMPWMWSJSZ3:JB,WSJSZ4//修改月十位只能為0,1但月個(gè)位不為0,1,2是不能修改為1 月個(gè)位為0時(shí)不能修改為0 CJNER7,#00H,WSJ1 MOVA,34H MOVB,#0AH DIVAB MOVA,B CJNEA,#00H,WLED4 AJMPWMMM WSJ1: CJNER7,#01H,WMMM MOVA,34H MOVB,#0AH DIVAB MOVA,B CJNEA,#00H,L1 AJMPWLED4L1: CJNEA,#01H,L2 AJMPWLED4L2: CJNEA,#02H,WMMM AJMPWLED4WMMM:LJMPWMWLED4: MOVA,34H MOVB,#0AH DIVAB MOV1FH,B MOVA,R7 MOVB,#0AH MULAB ADDA,1FH MOV34H,A MOVA,37H RRA MOV37H,A AJMPWMWSJSZ4:JB,WSJSZ5//修改月個(gè)位但月十位為1時(shí)只能修改為0,1,2月十位為0時(shí)不能修改為0 MOVA,34H MOVB,#0AH DIVAB CJNEA,#00H,WJ0 CJNER7,#00H,WLED3 AJMPWWMWJ0: CJNER7,#00H,WJ1 AJMPWLED3WJ1:CJNER7,#01H,WJ2 AJMPWLED3WJ2:CJNER7,#02H,WWM AJMPWLED3WLED3: MOVB,#0AH MULAB ADDA,R7 MOV34H,A MOVA,37H RRA MOV37H,AWWM: AJMPWMWSJSZ5:JB,WSJSZ6//修改日十位只能為0,1,2,3 日個(gè)位不為0,1時(shí)不能修改為3 CJNER7,#00H,WSJ10 AJMPWLED2WSJ10: CJNER7,#01H,WSJ20 AJMPWLED2WSJ20: CJNER7,#02H,WSJ30 AJMPWLED2WSJ30: CJNER7,#03H,WWM MOVA,33H MOVB,#0AH DIVAB MOVA,B CJNEA,#00H,L3 AJMPWLED2L3: CJNEA,#01H,WWM AJMPWLED2WLED2: MOVA,33H MOVB,#0AH DIVAB MOV1FH,B MOVA,R7 MOVB,#0AH MULAB ADDA,1FH MOV33H,A MOVA,37H RRA MOV37H,A AJMPWMWSJSZ6://修改日個(gè)位日十位為3時(shí)只能修改為0,1 MOVA,33H MOVB,#0AH DIVAB CJNEA,#00H,LL4 CJNER7,#00H,WLED1 AJMPWMLL4: CJNEA,#03H,WLED1 CJNER7,#00H,WJ4 AJMPWLED1WJ4: CJNER7,#01H,WWM AJMPWLED1WLED1: MOVB,#0AH MULAB ADDA,R7 MOV33H,A MOV37H,#B AJMPWM/***************************************************************///矩陣按鍵檢測(cè)子程序JIANCEANJIAN: MOVDPTR,#8000H MOVA,#0F0H MOVX@DPTR,A MOVDPTR,#8000H MOVXA,@DPTR CPLA JNZXIAODOU RETXIAODOU://ACALLDELAY MOVA,#0F0H MOVDPTR,#8000H MOVXA,@DPTR CPLA JNZPAN RETPAN: MOVDPTR,#8000H MOVA,#B MOVX@DPTR,A MOVDPTR,#8000H MOVXA,@DPTR JNB,KEY10 ;低電位說明按鍵在該位 JNB,KEY20 JNB,KEY30 JNB,KEY40 MOVDPTR,#8000H MOVA,#B MOVX@DPTR,A MOVDPTR,#8000H MOVXA,@DPTR JNB,KEY50 JNB,KEY60 JNB,KEY70 JNB,KEY80 MOVDPTR,#8000H MOVA,#B MOVX@DPTR,A MOVDPTR,#8000H MOVXA,@DPTR JNB,KEY90 JNB,KEY00 JNB,TUI JNB,KEY0C0 RETKEY10:MOVR7,#01H RETKEY20:MOVR7,#02H RETKEY30:MOVR7,#03H RETKEY40:MOVR7,#04H RET KEY50:MOVR7,#05H RETKEY60:MOVR7,#06H RETKEY70:MOVR7,#07H RETKEY80:MOVR7,#08H RETKEY90:MOVR7,#09H RETKEY00:MOVR7,#00H RETTUI:MOVR7,#0BH RETKEY0C0:MOVR7,#0CH RET/****************************************************///鬧鈴響 XIANG:CLR //ACALLMDELAY //SETB JBT1,XIANG ;s20退出鬧鈴跳回主循環(huán) SETB AJMPZHUXUNHUAN/****************************************************///鬧鐘設(shè)置NAOZHONGSHEZHI://檢測(cè)是哪個(gè)鬧鐘并初始化鬧鐘設(shè)置CJNER7,#01H,NZ2 MOVA,50H MOVB,#0AH DIVAB MOV45H,A MOV44H,B MOVA,51H MOVB,#0AH DIVAB MOV43H,A MOV42H,B MOVA,52H MOVB,#0AH DIVAB MOV41H,A MOV40H,B MOV09H,#50H MOV47H,#01H MOV08H,#0AH AJMPNANJIANNZ2: CJNER7,#02H,NZ3 MOVA,53H MOVB,#0AH DIVAB MOV45H,A MOV44H,B MOVA,54H MOVB,#0AH DIVAB MOV43H,A MOV42H,B MOVA,55H MOVB,#0AH DIVAB MOV41H,A MOV40H,B MOV09H,#53H MOV47H,#02H MOV08H,#0BH AJMPNANJIANNZ3: CJNER7,#03H,NZ4 MOVA,56H MOVB,#0AH DIVAB MOV45H,A MOV44H,B MOVA,57H MOVB,#0AH DIVAB MOV43H,A MOV42H,B MOVA,58H MOVB,#0AH DIVAB MOV41H,A MOV40H,B MOV09H,#56H MOV47H,#03H MOV08H,#0CH AJMPNANJIANNZ4: CJNER7,#04H,NZ5 MOVA,59H MOVB,#0AH DIVAB MOV45H,A MOV44H,B MOVA,5AH MOVB,#0AH DIVAB MOV43H,A MOV42H,B MOVA,5BH MOVB,#0AH DIVAB MOV41H,A MOV40H,B MOV09H,#59H MOV47H,#04H MOV08H,#0DH AJMPNANJIANNZ5: MOVA,5CH MOVB,#0AH DIVAB MOV45H,A MOV44H,B MOVA,5DH MOVB,#0AH DIVAB MOV43H,A MOV42H,B MOVA,5EH MOVB,#0AH DIVAB MOV41H,A MOV40H,B MOV09H,#5CH MOV47H,#05H MOV08H,#0EH AJMPNANJIANNANJIAN:MOV3AH,#B ;界面轉(zhuǎn)換成鬧鐘設(shè)置界面 MOV39H,#B MOV37H,39H MOV3DH,#0FFH ;開閃爍NM: MOVR1,08HJBT0,XIA1 ;s19鬧鐘開關(guān) MOVA,@R1 CPLA MOV@R1,A XIA1: MOVA,@R1 JZXIA2 MOV46H,#0BH JMPXIA3 XIA2: MOV46H,#0AHXIA3: JBT1,NS1 ;s20退出鬧鐘設(shè)置跳回主程序//鬧鐘數(shù)據(jù)保存 MOV39H,#0FFH MOV3DH,#00H MOV3AH,#B MOVR1,09H MOVA,45H MOVB,#0AH MULAB AD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)學(xué)創(chuàng)新研究探索
- 大學(xué)生就業(yè)協(xié)議書(2篇)
- 2024年跨境電子商務(wù)平臺(tái)建設(shè)與運(yùn)營合同
- 2025年電子POS機(jī)租賃及系統(tǒng)維護(hù)一體化合同3篇
- 電梯維保承包合同
- 簡單的股份轉(zhuǎn)讓協(xié)議書范本
- 2024年麻石欄桿工程監(jiān)理合同
- 1 我們愛整潔 ( 說課稿)-2023-2024學(xué)年道德與法治一年級(jí)下冊(cè)統(tǒng)編版
- 2024年版物業(yè)管理服務(wù)合同詳細(xì)條款
- 《勞動(dòng)合同法》87條
- 小學(xué)語文教研組期末考試質(zhì)量分析
- 《五年級(jí)奧數(shù)總復(fù)習(xí)》精編課件
- TS2011-16 帶式輸送機(jī)封閉棧橋圖集
- 校園安全存在問題及對(duì)策
- 多聯(lián)機(jī)的施工方案與技術(shù)措施
- 鉆井作業(yè)常見安全隱患
- 新型肥料配方設(shè)計(jì)與加工PPT課件
- 國際色卡四色模擬專色CMYK色值對(duì)照表
- 裝飾施工階段安全檢查表
- 輥壓成型在汽車輕量化中應(yīng)用的關(guān)鍵技術(shù)及發(fā)展-北方工業(yè)大學(xué)
- 地理信息系統(tǒng)原理全冊(cè)配套完整課件
評(píng)論
0/150
提交評(píng)論