用AT89S52打算控制继电器的定时开闭, 用
timer0, 每1s p2.7反相一次, 用medwin编译, 在medwin里跑模拟没有问题, 但是写到片子上以后p2.7一直高电平,不随时间变化, 弱问各位高手可能是哪里的问题?
程序如下:
ORG 0000H
START: MOV R0,#100
MOV TMOD,#11H
MOV TH0,#0D8H
MOV TL0,#0F0H
SETB TR0
CLR P2.7
LOOP: JNB TF0,LOOP
ACALL T0_RELOAD
DJNZ R0,LOOP
MOV R0,#100
CPL P2.7
SJMP LOOP
T0_RELOAD:
CLR TR0
MOV TH0,#0D8H
MOV TL0,#0F0H
CLR TF0
SETB TF0
RET
END
T0_RELOAD:
CLR TR0 ;关了计数功能
MOV TH0,#0D8H
MOV TL0,#0F0H
CLR TF0
SETB TF0 ;这里,我相信你是想开计数的,但打错了。注意点。SETB TR0
RET
一周热门 更多>