单片机实验-外部中断、计数器定时器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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接一个小灯

相关文档
最新文档