基于MCS_51單片機(jī)的可調(diào)六位數(shù)字時(shí)鐘匯編_第1頁(yè)
基于MCS_51單片機(jī)的可調(diào)六位數(shù)字時(shí)鐘匯編_第2頁(yè)
基于MCS_51單片機(jī)的可調(diào)六位數(shù)字時(shí)鐘匯編_第3頁(yè)
基于MCS_51單片機(jī)的可調(diào)六位數(shù)字時(shí)鐘匯編_第4頁(yè)
基于MCS_51單片機(jī)的可調(diào)六位數(shù)字時(shí)鐘匯編_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、; 本次編程時(shí)鐘輸出碼在 p0 口,控制顯示位為 p2.7 p2.6 p2.5 ,共 八個(gè)數(shù)碼管 org 0000h ajmp main org 0003h ajmp sj0 ; 外部中斷 0 跳轉(zhuǎn)到 sj0 org 000bh ajmp it0p; 計(jì)時(shí)中斷跳轉(zhuǎn)“ it0p ” org 00013h ajmp sj1 ; 外部中斷 0 跳轉(zhuǎn)到 sj1 org 0100h main: mov tmod,#01h; 設(shè)置中斷 0 的工作方式為 1 clr rs1; 設(shè)置工作區(qū) 0 clr rs0; 設(shè)置工作區(qū) 0 mov r0,#30h; 給 r0 設(shè)置初值 30,使設(shè)置處于準(zhǔn)備狀態(tài) mov s

2、p,#20h; 堆棧開(kāi)始于 20-25 mov 30h,#14h; 給計(jì)時(shí)賦初次數(shù) mov 41h,#00h; 給顯示位賦值,用于顯示設(shè)置位用于對(duì)應(yīng) mov 42h,#20h; mov 43h,#40h; 可刪除 mov 44h,#60h; mov 45h,#80h; mov 46h,#0a0h; 可刪除 mov 47h,#0c0h; mov 48h,#0e0h; mov 33h,#0ah; 橫杠位對(duì)應(yīng)輸出值位置 mov 36h,#0ah; 橫杠位對(duì)應(yīng)輸出值位置 mov 31h,#00h mov 32h,#00h mov 34h,#00h mov 35h,#00h mov 37h,#00h m

3、ov 38h,#00h setb et0 ; 開(kāi)計(jì)時(shí)中斷 0 setb ex0; 開(kāi)外部中斷 0 setb px1 ; 設(shè)置外部中斷 1 優(yōu)先級(jí)高,使其能中斷外部中斷 0 setb ea ; 最后將總中斷開(kāi)啟 mov th0,#3ch ; 給計(jì)時(shí)器賦初值 mov tl0,#0afh ; setb tr0 ; 開(kāi)始讓計(jì)時(shí)器工作,計(jì)時(shí)有效 xiansj: ; 計(jì)時(shí)器工作后,主程序進(jìn)入顯示時(shí)鐘狀態(tài) mov dptr,#shuxiang ; 將數(shù)碼顯示隊(duì)列起始地址給 dptr loop0: ; mov r1,#31h ;31 對(duì)應(yīng)秒第一位, mov r2,#00h ; p2 由 00 對(duì)應(yīng)第一位 lo

4、op1: ; jb ex1,tiao111 ; 進(jìn)入設(shè)置后,主程序必須只顯示設(shè)置位 mov a,r1; 中斷完畢后,跳轉(zhuǎn)回來(lái)時(shí), r1 改變也無(wú)所謂 movc a,a+dptr ; 只要去 r1 處于 31-38 即可 mov p0,#0ffh mov p2,r2 ; mov p0,a inc r1;r1 自加 1,準(zhǔn)備對(duì)下一個(gè)數(shù)值進(jìn)行顯示 mov a,#20h ;p2 的顯示位對(duì)應(yīng)以 20 為間隔 add a,r2 mov r2,a ; 對(duì)寄存器進(jìn)行加法的步驟 mov a,r1 cjne r1,#39h,loop1; 判斷 r1 達(dá)到的值,對(duì)下一位數(shù)進(jìn)行顯示 ajmp loop0; 當(dāng) 8

5、位數(shù)值顯示完畢,跳轉(zhuǎn)回顯示狀態(tài)起始處 tiao111: ; acall fangfuxyw ; 調(diào)用反復(fù)顯示設(shè)置位程序 ajmp loop1 ; 跳回 loop1 使設(shè)置完畢主程序后進(jìn)入顯示時(shí)鐘狀態(tài) shuxiang:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0bfh fangfuxyw: ; 反復(fù)顯示設(shè)置位程序 mov a,r0 subb a,#31h mov b,#20h mul ab mov r5,a ;r5 是顯示位置,與 r0 有對(duì)應(yīng)關(guān)系 mov a,r0 movc a,a+dptr mov p0,#0ffh mov p2,r5

6、mov p0,a ret sj0:clr ex0; 中斷 0 程序開(kāi)始 push acc clr tr0 jingts1:mov a,#01h add a,r0 mov r0,a cjne r0,#33h,tiao3 ajmp jingts1 tiao3:cjne r0,#36h,tiao6; 可以不討論 33.36 兩種情況,因?yàn)橹袛?1 會(huì)處理 ajmp jingts1 tiao6:cjne r0,#39h,tiao000 mov r5,38h ; 判斷設(shè)置是否超過(guò) 24 cjne r5,#02h,panduan3 mov a,37h subb a,#03h jc panduan3; cl

7、r ex1 dec r0 mov 4bh,#0ffh; to01:mov 4ch,#0ffh; to02:acall fangfuxyw; dec r0; acall fangfuxyw; inc r0; djnz 4ch,to02; djnz 4bh,to01; mov r0,#37h; setb ex1 ajmp tiao000 ; panduan3: mov p0,#0bfh mov p2,#40h acall yanshi mov p2,#0a0h acall yanshi clr ex1 pop acc mov r0,#30h setb ex0 setb tr0 reti; 設(shè)置時(shí)間

8、結(jié)束 跳回主程序 tiao000: setb ex1 ; acall yanshixian ; pop acc; setb ex0 ; reti ; sj1: ; 外部中斷 1,對(duì)設(shè)置位進(jìn)行加 1 clr ea ; 在加 1 時(shí),關(guān)閉所有中斷,防止抖動(dòng)。 ; 改為關(guān)閉中斷 1( clr ex1 )亦可,對(duì)應(yīng)跳出前開(kāi)啟也應(yīng)修改 push acc ; 累加器 a 發(fā)生改變,應(yīng)保護(hù) mov a,#01h ; 進(jìn)行加 1,必須使用累加器,由于分支較多,在開(kāi)始 處設(shè)置 cjne r0,#31h,ssj2 ; 現(xiàn)在判斷 r0 為何值,因?yàn)椴煌闆r最大值有 區(qū)別 ajmp ssj000 ssj2:cjne

9、r0,#32h,ssj3 ajmp ssj666 ssj3:cjne r0,#33h,ssj4 ajmp retunt3 ssj4:cjne r0,#34h,ssj5 ajmp ssj000 ssj5:cjne r0,#35h,ssj6 ajmp ssj666 ssj6:cjne r0,#36h,ssj7 ajmp retunt3 ssj7:cjne r0,#37h,ssj8 ajmp ssj000 ssj8:cjne r0,#38h,ssj9 ajmp ssj222 ssj9:cjne r0,#39h,yichan00 mov 31h,#00h ; 當(dāng) r0 等于 39,若進(jìn)入中斷 1 mo

10、v 32h,#00h ; 則視為對(duì)時(shí)鐘清零 mov 34h,#00h ; mov 35h,#00h mov 37h,#00h mov 38h,#00h ajmp wangshi ; 準(zhǔn)備跳出,但不延時(shí) yichan00: mov r0,#31h; 發(fā)生異常,給 r0 賦值 ajmp wangshi ; 跳出程序 ssj000: ; 限制最大值為 10 時(shí) cjne r0,#09h,ssj0001; 到達(dá)是否限制數(shù) mov r0,#00h ajmp retunt3 ssj0001: add a,r0 ; 沒(méi)到達(dá)限制數(shù)時(shí),加 1 mov r0,a ajmp retunt3 ; 準(zhǔn)備跳出 ssj66

11、6:限制最大值為 5 時(shí) cjne r0,#05h,ssj6661 ; mov r0,#00h ajmp retunt3 ssj6661: add a,r0 ; 沒(méi)到達(dá)限制數(shù)時(shí),加 1 mov r0,a ajmp retunt3 ssj222: ;限制最大值為 2 時(shí) cjne r0,#02h,ssj2221 mov r0,#00h ajmp retunt3 ssj2221: add a,r0 mov r0,a ajmp retunt3 ; 準(zhǔn)備跳出 retunt3: ; 外部中斷 1( sj1 )所有分支結(jié)束跳轉(zhuǎn)點(diǎn) acall yanshixian; 延時(shí)并顯示設(shè)置位 wangshi: ;

12、此跳轉(zhuǎn)點(diǎn)專(zhuān)為清零后直接跳出 pop acc ; 每次跳出前應(yīng)該對(duì)應(yīng)出棧 setb ea ; 對(duì)應(yīng)每次中斷關(guān)閉總中斷,開(kāi)啟 reti ; 完成設(shè)置位的增 1,跳出外部中斷 1 yanshixian:mov 4bh,#40h ; 延時(shí)同時(shí)顯示設(shè)置位 too01:mov 4ch,#0ffh too02:acall fangfuxyw djnz 4ch,too02 djnz 4bh,too01 ret yanshi:mov 4bh,#04h; 延時(shí)程序,約為 0.5 秒 lpp0:mov 4ch,#0ffh lpp1:mov 4dh,#0ffh ; djnz 4dh,$ djnz 4ch,lpp1 d

13、jnz 4bh,lpp0 ret; 從子程序中返回 it0p: ; 當(dāng)計(jì)時(shí) 0.05s 后跳轉(zhuǎn)到這里 push psw ; 對(duì)狀態(tài)及累加器保護(hù) push acc ; mov th0,#3ch ; 給計(jì)時(shí)重新賦初值 mov tl0,#0afh 判斷是否到達(dá) 10 秒 到達(dá) 10 秒,重新賦值計(jì)算 給秒二位加 1 秒是否到達(dá) 到達(dá) 60 后,重新賦值計(jì)算 同時(shí)給分位加 1 ; 判斷分一位是否到達(dá) 10 步驟逐步遞推 djnz 30h,retunt ; 判斷是否到達(dá) 1 秒 mov 30h,#14h ;1 秒到達(dá),重新賦初值計(jì)時(shí) 1s mov a,#01h ; 給秒一位加 1 add a,31h 5 mov 31h,a ; 加 1 步驟 cjne a,#0ah,retunt; mov 31h,#00h mov a,#01h add a,32h mov 32h,a cjne a,#6h,retunt ;60 mov 32h,#00h mov a,#01h add a,34h mov 34h,a cjne a,#0ah,retunt mov 34h,#00h mov a ,#01h add a,35h mov 35h,a cjne a,#6h,retunt ; mov 35h,#00h mov a,#01h add a,37h mov 37h,a cjne a,#0ah,r

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論