- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MCS单片机的定时器讲述
单片微型计算机原理及应用AMicrocontroller’s Principle and Applications;课程内容;第7章 MCS-51单片机的定时器/计数器;定时/计数器的结构;定时/计数器的工作原理;定时/计数器的工作原理;工作方式寄存器TMOD;; ;T0有方式0、1、2、3;T1有方式0、1、2。以T0为例说明。;;门控位作用;方式1:16位方式 ;;方式2:8位自动重装方式 ;方式3:(仅T0有此方式,T1的方式3将停止计数) ;17;18;2)赋初值;4)定时器溢出同步问题;21;初始化程序应完成:
对TMOD赋值,以确定T0和T1的工作方式;
求初值,并写入TH0、TL0或TH1、TL1;
中断方式时,要对IE赋值,开放中断;
查询方式时,检测TF0或TF1,为1代表计时到,将其清0;
使TR0或TR1置位,启动定时/计数器工作。;例:用T0扩展一个外部中断源。将T0设置为计数器方式,按方式2工作,TH0、TL0的初值均为0FFH,T0允许中断,CPU开放中断。其初始化程序如下:
MOV TMOD,#06H ;置T0为计数器方式2
MOV TL0,#0FFH ;置计数初值
MOV TH0,#0FFH
SETB TR0 ;启动T0工作
SETB EA ;CPU开中断
SETB ET0 ;允许T0中断
… …;计数应用; ORG 0000H
LJMP MAIN
ORG 000BH
LJMP DVT0
ORG 0100H
MAIN:MOV TMOD,#06H ;置T0计数方式2
MOV TH0,#0E8H;装入计数初值
MOV TL0,#0E8H
SETB ET0 ;T0开中断
SETB EA ;CPU开中断
SETB TR0 ;启动T0
SJMP $ ;等待中断;定时应用; ORG 0000H
LJMP MAIN
ORG 000BH
LJMP DVT0
ORG 0100H
MAIN:MOV TMOD,#01H ;置T0方式1
MOV TH0,#0D8H;装入计数初值
MOV TL0,#0F0H
SETB ET0 ;T0开中断
SETB EA ;CPU开中断
SETB TR0 ;启动T0
SJMP $ ;等待中断;采用软件查询方式完成的源程序如下: ; 定时时间较大时(大于65ms)。实现方法:一是采用1个定时器定时一定的间隔(如20ms),然后用软件进行计数;二是采用2个定时器级联,其中一个定时器用来产生周期信号(如20ms为周期),然后将该信号送入另一个计数器的外部脉冲输入端进行脉冲计数。 ; ORG 0000H
LJMP MAIN
ORG 000BH
LJMP DVT0
ORG 0030H
MAIN:MOV TMOD,#01H;置T0方式1
MOV TH0,#4EH ;装入计数初值
MOV TL0,#20H ;首次计数值
MOV R7,#50 ;计数50次
SETB ET0 ;T0开中断
SETB EA ;CPU开中断
SETB TR0 ;启动T0
SJMP $ ;等待中断;门控位的应用;由于定时方式1的16位计数长度有限,被测脉冲高电平宽度只能小于65536个机器周期。
;
;;教材第112页
1、3、6
文档评论(0)