计数器串行口和中断器

上传人:宝路 文档编号:48128507 上传时间:2018-07-10 格式:PPT 页数:77 大小:2.32MB
返回 下载 相关 举报
计数器串行口和中断器_第1页
第1页 / 共77页
计数器串行口和中断器_第2页
第2页 / 共77页
计数器串行口和中断器_第3页
第3页 / 共77页
计数器串行口和中断器_第4页
第4页 / 共77页
计数器串行口和中断器_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《计数器串行口和中断器》由会员分享,可在线阅读,更多相关《计数器串行口和中断器(77页珍藏版)》请在金锄头文库上搜索。

1、1第五章 MCS-51定时/计数器,串行口 及中断系统5.1 MCS-51定时/计数器5.2 MCS-51 串行口5.3 MCS-51单片机中断系统2一、定时/计数器结构2个16位定时/计数器T0和T1分别由8位寄存器 TH0,TL0和TH1,TL1构成,它们是以“加1”的方式完成计 数,计数寄存器满则溢出,并向CPU 发出中断。31方式控制寄存器TMODGATE:门控位,与INTX有关,当GATE=1,TRX=1 时, INTX=1开始计数,而INTX=0时则终止计数。C/T:计数器方式还是定时器方式选择位。M1M0:操作方式选择位,对应4种操作方式,如下表:是一个8位SFR,不可以位寻址,

2、各位定义如下,4二:定时器控制寄存器TCONTF1:T1溢出标志。当T1产生溢出,由硬件置“1”,可向 CPU发出中断请求,CPU响应中断后被硬件自动清0,也 可由程序查询清0。 TR1:T1运行控制位。由软件置“1”或置“0”来启动或关闭T1 工作,因而又称启/停控制位。 TF0:T0溢出标志。 TR0:T0运行控制位。是一个8位SFR,可以位寻址,各位定义如下55.1.3 定时/计数器的4种工作方式一:方式0当编程使TMOD中的M1M0=0时,计数器按13 位工作,由TL的低5位(高三位未用)和TH的 高8位构成13位计数器,其逻辑图如下6工作方式二: 方式1当编程使方式寄存器TMOD中M

3、1M0=10时,定时/计 数器按16位工作,其操作方式与方式0完全相同。7工作方式三:方式2当M1M0=10时,定时/计数器成为可自动装载计数初 值的8位寄存器。TL1或TL0定义为计数器,而其高8位 TH1和TH0为赋值寄存器(装计数初值),在TL1, TL0溢出后,重新装入TH1,TH0的内容,而TH1, TH0的内容不变。8工作方式四: 方式3当M1M0=11时,内部控制逻辑把TL0和TL1配置成2 个互相独立的8位计数器。9工作方式3TL08位计数/定时器。工作方式与方式0完全相同。TH08位定时器。105.1.5 定时/计数器的初始化一:定时/计数器的初始化步骤1:确定工作方式-对方

4、式寄存器TMOD赋值。2:预置定时器/计数器初值,直接将初值写入TL0,TH1或TL1,TH1中。3:开启或禁止定时/计数器中断:SET ET0。4:启动定时器/计数器:对TCON 中的TR1或TR0置1。11二:计数器初值的计算1:计数器最大计数值:选择不同的工作方式,最大 计数值M不同。 方式0:M=213=8192方式1:M=216=65536方式2,3:M=28=256 2:计数初值X的计算: (1)计数方式时:X=M-计数值 (2)定时方式时:(M-X) T=定时值 故,X=M-定时值/T ( 其中T为计数周期,是单片 机时钟的12分频)。12例5-1 若单片机晶振为12MHZ,要求

5、产生500US定时,试计算X的初 值。由于T = 1s,产生500s定时,需要“+1” 500次,定时器方能产生溢出。采用方式0:( 13位计数器 )X= 213(50010-6 /10-6 )= 8192 500 = 7692 = 1E0CH = F00CH采用方式1:( 16位计数器 )X= 216 (50010-6 /10-6)= 65036 = FE0CH?1 1 1 1 0 0 0 00 0 0 0 1 1 0 0 THiTLiD7D6D5 0 0 0不用F00CH =?暂时写成解:晶振为12MHz,则T = 12/12=1s。135.1.6 定时/计数器应用举例1 、 定时器2、

6、计数器14定时器应用举例解1 :方式0:用P1.0做方波输出信号,周期为2MS的方波即每1MS改变一次电平,故定时值应为1ms,可作“+1”运算1000次,使T1作定时器工作在方式0,即13位计数器。定时初值:X=M-计数次数=8192-1000=7192=1C18H由于TL1的高3位不用,1C18H应插入未用的三位,11100000 000 11000 B=E018HTH1初值为E0H,TL1的初值为18H 。例5-2 设主频为12MHZ,利用定时器T1定时,使P1.0输 出周期为2MS的方波。方式控制字的设定MOV TMOD, #00H MOV TH1, #0E0H MOV TL1, #1

7、8H SETB EA SETB ET1 SETB TR1 SJMP $;T1按方式0工作;给计数器赋初值 ;CPU开总中断 ;T1允许中断 ;启动T1 ;模拟主程序程序 :16ORG 001BH AJMP BR1BR1: MOV TH1, #0E0H MOV TL1, #18H CPL P1.0 RETI;T1中断入口 ;转T1中断服务;重装T1的初值;输出方波 ;返回ORG 0100H17方式1若定时器T1按方式1工作,即16位计数器,则定时初值:X=M-计数次数=65536-1000=FC18HTH1初值为FCH,TL1初值为18H。其他编程与方式0类同。18例5-3 根据例5-2要求产生

8、周期为2MS方波,但不用中断 方式,而用查询方式工作,查询标志为TF1。18MOV TMOD, #10H SETB TR1LOOP: MOV TH1, #0FCH MOV TL1, #18HJNB TF1, $ CPL P1.0CLR TF1 SJMP LOOP;T1按方式1工作 ;启动T1定时;给计数器赋初值;TF10;输出方波;返回解:利用方式1,16位计数器; 当定时时间到,T1计数器溢出使TF1置“1” 由于不采用中断方式,TF1置“1”后不会自动复“0”, 故需要指令给TF1清”0“。192.作计数器用计数器方式2的应用 例5-4 用T0监视一生产流水线,每生产100个工件, 发出一

9、包装命令,包装成一箱,并记录其箱数。 解 硬件电路如图所示:MCS-51P1. 0T0Vcc包装机包装命令100个光源光 敏20GATE C/TM1M0控制T1控制T0TMOD选方式2选计数器INT0不参与控制0 1 1 0 计数初值X = M64H = 9CH 用P1.0启动外设发包装命令 用R5R4作箱数计数器 方式字TMOD = 06H21程序:MOV TMOD, #6MOV P1.0, #0MOV R5, #0 MOV R4, #0MOV TH0, #9CHMOV TL0, #9CH SETB EA SETB ET0 SETB TR0 SJMP $ORG 000BH AJMP COUN

10、T;P1.0为低;箱数计数器清“0” ;置T0工作方式;T0开中断;CPU开中断;启动T0 ;模拟主程序;T0中断入口 ;转向中断服务22COUNT: MOV A, R4 ADD A, #1 MOV R4, A MOV A, R5 ADDC A, #0 MOV R5, A SETB P1.0 MOV R3, #100DLY: NOP DJNZ R3, DLYCLR P1.0 RETI中断服务:;箱计数器加“1” ;启动外设包装;给外设足够时间 ;延时 ;停止包装;中断返回;先在低字节加“1”ORG 0100H23门控位GATE的应用GATE C/TM1M0控制T1控制T0TMOD选方式1选定时

11、器方式INT1为高时,T1开始计数1 0 0 124门控位GATE的应用例5-5 用GATE控制位,测量INT1(P3.3)引脚上正脉冲的 宽度(设晶振位12MHZ,正脉冲宽度小于65MS)。25执行完CLR TR1后停止计数,此时TH1,TL1 的内容即为正脉冲宽度(单位:US)。MOV TMOD, #90HMOV TL1, #0 MOV TH1, #0JB P3.3, $SETB TR1 JNB P3.3, $JB P3.3, $CLR TR1:程序:;置T1方式控制字;T1从0开始计数 ;等INT1低电平 ;T1允许计数;等INT1高电平 ;等INT1低电平 ;停止计数“与”计数时间26

12、5.2 MCS-51 串行口 51系列有一个可编程的全双工的串行I/O口。 串行通信:是指数据一位一位地按顺序传送的通信方式。 并行通信:8位数据同时传递。 特点: 串行通信:只需一根数据线,线路简单,成本低,但传递 速率慢,传递距离长。 并行通信:需要8根数据线,传递速度快,传递距离短。 波特率:每秒钟内能发送或接收的二进制位数称为波特率。 单位是: 位/秒(bps)。它表示串行通信传输的快慢。通常为: 1400,2800,3200,7200,9600 每位的传输时间Td=1/波特率27单工串行口,半双工串行口 和全双工串行口 按照串行进行交换的方式可分为单工串行口,半双工串行 口和全双工串

13、行口。(9Q314) 单工串行口:只能发送。 双工串行口:既能发送,又能接受。 半双工:发送和接受不能同时进行。 全双工:发送和接受可以同时进行。285.2.1 串行通信的两种基本方式 异步传送方式:发送端与接受端可以有各自的时 钟来控制数据的发送和接收,这两个时钟源彼此 独立,互不同步。字符的发送是随机进行的,因 而,在异步通信时,对传送的字符必须规定一定 的格式。 同步传送方式:发送时钟和接收时钟保持严格同 步。29异步传送方式一个字符在异步传送中又称为一帧数据,一帧数据由四部分组 成: 起始位:为逻辑“0”信号,占用一位,用来通知接收设备,一 个新的字符开始了。 数据位:紧跟着起始位的是

14、 58 位数据的最低位 LSB。异步 传送规定低位在前,高位在后。 30异步传送方式奇偶位:紧跟在数据最高位 MSB 之后,占用一位,奇偶校验 时,根据协议置“1”或“0”(可省去)。 停止位:为逻辑“1”信号,可占用一位,也可占用两位。接收 端收到停止位时,表示一帧数据结束。同时为接收下一帧数据 作好准备,只要再收到一个逻辑“0”就是一个新字符开始了。31异步传送方式因此,在异步通信时,收发双方需达成协议,一是规定 字符格式:即采用几位数据,是否要奇偶校验位,是奇校验 还是偶校验,几位停止位等。二是规定波特率,以及时钟频 率与波特率之间的比例关系等。 由于异步通信按即定的字符格式和波特率传送

15、数据,因 而硬件线路简单,实现方便。缺点是数据帧中要插入起始位 和停止位等附加位以实现同步,从而降低了有效数据位的传 送速率。32同步传送方式 发送时钟和接收时钟保持严格同步。 数据块传递开始有12个同步字符来指示。 同步传送的数据一般叫信息帧,信息帧由“ 同步字符+一串数据字符+校验字符”组成。 同步传送的传送速度快,但硬件要求高。331. 数据缓冲器SBUF 串行口有两个物理空间上各自独立的发送缓冲器(只写不读) 接收缓冲器(只读不写) 它们使用了同一地址99H,(一般还是用其标 号SBUF),通过不同的指令就可以分别访问 这两个缓冲器。 接受缓冲器是双缓冲的,以避免两帧数据的重叠 问题。5.2.2 MCS-51串行口结构342.串行口控制寄存器SCON和PCON1:SCON各位的定义35

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

当前位置:首页 > 中学教育 > 教学课件

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