原创 51单片机IO端口操作的一个有趣现象

2008-11-1 14:22 6095 9 9 分类: MCU/ 嵌入式

我想实现P1.1端口跟随P1.4端口同步输出,都是驱动LED,P1.4端口使用定时器定时翻转,主循环程序随时判断P1.4状


态,同步驱动P1.1。
开始我是这样写的:
OUT BIT P1.4
LED BIT P1.1


ORG 0000H
AJMP main


ORG 000BH
AJMP TIME0


ORG 0030H
main:
MOV TMOD,#01H
MOV TH0,#00h
MOV TL0,#00h
MOV R0,#00H


SETB EA
SETB ET0
SETB TR0


LOOP:
MOV C,OUT
MOV LED,C
AJMP LOOP


TIME0:
MOV TH0,#00h
MOV TL0,#00h
INC R0
CJNE R0,#10H,TIME9
CPL OUT
MOV R0,#00H
TIME9:
RETI


END


看来没问题,在KEIL仿真运行也没问题,可是下载到89S52中,只见OUT闪烁,LED根本不动,奇怪??
后来经过查阅资料和网络搜索,是由于准双向口的结构问题造成的!
然后增加了一个FLAG标志位,才解决。


OUT BIT P1.4
LED BIT P1.1
FLAG BIT 00H


ORG 0000H
AJMP main


ORG 000BH
AJMP TIME0


ORG 0030H
main:
MOV TMOD,#01H
MOV TH0,#00h
MOV TL0,#00h
MOV R0,#00H


SETB EA
SETB ET0
SETB TR0


LOOP:
MOV C,FLAG
MOV LED,C
AJMP LOOP


TIME0:
MOV TH0,#00h
MOV TL0,#00h
INC R0
CJNE R0,#10H,TIME9
CPL FLAG
MOV C,FLAG
MOV OUT,C
MOV R0,#00H
TIME9:
RETI


END


所以,以后有类似的应用时大家编程时要注意喽!

文章评论0条评论)

登录后参与讨论
我要评论
0
9
关闭 站长推荐上一条 /2 下一条