- 4
- 0
- 约6.23千字
- 约 34页
- 2017-04-04 发布于湖北
- 举报
TH?=?=?0xf0 TL?=?=?0x0c 2. 定时/计数器的应用 【例2】 单片机系统晶体振荡器的频率为12 MHz,利用定时/计数器0实现在P3.6引脚上输出周期为500 μs的方波。 分析:要在P3.6引脚上输出周期为500 μs的方波,只要每半个周期即250 μs取反一次即可,因此只要利用定时/计数器实现定时250 μs,定时时间到取反就可以实现。 利用T0让其在工作方式2下实现定时,对应TMOD?=?0X01,TH0?=?TL0?=?256?-?250?=?6。 程序如下: #includereg51.h sbit P3_6=P3^6; void main( ) { TMOD=0x02; // ?T0工作于方式2,用于定时 TH0=6; // 设置定时/计数器0的计数初值 TL0=6; P3_6=1; TR0=1; // 启动定时 while(1) { if(TF0==1) // 判断定时时间到了没有 { P3_6=!P3_6; // 定时时间到了,波形取反 TF0=0; // 查询方式下用软件将溢出标志位清零 } } } 程序如下: #includereg51.h sbit P3_6=P3^6; void timer0 (); void main( ) { TMOD=0x02; // ?T0工作于方式2,用于定时 TR0=1; // 启动定时 While(1) { P3_6=1; void timer0 (); P3_6=0; // 定时时间到了,波形取反 void timer0 (); } } void timer0 () // 定义定时函数 { TH06; // 设置定时/计数器0的计数初值,以确定定时时间250 us TL06; while(TF0==0) ; // 判断定时时间250 us到了没有,没有到则等待 TF0=0; // 溢出标志清零 } 【例3】 一交通路口设红、黄、绿三盏交通灯,当红灯亮2 s后,黄灯亮400 ms,绿灯亮1 s,试用单片机模拟交通灯控制。 分析:单片机采用发光二极管模拟交通灯控制,即利用P1.0~P1.2分别接红灯(LED0)、黄灯(LED1)、绿灯(LED2)三个发光二极管,电路如图所示。问题是这里用到三个不同定时时间(2 s、400 ms、1 s),是不是每个定时时间都编写不同的定时程序?其实不需要,可以采用软件定时器的方式,即找到这几个定时时间的公约数如50 ms,利用软件定时器就可以完成不同的延时。 图 单片机模拟交通灯控制 程序如下: #include reg51.h sbit P1_0=P1^0; sbit P1_1=P1^1; sbit P1_2=P1^2; void timer0( ); // 声明定时的函数 void main( ) { P1=0xff; TMOD=0x01; // 设置定时/计数器0工作于方式1,用于定时 while (1) { P1_0=0; // 红灯亮 timer0(40); // 延时2 s P1_0=1; // 红灯灭 P1_1=0; // 黄灯亮 imer0(8); // 延时400 ms P1_1=1; // 黄灯灭 P1_2=0; // 绿灯亮 timer0(20); // 延时1 s P1_2=1; // 绿灯灭 } } void timer0 (unsigned char n) // 定义定时函数 { unsigned char i; i=0; TH0=(65536-5000)/256; // 设置定时/计数器0的计数初值
您可能关注的文档
最近下载
- 民法总论课件.ppt VIP
- 低空经济与低空旅游建设方案.pdf VIP
- 《DLT 2934—2025垃圾发电厂飞灰低温处理技术规范》专题研究报告.pptx VIP
- 大气TSP、PM10监测.ppt VIP
- 公用工程车间调试车总结110116.doc VIP
- 畜牧微生物学教学课件电子教案全套课件.pptx VIP
- 2025年移动图书馆第三届知识竞答挑战赛题库及答案(第五关).docx VIP
- 2026年党支部班子在对照加强理论武装、做好群众工作、执行上级组织决定、严格组织生活等“6个对照方面”检查材料2份稿.docx VIP
- 降低患者胃肠减压管非计划拔管率品管圈.pdf
- 业绩完成情况专项审计报告.docx VIP
原创力文档

文档评论(0)