最近学习定时器,就想自己编一个利用定时器定时一秒输出方波,来点亮,熄灭小灯,但是结果不对。这个程序在哪里有问题呢?对于关于定时器的程序改按怎样的顺序来看,工作的顺序是怎样的?希望大神百忙之中,指点一二、谢谢!!!
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP LOOP1
ORG 1000H
MAIN:
MOV P0,#00H
ACALL DELAY
MOV A,P0
CPL A
MOV P0,A
LJMP MAIN
DELAY:
MOV B,#0AH
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB EA
SETB ET0
SETB TR0
RET
LOOP1:
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ B,LOOP2
MOV B,#0AH
LOOP2:
RE
ti
END
按我原本的想法
MAIN:
MOV P0,#00H
ACALL DELAY
MOV A,P0
CPL A
MOV P0,A
LJMP MAIN
如果将定时器看做延时函数的话,程序应该正确。您的意思是,定时器不能将它看做延迟函数?为什么呢?谢谢!
楼主还是对定时器的工作原理有点搞不懂。建议楼主还是看看书,看下定时器中断是怎样工作的。
另附我在另一个帖子的回复给你参考下,希望对你有帮助。
http://bbs.elecfans.com/forum.php?mod=viewthread&tid=431136&page=1#pid2891135
好的,谢谢您!真心感谢!
一周热门 更多>