单片机(余锡存)第6章剖析

上传人:n**** 文档编号:93085969 上传时间:2019-07-16 格式:PPT 页数:52 大小:347.50KB
返回 下载 相关 举报
单片机(余锡存)第6章剖析_第1页
第1页 / 共52页
单片机(余锡存)第6章剖析_第2页
第2页 / 共52页
单片机(余锡存)第6章剖析_第3页
第3页 / 共52页
单片机(余锡存)第6章剖析_第4页
第4页 / 共52页
单片机(余锡存)第6章剖析_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《单片机(余锡存)第6章剖析》由会员分享,可在线阅读,更多相关《单片机(余锡存)第6章剖析(52页珍藏版)》请在金锄头文库上搜索。

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

2、晶振频率,6.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, 定时器 /计数器就被选通, 而不管

3、INT0 (或 INT1)的电平是高还是低。,二、 定时器/计数器控制寄存器TCON TF0、TF1分别是定时器/计数器T0、 T1 的溢出标志位, 加法计数器计满溢出时置 1, 申请中断, 在中断响应后自动复 0。TF产生的中断申请是否被接受, 还需要由中断是否开放来决定。 TR1、TR0 分别是定时器 /计数器T1、 T0 的运行控制位, 通过软件置 1 后, 定时器 /计数器才开始工作, 在系统复位时被清 0。,附. 特殊功能寄存器TCON中的标志,(MSB),(LSB),图 5.2 TCON格式,6.3 工作方式,一、 方式 0,图6.3 方式 0(13位计数器),二、 方式1,图 6

4、.4 方式 1(16位计数器),三、方式 2,图 6.5 方式 2(初始常数自动重装载),四、 方式 3,图 6.6 方式 3(两个 8 位独立计数器),6.4 定时器/计数器应用举例,一、 方式 0 的应用 例 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

5、= 500,由此可知: 使用方式 0 的 13 位计数器即可, T0 的初值X为 X=MN=8 192500=7 692=1E0CH 但是, 因为 13 位计数器中, 低 8 位 TL0 只使用了 5 位, 其余码均计入高 8 位TH0 的初值, 则 T0 的初值调整为 TH0=0F0H, TL0=0CH TMOD初始化: 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 0

6、00BH AJMP TOINT ; T0中断入口 ORG 0030H START: MOV SP, 60H; 初始化程序 MOV TH0, 0F0H ; T0赋初值 MOV TL0, 0CH MOV TMOD, 00H SETB TR0 ; 启动T0,SETB ET0 ; 开T0中断 SETB EA ; 开总允许中断 MAIN: AJMP MAIN ; 主程序 TOINT: CPL P1.0 MOV TL0, 0CH MOV TH0, 0F0H RET,二、 方式 1应用 方式 1 与方式 0 基本相同, 只是方式 1 改用了 16 位计数器。 要求定时周期较长时, 13 位计数器不够用, 可

7、改用 16 位计数器。 例 2 已知某生产线的传送带上不断地有产品单向传送, 产品之间有较大间隔。使用光电开关统计一定时间内的产品个数。 假定红灯亮时停止统计, 红灯灭时才在上次统计结果的基础上继续统计, 试用单片机定时器 /计数器T1的方式 1完成该项产品的计数任务。,图 6.7 硬件原理图,(1) 初始化: TMOD=11010000B=0D0H (GATE=1, C/T=1, M0M1=01) TCON=00H (2) T1在方式1时, 溢出产生中断, 且计数器回零, 故在中断服务程序中, 需用R0计数中断次数, 以保护累积计数结果。,(3) 启动T1计数, 开T1中断。 程序清单如下:

8、,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第二功能 SETB TR1 ; 启动T1 SETB ET1; 开T1中断 SETB EA ; 开总中断 MAIN: ACALL DISP ; 主程序, 调显示子程序 ORG 0A00H T1INT: INC R0

9、 ; 中断服务子程序 RETI DISP: ; 显示子程序 RET,三、 方式 2 应用 方式 2 是定时器自动重装载的操作方式, 在这种方式下, 定时器 0 和 1 的工作是相同的, 它的工作过程与方式 0、 方式 1 基本相同, 只不过在溢出的同时, 将 8 位二进制初值自动重装载, 即在中断服务子程序中, 不需要编程送初值, 这里不再举例。定时器 T1 工作在方式 2 时, 可直接用作串行口波特率发生器,四、 方式 3 的应用 定时器 T0 工作在方式 3 时是 2 个 8 位定时器 /计数器。 且TH0 借用了定时器 T1 的溢出中断标志TF1和运行控制位 TR1。 例 3 假设有一个

10、用户系统中已使用了两个外部中断源, 并置定时器 T1 于方式 2, 作串行口波特率发生器用, 现要求再增加一个外部中断源, 并由 P1.0 口输出一个 5 Hz的方波(假设晶振频率为 6 MHz)。,在不增加其它硬件开销时, 可把定时器/计数器 T0 置于工作方式 3, 利用外部引脚 T0端作附加的外部中断输入端, 把 TL0 预置为 0FFH, 这样在 T0 端出现由 1至 0 的负跳变时, TL0 立即溢出, 申请中断, 相当于边沿激活的外部中断源。 在方式 3下, TH0 总是作 8 位定时器用, 可以靠它来控制由 P1.0 输出的 5 kHz方波。 由 P1.0 输出 5 kHz的方波

11、, 即每隔 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单元转来): TL0INT: MOV TL0, 0FFH ; 外部引

12、脚 T0 引起中断处理程序 RETI TH0 溢出中断服务程序(由 001BH转来): TH0INT: MOVTH0, 206 CPL P1.0 RETI 此处串行口中断服务程序、 外中断 0和外中断 1的中断服务程序没有列出。,6.5 MCS - 51单片机的串行接口,6.5.1 串行通信的基本概念,(1) 同步方式是将一大批数据分成几个数据块, 数据块之间用同步字符予以隔开, 而传输的各位二进制码之间都没有间隔。 其基本特征是发送与接收时钟始终保持严格同步。 (2)异步通信是按帧传送数据, 它利用每一帧的起、止信号来建立发送与接收之间的同步,每帧内部各位均采用固定的时间间隔, 但帧与帧之间

13、的时间间隔是随机的。其基本特征是每个字符必须用起始位和停止位作为字符开始和结束的标志, 它是以字符为单位一个个地发送和接收的。,6.5.2 与串行口有关的特殊功能寄存器,1. 数据缓冲器SBUF 串行口缓冲器SBUF是可直接寻址的特殊功能寄存器, 其内部RAM字节地址是99H。在物理上, 它对应着两个独立的寄存器, 一个发送寄存器, 一个接收寄存器。发送时, 就是CPU写入 SBUF的时候,51 系列单片机没有专门的启动发送状态的指令; 接收时, 就是读取SBUF的过程, 接收寄存器是双缓冲的, 以避免在接收下一帧数据之前, CPU未能及时响应接收器的中断, 没有把上一帧数据读走, 而产生两帧

14、数据重叠的问题。,2. 串行口控制寄存器SCON SCON用于控制和监视串行口的工作状态, 其各位定义如图 5.3 所示。相应的各位功能介绍如下: SM0、SM1: 用于定义串行口的操作模式, 两个选择位对应 4 种模式,见表6.2。其中fOSC是振荡器频率, UART为通用异步接收和发送器的英文缩写。 SM2: 多机通信时的接收允许标志位。 在模式 2 和 3 中, 若SM2 = 1, 且接收到的第 9 位数据(RB8)是 0, 则接收中断标志(RI)不会被激活。在模式1中, 若SM2=1 且没有接收到有效的停止位, 则 RI不会被激活。 在模式 0 中, SM2 必须是 0。,表6.2 串

15、行口操作模式选择,3. 电源控制寄存器PCON 特殊功能寄存器PCON中, 只有一位(最高位)SMOD与串行口的工作有关, 该位是串行口波特率系数的控制位: SMOD=1 时, 波特率加倍, 否则不加倍。 PCON的地址为 87H, 不可位寻址, 因此初始化时需要字节传送。,6.5.3 串行口的 4 种工作模式,模式 0 (1) 模式 0 输出状态。,图 6.8 外接移位寄存器输出,(2) 模式 0 输入状态。,图6.9 外接移位寄存器输入,2. 模式 1 串行口工作于模式 1 时, 为波特率可变的 8 位异步通信接口。数据位由 P3.0 (RXD)端接收, 由P3.1(TXD)端发送。 传送一帧信息为 10 位: 一位起始位(0), 8 位数据位(低位在前)和一位停止位(1)。波特率是可变的, 它取决于定时器 T1 的溢出速率及SMOD的状态。 (1) 模式 1 发送过程。 用软件清除 TI后, CPU执行任何一条以 SBUF为目标寄存器的指令, 就启动发送过程。数据由 TXD引脚输出, 此时的发送移位脉冲是由定时器 /计数器 T1 送来的溢出信号经过 16 或 32 分频而取得的。一帧信号发送完时, 将置位发送中断标志TI=1, 向CPU申请中断, 完成一次发送过程。,(2) 模式 1 接收过程。 用软件清除 RI后, 当允许接收位 REN被置位 1

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

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

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