定时器计数器与串口.ppt
《定时器计数器与串口.ppt》由会员分享,可在线阅读,更多相关《定时器计数器与串口.ppt(107页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、6定时器定时器/计数器与串行通信口计数器与串行通信口6.1 MCS-51的定时器的定时器/计数器计数器 在单片微机应用系统中,常常会需要定时或计数。在单片微机应用系统中,常常会需要定时或计数。80C51包含有包含有两个两个16位位的定时器计数器:的定时器计数器:T0和和T1;80C52包含有包含有三个三个16位位的定时器计数器:的定时器计数器:T0、T1和和T2。2 2种种工作模式工作模式:(1 1)计数器工作模式)计数器工作模式(2 2)定时器工作模式)定时器工作模式4 4种种工作方式工作方式(方式方式0 0方式方式3)3)6.1.1 MCS-516.1.1 MCS-51定时器定时器/计数器
2、的基本原理计数器的基本原理 定定时时器器计计数数器器的的核核心心是是一一个个加加1计计数数器器其其基基本本功功能能是是计数加计数加1。计数功能计数功能(计数器工作模式计数器工作模式)对片外从对片外从T0(P3.4)、T1(P3.5)引脚输入的外部脉冲信号进引脚输入的外部脉冲信号进行计数,下降沿计数加行计数,下降沿计数加1。最大计数速率为。最大计数速率为晶晶振频率的振频率的1/24。定时功能定时功能(定时器工作模式定时器工作模式)对片内机器周期进行计数,即对片内机器周期进行计数,即每个机器周期每个机器周期产生一产生一 个个计数脉冲,计数加计数脉冲,计数加1。计数速率为。计数速率为晶振频率晶振频率
3、的的112。振荡器振荡器12 加加 1计数器计数器TFx申请申请中断中断TX端端C/T=0C/T=1控制信号控制信号TRx 结构组成部分结构组成部分 两个两个16位的二进制定时位的二进制定时/计数器计数器T0、T1T0/T1分别由两个分别由两个8位的计数器组成,均属位的计数器组成,均属SFR寄存器寄存器T0由由TH0、TL0构成构成T1由由TH1、TL1构成构成相关的控制寄存器相关的控制寄存器方式寄存器方式寄存器TMOD 控制寄存器控制寄存器TCON定时定时/计数器的结构框图计数器的结构框图 微微处处理理器器TH1TL1TH0TL0TCONTMOD工作工作方式方式工作工作方式方式T1T0P3.
4、5(T1)P3.4(T0)6.1.2 6.1.2 定时器定时器/计数器控制与状态寄存器计数器控制与状态寄存器1 1)工作方式控制寄存器工作方式控制寄存器TMODTMODTMODTMOD:选择定时器选择定时器/计数器计数器T0T0、T1T1的工作模式和工作的工作模式和工作 方式。方式。TCONTCON:控制控制T0T0、T1T1的启动和停止计数,同时包含了的启动和停止计数,同时包含了 T0 T0、T1T1的状态。的状态。8 8位分为两组,高位分为两组,高4 4位控制位控制T1T1,低,低4 4位控制位控制T0T0。定时器工作方式选择定时器工作方式选择M1和和M0工作方式选择位工作方式选择位M1
5、M0方式方式说明说明0 0 013位位计计数数器器(THTH的的高高8 8位位和和TLTL的的低低5 5位位)0 1 11616位计数器位计数器 1 0 2自动重装入初值的自动重装入初值的8 8位计数器位计数器 1 1 3定时器定时器0 0:分成两个独立的:分成两个独立的8 8位计数器位计数器定时器定时器1 1:停止计数停止计数模式选择及门控位模式选择及门控位C/C/:计数器模式和定时器模式选择位:计数器模式和定时器模式选择位 0:定时器模式定时器模式 1:计数器模式计数器模式GATEGATE:门控位,定义门控位,定义T1/T0T1/T0的启动方式的启动方式GATE=0,非门控方式非门控方式(
6、内部启动内部启动):TR0/TR1=1,启动定时器工作;启动定时器工作;TR0/TR1=0,停止定时器工作。停止定时器工作。GATE=1,门控方式门控方式(外部启动外部启动):TR0/TR1=1且引脚且引脚INT0/INT1=1才启动。才启动。2 2)启)启/停与中断控制寄存器停与中断控制寄存器TCONTCON 低低4位与外部中断有关。高位与外部中断有关。高4位的功能如下:位的功能如下:(1)TF1、TF0计数溢出标志位计数溢出标志位 当当T1/T0的计数器计数溢出时,该位置的计数器计数溢出时,该位置“1”(2)TR1、TR0计数启计数启/停控制位停控制位软件置软件置1:启动定时器启动定时器/
7、计数器工作计数器工作 软件置软件置0:停止定时器停止定时器/计数器工作计数器工作1)方式方式0M1M0=0013位位定时器定时器/计数器计数器(TLx:低:低5位位,高,高3位不用;位不用;THx:8位位)计数时,计数时,TLx溢出后向溢出后向THx进位,进位,THx溢出后将溢出后将TFx置位置位,如果中断允许,如果中断允许,CPU响应中断并转入中断服务程序,由内部响应中断并转入中断服务程序,由内部硬件清硬件清TFx。TFx也可以由程序查询和清零。也可以由程序查询和清零。6.1.3 定时器定时器/计数器的工作方式计数器的工作方式 根据对根据对TMOD寄存器中寄存器中M1和和M0的设定,的设定,
8、T0、T1可选择可选择四种不同的工作方式四种不同的工作方式2)方式)方式1TMOD中的中的M1M0=0116位计数器位计数器(THx高高8位和位和TLx的低的低8位)位)计数溢出时,将计数溢出时,将TFx置位。置位。3)方式)方式2M1M0=108位计数器位计数器计数满后自动装入计数初值计数满后自动装入计数初值 在方式在方式2中,中,TLx作为作为8位计数寄存器位计数寄存器,THx作为作为8位计数位计数常数寄存器常数寄存器。当当TLx计数溢出计数溢出时,一方面时,一方面将将TFx置位置位,并向,并向CPU申请申请中断;另一方面中断;另一方面将将THx的内容重新装入的内容重新装入TLx中中,继续
9、计数。,继续计数。M1M0=11T0两个两个8位的计数器位的计数器TL0:使用使用T0原有控制资源,功能与方式原有控制资源,功能与方式0、1相同。相同。TH0:借用借用T1的的TR1、TF1,只能对片内机器周期脉冲只能对片内机器周期脉冲计数,计数,作作8位定时器。位定时器。4)方式)方式3定时器初始化编程定时器初始化编程 1.向向TMOD寄存器中写入工作方式控制字寄存器中写入工作方式控制字2.向定时向定时/计数器计数器TH0、TL0(或(或TH1、TL1)装入初值装入初值3.启动启动定时定时/计数器(置位计数器(置位TR0/TR1)4.如采用中断方式,置位如采用中断方式,置位ET0(ET1)、
10、)、EA、IP等等中中断寄存器断寄存器计数初值计数初值 设实际计数值为设实际计数值为X,计数器字长为,计数器字长为n(方式(方式0:n=13;方式方式1:n=16;方式;方式2:n=8)计数初值计数初值=(X)补补=2n X 对于对于定时定时模式:模式:定时时间定时时间TC=XTP 计数初值计数初值=(X)补补=2n X例如:例如:方式方式0:最大计数值为:最大计数值为213=8192,计数初值,计数初值=213 X 方式方式1:最大计数值为:最大计数值为216=65536,计数初值,计数初值=216 X 方式方式2:最大计数值为:最大计数值为28=256,计数初值,计数初值=28 X 4 4
11、种工作方式中,方式种工作方式中,方式0 0与方式与方式1 1基本相同,由于方基本相同,由于方式式0 0是为兼容是为兼容MCS-48MCS-48而设,初值计算复杂,在实际应而设,初值计算复杂,在实际应用中,一般不用方式用中,一般不用方式0 0,而采用方式,而采用方式1 1。例例 假设系统时钟频率采用假设系统时钟频率采用6MHz6MHz,要在,要在P1.0P1.0上输出一个上输出一个周期为周期为2ms2ms的方波,如图所示。的方波,如图所示。方波的周期用方波的周期用T0T0来确定,让来确定,让T0T0每隔每隔1ms1ms计数溢出计数溢出1 1次次,然后对然后对P1.0P1.0取反。取反。(1)TM
12、OD初始化初始化 01H 01H(T0方式方式1,定时模式),定时模式)(2)计算计数初值计算计数初值振荡器的频率振荡器的频率fosc6MHz,机器周期为,机器周期为2s,则有则有:计数初值计数初值=216-欲计数脉冲数欲计数脉冲数=216-TC/TP=2 21616-(110-(110-3-3/210/210-6-6)=2 =21616-500=65036-500=65036 化为化为1616进制,即进制,即计数初值计数初值=0FE0CH=0FE0CH 所以,所以,T0T0的计数初值为:的计数初值为:TH0=0FEH TL0=0CHTH0=0FEH TL0=0CH(3)(3)程序设计程序设计
13、 1 1)查询方式)查询方式 参考程序参考程序:MOV TMOD ,#01H ;设定时器;设定时器T0为方式为方式1 MOV TH0 ,#0FEH ;设设T0计数初值计数初值 MOV TL0 ,#0CH SETB TR0 ;启动;启动 T0LOOP:JNB TF0 ,LOOP ;查询计数溢出;查询计数溢出,未到时未到时 间继续计数间继续计数 CPL P1.0 ;输出方波输出方波 MOV TH0 ,#0FCH ;重新置计数初值;重新置计数初值 MOV TL0 ,#03H AJMP LOOP2 2)中断方式中断方式 让让T0T0每隔每隔1ms1ms计数溢出计数溢出1 1次次(每每1ms1ms产生一
14、次中断产生一次中断),CPUCPU响应响应中断后,在中断服务程序中对中断后,在中断服务程序中对P1.0P1.0取反。取反。中断服务程序除产生方波外,还要注意将计数初值重新装中断服务程序除产生方波外,还要注意将计数初值重新装入定时器中,为下一次中断作准备。入定时器中,为下一次中断作准备。参考程序:参考程序:ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN ;转主程序;转主程序 ORG 000BH ORG 000BH ;T0T0的中断入口的中断入口 AJMP IT0P AJMP IT0P ;转;转T0T0中断处理程序中断处理程序IT0PIT0P ORG 0100H O
15、RG 0100HMAIN:MOV TMOD,#01HMAIN:MOV TMOD,#01H ;设置;设置T0T0为方式为方式1 1 MOV TL0,#0CH MOV TL0,#0CH ;T0T0置计数初值置计数初值 MOV TH0,#0FEH MOV TH0,#0FEH SETB TR0 SETB TR0 ;启动;启动T0T0 SETB ET0 SETB ET0 ;允许;允许T0T0中断中断 SETB EA SETB EA ;CPUCPU开中断开中断 SJMP$SJMP$ITOP:CPL P1.0 ITOP:CPL P1.0 ;P1.0P1.0的状态取反的状态取反 MOV TL0,#0CH MO
16、V TL0,#0CH ;T0T0中断服务子程序,中断服务子程序,T0T0置初值置初值 MOV TH0,#0FEHMOV TH0,#0FEH RETI RETI END END例例 某系统中,某系统中,T1T1工作在方式工作在方式1 1,定时时间为,定时时间为10ms,10ms,主频主频为为12MHz12MHz,每,每10ms10ms向主机请求中断,将累加器向主机请求中断,将累加器A A中内中内容左移容左移1 1位,并送位,并送P1P1口输出。口输出。TC=10msTP=1usX=10ms/1us=104计数初值计数初值=216-欲计数脉冲数欲计数脉冲数=216-104=65536-10000=
17、55536=D8F0TMOD初始化初始化 10H 10H(T1方式方式1,定时模式),定时模式)计算计数初值计算计数初值 T1 T1的计数初值为:的计数初值为:TH0=0D8H TL0=0F0HTH0=0D8H TL0=0F0H 主程序主程序:START:MOV SP,#60H MOV TMOD,#10H MOV TH0,#0D8H MOV TL0,#0F0HSETB EASETB ET1MOV B,#01H SETB TR1 中断服务程序中断服务程序:INTT1:MOV TL1,#0F0H MOV TH1,#0D8H MOV A,BRLAMOV P1,AMOV B,ARETI例例 测试外部正
18、脉冲宽度(晶振测试外部正脉冲宽度(晶振12MHz12MHz)可选T0,模式1,外部触发外部信号为高电平时,外部触发外部信号为高电平时,外部触发从从0开始计数,计数初值为开始计数,计数初值为0计数值为计数值为N则则Tc=NTp不需要中断不需要中断 主程序主程序:START:MOV TMOD,#09H MOV TH0,#00H MOV TL0,#00HCLREX0LOP1:JBP3.2,LOP1LOP2:JNBP3.2,LOP2SETB TR0LOP3:JBP3.2,LOP3CLRTR0 MOV A,TL0MOV B,TH0 例例 利用定时器扩充外部中断源利用定时器扩充外部中断源 计数模式;方式2
19、;计数初值为0FFH 主程序主程序:ORG0000HAJMPMAINORG001BHLJMPINTERORG0100HMAIN:MOV SP,#60H MOV TMOD,#60H MOV TH0,#0FFH MOV TL0,#0FFHSETBEASETBET1 SETB TR1 中断服务程序中断服务程序:ORG 1000HINTER:PUSH APUSH DPLPUSH DPHPOPDPHPOPDPLPOPARETI注意点注意点定时定时/计数器的实时性计数器的实时性计数溢出到中断响应之间存在延时计数溢出到中断响应之间存在延时动态读取计数值动态读取计数值先读取先读取TH,再读取,再读取TL,再读
20、取,再读取TH6.1.4 定时器定时器/计数器计数器2 1616位定时位定时/计数器,控制寄存器为计数器,控制寄存器为T T2 2CONCONvTF2:溢出中断请求标志位,溢出中断请求标志位,RCLK/TCLK=1时,需软件复位时,需软件复位vEXF2:外部中断请求标志位,:外部中断请求标志位,P1.1(T2EX)下降沿到来,且下降沿到来,且EXEN2=1时,请求中断,需要软件复位时,请求中断,需要软件复位vRCLK:接收时钟标志,:接收时钟标志,1:串口使用串口使用T2溢出信号作为接收时钟溢出信号作为接收时钟0:串口使用串口使用T1溢出信号作为接收时钟溢出信号作为接收时钟vTCLK:发送时钟
21、标志,:发送时钟标志,vEXEN2:外部采样允许标志,:外部采样允许标志,1:T2不作为串口时钟时,不作为串口时钟时,P1.1下降沿触发捕获下降沿触发捕获/重装重装0:P1.1下降沿对下降沿对T2不起作用不起作用6.1.4 定时器定时器/计数器计数器2 1616位定时位定时/计数器,控制寄存器为计数器,控制寄存器为T T2 2CONCONvTR2:启动:启动/停止位停止位vC/T2:计数:计数/定时选择定时选择vCP/RL2:捕获:捕获/重装选择重装选择1:若:若EXEN2=1则则P1.1下降沿触发捕获功能下降沿触发捕获功能0:若:若EXEN2=1则则P1.1下降沿或溢出均触发重装功能下降沿或
22、溢出均触发重装功能RCLK/TCLK=1时,时,CP/RL2不起作用不起作用6.1.4 定时器定时器/计数器计数器2 工作方式工作方式RCLK+TCLKCP/RL2TR2工作方式工作方式001重装重装011捕获捕获11波特率发生波特率发生0停止停止6.1.4 定时器定时器/计数器计数器2 捕获方式捕获方式vEXEN2=0,同,同T0、T1方式方式1,软件复位,输入端,软件复位,输入端P1.0vEXEN2=1,增加捕获功能,增加捕获功能,P1.1下降沿到来,捕获下降沿到来,捕获TH2、TL2进入进入RCAP2、RCAP1,同时触发,同时触发EXF2vCP/RL2:捕获:捕获/重装选择重装选择6.
23、1.4 定时器定时器/计数器计数器2 重装方式重装方式vT2OE:输出启动位:输出启动位vDCEN:置位为:置位为1时允许增量时允许增量/减量计数减量计数字节地址:字节地址:C9H,不可位寻址,不可位寻址6.1.4 定时器定时器/计数器计数器2 重装方式重装方式vDCEN=0时,时,T2为增量重装方式为增量重装方式EXEN2=0时,时,16位溢出置位位溢出置位TF2,请求中断,陷阱寄存器,请求中断,陷阱寄存器RCAPx装入装入TH/TLEXEN2=1时,增加:时,增加:P1.1下降沿触发下降沿触发RCAPx重装,置位重装,置位EXF2vDCEN=1时,加时,加1/减减1计数计数P1.1=1时,
24、增量计数,溢出置位时,增量计数,溢出置位TF2、EXF2、RCAPx重装重装P1.1=0时,减量计数,溢出置位时,减量计数,溢出置位TF2、EXF2、RCAPx重装重装6.1.4 定时器定时器/计数器计数器2 波特率发生方式波特率发生方式vRCLK/TCLK均为均为1或某一位为或某一位为16.2MCS-51的串行通信的串行通信串行通信概述串行通信概述v并行通信与串行通信并行通信与串行通信并行通信并行通信通常是将数据字节的各位用多条数据线同时进通常是将数据字节的各位用多条数据线同时进行传送行传送。并行通信并行通信控制简单、控制简单、传输速度快;由于传传输速度快;由于传输线较多,长距离传输线较多,
25、长距离传送时成本高且接收方送时成本高且接收方的各位同时接收存在的各位同时接收存在困难。困难。6.2MCS-51的串行通信的串行通信串行通信概述串行通信概述v并行通信与串行通信并行通信与串行通信串行通信串行通信是将数据字节分成一位一位的形式在一条传输是将数据字节分成一位一位的形式在一条传输线上逐个地传送。线上逐个地传送。串行通信的特点串行通信的特点:传输线少,长距离传输线少,长距离传送时成本低,且传送时成本低,且可以利用电话网等可以利用电话网等现成的设备,但数现成的设备,但数据的传送控制比并据的传送控制比并行通信复杂。行通信复杂。v异步通信与同步通信异步通信与同步通信1、同步通信、同步通信同步通
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 定时器 计数器 串口
限制150内