单片机第六章--定时器计数器与串行通信口概要

上传人:n**** 文档编号:93086591 上传时间:2019-07-16 格式:PPT 页数:69 大小:1.26MB
返回 下载 相关 举报
单片机第六章--定时器计数器与串行通信口概要_第1页
第1页 / 共69页
单片机第六章--定时器计数器与串行通信口概要_第2页
第2页 / 共69页
单片机第六章--定时器计数器与串行通信口概要_第3页
第3页 / 共69页
单片机第六章--定时器计数器与串行通信口概要_第4页
第4页 / 共69页
单片机第六章--定时器计数器与串行通信口概要_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《单片机第六章--定时器计数器与串行通信口概要》由会员分享,可在线阅读,更多相关《单片机第六章--定时器计数器与串行通信口概要(69页珍藏版)》请在金锄头文库上搜索。

1、第六章 定时器/计数器与串行通信口,定时器/计数器学习目标,定时器/计数器的结构及原理 定时器/计数器的各种工作方式 掌握定时器计数器的应用,6.1.1 定时/计数器的基本原理,1. 定时功能-计数输入信号是内部时钟脉冲,每个机器周期使寄存器的值加1。所以,计数频率是振荡频率的1/12。,2. 计数功能-计数脉冲来自相应的外部输入引脚,T0为P3.4,T1为P3.5。当输入脉冲信号从1到0的负跳变时,计数器就自动加1。计数的最高频率为振荡频率的1/24。,定时/计数器的核心部件是二进制加1计数器(TH0、TL0或TH1、TL1) 。,6.1.2 定时器计数器的控制寄存器,1启/停与中断控制寄存

2、器TCON (88H),中断请求标志,触发方式选择,启动定时/计数器,0 低电平1 下降沿,0 停止 1 启动,TCON可位寻址,字节地址是88H,复位时所有位清零。低4位与外部中断有关,已介绍。高4位的功能如下: (1) TF1、TF0计数溢出标志位,计数溢出时由硬件自动置1,向CPU请求中断,当CPU响应时,由硬件清0。 (2) TR1、TR0计数运行控制位 1:启动定时器/计数器工作 0:停止定时器/计数器工作,2工作方式控制寄存器TMOD (89H),GATE门控位 0:以运行控制位TRX(X=0,1)来启动定时器/计数器运行。 1:TRX=1且中断引脚(INT0或INT1)上为高电平

3、时,启动定时器/计数器运行。,计数脉冲输入,6.1.3 定时器计数器的工作方式(4种),1. 方式013位方式,13位计数器,定时器,计数器,2. 方式116位方式,3. 方式28位自动装入时间常数方式,初值同时送THX、TLX,启动后可无限次运行,常用于串行口波特率的产生。,4. 方式32个8位方式,只适用于定时器/计数器T0 。此时T1可用来作串行口波特率产生器。 T0分为两个独立的8位计数器:TL0和TH0 。TL0使用T0的状态控制位C/T*、GATE、TR0、,而TH0被固定为一个8位定时器(不能作外部计数模式),并使用定时器T1的状态控制位TR1和TF1。 各引脚与T0的逻辑关系如

4、图所示:,当T1用作串行口的波特率发生器时,T0才工作在方式3。T0处于方式3时, T1可定为方式0、方式1和方式2,用来作为串行口的波特率发生器(通常设置成方式2 ),或不需要中断的场合。,6.1.4 定时/计数器常数的计算,1计数器初值的计算 把计数器计满为零所需要的计数值设定为C,计数初值设定为TC,由此可得到公式: TC=M-C 式中,M为计数器模值,该值和计数器工作方式有关。在方式0时M为213;在方式1时M为216;在方式2和方式3时M为28。 把计数值换算成二进制装入THX、TLX中。,2定时器初值的计算 在定时器模式下,计数器由单片机主脉冲经12分频后计数。因此,定时器定时时间

5、T的公式: T=(M-TC)TP 上式也可写成:TC=M-T/TP M:模值,和定时器的工作方式有关; TP:单片机的机器周期(振荡周期TCLK的12倍);TC:定时器的定时初值。,例:方式1,定时时间为5ms,主频为6MHz,求计数初值?,3.初始化设置顺序 工作方式控制字TMOD的设置; 计数初值的装入; 开中断; 启/停位的设置等。,6.1.5 定时器/计数器的编程和应用 由于方式0是为兼容MCS-48而设,其计数初值计算复杂,在实际应用中,一般不用方式0,而采用方式1。 一、方式1应用 例:假设系统时钟频率采用6MHz,要在P1.0上输出一个周期为2ms的方波,如图所示。,设:需要装入

6、T0的初值为X,则有: (216-X)210-6=110-3 216-X=500 X=65036 X化为16进制,即X=FE0CH=1111111000001100B。 所以,T0的初值为: TH0=0FEH TL0=0CH,(1)计算初值,(2)初始化程序设计,(3)程序设计 中断服务程序除了完成要求的产生方波这一工作之外,还要注意将计数初值重新装入定时器中,为下一次产生中断作准备。 参考程序: ORG 0000H RESET: AJMP MAIN ;转主程序 ORG 000BH ;T0的中断入口 AJMP IT0P ;转T0中断处理程序IT0P ORG 0100H MAIN: MOV SP

7、,#60H ;设堆栈指针 MOV TMOD,#01H ;设置T0为方式1,ACALL PT0M0 ;调用子程序PT0M0 HERE: AJMP HERE ;自身跳转 PT0M0: MOV TL0,#0CH ;T0初始化程序,T0置初值 MOV TH0,#0FEH SETB TR0 ;启动T0 SETB ET0 ;允许T0中断 SETB EA ;CPU开中断 RET ITOP: MOV TL0,#0CH ;T0中断服务子程序,T0重置初值 MOV TH0,#0FEH CPL P1.0 ;P1.0的状态取反 RETI,例:假设系统时钟为6MHz,编写定时器T0产生1秒定时的程序。 (1)定时器T0

8、工作方式的确定 因定时时间较长,采用哪一种工作方式?由定时器各种工作方式的特性,可计算出: 方式0最长可定时16.384ms; 方式1最长可定时131.072ms; 方式2最长可定时512s。 选方式1,每隔100ms中断一次,中断10次为1s。 (2)计算计数初值 因为:(216-X)210-6 = 10-1 所以:X=15536=3CB0H 因此:TH0=3CH,TL0=B0H,(3)10次计数的实现 对于中断10次计数,采用循环程序的方法实现。 (4)程序设计 参考程序 : ORG 0000H RESET: LJMP MAIN ;上电,转主程序入口MAIN ORG 000BH ;T0的中

9、断入口 LJMP IT0P ;转T0中断处理程序IT0P ORG 1000H MAIN: MOV SP,#60H ;设堆栈指针 MOV B,#0AH ;设循环次数10次,MOV TMOD,#01H ;设T0工作在方式1 MOV TL0,#0B0H ;给T0设初值 MOV TH0,#3CH SETB TR0 ;启动T0 SETB ET0 ;允许T0中断 SETB EA ;CPU开放中断 HERE: SJMP HERE ;等待中断 ITOP: MOV TL0,#0B0H ;中断子程序,重装初值 MOV TH0,#3CH ; DJNZ B,LOOP CLR TR0 ;1s定时时间到,停止T0工作 L

10、OOP: RETI,例:利用定时器T1的方式2对外部信号计数,要求每计满100个数,将P1.0取反。 (1)选择工作方式 外部信号由T1(P3.5) 脚输入,每发生一次负跳变计数器加1,每输入100个脉冲,计数器产生溢出中断,在中断服务程序中将P1.0取反一次。 T1工作在方式2的控制字为TMOD=60H。不使用T0时,TMOD的低4位可任取,但不能使T0进入方式3,这里取全0。 (2)计算T1的初值 X=28-100=156=9CH 因此,TL1的初值为9CH,重装初值寄存器TH1=9CH,(3)程序设计 ORG 0000H LJMP MAIN ORG 001BH ;T1中断服务程序入口 C

11、PL P1.0 ;P1.0位取反 RETI ORG 0100H MAIN: MOV TMOD,#60H ;设T1为方式2计数 MOV TL0,#9CH ;T0置初值 MOV TH0,#9CH SETB TR1 ;启动T1 SETB ET1 ;允许T1中断 SETB EA ;CPU开放中断 HERE: AJMP HERE,6.1.6 定时器/计数器的实时性 注意:从回0溢出到主机响应中断造成的时延。 方法:在中断服务程序中对TLX、THX、重新置初值时,应将当前的TLX、THX值读出来重新补偿到初值中。 CLR EA ;禁止中断 MOV A,TLX ;读TLX中已计数值 ADD A,#LOW ;

12、LOW为低字节初值 MOV TLX,A ;设置低字节初值 MOV A,#HIGE ;高字节初值送A ADDC A,THX ;高字节初值补偿 MOV THX,A ;设置高字节初值 SETB EA ;开中断,6.1.7 运行中读定时器/计数器 方法:先读(THX),后读(TLX),再读(THX)。若两次读得(THX)相同,则读得的内容正确。若前后两次读得的(THX)有变化,则再重复上述过程,这次重复读得的内容就应是正确的。 RDTIME:MOV A,TH0 ;读(TH0) MOV R0,TL0 ;读(TL0) CJNE A,TH0,RDTIME;比较2次读得的(TH0) ,不相等则重复读 MOV

13、R1,A ;(TH0)送入R1中 RET,单片机串行通信I/O接口的结构 串行通信控制寄存器 单片机串行通信的工作方式 串行通信应用。,6.2 单片机的串行通信,通 信 方 式,6.2.1 串行通信的概念,并行通信方式空间上区分各位数据 及联络控制信号。占 用传输线多,速度快。,串行通信方式时间上区分各位数据 及联络控制信号。占 用传输线少,速度慢。,串行通信方式 -信息传输在一个方向上只占用一跟通信线,它既作为数据线,又作为联络线。,信息格式上分,异步通信方式按字符传输,同步通信方式按数据块传输,要求时钟严格同步。,一、异步通信方式,数据是以帧为单位传送的。每1帧数据由1个字符代码组成,而每

14、1个字符代码又是由起始位、数据位、奇偶校验位和停止位四个部分组成。,异步通讯双方的两项约定,(1)帧格式:帧格式的规定是双方能够在对同一种0和1的串理解成同一种意义。从通用、方便的角度出发,一般还是使用一些标准为好,如采用ASCII标准(串行通信中为10位)。 (2)波特率:(位/秒)对传送速率的规定。 例:要求每秒传送120个字符,每帧为10位。 解: 10b120s1200bs1200波特 每位传输时间为0.83ms,二、同步通信方式,在同步通信中,以一串字符为一个传送单位,字符间不加标识位,在一串字符开始用同步字符标识,硬件要求高,通讯双方须在时钟上必须严格同步。数据传输时,中间不允许断

15、流,否则将出错。,三、串行通信的制式,四、串行通信中的数据校验,奇偶校验:是一个表示给定位数的二进制数中 1 的个数是奇数还是偶数的二进制数。奇偶校验位是最简单的错误检测码。,循环冗余校验(CRC):CRC在传输或者储存之前计算出来并且附加到数据后面,然后接收方进行检验确定数据是否发生变化。,五、通用异步收发器(UART)的功能,1.发送器:并串数据格式转换,添加标识位和校验位,一帧发送结束,设置结束标志,申请中断。 2.接收器:串并数据格式转换,检查错误,去掉标识位,保存有效数据,设置接收结束标志,申请中断。 3.控制器:接收编程命令和控制参数,设置工作方式:同步/ 异步、字符格式、波特率、

16、校验方式、数据位与同步时钟比例等。,6.2.2 MCS-51单片机串行口结构,MCS-51有一个可编程的全双工串行通信接口,可作为通用异步接收/发送器UART,也可作为同步移位寄存器。它的帧格式有8位、10位和11位,可以设置为固定波特率和可变波特率,给使用者带来很大的灵活性。,一、串行口控制寄存器,(1)SM0、SM1:串行口工作方式选择位,1.串行控制寄存器SCON,(2)SM2:多机通讯控制位。 方式0时,SM2一定要为0。 方式1时,如SM2=1则只有接收到有效停止位时,RI(接收中断请求位)才置1。 方式2或方式3,当SM2=1且接收到的第九位数据RB8=1时,RI才置1。 (3)REN:串行接收允许位。由软件置位或清除。软件置1时,串行口允许接收,清零后禁止接收。,(4)TB8:在方式

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号