MCS-51单片机定时计数器和串行接口.ppt
《MCS-51单片机定时计数器和串行接口.ppt》由会员分享,可在线阅读,更多相关《MCS-51单片机定时计数器和串行接口.ppt(57页珍藏版)》请在三一办公上搜索。
1、单片机原理与接口技术,第6章 MCS-51单片机定时/计数器和串行接口,(1)了解定时/计数器的结构和工作原理。(2)熟悉定时/计数器的控制寄存器。(3)掌握定时/计数器的应用编程。(4)了解串行通信接口的结构和工作原理。(5)熟悉串行通信接口的控制寄存器。(6)掌握串行通信的应用编程。,本章教学要求,本 章 目 录,7.1 定时/计数器7.1.1 定时/计数器的结构与原理7.1.2 定时/计数器的工作方式7.1.3 定时/计数器的应用7.2 串行通信接口7.2.1 串行通信基础知识7.2.2 MCS-51串行通信接口7.2.3 串行通信接口的应用,7.1 定时/计数器,MCS-51单片机内有
2、2个16位可编程的定时/计数器,T0和T1,由两个8位寄存器组成,都是加1计数器。用于定时控制、延时、对外部事件计数等场合。每个定时器都可由软件通过设置特殊功能寄存器TMOD和TCON规定其为定时或计数工作方式及其它可控功能方式。,7.1.1 定时/计数器的结构与原理,加1计数器计数脉冲有两个输入源,一是由系统时钟振荡器输出脉冲经12分频后送来;另一个是T0或T1引脚输入的外部脉冲源。每来一个脉冲从1到0跳变计数器加1,当加到计数器为全1时,再来一个脉冲计数器就回零,且溢出使TCON中TF0或TF1置1,向CPU发出中断请求。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模
3、式,则表示计数值已满。,7.1.1 定时/计数器的结构与原理,定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期)。计数值:N=满计数值-初始设定值 定时时间:t=计数值N机器周期T。,7.1.1 定时/计数器的结构与原理,计数器模式时,由T0或T1引脚输入计数脉冲。在每个机器周期的S5P2期间,CPU采样引脚输入电平。当前一机器周期采样到高电平,下一周期机器采样到低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期,最高计数频率不超过振荡频率的1/24,
4、当晶振频率为12MHz时,计数频率为1/2MHz,计数脉冲的周期要大于2 s。,定时控制寄存器(TCON),TF0、TF1:计数溢出中断请求标志位。TF0=1或TF1=1时计数溢出;TF0=0或TF1=0时计数未满。TR0、TR1:启/停控制位。TR0=1或TR1=1,使T0或T1启动计数;TR0=0或TR1=0,使T0或T1停止计数。,7.1.1 定时/计数器的结构与原理,TCON的低4位用于控制外部中断触发方式选择和触发标志位。TCON的高4位用于控制定时/计数器的启动和中断申请。,方式控制寄存器(TMOD),7.1.1 定时/计数器的结构与原理,设置定时/计数器的工作方式,低四位用于T0
5、,高四位用于T1,GATE-门控选择位:=0,非门控方式,定时/计数器由内部软件启动:TRx=1,启动定时器工作;TRx=0,停止定时器工作。=1,门控方式,定时/计数器由内、外部启动:TRx=1,同时必须引脚INTx=1,才启动。,7.1.2 定时/计数器的工作方式,作为波特率发生器,C/T:C/T=1,计数方式,对 T0、T1引脚输入的负 脉冲计数;C/T=0,定时方式,对机器周期计数。M1、M0:计数器工作方式选择位:,13位定时/计数器,由TLx的低5位(高3位未用)和THx的8位组成。TLx的低5位溢出时向THx进位,THx溢出时,置位TCON中的TFx标志,向CPU发出中断请求。,
6、7.1.2 定时/计数器的工作方式,1)方式0(M1M0=00),计数外部脉冲个数:18192(213)定时时间:T8192Tfosc=12MHz,T=1us时,最大定时时间:8.19ms,初始化定时/计数器时,初值N计算:定时机器周期数:Nt/T-定时时间/机器周期计数初值:X=213-N-计数最大值与计数值之差,7.1.2 定时/计数器的工作方式,GATE=0时,经反相后使或门输出为1,此时仅由TRx控制与门的开启,与门输出1时,控制开关接通,计数开始;GATE=1时,由INT0引脚信号控制或门的输出,此时控制与门的开启由INT0引脚信号和TRx共同控制。TRx=1时,INT0引脚信号高电
7、平启动计数,低电平停止计数。常用来测量外中断引脚上正脉冲的宽度。,7.1.2 定时/计数器的工作方式,2)方式1(16位定时/计数器,M1M0=01),计数外部脉冲个数范围:165536(216)定时时间范围:T65536T,初始化定时/计数器时,初值N计算:定时机器周期数:Nt/T-定时时间/机器周期计数初值:X=216-N-计数最大值与计数值之差,7.1.2 定时/计数器的工作方式,3)方式2(自动再装入8位定时/计数器,M1M0=00),TLx为8位加1计数器,THx为8位初值暂存器。TLx计数溢出时,一方面将TFx置位,另一方面,将THx的内容重新装入TLx,但不影响THx中的内容,用
8、于需要重复定时和计数的场合,可实现每隔预定时间发出控制信号。,计数外部脉冲个数范围:1256(28)定时时间范围:T256T,初值N计算:定时机器周期数:Nt/T计数初值:X=28-N,4)方式3(M1M0=00),7.1.2 定时/计数器的工作方式,T0分成两个8位定时/计数器TL0和TH0;TL0:既可计数也可定时,是一个8位定时/计数器。占用了T0 所有控制位:C/T,TR0,GATE,TF0和INT0、T0引脚;TH0:只能作为定时器,因为T0已被TL0占用,TH0用 T1的 控制位:TR1、TF1;,T0在方式3时T1的工作模式,7.1.2 定时/计数器的工作方式,如果定时/计数器T
9、0工作在方式3,T1只能工作在0、1、2方式。此时由于T1的运行控制位TR1及计数溢出标志位TF1已被定时/计数器T0借用,这时,T1作为串行口的波特率发生器使用。当作为波特率发生器使用时,只需要设置好工作方式,便可自动运行。如要停止工作,只需送入一个把T1设置为方式3的方式控制字。因为定时/计数器T1不能在方式3下工作,如果硬把它设置为方式3,则停止工作。,T0在方式3时T1的工作模式,7.1.2 定时/计数器的工作方式,7.1.3 定时/计数器的应用,(1)初始化步骤1)设置工作方式 TMOD2)计算加1计数器的计数初值Count,并将计数初值Count送入TH、TL中3)启动计数器工作T
10、CON,即将TRx置14)若采用中断方式,则应设置IE,1)定时/计数器初始化,例7-1 定时/计数器T0工作于门控计数方式,计数值x=1,允许中断,使用工作方式2。进行初始化编程。,7.1.3 定时/计数器的应用,1)T0定时/计数器工作于门控、计数、方式2下,可确定T0的GATE=1,C/T=1,M1M0=102)计数器位数n=8,计数器初值:Count=28-1=1111,1111B=FFH即,TH0=FFH,TL0=FFH,T0工作于方式2的初始化程序MOVTMOD,#0EH;设置T0工作于门控计数方式2MOVTL0,#0FFH;计数器TL1赋初值FFHMOVTH0,#0FFH;重装寄
11、存器TH1赋初值FFHSETBET0;T0开中断SETBEA;CPU开中断SETBTR0;预启动T0(当INT0输入高时启动),7.1.3 定时/计数器的应用,分析:周期为2ms的方波要求定时间隔为1ms,每次时间到将P1.0取反。机器周期T=12/fosc=1s。每个机器周期定时器计数加1,1ms=1000s,定时器赋初值65536-1000=64536=0FC18H.用定时器1的方式1编程,采用中断方式。,例7-2 设单片机的fosc=12MHz,要求在P1.0引脚上输出周期为2ms的方波。,7.1.3 定时/计数器的应用,-应用实例,(1)汇编语言程序:ORG0000H;复位入口AJMP
12、STARTORG001BH;T1中断服务程序入口地址AJMPT1INTORG0030HSTART:MOVSP,#60H;初始化程序MOVTMOD,#10H;设置T1工作于定时方式1MOVTH1,#0FCH;设置加1计数器的计数初值高字节MOVTL1,#18H;设置加1计数器的计数初值低字节SETBTR1;启动T1SETBET1;开T1中断SETBEA;开总允许中断MAIN:AJMPMAIN;主程序T1INT:CPLP1.0;T1中断服务程序MOVTH1,#0FCHMOVTL1,#18HRETI,7.1.3 定时/计数器的应用,-应用实例,尽管MCS-51为用户只提供了两个外部中断源,但用户可以
13、根据实际需求,进行外部中断请求的扩展,如用定时器中断作为外部中断的扩展。当引脚T0或T1上发生负跳变时,T0或T1计数器则加1。若设定计数初值为满量程,计数器加1,就会产生溢出中断请求,TF0或TF1变成了外部中断请求标志位,T0或T1的中断入口地址被扩展成了外部中断源的入口地址。,采用定时/计数器扩展外部中断,7.1.3 定时/计数器的应用,-扩展外部中断,将定时器T0引脚作为外部中断源使用的具体做法为,设定时器T0工作方式为方式2,计数器TH0、TL0初值为0FFH,允许计数器T0中断,则T0的初始始化程序如下:MOV TMOD,06H;将计数器T0设定为;方式2外部计数MOV TL0,#
14、0FFH;设置计数器初值MOV TH0,#0FFH;设置重装计数器初值SETB ET0;允许T0中断SETB EA;CPU开中断SETB TR0;启动T0,7.1.3 定时/计数器的应用,-扩展外部中断,7.2 串行通信接口,7.2.1 串行通信基础知识,-数据通信传输方式,计算机与外界进行信息交换称为通信。通信的基本方式:并行通信:数据的每位被同时传输 串行通信:数据传输是逐位传输的,1)通信方式,2)异步串行通信和同步串行通信,异步串行通信:异步通信是指通信双方使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求收、发双方的时钟尽可能一致,以起始位、停止位保持通信同步。其数据传
15、送以帧为单位传送。每1帧数据由1个字符代码组成,每1个字符代码由起始位、数据位、奇偶校验位和停止位组成。,7.2.1 串行通信基础知识,-串行通信,异步串行通信特点:异步通信对硬件要求较低,实现起来比较简单、灵活,适用于数据的随机发送/接收,但因每个字节都要建立一次同步,即每个字符都要额外附加两位,所以工作速度较低,在单片机中主要采用异步通信方式。同步串行通信:以一串字符为一个传送单位,字符间不加标识位,字符串开始用同步字符标识(一般约定为12个字符),以触发同步时钟开始发送或接收数据;字节数据之间不允许有空隙。传送时为了保证接收正确,发送方除传送数据外,同时还要传送时钟信号。同步串行通信特点
16、:硬件要求高,通讯双方须严格同步,适用于成批数据传送。,7.2.1 串行通信基础知识,-串行通信,3)串行通信的制式,串行通信按照数据传输方向可分为三种制式:单 工:数据传输仅能沿一个方向传输。半双工:数据传输可以沿两个方向,但分时进行。全双工:数据可以同时进行双向传输。,7.2.1 串行通信基础知识,-串行通信,4)波特率及时钟频率,波特率(BR):单位时间传输的数据位数。单位:bps(bit per second),1 bps=1 bit/s。波特率的倒数即为传输一位所需的时间。发送/接收时钟频率与波特率有关,即 fT/R=nBRT/R式中,fT/R为发/收时钟频率,单位:Hz;BRT/R
17、为发/收波特率,单位:bps;n为波特率因子。同步通信n=1。异步通信n可取1、16或64。也就是说,同步通信中数据传输的波特率即为同步时钟频率;而异步通信中,时钟频率可为波特率的整数倍。,7.2.1 串行通信基础知识,-波特率,时钟频率,5)串行通信的校验,异步通信时可能会出现帧格式错、超时错等传输错误。在具有串行口应用的单片机开发中,应考虑在通信过程中对数据差错进行校验,因为差错校验是保证准确无误通信的关键。常用差错校验方法有奇偶校验(MCS-51系列单片机编程采用此法)、和校验及循环冗余码校验。,7.2.1 串行通信基础知识,-传输的准确性,发送数据时,数据位尾随1位数据,为奇偶校验位(
18、1或0)。当设置为奇校验时,数据中“1”的个数与校验位“1”的个数之和应为奇数。当设置为偶校验时,数据中“1”的个数与校验位“1”的个数之和应为偶数。接收时,接收方应具有与发送方一致的差错检验设置。当接收一个字符时,对“1”的个数进行校验,若二者不一致,则说明数据传送出现了差错。奇偶校验是按字符校验,数据传输速度将受到影响。这种特点使得它一般只用于异步串行通信中。,7.2.1 串行通信基础知识,奇偶校验,-奇偶校验,7.2.2 MCS-51串行通信接口,MCS-51单片机内部有一个全双工的串行通信口,可以实现异步串行通信。两个物理上独立的接收、发送数据缓冲器SBUF,占用同一地址99H;既可以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS 51 单片机 定时 计数器 串行 接口
链接地址:https://www.31ppt.com/p-6512327.html