单片机实验-外部中断、计数器定时器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1)用单次脉冲申请中断INT0,在中断处理程序中对输出信号进行反转。
ORG 0000H
LJMP START
ORG 0003H
LJMP INT0
START:
CLR P1.0
MOV TCON, #01H
MOV IE, #81H
LJMP $
INT0:
PUSH PSW
CPL P1.0
POP PSW
RETI
END
结果:按一下单脉冲小灯亮,再按一下,小灯灭
接线:INT0接单脉冲
P1.0接个小灯
2)用单次脉冲申请中断INT1,在中断处理程序中实现8个小灯左移点亮1次。ORG 0000H
LJMP START
ORG 0013H
LJMP INT1
START:
MOV TCON,#04H
MOV IE,#84H
CLR PX1
MOV A,#01H
SJMP $
INT1:
MOV R1,#8
LOOP:
MOV P1,A
LCALL DELAY
RL A
DJNZ R1,LOOP
RETI
DELAY:MOV R6,#200
DELAY1:MOV R7,#125
DELAY2:DJNZ R7,DELAY2
DJNZ R6,DELAY1
RET
END
结果:按一下单脉冲,8个小灯左移点亮一次
接线:INT1接单脉冲P1口接8个小灯
3)将8051计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行单脉冲计数,并将其数值按二进制在P1口驱动LED灯上显示出来。
ORG 0000H
START:MOV TMOD,#05H
MOV TH0,#0
MOV TL0,#0
SETB TR0
LOOP:MOV P1,TL0
LJMP LOOP
END
结果:P1口与四个小灯相连,按单脉冲的次数在四个小灯上显示
接线:(P3.4)T0接单脉冲P1.0到P1.4接4个小灯
4)用CPU内部定时器T0中断方式计时,实现每1秒钟输出状态发生一次反转。
ORG 0000H
LJMP START
ORG 000BH
LJMP INT
START: MOV TMOD,#01H
MOV B,#0AH;即10,设循环次数10次。改为2s时,将#0AH改为#14H,其他不用变
MOV TL0,#0B0H
MOV TH0,#3CH
SETB ET0
SETB EA
SETB TR0
SJMP $
INT: MOV TL0,#0B0H
MOV TH0,#3CH
DJNZ B,RTURN
CPL P1.0
MOV B,#0AH
RTURN: RETI
END
结果:全速执行后,与P1.0相接的小灯亮灭交替,每隔一秒变化一次接线:P1.0接一个小灯