?? 計數(shù)自動化程序.asm
字號:
;說明:最多計數(shù)9999次
;4位數(shù)顯示,開關(guān)時間最多9999秒
;可到指定的次數(shù)停下來,可調(diào)整不同的開關(guān)機時間。
ORG OOH
AJMP START
org 0bh
ajmp sec;到秒計數(shù)程序
org 1bh
ajmp disp;到顯示程序
ORG 30H
START:
mov r5,#20;R5為次數(shù)寄存器,如果為20則要中斷20次才夠1秒
mov r0,#30h;R0作顯示緩沖器的間接寄存器
mov sp,60h;堆指針
mov 54h,#0
mov 55h,#0;54H和55H為實際次數(shù)寄存器
MOV 20H,#0
MOV 21H,#0
MOV 22H,#5
MOV 23H,#0;開時間預(yù)先設(shè)定為5秒
MOV 40H,#0
MOV 41H,#0
MOV 42H,#5
MOV 43H,#0;關(guān)時間預(yù)先設(shè)定為5秒
MOV 30H,#0
MOV 31H,#0
MOV 32H,#0
MOV 33H,#0;顯示寄存器,顯示器初值為0
MOV 24H,#50
MOV 25H,#0;計數(shù)器初值為5000
MOV 26H,#5
MOV 27H,#0;秒數(shù)寄存器和初值為0
setb f0;開關(guān)標(biāo)志,0為關(guān),1為開
mov 34h,#2;暫停標(biāo)志,0為暫停,非0為開
mov ie,#10001010b;設(shè)定定時器0和1中斷允許
mov th1,#high(65536-50000)
mov tl1,#low(65536-50000);秒中斷定時器
mov th0,#high(65536-1000)
mov tl0,#low(65536-1000);顯示定時器用
setb tr0;定時器0開始工作
start1:
mov p1,#11111110b;將P1.0的值寫為0
jb p1.4,start16;如果P1。6為1則轉(zhuǎn)移到結(jié)束程序
call start106;如果為0則調(diào)用開時間調(diào)整程序。
start16:
mov p1,#11111110b;
jb p1.5,start15;
call start105;關(guān)時間調(diào)整
start15:
mov p1,#11111110b;
jb p1.4,atart14;
call start104;次數(shù)調(diào)整
start14:
mov p1,#11101111b;
jb p1.1,start11
call start101;到清0程序
start11:
mov p1,#11101111b;
jb p1.2,start12;
call start102; 暫停程序
start12:
mov p1,#11101111b
jb p1.3,start13;
call start103;開始程序
start13:
ret;主程序到此結(jié)束
;開時間調(diào)整程序
start106:
call delay1
jb p1.6,ret106
mov 30h,20h
mov 31h,21h
mov 32h,22h
mov 33h,23h;將計數(shù)器內(nèi)的值存入顯示緩沖器
call key;調(diào)用鍵盤掃描程序取得鍵盤值
mov 20h,50h
mov 21h,51h
mov 22h,52h
mov 23h,53h;將鍵盤值存入開時間寄存器
mov 30h,50h
mov 31h,51h
mov 32h,52h
mov 33h,53h;將鍵盤值存入顯示緩沖器
jnb p1.6,$
ret106:
ret
;關(guān)時間調(diào)整程序
start105:
call delay1
jb p1.5,ret105
mov 30h,40h
mov 31h,41h
mov 32h,42h
mov 33h,43h;將計數(shù)器內(nèi)的值存入顯示緩沖器
call key;調(diào)用鍵盤掃描程序取得鍵盤值
mov 40h,50h
mov 41h,51h
mov 42h,52h
mov 43h,53h;將鍵盤值存入關(guān)時間寄存器
mov 30h,50h
mov 31h,51h
mov 32h,52h
mov 33h,53h;將鍵盤值存入顯示緩沖器
jnb p1.5,$
ret105:
ret
;計數(shù)值調(diào)整程序
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -