有两个问题,第一,在没进入中断前P2的灯为什么不是一闪一灭的?而是一直亮的。
第二,我设置的应该是P3.2为低电平时中断,为什么在实际硬件中是P3.3接低电平才有效呢?我的程序如下:
ORG 0000H
LJMP MAIN
ORG 0013H
LJMP INT1INT
ORG 0050H
MAIN: MOV SP,#8FH
SETB EX1
CLR IT0
SETB EA
STOP:MOV P2,#00H
LCALL DELAY
MOV P2,#0FFH
SJMP STOP
SJMP $
INT1INT:MOV A,#0FEH
SETB C
MOV P2,A
LCALL DELAY
RLC A
MOV P2,A
LCALL DELAY
RLC A
MOV P2,A
LCALL DELAY
RLC A
MOV P2,A
LCALL DELAY
RLC A
MOV P2,A
LCALL DELAY
RLC A
MOV P2,A
LCALL DELAY
RLC A
MOV P2,A
LCALL DELAY
RETI
DELAY:MOV R5,#0FAH
LOOP2:MOV R4,#0FAH
LOOP1:NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R4,LOOP1
DJNZ R5,LOOP2
RET
END
51单片机问题,CLR IT0为什么是P3.3脚接低电平的时候有效?
答案:2 悬赏:20 手机版
解决时间 2021-03-11 09:53
- 提问者网友:低吟詩仙的傷
- 2021-03-11 04:12
最佳答案
- 五星知识达人网友:怀裏藏嬌
- 2021-03-11 05:37
第一,你的主循环中延时有问题:
STOP:MOV P2,#00H
LCALL DELAY
MOV P2,#0FFH
SJMP STOP
上述程序执行完MOV P2,#0FFH后马上执行MOV P2,#00H,P2口出现的是一个极短暂的高电平,视觉上是觉察不到的,正确做法应该是:
STOP:MOV P2,#00H
LCALL DELAY
MOV P2,#0FFH
LCALL DELAY
SJMP STOP
第二、你设置的终端向量13H,,是INT1,就是外部中断P3.3引脚呀!
STOP:MOV P2,#00H
LCALL DELAY
MOV P2,#0FFH
SJMP STOP
上述程序执行完MOV P2,#0FFH后马上执行MOV P2,#00H,P2口出现的是一个极短暂的高电平,视觉上是觉察不到的,正确做法应该是:
STOP:MOV P2,#00H
LCALL DELAY
MOV P2,#0FFH
LCALL DELAY
SJMP STOP
第二、你设置的终端向量13H,,是INT1,就是外部中断P3.3引脚呀!
全部回答
- 1楼网友:归鹤鸣
- 2021-03-11 05:48
你好!
1、你的延时时间太短,LED闪烁的速度太快,所以你看到的灯是一直亮着的。
2、你的ORG 0013H 是指向INT1的中断向量,INT1就是P3^3。P3^2 是INT0 中断。
我的回答你还满意吗~~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯