⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 计数自动化程序.asm

📁 步進馬達控制器的編程方法
💻 ASM
字号:
;说明:最多计数9999次
;4位数显示,开关时间最多9999秒 
;可到指定的次数停下来,可调整不同的开关机时间。

ORG OOH 
AJMP START
org 0bh
ajmp sec;到秒计数程序
org 1bh
ajmp disp;到显示程序
ORG 30H
START:
mov r5,#20;R5为次数寄存器,如果为20则要中断20次才够1秒
mov r0,#30h;R0作显示缓冲器的间接寄存器
mov sp,60h;堆指针
mov 54h,#0
mov 55h,#0;54H和55H为实际次数寄存器
MOV 20H,#0
MOV 21H,#0
MOV 22H,#5
MOV 23H,#0;开时间预先设定为5秒
MOV 40H,#0
MOV 41H,#0
MOV 42H,#5
MOV 43H,#0;关时间预先设定为5秒
MOV 30H,#0
MOV 31H,#0
MOV 32H,#0
MOV 33H,#0;显示寄存器,显示器初值为0
MOV 24H,#50
MOV 25H,#0;计数器初值为5000
MOV 26H,#5
MOV 27H,#0;秒数寄存器和初值为0
setb f0;开关标志,0为关,1为开
mov 34h,#2;暂停标志,0为暂停,非0为开
mov ie,#10001010b;设定定时器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则转移到结束程序
call start106;如果为0则调用开时间调整程序。
start16:
mov p1,#11111110b;
jb p1.5,start15;
call start105;关时间调整
start15:
mov p1,#11111110b;
jb p1.4,atart14;
call start104;次数调整
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;主程序到此结束

;开时间调整程序
start106:
call delay1
jb p1.6,ret106
mov 30h,20h
mov 31h,21h
mov 32h,22h
mov 33h,23h;将计数器内的值存入显示缓冲器
call key;调用键盘扫描程序取得键盘值
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 
;关时间调整程序
start105:
call delay1
jb p1.5,ret105
mov 30h,40h
mov 31h,41h
mov 32h,42h
mov 33h,43h;将计数器内的值存入显示缓冲器
call key;调用键盘扫描程序取得键盘值
mov 40h,50h
mov 41h,51h
mov 42h,52h
mov 43h,53h;将键盘值存入关时间寄存器
mov 30h,50h
mov 31h,51h
mov 32h,52h
mov 33h,53h;将键盘值存入显示缓冲器
jnb p1.5,$
ret105:
ret 
;计数值调整程序

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -