电子时钟与定时算法.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电子时钟与定时算法

定时器及应用;定时/计数器的基本结构如图所示 : ;例1、设单片机晶振频率为6MHZ,使用定时器1以方式0产生周期为500us的等宽正方波连续脉冲,并由P1.0输出,以查询方式完成。;解:1、计算计数初值 要产生500us的等宽正方波脉冲,只需在P1.0端以250us为周期交替输出高低电平即可实现,为此定时时间为250us。使用6MHZ晶振,则一个机器周期为2us,方式0为13位计数结构,设初值为X,则: (213-X)*12*1/6 =250 得:X=8067,二进制数表示为 00011,十六进制表示为,高8位为:0FCH,低5位为:03H。其中高8位装入TH1,即TH1 = 0FCH,低5位装入TL1, 即TL1 = 03H。;2、TMOD寄存器初始化 为把定时器/计数器设定为方式0,则M1M0= 00 ;为实现定时功能,应使C/T=0;为实现定时器/计数器1的运行控制,则GATE =0。定时器/计数器T0不用,有关位设定为0,因此TMOD寄存器初始化为00H。 3、由定时器控制器TCON中的TR1位控制定时的启动和停止,TR1=1启动 ,TR1=0停止。 4、使用查询就禁止中断 IE=00H;5、程序设计: MOV TMOD ,#00H ; 设置T1为工作方式0 MOV TH1 ,#0FCH ;设置计数初值 MOV TL1,#03H MOV IE ,#00H ;禁止中断 SETB TR1 ;启动定时 LOOP: JBC TF1,LOOP1 ;查询计数溢出 AJMP LOOP LOOP1:MOV TH1,#0FCH ;重新设置计数初值 MOV TL1,#03H CPL P1.0 ;输出取反 AJMP LOOP ;重复循环; 例3、使用定时器0以工作方式2产生100us定时,在P1.0输出周期为200us的连续方波脉冲,已知晶振频率fosc=6MHZ。;解: 1、计算计数初值 6MHZ晶振下,一个机器周期为2us,以TH0作重装载的预置寄存器,TL0作8位计数器,则: (28-X)*12*1/6=100 ,得X=206=0CEH 把0CEH分别装入TH0和TL0中。 2、TMOD初始化 为把定时器/计数器设定为方式2,则M1M0=10;为实现定时功能,应使C/T=0;为实现定时器/计数器0的运行控制,则GATE=0。定时器/计数器T1不用,有关位设定为0,因此TMOD寄存器初始化为0000 0010,即:02H;3、由定时器控制器TCON中的TR0位控制定时的启动和停止,TR0=1启动 ,TR0=0停止。 4、使用中断方式,应开中断 EA 位和ET0位置“1” ;5、程序设计(查询方式) MOV TMOD ,#02H ; 设置T0为工作方式2 MOV TH0 ,#0CEH ;设置计数初值 MOV TL0,#0CEH MOV IE ,#00H ;禁止中断 SETB TR0 ;启动定时 LOOP: JBC TF0,LOOP1 ;查询计数溢出 AJMP LOOP LOOP1:CPL P1.0 ;输出取反 AJMP LOOP ;重复循环 ;5、程序设计(中断方式) MOV TMOD ,#02H ; 设置T0为工作方式2 MOV TH0 ,#0CEH ;设置计数初值 MOV TL0,#0CEH SETB EA ;开中断 SETB ET0 ; 定时器1允许中断 LOOP: SETB T

文档评论(0)

liwenhua11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档