单片机专题七IO口定时器计数器.ppt

上传人:本田雅阁 文档编号:2309047 上传时间:2019-03-19 格式:PPT 页数:81 大小:1.86MB
返回 下载 相关 举报
单片机专题七IO口定时器计数器.ppt_第1页
第1页 / 共81页
单片机专题七IO口定时器计数器.ppt_第2页
第2页 / 共81页
单片机专题七IO口定时器计数器.ppt_第3页
第3页 / 共81页
亲,该文档总共81页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《单片机专题七IO口定时器计数器.ppt》由会员分享,可在线阅读,更多相关《单片机专题七IO口定时器计数器.ppt(81页珍藏版)》请在三一文库上搜索。

1、计算机硬件技术基础,专题六外部中断源的扩展(三) 专题七MCS51内部的I/O和定时器(一) 第12讲,主讲教师:赵晓安,重点、难点,重点: 1) MCS-51内部并行I/O口及应用 2) 定时器/计数器的组成 3) 定时器/计数器的控制、工作方式 难点: 1) 中断嵌套程序设计,教 学 要 求,1掌握: MCS-51内部并行I/O口及其应用程序设计 MCS-51的中断嵌套程序设计 3) MCS-51定时器/计数器的组成、控制、工作方式 2. 熟悉: 1) 内部I/O口兼作对外扩展的三总线 3.了解: 中断源的扩展 使用硬件申请软件查询法扩展外部中断源,讲 课 进 程,专题五 输入输出和中断(

2、三) 5.5 MCS-51对中断源的扩展 5.5.1 借用定时器溢出中断扩展外部中断源 5.5.2 硬件申请软件查询法扩展外部中断源 专题六MCS-51内部的I/O口、定时器及其应用 6.1 MCS-51内部并行I/O口及应用 6.1.1 P0口 6.1.2 P1口 6.1.3 P2口 6.1.4 P3口 6.1.5 MCS-51内部并行I/O口的应用 1. “读锁存器”和“读引脚”的指令 2. P0 、P2、 P3口复用作为片外扩展系统的系统总线 3. 直接输入/输出(例6-1) 4. 补充 P1 中断方式输入输出, /INT1 定义为高级,/INT0为低级。,6.2 MCS-51定时器/计

3、数器 6.2.1 定时器/计数器的组成 1.定时方式 2.计数方式 6.2.2 定时器/计数器的控制 1.TMOD 2. TCON 6.2.3 定时器/计数器的工作方式 1.方式0 2.方式1,作 业,思考题: P173 5-16 5-17 5-18 5-19 5-20 P228 6-1 6-4,55 MCS-51对外部中断源的扩展,通常MCS-51扩展外部中断源有三种方法: 1、借用定时器/计数器溢出中断扩展外部中断源; 2、采用硬件申请软件查询法扩展外部中断源; 3、采用8259A扩展外部中断源。 这里介绍前面两种比较简单可行的方法。,1、借用定时器/计数器溢出中断扩展外部中断源,MCS-

4、51单片机内部的定时器/计数器是16位的,当定时器从全“1”变为全“0”时,会向CPU发出溢出中断请求。 根据这一原理,可把内部不用的定时器/计数器借给外部中断使用,以达到扩展一个(或二个)外部中断源的目的。,2、采用硬件申请软件查询法扩展外部中断源,如果MCS-51需要扩展的外部中断源较多时,借用定时器/计数器溢出中断来扩展外部中断源已不能满足实际外部设备的需要,此时可用硬件申请软件查询法来扩展外部中断源。 硬件申请软件查询法,原则上可处理任意多个外部中断源,现举例说明。,专题七MCS-51内部的I/O口、定时器及其应用,6.1 MCS-51内部并行I/O口及应用 6.1.1 P0口 6.1

5、.2 P1口 6.1.3 P2口 6.1.4 P3口 6.1.5 MCS-51内部并行I/O口的应用 6.2 MCS-51定时器/计数器 6.2.1 定时器/计数器的组成 6.2.2 定时器/计数器的控制 6.2.3 定时器/计数器的工作方式 6.3 MCS-51串行I/O口及串行通信,本专题重点内容和要求,本章重点讨论MCS-51单片机内部的资源的原理及其应用 并行I/O口 定时器/计数器 串行I/O 口,基本要求: 掌握 P0P3的特性及其应用 掌握T/C的原理、工作方式、程序设计方法及应用 学会综合运用 了解串行口的原理、制式,63 MCS-51串行I/O口及串行通信,第六章 MCS-5

6、1内部的I/O口、定时器及其应用,6. 1 MCS-51内部的并行I/O口及应用,62 MCS-51的定时器/计数器,611 P0口 612 P1口 613 P2口 614 P3口 615 MCS-51内部并行I/O口的应用,6.1 MCS-51内部的并行I/O口及应用,621 定时器/计数器的组成 622 定时器/计数器的控制 6. 2. 3 定时器的四种工作方式 624 T/C的初始化 625 定时器/计数器的溢出校准和实时读取 626 应用举例,62 MCS-51的定时器/计数器,63 MCS-51串行I/O口及串行通信,631 串行通信基础知识,一、并行通信与串行通信,二、异步通信和同

7、步通信,三、串行通信的制式,8051单片机内部有四个8位并行I/O口: P0、P1、P2和P3 P0P3这4个并行I/O口都可以作准双向通用I/O口 P0、P2和P3口还有复用的第二功能 每个口都包含: 一个(8位)锁存器(即特殊功能寄存器P0P3) 一个输出驱动器 和两个三态缓冲器,6.1 MCS-51内部的并行I/O口及应用,6.1.1 P0口,功能: 控制=0: P0口可作通用I/O口,是漏级开路的。因此必须外接上拉电阻,以保证“1”信号正常输出。 控制=1: P0口分时作为地址/数据总线使用。 内部结构:如图所示,当外部扩展存储器或I/O口时,由EA、PC指针从外部程序存储器取指令码、

8、执行指令MOVC、MOVX时,控制信号=1,使MUX与反向器3连通,作分时地址/数据总线。,6.1.2 P1口,功能: P1口作通用I/O口 P1口也是一个“准双向”口,作输入口时要先将输出驱动管截止。 即先执行一条指令 MOV P1,#0FFH 内部结构:如图所示,6.1.3 P2口,功能: 控制=0: P2口用作通用I/O口 与P1口类似 控制=1: P2口用作高8位地址总线 内部结构: 如图所示,6.1.4 P3口,615 MCS-51内部并行I/O口的应用,“读锁存器”和“读引脚”的指令,P0、P2、P3口复用作片外扩展系统的系统总线,输入/输出,一、“读锁存器”和“读引脚”的指令 1

9、“读锁存器”的指令 P0P3作目的操作数的指令,能实现“读修改写”口锁存器的操作,这类指令有: (1)字节操作指令 (2) 位操作指令 ANL Px, JBC PX.Y,rel ORL Px, CPL PX.Y XRL Px, CLR PX.Y DEC Px SETB PX.Y DJNZ Px , rel MOV PX.Y,C INC Px 其中:X是口的序号03,Y是位的序号07,P0P3编程和使用的方法,2 “读引脚”的指令 “读引脚”指令的特点是:P0P3 作为源操作数出现在指令中,但在读引脚数据之前,必须对所读的口或口位的D锁存器写入“1” . 要正确读引脚数据,必须先写一条MOV P

10、X,#0FFH指令或能对所读的口或口位的D锁存器写入“1”的指令,而后紧接着写下面的指令 : (1) 字节操作指令 MOV A,Px ANL A,PX MOV direct,Px ORL A,PX XCH A,PX XRL A,PX PUSH PX ANL direct,PX ADD A,PX ORL direct,PX ADDC A,PX XRL direct,PX SUBB A,PX,引脚信号,(2)位操作指令 同理,必须先写一条SETB PX.Y或能对所读口位的D锁存器写入“1”的指令,在其后再紧跟如下指令。 MOV C, PX.Y ANL C,PX.Y ORL C,PX.Y JNB P

11、X.Y,rel JB PX.Y,rel,P0、P2、P3口复用作片外扩展系统的系统总线,无条件输入/输出程序 查询输入/输出程序 中断输入/输出程序,三、直接输入/输出,例6-1 简单开关量的输入/输出,1) P1.7P1.4并行输出程序 通过驱动P1.7P1.4输出,使LED3LED0巡回显示,程序如下: ORG 0000H MAIN1:MOV SP,#6FH MOV A,#0FFH MOV P1,A ANL A,#0EFH LOOP: MOV P1,A ;P1.4=0 ACALL DLY RL A JB ACC.0, LOOP MOV A,#0EFH SJMP LOOP,;延时子程序 DL

12、Y: MOV R6,#0FH DLY1: MOV R5,#0FFH DLY2: MOV R4,#0FFH DLY3: DJNZ R4,DLY3 DJNZ R5,DLY2 DJNZ R6,DLY1 RET END,LED “0”亮 “1”灭,(2) 查询输入/输出程序 读入P3.0引脚上的开关K4的预置状态,若P3.0=1,则驱动P1.7输出使LED3闪亮一段时间;否则,查询等待。参考程序如下: ORG 0200H MAIN3: MOV SP,#60H SETB P1.7 WAIT: JNB P3.0,WAIT MOV R7,#0FH LOOP: CPL P1.7 ACALL DLY DJNZ

13、R7,LOOP SJMP WAIT END,621 定时器/计数器的组成 622 定时器/计数器的控制 6. 2. 3 定时器的四种工作方式 624 T/C的初始化 625 定时器/计数器的溢出校准和实时读取 626 应用举例,62 MCS-51的定时器/计数器,62 MCS-51的定时器/计数器,在单片机实时应用系统中,需要定时和对外部事件计数的功能 。 定时:对周期已知的脉冲信号计数 计数:对外部事件计数,对周期未知的外来脉冲信号计数 定时方法: 采用软件延时占用CPU的时间,降低了CPU的使用效率; 定时或计数方法: 采用专门的硬件电路,参数调节不便; 采用可编程的定时器/计数器是最好的

14、方法。 可以方便灵活地修改定时或计数的参数或方式 与CPU并行工作,大大提高了CPU的工作效,6.2.1 定时器/计数器的组成 Timer/ Counter,MCS-51单片机内部有二个16位的可编程的定时器/计数器: 定时器/计数器0(T/C0) 定时器/计数器1(T/C1) 它们都有定时和对外部事件计数的功能,可用于定时控制、延时、对外部事件检测和计数等场合.,T/C0和T/C1的结构及与CPU的关系如图6-3所示。,结构组成: T/C0由两个8位的TH0(8CH)和TL0(8AH)组成 T/C1由TH1(8DH)和TL1(8BH)组成 软件设置: 计数初值: 对TH1、TL1 、TH0、

15、和TL0的初始化编程 工作方式: 通过TMOD和 TCON对每个T/C设置定时或计数 特殊功能寄存器 TMOD(Timer Mode Register) TCON(Timer Control Register ) THx 存放计数初值的高8位 TLx 存放计数初值的低8位,定时器/计数器(T/C0和T/C1)的组成,T/C0和T/C1都是16位的加1计数器,方式0,方式1,方式2,方式3,TH0,TL0,T/C1,TH1,TL1,T/C0,方式3 串行口 波特率发生器,共同点:都是通过计数器计脉冲的个数来实现的,定时方式与计数方式的主要区别,1、定时方式 T/C计数8051内部机器周期信号的个

16、数 ,由计数个数可以计算出定时时间 。 每个机器周期使T/C的计数器增加1,直至计满回零后自动产生溢出中断请求,表示定时时间到 。 f=12MHz, 一个机器周期是1 s,2、 计数方式 T/C计数来自引脚T0(P3.4)和T1(P3.5)的外部脉冲信号的个数。 输入脉冲由1变0的下降沿时,计数器的值增加1直到回零产生溢出中断,表示计数已达预期个数。 最高计数频率为振荡频率的1/24。 即计数周期=2机器周期。,不同点:,6.2.1 定时器/计数器的控制,定时器/计数器的工作由TCON和TMOD控制 由软件把控制字写入TCON和TMOD,用来设置T/C0和T/C1的工作方式和控制功能。 当80

17、51系统复位时,TCON和TMOD所有位都被清0。 一、工作模式寄存器TMOD(89H) TMOD用于控制T/C0和T/C1的工作模式,其各位的定义格式如下:,其中,低4位用于T/C0,高4位用于T/C1。各位功能如下:,3GATE 门控位(控制启动方式) GATE0时,T/C的启动只要用软件使TR0(或TR1)置1即可,而不管/INT0(或/INT1)的电平是高还是低。 GATE1时,只有/INT0(或/INT1)引脚为高电平且由软件使TR0(或TR1)置1时,才启动T/C工作。 也就是T/C的启动受双重控制。 注意:TMOD不能位寻址,只能由字节设置T/C的工作方式, 低半字节设定T/C0

18、,高半字节设定T/C1。,二、 控制寄存器 TCON(88H) 控制寄存器 TCON除可字节寻址外,各位还可位寻址。各位定义及格式如下:,1) TF1(TCON.7) T/C1的溢出标志位。 当T/C1被允许计数后,T/C1从初值开始加1计数,回零时由高位产生溢出,由硬件自动置TF1为“1”,并向CPU请求中断,当CPU响应并进入中断服务程序后,TF1又被硬件自动清0。TF1也可以由程序查询和清0。 2)TF0(TCON.5) T/C0溢出标志位。其功能同TF1。,3) TR1(TCON.6) T/C1运行控制位。 由软件置位或复位。 当GATE(TMOD.7)为0时, TR1 为1时,启动T

19、/C1计数; TR1为0时, 停止T/C1计数。 4) TR0(TCON.4) T/C0运行控制位。 其功能同TR1,只是GATE 为TMOD.3。 5) IE1、IT1、IE0、IT0(TCON.3TCON.0) 外部中断INT1、INT0的中断标志位和申请信号的触发方式控制位。,6. 2. 3 定时器的四种工作方式, TMOD中控制位C/T设置定时或计数功能 M1、M0位的设置选择四种工作方式, 即方式0、方式1、方式2和方式3 方式0、1和2时,T/C0和T/C1的工作相同; 方式3时,T/C0和T/C1的工作不同。,方式0 高8位和低5位的一个13位计数器的运行方式 当TL1的低5 位

20、溢出时,向TH1进位,而TH1溢出(回零)时向TF1标志进位(硬件置位TF1),并申请中断。还可以通过查询TF1是否置位来判断TH1是否回零溢出。图6-5,启动控制 BTR1A TR1(INT1+GATE ),举例:利用GATE位测正脉冲的宽度,方式1 方式1是一个16为定时器/计数器,见图6-6。 方式1的结构几乎与方式0完全一样,唯一的差别是:方式1中的TH1(TH0)和TL1(TL0) 均是8位的,构成16位计数器。,方式2 在方式2时,T/C被拆成一个8位的寄存器TH1(TH0)和一个8位计数器TL1(TL0),两者构成可以自动重装载的8位T/C,如图6-7所示。,每当它计满回零时 一

21、方面向CPU发出溢出中断请求, 另一方面从TH1(或TH0)中重新获得初值并启动计数; 也就是CPU 自动将TH1(或TH0)中存放的初值重新装回到TL1(或TL0),并在此初值的基础上对TL1(或TL0)开始新一轮计数,周而复始,直到下一个停止计数或更改工作方式命令为止。,6.2.4 T/C的初始化 1. 初始化的步骤 MCS-51内部的T/C是可编程的,其工作方式和模式通过程序进行设定和控制,称为对T/C的初始化。初始化的步骤是: 1) 确定工作方式; 2) 给TMOD送一个方式控制字。 3) 计算计数初值/定时初值,并写入TH0、TL0或 TH1、TL1中。 4) 根据需要,置位EA使C

22、PU开放中断,同时置位ETx允许T/C中断。IP设定中断优先级。 5) 给TCON送命令控制字,即置位TRx启动T/C计数。,2计数器初值的计算 T/C在计数模式下,计数之前必须给它的计数器TH0、TL0或TH1、TL1选送计数初值。T/C的计数器是在计数初值的基础上加1计数的,当计数器回“0”时自动产生溢出,置位TFx中断标志,向CPU 提出中断请求。 设需要计数器计数的个数为 X,计数初值为C,由此可得出如下计算计数初值的通式: 计数初值: C M - X (61) 式中,M为计数器的模值,该值和计数器的工作方式有关。 当方式0时 M 当方式1时 (62) 当方式2、3时,3定时器初值计算

23、 在定时模式下,计数器对单片机振荡频率fosc经12分频后的机器周期进行加1计数,用X表示计数个数,M表示模,C表示定时初值, Tcy表示机器周期,则 1 Tcy 12/fosc,因此, 定时时间T的计算公式为: T XTcy ( M-C)Tcy (63) 定时初值公式为: C M - T/ Tcy (64) 定时器的溢出率 1/T fosc/(12X) fosc/(12 (M-C) (65) 应用举例1 举例2 GATE,例6-2 利用T/C0方式0产生1ms的定时,在P1.0引脚上输出周期为2ms的方波。设单片机晶振频率fosc 12MHZ。 解: (1)确定T/C0的工作方式 要在P1.

24、0输出周期为2ms的方波,只要使P10每隔1ms取反一次即可。 (2)送T/C0的方式控制字 (TMOD)00H,即T/C0定时,方式0,只由TR0启动,因为T/C1不用,高4位取0。即: GATE C/T M1 M0 GATE C/T M1 M0 0 0 0 0 0 0 0 0 TR0 定时 方式0 , T/C1不用各位均取0 启动,(3)计算定时初值 Tcy12/fosc12/(12106 )S1s 计数个数 : X1ms/1s1000 定时初值: C( -X) 8192-1000 7192D 1C18H 11100000 11000B 高8位0E0H 低5 位18H TH0初值为0E0H

25、,TL0初值为18H 。 若采用方式1,16位,则 定时初值: C 65536-1000 64536 FC18H TH0初值为0FCH,TL0初值为18H,(4) 编程方法 可以采用中断或查询两种方式编写程序。 1) 中断方式: 当T/C0定时溢出时,TF0被置1,申请中断。编程使CPU采用响应中断方式输出方波效率比较高。 程序清单:,ORG 0000H AJMP MAIN ; 转到主程序MAIN ORG 000BH AJMP TC0S ; 转到T/C0的中断服务程序TC0S 主程序: ORG 1000H MAIN: MOV SP,#6FH MOV TMOD ,#00H ;置T/C0为方式0,

26、定时。 MOV TH0,#0E0H ;送计数初值 MOV TL0,#18H SETB ET0 ;T/C0允许中断 SETB EA ;CPU开中断 SETB TR0 ;启动T/C0定时 HERE: SJMP HERE ;等待中断 中断服务程序: ORG 1200H TC0S: MOV TH0,#0E0H ;重新装入计数初值 MOV TL0,#18H CPL P1.0 ;输出方波 RETI ;中断返回 END,ORG 0000H MOV TMOD,#00H MOV TH0,#0E0H MOV TL0,#18H SETB TR0 LOOP:JBC TF0,DO1 SJMP LOOP DO1:MOV

27、TH0,#0E0H MOV TL0,#18H CPL P10 SJMP LOOP END,2) 查询方式: 还可以使CPU采用查询TF0的方式处理T/C0定时溢出,编程简单,但效率较低。 程序中查询采用JBC TF0,DO1 指令,目的是当判到TF01后,必须用软件复位TF0,为下次计数器回零溢出做好准备,这条指令具有判TF0为1后清零的双重功能。,例6-5 利用GATE门控位测量从INT1引脚输入的正脉冲宽度。解:1. 确定工作方式 (1)送方式控制字 (TMOD)1001 0000B90H ; T/C1定时,方式1 ,GATE1 。 (2)计算初值 由于被测正脉冲宽度未知, 假设宽度= 6

28、5.536ms,fosc12MHz ,则: 计数个数:X65536(最大) 定时初值:C65536-X65536-655360, (TH1)00H,(TL1)00H。,对P3.3(INT1)引脚输入的脉冲采用查询的方法。 P3.3 (INT1) 被测脉宽 置1 TR1 TH1TL1从0开始计数 清0 TR1,停止T/C1计数 图6-12 脉冲测试原理,(3)编程方法,ORG 0000H MAIN: MOV SP,#6FH MOV TMOD,#90H MOV TL1,#00H MOV TH1,#00H LOOP: JB P3.3,LOOP SETB TR1 LOOP1:JNB P3.3,LOOP

29、1 LOOP2:JB P3.3,LOOP2 CLR TR1 MOV 30H,TL1 MOV 31H,TH1 ACALL Calc ;计算子程序略 ACALL DIR ;显示子程序略 SJMP $ END,程序清单:,6.2.4 定时器/计数器的溢出校准和实时读取,为什么要对 定时器/计数器的溢出校准? 8051内部定时器/计数器当计数器回零溢出后, A 一方面置位TF0/TF1中断标志,申请中断; A 另一方面,方式0、1、3在未再次装入计数初值时,计数器会自动从0值重新开始计数。 如果要求反复计数或定时,由于CPU响应中断和重新装入初值都需要时间,这样会给计数或定时带来误差。 对于单级中断的

30、系统,一般中断延时可以忽略,但在时间上要求确实很严格的应用场合,必须精确计入这些延时,这时需要对定时器溢出校准。,若在单级中断的系统中,CPU响应中断至少用3个机器周期,若有其它指令的延误,则延误时间不易计算。可采用以下程序段来校准。 例如,T/C1方式1,定时1MS中断,fosc12MHz,则定时初值为: 65536- 1MS/1s 65536-10000FC18H 既是-1000的补码。,校准方法:,CLR EA 1 ;禁止所有的中断 CLR TR1 1 ;停止T/C1计数 MOV A,#LOW(-1000+7)1 ;取低8位校准码 ADD A,TL1 1 ;校准码加TL1中的当前值 MO

31、V TL1,A 1 ;要重装入的校准后的低8位初值 MOV A,#HIGH(-1000+7 ) 1 ;取高8位校准码 ADDC A,TH1 1 ;校准码加TH1中的当前值 MOV TH1,A 1 ;要重装入的校准后的高8位初值 SETB TR1 1 ;启动T/C1 ,(-1000+7+3+2+),扩大计数个数和定时时间,例6-6 利用MCS-51单片机的T/C,产生电子时钟的1S基时,并且由P1.7输出2S的方波。Fosc12MHz。,焦点: 16位计数器最大定时65.536ms,要产生比这个时间长的定时,怎么办? 1、两个定时器级联 2、硬件定时加软件计数相结合。,一个T/C定时,回0溢出时

32、,使P1.0输出一个负脉冲送到另一个T/C的外部脉冲输入端用以计数。 当fosc12MHz时,最大时间可以达到: T (6553665536)1s 4294967296s 4294967.296ms 4294.967296S。 若再与软件计数相结合,会产生更长的时间。,两个T/C级联的方法:,具体程序见实验讲义,ORG 8000H LJMP MAIN ORG 800BH LJMP TC0SV ORG 801BH LJMP TC1SV ORG 8100H MAIN: MOV SP,#70H MOV TMOD,#61H MOV TH1,#0FBH MOV TL1,#0FBH MOV TH0,#4C

33、H;T0 定时50MS,中断一次。 MOV TL0,#00H SETB ET1 SETB ET0 SETB EA SETB TR0 SETB TR1 MOV R2,#0 SETB P1.0 SETB P1.7 SJMP $,TC1SV: INC R2 CJNE R2,#2,NEXT MOV R2,#0 CPL P1.7 NEXT: RETI TC0SV: MOV TH0,#4CH MOV TL0,#00H CPL P1.0 RETI END,一、并行通信与串行通信,通信的基本方式有两种: 1、并行通信数据的各位同时传送,并行通信的特点是: 传送速度快、效率高。但有多少数据位就需多少根数据线,因

34、此传送成本高。 在集成电路芯片的内部、同一插件板上各部件之间、同一机箱内各插件板之间等的数据传送都是并行的。 并行通信的距离通常小于30米。,串行通信的特点是: 数据传送按位顺序进行,最少只需一根传输线即可完成,成本低但速度慢,在图中可以看到,并行传送8位数只需串行发送一位的时间1T。 计算机与远程终端或终端与终端之间的数据传送通常都是串行的。 串行通信的距离可以从几米到几千公里。,2、串行通信数据一位一位顺序传送,二、异步通信和同步通信,按照串行数据的同步方式, 串行通信又分为两种方式:,在单片机中,主要使用异步通信方式.,异步通信,同步通信,在异步通信中,数据通常是以字符(字节)为单位组成

35、字符帧传送的。 字符帧由发送端一帧一帧地发送,通过传输线由接收设备一帧一帧地接收。 发送端和接收端可以有各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。 在异步通信中,发送端和接收端依靠字符帧格式规定和波特率来协调数据的发送和接收。 字符帧格式和波特率是两个重要指标,由用户根据实际情况选定。,1 异步通信(Asynchronous Communication),字符帧也叫数据帧,起始位、数据位、奇偶校验位和停止位四部分组成。,1) 在这种格式标准中,信息的两种状态: “mark”:译为“标记”或“传号”,对应逻辑状态。 在发送器空闲时,数据线应保持在mark状态; “spac

36、e”:译为“空白”或“空号”,对应逻辑状态。,字符帧格式,2)起始位:位于字符帧开头,占一位,使数据线处于“space”( 逻辑) 状态,用于向接收设备表示发送端开始发送一帧信息。 3)数据位:紧跟起始位之后就传送数据位。在数据位中,低位在前(左),高位在后(右)。根据字符编码方式的不同,数据位可取5位、6位、7位或8 位。 若传送数据为ASCII码,则常取7位。 4) 奇偶校验位:位于数据位之后,仅占一位,用于对字符传送作正确性检查。奇偶校验位有3种可能的选择:奇、偶或无校验,由用户根据需要选定。 5)停止位:位于字符帧末尾,它对应于“mark”(逻辑1)状态,用于向接收端表示一帧字符信息已

37、发送完毕。停止位可以是1、1.5或2位,在实际应用中由用户根据需要确定。,波特率(baud rate), 波特率的定义:是每秒钟传送二进制数码的位数 ( 亦称比特数),单位是b/s(bit per second),即位/秒。 字符的实际传送速率:是指每秒钟内所传字符帧的帧数, 与字符帧格式有关。 字符的实际传送速率与波特率不同。 波特率是串行通信的重要指标,用于表征数据传送的速率。 波特率越高,数据传输速度越快。 位时间:每位的传送时间定义为波特率的倒数。 例如,波特率为2400b/s的通信系统,其位时间Td为: Td=1/2400b/s=0.417ms,同步通信是以一种连续串行传送数据的通信

38、方式,一次通信只传送一帧信息。 这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符,如图6-16所示。 分为单同步信息帧结构和双同步信息帧结构。它们都是由同步字符、数据字符和校验字符三部分组成。,2、同步通信(Synchronous Communication),(a)单同步信息帧结构; (b) 双同步信息帧结构,同步字符: 位于帧结构的开头,用于确认数据字符的开始。 由于接收端不断对传输线采样,并把采样到的字符与双方约定的同步字符比较,只有比较成功后才会把后面接收到的字符数据加以存储。 数据字符:在同步字符之后,个数不受限制, 由所传送的数据块长度决定。 校验字符CRC:位于帧结构

39、末尾,有12个, 用于接收端对接收到的数据字符的正确性校验。 关于同步字符: 在单同步信息帧结构中,常采用ASCII码中规定的SYN(即16H),在双同步信息帧结构中,一般采用国际通用标准代码EB90H。除了可以采用统一的标准格式外,还可以由用户约定。,异步通讯与同步通信的比较,异步通信 优点:不需要传送同步脉冲,字符帧的长度也不受限制,故所需设备简单。 缺点:字符帧中因包含有起始位和停止位而降低了有效数据的传输速率。,同步通信 优点:数据传输速率较高,通常可达56000b/s或更高。 缺点:要求发送时钟和接收时钟保持严格的同步,故发送时钟除应和发送的波特率保持一致外,还要求把它同时传送到接收

40、端去。,在串行通信中,数据是在两个不同的站之间传送的。按照数据传送的方向,串行通信可分为3种制式:,三、串行通信的制式,半双工,单工,全双工,A端(或B端)固定为发送站,B端(或A端)固定为接收站,数据只能从A站(或B端)发至B站(或A端),数据传送是单向的,因此,只需要一条数据线。,单工 (Simplex)制式,数据传送是双向的,但任一时刻数据只能是从A站发至B站,或者从B站发至A站,也就是说只能是一方发送另一方接收。因此,A、B两站之间只要一条信号线和一条接地线。收发开关是由软件控制的,通过半双工通信协议进行功能切换。,半双工(Half Duplex)制式,数据传送也是双向的。A、B两站都可以同时发送和接收数据。因此,工作在全双工制式下的A、B两站之间至少需要三条传输线,一条用于发送,一条用于接收和一条用于信号地线。,全双工(Full Duplex)制式,MCS-51单片机内的串行口采用全双工制式,专题七结束,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1