利用8031的定时/计数器T1对外部事件进行计数
扫描二维码
随时随地手机看文章
某生产线包装工序上,生产线的输送带每送进一个产品到包装机,“SP”端就输出一个脉冲到8031的T1端。要求每送进来10个产品,CPU就从P1.1输出一个信号去控制包装机工作。
;---------------------------------------------
求助得到的最佳答案:计数工作的题目,比较少见,程序如下。
ORG 0000H
SJMP START
ORG 001BH
SJMP T1_INT
START:
MOV TMOD, #60H ; T1计数,方式2,自动重新装入初始值
MOV TH1, #246 ; (256 - 10)
MOV TL1, #246 ; (256 - 10)
SETB TR1
SETB ET1
SETB EA
SJMP $ ;设置完成,等待中断
;------------------下面是T1中断程序,每当收到10脉冲,就执行一遍
T1_INT:
CLR P1.1 ;输出脉冲
NOP
NOP
SETB P1.1
RETI
END
;---------------------------------------------
;=============================================================
急求定时器中断LED灯灭亮实验
用汇编语言编辑单片机是8个LED灯实现第一秒只有L1不亮,其余七个全亮,第二个L2不亮,其余七个全亮
悬赏分:50 - 解决时间:2009-11-24 16:07
;---------------------------------------------
最佳答案:这是常见的定时方式,如下即可。
ORG 0000H
SJMP START
ORG 000BH
SJMP T0_INT
START:
MOV TMOD, #01H ;定时方式1
MOV TH0, #3CH ; (65536 - 50000) / 256;
MOV TL0, #0B0H ; (65536 - 50000) % 256;
SETB TR0
SETB ET0
SETB EA
MOV A, #01H
MOV R2, #20
SJMP $
;------------------下面是T0中断程序,50ms(@12MHz)执行一遍
T0_INT:
MOV TH0, #3CH ; (65536 - 50000) / 256;
MOV TL0, #0B0H ; (65536 - 50000) % 256;
DJNZ R2, T0_END
MOV R2, #20
MOV P1, A
RL A
T0_END:
RETI
END
;---------------------------------------------
;=============================================================
利用MCS-51单片机对一个由8盏灯组成的环形灯阵进行控制
要求:灯阵中每个时刻只能有一盏灯亮,且每隔十秒后灯亮的位置向左移动一位
;---------------------------------------------
最佳答案:下面两个题目采用软件延时,精度稍差,基本也可达到要求。
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV A, #7FH ;01111111--零为亮
XUN:
MOV P0, A
RL A
ACALL DELAY10s
AJMP XUN
DELAY10s: ;延时十秒子程序
MOV R5, #76
D1: MOV R6, #0
D2: MOV R7, #0
DJNZ R7, $
DJNZ R6, D2
DJNZ R5, D1
RET
END
;完