定时器1之使用定时器的查询方式来反转LED

发布时间:
来源: 电子工程世界

话不多说,先说目的:使用定时器的查询方式来反转LED。然后上代码:

ORG 0000H

MOV TMOD,#00H

MOV TH1,#0ECH

MOV TL1,#78H

SETB TR1

WhatchTf1:

JBC TF1,T1Overflow

SJMP WhatchTf1

T1Overflow:

CPL P1.0

SJMP WhatchTf1

END

接着是分析程序:

ORG 0000H

MOV TMOD,#00H ;

TMOD 即timer mode,定时器工作方式控制寄存器,设置他的工作方式16位自动重装,算了,这个还是不说那么具体了,感觉这种东西去查书或者数据手册都能查到。这里说说我的看法:单片机,就是对相应的寄存器放入相应的数,然后让他按相应的工作方式工作。就是这样。所以以后配置方面的东西我都不会仔细讲

MOV TH1,#0ECH ;设置定时器的初值,EC78,这个自己理解一下就知道这是5ms延时,12M晶振

MOV TL1,#78H

SETB TR1 ;开启定时器

WhatchTf1:

JBC TF1,T1Overflow ;查询tf1,jbc就是看tf1是为1,若为1,则跳到t1overflow,同时清零tf1让它继续定时,这个在定时器中经常用到。当定时器定时结束tf1自动置一,由软件清零

SJMP WhatchTf1 ;如果没有溢出则一直在查询tf1

T1Overflow: ;如果定时结束则来实现相应的功能

CPL P1.0 ;取反LEDp1.1

SJMP WhatchTf1 ; 做完自己想要做的事情之后又跳到去查询tf1

END

看完程序后记得理清思路,不然很懵逼就没用了,这种东西看多两遍就没问题了


文章来源于: 电子工程世界 原文链接

本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。