單片機(jī)課程設(shè)計(jì)-電腦時(shí)鐘_第1頁
單片機(jī)課程設(shè)計(jì)-電腦時(shí)鐘_第2頁
單片機(jī)課程設(shè)計(jì)-電腦時(shí)鐘_第3頁
單片機(jī)課程設(shè)計(jì)-電腦時(shí)鐘_第4頁
單片機(jī)課程設(shè)計(jì)-電腦時(shí)鐘_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

ORG0000HLJMPMAINORG000BHLJMPTIM01 ;0.1sT0中斷ORG0300HMAIN:ACALL INIT ;調(diào)用初始化函數(shù)LOOP:LCALLKEYIN ;鍵盤輸入AJMPLOOPINIT: MOV7FH,#7EH ;7FH存當(dāng)前輸入位置79-7EHMOV79H,#0 ;初始化顯示MOV7AH,#0MOV7BH,#0MOV7CH,#0MOV7DH,#0MOV7EH,#0MOV70H,#0 ;初始化 初始時(shí)間0h0m0sMOV71H,#0MOV72H,#0MOV73H,#0SETB20H.0 ;20H.0存儲當(dāng)前輸入狀態(tài),鬧鐘輸入,或初始值輸入KEYIN:LCALLKEY ;鍵盤輸入函數(shù),循環(huán)對79-7EH輸入,或是命令輸入CLRCPUSHACC ;入棧,保存A值SUBBA,#10 ;和10比較JNCCONTRL ;大于等于10,命令鍵 POPACC ;A出棧 數(shù)字鍵,放到顯示緩存MOVR0,7FH ;A放到7FH內(nèi)容指向地址處MOV@R0,AMOVA,7FH ;是否出了79H-7EH范圍CJNEA,#79H,RU ;出范圍,循環(huán)到7EHMOV7FH,#7FH RETRU:DEC7FH ;范圍內(nèi)自減1RETCONTRL:POPACC ;控制鍵,執(zhí)行相應(yīng)控制操作CJNEA,#0DH,N0CLCALLKJUD ;D控制計(jì)時(shí)開始,KJUD判斷是否在有效時(shí)間范圍內(nèi)JNCN0 ;控制操作完成退出LCALLTIMINIT ;定時(shí)器及相關(guān)內(nèi)容初始化N0C:CJNEA,#0CH,N0B ;C暫停開始鍵CPLEA ;中斷開關(guān)控制計(jì)時(shí)起止N0B:CJNEA,#0BH,N0 ;B選擇輸入是鬧鐘還是起始值CPL20H.0 ;20H.0為其標(biāo)志0起始1鬧鐘MOVC,20H.0 ;指示燈表示輸入鬧鐘還是起始值MOVP1.0,CN0:RETTIMINIT:MOVTH0,#03CH ;定時(shí)器及相關(guān)初始化MOVTL0,#0B0H ;初值SETBTR0 ;運(yùn)行SETBET0 ;允許定時(shí)器中斷SETBEA ;總中斷允許MOV70H,#0 ;載入計(jì)時(shí)初值MOV71H,74HMOV72H,75HMOV73H,76H RETDISP:MOVR0,#79H ;顯示函數(shù)從右至左顯示MOVR3,#01H MOVA,R3DIO:MOVDPTR,#0FFDDHMOVX@DPTR,AMOVA,@R0MOVDPTR,#TAB1MOVCA,@A+DPTR;得到鍵值MOVDPTR,#0FFDCHDIR1:MOVX@DPTR,ALCALLDELAY1INCR0MOVA,R3JBACC.5,LD1RLAMOVR3,AAJMPDIOLD1:RETTAB1:DB0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H ;顯示表 A滅B顯示P(錯(cuò)誤信號)DB080H,090H,0FFH,08CH,0C6H,0A1H,086H,08EHTAB2:DB07H,04H,08H,05H,09H,06H,0AH,0BH,01H,00H ;鍵值校正表DB02H,0FH,03H,0EH,0CH,0DHDELAY1:MOVR7,#02H ;延時(shí)函數(shù)12M時(shí)精確延時(shí)1msDE1:MOVR6,#0FFHDE2:DJNZR6,DE2DJNZR7,DE1RETJUDGE:MOVDPTR,#0FFDDH ;判斷是否有效MOVA,#00HMOVX@DPTR,AINCDPTRMOVXA,@DPTRCPLAANLA,#0FHRETKEY:LCALLJUDGEJNZLK1LCALLDISP;AJMPKEYLK1:LCALLDISP;LCALLJUDGEJNZLK2LCALLDISPAJMPKEYLK2:MOVR2,#0FEHMOVR4,#00HLK3:MOVDPTR,#0FFDDHMOVA,R2MOVX@DPTR,AINCDPTRMOVXA,@DPTRLINE0:JBACC.0,LINE1MOVA,#00HAJMPLKPLINE1:JBACC.1,LINE2MOVA,#08HAJMPLKPLINE2:JBACC.2,LINE3MOVA,#10HAJMPLKPLINE3:JBACC.3,NEXTMOVA,#18HLKP:ADDA,R4PUSHACCNT:LCALLDISPLCALLJUDGEJNZNTPOPACCCJNEA,#10H,NN:JNCEXITMOVDPTR,#TAB2MOVCA,@A+DPTREXIT:RETNEXT:INCR4MOVA,R2JNBACC.7,KND ;4*8RLAMOVR2,AAJMPLK3KND:AJMPKEYTIM01:PUSHPSW ;0.1s定時(shí)中斷PUSHACC ;保護(hù)現(xiàn)場MOVTH0,#03CH ;載入初值MOVTL0,#0B0HMOVA,70H ;0.1s計(jì)時(shí)值存到70HCJNEA,#59,EX01MOV70H,#0MOVA,71H ;秒值放入71HCJNEA,#59,EX1SMOV71H,#0 MOVA,72H ;分鐘放入72HCJNEA,#59,EX1MMOV72H,#0MOVA,73HCJNEA,#23,EX1HMOV73H,#0 ;小時(shí)73HEX01:INC70HAJMPIEXITEX1S:INC71HACALLALJUD ;判斷報(bào)警信號函數(shù)JNZALARMSETBP1.1 AJMPIEXIT ;報(bào)警ALARM:CLRP1.1AJMPIEXITEX1M:INC72HAJMPIEXITEX1H:INC73HAJMPIEXITIEXIT:LCALLDISTIMPOPACC ;恢復(fù)現(xiàn)場POPPSWRETIALJUD:CLRC ;報(bào)警判斷MOVA,73HSUBBA,66H ;鬧鐘值和現(xiàn)在時(shí)間值比較JCALEXCLRCMOVA,72HSUBBA,65HJCALEXSETBCMOVA,71HSUBBA,64HJCALEXCLRARETALEX:MOVA,#1RETDISTIM:MOVB,#10 ;把當(dāng)前時(shí)間值放入79-7EH顯示MOVA,71HDIVABMOV79H,BMOV7AH,AMOVA,72HMOVB,#10DIVABMOV7BH,BMOV7CH,AMOVA,73HMOVB,#10DIVABMOV7DH,BMOV7EH,ARETKJUD:CLRC ;鍵值判斷,判斷輸入是否有效MOVA,7EHMOVB,#10MULABADDA,7DHJB20H.0,ALHMOV76H,AAJMPGOHALH:MOV66H,A ;初始值放入74-76H鬧鐘放入64-66HGOH:SUBBA,#24JNCEXMOVA,7CHMOVB,#10MULABADDA,7BHJB20H.0,ALMMOV75H,AAJMPGOMALM:MOV65H,AGOM:SUBBA,#60JNCEXMOVA,7AHMOVB,#10MULABADDA,79HJB20H.

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論