版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模块四
定时器/计数器4.1
定时器/计数器的结构4.1
定时器/计数器的结构可编程定时,通过对系统时钟脉冲计数而获得延时
,MCS-51
定时/计数器的优点:>可实现定时、计数功能,有利用实时控
制不占用CPU时间>定时精度高,修改方便TO
|P3.4(TO)TLO工作方式THOTMOD1.
定时/计数器结构TH1TCONTL1工作
方式定时/计数器的结构框图T1
P3.5(T1)微
处
理
器(1)结构组成部分两个16位的二进制定时/计数器TO
、T1>TO/T1分别由两个8位的计数器组成,均属SFR寄存器>TO由THO、TLO
构成,字节地址为8CH、8AH>T1由TH1、TL1
构成,字节地址为8DH、8BH;相关的控制寄存器◆方式寄存器TMOD◆控制寄存器TCON控制信号TRx定时功能>对片内机器周期进行计数,即每个机器周期
产生一个计数脉冲,计数加1。>
实时控制、实时采样、定时控制等。(2)定时器/计数器的原理振荡器
÷12加
1计数器C/T=1申请
中断TX端一C/T=0
TFx加
1计数器TX端一
C/T=1控制信号TRx计数功能对片外从T0(P3.4)
、T1(P3.5)(2)定时器/计数器的原理振荡器
÷12部脉冲信号进行计数,下降沿计数加1。计数频率为晶振频率的1/24。>生产线上产品计数、检测电机转速等功能。引脚输入的外申请
中断C/T=0
TFx(3)定时/计数器初值预置初值X的计数方法(设最大值为M,
计数值为
N,
初值为X,Tcy=12÷晶振频率)>定时状态:
X=M一定时时间/Tcy>计数状态:
X=M-N设定时/计数器为8位加1计
数器,要求定时每隔100
μs
时间,发一次中断请求(设
机器周期1μs),
选定时功
能,计数初值为156要求检测到100个脉冲,
发中断请求,通知CPU,
选计数功能,计数初值为1562.方式和控制寄存器(1)方式控制寄存器TMOD>SFR寄存器,地址89H>控制T0、T1的工作方式
>
仅可字节寻址GATEC/TM1MOGATEC/TM1MOT1方式控制TO方式控制M1
MO方式说明0
0013位计数器(TH的高8位和TL的低5位)0
1116位计数器1
02自动重装入初值的8位计数器1
13定时器0:分成两个独立的8位计数器定时器1:停止计数定时器工作方式选择M1
和M0
:
工作方式选择位功能选择及门控位>C/定时/计数功能选择位。为“0”,定时模式为“1”,计数模式GATE:门控位,定义T1/TO的启动方式,●GATE=0,非门控方式(内部启动):●TRO/1=1,启动定时器工作;●TRO/1=0,
停止定时器工作。●GATE=1,
门控方式(外部启动)●TRO/1=1且引脚INT0/1=1才启动。(2)状态控制寄存器TCON>SFR
寄存器,地址88H>即参与定时控制又参与中断控制>与定时控制相关的有4位>TF1/TF0:当T1/TO的计数器计数溢出时,该位置“1”;>TR1/TR0:T1/T0运行控制位。软件将其置“1”时,
启
动T1/TO工作。8FH8EH
8DH8CH
8BH8AH89H
88HTF1
TR1
TF0
TRO
IE1IT1
IE0
ITO模块四
定时器/计数器4.2
定时器/计数器的工作方式4.2定时器/计数器工作方式1.工作方式0■
M1M0=00;作定时器:TMOD=00000000=00H作计数器:TMOD=00000100=04H■13位计数器;TH:8
位TL:低5位,高3位不用。方式0的工作原理方式0的应用>
计数初值最大计数值为2¹³=8192定时时间:△T=(21³-TO
的初值)×Tey计数个数:
S=21³-TO
的初值定时器初始化编程(1)向TMOD寄存器中写入工作方式控制字(2)向定时/计数器THO
、TLO
(
或TH1
、TL1)
装入初值(3)启动定时/计数器(置位TRO/TR1)(4)如采用中断方式,置位ETO(ET1)、
EA
、IP
等中断寄存器例:已知单片机晶振频率6MHz,
利用TO的方式0在
P1.0引脚输出周期为500us的方波解:1)方波波形如图所示2)TMOD
初始化00H3)计数初值:计数初值=2¹³-欲计数脉冲数=2¹³-△T/T=2¹³-250/2=1F83H=
0001111110000011B∴TH1=0xFC,TL1=0x034)TCON
初
始
化
.
TR0=1500us#include<reg51.h>sbitp10=P1^0;main()TMOD=0;TH0=0XFC;TLO=0X03;TR0=1;while(1)while(TF0==0);p10=~p10;TH0=0XFC;TL0=0X03;
TF0=0;查询方式程序清单#include<reg51.h>sbit
p10=P1^0;void
isr
t00;main(){TMOD=0;THO=0XFC;TLO=0X03;TR0=1;EA=1;ETO=1;while(1);void
isr
t0()interrupt
1p10=~p10;TH0=0XFC;TLO=0X03;中断方式程序清单例单片机晶振频率12MHz,
利用TO的方式0实现1s延时,每隔1s钟使P1.0引脚翻转一次。■
1)TMOD
初始化
00H■2)计数初值:定时时间:tmax=8192×1us=8.192ms;取5ms1秒延时实现:5ms延时200次TO的初值:=2¹³-5000μs/1s=3192=0C78H=000
0110001111000B■
∴THO=63H,TLO=18H#include<reg51.h>void
isr
time0(void);sbitP10=P1^0;unsignedintcounter=200;
voidmain(){TMOD=0X00;TH0=0X63;TLO=0X18;TRO=1;EA=1;ETO=1;while(1);}void
isr
time0()interrupt{counter--;if(!counter){counter=200;P10=~P10;}TH0=0X63;TLO=0X18;源程序清单:2.
定时/计数器工作方式1M1M0=01作定时器:TMOD=00000000=01H作计数器:TMOD=00000100=05H>16位计数器,逻辑结构框图如下:THO
TLO(8位)
(8位)
TFO控制
EAETO
&振荡器
÷12TOTR0—GATE—INTO端C/T=0C/T=1&中断&例
利用TO的方式1完成例3-6的功能(即在P1.0引脚
输出周期为500us的方波)。■1)TMOD
初始化
01H■2)计数初值:计数初值=21⁶-欲计数脉冲数=21⁶-△T/Tcy=2¹⁶-250/2=65411=FF83H因此TH1=0xFF,TL1=0x83■
3)TCON初始化,TR0=1■
4)开中断:
EA=1;ET0=1源程序清单//主函数#include<reg51.h>void
isr
time0(void);sbitP10=P1^0;void
main(){TMOD=0X01;THO=-125>>8;TLO=-125;TRO=1;EA=1;ETO=1;while(1);小技巧
:实
服务函数利用C51编
程时,计数初值可以直接
yid
is方法me(void)interrμBt518
;//
取计数初值的高8位(0FFH)Tp9o-125P10;
动取计数初
值的低8位(83H)不需要计算出具’体的计数
初值Q=仙2读者要清楚计算
计数初值的原理。3.定时/计数器工作方式2M1M0=10作定时器:TMOD=02H作计数器:TMOD=06H>自动重置初值的8位计数器,逻辑结构如图:振荡器
÷12
-TO—TROGATE
一D-TLO
(8位)控制THO(8位)CT=0
C/T=1&TFO重
新装入EA中断&ET0&案例——啤酒自动生产线■某啤酒自动生产线,需要每生产12瓶执行装箱操作,将生产出的啤酒自动装箱,用单片机实现该控制要
求。●解:如果啤酒生产线上装有传感装置,每检
测一瓶啤酒就向单片机发送一个脉冲信号,
使用计数功能就可实现该控制要求。●1)TMOD
初始化06HTHO=TL0=2—12=0F4H程序清单#include<reg51.h>void
isr
time0(void);void
main()void
isr
time()interrupt
1int
i,time=600;P37=0;//
驱动电机转动while(time
--)//假设装箱时间固定
for(i=500;i>0;i--);P37=1;//装箱结束电机停止转动TMOD=0x06;TLO=0Xf4;TH0=0Xf4;
TRO=1;ETO=1;EA=1;
while(1);TR0
一GATEINTO端一振荡器
÷12TLO(8位)EAETOTHO(8位)4.
定时/计数器工作方式3T0中断T1中断控制控
制TFO&一TF1振荡器T0
端□C/T=0C/T=1仅作定时器用人TR1÷12&4.
定时/计数器工作方式3>
M1M0=11>T0、T1的设置和使用不同>T0两个8位的计数器TLO:
使用T0
原有控制资源,功能与方式0、1
相
同
。TH0:
借
用T1的TR1
、TF1,只能对片内机器周期脉冲计数,作8位定时器。>
T0
初值计算完全同方式2。TO工作方式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初始化
07H>
THO作为定时器,定时时间250us;初值28
—250=06H>
TLO
作为计数器,计数200次;初值28—200=38H因250μs*200=50ms,则需引进一个变量,TLO
计数满后该变量加1,直至20则为1s主函数#include<reg51.h>sbitP00=PO^0;sbit
P34=P3^4;unsigned
char
count;void
delay();main()TMOD=7;THO=0x06;TLO=0x38;while(1){PO0=~P00;
delay();}}延时函数void
delay(){count=0;while(count<20){while(TF0==0){while(TF1==0);P34=0;THO=6;TF1=0;P34=1;
}TLO=0x38;TF0=0;count++;数组一维数组■在许多程序中,可能需要保留一块连续的存储空间
,相应的存储空间就是数组。■数组是一组变量,具有相同的数据类型,在某种意
义上具有一定的关系。■这些变量是所属数组的成分分量,称为数组元素,
既可以是基本数据类型,也可以是构造数据类型。1.
一维数组的定义数据类型
数组名[常量表达式]={值列表};定义了一个一维整形数组a,10表示有
10个元
素
:a[0],a[1],a[2].……a[8],a[9]定义了一个一维字符数组s1,5
表示有5个元素:s1[0],s1[1],s1[2],s1[3],s1[4]Exampleint
a[10];char
s1[5];1.
一维数组的定义■常量表达式中可以包括常量和符号常量,不能包含
变量。即C语言不允许对数组的大小作动态定义。■
如:inti=5;int
a[i];表示引用数组a中的第2个元素表示引用数组a中的第6个元素表示引用数组a中的第16个元素int
n=5,a[20];a[1]a[n]a[3*n]数组名[下标];Example2、一维数组元素的引用下标可以是整型常量、整型变量和整型表达式。2、一维数组元素的引用■
注
意
:●数组必须先定义后使用。●只能逐个引用数据元素而不能整体引用。●若一个数组长度为n,其下标值范围是0~(n-1)二维数组1.
二维数组的定义数据类型
数组名[常量表达式1][常量表达式2]={值列表};行
列int
a[3,4],b(3,4);int
c[][],d(3)(4);Exampleintx[2][3];x[(x[1二、二维数组2.
引用引
用
:
数组名[行下标][列下标]Exampleint
a[3][4];
a[3][4]=3;
/*
下标越界*/a[0][0]=3;
a[1,2]=1;/*a[1][2]=1;*/a[0][1]=a[0][0]+10;二维数组■
3.二维数组的初始化(1)分行对二维数组初始化(2)按数组排列的顺序初始化(3)对全部数组元素初始化(4)给部分元素赋初值用二层循环语句处理数组,通常外循环控制行,内循环控制列。3
4Exampl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 游戏化教学与人工智能教育资源融合:初中英语课堂趣味性与互动性的创新实践教学研究课题报告
- 基于大数据的小学语文协作学习模式下的智能评价与个性化反馈策略教学研究课题报告
- 一上七单元微课稿
- 2026年罗甸县第二医共体边阳分院面向社会公开招聘编制外卫生专业技术人员备考题库及一套答案详解
- 2026年济南北山粮库有限公司公开招聘劳务派遣工作人员岗位备考题库有答案详解
- 2026年郑州高新区双桥社区卫生服务中心招聘人事行政职位备考题库及一套答案详解
- 宜宾市科技人才集团有限公司2025年第三批员工公开招聘的备考题库及一套答案详解
- 2026吉林大学白求恩第一医院康复科招聘笔试模拟试题及答案解析
- 2026河北石家庄市某大型国有企业招聘1人笔试备考题库及答案解析
- 2026年江苏深环科技有限公司招聘备考题库及1套参考答案详解
- 小区道闸广告合同(标准版)
- 2025年山西铁道单招试题及答案
- 现场缺陷件管理办法
- DB42T 831-2012 钻孔灌注桩施工技术规程
- DBJ04-T489-2025 《智慧园林建设标准》
- 学校餐费退费管理制度
- 初三语文竞赛试题及答案
- 2025-2030中国石膏墙板行业市场发展趋势与前景展望战略研究报告
- 2024年度企业所得税汇算清缴最 新税收政策解析及操作规范专题培训(洛阳税务局)
- 实验室检测质量控制与管理流程
- 中小学教学设施设备更新项目可行性研究报告(范文)
评论
0/150
提交评论