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

第五章_单片机定时器及计数器 - 副本.ppt

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Company Logo #includereg51.h void main() { TMOD=0x05; //定时器0为计数器,工作方式1,最大计数值65535 TH0=0; //初值为0 TL0=0; TR0=1; //启动定时器 while(1) { P1=TH0; P2=TL0; } } Company Logo 练习:计数器 对P3.5端口进行脉冲计数,计数满100次后产生中断,在P1端口输出100的二进制值。 Company Logo    MCS—51单片机有两个定时器/计数器,当它们选择计数工作方式时,T0或T1引脚上的负跳变将使T0或T1计数器加1,若把定时器/计数器设置成计数工作方式,计数初值设定为满量程,一旦计数从外部引脚输入一个负跳变信号,计数器To或T1加1,产生溢出中断,这样,便可把外部计数输入端T0(P3.4)或T1(P3.5)扩展为外部中断源输入。 Company Logo C语言参考程序: # include reg51.h //包含特殊功能寄存器库 #define uchar unsigned char //定义数据类型 uchar i; //定义变量i,作为存放中断函数中加1的记录。 void main() //主函数 { TMOD=0x60; //T1方式2,计数器 TL1=0xFF; //设初值满量程 TH1=0xFF; TR1=1; //启动T1计数 ET1=1; //T1中断允许 EA=1; //CPU中断开放 while(1); //无限循环,结束主函数 } void INT (void) interrupt 3 //中断函数 { i++; //中断加1处理 P1=i; //将结果送P1口 } Company Logo 四、全自动洗衣机定时控制Proteus仿真 洗衣机中所需的定时功能并不复杂,可以利用单片机提供的定时器方便实现。设洗衣机有三段定时时间,分别为:进水阶段定时2秒,洗涤阶段定时4秒,甩干阶段定时2秒。并分别用三个LED发光二极管表示进水、洗涤、甩干三个环节的工作状态。其中如果发光二极管A亮,表示进水工作正在进行;发光二极管B亮,表示洗涤工作正在进行;发光二极管C亮,表示甩干工作正在进行。发光二极管熄灭时,说明相应的定时已到,工作停止。图5-7给出了Proteus仿真电路图。 Company Logo Company Logo 图5-6中,S表示洗衣机启动开关,开关按下洗衣机开始工作。首先是进水定时控制,表示正在进水的LED发光二极管A点亮。当进水控制的定时时间到时,进水工作停止,发光二极管A灭灯;接着开始洗涤工作定时,发光二极管B点亮;洗涤工作结束后,开始甩干工作定时,发光二极管C点亮。当洗衣功能结束时,三个指示灯都熄灭,表示洗衣工作结束,并接通扬声器LS1鸣声提醒。 Company Logo C语言参考程序 #includereg51.h // 包含51单片机寄存器定义的头文件 sbit P20=P2^0; //将P20位定义为P2.0引脚 sbit P37=P3^7; //将P37位定义为P3.7引脚 unsigned char Countor; //设置全局变量,储存定时器T1中断次数 unsigned char f=0; //设置全局变量,作为区分不同阶段的定时 void delay1() //延时函数 { int q; for(q=0;q500;q++); } void main(void) //主函数 { if(P20==0) //若P2.0=0,说明键按下,执行语句,否则一直等待。 { delay1(); //有键按下,延时去抖动 if(P20==0) //再判有键按下 Company Logo { P1=0x0e; //A灯亮,开始放水定时 EA=1; //开总中断 ET0=1; //定时器T0中断允许 TMOD=0x01; //使用定时器T0的模式1 TH0=(65536-46083)/

文档评论(0)

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

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

1亿VIP精品文档

相关文档