定时计数器与串行通讯口_第1页
定时计数器与串行通讯口_第2页
定时计数器与串行通讯口_第3页
定时计数器与串行通讯口_第4页
定时计数器与串行通讯口_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、定时计数器与串行通讯口第1页,共18页,2022年,5月20日,0点48分,星期三1 定时/计数器电路K1K2可预置初值计数器中断请求功能选择启动控制内部时钟脉冲(定时)外部输入脉冲(计数)溢出信号计数脉冲计数初值1.1定时/计数器的工作原理 定时/计数器中的核心部件为可预置初值计数器。预置初值后开始计数,直至计数值归0或产生溢出,可申请中断。 计数器有加 1 计数或减1计数两种形式。MCS51单片机的计数器采用加1计数。要注意定时器的容量即位数第2页,共18页,2022年,5月20日,0点48分,星期三例:设TIMER为8位加1计数器。按要求选择功能和初值。1. 要求检测到100个脉冲,发中

2、断请求,通知CPU。 选计数功能,计数初值为156 。2. 要求定时每隔100s时间,发一次中断请求。设内部时钟周期1s 选定时功能,计数初值为156 。1.2 定时/计数器的应用1计数功能: 生产线上产品计数。每个产品通过得到一个脉冲信号,计数器记录脉冲个数,当计数值与设定值相等,启动包装机器。 检测转速。电机转动一圈发出一个脉冲,计数器记录一秒时间内脉冲个数,显示转速。2定时功能: 用于实时控制,定时采样、定时启动、计算两事件的间隔时间等。第3页,共18页,2022年,5月20日,0点48分,星期三1.3 8051定时计数器8051有2个可独立控制的16位定时器计数器:T0、T1。分别由8

3、位寄存器TH0、TL0 和 TH1、TL1组成。8051定时计数器为加1计数器,加到溢出时变为0,同时触发中断。定时计数器有4种工作方式,编程选择一种。定时计数器驱动时钟有两种来源:外部时钟和晶振的12分频。特殊功能寄存器TCON,TMOD用于控制定时计数器。频率不能高于晶振频率的1/24,且高低电平的宽度必须大于一个机器周期第4页,共18页,2022年,5月20日,0点48分,星期三1.4 8051定时计数器编程 功能选择(定时/计数) 工作方式的选择即计数位数的选择(8/13/16位) 启动方式选择(内部软件启动/外部硬件启动) 启动控制(启动/停止) 设置计数初值(自动重装/软件重装)

4、根据需要给中断允许寄存器IE送中断控制字,以开放或禁止相应的中断,并设定中断优先级第5页,共18页,2022年,5月20日,0点48分,星期三1.5 MCS-51定时计数器控制寄存器定时器模式寄存器1.TMOD定时器方式寄存器(89H)1)功能选择位 C/T:=0,定时功能,计数内部机器周期脉冲;=1,计数功能,计数引脚T0(T1)输入的负脉冲。2)方式选择位M1、M0:4种工作方式:13/16/8位3)门控方式选择位 GATE : =0,非门控方式(内部启动):TRx=1,启动定时器工作;TRx=0,停止定时器工作。=1,门控方式(外部启动):TRx=1且引脚INTx=1才启动。T1T0第6

5、页,共18页,2022年,5月20日,0点48分,星期三2. TCON定时器控制寄存器1)启动控制位 TR0、TR1=0,停止定时器工作=1,启动定时器工作例:启动T0:SETBTR02)溢出中断标志位 TF0、TF1定时器溢出使TFx=1,引起中断请求,CPU响应Tx中断后,自动清0 TFx。也禁止中断,用软件检测TFx,但必须软件清0。WAIT:JBC TF0,NEXT;检测T0是否溢出SJMPWAIT ;未溢出,继续检测NEXT: ;溢出,TF0清0,处理溢出第7页,共18页,2022年,5月20日,0点48分,星期三1.6 定时器工作方式方式0(13位计数方式)13位定时/计数器。 T

6、Hx 8位和TLx低5位组成13位加1计数器,计数值范围:18192(213)计数外部脉冲个数:18192(213)定时时间(设晶振为12MHz):1s 8.19ms当为定时工作方式时,定时时间的计算公式:(213计数初值)晶振周期12(213计数初值)机器周期第8页,共18页,2022年,5月20日,0点48分,星期三方式1(16位计数方式)16位定时/计数器。 THx8位和TLx8位组成16位加1计数器,计数值范围:165536(216)计数外部脉冲个数:165536(216)定时时间(设晶振为12MHz):1s 65536T= 65.54ms(8位)D15 D0当为定时工作方式时,定时时

7、间的计算公式:(216计数初值)晶振周期12(216计数初值)机器周期第9页,共18页,2022年,5月20日,0点48分,星期三方式 2(自动重装入8位计数方式)自动恢复初值8位定时/计数器。TLx为8位加1计数器,THx为8位初值暂存器。用于需要重复定时和计数的场合。最大计数值:256 (28)最大定时时间(设晶振为12MHz): 256s(8位)Timer1的溢出时钟还可用作串口时钟定时方式时,定时时间的计算公式:(28计数初值)晶振周期12第10页,共18页,2022年,5月20日,0点48分,星期三方式3(8位计数器)T0分成2个8位定时器:TL0定时/计数器和TH0定时器TL0占用

8、T0控制位:C/T,TR0,GATE,TF0;TH0占用T1控制位:TR1,TF1;此时Timer1始终打开,且不能用中断。T1不能使用方式3工作TH0的时钟只能来源于晶振的12分频第11页,共18页,2022年,5月20日,0点48分,星期三1.7 MCS-51定时器的应用定时器初始化编程:使用定时器工作之前,先编程相应的控制寄存器,确定好定时器的工作方式。初始化编程格式:MOV TMOD,# 方式字;选择方式MOV THx,#XH;装入Tx时间常数MOV TLx,#XL(SETB EA) ;开Tx中断(SETB ETx) SETB TRx ;启动Tx定时器1. 按实际需要选择定时/计数功能

9、2. 按时间或计数长度选择方式3. 计算时间常数第12页,共18页,2022年,5月20日,0点48分,星期三定时器的溢出处理编程举例:1)查询方式:先查询定时器溢出标志,再进行溢出处理。 ;定时器初始化WAIT:JBC TFx,PT ;检测溢出标志SJMP WAITPT:MOVTHx,#XH ;重装时间常数MOVTLx,#XL ;溢出处理SJMPWAIT2)中断方式:初始化后执行其他任务,中断服务程序处理溢出。ORG0000HLJMPMAINORG000BH(001BH);Tx中断入口LJMPPTSMAIN:;初始化后执行其他程序PTS:;溢出中断服务程序MOVTHx,#XH;重装时间常数M

10、OVTLx,#XLRETI第13页,共18页,2022年,5月20日,0点48分,星期三例:由P1.0输出方波信号,周期为2ms,设fosc=12MHz。2ms解:每隔1ms改变一次P1.0的输出状态。用T0非门控方式1定时。计算时间常数:X = 216 - t/T = 216 -1000/1 = FC18H(1)查询方式: START:MOVTMOD,# 01HMOVTL0,# 18HMOVTH0,# 0FCHSETBTR0 LOOP:JBCTF0,PTF0SJMPLOOP PTF0: CPLP1.0MOVTL0,# 18HMOVTH0,# 0FCHSJMPLOOP第14页,共18页,202

11、2年,5月20日,0点48分,星期三(2)中断方式程序 ORG0000HAJMPMAINORG000BHAJMPPT0INTORG0100HMAIN:MOVSP,#60HMOVTMOD,# 01HMOVTL0,# 18HMOVTH0,# 0FCHSETBEASETBET0SETBTR0HERE:SJMPHEREPT0INT:CPLP1.0 MOVTL0,# 18HMOVTH0,# 0FCHRETI第15页,共18页,2022年,5月20日,0点48分,星期三例:P1.7驱动LED亮1秒灭1秒地闪烁,设时钟频率为6MHz。思 路:长定时方法:增加一个软件计数器或一个硬件计数器。若采用硬件方式,可

12、用T0定时每隔200mS溢出,再用T1计数T0的定时跳变信号P1.0的负跳变次数,计满5个跳变为1秒。 START:MOV TMOD,# 61H MOV TL1,# 0FBH MOV TH1,# 0FBH CLR P1.0 SETB TR1RELOAD:MOV TL0,#0B0H MOV TH0,#3CH SETBTR0 WAIT:JBCTF0,TOVSJMPWAIT TOV:CPLP1.0JNBTF1,RELOADCLR TF1CPL P1.7SJMP RELOAD第16页,共18页,2022年,5月20日,0点48分,星期三例:利用GATE门控方式测量正脉冲宽度。解:从INT1(P3.3)

13、引脚输入被检测信号,记录正脉冲的时间包含的机器脉冲个数。1)设晶振12MHz,正脉宽小于65.5ms等待查询INT1,正脉冲过后,读出TH1TL1。START:MOV TMOD,#90H MOV TL1,# 0H MOV TH1,# 0HWAIT1:JBP3.3,WAIT1 SETB TR1WAIT2 :JNBP3.3,WAIT2NOP WAIT3 : JBP3.3,WAIT3CLRTR1MOVR0,TL1MOVR1,TH1TR1=1 T1启动 TR1=0 T1停止INT1正脉冲宽度(R1 28R0)12TOSC第17页,共18页,2022年,5月20日,0点48分,星期三2)设晶振12MHz,正脉冲宽度大于65.5ms,可用中断记录TH1、TL1溢出中断次数。主程序:START: MOV TMOD, # 90H;初始化AGAIN: MOV TL1 ,# 0H MOV TH1,# 0H MOV R2, # 0 ;R2清零WAIT1: JB P3.3,WAIT1 ;等待上一正脉冲结束 SETB TR1 ;开定时器1 SETB ET1 ;开T1中断 SETB EA ;开总中断WAIT2: JNB P3.3,WAIT2 ;等待正脉冲到来

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论