新手求教-51单片机定时控制问题

2019-07-16 06:56发布

用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

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
lirongqing
1楼-- · 2019-07-16 07:23
跑模拟没有问题?????定时器关了之后你都没开。
T0_RELOAD:
       CLR TR0 ;关了计数功能
       MOV TH0,#0D8H
       MOV TL0,#0F0H
       CLR TF0
       SETB TF0 ;这里,我相信你是想开计数的,但打错了。注意点。SETB TR0
       RET

一周热门 更多>