定时器计时器及串口.ppt
《定时器计时器及串口.ppt》由会员分享,可在线阅读,更多相关《定时器计时器及串口.ppt(51页珍藏版)》请在三一办公上搜索。
1、第6章 MCS-51单片机内部定时器/计数器 及串行接口,6.1 定时器/计数器的结构及工作原理 6.2 方式和控制寄存器 6.3 工作方式6.4 定时器/计数器应用举例 6.5 MCS-51单片机的串行接口6.6 串行口的应用,6.1 定时器/计数器的结构及工作原理,图 6.1 定时器/计数器结构框图,加法计数器是计满溢出时才申请中断,所以在给计数器赋初值时,不能直接输入所需的计数值,而应输入的是计数器计数的最大值与这一计数值的差值,设最大值为 M,计数值为 N,初值为 X,则 X的计算方法如下:计数状态:X=MN 定时状态:X=M定时时间/T 而 T=12晶振频率,6.2 方式和控制寄存器
2、,一、定时器/计数器的方式寄存器TMOD,图 6.2 TMOD各位定义,1.M1M0工作方式控制位,表 6.1 工作方式选择表,2.C/T 定时器方式或计数器方式选择位 若C/T=1时,为计数器方式;C/T=0时,为定时器方式。3.GATE 定时器/计数器运行门控标志位 当GATE=1时,只有INT0(或INT1)引脚为高电平且TR0(或TR1)置 1 时,相应的定时器/计数器才被选通工作,这时可用于测量在INTx端出现的正脉冲的宽度。若GATE=0,则只要 TR0(或 TR1)置 1,定时器/计数器就被选通,而不管 INT0(或 INT1)的电平是高还是低。,二、定时器/计数器控制寄存器TC
3、ON TF0、TF1分别是定时器/计数器T0、T1 的溢出标志位,加法计数器计满溢出时置 1,申请中断,在中断响应后自动复 0。TF产生的中断申请是否被接受,还需要由中断是否开放来决定。TR1、TR0 分别是定时器/计数器T1、T0 的运行控制位,通过软件置 1 后,定时器/计数器才开始工作,在系统复位时被清 0。,6.3 工作方式,一、方式 0,图6.3 方式 0(13位计数器),二、方式1,图 6.4 方式 1(16位计数器),三、方式 2,图 6.5 方式 2(初始常数自动重装载),四、方式 3,图 6.6 方式 3(两个 8 位独立计数器),6.4 定时器/计数器应用举例,一、方式 0
4、 的应用 例 1 利用定时器输出周期为 2 ms的方波,设单片机晶振频率为 6 MHz。选用定时器/计数器T0 作定时器,输出为P1.0 引脚,2 ms 的方波可由间隔 1 ms的高低电平相间而成,因而只要每隔 1 ms对 P1.0 取反一次即可得到这个方波。定时 1 ms的初值:因为 机器周期=126 MHz=2 s所以 1 ms内T0 需要计数N次:N=1 ms2 s=500,由此可知:使用方式 0 的 13 位计数器即可,T0 的初值X为 X=MN=8 192500=7 692=1E0CH 但是,因为 13 位计数器中,低 8 位 TL0 只使用了 5 位,其余码均计入高 8 位TH0
5、的初值,则 T0 的初值调整为 TH0=0F0H,TL0=0CHTMOD初始化:TMOD=00000000B=00H(GATE=0,C/T=0,M1=0,M0=0)TCON初始化:启动TR0=1 IE初始化:开放中断EA=1,定时器T0 中断允许ET0=1,程序清单如下:ORG 0000H AJMP START;复位入口 ORG 000BH AJMP TOINT;T0中断入口 ORG 0030HSTART:MOV SP,60H;初始化程序 MOV TH0,0F0H;T0赋初值 MOV TL0,0CH MOV TMOD,00H SETB TR0;启动T0,SETB ET0;开T0中断 SETB
6、EA;开总允许中断 MAIN:AJMP MAIN;主程序 TOINT:CPL P1.0 MOV TL0,0CH MOV TH0,0F0H RET,二、方式 1应用 方式 1 与方式 0 基本相同,只是方式 1 改用了 16 位计数器。要求定时周期较长时,13 位计数器不够用,可改用 16 位计数器。例 2 已知某生产线的传送带上不断地有产品单向传送,产品之间有较大间隔。使用光电开关统计一定时间内的产品个数。假定红灯亮时停止统计,红灯灭时才在上次统计结果的基础上继续统计,试用单片机定时器/计数器T1的方式 1完成该项产品的计数任务。,图 6.7 硬件原理图,(1)初始化:TMOD=1101000
7、0B=0D0H(GATE=1,C/T=1,M0M1=01)TCON=00H(2)T1在方式1时,溢出产生中断,且计数器回零,故在中断服务程序中,需用R0计数中断次数,以保护累积计数结果。,(3)启动T1计数,开T1中断。程序清单如下:,ORG 0000H AJMP START;复位入口 ORG 001BH AJMP T1INT;T1中断入口 ORG 0100H START:MOV SP,60H;初始化程序 MOV TCON,00H MOV TMOD,0D0H MOV TH1,00H,MOV TL1,00H MOV R0,00H;清中断次数计数单元 MOV P3,28H;设置P3.5第二功能 S
8、ETB TR1;启动T1 SETB ET1;开T1中断 SETB EA;开总中断 MAIN:ACALL DISP;主程序,调显示子程序 ORG 0A00H T1INT:INC R0;中断服务子程序 RETI DISP:;显示子程序 RET,三、方式 2 应用 方式 2 是定时器自动重装载的操作方式,在这种方式下,定时器 0 和 1 的工作是相同的,它的工作过程与方式 0、方式 1 基本相同,只不过在溢出的同时,将 8 位二进制初值自动重装载,即在中断服务子程序中,不需要编程送初值,这里不再举例。定时器 T1 工作在方式 2 时,可直接用作串行口波特率发生器,四、方式 3 的应用 定时器 T0
9、工作在方式 3 时是 2 个 8 位定时器/计数器。且TH0 借用了定时器 T1 的溢出中断标志TF1和运行控制位 TR1。例 3 假设有一个用户系统中已使用了两个外部中断源,并置定时器 T1 于方式 2,作串行口波特率发生器用,现要求再增加一个外部中断源,并由 P1.0 口输出一个 5 Hz的方波(假设晶振频率为 6 MHz)。,在不增加其它硬件开销时,可把定时器/计数器 T0 置于工作方式 3,利用外部引脚 T0端作附加的外部中断输入端,把 TL0 预置为 0FFH,这样在 T0 端出现由 1至 0 的负跳变时,TL0 立即溢出,申请中断,相当于边沿激活的外部中断源。在方式 3下,TH0
10、总是作 8 位定时器用,可以靠它来控制由 P1.0 输出的 5 kHz方波。由 P1.0 输出 5 kHz的方波,即每隔 100 s使 P1.0 的电平发生一次变化。则TH0中的初始值 X=MN=256100/2=206。下面是有关的程序。,MOV TL0,0FFH MOVTH0,206 MOVTL1,BAUD;BAUD根据波特率要求设置常数 MOVTH1,BAUD MOVTMOD,27H;置T0工作方式3;TL0工作于计数器方式 MOVTCON,55H;启动定时器 T0、T1,置外部中断 0 和 1;为边沿激活方式MOVIE,9FH;开放全部中断,TL0 溢出中断服务程序(由 000BH单元
11、转来):TL0INT:MOV TL0,0FFH;外部引脚 T0 引起中断处理程序 RETITH0 溢出中断服务程序(由 001BH转来):TH0INT:MOVTH0,206 CPL P1.0 RETI此处串行口中断服务程序、外中断 0和外中断 1的中断服务程序没有列出。,6.5 MCS-51单片机的串行接口,6.5.1 串行通信的基本概念,(1)同步方式是将一大批数据分成几个数据块,数据块之间用同步字符予以隔开,而传输的各位二进制码之间都没有间隔。其基本特征是发送与接收时钟始终保持严格同步。(2)异步通信是按帧传送数据,它利用每一帧的起、止信号来建立发送与接收之间的同步,每帧内部各位均采用固定
12、的时间间隔,但帧与帧之间的时间间隔是随机的。其基本特征是每个字符必须用起始位和停止位作为字符开始和结束的标志,它是以字符为单位一个个地发送和接收的。,6.5.2 与串行口有关的特殊功能寄存器,1.数据缓冲器SBUF 串行口缓冲器SBUF是可直接寻址的特殊功能寄存器,其内部RAM字节地址是99H。在物理上,它对应着两个独立的寄存器,一个发送寄存器,一个接收寄存器。发送时,就是CPU写入 SBUF的时候,51 系列单片机没有专门的启动发送状态的指令;接收时,就是读取SBUF的过程,接收寄存器是双缓冲的,以避免在接收下一帧数据之前,CPU未能及时响应接收器的中断,没有把上一帧数据读走,而产生两帧数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 定时器 计时器 串口
链接地址:https://www.31ppt.com/p-6465060.html