网站大量收购闲置独家精品文档,联系QQ:2885784924

单片机第6章定时器计数器课件.ppt

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

注意:定时到后处理程序无论哪种方式都需要考虑是否需要重赋初值:只有方式2为Tx自动重赋初值! 第4步:定时时间到后处理程序的编写 查询方式: 循环检测TFx=1?若为1,清0进行定时时间到后 处理程序。 中断方式: 在启动定时器前,打开定时器中断, TFx=1 时硬件自动清标志位,进入中断进行定时时间到后处理程序。 参考程序一(查询方式): #includereg51.h void main( ) { TMOD=0x01; TH0= (65536-50000)/256; TL0= (65536-50000)%256; TR0=1; while(1) { if(TF0==1) { TH0= (65536-50000)/256; TL0= (65536-50000)%256; TF0=0; P1=~P1; }} } #includereg51.h Char i=100; /*给变量i赋初值*/ void main( ) {TMOD=0x01; /*设置定时器T0为方式1*/ TH0= (65536-50000)/256; /*向TH0写入初值的高8位*/ TL0= (65536-50000)%256 ; /*向TL0写入初值的低8位*/ P1=0x00; /*P1口8只LED点亮*/ EA=1; /*总中断允许*/ ET0=1; /*定时器T0中断允许*/ TR0=1; /*启动定时器T0*/ while(1) ; /*无穷循环,等待定时中断*/ } * 参考程序二(中断方式): /*以下为定时器T0的中断服务程序*/ void T0_int(void) interrupt 1 { TH0= (65536-50000)/256 ;/*给T0装入初值,计15536个数后,T0溢出*/ TL0= (65536-50000)%256 ; P1=~P1; /*P1口按位取反*/ } * while(1) { if(TF0==1) { TH0= (65536-50000)/256; TL0= (65536-50000)%256; TF0=0; n++; } 扩展:将LED的亮灭时间调整为1分钟 if(n==20) {P1=~P1; n=0; } } } } } 参考程序(查询方式): #includereg51.h char n=0; void main() { TMOD=0x01; TH0= (65536-50000)/256; TL0= (65536-50000)%256; TR0=1; #includereg51.h Char n=20; /*给变量i赋初值*/ void main( ) {TMOD=0x01; /*设置定时器T0为方式1*/ TH0= (65536-50000)/256; /*向TH0写入初值的高8位*/ TL0= (65536-50000)%256 ; /*向TL0写入初值的低8位*/ P1=0x00; /*P1口8只LED点亮*/ EA=1; /*总中断允许*/ ET0=1; /*定时器T0中断允许*/ TR0=1; /*启动定时器T0*/ while(1) ; /*无穷循环,等待定时中断*/ } * 参考程序二(中断方式): /*以下为定时器T0的中断服务程序*/ void T0_int(void) interrupt 1 { TH0= (65536-50000)/256 ;/*给T0装入初值,计15536个数后,T0溢出*/ TL0= (65536-50000)%256 ; i--; /*循环次数减1*/ if(i=0) {P1=~P1; /*P1口按位取反*/ i=20; /*重新设置循环次数*/ } } * * 6.4 定时器/计数器的编程和应用 4种方式,方式0与方式1基本相同,只是计数位数不同。方式0初值计算复杂,一般不用方式0,而用方式1。 6.4.1 方式1的应用 【例6-1】假设系统时钟频率采用6MHz,在P1.0引脚上输出一个周期为2ms的方波,如图6-13所示。 * 图6-13 P1.0引脚上输出周期为2ms的方波 * 基本思想:方波周期T0确定,T0每隔1ms计数溢出1次,即T0每隔1ms产生一次中断,CPU响应中断后,在中断服务子程序中对P1.0取反,如图6-13所示。为此要做如下几步工作。 (1)计算计数初值X 机器周期?=?2?s?=?2???1

文档评论(0)

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

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

1亿VIP精品文档

相关文档