版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模块四定时器/计数器4.2定时器/计数器的工作方式M1M0=00;作定时器:TMOD=00000000=00H作计数器:TMOD=00000100=04H13位计数器;
TH:8位
TL:低5位,高3位不用。4.2定时器/计数器工作方式
1.工作方式0方式0的工作原理方式0的应用计数初值最大计数值为213=8192定时时间:△T=(213-T0的初值)×Tcy
计数个数:S=213-T0的初值
定时器初始化编程(1)向TMOD寄存器中写入工作方式控制字(2)向定时/计数器TH0、TL0(或TH1、
TL1)装入初值(3)启动定时/计数器(置位TR0/TR1)(4)如采用中断方式,置位ET0(ET1)、
EA、IP等中断寄存器例:已知单片机晶振频率6MHz,利用T0的方式0在P1.0引脚输出周期为500us的方波解:1)方波波形如图所示
2)TMOD初始化00H3)计数初值:计数初值=213-欲计数脉冲数=213-△T/Tcy
=213-250/2=1F83H=0001111110000011B∴TH1=0xFC,TL1=0x034)TCON初始化,TR0=1查询方式程序清单
#include<reg51.h>sbitp10=P1^0;main(){TMOD=0;TH0=0XFC;TL0=0X03;TR0=1;
while(1){while(TF0==0);p10=~p10;TH0=0XFC;TL0=0X03;TF0=0;}}中断方式程序清单
#include<reg51.h>sbitp10=P1^0;voidisr_t0();main(){TMOD=0;TH0=0XFC;TL0=0X03;TR0=1;EA=1;ET0=1;while(1);}voidisr_t0()interrupt1{p10=~p10;TH0=0XFC;TL0=0X03;}例
单片机晶振频率12MHz,利用T0的方式0实现1s延时,每隔1s钟使P1.0引脚翻转一次。1)TMOD初始化00H2)计数初值:定时时间:tmax=8192×1us=8.192ms;取5ms1秒延时实现:5ms延时200次
T0的初值:
=213-5000μs/1s=3192=0C78H=0000110001111000B∴TH0=63H,TL0=18H源程序清单:#include<reg51.h>voidisr_time0(void);sbitP10=P1^0;unsignedintcounter=200;voidmain(){TMOD=0X00;TH0=0X63;TL0=0X18;TR0=1;EA=1;ET0=1;while(1);}voidisr_time0()interrupt1{counter--;
if(!counter){counter=200;P10=~P10;}TH0=0X63;TL0=0X18;}2.定时/计数器工作方式1M1M0=01作定时器:TMOD=00000000=01H作计数器:TMOD=00000100=05H16位计数器,逻辑结构框图如下:振荡器÷12TF0中断T0C/T=0C/T=1GATEINT0端TR0TH0(8位)TL0(8位)控制l&≥lEAET0&&例
利用T0的方式1完成例3-6的功能(即在P1.0引脚输出周期为500us的方波)。1)TMOD初始化01H2)计数初值:计数初值=216-欲计数脉冲数=216-△T/Tcy
=216-250/2=65411=FF83H
因此TH1=0xFF,TL1=0x833)TCON初始化,TR0=14)开中断:EA=1;ET0=1源程序清单//主函数#include<reg51.h>voidisr_time0(void);sbitP10=P1^0;voidmain(){TMOD=0X01;TH0=-125>>8;TL0=-125;TR0=1;EA=1;ET0=1;while(1);}小技巧:实际应用中,在利用C51编程时,计数初值可以直接用如下方法表示:TH0=-125>>8;//取计数初值的高8位(0FFH)TL0=-125;//自动取计数初值的低8位(83H)不需要计算出具体的计数初值。但读者要清楚计算计数初值的原理。//中断服务函数voidisr_time0(void)interrupt1{P10=~P10;TH0=-125>>8;TL0=-125;}3.定时/计数器工作方式2M1M0=10
作定时器:TMOD=02H
作计数器:TMOD=06H自动重置初值的8位计数器,逻辑结构如图:振荡器÷12TF0中断T0GATEINT0TR0TL0(8位)TH0(8位)控制重新装入l≥l&C/T=0C/T=1&&EAET0案例——啤酒自动生产线某啤酒自动生产线,需要每生产12瓶执行装箱操作,将生产出的啤酒自动装箱,用单片机实现该控制要求。解:如果啤酒生产线上装有传感装置,每检测一瓶啤酒就向单片机发送一个脉冲信号,使用计数功能就可实现该控制要求。1)TMOD初始化06H2)计数初值:TH0=TL0=28-12=0F4H程序清单#include<reg51.h>voidisr_time0(void);voidmain(){TMOD=0x06;TL0=0Xf4;TH0=0Xf4;TR0=1;ET0=1;EA=1;while(1);}voidisr_time()interrupt1{
int
i,time=600;P37=0;//驱动电机转动
while(time
--)//假设装箱时间固定
for(i=500;i>0;i--);P37=1;//装箱结束电机停止转动}4.定时/计数器工作方式3振荡器÷12TF1T1中断TH0(8位)TR1控制T0端C/T=0C/T=1GATEINT0端TR0振荡器÷12TF0T0中断TL0(8位)控制l≥l&&&EAET0仅作定时器用!4.定时/计数器工作方式3M1M0=11T0、T1的设置和使用不同T0两个8位的计数器TL0:使用T0原有控制资源,功能与方式0、1相同。TH0:借用T1的TR1、TF1,只能对片内机器周期脉冲计数,作8位定时器。T0初值计算完全同方式2。T0工作方式3时T1的工作T1仍然可工作于方式0~2,C/控制位仍可使T1工作在定时器或计数器方式,由于其TR1、TF1被T0的TH0占用,因而计数溢出时只能将输出结果送至串行口,即用作串行口波特率发生器。T1工作于方式2,因定时初值能自动恢复,用作波特率发生器。因定时器1的TR1被占用,其启动和关闭比较特殊:当设置好工作方式时,T1自动开始运行。送入一个设置定时器1为方式3的方式字即可停止T1
。例
已知系统晶振12MHz,试用定时器0的方式3实现1s的延时(设每秒让P0.0所接的发光二极管闪烁一次)。TMOD初始化07HTH0作为定时器,定时时间250us;初值28-250=06HTL0作为计数器,计数200次;初值28-200=38H因250μs*200=50ms,则需引进一个变量,TL0计数满后该变量加1,直至20则为1s主函数#include<reg51.h>sbitP00=P0^0;sbitP34=P3^4;unsignedcharcount;voiddelay();main(){TMOD=7;TH0=0x06;TL0=0x38;TR0=1;TR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB 7956.24-2025消防车第24部分:自装卸式消防车
- 2025年大学公共事业管理(公共组织学)试题及答案
- 2025年大学专科(石油化工技术)油品分析试题及答案
- 2025年大学大二(环境工程)专业分流选拔测试卷
- 2025年高职物业管理(物业管理基础)试题及答案
- 2025年中职冶金技术(冶金操作实操)试题及答案
- 2025年中职历史学(世界古代史)试题及答案
- 2025年大学大一(材料科学)金属材料学阶段测试题及答案
- 2025年高职环境工程技术(环保设备运行与维护)试题及答案
- 2026年注册消防工程师(一级消防安全技术实务)试题及答案
- 2026.05.01施行的中华人民共和国渔业法(2025修订)课件
- 维持性血液透析患者管理
- 2025年大学大四(临床诊断学)症状鉴别诊断试题及答案
- 2025年消控员初级证试题及答案
- 人力资源调研报告
- 幼儿园食堂试卷(含答案)
- 2026年北京公务员考试试题及答案
- 《房屋市政工程第三方安全巡查服务标准》
- 儿童肥胖的长期管理
- 国开2025年《行政领导学》形考作业1-4答案
- 2025年G3锅炉水处理实操考试题库含答案
评论
0/150
提交评论