内部IO和定时器.pptx_第1页
内部IO和定时器.pptx_第2页
内部IO和定时器.pptx_第3页
内部IO和定时器.pptx_第4页
内部IO和定时器.pptx_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机硬件技术基础,第六章MCS-51内部的I/O口定时器及其应用,计算机科学与软件学院计算机基础教学部,本章重点内容和要求,本章重点讨论MCS-51单片机内部的资源的原理及其应用并行I/O口定时器/计数器串行I/O口,基本要求:掌握P0P3的特性及其应用掌握T/C的工作原理、工作方式、程序设计方法及应用学会综合运用了解串行口的原理、制式,作业:6-4至6-14,63MCS-51串行I/O口及串行通信,第六章MCS-51内部的I/O口、定时器及其应用,6.1MCS-51内部的并行I/O口及应用,62MCS-51的定时器/计数器,8051单片机内部有四个8位并行I/O口:P0、P1、P2和P3P0P3这4个并行I/O口都可以作准双向通用I/O口P0、P2和P3口还有复用的第二功能每个口都包含:一个(8位)锁存器(即特殊功能寄存器P0P3)两个三态缓冲器一个输出驱动器,6.1MCS-51内部的并行I/O口及应用,P166,611P0口结构612P1口结构613P2口结构614P3口结构615MCS-51内部并行I/O口的应用,6.1MCS-51内部的并行I/O口及应用,场效应管(复习)(以N沟道为例)当G=0时,场效应管截止;当G=1时,场效应管导通。,D锁存器,逻辑符号,电平触发,三态门缓冲器,逻辑符号,三态门指逻辑门电路的输出不仅有高电平、低电平,还有高阻态(又称失效态、截止态、开路态或禁止态)。这时输出端相当于悬空。,C:使能端,来控制门电路的通断,低电平有效,C=0时,Y=AC=1时,Y为高阻态,下图为P0口的某位P0.n(n=07)结构图,它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路及控制电路组成。P0口既可以作为I/O用,也可以作为地址/数据线用。,6.1.1P0口结构,与门,多路开关,(1)P口用作输出口时必须外接上拉电阻,以保证“1”信号正常输出。,一、P0口作为一般I/O口使用,CPU发出控制电平“0”(即:硬件自动使“控制”=0)封锁“与门”,将输出上拉场效应管T1截止,同时使多路开关MUX把锁存器的输出端Q与场效应管T2栅极接通。,(2)P0口用作输入口时分读引脚或读锁存器。,读引脚:由传送指令(MOV)实现。下面的缓冲器2用于读端口引脚数据,当执行一条由端口输入的指令时,读脉冲把三态缓冲器2打开,这样端口引脚上的数据经过缓冲器读入到内部总线。,第1步:输入时,先向锁存器“写”1。指令为:SETBP0.n或:MOVP0,#0FFH,1,1,0,0,T2截止,第2步:引脚信号,“读引脚”信号有效,缓冲器2打开,准双向口,从图中可以看出,在从引脚读数据时,由于输出驱动场效应管并接在引脚上,如果T2导通,就会将输入的高电平拉成低电平,产生误读。所以在从引脚进行输入操作前,应先向端口锁存器写“1”,使T2截止,引脚处于悬浮状态,变为高阻抗输入。这就是所谓的准双向口。,(2)P0口用作输入口时,读锁存器:有些指令如:ANLP0,A称为“读-修改-写”指令,需要读锁存器。缓冲器1用于读端口锁存器数据。,原因:,如果此时该端口的负载恰是一个晶体管基极,且原端口输出值为1,那么导通了的PN结会把端口引脚高电平拉低;若此时直接读端口引脚信号,将会把原输出的“1”电平误读为“0”电平。现采用读输出锁存器代替读引脚,图中三态缓冲器1就为读锁存器Q端信号而设,读输出锁存器可避免上述可能发生的错误。,二、P0口作为地址/数据总线使用,在对外部存储器读写(即执行“MOVX”指令或EA=0时执行“MOVC”指令)时,P0端口作为地址/数据总线使用,内部硬件自动使“控制”=1。,P0口用作输出地址/数据总线。,P0引脚用于输入数据,从P0口输入数据时,CPU自动使MUX向下,自动向P0口写入“1”,“读引脚”控制信号有效,缓冲器2打开,外部数据读入内部总线。,二、P0口作为地址/数据总线使用,6.1.2P1口结构,它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成-准双向口。,6.1.3P2口结构,P2口作为普通I/O口CPU发出控制电平“0”,使多路开关MUX倒向锁存器输出Q端,构成一个准双向口。其功能与P1相同。,2.P2口作为地址总线在对片外存储器或I/O口进行操作(即执行“MOVX”指令或EA=0时执行“MOVC”指令)时,CPU发出控制电平“1”,使多路开关MUX倒内部地址线。此时,P2输出高8位地址。,6.1.3P2口结构,6.1.4P3口结构,P3口是多功能端口。一、作通用I/O口用:输出:当W=1时(由内部硬件自动置W为高电平),输出Q端的信号(即输出内部数据),输入时:先向端口写“1”,即锁存器Q端为“1”。,6.1.4P3口结构,P3口作为第二功能输出(内部硬件自动使Q=1、W输出)。,6.1.4P3口结构,例如:P3.1作为串行口输出,二、P3口作为第二功能输入(内部硬件自动使Q=1、W=1),6.1.4P3口结构,例如:P3.0作为串行口输入,615MCS-51内部并行I/O口的应用,“读锁存器”和“读引脚”的指令,直接输入/输出,一、“读锁存器”和“读引脚”的指令1“读锁存器”的指令P0P3作目的操作数的指令,能实现“读修改写”口锁存器的操作,这类指令有:(1)字节操作指令(2)位操作指令ANLPx,JBCPX.Y,relORLPx,CPLPX.YXRLPx,CLRPX.YDECPxSETBPX.YDJNZPx,relMOVPX.Y,CINCPx其中:X是口的序号03,Y是位的序号07,P0P3编程和使用的方法,2“读引脚”的指令“读引脚”指令的特点是:P0P3作为源操作数出现在指令中,但在读引脚数据之前,必须对所读的口或口位的D锁存器写入“1”.要正确读引脚数据,必须先写一条MOVPX,#0FFH指令或能对所读的口或口位的D锁存器写入“1”的指令,而后紧接着写下面的指令:(1)字节操作指令MOVA,PxANLA,PXMOVdirect,PxORLA,PXXCHA,PXXRLA,PXPUSHPXANLdirect,PXADDA,PXORLdirect,PXADDCA,PXXRLdirect,PXSUBBA,PX,引脚信号,(2)位操作指令同理,必须先写一条SETBPX.Y或能对所读口位的D锁存器写入“1”的指令,在其后再紧跟如下指令。MOVC,PX.YANLC,PX.YORLC,PX.YJNBPX.Y,relJBPX.Y,rel,无条件输入/输出程序查询输入/输出程序中断输入/输出程序,三、直接输入/输出,例6-1简单开关量的输入/输出,P172,1)P1.4P1.7无条件输出程序通过P1.4P1.7输出,使LED0LED3巡回点亮,每次只点亮一个,程序如下:ORG0000HMAIN1:MOVSP,#6FHMOVP1,#0FFHMOVA,#0EFHLOOP:MOVP1,A;P1.4=0ACALLDELAYRLAJBACC.0,LOOPMOVA,#0EFHSJMPLOOP,;延时500ms子程序DELAY:MOVR5,#5DL0:MOVR7,#200DL1:MOVR6,#248NOPDL2:DJNZR6,DL2DJNZR7,DL1DJNZR5,DL0RETEND,LED“0”亮“1”灭,2)读入P1.0P1.3引脚上的开关K0K3的预置状态,再经P1.4P1.7输出去驱动LED3LED0发光二极管,使发光二极管显示开关状态。对应参考程序:ORG0100HMAIN2:MOVA,#0FFHMOVP1,AMOVA,P1SWAPAMOVP1,AHERE:SJMPHEREEND,5,(2)查询输入/输出程序读入P3.2引脚上的开关K4的预置状态,若P3.2=1,则驱动P1.7输出使LED3闪亮5次;否则,查询等待。参考程序如下:ORG0100HMAIN3:MOVSP,#60HSETBP1.7WAIT:JNBP3.2,WAITMOVR2,#10LOOP:CPLP1.7ACALLDelayDJNZR2,LOOPSJMPWAITEND,ORG0000HAJMPMAINORG0003HLJMPEX0SVRORG0050HMAIN:MOVSP,#6FHSETBIT0SETBEX0SETBEASJMP$;等待中断,EX0SVR:MOVA,#0FFHMOVP1,AMOVA,P1SWAPAMOVP1,ARETIEND,初始化部分,中断输入/输出程序采用INT0中断来读入P1.3P1.0引脚上的开关K3K0的预置状态,再经P1.4P1.7输出去驱动LED0LED3发光二极管,使发光二极管显示开关状态。,621定时器/计数器的组成622定时器/计数器的控制6.2.3定时器的四种工作方式624T/C的初始化和应用举例625定时器/计数器的溢出校准和实时读取,62MCS-51的定时器/计数器,62MCS-51的定时器/计数器,在单片机实时应用系统中,需要定时和对外部事件计数的功能。定时:对周期已知的脉冲信号计数计数:对外部事件计数,对周期未知的外来脉冲信号计数定时或计数方法:采用软件延时占用CPU的时间,降低了CPU的使用效率;采用专门的硬件电路,参数调节不便;采用可编程的定时器/计数器是最好的方法。可以方便灵活地修改定时或计数的参数或方式与CPU并行工作,大大提高了CPU的工作效,6.2.1定时器/计数器的组成Timer/Counter,MCS-51单片机内部有二个16位的可编程的定时器/计数器(T/C):定时器/计数器0(T/C0或定时器0)定时器/计数器1(T/C1或定时器1)它们都有两种工作模式:定时和计数,可用于定时控制、延时、对外部事件检测和计数等场合.,T/C0和T/C1的结构及与CPU的关系,结构组成:T/C0由两个8位的TH0(8CH)和TL0(8AH)组成T/C1由TH1(8DH)和TL1(8BH)组成他们都是特殊功能寄存器,定时器/计数器(T/C0和T/C1)的组成,T/C0和T/C1都是16位的加1计数器,共同点:都是通过计数器对脉冲个数计数来实现的.不同点:,定时模式与计数模式的主要区别,1、定时模式T/C计数8051内部机器周期信号的个数,由计数个数可以计算出定时时间。每个机器周期使T/C的计数器增加1,直至计满回零后自动产生溢出中断请求,表示定时时间到。f=12MHz,一个机器周期是1s,2、计数模式T/C计数来自引脚T0(P3.4)和T1(P3.5)的外部脉冲信号的个数。输入脉冲由1变0的下降沿时,计数器的值增加1直到回零产生溢出中断,表示计数已达预期个数。计数周期至少为2机器周期最高计数频率为振荡频率的1/24。,6.2.2定时器/计数器的控制,定时器/计数器的工作由TCON和TMOD控制由软件把控制字写入TCON和TMOD,用来设置T/C0和T/C1的工作方式和控制功能。当8051系统复位时,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,高半字节设定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/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位溢出时,向TH1进位,而TH1溢出(回零)时向TF1标志进位(硬件置位TF1),并申请中断。还可以通过查询TF1是否置位来判断TH1是否回零溢出。,方式1方式1是一个16为定时器/计数器,见图6-7。方式1的结构几乎与方式0完全一样,唯一的差别是:方式1中的TH1(TH0)和TL1(TL0)均是8位的,构成16位计数器。,方式2在方式2时,T/C被拆成一个8位的寄存器TH1(TH0)和一个8位计数器TL1(TL0),两者构成可以自动重装载的8位T/C,如图6-8所示。,每当它计满回零时一方面向CPU发出溢出中断请求,另一方面从TH1(或TH0)中重新获得初值并启动计数;也就是CPU自动将TH1(或TH0)中存放的初值重新装回到TL1(或TL0),并在此初值的基础上对TL1(或TL0)开始新一轮计数,周而复始,直到下一个停止计数或更改工作方式命令为止。,方式3方式3下,T/C0和T/C1功能不同。此时,TH0和TL0按两个独立的8位计数器工作。TL0占用了T/C0的C/T、T0(P3.4)、TR0、GATE、INT0控制引脚和TF0。TH0只有简单的内部定时功能,占用了T/C1的TR1控制位和TF1中断标志位,其启动/关闭仅受TR1控制。,在T/C0工作在方式3时,T/C1仍可设置为方式02。T/C1无工作方式3。由于TR1和TF1已被T/C0(TH0)占用,此时T/C1仅用C/T来切换其定时或计数工作方式就可使其工作。T/C1计数器(8位、13位或16位)回零溢出时,不能按中断的方式工作,只能将输出送入串行口或用于不需要中断的场合。一般情况下,当T/C1用作串行口波特率发生器时,才将T/C0设置为工作方式3。见图6-10。,6.2.4T/C的初始化1.初始化的步骤MCS-51内部的T/C是可编程的,其工作方式和过程可通过程序进行设定和控制,称为对T/C的初始化。初始化的步骤是:确定工作模式和方式。即根据题目要求先给TMOD送一个方式控制字。计算计数初值/定时初值,并写入TH0、TL0或TH1、TL1中。根据需要,置位EA使CPU开放中断,同时置位ETx允许T/C中断。IP设定中断优先级。给TCON送命令控制字,即置位TRx启动T/C计数。,2计数器初值的计算T/C在计数模式下,计数之前必须给它的计数器TH0、TL0或TH1、TL1先送计数初值。T/C的计数器是在计数初值的基础上加1计数的,当计数器回“0”时自动产生溢出,置位TFx中断标志,向CPU提出中断请求。设需要计数器计数的个数为X,计数初值为C,由此可得出如下计算计数初值的通式:计数初值:CM-X(61)式中,M为计数器的模值,该值和计数器的工作方式有关。M,=8192,当方式0时=65536,当方式1时(62)=256,当方式2、3时,3定时器初值计算在定时模式下,计数器对单片机振荡频率fosc经12分频后的机器周期进行加1计数,用X表示计数个数,M表示模,C表示定时初值,Tcy表示机器周期,则1Tcy12/fosc,因此,定时时间T的计算公式为:TXTcy(63)定时初值公式为:CMX=M-T/Tcy(64)定时器的溢出率1/Tfosc/(12X)fosc/(12(M-C)(65)应用举例1举例2GATE,例6-2利用T/C0方式0产生1ms的定时,在P0.0引脚上输出周期为2ms的方波。设单片机晶振频率fosc12MHZ。解:要在P0.0输出周期为2ms的方波,只要使P0.0每隔1ms取反一次即可。(1)确定T/C0的工作方式T/C0定时,方式0,由TR0启动,T/C1不用,高4位取0。(2)送T/C0的方式控制字(TMOD)00H,即:GATEC/TM1M0GATEC/TM1M000000000T/C0定时方式0,T/C1不用各位均取0,TR0启动,(3)计算定时初值Tcy12/fosc12/(12106)S1s计数个数:X1ms/1s1000定时初值:C(-X)8192-10007192D1C18H0001110000011000B高8位0E0H低5位18HTH0初值为0E0H,TL0初值为18H。若采用方式1,16位,则定时初值:C65536-100064536FC18HTH0初值为0FCH,TL0初值为18H,ORG0000HMOVTMOD,#00HMOVTH0,#0E0HMOVTL0,#18HSETBTR0LOOP:JBCTF0,DO1SJMPLOOPDO1:MOVTH0,#0E0HMOVTL0,#18HCPLP0.0SJMPLOOPEND,(4)编程方法可以采用中断或查询两种方式编写程序。1)查询方式:使CPU采用查询TF0的方式处理T/C0定时溢出,编程简单,但效率较低。程序中查询采用JBCTF0,DO1指令,目的是当判到TF01后,必须用软件复位TF0,为下次计数器回零溢出做好准备,这条指令具有判TF0为1后清零的双重功能。,2)中断方式:当T/C0定时溢出时,TF0被置1,申请中断。编程使CPU采用响应中断方式输出方波效率比较高。程序清单:,ORG0000HAJMPMAIN;转到主程序MAINORG000BHAJMPTC0S;转到中断服务程序TC0SORG0100HMAIN:MOVSP,#6FHMOVTMOD,#00H;置T/C0为方式0定时MOVTH0,#0E0H;送计数初值MOVTL0,#18HSETBET0;T/C0允许中断SETBEA;CPU开中断SETBTR0;启动T/C0定时HERE:SJMPHERE;等待中断ORG1200HTC0S:MOVTH0,#0E0H;重新装入计数初值MOVTL0,#18HCPLP0.0;输出方波RETI;中断返回END,最大计数个数和定时时间,扩大计数个数和定时时间,例6-6利用MCS-51单片机的T/C,产生电子时钟的1S基时,并且由P0.0输出2S的方波。Fosc12MHz。,焦点:16位计数器最大定时65.536ms,要产生比这个时间长的定时,怎么办?1、两个定时器级联2、定时与软件计数相结合。,解:确定T/C0和T/C1的工作方式T/C0方式1,定时50ms,中断时使P0.7取反,这样P0.7输出周期100ms的方波,,两个T/C级联的方法:,送T/C0的方式控制字(TMOD)01100001B=61H,将其送给T/C1的T1外部脉冲输入端使T/C1计数,T/C1采用工作方式2,每计10次为1s,每隔1s使P0.0取反一次即可。,计算定时初值Tcy12/fosc12/(12106)S1sT/C0方式1定时计数个数:X50ms/1s50000定时初值:CM-X65536-5000015536D3CB0HTH0初值为3CH,TL0初值为B0H。T/C1方式2计数计数个数:X10计数初值:CM-X256-10246=0F6H(TH1)(TL1)0F6H,编写程序,ORG0000HAJMPMAINORG000BHAJMPT0SORG001BHAJMPT1SORG0100HMAIN:MOVSP,#60HMOVTMOD,#61HMOVTH1,#0F6HMOVTL1,#0F6HMOVTH0,#3CHMOVTL0,#0B0HMOVIE,#10001010B,SETBTR0SETBTR1CLRP0.0CLRP0.7SJMP$T0S:MOVTH0,#3CHMOVTL0,#0B0HCPLP0.7RETIT1S:CPLP0.0RETIEND,定时与软件计数相结合,确定工作方式选T/C0工作在方式1,定时50ms,中断时使R2从0计数,当(R2)=20时,则1s时间到,使P0.0取反一次,这样每隔1s使P0.0取反一次,P0.0就输出一个2s的方波。送T/C0的方式控制字(TMOD)00000001B=01H,定时与软件计数相结合,ORG0000HAJMPMAINORG000BHAJMPT0SORG0100HMAIN:MOVSP,#60HMOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HMOVIE,#10000010BMOVR2,#00H,CLRP0.0SETBTR0SJMP$T0S:MOVTH0,#3CHMOVTL0,#0B0HINCR2CJNER2,#14H,NEXTCPLP0.0MOVR2,#00HNEXT:RETIEND,外部中断0控制定时器,ORG0000HAJMPMAINORG0003HLJMPINT0SORG000BHLJMPTC0SORG0100HMAIN:MOVSP,#6FHMOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HSETBET0SETBEASETBEX0SETBIT0,CLRTR0SJMP$ORG1000HTC0S:MOVTH0,#0E0HMOVTL0,#18HCPLP0.0RETIINT0S:CPLTR0RETIEND,例6-5利用GATE门控位测量从INT1引脚输入的正脉冲宽度。解:确定工作方式当Gate=1时,T/C1定时由TR1=1与INT1由0变1时启动,H1TL1从0开始计数,直到INT1由1变0时停止,此时,计数个数乘以Tcy即位为被测正脉冲的宽度送方式控制字(TMOD)10010000B90H;T/C1定时,方式1,GATE1。,计算初值由于被测正脉冲宽度未知,假设fosc12MHz,宽度=65.536ms,则:计数个数:X65536(最大)定时初值:C65536-X65536-655360,(TH1)00H,(TL1)00H。,编程方法,ORG0000HMAIN:MOVSP,#6FMOVTMOD,#90HMOVTL1,#00HMOVTH1,#00HLOOP:JBP3.3,LOOPSETBTR1LOOP1:JNBP3.3,LOOP1LOOP2:JBP3.3,LOOP2,CLRTR1MOV30H,TL1MOV31H,TH1.ACALLCalc;计算子程序略ACALLDIR;显示子程序略SJMP$END,被测脉宽置1TR1TH1TL1从0开始计数清0TR1,停止T/C1计数,6.2.5定时器/计数器的溢出校准和实时读取,为什么要对定时器/计数器的溢出校准?8051内部定时器/计数器计数回零溢出后,A一方面置位TF0/TF1中断标志,申请中断;A另一方面,方式0、1、3在未再次装入计数初值时,计数器会自动从0值重新开始计数。如果要求反复计数或定时,由于CPU响应中断和重新装入初值都需要时间,这样会给计数或定时带来误差。对于单级中断的系统,一般中断延时可以忽略,但在时间上要求确实很严格的应用场合,必须精确计入这些延时,这时需要对定时器溢出校准。,若在单级中断的系统中,CPU响应中断至少用3个机器周期,若有其它指令的延误,则延误时间不易计算。可采用以下程序段来校准。例如,T/C1方式1,定时1MS中断,fosc12MHz,则定时初值为:65536-1MS/1s65536-10000FC18H即是-1000的补码。,校准方法:,CLREA1;禁止所有的中断CLRTR11;停止T/C1计数MOVA,#LOW(-1000+7)1;取低8位校准码ADDA,TL11;校准码加TL1中的当前值MOVTL1,A1;要重装入的校准后的低8位初值MOVA,#HIGH(-1000+7)1;取高8位校准码ADDCA,TH11;校准码加TH1中的当前值MOVTH1,A1;要重装入的校准后的高8位初值SETBTR11;启动T/C1,(-1000+7+3+2+),63MCS-51串行I/O口及串行通信,631串行通信基础知识,一、并行通信与串行通信,二、异步通信和同步通信,三、串行通信的制式,一、并行通信与串行通信,通信的基本方式有两种:1、并行通信数据的各位同时传送,并行通信的特点是:传送速度快、效率高。但有多少数据位就需多少根数据线,因此传送成本高。在集成电路芯片的内部、同一插件板上各部件之间、同一机箱内各插件板之间等的数据传送都是并行的。并行通信的距离通常小于30米。,串行通信的特点是:数据传送按位顺序进行,最少只需一根传输线即可完成,成本低但速度慢,在图中可以看到,并行传送8位数只需串行发送一位的时间1T。计算机与远程终端或终端与终端之间的数据传送通常都是串行的。串行通信的距离可以从几米到几千公里。,2、串行通信数据一位一位顺序传送,二、异步通信和同步通信,按照串行数据的同步方式,串行通信又分为两种方式:,在单片机中,主要使用异步通信方式.,异步通信,同步通信,在异步通信中,数据通常是以字符(字节)为单位组成字符帧传送的。字符帧由发送端一帧一帧地发送,通过传输线由接收设备一帧一帧地接收。发送端和接收端可以有各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。在异步通信中,发送端和接收端依靠字符帧格式规定和波特率来协调数据的发送和接收。字符帧格式和波特率是两个重要指标,由用户根据实际情况选定。,1异步通信(AsynchronousCommunication),字符帧也叫数据帧,包含起始位、数据位、奇偶校验位和停止位四部分组成。,字符帧格式,2)起始位:位于字符帧开头,占一位,使数据线处于“space”(逻辑)状态,用于向接收设备表示发送端开始发送一帧信息。3)数据位:紧跟起始位之后就传送数据位。在数据位中,低位在前(左),高位在后(右)。根据字符编码方式的不同,数据位可取5位、6位、7位或8位。若传送数据为ASCII码,则常取7位。4)奇偶校验位:位于数据位之后,仅占一位,用于对字符传送作正确性检查。奇偶校验位有3种可能的选择:奇、偶或无校验,由用户根据需要选定。5)停止位:位于字符帧末尾,它对应于“mark”(逻辑1)状态,用于向接收端表示一帧字符信息已发送完毕。停止位可以是1、1.5或2位,在实际应用中由用户根据需要确定。,波特率(baudrate),波特率的定义:是每秒钟传送二进制数码的位数(亦称比特数),单位是bps(bitpersecond),即位/秒。字符的实

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论