单片微机原理及应用:第2章 MCS-51系列单片机的硬件结构

上传人:s9****2 文档编号:570306518 上传时间:2024-08-03 格式:PPT 页数:205 大小:4.65MB
返回 下载 相关 举报
单片微机原理及应用:第2章 MCS-51系列单片机的硬件结构_第1页
第1页 / 共205页
单片微机原理及应用:第2章 MCS-51系列单片机的硬件结构_第2页
第2页 / 共205页
单片微机原理及应用:第2章 MCS-51系列单片机的硬件结构_第3页
第3页 / 共205页
单片微机原理及应用:第2章 MCS-51系列单片机的硬件结构_第4页
第4页 / 共205页
单片微机原理及应用:第2章 MCS-51系列单片机的硬件结构_第5页
第5页 / 共205页
点击查看更多>>
资源描述

《单片微机原理及应用:第2章 MCS-51系列单片机的硬件结构》由会员分享,可在线阅读,更多相关《单片微机原理及应用:第2章 MCS-51系列单片机的硬件结构(205页珍藏版)》请在金锄头文库上搜索。

1、本讲主要内容:本讲主要内容:2-1. 2-1. 总体概况总体概况2-2. 2-2. 微处理器微处理器2-3. 2-3. 存储器存储器2-4. 2-4. 定时器定时器/ /计数器计数器2-5. 2-5. 并行和串行输入并行和串行输入/ /输出接口输出接口2-6 2-6 中断系统中断系统1Xinjiang University第第2 2章章 MCS-51MCS-51系列单片机的硬件结构系列单片机的硬件结构主讲内容主讲内容2.1 2.1 总体概述总体概述一、 主要功能 51子系列的主要功能为: (1)8位CPU (2)片内带振荡器,振荡频率fosc范围为1.212MHz (3)128个字节的片内数据

2、存储器。 (4)4K字节的片内程序存储器 (8031无)。 (5)程序存储器的寻址范围为64K字节。 (6)片外数据存储器的寻址范围为64K字节。 (7)21个字节专用寄存器。 (8)4个 8位并行I/O接口:PO, Pl. P2. P3 (9)1个全双工串行 I/O接口,可多机通信。 (10)2个 16位定时器/计数器。 (11)中断系统有 5个中断源,可编程为两个优先级。 (12)111条指令,含乘法指令和除法指令。 (13)有强的位寻址、位处理能力。 (14)片内采用单总线结构。 (15)用单一+5V电源。2Xinjiang University2.1 2.1 总体概述总体概述三、外部引

3、脚说明三、外部引脚说明P1口P3口P0口P2口时钟端复位端控制信号接VCC(+5V)接地端3Xinjiang University2.1 2.1 总体概述总体概述串行通信接口全双工1个ROMTXDRXD中断系统并行通信接口48bit定时/计数器n16bitRAM时钟电路CPU总线控制5151架构架构(51Architecture)4Xinjiang University1I/OI/O口线功能口线功能4 4个个8 8位并行位并行 I/O I/O 接口引脚接口引脚 P P0.00.0P P0.70.7 、P P1.01.0P P1.71.7 、P P2.02.0P P2.72.7和和 P P3.0

4、3.0P P3.73.7 为多功能引脚,可自动切换用作数据总线、地址总线、控制总为多功能引脚,可自动切换用作数据总线、地址总线、控制总线和或线和或I/O I/O 接口外部引脚。接口外部引脚。2.1 2.1 总体概述总体概述三、外部引脚说明三、外部引脚说明2控制线控制线(见教材P41-42)ALE/PROGALE/PROG:地址锁存允许信号端地址锁存允许信号端, ,低电平信号为控制锁存低电平信号为控制锁存P0P0输出的输出的低低8 8位地址。位地址。PSENPSEN:外部程序存储器读选通信号端外部程序存储器读选通信号端EAEA/V/VDDDD:程序存储器选择信号端和编程电源输入端程序存储器选择信

5、号端和编程电源输入端( (先片内再片外先片内再片外) )5Xinjiang University2 2控制线控制线RST/VRST/VPDPD:复位信号端和后备电源输入端。复位信号端和后备电源输入端。输入输入10ms10ms以上高电平脉冲,单片机复位使单片机恢复到初始状态。以上高电平脉冲,单片机复位使单片机恢复到初始状态。V VPDPD使用后备电源,可实现掉电保护片内使用后备电源,可实现掉电保护片内RAMRAM的数据的数据。3. 电源及时钟引线电源及时钟引线工作电源:工作电源:V VCCCC、V VSSSS 时钟输入:时钟输入:XTAL1XTAL1、XTAL2XTAL2 。复位电路:复位电路:

6、1 1)上电复位上电复位2 2)外部信号复位)外部信号复位单片机RSTK+5V2001K30F2.1 2.1 总体概述总体概述6表表2-2引脚功能引脚功能7Xinjiang University表表2-2引脚功能引脚功能8Xinjiang University表表2-2引脚功能引脚功能9Xinjiang University2.2 2.2 微处理器微处理器一、运算器 以算术逻辑单元 ALU为核心,含累加器 A、暂存器、程序状态字PSW、B寄存器等。1、ALU 它在控制器所发内部控制信号的控制下进行各种算术操作和逻辑操作。例如:+、算术运算,与、或、非、异或 逻辑运算、循环移位、位处理。 其特点

7、是: 在B寄存器配合下,能完成乘法与除法操作。 可进行多种内容交换操作。 能作比较判跳操作。 有很强的位操作功能。 10Xinjiang University2.2 2.2 微处理器微处理器2 2寄存器阵列寄存器阵列(1)工作寄存器R0R7 (8位)作用:暂存运算数据和中间结果。作用:暂存运算数据和中间结果。 4 4个工作寄存器区,工作寄存器个工作寄存器区,工作寄存器0 0区区3 3区。每个区均含区。每个区均含8 8个寄存器个寄存器R R0 0R R7 7 。用用PSWPSW中的两位中的两位PSW.PSW.4 4和和PSW.PSW.3 3来切换工作寄存器区,选用一个工作寄存器区进来切换工作寄存

8、器区,选用一个工作寄存器区进行读写操作。行读写操作。(见教材(见教材P43,49P43,49)11Xinjiang University2.2 2.2 微处理器微处理器2 2)累加器 累加器A是最常用的专用寄存器。进入ALU作算术操作和逻辑操作的操作数很多来自A,操作结果也常送回A。有许多单操作数指令都是针对A的。 ADD A,ADD A,30H30H; 在指令中,累加器Acc常简写为“A” ADD ADD A, A, 30H; 30H; 该指令的含义是以累加器Acc内容作为被加数,加数存放在内部RAM的30H单元中,相加后的结果,即和再存放到累加器Acc中。3 3)B寄存器寄存器B寄寄存存器

9、器主主要要用用于于乘乘法法和和除除法法运运算算。在在乘乘法法运运算算中中,被被乘乘数数放放在在累累加加器器A中中,乘乘数数放放在在B寄寄存存器器中中,积积的的高高8位位存存放放B寄寄存存器器中中,低低8位位放放在在累累加加器器A中中。也可用作通用寄存器。也可用作通用寄存器。如:如:MULAB;BAAB12Xinjiang University4 4)程序状态字程序状态字)程序状态字程序状态字PSW PSW 教材教材P42-43P42-43 程序状态字程序状态字 PSW是一个8位寄存器,它包含了许多程序状态信息,其各位的含义见图2。b6b5b4b3b2b1b0CyACF0RS1RS0OV-Pb7

10、CyCy:进位标志。在进行加法运算时,当最高位即b7位有进位,或执行减 法运算最高位有借位时,CyCy为1;反之为0。 2.2 2.2 微处理器微处理器13Xinjiang UniversityACAC:辅助进位标志。在进行加法运算时,当辅助进位标志。在进行加法运算时,当b3b3位有进位,或执行减法位有进位,或执行减法运算运算b3b3 位有借位时,位有借位时,ACAC为为1 1,反之为,反之为0 0。设置辅助进位标志。设置辅助进位标志ACAC的目的是为了便于的目的是为了便于 BCDBCD码加法、减法运算的调正。码加法、减法运算的调正。OV:OV: 溢出标志。在计算机内,带符号数一律用补码表示。

11、在溢出标志。在计算机内,带符号数一律用补码表示。在8 8位二进制中,位二进制中, 补码所能表示的范围是补码所能表示的范围是-128-128+127+127,而当,而当运算结果超出这一范围时,运算结果超出这一范围时,OVOV 标志为标志为1 1,即溢出,即溢出;反之为;反之为0 0。 (教材(教材P43P43描述很清楚)描述很清楚)P:P: 奇奇偶偶标标志志。该该标标志志位位始始终终体体现现累累加加器器AccAcc中中“1 1”的的个个数数的的奇奇偶偶性性。 如如果果累累加加器器A A中中“1 1”的的个个数数为为奇奇数数,则则P P位位置置1 1;当当累累加加器器A A中中“1 1”的的个个数

12、数为为偶偶数数( (包括包括 0 0个个) )时,时,P P位为位为“0 0”,即,即MCS-51MCS-51采用奇校验方式。采用奇校验方式。 2.2 2.2 微处理器微处理器14Xinjiang UniversityRS1RS1、RS0RS0:工作寄存器组选择位,:工作寄存器组选择位,以选定以选定4个工作寄存器中的一个组个工作寄存器中的一个组投人工作。投人工作。如下面表格。如下面表格。 表表2.2RS1、RS0与片内工作寄存器组的对应关系与片内工作寄存器组的对应关系RS1RS1RS0RS0寄存器组寄存器组片内片内PAMPAM地址地址通用寄存器名称通用寄存器名称0 00 00 0组组00H00

13、H07H07HR0R7R0R70 01 11 1组组08H08H0FH0FHR0R7R0R71 10 02 2组组10H10H17H17HR0R7R0R70 01 13 3组组18H18H1FH1FHR0R7R0R7软件标志软件标志FOFO: :这是用户定义的一个状态标志。可通过软件对它置位、清零这是用户定义的一个状态标志。可通过软件对它置位、清零; ; 在编程时,也常测试其是否建起而进行程序分支。在编程时,也常测试其是否建起而进行程序分支。2.2 2.2 微处理器微处理器15Xinjiang University例例1 1:2 2个数相加后,分析各标志位的值个数相加后,分析各标志位的值16X

14、injiang University见教材P43,例2-1例例2、将有符号两数相加,即、将有符号两数相加,即01001100加加01100101,标志位各位为何,标志位各位为何值?值?01001100(+76)+01100101(+101)10110001CF=0,PF=0,AC=1,OV=1例例3、将两数相加,即、将两数相加,即01100100加加11010101,标志位各位为何值?,标志位各位为何值?01100100(+100)+11010101(-43)100111001(+57)CF=1,PF=0,AC=0,OV=12.2 2.2 微处理器微处理器17Xinjiang Universi

15、ty作业:1.指出执行下述指令后,相加的结果及C=?P=?OV=?AC=?写出分析过程 MOV AMOV A,#36H#36H ADD A ADD A,#93H#93H2.指出执行下述指令后,相加的结果及C=?P=?OV=?AC=?写出分析过程 MOV A,#10101101BMOV A,#10101101B ADD A,#10011101B ADD A,#10011101B2.2 2.2 微处理器微处理器18Xinjiang University5)数据指针DPTR(16位) 存放片外存储器地址,作为片外存储器的指针。可分成两个存放片外存储器地址,作为片外存储器的指针。可分成两个8 8位寄存

16、器位寄存器DPHDPH、DPLDPL使用使用。由由DPH(DPH(数据指针高数据指针高8 8位位) )和和DPL(DPL(数据指针低数据指针低8 8位位) )组成,用于存组成,用于存放外部数据存储器的存储单元地址。通过放外部数据存储器的存储单元地址。通过DPTRDPTR寄存器间接寻址方式可以访问寄存器间接寻址方式可以访问0000H0000HFFFFHFFFFH全部全部64 KB64 KB的外部数据存储器空间。的外部数据存储器空间。 MOV DPTR,#107FH MOV DPTR,#107FH MOVX DPTR,A MOVX DPTR,A 6 6)堆栈指针)堆栈指针SP(8SP(8位位) )

17、堆栈是按堆栈是按“先进后出先进后出”原则存取数据的存储区。原则存取数据的存储区。MCS-51MCS-51堆栈设在片内堆栈设在片内RAMRAM区。数据入栈区。数据入栈/ /出栈时,出栈时,SPSP自动加自动加1/1/减减 1 1,其内,其内容始终为栈顶地址。容始终为栈顶地址。复位时复位时 SP=07HSP=07H。MOVSP,#5FH;将堆栈设在将堆栈设在60H单元之后单元之后2.2 2.2 微处理器微处理器19Xinjiang University7 7)程序计数器)程序计数器PC(16PC(16位位) )CPUCPU总是按总是按PCPC的指示读取程序。的指示读取程序。PCPC可自动加可自动加

18、1 1。因此。因此CPUCPU执行程序一般是执行程序一般是顺序方式。当发生转移、子程序调用、中断和复位等操作,顺序方式。当发生转移、子程序调用、中断和复位等操作,PCPC被强制改写,被强制改写,程序执行顺序也发生改变。程序执行顺序也发生改变。复位时,复位时,PC=0000HPC=0000H。 8 8)I/OI/O端口寄存器端口寄存器 P0 P0、P1P1、P2P2、P3P3口寄存器实际上就是口寄存器实际上就是P0P0P3P3口对应的口对应的I/OI/O端口锁存器,端口锁存器,用于锁存通过端口输出的数据。用于锁存通过端口输出的数据。在计算机中,对于没有定义的位或字节,我们必须注意是否存在物理存在

19、计算机中,对于没有定义的位或字节,我们必须注意是否存在物理存储单元与之对应。当存在物理存储单元与之对应时,用户就可以读写。储单元与之对应。当存在物理存储单元与之对应时,用户就可以读写。2.2 2.2 微处理器微处理器20Xinjiang University2.1 2.1 总体概述总体概述- -内部结构框图内部结构框图21Xinjiang University2.2 2.2 微处理器微处理器二、控制器二、控制器 根据不同指令产生相应操作序列和控制信号。根据不同指令产生相应操作序列和控制信号。三、振荡器和三、振荡器和CPUCPU时序时序 1 1、振荡器、振荡器 协调各协调各功能部件按序工作。MC

20、S - 51MCS - 51系列单片机片内含有一个高增益系列单片机片内含有一个高增益的反相放大器,通过的反相放大器,通过XTAL1, XTAL2XTAL1, XTAL2外接作为反馈元件的晶体后便成为自激外接作为反馈元件的晶体后便成为自激振荡器,接法见图振荡器,接法见图a a。XTAL1单片机单片机XTAL2A:内部时:内部时钟电路;钟电路;b:外部:外部振荡源振荡源22Xinjiang University2.2 2.2 微处理器微处理器2、CPU时序 振荡器输出的振荡脉冲经2分频成为内部时钟信号,用作单片机内部各功能部件按序协调工作的控制信号;其周期称为时钟周期(状态周期)。 机器周期:6个

21、时钟周期构成一个机器周期。 指令周期:CPU执行一条指令的时间。指令周期以机器周期为单位。 分为:单周期、双周期和四周期指令。思考题:设应用单片机晶振频率为12MHz,问机器周期为多少?单周期、双周期和四周期指令指令周期分别为多少?机器周期为机器周期为1s,单指令周期为,单指令周期为1s,双指令周期为,双指令周期为2s,四,四指指令周期为令周期为4s23Xinjiang University2.2 2.2 微处理器微处理器P1,p2:每个时钟周期的两个节拍。每个时钟周期的两个节拍。机器周期包括机器周期包括12个振荡器周期个振荡器周期。ALE脉冲脉冲在每个周期的在每个周期的S1P2至至S2P1,

22、S4P2至至s5p1期间各发生一次。期间各发生一次。24Xinjiang University2.3 2.3 存储器存储器单片机的片内存储器一般既有只读存储器,也有读写存储器。单片机的片内存储器一般既有只读存储器,也有读写存储器。并且可进行并且可进行片外存储器的扩展。书第片外存储器的扩展。书第4545页:表页:表2-32-3。一、程序存储器(ROM)1、编址与访问 计算机工作时是循序执行一条条指令的,为此,设有一个专用寄存器,用以存放将要执行的指令的地址,称为程序计数器 (PC)。 它还具有计数的功能,每取出指令的一个字节后,其内容又自行加 1,指向下一字节的地址,以便依次自程序存储器取指令执

23、行、完成某种程序。MCS一51系列单片机的PC有16位,所以程序存储器的寻址范围可以有64KB。与此相应,程序存储器的编址自0000H开始,最大可至FFFFH。 片内程序存储器的容量远小于该数,通过扩展片外存储器。程序存储器的编址规律为:先片内、后片外,片内,片外连续,二者一般不作重叠。25Xinjiang University2.3 2.3 存储器存储器一、程序存储器(ROM)1、编址与访问 MCS一51系列单片机的程序存储器的寻址范围可以有64KB。与此相应,程序存储器的编址自0000H开始,最大可至FFFFH。 复位后,先执行复位后,先执行片内片内程序存储器的程序(程序存储器的程序(4K

24、),当),当PC中内容中内容超过超过0FFFH(51系列)时,将自动转去执行系列)时,将自动转去执行片片外外程序存储器的程序。程序存储器的程序。 将强令执行将强令执行片外片外程序存储器的程序。程序存储器的程序。EAEA1 1EAEA0 0 2. 特殊存储单元复位入口复位入口: : 0000H 0000H 中断入口中断入口: : 0003H 0003H002BH002BH 程序存储器中有程序存储器中有7个单元留作特殊用途。为单片机的特殊功能个单元留作特殊用途。为单片机的特殊功能提供程序入口地址。提供程序入口地址。EAEA不同电平,选择片内或片外低位存储单元。不同电平,选择片内或片外低位存储单元。

25、26Xinjiang University一、程序存储器(ROM)2.3 2.3 存储器存储器 2. 特殊存储单元系统复位PC的内容 0000H外部中断0服务程序入口地址0003H定时器0中断服务程序入口地址 000BH外部中断1服务程序入口地址0013H定时器1中断服务程序入口地址 001BH串行口中断服务程序入口地址0023H定时器2中断服务程序入口地址 002BH MCS-51系列单片机保留给系统使用的程序存储器地址空间如下:27Xinjiang University一、程序存储器(ROM)2.3 2.3 存储器存储器 复复位位后后,程程序序计计数数器器PCPC为为0000H0000H,

26、即即从从程程序序存存储储器器的的0000H0000H单单元元读读出出第第一一条条指指令令,因因此此可可在在0000H0000H单单元元内内放放置置一一条条跳跳转转指指令令,如如LJMP LJMP XXXX(XXXXXXXX(XXXX表表示示主主程程序序入入口口地地址址) )。由由于于系系统统给给每每一一中中断断服服务务程程序序预预留留了了8 8个个字字节节,因因此此,用用户主程序一般存放在户主程序一般存放在0033H0033H单元以后,如:单元以后,如: ORG 0000H ORG 0000H ;用伪指令;用伪指令ORGORG指示随后的指令码从指示随后的指令码从0000H0000H单元开始存放

27、单元开始存放 LJMP Main LJMP Main ;在;在0000H0000H单元放一条长跳转指令,共单元放一条长跳转指令,共3 3个字节个字节 ORG 0003HORG 0003H LJMP INT0 LJMP INT0 ;跳到外中断服务程序的入口地址;跳到外中断服务程序的入口地址 ;其他中断入口地址初始化;其他中断入口地址初始化 ORG 50H ORG 50H ;主程序代码从;主程序代码从50H50H单元开始存放单元开始存放Main:Main: ;MainMain是主程序入口地址标号是主程序入口地址标号 28Xinjiang University2.3 2.3 存储器存储器29Xinj

28、iang University2.3 2.3 存储器存储器二、数据存储器 P491、编址与访问 MCS一51系列单片机的片内数据存储器除RAM(128B)外、还有特殊功寄存器SFR块(128B)。 片内数据存储器的容量很小,常需扩展片外数据存储器。MCS一51系列单片机有一个数据指针寄存器可用于寻址程序存储器或数据存储器单元,它也有16位,寻址范围也可达64KB。故片外数据存储器的容量可大到与程序存储器一样,其编址都自0000H开始,最大可至 FFFFH。 如只需扩展少量片外数据存储器,容量不超过 256个单元,则也可按 8位二进制数编址,自OOH开始,最大可至FFH。表表2-3内部内部RAM

29、地址空间地址空间字节地址字节地址片内数据存储器片内数据存储器SFRFFH80H片内数据存储器片内数据存储器RAM7FH00H30Xinjiang University2.3 2.3 存储器存储器2、片内数据存储器51子系列单片机片内RAM共分为工作寄存器区、位寻址区、数据缓冲器区等三个区域。(1)工作寄存器(00H1FH) 工作寄存器也称通用寄存器,供用户编程时使用,临时寄存8位信息。由图见它分成4个组,每个组都是8个单元,用作8个寄存器,都以RO一R7来表示。同时只用一组工作寄存器,其他各组不工作、待用。哪一组工作可由程序状态字 RSW中的 RSL RSO两位进行选择。31Xinjiang

30、University表表2.4寄存器与寄存器与RAM地址对照表地址对照表2.3 2.3 存储器存储器32Xinjiang University2.3 2.3 存储器存储器(2)位寻址区 (20H一2FH)单元是位寻址区,该区的每一位都被赋予了一全位地址。可进行位寻址,对特定位进行处理、内容传送或据以判跳,给编程带来方便。通常可把程序中用到的状态标志、位控制变量等放于位寻址区。33Xinjiang University(3)数据缓冲区 30H一7FH是数据缓冲区,即用户RAM区,共80个单元。 由于工作寄存器区、位寻址区、数据缓冲区统一编址 使用同样的指令访问三个区的单元既有自己的独特功能,又可

31、统一调度使用。(4)堆栈与堆栈指针 片内RAM的部分单元还可以用作堆栈。有一个8位的堆栈指针寄存器SP,专用于指出当前堆栈顶部是片内RAM的哪一单元。51单片机系统复位后SP的初值为07H07H,也就是说将从 08H单元开始堆放信息。但是,51系列的栈区不是固定的,只要通过软件改变SP寄存器的值便可更动栈区。2.3 2.3 存储器存储器34Xinjiang University30H30H数据缓冲区数据缓冲区/堆栈区:堆栈区:字节地址:字节地址:30H7FH一般使用一般使用30H7FH位寻址区:位寻址区:字节地址:字节地址:20H2FH位地址为:位地址为:00H7FH工作寄存器区:工作寄存器区

32、:字节地址:字节地址:00H1FH51系列单片机片内RAM的配置35Xinjiang University例如例如:CLR4D2.3 2.3 存储器存储器3、特殊功能寄存器块 特殊功能寄存器也称专用寄存器,专用于控制、管理片内算术逻辑部件、并行I/O口,串行I/O口、定时器/计数器、中断系统等功能模块的工作,用户在编程时可以置数设定,却不能自由移作它用。在51系列单片机中,将各专用寄存器 (PC例外)与片内RAM统一编址,且作为直接寻址字节,可直接寻址。除PC外,51子系列有 18个专用寄存器,其中3个为双字节寄存器,共占用21个字节;52子系列有21个专用寄存器,其中5个为双字节寄存器,共占

33、用26个字节。特殊功能寄存器特殊功能寄存器SFR占用字节地址:占用字节地址:80HFFH (见教材(见教材P50,表格,表格2-7)位寻址寄存器:位寻址寄存器: 其字节地址可被其字节地址可被8整除。整除。 例如:例如:CLR C; MOV C, P1.0n专用寄存器:专用寄存器:A、B、PSW、DPTR、SPnI/O接口寄存器:接口寄存器: P0、P1、P2、P3、SBUF、TMOD、TCON、SCON 36Xinjiang University表表2.6SFR特殊功能寄存器地址表特殊功能寄存器地址表2.3 2.3 存储器存储器37Xinjiang University表表2.6SFR特殊功能

34、寄存器地址表特殊功能寄存器地址表2.3 2.3 存储器存储器38Xinjiang University表表2.6SFR特殊功能寄存器地址表特殊功能寄存器地址表2.3 2.3 存储器存储器39Xinjiang University2.4.1实现定时的方法实现定时的方法软件定时软件延时不占用硬件资源,但占用了软件延时不占用硬件资源,但占用了CPU时间,降低了时间,降低了CPU的利用率。的利用率。例如延时程序。例如延时程序。采用时基电路定时例如采用例如采用555电路,外接必要的元器件(电阻和电容),即可构成硬电路,外接必要的元器件(电阻和电容),即可构成硬件定时电路。但在硬件连接好以后,定时值与定时

35、范围不能由软件进件定时电路。但在硬件连接好以后,定时值与定时范围不能由软件进行控制和修改,即不可编程,且定时时间容易漂移。行控制和修改,即不可编程,且定时时间容易漂移。可编程定时器定时最方便的办法是利用单片机内部的定时器最方便的办法是利用单片机内部的定时器/计数器。结合了软件定时计数器。结合了软件定时精确和硬件定时电路独立的特点。精确和硬件定时电路独立的特点。定时器定时器/计数器计数器如何使用呢?如何使用呢?40Xinjiang University2.4 2.4 定时器定时器/ /计数器计数器 定时器/计数器是MCS一51单片机的重要功能模块之一。在检测、控制及智能仪器等应用中,常用定时器作

36、实时时钟,实现定时检测、定时控制。还可用定时器产生毫秒宽的脉冲,驱动步进电动机一类的电气机械。计数器主要用于外部事件的计数。 一、主要特性 (1)8031/8051/8751单片机有两个可编程的定时器/计数器-定时器/计数器 0与定时器/计数器 1,可由程序选择作为定时器用或作为计数器用,定时时间或计数值也可由程序设定。 (2)每个定时器/计数器都具有4种工作方式,可用程序选择。 (3)任一定时器/计数器在定时时间到或计数值到时,可由程序安排产生中断请求信号或不产生中断请求信号。 (4)8032/8052有3个可编程定时器/计数器,增加了定时器/计数器2。定时器/计数器2有3种工作方式,可用程

37、序选择。41Xinjiang University2.4.2.2.4.2.定时器定时器/ /计数器的结构和工作原理计数器的结构和工作原理定时器/计数器的结构 定时定时器器/ /计数器的计数器的实质是加1计数器(16位),由高,由高8位和低位和低8位两个寄存器位两个寄存器组成。组成。TMOD是定时器是定时器/计数器的工作方式寄存器,确定工作方式和功能;计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制是控制寄存器,控制T0、T1的启动和停止及设置溢出标志的启动和停止及设置溢出标志。T1T1计数器计数器T0T0计数器计数器控制单元控制单元42Xinjiang Universit

38、y定时器定时器/ /计数器的工作原理计数器的工作原理计数器输入的计数脉冲源计数器输入的计数脉冲源系统的时钟振荡器输出脉冲经12分频后产生;T0(P3.4P3.4)或T1(P3.5P3.5)引脚输入的外部脉冲源。计数过程每来一个脉冲计数器加1,当加到计数器为全1(即FFFFH)时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时器/计数器中断允许时)。如果定时器/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。2.4.2.2.4.2.定时器定时器/ /计数器的结构和工作原理计数器的结构和工作原理43Xinjia

39、ng University2.4.2.2.4.2.定时器定时器/ /计数器的结构和工作原理计数器的结构和工作原理定时应用用作定时器:此时设置为定时器模式,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t。例如:单片机晶振频率为12MHz,机器周期为1s,即Tcy = 1s 。当计数值为100时,则定时时间为100s 。定时与计数都是利定时与计数都是利用计数实现!用计数实现!计数运用用作计数器:此时设置为计数器模式,外部事件计数脉冲由T0或T1引脚输入到计数器。每来一个外部脉冲,计数器加1。但单片机对外部脉

40、冲有基本要求:脉冲的高低电平持续时间都必须大于1个机器周期。44Xinjiang University2.4.3.2.4.3.定时器定时器/ /计数器的控制计数器的控制工作方式寄存器(工作方式寄存器(TMOD)GATE:门控位。:门控位。GATE0时,只要用软件使时,只要用软件使TCON中的中的TR0或或TR1为为1,就可以启动定时,就可以启动定时器器/计数器工作;(即需要一个启动条件,计数器工作;(即需要一个启动条件,一般情况下一般情况下GATE=0)GATE1时,要用软件使时,要用软件使TR0或或TR1为为1,同时外部中断引脚也为高电,同时外部中断引脚也为高电平时,才能启动定时器平时,才能

41、启动定时器/计数器工作,即需要两个启动条件。计数器工作,即需要两个启动条件。(见教材见教材P52)C/T:定时定时/计数模式选择位。计数模式选择位。C/T0为定时模式;为定时模式;C/T=1为计数模式。为计数模式。M1M0:工作方式设置位。:工作方式设置位。M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7定时器定时器T1定时器定时器T045Xinjiang University计数器工作方式选择计数器工作方式选择M1M0工工作作方方式式功功能能说说明明00方式方式013位计数器位计数器01方式方式116位计数器位计数器10方式方式2自动重装自动重装8位计数器位计数器

42、11方式方式3定时器定时器0:分成两个:分成两个8位位定时器定时器1:停止计数:停止计数建议不采用该工建议不采用该工作方式!作方式!在精确定时采用在精确定时采用该工作方式!该工作方式!2.4.3.2.4.3.定时器定时器/ /计数器的控制计数器的控制46Xinjiang University控制寄存器控制寄存器TCONTCONTCON的低的低4位用于控制外部中断位用于控制外部中断,在后面介绍。在后面介绍。TCON的高的高4位用于控位用于控制定时器制定时器/计数器的启动和中断申请。其格式如下:计数器的启动和中断申请。其格式如下:(见教材见教材P53)TF1(TCON.7):):T1溢出中断请求标

43、志位。溢出中断请求标志位。T1计数溢出时由硬件自计数溢出时由硬件自动置动置TF1为为1。CPU响应中断后响应中断后TF1由硬件自动清由硬件自动清0。TR1(TCON.6):):T1起起/停控制位。停控制位。1:启动:启动0:停止:停止TF0(TCON.5):):T0溢出中断请求标志位,其功能与溢出中断请求标志位,其功能与TF1类同。类同。TR0(TCON.4):):T0起起/停控制位。停控制位。1:启动:启动0:停止:停止TCON的低4位用于控制外部中断。2.4.3.2.4.3.定时器定时器/ /计数器的控制计数器的控制47Xinjiang University2.4.4定时器定时器/计数器的

44、工作方式计数器的工作方式方式方式0(M1=0,M0=0)方式方式0为为13位计数,由位计数,由TL0的低的低5位(高位(高3位未用)和位未用)和TH0的的8位组成位组成TL0的低的低5位溢出时向位溢出时向TH0进位,进位,TH0溢出时,置位溢出时,置位TCON中的中的TF0标志,标志,向向CPU发出中断请求。发出中断请求。1313位计数器位计数器计数计数/ /定时选择定时选择中断请求中断请求该方式计算不方便,该方式计算不方便,建议不采用!建议不采用!48Xinjiang University方式方式0(M1=0,M0=0) 1. 初值X为0 081918191(2 213 13 -1-1),送

45、给TH0、TL0。计数初值为N=8192-X。 X=8191时的最小计数值为1, X=0时的最大计数值为8192。即计数 范围为1 181928192。 2. 当加法计数器TH0溢出后,必须对TH0、TL0重修设置初值,否则按 从0开始计数。 3.定时时间为T=N*TT=N*TCYCY =(8192-X)* T=(8192-X)* TCYCY2.4.4定时器定时器/计数器的工作方式计数器的工作方式49Xinjiang UniversityTF1TR1TF0TR0GATEC/TM1M0GATEC/TM1M01&110T0引脚INT0引脚10机器周期TH0TL08位8位溢出TCONTMODD0D7

46、D7D0申请中断TF1TR1TF0TR0GATEC/TM1M0GATEC/TM1M01&110T0引脚INT0引脚10机器周期TH0TL08位8位溢出TCONTMODD0D7D7D0申请中断方式方式1(M1=0,M0=1)方式方式1的计数位数是的计数位数是16位,由位,由TL0(TL1)作为低作为低8位、位、TH0(TH1)作为高作为高8位,组成了位,组成了16位加位加1计数器计数器。 1616位计数器位计数器2.4.4定时器定时器/计数器的工作方式计数器的工作方式50Xinjiang University方式方式1(M1=0,M0=1) 1. 初值X为0 06553565535(2 2161

47、61 1),送给TH1、TL1。计数初值为N=65536-X。 X=65535时的最小计数值为1, X=0时的最大计数值为65536。即计数 范围为1 16553665536。 2. 当加法计数器TH1溢出后,必须对TH1、TL1重修设置初值,否则按 从0开始计数。 3.定时时间为T=N*TT=N*TCYCY =(65536-X)* T=(65536-X)* TCYCY2.4.4定时器定时器/计数器的工作方式计数器的工作方式51Xinjiang University方式方式1 例:已知振荡器振荡频率fosc为12MHz,要求定时器/计数器0产生10ms定时,试编写初始化程序。 T TCYCY机

48、器周期为1s,选择工作方式1。 1)定时器0计数初值:T=(65536-X)* TT=(65536-X)* TCY CY = (65536-X)* = (65536-X)* 1s10ms X X5553655536D8F0HD8F0H TH0=D8H, TL0=F0H TH0=D8H, TL0=F0H 2.4.4定时器定时器/计数器的工作方式计数器的工作方式M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7定时器定时器T1定时器定时器T0初始化程序:初始化程序:START: MOV TL0, #F0HSTART: MOV TL0, #F0H MOV TH0, #D8H

49、 MOV TH0, #D8H MOV TMOD,#01H MOV TMOD,#01H SETB TRO SETB TRO(TMODTMOD)0000 0001b0000 0001b 2)编程:TMOD:TMOD:52Xinjiang University方式方式2方式方式2为为自动重装初值的自动重装初值的8位位计数方式。计数方式。 在方式在方式2下,当计数器计满下,当计数器计满255(FFH)溢出时,)溢出时,CPU自动把自动把TH的值装入的值装入TL中,不需用户干预。因此特别适合于用作较精确的脉冲信号发生器。中,不需用户干预。因此特别适合于用作较精确的脉冲信号发生器。 8 8位计数器位计数器

50、TH1TH1重装单元重装单元2.4.4定时器定时器/计数器的工作方式计数器的工作方式(M1=1,M0=0)53Xinjiang University方式方式2(M1=1,M0=0) 1. TL1为8位加法计数器使用,TH1作为初值寄存器。 TH1、TL1 的初值由软件预置。即计数范围为1 1256256。 2.当加法计数器TL1溢出后,置位TF1,且重装设置初值,将TH1中的初值自动装入TL1,使TL1重新计数。 TH1中的内容保持不变。 例:已知振荡器振荡频率fosc为12MHz,要求每隔200s产生一个定时控制信号,试计算定时初值是多少。2.4.4定时器定时器/计数器的工作方式计数器的工作

51、方式T=(256-X)* TT=(256-X)* TCY CY = (256-X)* = (256-X)* 1s200s X X565638H38H, TH1=38H, TL1=38HTH1=38H, TL1=38H 54Xinjiang University方式方式3(M1=1,M0=1)方式方式3只适用于定时器只适用于定时器/计数器计数器T0,定时器,定时器T1方式方式3时相当于时相当于TR1=0,停止计数停止计数。工作方式工作方式3将将T0分成为两个独立的分成为两个独立的8位计数器位计数器TL0和和TH0。2.4.4定时器定时器/计数器的工作方式计数器的工作方式55Xinjiang Un

52、iversity2.4.4定时器定时器/计数器的工作方式计数器的工作方式方式方式3(M1=1,M0=1) 1. 当定时器/计数器0工作在方式3时,TL0、TH0成为两个独立的8位加法计数器使用。 TL0与方式0或1类似,计数范围为1256。 TH0作为非门控方式的定时器,借用定时器/计数器1的控制位TR1、TF1 。 56Xinjiang University57 定时器定时器/ /计数器的初始化计数器的初始化在使用定时器在使用定时器/ /计数器之前由软件设置其功能,即初始化。计数器之前由软件设置其功能,即初始化。1 1、初始化的步骤、初始化的步骤(1 1)确定工作模式(计数)确定工作模式(计

53、数/ /定时)、工作方式和启动控制方式,并定时)、工作方式和启动控制方式,并写入写入TMODTMOD寄存器寄存器(2 2)设置)设置定时或计数初值定时或计数初值:可直接写入:可直接写入TH0TH0、TL0TL0或或TH1TH1、TL1TL1中。中。1616位计数初值必位计数初值必须分两次写入对应计数器须分两次写入对应计数器(3 3)根据要求确定)根据要求确定是否采用中断方式是否采用中断方式:直接对:直接对IEIE位赋值。开中断时,对应位置位赋值。开中断时,对应位置“1 1”;采用程序查询方式时;采用程序查询方式时,IE,IE位应清位应清0 0以进行中断屏蔽以进行中断屏蔽(4 4)启动定时启动定

54、时/ /计数器计数器:使用:使用SETB SETB TRiTRi指令启动指令启动若第一步设置为软启动,即若第一步设置为软启动,即GATEGATE设置为设置为0 0时,执行指令后,定时时,执行指令后,定时/ /计数器开始工作。计数器开始工作。若若GATEGATE设置为设置为1 1时,还必须由外部中断引脚时,还必须由外部中断引脚和和共同控制,只有外部共同控制,只有外部引脚电平为高时,执行指令后,定时引脚电平为高时,执行指令后,定时/ /计数器开始工作。计数器开始工作。2.4.2.2.4.2.定时器定时器/ /计数器计数器57Xinjiang University58 计数初值的计算计数初值的计算最

55、大计数值最大计数值M M与定时与定时/ /计数器工作方式有关:计数器工作方式有关:方式方式0 0:M=2M=21313=8192 =8192 方式方式1 1:M=2M=21616=65536=65536 方式方式2 2:M=2M=28 8=256=256 方式方式3 3:M=256M=256,定时,定时/ /计数器分成两个独立的计数器分成两个独立的8 8位计数器,所以位计数器,所以TH0TH0、TL0TL0的的M M均为均为256.256. T0 T0和和T1T1均为加均为加1 1计数器,当加到最大值(计数器,当加到最大值(00H00H或或0000H0000H)时,产生溢出,)时,产生溢出,将

56、将TCONTCON寄存器的寄存器的TFTF位置位置1 1,产生溢出中断。,产生溢出中断。计数器初值计数器初值X X的计算公式:的计算公式:(1 1)计数工作模式时)计数工作模式时X XM M计数值计数值(2 2)定时工作模式时)定时工作模式时X XM M计数值计数值M Mt/T=M t/T=M (f(foscosc x t)/12 x t)/12 f foscosc为晶振频率,为晶振频率,t t为要求定时的时间。为要求定时的时间。2.4.2.2.4.2.定时器定时器/ /计数器计数器58Xinjiang University2.4.5.定时器定时器/计数器应用计数器应用例例1:编写一段程序,让

57、:编写一段程序,让51MCU的的P1.7输出输出1ms的方波(用定时器的方波(用定时器T1完成),完成),fosc=12MHz。定时器初值计算定时器初值计算(TCY=1us)此时定时时间采用)此时定时时间采用0.5ms1、采用方式、采用方式0:N=8192-500/1=7692=1E0CH所以(所以(TH1)=1E0H,(,(TL1)=0CH2、采用方式、采用方式1:N=65536-500/1=65036=0FE0C所以(所以(TH1)=0FEH,(,(TL1)=0CH注意定时器的初注意定时器的初值计算方法!值计算方法!59Xinjiang University2.4.5.定时器定时器/计数器

58、应用计数器应用程序流程:程序流程:开开始始P1.7置置1T1模式设置模式设置T1初值设置初值设置(0.5ms)中断设置中断设置开中断开中断循环等待中断循环等待中断启动定时器启动定时器T1中断入口中断入口T1初值设置初值设置(0.5ms)中断返回中断返回P1.7取反取反主程序流程主程序流程中断服务子程序流程中断服务子程序流程60Xinjiang UniversityORG0000H;主程序;主程序AJMP MAINORG001BH;参考参考P47 ;定时中断;定时中断1入口入口AJMP SERT1ORG0100HMAIN:SETBP1.7MOVTMOD,#10H;设;设T1为方式为方式1MOVT

59、H1,#0FEH;给;给T1赋初值赋初值MOVTL1,#0CHSETB ET1;开定时器;开定时器T1中断中断SETB EASETB TR1;启动定时器;启动定时器T1SJMP $;指令指令“jmp$+3”中的中的“$”表示当前这条指令在代码段中的偏移表示当前这条指令在代码段中的偏移量。指令量。指令“jmp$+3”表示要向前跳转到距离这条指令表示要向前跳转到距离这条指令3个字节的地方个字节的地方SERT1:MOVTH1,#0FEH;定时器回赋初值;定时器回赋初值MOVTL1,#0CHCPLP1.7RETIEND中断程序基本结构中断程序基本结构定时器初始化、开中断定时器初始化、开中断中断服务程序

60、中断服务程序2.4.5.定时器定时器/计数器应用计数器应用61Xinjiang University作业:作业:编写汇编和C程序实现,其中C程序参考:http:/ University程序流程:程序流程:主程序流程主程序流程中断服务子程序流程中断服务子程序流程开开始始P1.7置置1T0模式设置模式设置T0初值设置初值设置(1ms)中断设置中断设置循环计数器循环计数器R07循环等待中断循环等待中断开中断开中断中断入口中断入口P1.7取反取反P1.7=1?R0赋值为赋值为7中断返回中断返回NYR0赋值为赋值为3T0回赋初值回赋初值(1ms)R0-1=0?YN2.4.5.定时器定时器/计数器应用计数

61、器应用63Xinjiang University程序清单:程序清单:ORG0000H;主程序;主程序AJMPMAINORG000BH;参考参考P47 ;定时中断;定时中断T0入口入口AJMPSERT0ORG0100HMAIN:SETBP1.7MOVTMOD,#01H;设;设T0为方式为方式1MOVTH0,#0FEH;给;给T0赋初值赋初值MOVTL0,#0CHMOVR0,#7SETBET0;开定时器;开定时器T0中断中断SETBEASETBTR0;启动定时器;启动定时器T0SJMP$中断基本程序中断基本程序结构结构方式设定、初方式设定、初值设定值设定1mS1mS开中断启动定开中断启动定时器、等

62、待中断时器、等待中断2.4.5.定时器定时器/计数器应用计数器应用64Xinjiang University程序清单(续):程序清单(续):SERT0:MOVTH0,#0FEH;定时器回赋初值;定时器回赋初值MOVTL0,#0CHDJNZR0,EXITCPLP1.7JNBP1.7,DFZ;参考;参考P107MOVR0,#7SJMPEXITDFZ: MOVR0,#3EXIT: RETIEND判断判断I/OI/O状态、状态、更新初值更新初值2.4.5.定时器定时器/计数器应用计数器应用65Xinjiang University作业:作业:编写汇编和C程序实现,汇编类似:https:/ 2.5 并行

63、输入并行输入/ /输出接口输出接口 MCS-51单片微型计算机芯片有32根输人/输出线,组成4个8位并行输入/输出接口,分别称为PO口、P1口、P2口和P3口。这4个接口可以并行输人或输出8位数据;也可按位使用,即每一根输人输出线都能独立地用作输人或输出。一 、P1口 1、结构 P1口由8个这样的电路所组成。图中,锁存器起输出锁存作用。P1口的 8个锁存器组成特殊功能寄存器,该寄存器也用符号 P1表示。场效应管V1,与上拉电阻组成输出驱动器,以增大负载能力。上拉电阻的具体结构这里不作介绍。三态门 1是输人缓冲器,三态门2在端口操作时用。图图2-15 P12-15 P1口口1 1位的结构原理图位

64、的结构原理图66Xinjiang University2.5 2.5 并行输入并行输入/ /输出接口输出接口2、功能 8031/8051/8751单片机的 P1口只有一种功能通用输入输出接口。有输入、输出、端口操作3中工作方式:(1)输出方式:计算机执行写P1口指令 解释见教材解释见教材P60 (1)P60 (1) MOV P1,#02H(2)输入方式:计算机执行读P1口指令 解释见教材解释见教材P60 (2)P60 (2) MOV A,P1(3)端口操作:指令可直接进行端口操作 ANL Pl, #data ;与操作;与操作 执行过程分成 “读一修改一写”三步。 67Xinjiang Univ

65、ersity2.5 2.5 并行输入并行输入/ /输出接口输出接口3、负载能力 P1口输出时能驱动4个LSTTL负载。通常把100A的输人电流定义为一个TTL负载的输入电流,所以P1口输出电流不小于400A。P1口内部有上拉电阻,因此在输入时,即使由集电极开路电路或漏极开路电路驱动,也无需外接上拉电阻。68Xinjiang University2.5 2.5 并行输入并行输入/ /输出接口输出接口二、二、P2口口P2口有两种用途:通用I/O接口或高8位地址总线。图2-16是P2口1位的结构原理图。图中的模拟开关受内部控制信号控制,用于选择P2口的工作状态。69Xinjiang Universi

66、ty2.5 2.5 并行输入并行输入/ /输出接口输出接口1.地址总线状态 (见教材(见教材P60-61P60-61) 计算机从片外 ROM中取指令,或者执行访问片外 RAM、片外 ROM的指令。模拟开关在右边,P2口出现程序计数器PC的高8位地址或数据指针DPTR的高8位地址(A15A8)。取指或访问外部存储器结束后,模拟开关在左边,引脚与数据相连。2.通用 I/O接口状态 P2口作准双向通用 I/O接口使用时,其功能与 P1口相同,有输入、输出及端口操作 3种工作方式,负载能力也相同。70Xinjiang University2.5 2.5 并行输入并行输入/ /输出接口输出接口三、三、P

67、3口口P3口除了作为准双向通用I/0接口使用外,每一根线还具有第二种功能。P3口用作 I/0 接口时,其功能与P1口相同。P3口作为第二功能使用时,其锁存器Q端必须为高电平,单片机复位时,锁存器输出端为高电平。P3口第二功能中的输人信号RXD,INT1、INT2、T0、T1经缓冲器3输人,可直接进人芯片内部。作为作为I/O时,此位时,此位1作为第二功能,作为第二功能,Q171Xinjiang University2.5 2.5 并行输入并行输入/ /输出接口输出接口四、四、P0口口(参见教材(参见教材P61-62)V1、V2构成输出驱动器,与门构成输出驱动器,与门3、倒相器、倒相器4及模拟开关

68、构成输出控及模拟开关构成输出控制电路。三态门制电路。三态门1是输人缓冲器。是输人缓冲器。PO口有两种功能口有两种功能:地址地址/数据分时复用总线和通用数据分时复用总线和通用I/O接口。接口。控制信号控制信号1,开关在上方,地址,开关在上方,地址/数据分时复用总线数据分时复用总线72Xinjiang University2.5 2.5 并行输入并行输入/ /输出接口输出接口1、地址/数据分时复用总线 (见教材(见教材P61P61) 单片机系统扩展片外存贮器时,P0口作为地址/数据分时复用总线使用。2、通用I/O接口 (见教材(见教材P61P61) 假如系统未扩展片外存储器,P0 口作为准双向通用

69、 I/O接口使用。如果输人由集电极开路或漏极开路电路驱动,应外加提升电阻。输出时,如果负载是 MOS电路,应当外加提升电阻。P0口输出时能驱动8个LSTTL负载,即输出电流不小于800A。73Xinjiang University1. 1. 计算机串行通信基础计算机串行通信基础n 随着多微机系统的广泛应用和计算机网络技术的普及,计算机的通随着多微机系统的广泛应用和计算机网络技术的普及,计算机的通信功能愈来愈显得重要。信功能愈来愈显得重要。计算机通信是指计算机与外部设备或计算机与计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换计算机之间的信息交换。nn通信有通信有并行通信并行通信和和

70、串行通信串行通信两种方式。在多微机系统以及现代测控系两种方式。在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。统中信息的交换多采用串行通信方式。2.6 2.6 串行输入串行输入/ /输出接口输出接口n计算机通信计算机通信是将计算机技术和通信技术的相结合,完成计算机与外部设是将计算机技术和通信技术的相结合,完成计算机与外部设备或计算机与计算机之间的信息交换备或计算机与计算机之间的信息交换。可以分为两大类:并行通信与串。可以分为两大类:并行通信与串行通信。行通信。n并行通信并行通信通常是将数据字节的各位用多条数据线同时进行传送通常是将数据字节的各位用多条数据线同时进行传送。并行通信并行

71、通信控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。方的各位同时接收存在困难。2.6 2.6 串行输入串行输入/ /输出接口输出接口76 串行通信串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送。2.6 2.6 串行输入串行输入/ /输出接口输出接口串行通信的特点串行通信的特点:传输线少,长距离传送时成本低,且可以利用电话:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。网等现成的设备,但数据的传送控制比并行通信复杂。串行通信分为串行通

72、信分为异步通信异步通信和和同步通信同步通信。77 一、异步通信与同步通信一、异步通信与同步通信1 1、异步通信、异步通信异步通信是指异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。一致。2.6.12.6.1串行通信的基本概念串行通信的基本概念 78 异步通信是以字符(构成的帧)为单位进行传输异步通信是以字符(构成的帧)为单位进行传输,字符与字符,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是

73、以固定之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即的时间传送的,即字符之间是异步的字符之间是异步的(字符之间不一定有(字符之间不一定有“位间隔位间隔”的整数倍的关系),但的整数倍的关系),但同一字符内的各位是同步的同一字符内的各位是同步的(各位之间的(各位之间的距离均为距离均为“位间隔位间隔”的整数倍)。的整数倍)。2.6.12.6.1串行通信的基本概念串行通信的基本概念 79 异步通信的数据格式异步通信的数据格式:一帧包含内容:一帧包含内容:起始位(起始位(1 1位,低电平);数据位(位,低电平);数据位(5 58 8位);位);奇偶校验位(奇偶校验位(1 1位

74、);停止位(位);停止位(1 12 2位,高电平)位,高电平)从起始位到停止位结束的时间周期称为从起始位到停止位结束的时间周期称为1 1帧。帧。例如:用例如:用ASCIIASCII码编码传送,数据位为码编码传送,数据位为7 7位,加一个奇偶校验位、一个位,加一个奇偶校验位、一个起始位及一个停止位,每帧共起始位及一个停止位,每帧共1010位。位。低位高位2.6.12.6.1串行通信的基本概念串行通信的基本概念 80 相邻两个字符之间的间隔可以是任意长度的,两个相邻字符之间根据相邻两个字符之间的间隔可以是任意长度的,两个相邻字符之间根据需要插入任意个高电平的空闲位。需要插入任意个高电平的空闲位。例

75、如例如: : 字符字符A A(ASCIIASCII码)异步通信的帧格式,设采用偶校验,码)异步通信的帧格式,设采用偶校验,1 1位停止位。位停止位。0100000101数据位数据位起始位起始位偶校验位偶校验位停止位停止位异步通信的特点异步通信的特点:不要求收发双方时钟的严格一致,实现容易,设备开销:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要附加较小,但每个字符要附加2 23 3位用于起止位,各帧之间还有间隔,因此传位用于起止位,各帧之间还有间隔,因此传输效率不高。输效率不高。2.6.12.6.1串行通信的基本概念串行通信的基本概念 1.1.波特率波特率(Baud Rat

76、eBaud Rate)是)是每秒钟传输二进制代码的位数每秒钟传输二进制代码的位数,单位是:位秒,单位是:位秒。 例如:每秒钟传送240个字符,而每个字符格式包含10位(1个起始位、1个停止位、8个数据位),这时的比特率为: 1010位位/ /字符字符 240 240字符字符/ /秒秒 = 2400= 2400位秒位秒2400 bps 2400 bps 位传送时间位传送时间Td = 1/2400 =0.417msTd = 1/2400 =0.417ms2.6.12.6.1串行通信的基本概念串行通信的基本概念 传输速率传输速率81Xinjiang University82 二、串行通信的传输方向二

77、、串行通信的传输方向1 1、单工、单工单工是指数据传输仅能沿一个方向,不能实现反向传输。单工是指数据传输仅能沿一个方向,不能实现反向传输。2 2、半双工、半双工半双工是指数据传输可以沿两个方向,但需要分时进行。半双工是指数据传输可以沿两个方向,但需要分时进行。3 3、全双工、全双工全双工是指数据可以同时进行双向传输。全双工是指数据可以同时进行双向传输。 单工单工半双工半双工全双工全双工2.6.12.6.1串行通信的基本概念串行通信的基本概念 83 80C5180C51串行口的结构串行口的结构:串行口主要由发送数据缓冲器、发送控制器、输出控制门、接收数据缓冲器、接收控制器、输人移位寄存器等组成。

78、2.6 2.6 串行输入串行输入/ /输出接口输出接口84 有两个物理上独立的接收、发送缓冲器有两个物理上独立的接收、发送缓冲器SBUFSBUF,它们占用同它们占用同一地址一地址99H99H ;一个用来发送,一个用来接收。发送缓冲器只能写不能读出,;一个用来发送,一个用来接收。发送缓冲器只能写不能读出,接收缓冲器只能读出不能写入。接收缓冲器只能读出不能写入。在进行异步通信时,数据的发送和接收分别在各自的时钟在进行异步通信时,数据的发送和接收分别在各自的时钟(TCLKTCLK和和RCLKRCLK)控制下进行,但必须与字符位数的波特率保持一致。)控制下进行,但必须与字符位数的波特率保持一致。MCS

79、-51MCS-51串行口的发送和接收时钟可由两种方式产生:串行口的发送和接收时钟可由两种方式产生:一种:由主机频率一种:由主机频率f fOSCOSC经分频后产生。经分频后产生。一种:是由内部定时器一种:是由内部定时器T1T1或或T2T2的溢出率经分频后提供。的溢出率经分频后提供。2.6 2.6 串行输入串行输入/ /输出接口输出接口85 串行口的发送过程由指令串行口的发送过程由指令MOV SBUF,AMOV SBUF,A启动,即启动,即CPUCPU由一条写发送缓由一条写发送缓冲器的指令把数据(字符)写入串行口的发送缓冲器冲器的指令把数据(字符)写入串行口的发送缓冲器SBUFSBUF中;再中;再

80、由硬件由硬件电路自动在字符的始、末加上起始位(低电平)、停止位(高电平)及电路自动在字符的始、末加上起始位(低电平)、停止位(高电平)及其它控制位(例如奇偶位或地址其它控制位(例如奇偶位或地址/ /数据标志位等)数据标志位等);然后在移位脉冲的;然后在移位脉冲的控制下,低位在前,高位在后,从控制下,低位在前,高位在后,从TXDTXD端(方式端(方式0 0除外)一位位地向外发除外)一位位地向外发送。送。2.6 2.6 串行输入串行输入/ /输出接口输出接口 串行口的串行口的接收与否受制于允许接收位接收与否受制于允许接收位RENREN的状态,当的状态,当RENREN被软件置被软件置“1 1”后,允

81、许接收器接收。接收端后,允许接收器接收。接收端RXDRXD一位位接收数据,直到收到一个一位位接收数据,直到收到一个完整的字符数据后,控制电路进行最后一次移位,自动去掉起始位,使完整的字符数据后,控制电路进行最后一次移位,自动去掉起始位,使接收中断标志位接收中断标志位RIRI置置“1 1”, ,并向并向CPUCPU申请中断。申请中断。CPUCPU响应中断,用一条指响应中断,用一条指令令MOV A,SBUFMOV A,SBUF把接收缓冲器把接收缓冲器SBUFSBUF的内容读入累加器的内容读入累加器A A。86 SCON SCON 是一个特殊功能寄存器,用以设定串行口的工作方式、接收是一个特殊功能寄

82、存器,用以设定串行口的工作方式、接收/ /发发送控制以及设置状态标志:送控制以及设置状态标志:80C5180C51串行口的控制寄存器串行口的控制寄存器SM0SM0和和SM1SM1为工作方式选择位,可选择四种工作方式:为工作方式选择位,可选择四种工作方式:2.6 2.6 串行输入串行输入/ /输出接口输出接口87 SM2SM2,多机通信控制位,多机通信控制位,主要用于方式,主要用于方式2 2和方式和方式3 3。当。当接收机的接收机的SM2=1SM2=1时可以时可以利用收到的利用收到的RB8RB8来控制是否激活来控制是否激活RIRI(RB8RB80 0时不激活时不激活RIRI,收到的信息丢弃;,收

83、到的信息丢弃;RB8RB81 1时收到的数据进入时收到的数据进入SBUFSBUF,并激活,并激活RIRI,进而在中断服务中将数据从,进而在中断服务中将数据从SBUFSBUF读走)。读走)。当当SM2=0SM2=0时,不论收到的时,不论收到的RB8RB8为为0 0和和1 1,均可以使收到的数据进入,均可以使收到的数据进入SBUFSBUF,并激活,并激活RIRI(即此时(即此时RB8RB8不具有控制不具有控制RIRI激活的功能)。通过控制激活的功能)。通过控制SM2SM2,可以实,可以实现多机通信。现多机通信。在方式在方式0 0时,时,SM2SM2必须是必须是0 0。在方式。在方式1 1时,若时,

84、若SM2=1SM2=1,则只有接收到有效停止位,则只有接收到有效停止位时,时,RIRI才置才置1 1。RENREN,允许串行接收位,允许串行接收位。由软件置。由软件置REN=1REN=1,则启动串行口接收数据;若软件,则启动串行口接收数据;若软件置置REN=0REN=0,则禁止接收。,则禁止接收。2.6 2.6 串行输入串行输入/ /输出接口输出接口88 TB8TB8,在方式,在方式2 2或方式或方式3 3中,是发送数据的第九位中,是发送数据的第九位,可以用软件规定其作用。,可以用软件规定其作用。可以用作数据的奇偶校验位,或在多机通信中,作为地址帧可以用作数据的奇偶校验位,或在多机通信中,作为

85、地址帧/ /数据帧的标志位。数据帧的标志位。在方式在方式0 0和方式和方式1 1中,该位未用。中,该位未用。RB8RB8,在方式,在方式2 2或方式或方式3 3中,是接收到数据的第九位中,是接收到数据的第九位,作为奇偶校验位或地址,作为奇偶校验位或地址帧帧/ /数据帧的标志位。在方式数据帧的标志位。在方式1 1时,若时,若SM2=0SM2=0,则,则RB8RB8是接收到的停止位。是接收到的停止位。TITI,发送中断标志位,发送中断标志位。在方式。在方式0 0时,当串行发送第时,当串行发送第8 8位数据结束时,或在其位数据结束时,或在其它方式,串行发送停止位的开始时,由内部硬件使它方式,串行发送

86、停止位的开始时,由内部硬件使TITI置置1 1,向,向CPUCPU发中断申请。发中断申请。在中断服务程序中,必须用软件将其清在中断服务程序中,必须用软件将其清0 0,取消此中断申请。,取消此中断申请。RIRI,接收中断标志位,接收中断标志位。在方式。在方式0 0时,当串行接收第时,当串行接收第8 8位数据结束时,或在其位数据结束时,或在其它方式,串行接收停止位的中间时,由内部硬件使它方式,串行接收停止位的中间时,由内部硬件使RIRI置置1 1,向,向CPUCPU发中断申请。发中断申请。也必须在中断服务程序中,用软件将其清也必须在中断服务程序中,用软件将其清0 0,取消此中断申请。,取消此中断申

87、请。2.6 2.6 串行输入串行输入/ /输出接口输出接口89 特殊功能寄存器特殊功能寄存器PCONPCON中只有一位中只有一位SMODSMOD与串行口工作有关与串行口工作有关 ,无位寻址,无位寻址功能:功能:SMODSMOD(PCON.7PCON.7)波特率倍增位。在串行口方式波特率倍增位。在串行口方式1 1、方式、方式2 2、方式、方式3 3时,时,波特率与波特率与SMODSMOD有关,当有关,当SMOD=1SMOD=1时,波特率提高一倍。复位时,时,波特率提高一倍。复位时,SMOD=0SMOD=0。2.6 2.6 串行输入串行输入/ /输出接口输出接口90 一、方式一、方式0 0 2.6

88、.2 2.6.2 80C51串行口的工作方式 SM0=0,SM1=0,串行口工作于方式,串行口工作于方式0。串行口为串行口为同步移位寄存器同步移位寄存器的输的输入输出方式,主要用于扩展并行输入或输出口。入输出方式,主要用于扩展并行输入或输出口。数据从数据从TXD(P3.1)、)、RXDRXD(P3.0P3.0)引脚上引脚上发送或接收发送或接收。一帧信息由。一帧信息由8位数据组成,低位在前,位数据组成,低位在前,高位高位在后在后。波特率固定,为。波特率固定,为fosc/12。同步移位脉冲从。同步移位脉冲从TXDTXD(P3.1P3.1)引脚上输出。引脚上输出。发送操作在发送操作在TITI0 0的

89、情况下开始,由指令的情况下开始,由指令MOV SBUF,AMOV SBUF,A启动,启动,8 8位数据发送完后,由硬件自动置位数据发送完后,由硬件自动置TI=1,TI=1,并向并向CPUCPU发出中断请求。发出中断请求。 1 1、方式、方式0 0输出输出91 2 2、方式、方式0 0输入输入 满足满足REN=1REN=1和和RI=0RI=0的条件下,串行口处于方式的条件下,串行口处于方式0 0输入。输入。当接收完当接收完8 8位数据后,通过指令位数据后,通过指令MOV A,SBUFMOV A,SBUF将接收的数据将接收的数据传送给累加器传送给累加器A A。在再次接收之前,必须用软件将。在再次接

90、收之前,必须用软件将RIRI清清0 0。2.6.2 2.6.2 80C51串行口的工作方式 92 8031 8031的串行口外接的串行口外接串行输入并行输出串行输入并行输出移位寄存器移位寄存器74LS16474LS164,并行输入串行输出并行输入串行输出移位寄存器移位寄存器74LS16574LS165。工作于方式工作于方式0 0的接收和发送电路的接收和发送电路2.6.2 2.6.2 80C51串行口的工作方式 93 二、方式二、方式1 1 SM0 =0, SM1 = 1方式方式1 1是是1010位数据的异步位数据的异步通信口。通信口。TXDTXD为数据发送引为数据发送引脚,脚,RXDRXD为数

91、据接收引脚,传送一帧数据的格式如图所示。其中为数据接收引脚,传送一帧数据的格式如图所示。其中1 1位起始位,位起始位,8 8位数据位,位数据位,1 1位停止位。位停止位。2.6.2 2.6.2 80C51串行口的工作方式 方式方式1 1的波特率可变,由定时器的波特率可变,由定时器/ /计数器计数器1 1或定时器或定时器/ /计数器计数器 2 2的溢出的溢出速率以及速率以及 SMOD (PCON.7)SMOD (PCON.7)决定,且决定,且发送波特率与接收波特率可以不同发送波特率与接收波特率可以不同。 1 1、方式、方式1 1输出输出 在在TITI0 0的条件下,由指令的条件下,由指令MOV

92、SBUF,AMOV SBUF,A启动,发送电路自动启动,发送电路自动在在8 8位数据前后加一位起始、停止位,发送完成后置位数据前后加一位起始、停止位,发送完成后置TI=1TI=1。二、方式二、方式1 12.6.2 2.6.2 80C51串行口的工作方式 94Xinjiang University95 2 2、方式、方式1 1输入输入 用用软件置软件置RENREN为为1 1时,接收器以所选择波特率的时,接收器以所选择波特率的1616倍速率采样倍速率采样RXDRXD引脚引脚电平,检测到电平,检测到RXDRXD引脚输入电平发生引脚输入电平发生负跳变负跳变时,则说明起始位有效,将其时,则说明起始位有效

93、,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位。制电路进行最后一次移位。当当RI=0RI=0,且,且SM2=0SM2=0(或接收到的停止位为(或接收到的停止位为1 1)时,)时,将接收到的将接收到的9 9位数据的前位数据的前8 8位数据装入接收位数据装入接收SBUFSBUF,第,第9 9位(停止位)进入位(停止位)进入RB8RB8,并置,并置RI=1RI=1,

94、向,向CPUCPU请求中断。请求中断。2.6.2 2.6.2 80C51串行口的工作方式 96 三、方式三、方式2 2和方式和方式3 3 方式方式2 2或方式或方式3 3时为时为1111位数据的异步通信位数据的异步通信口。口。TXDTXD为数据发送引脚,为数据发送引脚,RXDRXD为为数据接收引脚数据接收引脚。 方式方式2 2和方式和方式3 3时起始位时起始位1 1位,数据位,数据9 9位(含位(含1 1位附加的第位附加的第9 9位,发送时为位,发送时为SCONSCON中的中的TB8TB8,接收时为,接收时为RB8RB8),停止位),停止位1 1位,一帧数据为位,一帧数据为1111位。位。方式

95、方式2 2的波的波特率固定为晶振频率的特率固定为晶振频率的1/641/64或或1/321/32,方式,方式3 3的波特率由定时器的波特率由定时器T1T1的溢出率决的溢出率决定。定。2.6.2 2.6.2 80C51串行口的工作方式 97 1 1、方式、方式2 2和方式和方式3 3输出输出 发送开始时,先把起始位发送开始时,先把起始位0 0输出到输出到TXDTXD引脚,然后发送移位寄存器引脚,然后发送移位寄存器的输出位(的输出位(D0D0)到)到TXDTXD引脚。每一个移位脉冲都使输出移位寄存器的引脚。每一个移位脉冲都使输出移位寄存器的各位右移一位,并由各位右移一位,并由TXDTXD引脚输出。引

96、脚输出。当发送完一帧信息后,由软件置当发送完一帧信息后,由软件置TI=1TI=1,向,向CPUCPU请求中断。请求中断。2.6.2 2.6.2 80C51串行口的工作方式 98 2 2、方式、方式2 2和方式和方式3 3输入输入 接收时,数据从右边移入输入移位寄存器,在起始位接收时,数据从右边移入输入移位寄存器,在起始位0 0移到最左边时,移到最左边时,控制电路进行最后一次移位。当控制电路进行最后一次移位。当RI=0RI=0,且,且SM2=0SM2=0(或接收到的第(或接收到的第9 9位数据为位数据为1 1)时,接收到的数据装入接收缓冲器)时,接收到的数据装入接收缓冲器SBUFSBUF和和RB

97、8RB8(接收数据的第(接收数据的第9 9位),位),置置RI=1RI=1,向,向CPUCPU请求中断。如果条件不满足,则数据丢失,且不置位请求中断。如果条件不满足,则数据丢失,且不置位RIRI,继续搜索继续搜索RXDRXD引脚的负跳变。引脚的负跳变。2.6.2 2.6.2 80C51串行口的工作方式 99 四、波特率的计算四、波特率的计算在串行通信中,在串行通信中,收发双方对发送或接收数据的速率要有约定收发双方对发送或接收数据的速率要有约定。通过软。通过软件可对单片机串行口编程为四种工作方式,其中件可对单片机串行口编程为四种工作方式,其中方式方式0 0和方式和方式2 2的波特率的波特率是固定

98、的,而方式是固定的,而方式1 1和方式和方式3 3的波特率是可变的,的波特率是可变的,由定时器由定时器T1T1的溢出率来的溢出率来决定。决定。2.6.2 2.6.2 80C51串行口的工作方式 串行口的四种工作方式对应三种波特率。由于输入的移位时钟的串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。来源不同,所以,各种方式的波特率计算公式也不相同。 方式方式0 0的波特率的波特率 = fosc/12 = fosc/12 方式方式2 2的波特率的波特率 = =(2 2SMODSMOD/64/64) foscfosc 方式方式1 1的波特率的

99、波特率 = =(2 2SMODSMOD/32/32)(T1T1溢出率)溢出率) 方式方式3 3的波特率的波特率 = =(2 2SMODSMOD/32/32)(T1T1溢出率)溢出率)100 当当T1T1作为波特率发生器时,作为波特率发生器时,定时器定时器T1T1溢出率的计算公式:溢出率的计算公式:T1T1溢出率溢出率 式中,式中,K K为定时器为定时器T1T1的位数,它和定时器的位数,它和定时器T1T1的设定方式有关:的设定方式有关:T1T1为方式为方式0 0,K=13; T1K=13; T1为方式为方式1 1,K=16; T1K=16; T1为方式为方式2 2或或3 3,K=8K=8其中最典

100、型的用法是使其中最典型的用法是使T1T1工作在自动再装入的工作在自动再装入的8 8位定时器方式(即方式位定时器方式(即方式2 2,且且TCONTCON的的TR1=1TR1=1,以启动定时器)。这时溢出率取决于,以启动定时器)。这时溢出率取决于TH1TH1中的计数值。中的计数值。T1 T1 溢出率溢出率= = foscfosc /12 /12256 256 (TH1TH1) 在单片机的应用中,常用的晶振频率为:在单片机的应用中,常用的晶振频率为:12MHz12MHz和和11.0592MHz11.0592MHz。所以,。所以,选用的波特率也相对固定。常用的串行口波特率以及各参数的关系如表所选用的波

101、特率也相对固定。常用的串行口波特率以及各参数的关系如表所示。示。2.6.2 2.6.2 80C51串行口的工作方式 2.6.2 2.6.2 80C51串行口的工作方式 101Xinjiang University 当定时当定时/ /计数器计数器1 1工作在自动再装入的工作在自动再装入的8 8位定时器方式(即方式位定时器方式(即方式2 2,且,且TCONTCON的的TR1=1TR1=1,以启动定时器)。这时溢出率取决于,以启动定时器)。这时溢出率取决于TH1TH1中的计数值。中的计数值。T1 T1 溢出率溢出率= = foscfosc /12 /12256 256 (TH1TH1) 波特率波特率

102、2 2SMODSMOD定时定时/ /计数器计数器1 1的溢出率的溢出率/32/322.6.2 2.6.2 80C51串行口的工作方式 例例2 2一一3 3 设串行接口工作于工作方式设串行接口工作于工作方式3, SMOD=0, 3, SMOD=0, foscfosc= 11.059 MHz= 11.059 MHz,定时,定时器器/ /计数器计数器1 1工作于定时器方式工作于定时器方式2(2(自动重装载方式自动重装载方式) ),TL1TL1、TH1TH1的初值为的初值为FDHFDH,试计算波特率。,试计算波特率。(见教材(见教材P68-69例例2-3)因为定时器因为定时器/ /计数器计数器1 1的

103、定时时间为的定时时间为: : 其溢出速率:其溢出速率:所以波特率为所以波特率为: : 102Xinjiang University103 串行口之前,应对其进行初始化,主要是设置产生波特率串行口之前,应对其进行初始化,主要是设置产生波特率的定时器的定时器1 1、串行口控制和中断控制。具体步骤如下:、串行口控制和中断控制。具体步骤如下:n确定确定T1T1的工作方式(编程的工作方式(编程TMODTMOD寄存器);寄存器);n计算计算T1T1的初值,装载的初值,装载TH1TH1、TL1TL1;n启动启动T1T1(编程(编程TCONTCON中的中的TR1TR1位);位);n确定串行口控制(编程确定串行

104、口控制(编程SCONSCON寄存器);寄存器);串行口在中断方式工作时,要进行中断设置(编程串行口在中断方式工作时,要进行中断设置(编程IEIE、IPIP寄存器)。寄存器)。2.6 2.6 串行输入串行输入/ /输出接口输出接口串行口发送程序串行口发送程序 将片内将片内RAM 40HRAM 40H4FH4FH中的数据串行发送,串行口设定为工作中的数据串行发送,串行口设定为工作方式方式2 2,TB8TB8作奇偶校验位。在写入发送作奇偶校验位。在写入发送SBUFSBUF之前,先将数据之前,先将数据的奇偶位的奇偶位P P写入写入TB8TB8,第,第9 9位数据作奇偶校验位用。位数据作奇偶校验位用。2

105、.6 2.6 串行输入串行输入/ /输出接口输出接口104Xinjiang University105 ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN ORG 0100H ORG 0100H MAIN: MOV SCON,#80H ; MAIN: MOV SCON,#80H ;方式设定方式设定MOV PCON,#80H MOV PCON,#80H ;取波特率为;取波特率为fosc/32fosc/32 MOV R0,#40H MOV R0,#40H ;首地址;首地址40H40H送送R0R0 MOV R7,#10H MOV R7,#10H ;数据长度送;数据长度送R

106、7R7 LOOP:MOV A,R0 LOOP:MOV A,R0 ;取数据送;取数据送A A MOV C,PSW.0 MOV C,PSW.0 ;P P写入写入TB8TB8 MOV TB8,C MOV TB8,C MOV SBUF,A MOV SBUF,A ;启动发送;启动发送WAIT: JBC TI,NEXT WAIT: JBC TI,NEXT ;判断发送中断标志;判断发送中断标志TITI SJMP WAIT SJMP WAIT ;JBC;JBC是判断可位寻址区域内指定位是否为是判断可位寻址区域内指定位是否为1 1,为,为1 1则跳转到指定位则跳转到指定位置,并同时清除该位(置置,并同时清除该位

107、(置0 0) NEXT: INC R0 NEXT: INC R0 CLR TI ; CLR TI ;清中断标志清中断标志DJNZ R7,LOOP DJNZ R7,LOOP ;直接寻址字节内容减;直接寻址字节内容减1 1不为零转移不为零转移 RET RET2.6 2.6 串行输入串行输入/ /输出接口输出接口串行口接收程序串行口接收程序 将接收的将接收的1616个字节数据送片内个字节数据送片内RAM40HRAM40H4FH4FH单元中。设串单元中。设串行口以方式行口以方式3 3状态工作,波特率为状态工作,波特率为24002400。T1T1用作波特率发生器,用作波特率发生器,工作于方式工作于方式2

108、 2,SMOD=0,SMOD=0,计数常数为计数常数为F4H F4H (请同学们自己回去(请同学们自己回去练习编程)练习编程)2.6 2.6 串行输入串行输入/ /输出接口输出接口106Xinjiang University107 REV: MOV TMOD,#20H ;T1方式方式2,定时模式,定时模式 MOV TH1,#F4H ;装入初值;装入初值 MOV TL1,#F4H SETB TR1 ;启动;启动T1 MOV R0,#40H ;R0置地址初值置地址初值 MOV R7,#10H ;数据长度至;数据长度至R7 MOV PCON,#00H ;置;置SMOD0 MOV SCON,#BOH

109、;串行口编程方式;串行口编程方式3接收接收 WAIT: JBC RI,PR ;等待接收到数据;等待接收到数据 SJMP WAIT2.6 2.6 串行输入串行输入/ /输出接口输出接口108 PR: MOV A,SBUF ;奇偶校验位判别:;奇偶校验位判别:RB8=1? JNB PSW.0,PNP JNB RB8,ERR SJMP RIGHT PNP: JB RB8,PER RIGHT: MOV R0, A ;数据至缓冲器数据至缓冲器 INC R0 DJNZ R7,WAIT ;判断数据块接收完否?;判断数据块接收完否? CLR PSW.5 ;正确接收;正确接收16个字节置标志位个字节置标志位F0

110、=0 RET ERR: SETB PSW.5 ;置奇校验出错标志置奇校验出错标志F0=1 RET2.6 2.6 串行输入串行输入/ /输出接口输出接口2.7 80C512.7 80C51的中断系统的中断系统2.7.1 80C512.7.1 80C51的中断系统结构的中断系统结构一、中断的概念一、中断的概念v计算机具有实时处理能力,能对外界发生的事件进行及时处理计算机具有实时处理能力,能对外界发生的事件进行及时处理, ,这是依这是依靠它们的中断系统来实现的。靠它们的中断系统来实现的。CPUCPU在处理某一事件在处理某一事件A A时,发生了另一事件时,发生了另一事件B B请求请求CPUCPU迅速去

111、处理(迅速去处理(中断发生中断发生或中断请求或中断请求););CPUCPU暂时中断当前的工作,转去处理事件暂时中断当前的工作,转去处理事件B B(中断响应和中断服务中断响应和中断服务););待待CPUCPU将事件将事件B B处理完毕后,再回到原来事件处理完毕后,再回到原来事件A A被中断的地方继续处理事件被中断的地方继续处理事件A A(中断返回中断返回)。)。中断是中断是中断是中断是什么?什么?什么?什么?中断请求中断请求中断响应中断响应中断服务中断服务中断返回中断返回中中 断断事件事件B的的处理过程处理过程事件事件A事件事件B109Xinjiang University110 引起引起CPU

112、CPU中断的根源,称为中断的根源,称为中断源中断源。中断源向。中断源向CPUCPU提出的中断请求。提出的中断请求。CPUCPU暂时中断原来的事务暂时中断原来的事务A A,转去处理事件,转去处理事件B B。对事件。对事件B B处理完毕后,再回处理完毕后,再回到原来被中断的地方(即断点),称为到原来被中断的地方(即断点),称为中断返回中断返回。实现上述中断功能的。实现上述中断功能的部件称为中断系统(中断机构)。部件称为中断系统(中断机构)。2.7 80C512.7 80C51的中断系统的中断系统110Xinjiang University111 随着计算机技术的应用,人们发现中断技术不仅解决了快速

113、主机与慢随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速速I/OI/O设备的数据传送问题,而且还具有如下优点:设备的数据传送问题,而且还具有如下优点:分时操作分时操作。CPUCPU可以分时为多个可以分时为多个I/OI/O设备服务,设备服务,提高了计算机的利用率提高了计算机的利用率;实时响应实时响应。CPUCPU能够能够及时处理及时处理应用系统的随机事件,系统的实时性大大应用系统的随机事件,系统的实时性大大增强;增强;可靠性高可靠性高。CPUCPU具有处理设备故障及掉电等突发性事件的能力,从而使系具有处理设备故障及掉电等突发性事件的能力,从而使系统统可靠性提高可靠性提高。2.7 8

114、0C512.7 80C51的中断系统的中断系统111Xinjiang University外部中断外部中断0/INT0外部中断外部中断1/INT1定时器定时器/计数器计数器T0中断中断定时器定时器/计数器计数器T1中断中断串行通信口中断串行通信口中断那些部件可以那些部件可以向向CPU发出中发出中断申请呢?断申请呢?二、二、80C5180C51中断系统的结构中断系统的结构80C5180C51的中断系统有的中断系统有5 5个中断源,个中断源,2 2个优先级,可实现二级中断嵌套个优先级,可实现二级中断嵌套。2.7 80C512.7 80C51的中断系统的中断系统112Xinjiang Univers

115、ity113 二、二、80C5180C51中断系统的结构中断系统的结构80C5180C51的中断系统有的中断系统有5 5个中断源,个中断源,2 2个优先级,可实现二级中断嵌套个优先级,可实现二级中断嵌套。2.7 80C512.7 80C51的中断系统的中断系统 与中断系统工作有关的特殊功能寄存器有中断允许控制寄存器与中断系统工作有关的特殊功能寄存器有中断允许控制寄存器 IEIE, ,中断优先级控制寄存器中断优先级控制寄存器IPIP以及定时器以及定时器/ /计数器控制寄存器计数器控制寄存器TCONTCON等等. .113Xinjiang University114 一、中断源一、中断源1 1、(

116、P3.2P3.2)。可由。可由IT0(TCON.0)IT0(TCON.0)选择其为低电平有效还是下降沿有效。当选择其为低电平有效还是下降沿有效。当CPUCPU检测到检测到P3.2P3.2引脚上出现有效的中断信号时,中断标志引脚上出现有效的中断信号时,中断标志IE0(TCON.1)IE0(TCON.1)置置1 1,向,向CPUCPU申请中断。引脚上的高电平与低电平至少应各自保持申请中断。引脚上的高电平与低电平至少应各自保持1 1个机器周期。个机器周期。2 2、(P3.3P3.3)。可由。可由IT1(TCON.2)IT1(TCON.2)选择其为低电平有效还是下降沿有效。当选择其为低电平有效还是下降

117、沿有效。当CPUCPU检测到检测到P3.3P3.3引脚上出现有效的中断信号时,中断标志引脚上出现有效的中断信号时,中断标志IE1(TCON.3)IE1(TCON.3)置置1,1,向向CPUCPU申请中断。申请中断。3 3、TF0TF0(TCON.5TCON.5),片内定时,片内定时/ /计数器计数器T0T0溢出中断请求标志。当定时溢出中断请求标志。当定时/ /计数器计数器T0T0发发生溢出时,置位生溢出时,置位TF0TF0,并向,并向CPUCPU申请中断。申请中断。CPUCPU响应中断后,由硬件自动清除响应中断后,由硬件自动清除TF0TF0或或TF1TF1。4 4、TF1TF1(TCON.7T

118、CON.7),片内定时,片内定时/ /计数器计数器T1T1溢出中断请求标志。当定时溢出中断请求标志。当定时/ /计数器计数器T1T1发发生溢出时,置位生溢出时,置位TF1TF1,并向,并向CPUCPU申请中断。申请中断。5 5、RIRI(SCON.0SCON.0)或)或TITI(SCON.1SCON.1),串行口中断请求标志。当串行口接收完一帧),串行口中断请求标志。当串行口接收完一帧串行数据时置位串行数据时置位RIRI或当串行口发送完一帧串行数据时置位或当串行口发送完一帧串行数据时置位TITI,向,向CPUCPU申请中断。申请中断。2.7.2 80C51的中断源的中断源114Xinjiang

119、 University115 二、中断请求标志二、中断请求标志1 1、TCONTCON的中断标志的中断标志2.7.2 80C51的中断源的中断源IT0IT0(TCON.0TCON.0),外部中断,外部中断0 0触发方式控制位。触发方式控制位。当当IT0=0IT0=0时,为电平触发方式。时,为电平触发方式。当当IT0=1IT0=1时,为边沿触发方式(下降沿有效)。时,为边沿触发方式(下降沿有效)。IE0IE0(TCON.1TCON.1),外部中断,外部中断0 0中断请求标志位。中断请求标志位。IT1IT1(TCON.2TCON.2),外部中断,外部中断1 1触发方式控制位。触发方式控制位。IE1

120、IE1(TCON.3TCON.3),外部中断,外部中断1 1中断请求标志位。中断请求标志位。TF0TF0(TCON.5TCON.5),定时,定时/ /计数器计数器T0T0溢出中断请求标志位。溢出中断请求标志位。TF1TF1(TCON.7TCON.7),定时,定时/ /计数器计数器T1T1溢出中断请求标志位。溢出中断请求标志位。115Xinjiang University116 RIRI(SCON.0SCON.0),串行口接收中断标志位。当允许串行口接收数据时,串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位每接收完一个串行帧,由硬件置位RIRI。同样,。同样,RIR

121、I必须由软件清除。必须由软件清除。TITI(SCON.1SCON.1),串行口发送中断标志位。当,串行口发送中断标志位。当CPUCPU将一个发送数据写入串将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位置位TITI。CPUCPU响应中断时,不能自动清除响应中断时,不能自动清除TITI,TITI必须由软件清除。必须由软件清除。二、中断请求标志二、中断请求标志2 2、SCONSCON的中断标志的中断标志2.7.2 80C51的中断源的中断源116Xinjiang University117 一、中断

122、允许控制一、中断允许控制CPUCPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器器IEIE控制的。控制的。2.7.3 80C512.7.3 80C51中断的控制中断的控制EX0(IE.0)EX0(IE.0),外部中断,外部中断0 0允许位;允许位;ET0(IE.1)ET0(IE.1),定时,定时/ /计数器计数器T0T0中断允许位;中断允许位;EX1(IE.2)EX1(IE.2),外部中断,外部中断0 0允许位;允许位;ET1(IE.3)ET1(IE.3),定时,定时/ /计数器计数器T1T1中断允许位;中断允许位;

123、ESES(IE.4)IE.4),串行口中断允许位;,串行口中断允许位;EA (IE.7)EA (IE.7),CPUCPU中断允许(总允许)位。中断允许(总允许)位。ET21 1:允许:允许0 0:禁止:禁止允许哪些中断允许哪些中断允许哪些中断允许哪些中断?不允许哪些中不允许哪些中不允许哪些中不允许哪些中断?断?断?断?117Xinjiang University2.7.3 80C512.7.3 80C51中断的控制中断的控制中断优先级控制(硬件优先中断优先级控制(硬件优先+ +软件优先)软件优先)硬件优先硬件优先单片机内部有一个默认的中断优先级顺序单片机内部有一个默认的中断优先级顺序(6 6个

124、优先级个优先级) )外部中断外部中断0 优先级最优先级最高高定时器定时器T0外部中断外部中断1定时器定时器T1串口串口/SPI定时器定时器T2 优先级最优先级最低低先响应那些中断?先响应那些中断?先响应那些中断?先响应那些中断?后响应那些哪些中后响应那些哪些中后响应那些哪些中后响应那些哪些中断?断?断?断?118Xinjiang University119 二、中断优先级控制二、中断优先级控制80C5180C51单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器断源的中断优先级都是由中断优先级寄

125、存器IPIP中的相应位的状态来规定中的相应位的状态来规定的的。PX0PX0(IP.0IP.0),外部中断),外部中断0 0优先级设定位;优先级设定位;PT0PT0(IP.1IP.1),定时),定时/ /计数器计数器T0T0优先级设定位;优先级设定位;PX1PX1(IP.2IP.2),外部中断),外部中断0 0优先级设定位;优先级设定位;PT1PT1(IP.3IP.3),定时),定时/ /计数器计数器T1T1优先级设定位;优先级设定位;PS PS (IP.4IP.4),串行口优先级设定位。),串行口优先级设定位。2.7.3 80C512.7.3 80C51中断的控制中断的控制1 1:优先:优先0

126、 0:滞后:滞后可以人可以人可以人可以人为为改改改改变优变优先先先先级吗级吗?119Xinjiang University120 同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:其排列如所示:2.7.3 80C512.7.3 80C51中断的控制中断的控制二、中断优先级控制二、中断优先级控制见例题见例题P72:2-4120Xinjiang University121 80C5180C51

127、单片机的中断优先级有三条原则:单片机的中断优先级有三条原则:CPUCPU同时接收到几个中断时,首先响应优先级别最高的中断请求。同时接收到几个中断时,首先响应优先级别最高的中断请求。正在进行的中断过程正在进行的中断过程不能被新的同级或低优先级不能被新的同级或低优先级的中断请求所中断。的中断请求所中断。正在进行的正在进行的低优先级中断服务,能被高优先级中断请求所中断低优先级中断服务,能被高优先级中断请求所中断。2.7.3 80C512.7.3 80C51中断的控制中断的控制 为了实现上述后两条原则,为了实现上述后两条原则,中断系统内部设有两个用户不能寻中断系统内部设有两个用户不能寻址的优先级状态触

128、发器址的优先级状态触发器。其中一个置其中一个置1 1,表示正在响应高优先级的中,表示正在响应高优先级的中断,它将阻断后来所有的中断请求;另一个置断,它将阻断后来所有的中断请求;另一个置1 1,表示正在响应低优,表示正在响应低优先级中断,它将阻断后来所有的低优先级中断请求。先级中断,它将阻断后来所有的低优先级中断请求。121Xinjiang University122 2.7.4 80C512.7.4 80C51单片机中断处理过程单片机中断处理过程一、中断响应条件一、中断响应条件CPUCPU响应中断的条件是:响应中断的条件是: 中断源有中断请求;中断源有中断请求; 此中断源的中断允许位为此中断源

129、的中断允许位为1 1; CPUCPU开中断(即开中断(即EA=1EA=1)。)。 同时满足时,同时满足时,CPUCPU才有可能才有可能响应中断。响应中断。中断响应条件和时间中断响应条件和时间还不能肯定吗?还不能肯定吗?122Xinjiang University123 CPUCPU执行程序过程中,在每个机器周期的执行程序过程中,在每个机器周期的S5P2S5P2期间,中断系统对期间,中断系统对各个中断源进行采样各个中断源进行采样。这些采样值在下一个机器周期内按优先级和内。这些采样值在下一个机器周期内按优先级和内部顺序被依次查询。部顺序被依次查询。如果某个中断标志在上一个机器周期的如果某个中断标志

130、在上一个机器周期的S5P2S5P2时被置成了时被置成了1 1,那么它,那么它将于现在的查询周期中及时被发现。接着将于现在的查询周期中及时被发现。接着CPUCPU便执行一条由便执行一条由中断系统中断系统提供的硬件提供的硬件LCALLLCALL指令,转向被称作中断向量的特定地址单元,进入指令,转向被称作中断向量的特定地址单元,进入相应的中断服务程序。相应的中断服务程序。2.7.4 80C512.7.4 80C51单片机中断处理过程单片机中断处理过程123Xinjiang University124 但即使当但即使当MCS-51MCS-51的的CPUCPU在每个机器周期的在每个机器周期的S5P2S5

131、P2期间顺序采样各中断请期间顺序采样各中断请求标志位,如有置位,求标志位,如有置位,且下列三种情况都不存在且下列三种情况都不存在,那么,在下一周期的,那么,在下一周期的S1S1期间响应中断。否则,采样的结果被取消,期间响应中断。否则,采样的结果被取消,不产生不产生LCALLLCALL指令指令。CPUCPU正在处理同级或高正在处理同级或高优先级中断;优先级中断;现在现在的机器周期的机器周期不是所执行指令的最后一个机器周期不是所执行指令的最后一个机器周期。即在完成所执行。即在完成所执行指令前,不会响应中断,从而保证指令在执行过程中不被打断;指令前,不会响应中断,从而保证指令在执行过程中不被打断;正

132、在执行正在执行的指令为的指令为RETRET、RETIRETI或任何访问或任何访问IEIE或或IPIP寄存器的指令。即只有在寄存器的指令。即只有在这些指令后面至少再执行一条指令时才能接受中断请求。这些指令后面至少再执行一条指令时才能接受中断请求。2.7.4 80C512.7.4 80C51单片机中断处理过程单片机中断处理过程 若由于上述条件的阻碍中断未能得到响应,当条件消失时该中断标若由于上述条件的阻碍中断未能得到响应,当条件消失时该中断标志却已不再有效,那么该中断将不被响应。就是说,志却已不再有效,那么该中断将不被响应。就是说,中断标志曾经有效,中断标志曾经有效,但未获响应,查询过程在下个机器

133、周期将重新进行但未获响应,查询过程在下个机器周期将重新进行。124Xinjiang University CPUCPU响应中断后,由硬件执行如下功能响应中断后,由硬件执行如下功能: (1 1)根据中断请求源的优先级高低,使相应的优先级状态触发器置)根据中断请求源的优先级高低,使相应的优先级状态触发器置1,1, (2 2)保留断点保留断点,即把程序计数器,即把程序计数器PCPC的内容推入堆栈保存。的内容推入堆栈保存。 (3 3)清相应的中断请求标志位清相应的中断请求标志位IE0IE0、IE1IE1、TF0TF0或或TF1TF1。 (4 4)把被响应的)把被响应的中断服务程序的入口地址送入中断服务

134、程序的入口地址送入PCPC,从而转入相应的中,从而转入相应的中断服务程序。断服务程序。 中断服务程序的最后一条指令必须是中断服务程序的最后一条指令必须是中断返回指令中断返回指令RETIRETI。2.7.4 80C512.7.4 80C51单片机中断处理过程单片机中断处理过程125Xinjiang University126 二、中断响应时间二、中断响应时间某中断的响应时序如图:某中断的响应时序如图:n若若M1M1周期的周期的S5P2S5P2前某中断生效,在前某中断生效,在S5P2S5P2期间其中断请求被锁存到相应的期间其中断请求被锁存到相应的标志位中去;标志位中去;M2M2恰逢指令的最后一个机

135、器周期,且该指令不是恰逢指令的最后一个机器周期,且该指令不是RETIRETI或访问或访问IEIE、IPIP的指令。于是,的指令。于是,M3M3和和M4M4便可以执行硬件便可以执行硬件LCALLLCALL指令,指令,M5M5周期将进入周期将进入了中断服务程序。了中断服务程序。n80C5180C51的中断响应时间(从标志置的中断响应时间(从标志置1 1到进入相应的中断服务),到进入相应的中断服务),至少要至少要3 3个个完整的机器周期完整的机器周期。2.7.4 80C512.7.4 80C51单片机中断处理过程单片机中断处理过程126Xinjiang University127 将将相应的优先级状

136、态触发器置相应的优先级状态触发器置1 1(以阻断后来的同级或低级的中断(以阻断后来的同级或低级的中断请求)。请求)。执行一条硬件执行一条硬件LCALLLCALL指令指令,即把程序计数器,即把程序计数器PCPC的内容压入堆栈保存,的内容压入堆栈保存,再将相应的中断服务程序的入口地址送入再将相应的中断服务程序的入口地址送入PCPC。执行中断服务程序执行中断服务程序。中断响应过程的中断响应过程的前两步是由中断系统内部自动完成的前两步是由中断系统内部自动完成的,而中断服务,而中断服务程序则要由用户编写程序来完成。程序则要由用户编写程序来完成。中断响应过程中断响应过程2.7.4 80C512.7.4 8

137、0C51单片机中断处理过程单片机中断处理过程127Xinjiang University中断响应中断响应一旦一旦CPU决定响应中断,则决定响应中断,则CPU会去执行相应的中断服务程序。会去执行相应的中断服务程序。中断响应的过程包括中断响应的过程包括:保护断点地址保护断点地址程序转至中断服务程序的程序转至中断服务程序的入口地址入口地址执行中断服务子程序执行中断服务子程序保护和恢复现场保护和恢复现场处理中断源请求处理中断源请求 断点断点中中断断响响应应中断服务程序中断服务程序的入口地址的入口地址中断服务子程序中断服务子程序主程序主程序中断申请中断申请放到哪里去呢?放到哪里去呢?系统自动放入系统自动

138、放入堆栈保护!堆栈保护!2.7.4 80C512.7.4 80C51单片机中断处理过程单片机中断处理过程128Xinjiang University中断响应中断响应一旦一旦CPU决定响应中断,则决定响应中断,则CPU会去执行相应的中断服务程序。会去执行相应的中断服务程序。CPU是根据每个是根据每个中断的入口中断的入口来进行响应的。来进行响应的。怎怎怎怎样样才能找才能找才能找才能找到正确的中到正确的中到正确的中到正确的中断程序呢?断程序呢?断程序呢?断程序呢?中断源中断源中断服务程序中断服务程序入口入口地址地址INT00003HT0000BHINT10013HT1001BH串口串口0023H2.

139、7.4 80C512.7.4 80C51单片机中断处理过程单片机中断处理过程129Xinjiang University中断响应中断响应一旦一旦CPU决定响应中断,则决定响应中断,则CPU会去执行相应的中断服务程序。会去执行相应的中断服务程序。中断响应的过程包括:中断响应的过程包括:保护断点地址保护断点地址程序转至中断服务程序的程序转至中断服务程序的入口地址入口地址执行中断服务子程序执行中断服务子程序保护和恢复现场保护和恢复现场处理中断源请求处理中断源请求 断点断点中中断断响响应应中断服务程序中断服务程序的入口地址的入口地址中断服务子程序中断服务子程序主程序主程序中断申请中断申请2.7.4 8

140、0C512.7.4 80C51单片机中断处理过程单片机中断处理过程130Xinjiang University中断响应中断响应中断服务中断服务保护现场保护现场处理中断源要求处理中断源要求恢复现场恢复现场中中断断响响应应断断中中返返回回主程序主程序中断申请中断申请保护现场保护现场中断源处理中断源处理恢复现场恢复现场2.7.4 80C512.7.4 80C51单片机中断处理过程单片机中断处理过程131Xinjiang University132 中断返回中断返回RETIRETI指令指令的具体功能是:的具体功能是:将中断响应时压入堆栈保存的将中断响应时压入堆栈保存的断点地址从栈顶弹出送回断点地址从栈

141、顶弹出送回PCPC,CPUCPU从原来中从原来中断的地方继续执行程序;断的地方继续执行程序;将相应中断优先级状态触发器清将相应中断优先级状态触发器清0 0,通知中断系统,通知中断系统,中断服务程序已执中断服务程序已执行完毕行完毕。注意,不能用注意,不能用RETRET指令代替指令代替RETIRETI指令。在中断服务程序中指令。在中断服务程序中PUSHPUSH指令与指令与POPPOP指令必须成对使用,否则不能正确返回断点指令必须成对使用,否则不能正确返回断点。2.7.4 80C512.7.4 80C51单片机中断处理过程单片机中断处理过程132Xinjiang University133 2.7.

142、4 80C512.7.4 80C51单片机中断处理过程单片机中断处理过程中断请求的撤除中断请求的撤除 CPU CPU响应中断请求后,响应中断请求后,在中断返回(执行在中断返回(执行RETIRETI)前,必须撤除请求,)前,必须撤除请求,否则会错误地再一次引起中断过程否则会错误地再一次引起中断过程。 (1 1)对于定时器计数器)对于定时器计数器0 0、1 1的中断请求及的中断请求及跳变跳变触发方式的外部中触发方式的外部中断断0 0、1 1,CPUCPU在响应中断后在响应中断后用硬件清除用硬件清除了相应的中断请求标志了相应的中断请求标志TF0TF0、TF1TF1、IE0IE0、IE1IE1,即,即

143、自动撤除了中断请求自动撤除了中断请求。 (2 2)对于串行接口中断及定时器)对于串行接口中断及定时器/ /计数器计数器2 2中断,中断,CPUCPU响应中必须由响应中必须由用户编制的中断服务程序来清除用户编制的中断服务程序来清除相应的中断标志(软件清除)。相应的中断标志(软件清除)。 (3 3)对于)对于电平电平触发的外部中断,需要外接电路来撤除中断请求信号。触发的外部中断,需要外接电路来撤除中断请求信号。133Xinjiang University 若外部中断定义为若外部中断定义为电平触发电平触发方式方式,中断标志位的状态随,中断标志位的状态随CPUCPU在每个在每个机器周期采样到的外部中断

144、输入引脚的电平变化而变化,这样能提高机器周期采样到的外部中断输入引脚的电平变化而变化,这样能提高CPUCPU对外部中断请求的响应速度。但外部中断源若有请求,必须把有效对外部中断请求的响应速度。但外部中断源若有请求,必须把有效的的低电平保持到请求获得响应时为止低电平保持到请求获得响应时为止,不然就会漏掉;,不然就会漏掉;而在中断服务程而在中断服务程序结束之前,中断源又必须撤消其有效的低电平序结束之前,中断源又必须撤消其有效的低电平,否则中断返回之后将,否则中断返回之后将再次产生中断。再次产生中断。电平触发方式电平触发方式适合于外部中断输入以低电平输入适合于外部中断输入以低电平输入且中断服务程序能

145、清且中断服务程序能清除外部中断请求源的情况。例如,并行接口芯片除外部中断请求源的情况。例如,并行接口芯片82558255的中断请求线在接的中断请求线在接受读或写操作后即被复位,因此,以其去请求电平触发方式的中断比较受读或写操作后即被复位,因此,以其去请求电平触发方式的中断比较方便。方便。2.7.4 80C512.7.4 80C51单片机中断处理过程单片机中断处理过程134Xinjiang University135 若外部中断定义为若外部中断定义为边沿触发方式边沿触发方式,在相继连续的两次采样中,一个周,在相继连续的两次采样中,一个周期采样到外部中断输入为高电平,下一个周期采样到为低电平,则在

146、期采样到外部中断输入为高电平,下一个周期采样到为低电平,则在IE0IE0或或IE1IE1中将锁存一个逻辑中将锁存一个逻辑1 1。即便是。即便是CPUCPU暂时不能响应,中断申请标志也不暂时不能响应,中断申请标志也不会丢失,直到会丢失,直到CPUCPU响应此中断时才清零。这样,为保证下降沿能被可靠地响应此中断时才清零。这样,为保证下降沿能被可靠地采样到,采样到,外中断引脚上的高低电平(负脉冲的宽度)均至少要保持一个机外中断引脚上的高低电平(负脉冲的宽度)均至少要保持一个机器周期器周期(若晶振为(若晶振为12MHz12MHz时,为时,为1 1微秒)。微秒)。边沿触发方式适合于以负脉冲形式输入的外部

147、中断请求,如边沿触发方式适合于以负脉冲形式输入的外部中断请求,如ADC0809ADC0809的转的转换结束标志信号换结束标志信号EOCEOC为正脉冲,经反相后就可以作为为正脉冲,经反相后就可以作为80C5180C51的中断输入。的中断输入。2.7.4 80C512.7.4 80C51单片机中断处理过程单片机中断处理过程135Xinjiang University136 例例多外部中断源的系统示例。多外部中断源的系统示例。设有设有5 5个外部中断源,中断优先级排队顺序为:个外部中断源,中断优先级排队顺序为:XI0XI0、XI1XI1、XI2XI2、XI3XI3、XI4XI4。试设计它们与。试设计

148、它们与80C5180C51单片机的接口。单片机的接口。136Xinjiang University137 ORG 0003H ORG 0003H LJMP INSE0 LJMP INSE0 ;转外部中断;转外部中断0 0服务程序入口服务程序入口ORG 0013H ORG 0013H LJMP INSE1 LJMP INSE1 ;转外部中断;转外部中断1 1服务程序入口服务程序入口 INSE0 INSE0:PUSH PSW PUSH PSW ;XI0XI0中断服务程序中断服务程序PUSH ACC PUSH ACC POP ACC POP ACC POP PSW POP PSW RETI RETI

149、 137Xinjiang University138 INSE1 INSE1:PUSH PSW PUSH PSW ;中断服务程序;中断服务程序PUSH ACC PUSH ACC JB P1.0 JB P1.0,DV1 DV1 ;P1.0P1.0为为1 1,转,转XI1XI1中断服务程序中断服务程序JB P1.1JB P1.1,DV2 DV2 ;P1.1P1.1为为1 1,转,转XI2XI2中断服务程序中断服务程序JB P1.2JB P1.2,DV3 DV3 ;P1.2P1.2为为1 1,转,转XI3XI3中断服务程序中断服务程序JB P1.3JB P1.3,DV4 DV4 ;P1.3P1.3为

150、为1 1,转,转XI4XI4中断服务程序中断服务程序INRETINRET:POP ACC POP ACC POP PSW POP PSW RETI RETI DV1 DV1: ;XI1XI1中断服务程序中断服务程序AJMP INRET AJMP INRET DV2 DV2: ;XI2XI2中断服务程序中断服务程序AJMP INRET AJMP INRET DV3 DV3: ;XI3XI3中断服务程序中断服务程序AJMP INRET AJMP INRET DV4 DV4: ;XI4XI4中断服务程序中断服务程序AJMP INRETAJMP INRET138Xinjiang University2

151、.8 2.8 特殊工作方式特殊工作方式一、复位方式 当单片机的复位(当单片机的复位(RSTRST)引脚上,只要出现)引脚上,只要出现10ms10ms以上的高电平,以上的高电平,则单片机就实现复位。则单片机就实现复位。1、复位工作状态 复位后,特殊功能寄存器和程序计数器复位后,特殊功能寄存器和程序计数器PCPC的状态会发生改变。的状态会发生改变。但但复位不影响片内复位不影响片内RAMRAM存放的内容存放的内容,而,而ALEALE,/PSEN/PSEN在复位有效期间将输在复位有效期间将输出高电平。出高电平。139Xinjiang University2.8 2.8 特殊工作方式特殊工作方式一、复位

152、方式1、复位工作状态 复位后,单片机选择工作寄存器复位后,单片机选择工作寄存器0组组定时计数器定时计数器0,1停止工作,外部中断为电平触发。停止工作,外部中断为电平触发。中断禁止工作中断禁止工作中断设置在低优先级中断设置在低优先级并行口可作为输入口并行口可作为输入口方式方式0,非门控,非门控禁止串行接收禁止串行接收140Xinjiang University2.8 2.8 特殊工作方式特殊工作方式 2.复位电路复位电路MCS一一51单片机系统常常有上电复位和操作复位两种方法。单片机系统常常有上电复位和操作复位两种方法。所谓所谓上电复位上电复位,是指计算机上电瞬间,要在,是指计算机上电瞬间,要在

153、RST引脚上出现宽度引脚上出现宽度大于大于10ms的正脉冲,使计算机进人复位状态。的正脉冲,使计算机进人复位状态。操作复位操作复位指用户按指用户按下下“复位复位”按钮使计算机进人复位状态。按钮使计算机进人复位状态。复位是靠外部电路实现的。复位是靠外部电路实现的。(见教材(见教材P75)141Xinjiang University作业:31, 34, 39-49142Xinjiang University2.6.2复位电路复位电路图2-22MCS-51外部复位电路143Xinjiang University2.7节电运行状态和掉电运行状态节电运行状态和掉电运行状态对于采用CHMOS工艺生产的增强

154、型MCS-51内核CPU,如8XC5X系列、8XC5XX2系列,除了正常的操作方式外,还具有掉电运行方式和节电运行方式,且后备电源可直接加入VCC端,掉电数据保护容易现实。8XC5X系列单片机工作方式由特殊功能寄存器PCON内的b1、b0位控制,该寄存器各位含义如下:SMOD1SMOD0-POFGF1GF0PDIDLb7b6b5b4b3b2b1b0b7b6b5b4b3b2b1b0144Xinjiang UniversitySMOD1(即b7位)、SMOD0(即b6位)与串行通信有关,其中SMOD1是波特率倍增位,当该位为时,设置的波特率;SMOD0是帧错误/模式识别选择位。GF1、GF0为通用

155、标志,由用户置位或复位。POF(即b4)为上电标志位,当电源引脚Vcc由0V升到+5V工作过程中,POF被硬件置1。只要VCC维持在3.0V以上,POF位就不变。PD(即b1位)为掉电操作方式位。当PD=1时,进入掉电操作方式。IDL(即b0位)为节电操作方式位。当IDL=1时,进入节电运行方式。当PD和IDL位同时有效,即PD、IDL位均为1时,进入掉电方式,即掉电方式优先权高于节电方式。145Xinjiang University复位后,PCON寄存器初值为00XX0000B,即PD、IDL均为0,处于正常操作方式。由于PCON寄存器不具备位寻址功能,因此只能通过或指令对PCON寄存器中的

156、某一位进行置位操作,如:ORLPCON,#01H;和立即数01H进行逻辑或运算,使b0位,即IDL=1,迫使机器进入节;电运行状态146Xinjiang UniversityCHMOS工艺的MCS-51系列单片机三种工作方式下的功耗(振荡频率为12MHz):CPU状态工作电流电压功耗正常操作方式16.0mA 5V80.0mW节电操作方式3.7mA 5V18.5mW掉电操作方式50A2V0.1mW147Xinjiang University表2-5掉电和节电操作期间有关引脚状态引脚状态对内部ROM取指时对外部ROM取指时节电方式掉电方式节电方式掉电方式ALE高电平低电平高电平低电平高电平低电平高

157、电平低电平P0口SFR数据SFR数据高阻态高阻态P2口SFR数据SFR数据PCHSFR数据P1口SFR数据SFR数据SFR数据SFR数据P3口SFR数据SFR数据SFR数据SFR数据148Xinjiang University1.掉电方式掉电方式当PD位为1时,CPU进入掉电操作方式:CPU内振荡电路停止工作,但片内RAM和特殊功能寄存器内容保持不变;片内所有操作均处于停止状态。进入掉电方式后,功耗降到最低,电源电压VCC只要大于2V即可保持片内RAM和特殊功能寄存器内信息,此时可通过硬件复位强迫CPU退出掉电方式或通过外中断INT0、INT1唤醒掉电模式。但必须注意通过复位终止掉电状态时,特

158、殊功能寄存器将重新定义,可见掉电前特殊功能寄存器内的数据并不能保存,因此,对于需要保护的特殊功能寄存器必须放在内部RAM或有后备电池供电的外部RAM中。149Xinjiang University为此,可通过INT0、INT1中断方式退出掉电状态,这样就保留特殊功能寄存器和内部RAM中的内容。通过外中断方式唤醒掉电模式时,外中断必须定义为低电平触发方式,当INT0或INT1为低电平时,震荡器启动,延迟10ms待晶振电路稳定后,INT0或INT1恢复为高电平,执行中断返回指令RETI指令后,返回正常操作模式。必须注意进入电源掉电状态前,电源VCC不能下降;在电源VCC恢复为正常前,不能终止掉电状

159、态。150Xinjiang University2.节电方式节电方式当IDL=1时,CPU进入节电运行方式:CPU内振荡电路仍在工作,给中断系统、定时/计数器、串行口等部件提供时钟信号,但切断了输入CPU内核的时钟信号,使CPU操作处于暂停状态。在节电状态下,内部RAM及特殊功能寄存器、程序计数器PC等均保持不变,即退出节电状态后,完全能恢复运行,这一点与掉电方式不同。即进入节电方式时,无须保护数据。进入节电方式后,ALE信号和为高电平。151Xinjiang University有两种方法可以退出节电方式:硬件中断由于在节电方式下,中断系统仍在工作,因此,任何允许的中断请求均会引起硬件清除I

160、DL标志,从而退出节电方式,并执行相应中断服务程序,返回后即可执行IDL=1的指令的下一条指令。硬件复位利用硬件复位同样可退出节电方式,但硬件复位后,各特殊功能寄存器将重新定义,PC也为0000H,即通过硬件复位退出节电方式将不能恢复特殊功能寄存器的值。152Xinjiang University153 2.7.5 2.7.5 中断程序举例中断程序举例153Xinjiang University154Xinjiang University155 ORG 0000H ORG 0000H STARTSTART:LJMP MAIN LJMP MAIN ;跳转到主程序;跳转到主程序ORG 0003H

161、ORG 0003H LJMP INTO LJMP INTO ;转向中断服务程序;转向中断服务程序ORG 0030H ORG 0030H ;主程序;主程序MAINMAIN:CLR IT0 CLR IT0 ;设为电平触发方式;设为电平触发方式SETB EA SETB EA ;CPUCPU开放中断开放中断SETB EX0 SETB EX0 ;允许中断;允许中断MOV DPTRMOV DPTR,#1000H #1000H ;设置数据区地址指针;设置数据区地址指针 ORG 0200H ORG 0200H ;中断服务程序;中断服务程序INT0INT0:PUSH PSW PUSH PSW ;保护现场;保护现

162、场PUSH ACC PUSH ACC CLR P3.0 CLR P3.0 ;由;由P3.0P3.0输出输出0 0 NOP NOP NOP NOP SETB P3.0 SETB P3.0 ;由;由P3.0P3.0输出输出1 1,撤除,撤除MOV AMOV A,P1 P1 ;输入数据;输入数据MOVX DPTRMOVX DPTR,A A ;存入数据存储器;存入数据存储器INC DPTR INC DPTR ;修改数据指针,指向下一个单元;修改数据指针,指向下一个单元 POP ACC POP ACC ;恢复现场;恢复现场POP PSW POP PSW RETI RETI ;中断返回;中断返回155Xi

163、njiang University156 6.3 单片机串行口应用举例 在计算机分布式测控系统中,经常要利用串行通信方在计算机分布式测控系统中,经常要利用串行通信方式进行数据传输。式进行数据传输。80C5180C51单片机的串行口为计算机间的通信提单片机的串行口为计算机间的通信提供了极为便利的条件。利用单片机的串行口还可以方便地扩展供了极为便利的条件。利用单片机的串行口还可以方便地扩展键盘和显示器,对于简单的应用非常便利。这里仅介绍单片机键盘和显示器,对于简单的应用非常便利。这里仅介绍单片机串行口在通信方面的应用,关于键盘和显示器的扩展将在下一串行口在通信方面的应用,关于键盘和显示器的扩展将在

164、下一章介绍。章介绍。2.6 2.6 串行输入串行输入/ /输出接口输出接口157 6.3.1 6.3.1 单片机与单片机的通信单片机与单片机的通信一、点对点的通信一、点对点的通信1 1、硬件连接、硬件连接2.6 2.6 串行输入串行输入/ /输出接口输出接口158 二、应用程序二、应用程序2.6 2.6 串行输入串行输入/ /输出接口输出接口159 设设1 1号机是发送方,号机是发送方,2 2号机是接收方。号机是接收方。当当1 1号机发送时,先发送一个号机发送时,先发送一个“E1E1”联络信号,联络信号,2 2号号“E2E2”机收到后回机收到后回答一个应答信号,表示同意接收。答一个应答信号,表

165、示同意接收。当当1 1号机收到应答信号号机收到应答信号“E2E2”后,开始发送数据,每发送一个数据字节后,开始发送数据,每发送一个数据字节都要计算都要计算“校验和校验和”,假定数据块长度为,假定数据块长度为1616个字节,起始地址为个字节,起始地址为40H40H,一个数据块发送完毕后立即发送一个数据块发送完毕后立即发送“校验和校验和”。2 2号机接收数据并转存到数据缓冲区,起始地址也为号机接收数据并转存到数据缓冲区,起始地址也为40H40H,每接收到一,每接收到一个数据字节便计算一次个数据字节便计算一次“校验和校验和”,当收到一个数据块后,再接收,当收到一个数据块后,再接收1 1号号机发来的机

166、发来的“校验和校验和”,并将它与,并将它与2 2号机求出的校验和进行比较。号机求出的校验和进行比较。若两者相等,说明接收正确,若两者相等,说明接收正确,2 2号机回答号机回答00H00H;若两者不相等,说明接;若两者不相等,说明接收不正确,收不正确,2 2号机回答号机回答0FFH0FFH,请求重发。,请求重发。2.6 2.6 串行输入串行输入/ /输出接口输出接口p1 1号机接到号机接到00H00H后结束发送。若收到的答复非零,则重新发送数据一次。后结束发送。若收到的答复非零,则重新发送数据一次。p双方约定采用串行口方式双方约定采用串行口方式1 1进行通信,一帧信息为进行通信,一帧信息为101

167、0位,其中有位,其中有1 1个起始位、个起始位、8 8个数据位和一个停止位;波特率为个数据位和一个停止位;波特率为24002400波特,波特,T1T1工作在定时器方式工作在定时器方式2 2,振,振荡频率选用荡频率选用11.0592MHZ11.0592MHZ,查表可得,查表可得TH1=TL1=0F4HTH1=TL1=0F4H,PCONPCON寄存器的寄存器的SMODSMOD位为位为0 0。 2.6 2.6 串行输入串行输入/ /输出接口输出接口160Xinjiang University161 发送程序清单如下:发送程序清单如下:ASTARTASTART:CLR EA CLR EA MOV TM

168、OD MOV TMOD,#20H #20H ;定时器;定时器1 1置为方式置为方式2 2 MOV TH1 MOV TH1,#0F4H #0F4H ;装载定时器初值,波特率;装载定时器初值,波特率2400 2400 MOV TL1 MOV TL1,#0F4H #0F4H MOV PCON MOV PCON,#00H #00H SETB TR1 SETB TR1 ;启动定时器;启动定时器MOV SCONMOV SCON,#50H #50H ;设定串口方式;设定串口方式1 1,且准备接收应答信号,且准备接收应答信号ALOOP1ALOOP1:MOV SBUFMOV SBUF,#0E1H #0E1H ;

169、发联络信号;发联络信号JNB TIJNB TI,$ $ ;等待一帧发送完毕;等待一帧发送完毕CLR TI CLR TI ;允许再发送;允许再发送JNB RIJNB RI,$ $ ;等待;等待2 2号机的应答信号号机的应答信号2.6 2.6 串行输入串行输入/ /输出接口输出接口 CLR RI CLR RI ;允许再接收;允许再接收 MOV AMOV A,SBUF SBUF ;2 2号机应答后,读至号机应答后,读至A A XRL A XRL A,#0E2H #0E2H ;判断;判断2 2号机是否准备完毕号机是否准备完毕 JNZ ALOOP1 JNZ ALOOP1 ;2 2号机未准备好,继续联络号

170、机未准备好,继续联络 ALOOP2ALOOP2:MOV R0MOV R0,#40H #40H ;2 2号机准备好,设定数据块地址指针初值号机准备好,设定数据块地址指针初值 MOV R7MOV R7,#10H #10H ;设定数据块长度初值;设定数据块长度初值 MOV R6MOV R6,#00H #00H ;清校验和单元;清校验和单元2.6 2.6 串行输入串行输入/ /输出接口输出接口162Xinjiang University163 2.6 2.6 串行输入串行输入/ /输出接口输出接口ALOOP3:MOV SBUF,R0 ;发送一个数据字节;发送一个数据字节 MOV A,R6 ADD A,

171、R0 ;求校验和;求校验和 MOV R6,A ;保存校验和;保存校验和 INC R0 JNB TI,$ CLR TI DJNZ R7,ALOOP3 ;整个数据块是否发送完毕;整个数据块是否发送完毕 MOV SBUF,R6 ;发送校验和;发送校验和 JNB TI,$ CLR TI JNB RI,$ ;等待;等待2号机的应答信号号机的应答信号 CLR RI MOV A,SBUF ;2号机应答,读至号机应答,读至A JNZ ALOOP2 ;2号机应答号机应答“错误错误”,转重新发送,转重新发送 RET ;2号机应答号机应答“正确正确”,返回,返回164 接收程序清单如下:接收程序清单如下:BSTAR

172、TBSTART:CLR EA CLR EA MOV TMOD MOV TMOD,#20H #20H MOV TH1 MOV TH1,#0F4H #0F4H MOV TL1 MOV TL1,#0F4H #0F4H MOV PCON MOV PCON,#00H #00H SETB TR1 SETB TR1 MOV SCON MOV SCON,#50H #50H ;设定串口方式;设定串口方式1 1,且准备接收,且准备接收BLOOP1BLOOP1:JNB RIJNB RI,$ $ ;等待;等待1 1号机的联络信号号机的联络信号CLR RI CLR RI MOV A MOV A,SBUF SBUF ;收

173、到;收到1 1号机信号号机信号XRL AXRL A,#0E1H #0E1H ;判是否为;判是否为1 1号机联络信号号机联络信号2.6 2.6 串行输入串行输入/ /输出接口输出接口 JNZ BLOOP1 JNZ BLOOP1 ;不是;不是1 1号机联络信号,再等待号机联络信号,再等待 MOV SBUFMOV SBUF,#0E2H #0E2H ;是;是1 1号机联络信号,发应答信号号机联络信号,发应答信号 JNB TIJNB TI,$ $ CLR TI CLR TI MOV R0 MOV R0,#40H #40H ;设定数据块地址指针初值;设定数据块地址指针初值 MOV R7MOV R7,#10

174、H #10H ;设定数据块长度初值;设定数据块长度初值 MOV R6MOV R6,#00H #00H ;清校验和单元;清校验和单元2.6 2.6 串行输入串行输入/ /输出接口输出接口165Xinjiang University166 BLOOP2 BLOOP2:JNB RIJNB RI,$ $ CLR RI CLR RI MOV A MOV A,SBUF SBUF MOV R0 MOV R0,A A ;接收数据转储;接收数据转储INC R0 INC R0 ADD A ADD A,R6 R6 ;求校验和;求校验和MOV R6MOV R6,A A DJNZ R7 DJNZ R7,BLOOP2 B

175、LOOP2 ;判数据块是否接收完毕;判数据块是否接收完毕JNB RIJNB RI,$ $ ;完毕,接收;完毕,接收1 1号机发来的校验和号机发来的校验和CLR RI CLR RI MOV A MOV A,SBUF SBUF XRL A XRL A,R6 R6 ;比较校验和;比较校验和JZ END1 JZ END1 ;校验和相等,跳至发正确标志;校验和相等,跳至发正确标志MOV SBUFMOV SBUF,#0FFH #0FFH ;校验和不相等,发错误标志;校验和不相等,发错误标志JNB TIJNB TI,$ $ ;转重新接收;转重新接收CLR TI CLR TI END1END1:MOV SBU

176、FMOV SBUF,#00H #00H RET RET2.6 2.6 串行输入串行输入/ /输出接口输出接口167 二、多机通信1、硬件连接单片机构成的多机系统常采用总线型主从式结构。所谓主从式,即在数个单片机中,有一个是主机,其余的是从机,从机要服从主机的调度、支配。80C31单片机的串行口方式2和方式3适于这种主从式的通信结构。当然采用不同的通信标准时,还需进行相应的电平转换,有时还要对信号进行光电隔离。在实际的多机应用系统中,常采用RS-485串行标准总线进行数据传输。2.6 2.6 串行输入串行输入/ /输出接口输出接口168 2 2、通信协议、通信协议n所有从机的所有从机的SM2SM

177、2位置位置1 1,处于接收地址帧状态。,处于接收地址帧状态。n主机发送一地址帧,其中主机发送一地址帧,其中8 8位是地址,第位是地址,第9 9位为地址位为地址/ /数据的区分标志,该位置数据的区分标志,该位置1 1表表示该帧为地址帧。示该帧为地址帧。n所有从机收到地址帧后,都将接收的地址与本机的地址比较。对于地址相符的从所有从机收到地址帧后,都将接收的地址与本机的地址比较。对于地址相符的从机,使自己的机,使自己的SM2SM2位置位置0 0(以接收主机随后发来的数据帧),并把本站地址发回主机(以接收主机随后发来的数据帧),并把本站地址发回主机作为应答;对于地址不符的从机,仍保持作为应答;对于地址

178、不符的从机,仍保持SM2=1SM2=1,对主机随后发来的数据帧不予理,对主机随后发来的数据帧不予理睬。睬。n从机发送数据结束后,要发送一帧校验和,并置第从机发送数据结束后,要发送一帧校验和,并置第9 9位(位(TB8TB8)为)为1 1,作为从机数据,作为从机数据传送结束的标志。传送结束的标志。2.6 2.6 串行输入串行输入/ /输出接口输出接口169 n主机接收数据时先判断数据接收标志(主机接收数据时先判断数据接收标志(RB8RB8),若),若RB8=1RB8=1,表示数据传送结,表示数据传送结束,并比较此帧校验和,若正确则回送正确信号束,并比较此帧校验和,若正确则回送正确信号00H00H

179、,此信号命令该从机复,此信号命令该从机复位(即重新等待地址帧);若校验和出错,则发送位(即重新等待地址帧);若校验和出错,则发送0FFH0FFH,命令该从机重发,命令该从机重发数据。若接收帧的数据。若接收帧的RB8=0RB8=0,则存数据到缓冲区,并准备接收下帧信息。,则存数据到缓冲区,并准备接收下帧信息。n主机收到从机应答地址后,确认地址是否相符,如果地址不符,发复位信主机收到从机应答地址后,确认地址是否相符,如果地址不符,发复位信号(数据帧中号(数据帧中TB8=1TB8=1);如果地址相符,则清);如果地址相符,则清TB8TB8,开始发送数据。,开始发送数据。n从机收到复位命令后回到监听地

180、址状态(从机收到复位命令后回到监听地址状态(SM2=1SM2=1)。否则开始接收数据和)。否则开始接收数据和命令。命令。2.6 2.6 串行输入串行输入/ /输出接口输出接口170 3 3、应用程序、应用程序n主机发送的地址联络信号为:主机发送的地址联络信号为:00H00H,01H01H,02H 02H , (即从机设备地址),地址(即从机设备地址),地址FFHFFH为命令为命令各从机复位,即恢复各从机复位,即恢复SM2=1SM2=1。n主机命令编码为:主机命令编码为:01H01H,主机命令从机接收数据;,主机命令从机接收数据;02H02H,主机命令从机发送数据。其它都按,主机命令从机发送数据

181、。其它都按02H02H对待。对待。RRDY=1RRDY=1:表示从机准备好接收。:表示从机准备好接收。TRDY=1TRDY=1:表示从机准备好发送。:表示从机准备好发送。ERR=1ERR=1:表示从机接收的命令是非法的。表示从机接收的命令是非法的。程序分为主机程序和从机程序。约定一次传递数据为程序分为主机程序和从机程序。约定一次传递数据为1616个字节,以个字节,以01H01H地地址的从机为例址的从机为例。2.6 2.6 串行输入串行输入/ /输出接口输出接口171 主机程序清单:主机程序清单:设从机地址号存于设从机地址号存于40H40H单元,命令存于单元,命令存于41H41H单元。单元。MA

182、INMAIN:MOV TMODMOV TMOD,#20H #20H ;T1T1方式方式2 2 MOV TH1 MOV TH1,#0FDH #0FDH ;初始化波特率;初始化波特率9600 9600 MOV TL1 MOV TL1,#0FDH #0FDH MOV PCON MOV PCON,#00H #00H SETB TR1 SETB TR1 MOV SCON MOV SCON,#0F0H #0F0H ;串口方式;串口方式3 3,多机,准备接收应答,多机,准备接收应答LOOP1LOOP1:SETB TB8 SETB TB8 MOV SBUF MOV SBUF,40H 40H ;发送预通信从机地

183、址;发送预通信从机地址JNB TIJNB TI,$ $ CLR TI CLR TI JNB RI JNB RI,$ $ ;等待从机对联络应答;等待从机对联络应答CLR RI CLR RI MOV A MOV A,SBUF SBUF ;接收应答,读至;接收应答,读至A A XRL AXRL A,40H 40H ;判应答的地址是否正确;判应答的地址是否正确JZ AD_OK JZ AD_OK 2.6 2.6 串行输入串行输入/ /输出接口输出接口172 AD_ERRAD_ERR:MOV SBUFMOV SBUF,#0FFH #0FFH ;应答错误,发命令;应答错误,发命令FFH FFH JNB TI

184、 JNB TI,$ $ CLR TI CLR TI SJMP LOOP1 SJMP LOOP1 ;返回重新发送联络信号;返回重新发送联络信号AD_OKAD_OK:CLR TB8 CLR TB8 ;应答正确;应答正确MOV SBUFMOV SBUF,41H 41H ;发送命令字;发送命令字JNB TIJNB TI,$ $ CLR TI CLR TI JNB RI JNB RI,$ $ ;等待从机对命令应答;等待从机对命令应答CLR RI CLR RI MOV A MOV A,SBUF SBUF ;接收应答,读至;接收应答,读至A A XRL A XRL A,#80H #80H ;判断应答是否正确

185、;判断应答是否正确JNZ CO_OK JNZ CO_OK SETB TB8 SETB TB8 SJMP AD_ERR SJMP AD_ERR ;错误处理;错误处理2.6 2.6 串行输入串行输入/ /输出接口输出接口173 CO_OKCO_OK:MOV AMOV A,SBUF SBUF ;应答正确,判是发送还是接收命令;应答正确,判是发送还是接收命令XRL AXRL A,#01H #01H JZ SE_DATA JZ SE_DATA ;从机准备好接收,可以发送;从机准备好接收,可以发送MOV AMOV A,SBUFSBUF XRL A XRL A,#02H #02H JZ RE_DATA JZ

186、 RE_DATA ;从机准备好发送,可以接收;从机准备好发送,可以接收LJMP SE_DATA LJMP SE_DATA RE_DATA RE_DATA:MOV R6MOV R6,#00H #00H ;清校验和接收;清校验和接收1616个字节数据个字节数据MOV R0MOV R0,#30H #30H MOV R7 MOV R7,#10H #10H 2.6 2.6 串行输入串行输入/ /输出接口输出接口174 LOOP2LOOP2:JNB RIJNB RI,$ $ CLR RI CLR RI MOV A MOV A,SBUF SBUF MOV R0 MOV R0,A A INC R0 INC R

187、0 ADD A ADD A,R6 R6 MOV R6 MOV R6,A A DJNZ R7 DJNZ R7,LOOP2 LOOP2 JNB RI JNB RI,$ $ CLR RI CLR RI MOV A MOV A,SBUF SBUF ;接收校验和并判断;接收校验和并判断XRL AXRL A,R6 R6 JZ XYOK JZ XYOK ;校验正确;校验正确MOV SBUFMOV SBUF,#0FFH #0FFH ;校验错误;校验错误JNB TIJNB TI,$ $ CLR TI CLR TI LJMP RE_DATA LJMP RE_DATA 2.6 2.6 串行输入串行输入/ /输出接口

188、输出接口175 XYOK :MOV SBUF,#00H ;校验和正确,发00H JNB TI,$ CLR TI SETB TB8 ;置地址标志LJMP RETEND SE_DATA:MOV R6,#00H ;发送16个字节数据MOV R0,#30H MOV R7,#10H LOOP3 :MOV A,R0 MOV SBUF,A JNB TI,$ CLR TI INC R0 ADD A,R6 MOV R6,A DJNZ R7,LOOP32.6 2.6 串行输入串行输入/ /输出接口输出接口176 MOV A,R6 MOV SBUF,A ;发校验和JNB TI,$ CLR TI JNB RI,$ C

189、LR RI MOV A,SBUF XRL A,#00H JZ RET_END ;从机接收正确SJMP SE_DATA ;从机接收不正确,重新发送RET_END:RET2.6 2.6 串行输入串行输入/ /输出接口输出接口177 从机程序清单:设本机号存于40H单元,41H单元存放“发送”命令,42H单元存放“接收”命令。MAIN:MOV TMOD,#20H ;初始化串行口MOV TH1,#0FDH MOV TL1,#0FDH MOV PCON,#00H SETB TR1 MOV SCON,#0F0H LOOP1:SETB EA ;开中断SETB ES SETB RRDY ;发送与接收准备就绪S

190、ETB TRDY SJMP LOOP12.6 2.6 串行输入串行输入/ /输出接口输出接口178 SERVESERVE:PUSH PSW PUSH PSW ;中断服务程序;中断服务程序PUSH ACC PUSH ACC CLR ES CLR ES CLR RI CLR RI MOV AMOV A,SBUF SBUF XRL AXRL A,40H 40H ;判断是否本机地址;判断是否本机地址JZ SER_OK JZ SER_OK LJMP ENDI LJMP ENDI ;非本机地址,继续监听;非本机地址,继续监听SER_OKSER_OK:CLR SM2 CLR SM2 ;是本机地址,取消监听状

191、态;是本机地址,取消监听状态MOV SBUFMOV SBUF,40H 40H ;本机地址发回;本机地址发回JNB TIJNB TI,$ $ CLR TI CLR TI JNB RI JNB RI,$ $ CLR RI CLR RI JB RB8 JB RB8,ENDII ENDII ;是复位命令,恢复监听;是复位命令,恢复监听MOV AMOV A,SBUF SBUF ;不是复位命令,判是;不是复位命令,判是“发送发送”还是还是“接收接收”XRL AXRL A,41H 41H JZ SERISE JZ SERISE ;收到;收到“发送发送”命令,发送处理命令,发送处理MOV AMOV A,SBU

192、F SBUF XRL A XRL A,42H 42H JZ SERIRE JZ SERIRE ;收到;收到“接收接收”命令,接收处理命令,接收处理SJMP FFML SJMP FFML ;非法命令,转非法处理;非法命令,转非法处理2.6 2.6 串行输入串行输入/ /输出接口输出接口179 SERISESERISE:JB TRDYJB TRDY,SEND SEND ;从机发送是否准备好;从机发送是否准备好MOV SBUFMOV SBUF,#00H #00H SJMP WAIT01 SJMP WAIT01 SEND SEND:MOV SBUFMOV SBUF,#02H #02H ;返回;返回“发

193、送准备好发送准备好”WAIT01WAIT01:JNB TIJNB TI,$ $ CLR TI CLR TI JNB RI JNB RI,$ $ CLR RI CLR RI JB RB8 JB RB8 ,ENDII ENDII ;主机接收是否准备就绪;主机接收是否准备就绪LCALL SE_DATA LCALL SE_DATA ;发送数据;发送数据LJMP END LJMP END FFML FFML:MOV SBUFMOV SBUF,#80H #80H ;发非法命令,恢复监听;发非法命令,恢复监听JNB TIJNB TI,$ $ CLR TI CLR TI LJMP ENDII LJMP END

194、II SERIRESERIRE:JB RRDY JB RRDY ,RECE RECE ;从机接收是否准备好;从机接收是否准备好MOV SBUFMOV SBUF,#00H #00H SJMP WAIT02 SJMP WAIT022.6 2.6 串行输入串行输入/ /输出接口输出接口180 RECE:MOV SBUF,#01H ;返回“接收准备好”WEIT02:JNB TI,$ CLR TI JNB RI,$ CLR RI JB RB8,ENDII ;主机发送是否就绪LCALL RE_DATA ;接收数据LJMP END ENDII:SETB SM2 ENDI:SETB ES END:POP AC

195、C POP PSW RETI2.6 2.6 串行输入串行输入/ /输出接口输出接口181 SE_DATASE_DATA:CLR TRDY CLR TRDY ;发送数据块子程序;发送数据块子程序MOV R6MOV R6,#00H #00H MOV R0 MOV R0,#30H #30H MOV R7 MOV R7,#10H #10H LOOP2 LOOP2:MOV AMOV A,R0 R0 MOV SBUF MOV SBUF,A A JNB TI JNB TI,$ $ CLR TI CLR TI INC R0 INC R0 ADD A ADD A,R6 R6 MOV R6 MOV R6,A A

196、DJNZ R7 DJNZ R7,LOOP2 LOOP2 ;数据块发送完毕?;数据块发送完毕?MOV AMOV A,R6 R6 MOV SBUF MOV SBUF,A A JNB TI JNB TI,$ $ ;发送校验和;发送校验和CLR TI CLR TI JNB RI JNB RI,$ $ CLR RI CLR RI MOV A MOV A,SBUF SBUF XRL A XRL A,#00H #00H ;判发送是否正确;判发送是否正确JZ SEND_OK JZ SEND_OK SJMP SE_DATA SJMP SE_DATA ;发送错误,重发;发送错误,重发2.6 2.6 串行输入串行输

197、入/ /输出接口输出接口182 SEND_OK:SETB SM2 ;发送正确,继续监听SETB ES RET RE_DATA:CLR RRDY ;接收数据块子程序MOV R6,#00H MOV R0,#30H MOV R7,#10H2.6 2.6 串行输入串行输入/ /输出接口输出接口183 LOOP3:JNB RI,$ CLR RI MOV A,SBUF MOV R0,A INC R0 ADD A,R6 MOV R6,A DJNZ R7,LOOP3 ;接收数据块完毕?JNB RI,$ ;接收校验和CLR RI MOV A,SBUF XRL A,R6 ;判断校验和是否正确JZ RECE_OK

198、MOV SBUF,#0FFH ;校验和错误,发FFH JNB TI,$ CLR TI LJMP RE_DATA ;重新接收2.6 2.6 串行输入串行输入/ /输出接口输出接口184 RECE_OK:MOV A,#00H ;校验和正确,发00H MOV SBUF,A JNB TI,$ CLR TI SETB SM2 ;继续监听SETB ES RET2.6 2.6 串行输入串行输入/ /输出接口输出接口185 6.3.2 6.3.2 单片机与单片机与PCPC机的通信机的通信在工控系统(尤其是多点现场工控系统)设计实践中,单片机与在工控系统(尤其是多点现场工控系统)设计实践中,单片机与PCPC机组

199、合构成分机组合构成分布式控制系统是一个重要的发展方向。分布式系统主从管理,层层控制。主控计布式控制系统是一个重要的发展方向。分布式系统主从管理,层层控制。主控计算机监督管理各子系统分机的运行状况。子系统与子系统可以平等信息交换,也算机监督管理各子系统分机的运行状况。子系统与子系统可以平等信息交换,也可以有主从关系。分布式系统最明显的特点是可靠性高,某个子系统的故障不会可以有主从关系。分布式系统最明显的特点是可靠性高,某个子系统的故障不会影响其它子系统的正常工作。影响其它子系统的正常工作。2.6 2.6 串行输入串行输入/ /输出接口输出接口186 1 1台台PCPC机即可以与机即可以与1 1个

200、个80C3180C31单片机应用系统通信,也可以与多个单片机应用系统通信,也可以与多个80C3180C31单片机应用单片机应用系统通信;可以近距离也可以远距离。单片机与系统通信;可以近距离也可以远距离。单片机与PCPC机通信时,其硬件接口技术主机通信时,其硬件接口技术主要是电平转换、控制接口设计和远近通信接口的不同处理技术。要是电平转换、控制接口设计和远近通信接口的不同处理技术。在在DOSDOS操作环境下,要实现单片机与微机的通信,只要直接对微机接口的通信操作环境下,要实现单片机与微机的通信,只要直接对微机接口的通信芯片芯片82508250进行口地址操作即可。在进行口地址操作即可。在WINDO

201、WSWINDOWS的环境下,由于系统硬件的无关性,的环境下,由于系统硬件的无关性,不再允许用户直接操作串口地址。如果用户要进行串行通信,可以调用不再允许用户直接操作串口地址。如果用户要进行串行通信,可以调用WINDOWSWINDOWS的的APIAPI应用程序接口函数,但其使用较为复杂,而使用应用程序接口函数,但其使用较为复杂,而使用VBVB通信控件(通信控件(MscommMscomm)却)却可以很容易的解决这一问题。可以很容易的解决这一问题。VBVB是是WINDOWSWINDOWS图形工作环境与图形工作环境与BasicBasic语言编程简便性的完美结合。它简明易用,语言编程简便性的完美结合。它

202、简明易用,实用性强。实用性强。VBVB提供一个名为提供一个名为MSCOMM32.OCXMSCOMM32.OCX的通信控件,它具备基本的串行通信能的通信控件,它具备基本的串行通信能力:即通过串行口发送和接收数据,为应用程序提供串行通信功能。力:即通过串行口发送和接收数据,为应用程序提供串行通信功能。2.6 2.6 串行输入串行输入/ /输出接口输出接口187 MSCommMSComm控件有许多属性,主要的几个如下:控件有许多属性,主要的几个如下:CommPortCommPort:设置并返回通信端口号;:设置并返回通信端口号;SettingsSettings:以字符串的方式设置并返回波特率、奇偶校

203、验、数据位、以字符串的方式设置并返回波特率、奇偶校验、数据位、停止位;停止位;PortOpenPortOpen:设置并返回端口的状态,也可以打开和关闭端口;:设置并返回端口的状态,也可以打开和关闭端口;InputInput:从接收缓冲区返回字符和删除字符;从接收缓冲区返回字符和删除字符;OutputOutput:向传输缓冲区写一个字符。向传输缓冲区写一个字符。2.6 2.6 串行输入串行输入/ /输出接口输出接口188 单片机程序清单如下:单片机程序清单如下:ORG 3000H ORG 3000H MAIN MAIN:MOV TMODMOV TMOD,#20H #20H ;在;在11.0592

204、MHz11.0592MHz下,串行口波特率下,串行口波特率MOV TH1MOV TH1,#0FDH #0FDH ;9600bps9600bps,方式,方式3 3 MOV TL1 MOV TL1,#0FDH #0FDH MOV PCON MOV PCON,#00H #00H SETB TR1 SETB TR1 MOV SCON MOV SCON,#0D8H #0D8H LOOP LOOP:JBC RIJBC RI,RECEIVE RECEIVE ;接收到数据后立即发出去;接收到数据后立即发出去SJMP LOOP SJMP LOOP RECEIVE RECEIVE:MOV AMOV A,SBUF

205、SBUF MOV SBUF MOV SBUF,A A SEND SEND:JBC TIJBC TI,SENDEND SENDEND SJMP SEND SJMP SEND SENDENDSENDEND:SJMP LOOPSJMP LOOP2.6 2.6 串行输入串行输入/ /输出接口输出接口189 PCPC机程序清单:(机程序清单:(VBVB语言)语言)Sub Form_LoadSub Form_Load()()MSComm1.CommPort=2 MSComm1.CommPort=2 MSComm1.PortOpen=TURE MSComm1.PortOpen=TURE MSComm1.Se

206、ttings= MSComm1.Settings=“96009600,N N,8 8,1 1” End Sub End Sub Sub command1_ClickSub command1_Click()()InstringInstring as string as string MSComm1.InBufferCount=0 MSComm1.InBufferCount=0 MSComm1.Output=A MSComm1.Output=A Do Do Dummy= Dummy=DoEventsDoEvents()()Loop UntilLoop Until(MSComm1.InBufferC

207、ount2MSComm1.InBufferCount2)InstringInstring=MSComm1.Input =MSComm1.Input End Sub End Sub Sub command2_Click Sub command2_Click()()MSComm1.PortOpen=FALSE MSComm1.PortOpen=FALSE UnLoadUnLoad Me Me End Sub End Sub2.6 2.6 串行输入串行输入/ /输出接口输出接口190 思考题及习题思考题及习题1 1、80C5180C51单片机串行口有几种工作方式?如何选择?简述其特点?单片机串行口有

208、几种工作方式?如何选择?简述其特点?2 2、串行通信的接口标准由那几种?、串行通信的接口标准由那几种?3 3、在串行通信中通信速率与传输距离之间的关系如何?、在串行通信中通信速率与传输距离之间的关系如何?4 4、在利用、在利用RS-422/RS-485RS-422/RS-485通信的过程如果通信距离(波特率固定)过长,应如何处理通信的过程如果通信距离(波特率固定)过长,应如何处理?5 5、利用单片机串行口扩展、利用单片机串行口扩展2424个发光二极管和个发光二极管和8 8个按键,要求画出电路图并编写程序使个按键,要求画出电路图并编写程序使2424个发光二极管按照不同的顺序发光(发光的时间间隔为

209、个发光二极管按照不同的顺序发光(发光的时间间隔为1S1S)。)。6 6、编制图、编制图6-306-30的中断方式的数据接收程序。的中断方式的数据接收程序。7 7、简述、简述80C5180C51单片机多机通信的特点。单片机多机通信的特点。8 8、在微机与单片机构成的测控网络中,要提高通信的可靠性要注意哪些问题?、在微机与单片机构成的测控网络中,要提高通信的可靠性要注意哪些问题?2.6 2.6 串行输入串行输入/ /输出接口输出接口2-2. 512-2. 51架构架构(51Architecture)8051的的CPU-CentralProcessingUnit(中央处理单元中央处理单元)作用:作用

210、:控制控制协调片内各部分的工作时序逻辑协调片内各部分的工作时序逻辑控制和片外联络的时序逻辑控制和片外联络的时序逻辑运算运算加法运算加法运算减法运算减法运算乘法运算乘法运算除法运算除法运算布尔逻辑运算布尔逻辑运算(与、或、非、异或、移位等与、或、非、异或、移位等)191Xinjiang University2-3. 80512-3. 8051单片机引脚功能描述单片机引脚功能描述P1口P3口P0口P2口时钟端复位端控制信号接VCC(+5V)接地端192Xinjiang University2-2. 512-2. 51架构架构(51Architecture)串行通信接口全双工1个ROMTXDRXD中

211、断系统并行通信接口48bit定时/计数器n16bitRAM时钟电路CPU总线控制193Xinjiang University194 三、信号的调制与解调三、信号的调制与解调利用调制器(利用调制器(ModulatorModulator)把数字信号转换成模拟信号,然后送到通)把数字信号转换成模拟信号,然后送到通信线路上去,再由解调器(信线路上去,再由解调器(DemodulatorDemodulator)把从通信线路上收到的模)把从通信线路上收到的模拟信号转换成数字信号。由于通信是双向的,调制器和解调器合并在拟信号转换成数字信号。由于通信是双向的,调制器和解调器合并在一个装置中,这就是调制解调器一个

212、装置中,这就是调制解调器MODEMMODEM。2.6 2.6 串行输入串行输入/ /输出接口输出接口194Xinjiang University195 四、串行通信的错误校验四、串行通信的错误校验1 1、奇偶校验、奇偶校验在发送数据时,数据位尾随的在发送数据时,数据位尾随的1 1位为奇偶校验位(位为奇偶校验位(1 1或或0 0)。奇校验时,数据中)。奇校验时,数据中“1 1”的个数与校验位的个数与校验位“1 1”的个数之和应为奇数;偶校验时,数据中的个数之和应为奇数;偶校验时,数据中“1 1”的个数的个数与校验位与校验位“1 1”的个数之和应为偶数。接收字符时,对的个数之和应为偶数。接收字符时

213、,对“1 1”的个数进行校验,若的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。发现不一致,则说明传输数据过程中出现了差错。2 2、代码和校验、代码和校验代码和校验是发送方将所发数据块求和(或各字节异或),产生一个字节的校验代码和校验是发送方将所发数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块末尾。接收方接收数据同时对数据块(除校验字节字符(校验和)附加到数据块末尾。接收方接收数据同时对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的外)求和(或各字节异或),将所得的结果与发送方的“校验和校验和”进行比较,相进行比较,相符则无差错,否则

214、即认为传送过程中出现了差错。符则无差错,否则即认为传送过程中出现了差错。3 3、循环冗余校验、循环冗余校验这种校验是通过某种数学运算实现有效信息与校验位之间的循环校验,常用于对这种校验是通过某种数学运算实现有效信息与校验位之间的循环校验,常用于对磁盘信息的传输、存储区的完整性校验等。这种校验方法纠错能力强,广泛应用磁盘信息的传输、存储区的完整性校验等。这种校验方法纠错能力强,广泛应用于同步通信中。于同步通信中。2.6 2.6 串行输入串行输入/ /输出接口输出接口195Xinjiang University196 2 2、传输距离与传输速率的关系、传输距离与传输速率的关系串行接口或终端直接传送

215、串行信息位流的最大距离与传串行接口或终端直接传送串行信息位流的最大距离与传输速率及传输线的电气特性有关。当传输线使用每输速率及传输线的电气特性有关。当传输线使用每0.3m0.3m(约(约1 1英尺)有英尺)有50PF50PF电容的非平衡屏蔽双绞线时,传输距电容的非平衡屏蔽双绞线时,传输距离随传输速率的增加而减小。当比特率超过离随传输速率的增加而减小。当比特率超过1000 bps 1000 bps 时,时,最大传输距离迅速下降,如最大传输距离迅速下降,如9600 bps 9600 bps 时最大距离下降到时最大距离下降到只有只有76m76m(约(约250250英尺)。英尺)。2.6 2.6 串行

216、输入串行输入/ /输出接口输出接口196Xinjiang University197 串行通信接口标准串行通信接口标准 一、一、RS-232CRS-232C接口接口 RS-232CRS-232C是是EIAEIA(美国电子工业协会)(美国电子工业协会)19691969年修订年修订RS-232CRS-232C标准。标准。RS-232CRS-232C定义了数定义了数据终端设备(据终端设备(DTEDTE)与数据通信设备()与数据通信设备(DCEDCE)之间的物理接口标准。)之间的物理接口标准。1 1、机械特性、机械特性RS-232CRS-232C接口规定使用接口规定使用2525针连接器,连接器的尺寸及

217、每个插针的排列位置都有明针连接器,连接器的尺寸及每个插针的排列位置都有明确的定义。(阳头)确的定义。(阳头)2.6 2.6 串行输入串行输入/ /输出接口输出接口197Xinjiang University198 2、功能特性2.6 2.6 串行输入串行输入/ /输出接口输出接口198Xinjiang University199 4 4、过程特性、过程特性过程特性规定了信号之间的时序关系,以便正确地接收和发送数据过程特性规定了信号之间的时序关系,以便正确地接收和发送数据。远程通信连接远程通信连接2.6 2.6 串行输入串行输入/ /输出接口输出接口199Xinjiang University2

218、00 近程通信连接近程通信连接2.6 2.6 串行输入串行输入/ /输出接口输出接口200Xinjiang University201 5 5、RS-232CRS-232C电平与电平与TTLTTL电平转换驱动电路电平转换驱动电路2.6 2.6 串行输入串行输入/ /输出接口输出接口201Xinjiang University202 6 6、采用、采用RS-232CRS-232C接口存在的问题接口存在的问题1 1、传输距离短,传输速率低、传输距离短,传输速率低RS-232CRS-232C总线标准受电容允许值的约束,使用时传输距离一般不要超过总线标准受电容允许值的约束,使用时传输距离一般不要超过1

219、515米(线米(线路条件好时也不超过几十米)。最高传送速率为路条件好时也不超过几十米)。最高传送速率为20Kbps20Kbps。2 2、有电平偏移、有电平偏移RS-232CRS-232C总线标准要求收发双方共地。通信距离较大时,收发双方的地电位差别总线标准要求收发双方共地。通信距离较大时,收发双方的地电位差别较大,在信号地上将有比较大的地电流并产生压降。较大,在信号地上将有比较大的地电流并产生压降。3 3、抗干扰能力差、抗干扰能力差RS-232CRS-232C在电平转换时采用单端输入输出,在传输过程中当干扰和噪声混在正常在电平转换时采用单端输入输出,在传输过程中当干扰和噪声混在正常的信号中。为

220、了提高信噪比,的信号中。为了提高信噪比,RS-232CRS-232C总线标准不得不采用比较大的电压摆幅。总线标准不得不采用比较大的电压摆幅。2.6 2.6 串行输入串行输入/ /输出接口输出接口202Xinjiang University203 二、二、RS-422ARS-422A接口接口RS-422ARS-422A是是平衡型电压数字接口电路平衡型电压数字接口电路的电气标准的电气标准,输出驱动器为双端平衡驱动器。如果其,输出驱动器为双端平衡驱动器。如果其中一条线为逻辑中一条线为逻辑“1 1”状态,另一条线就为逻辑状态,另一条线就为逻辑“0 0”,比采用单端不平衡驱动对电压的放,比采用单端不平衡

221、驱动对电压的放大倍数大一倍。大倍数大一倍。差分电路差分电路能从地线干扰中拾取有效信号,差分接收器可以分辨能从地线干扰中拾取有效信号,差分接收器可以分辨200mV200mV以上电位差。若传输过以上电位差。若传输过程中混入了干扰和噪声,由于差分放大器的作用,可使干扰和噪声相互抵消。因此可以避程中混入了干扰和噪声,由于差分放大器的作用,可使干扰和噪声相互抵消。因此可以避免或大大减弱地线干扰和电磁干扰的影响。免或大大减弱地线干扰和电磁干扰的影响。RS-422ARS-422A传输速率(传输速率(90Kbps90Kbps)时,传输距离可达)时,传输距离可达12001200米米。2.6 2.6 串行输入串行

222、输入/ /输出接口输出接口203Xinjiang University204 三、三、RS-485RS-485接口接口RS-485RS-485是是RS-422ARS-422A的变型:的变型:RS-422ARS-422A用于全双工,而用于全双工,而RS-485RS-485则用于半双工。则用于半双工。RS-485RS-485是一种多发送器标准,在通信线路上最多可以使用是一种多发送器标准,在通信线路上最多可以使用32 32 对差分驱动器对差分驱动器/ /接收器。如接收器。如果在一个网络中连接的设备超过果在一个网络中连接的设备超过3232个,还可以使用中继器。个,还可以使用中继器。RS-485RS-4

223、85的信号传输采用两线间的电压来表示逻辑的信号传输采用两线间的电压来表示逻辑1 1和逻辑和逻辑0 0。由于发送方需要。由于发送方需要两根两根传输线传输线,接收方也需要两根传输线。传输线采用差动信道,所以它的干扰抑制性,接收方也需要两根传输线。传输线采用差动信道,所以它的干扰抑制性极好,又因为它的阻抗低,无接地问题,所以极好,又因为它的阻抗低,无接地问题,所以传输距离可达传输距离可达12001200米米,传输速率可,传输速率可达达1Mbps1Mbps。2.6 2.6 串行输入串行输入/ /输出接口输出接口204Xinjiang University205 RS-485 RS-485是一点对多点的

224、通信接口,一般采用双绞线是一点对多点的通信接口,一般采用双绞线的结构。普通的的结构。普通的PCPC机一般不带机一般不带RS485RS485接口,因此要使用接口,因此要使用RS-RS-232C/RS-485232C/RS-485转换器。对于单片机可以通过芯片转换器。对于单片机可以通过芯片MAX485MAX485来完来完成成TTL/RS-485TTL/RS-485的电平转换。在计算机和单片机组成的的电平转换。在计算机和单片机组成的RS-RS-485485通信系统中,下位机由单片机系统组成,主要完成工业通信系统中,下位机由单片机系统组成,主要完成工业现场信号的采集和控制,上位机为普通的现场信号的采集和控制,上位机为普通的PCPC机,负责监视机,负责监视下位机的运行状态,并对其状态信息进行集中处理,以图下位机的运行状态,并对其状态信息进行集中处理,以图文方式显示下位机的工作状态以及工业现场被控设备的工文方式显示下位机的工作状态以及工业现场被控设备的工作状况。系统中各节点(包括上位机)的识别是通过设置作状况。系统中各节点(包括上位机)的识别是通过设置不同的站地址来实现的。不同的站地址来实现的。2.6 2.6 串行输入串行输入/ /输出接口输出接口205Xinjiang University

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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