📄 counter1.asm
字号:
;这是一个利用T0进行工件计数的例子
;系统的晶振频率12MHz,工件计数脉冲加到T0的输入端,T1做定时器,
;每隔一秒钟检测了一次T0中的计数值,当检测到100个工件数时,
;使P1.0端口输出信号变反。
ORG 0
MOV TMOD,#16H ;T1方式1,定时器。T0方式2,计数
MOV TL1,#0B0H
MOV TH1,#3CH ;T1定时50ms
MOV TL0,#156 ;T0计数100次的初值
MOV TH0,#156
MOV R7,#20 ;软件计数20次,为一秒钟
CLR EA ;关中断
SETB TR1 ;启动T1定时
SETB TR0 ;启动T0计数
LOOP: JBC TF1,LQ
SJMP LOOP
LQ: MOV TH1,#3CH
MOV TL1,#0B0H
DJNZ R7,LOOP ;一秒未到,则转
MOV R7,#20
JNB TF0,LOOP ;计数不足100,则转
CLR TF0
CPL P1.0
SJMP LOOP
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -