中断及串行口_第1页
中断及串行口_第2页
中断及串行口_第3页
中断及串行口_第4页
中断及串行口_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章第四章 中断系统及串行口中断系统及串行口4.1 中断系统中断系统 一、中断系统的基本概念一、中断系统的基本概念中断系统又叫作中断管理系统或中断服务系统中断系统又叫作中断管理系统或中断服务系统功能功能: 是使是使CPU对外界突发事件具有应急处理能力。对外界突发事件具有应急处理能力。 主要用于系统实时控制,实时处理,故障自动处理,数据传输,人机交换等方面。中断涉及主要内容:中断源,中断的嵌套,中断的开放与屏蔽,中断优先级,中断响应过程,中断响应条件,中断入口地址,中断的响应时间等内容。中断举例中断举例某某位位先先生生正正在在看看报报电电话话铃铃响响了了去去接接电电话话与与朋朋友友聊聊天天某某

2、位位先先生生继继续续看看报报 在这个过程中,看报纸相当于正常运行的程序,电话响是中断标志,中断源是电话,接电话相当于响应中断,与朋友聊天相当于中断服务程序,返回看报相当于中断返回,继续执行被中断的程序。中断:指中断:指CPUCPU对系统中或系统外发生的某个事件的一种对系统中或系统外发生的某个事件的一种响应过程,即响应过程,即CPUCPU暂时停止现行程序的执行,而自动转暂时停止现行程序的执行,而自动转去执行安排好的处理该事件的服务子程序,当处理结束去执行安排好的处理该事件的服务子程序,当处理结束后,再返回到被暂停程序的断点处,继续执行原来的程后,再返回到被暂停程序的断点处,继续执行原来的程序,实

3、现这种中断功能的硬件系统和软件系统称为中断序,实现这种中断功能的硬件系统和软件系统称为中断系统。系统。引起突发事件的来源,称为中断源引起突发事件的来源,称为中断源 在中断系统中,存在着多个中断源,在中断系统中,存在着多个中断源,如果几个中断同时被触发的时候,如果几个中断同时被触发的时候,CPU先执行谁呢?先执行谁呢?中断嵌套:中断嵌套:当当CPU正在处理一个中断源请求的时候,又发生了正在处理一个中断源请求的时候,又发生了另一个优先级比它高的中断源请求,如果另一个优先级比它高的中断源请求,如果CPU能够暂时中止对能够暂时中止对原来中断处理程序的执行,转而去处理优先级更高的中断源请原来中断处理程序

4、的执行,转而去处理优先级更高的中断源请求,待处理完以后,再继续执行原来的低级中断处理程序,这求,待处理完以后,再继续执行原来的低级中断处理程序,这样的过程称为中断嵌套。样的过程称为中断嵌套。 主主程程序序低低级级中中断断请请求求低低级级中中断断服服务务程程序序主主程程序序高高级级中中断断服服务务程程序序高高级级中中断断请请求求二二级级中中断断嵌嵌套套中中断断过过程程返返回回低低级级中中断断程程序序返返回回主主程程序序低低级级中中断断服服务务程程序序调调用用低低级级中中断断服服务务程程序序调调用用高高级级中中断断服服务务程程序序中断源和中断标志中断源和中断标志8051单片机有单片机有5个中断源,

5、个中断源,2个外部中断,个外部中断,2个定时计个定时计数器中断,数器中断,1个串行口中断个串行口中断ESRI,TI接收或发送完一个字符串行口ET1TF1溢出 T1EX1IE1低电平或下降沿ET0TF0溢出 T0EX0IE0低电平或下降沿中断允许控制位中断标志中断原因中断源中断源中断请求中断源中断请求1外部中断外部中断ITx=0,电平触发。电平触发。 每个每个T采样采样INTx的状态,为低电平则直接触发外中断。此的状态,为低电平则直接触发外中断。此方式下,中断源须持续请求,直到中断实际产生为止,且在中方式下,中断源须持续请求,直到中断实际产生为止,且在中断返回前,须撤除中断请求信号,否则发生另一

6、次断返回前,须撤除中断请求信号,否则发生另一次中断(误中断)。中断(误中断)。中断响应中断响应服务服务 结束结束撤除撤除适用于外部中断输入为低电平,且中断服务程序中能够清除该中断适用于外部中断输入为低电平,且中断服务程序中能够清除该中断源申请信号的情况。源申请信号的情况。 ITx=1,边沿触发。在边沿触发。在INTx端连续采样到一个端连续采样到一个T的高电平和紧接着一个的高电平和紧接着一个T的低电平则的低电平则IEx=1,由该位由该位申请中断,既使申请中断,既使CPU不能立即响应,中断标志仍保留不能立即响应,中断标志仍保留等待响应,一旦进入中断程序,等待响应,一旦进入中断程序, IEx被被CP

7、U自动清除。自动清除。此情况适用于以负脉冲形式输入的外部中断请求。此情况适用于以负脉冲形式输入的外部中断请求。2、定时器中断、定时器中断8051内部有两个内部有两个16位的定时器位的定时器/计数器,对内部定时脉冲(主计数器,对内部定时脉冲(主脉冲经脉冲经12分频后)或分频后)或T0/T1引脚上输入的外部脉冲进行计数。引脚上输入的外部脉冲进行计数。定时器定时器T0/T1在计数脉冲作用下从全在计数脉冲作用下从全“1”变为全变为全“0”时自动时自动向向CPU提出溢出中断请求,以表明定时器提出溢出中断请求,以表明定时器T0或或T1的定时时间已的定时时间已到或计数器已溢出。当到或计数器已溢出。当CPU响

8、应定时器中断并转入中断服务程响应定时器中断并转入中断服务程序时由硬件清序时由硬件清0中断标志。不使用中断方式时可由软件清中断标志。不使用中断方式时可由软件清0中断中断标志。标志。控控制制信信号号振振荡荡器器1 12 2二二进进制制加加1 1T TF Fx x中中断断T Tx x端端( (引引脚脚) )C C/ /T T= =0 0C C/ /T T= =1 1溢溢出出标标志志已已知知宽宽度度脉脉冲冲未未知知宽宽度度脉脉冲冲计计数数器器中断控制中断控制1中断的开放与屏蔽中断的开放与屏蔽中断允许寄存器中断允许寄存器IE外部中断外部中断0 0允许控制位允许控制位0 0:禁止;:禁止;1 1:允许:允

9、许定时器定时器0 0中断允许控制位中断允许控制位0 0:禁止;:禁止;1 1:允许:允许EAEA- -ET2ET2ESESET1ET1EX1EX1ET0ET0EX0EX0外部中断外部中断1 1允许控制位允许控制位0 0:禁止;:禁止;1 1:允许:允许定时器定时器1 1中断允许控制位中断允许控制位0 0:禁止;:禁止;1 1:允许:允许串行口中断允许控制位串行口中断允许控制位0 0:禁止;:禁止;1 1:允许:允许定时器定时器2 2中断允许控制位中断允许控制位0 0:禁止;:禁止;1 1:允许:允许(80528052特有)特有)允许中断总控制位允许中断总控制位0 0:禁止;:禁止;1 1:允许

10、:允许IED0D7中断允许寄存器TF1中断开放(总开关)EAEX0ET0EX1ET1ESIE0IT0=1IT0=0INT0IE1IT1=1IT1=0INT1TF0RITI(引脚)(引脚)串行口中断允许(分开关)T1中断允许(分开关)外部中断1中断允许(分开关)外部中断0中断允许(分开关)T0中断允许(分开关)+向CPU申请中断中断优先级别的设定中断优先级别的设定MCS51系列单片机具有两个中断优先级。对于所系列单片机具有两个中断优先级。对于所有的中断源,均可由软件设置为高优先级中断或低有的中断源,均可由软件设置为高优先级中断或低优先级中断,并可实现两级中断嵌套。一个正在执优先级中断,并可实现两

11、级中断嵌套。一个正在执行的低优先级中断服务程序,能被高优先级中断源行的低优先级中断服务程序,能被高优先级中断源所中断。同级或低优先级中断源不能中断正在执行所中断。同级或低优先级中断源不能中断正在执行的中断服务程序。每个中断源的中断优先级都可以的中断服务程序。每个中断源的中断优先级都可以通过程序来设定,由中断优先级寄存器通过程序来设定,由中断优先级寄存器IP统一管理。统一管理。 PX0:外部中断0中断优先级控制位。PT0:定时计数器T0的中断优先级控制位。PX1:外部中断1中断优先级控制位。PT1:定时计数器T1的中断优先级控制位。PS :串行口中断优先级控制位PT2:定时计数器T2的中断优先级

12、控制位。各个中断优先级控制位设置为1,表示设置为高优先级;设置为0,表示设置为低优先级。8051单片机有单片机有2个中断优先级,具有个中断优先级,具有5个中断源,那个中断源,那么,当多个中断源同时产生中断时,么,当多个中断源同时产生中断时,首先响应中断优首先响应中断优先级高的中断源中断请求,然后再响应中断优先级低先级高的中断源中断请求,然后再响应中断优先级低的中断源中断请求。的中断源中断请求。然而,多个中断源有可能处在同一优先级,当处于同然而,多个中断源有可能处在同一优先级,当处于同一优先级的多个中断源同时产生中断时,一优先级的多个中断源同时产生中断时,CPU应响应应响应那个中断源?那个中断源

13、?各中断源在同一优先级时从高到低的排列顺序为:各中断源在同一优先级时从高到低的排列顺序为:外部中断外部中断0定时器定时器0中断中断外部中断外部中断1 定时器定时器1中断中断串行口中断串行口中断(定时器定时器2中断中断)。 低优先级中断请求INT0T0T2串行口T1INT1查询顺序INT0T0T2串行口T1INT1中断允许寄存器TF1中断优先级寄存器高优先级中断请求中断开放(总开关)EAEX0PX010ET0PT010EX1PX110ET1PT110ESPS10ET2PT210IE0IT0=1IT0=0INT0IE1IT1=1IT1=0INT1TF0(8052)TF2EXF2RITI(引脚)(引

14、脚)T2中断允许(分开关)串行口中断允许(分开关)T1中断允许(分开关)外部中断1中断允许(分开关)外部中断0中断允许(分开关)T0中断允许(分开关)中断响应过程中断响应过程1中断响应条件中断响应条件开放中断。开放中断。无同级或高级中断服务程序正在执行。无同级或高级中断服务程序正在执行。现行指令执行到最后一个机器周期且已结束。现行指令执行到最后一个机器周期且已结束。若现行指令为若现行指令为RETI 或访问或访问IP,IE指令时,执行指令时,执行完该指令且紧随其后的另一条指令也已执行完完该指令且紧随其后的另一条指令也已执行完毕。毕。 中断响应过程CPU在每个机器周期中采样中断标志,在下一个机器周

15、期中按先后顺序查询中断标志。在查询到某一中断标志为1时,则在下一个机器周期S1期间按优先级别进行中断处理。中断系统通过硬件生成长调用指令LCALL,将程序转移到中断入口地址单元,执行相应的中断服务程序 响应中断时,CPU先置位优先级状态触发器,接着再执行由硬件产生的长调用指令LCALL。该指令将程序计数器PC的内容压入堆栈保护起来。中断入口地址中断入口地址 中断源中断入口地址外部中断00003H定时计数器T0中断 000BH外部中断10013H定时计数器T1中断 001BH串行口中断0023H定时计数器T2中断 002BH中断响应时间中断响应时间中断响应时间:指中断响应时间:指CPU检测到中断

16、请求信号到检测到中断请求信号到转入中断服务程序入口所需要的机器周期数。转入中断服务程序入口所需要的机器周期数。51单片机响应中断的最短时间为单片机响应中断的最短时间为3个机器周期。个机器周期。若若CPU检测到中断请求信号时间正好时一条指检测到中断请求信号时间正好时一条指令的最后一个机器周期,则不需等待,就可以令的最后一个机器周期,则不需等待,就可以立即响应。立即响应。这时响应时间包含这时响应时间包含1个检测的机器周期和内部硬个检测的机器周期和内部硬件执行一条长调用指令,件执行一条长调用指令,2个机器周期。个机器周期。中断响应时间一般为中断响应时间一般为38个机器周期个机器周期例例1:由:由P1

17、.0引脚输出一个引脚输出一个1KHz的方波信号。设的方波信号。设fosc=12MHz。 分析分析8051P1.05 50 00 0S5 50 00 0S1 1 m mS SP P1 1. .0 0t t2、算法:采用定时中断,每隔、算法:采用定时中断,每隔500S将将P1.0取反。取反。 定时器方式选择及初值计算:定时器方式选择及初值计算: 计数脉冲频率计数脉冲频率fp= (振荡器振荡器12分频)分频)计数脉冲周期计数脉冲周期Tp= =1S如果如果N为计数器的初值,为计数器的初值,n为计数器的长度,则:为计数器的长度,则:定时时间定时时间T(2nN)Tp 12fosc计数脉冲频率1oscf12

18、N0时定时时间最长,故当时定时时间最长,故当n(计数器长度)为确定计数器长度)为确定值时,最长定时时间值时,最长定时时间Tmax与与n和和Tp的关系如下:的关系如下:Tmax2n Tp当当n13(方式方式0),),Tp1S时:时:Tmax8192S当当n16(方式方式1),),Tp1S时:时:Tmax65536S当当n8 (方式方式2),),Tp1S时:时:Tmax256S 在本例中选用定时器在本例中选用定时器0方式方式1 计数器初值计数器初值N216 65536 65036(FE0C)16 TpTusus1500流程图流程图将将T T0 0设设置置为为方方式式1 1给给T TH H0 0、T

19、 TL L0 0赋赋初初值值启启动动计计数数器器0 0开开定定时时器器0 0中中断断等等待待中中断断主主程程序序重重新新给给T TH H0 0、T TL L0 0赋赋初初值值取取反反P P1 1. .0 0中中断断返返回回中中断断服服务务子子程程序序程序程序 ORG 0000H LJMP MAIN ORG 000BH LJMP T0I ORG 0030H MAIN: MOV TMOD,#01H MOV TH0,#0FEH MOV TL0,#0CH SETB TR0 MOV IE,#82H MAIN1:SJMP MAIN1 T0I: MOV TH0,#0FEH;中断服务子程序中断服务子程序 MO

20、V TL0,#0CH CPL P1.0 RETI ;中断返回中断返回 END例例2:外部中断:外部中断 通过外部中断通过外部中断0,使使P1口的发光口的发光二极管全亮二极管全亮,保持保持2秒秒,全灭全灭,再保持再保持2秒秒, 全亮全亮,如此循环往复如此循环往复 8 80 05 51 1+ +5 5V V+ +5 5V VINT0INT112MHz30P30PK K0 0K K1 1ORG0000HSTART:LJMPMAIN;转主程序转主程序ORG0003HLJMPINT0ORG0013HLJMPINT1ORG1000HMAIN: MOVIE,#85HS E T BP X 1S E T BI

21、T 0SETBIT1LOOP: MOVP1,#0FFHSJMPLOOPORG2000HINT0: MOVR3,#0AHD1:MOVP1,#0FHLCALL DELAYDJNZR3,D1 RETIORG2100HINT1:MOVA,R3PUSHAMOVR3,#02HMOVP1,#0F0HD2:LCALL DELAY;调用延时程序调用延时程序DJNZR3,D2;循环循环2次,延时次,延时 POP AMOVR3,ARETI延时子程序:延时子程序:DELAY: MOV R7,#64HDL0: MOV R6,#0FFHDL1: DJNZ R6,DL1 DJNZ R7,DL0 RET END例例3: 设设

22、T0工作于方式工作于方式2,TL0为为8位计数器,位计数器,TH0作数据缓冲器,作数据缓冲器, 可自动装入时间常数,产生可自动装入时间常数,产生500 s定时中断,在中断服务程序定时中断,在中断服务程序中把中把A的内容减的内容减1,送,送P1口显示。晶振为口显示。晶振为6MHz。ORG 000BH DEC A MOV P1, A RETIORG 1000HMOV TMOD ,#02H;方式方式2,定时,定时MOV TL0, #06HMOV TH0,#06HSETB TR0SETB ET0SETB EASJMP $例例4: 当当GATE=1, TRx=1,只有只有INTx引脚输入高电平引脚输入高

23、电平,Tx才被允才被允许许 计数,利用计数,利用GATE此功能,可测试此功能,可测试INTx引脚上正脉冲宽引脚上正脉冲宽度。度。方法:方法:T0从从0计数计数对对T0初始化初始化GATE=1T0停止计数停止计数读读T0数值数值 ORG 1000H MOV TMOD,#09H; MOV TL0,#00H MOV TH0,#00HL1:JB P3.2,L1 ; SETB TR0L2:JNB P3.2,L2L3:JB P3.2,L3 CLR TR0 MOV R0,TL0 MOV R1,TH0等待等待INT0脚为低电平脚为低电平;等待;等待INT0脚升高脚升高;等待;等待INT0脚下降脚下降例例5:

24、设设T0工作于方式工作于方式3,TL0 ,TH0为两个独立的为两个独立的8位计数器,位计数器,分别产生分别产生250 s和和500 s定时中断,使定时中断,使P1.1和和P1.2产生产生500 s和和1000 s的方波,晶振为的方波,晶振为12MHz。(两种方法)(两种方法)ORG 000BHMOV TL0,#83HCPL P1.1RETIORG 001BHMOV TH0,#06HCPL P1.2RETI256-125=83HTL0256-250=06HTH0ORG 1000HMOV TMOD,#03HMOV TL0,#83HMOV TH0,#06HSETB TR0SETB TR1SETB E

25、T0SETB ET1SETB EASJMP $串行口串行口一、串行通信的基本概念通信:CPU与外界的信息交换。通信的基本方式通信的基本方式: :串行通信和并行通信串行通信和并行通信并行通信并行通信: :数据的各位同时传送数据的各位同时传送. .特点特点: :传送速度快传送速度快, ,但若距离远但若距离远, ,位数又多时位数又多时, ,会导致通会导致通信线路复杂且成本高信线路复杂且成本高, ,不适宜远距离传送不适宜远距离传送. .串行通信串行通信: :数据一位接一位的顺序传送数据一位接一位的顺序传送. .特点特点: :通信线路简单通信线路简单, ,只要一根传输线就可实现通信只要一根传输线就可实现

26、通信, ,成成本低本低, ,特别适用于远距离通信特别适用于远距离通信, ,传输速度慢传输速度慢. .串行通信与并行通信串行通信与并行通信串行通信串行通信串行通信分为异步传送和同步传送串行通信分为异步传送和同步传送.1、异步传送、异步传送:数据在线路上的传送不连续数据在线路上的传送不连续.传送时传送时,数据以一个字符为单位进行传送数据以一个字符为单位进行传送.在异步传送时,在异步传送时,对字符必须规定一定的格式,以利于接收方判别对字符必须规定一定的格式,以利于接收方判别何时有字符送来及何时是一个新的字符的开始。何时有字符送来及何时是一个新的字符的开始。一个字符又称为一帧信息一个字符又称为一帧信息

27、. .一帧信息由起始位一帧信息由起始位, ,数数据位据位, ,奇偶校验位和停止位奇偶校验位和停止位4 4个部分组成个部分组成. .起始位为低电平起始位为低电平(0),(0),占一位占一位. .D D0 0D D1 1D D2 2D D3 3D D4 4D D5 5D D6 6D D7 7起始位数据位停止位0111 起始位后面为起始位后面为58个信息位,数据发送时总是个信息位,数据发送时总是低位在前,高位在后。低位在前,高位在后。 数据位后的数据位后的1位为奇偶校验位位为奇偶校验位(选配选配).最后是停止位最后是停止位,它用高电平它用高电平(信号信号1)来表示一帧来表示一帧信息的结束信息的结束,

28、可以是可以是1位位, 1.5位位, 2位位.异步传送中异步传送中,字符间隔不固定字符间隔不固定,在停止位后可以在停止位后可以加空闲位加空闲位,空闲位用高电平表示空闲位用高电平表示,用于等待传送用于等待传送.波特率波特率:数据的传送速率数据的传送速率,即每秒传送的二进制数的位数即每秒传送的二进制数的位数.其单位为其单位为bps(bits per second)。)。它是衡量串行数它是衡量串行数据速度快慢的重要指标据速度快慢的重要指标 。波特率一个字符的二进制编码位数波特率一个字符的二进制编码位数 字符字符/秒秒例:在异步串行通信中,传送一个字符包括例:在异步串行通信中,传送一个字符包括12位(一

29、位(一个起始位,个起始位,8个数据位,个数据位,2个停止位,一个校验位),个停止位,一个校验位),其传输速率是其传输速率是1200b/s,每秒钟所能传送的字符数是:每秒钟所能传送的字符数是:1200/(1+8+2+1)=100个,即字符速率是个,即字符速率是100字符字符/秒秒.标准波特率:标准波特率: 110、300、600、1200、1800、2400、4800、9600、14.4Kbps、19.2Kbps、28.8Kbps、33.6Kbps、56Kbps 异步串行通信注意事项异步串行通信注意事项1、字符格式、字符格式:通信双方要事先约定字符通信双方要事先约定字符的编码格式的编码格式,奇偶

30、校验格式及起始位和停奇偶校验格式及起始位和停止位的规定止位的规定.2、波特率、波特率:接收方和发送方的波特率接收方和发送方的波特率保持一致保持一致.同步传送同步传送同步传送时是按数据块传送的,把传送的字符顺同步传送时是按数据块传送的,把传送的字符顺序地连接起来,组成数据块。在数据块前面加上序地连接起来,组成数据块。在数据块前面加上特殊的同步字符,作为数据块的起始符号,在数特殊的同步字符,作为数据块的起始符号,在数据块的后面加上校验字符用于校验通信中的错误。据块的后面加上校验字符用于校验通信中的错误。在同步通信中字符之间没有空闲位,通信效率比在同步通信中字符之间没有空闲位,通信效率比较高。较高。

31、若数据块之间有时间间隔若数据块之间有时间间隔, ,则发送同步字符填充则发送同步字符填充. . 串行通信的数据传送方向串行通信的数据传送方向1、单工方式、单工方式2、半双工方式:采用一条数据线。、半双工方式:采用一条数据线。3、全双工方式:采用两条数据线。、全双工方式:采用两条数据线。MCS-51单片机串行口单片机串行口51单片机内部有一个功能很强的全双工串单片机内部有一个功能很强的全双工串行口行口,可同时接受和发送数据可同时接受和发送数据,接收和发送数接收和发送数据均可工作在查询方式或中断方式据均可工作在查询方式或中断方式.8051串行口的内部有数据接收缓冲器和数串行口的内部有数据接收缓冲器和

32、数据发送缓冲器。数据接收缓冲器只能读出不据发送缓冲器。数据接收缓冲器只能读出不能写入,数据发送缓冲器只能写入不能读出,能写入,数据发送缓冲器只能写入不能读出,这两个数据缓冲器都用符号这两个数据缓冲器都用符号SBUF来表示,来表示,地址都是地址都是99H。MCS-51串行口结构串行口结构一、串行口控制寄存器一、串行口控制寄存器SCON特殊功能寄存器特殊功能寄存器SCON存放串行口的控制和状存放串行口的控制和状态信息,地址为态信息,地址为98H,具有位寻址功能。串行具有位寻址功能。串行口用定时器作为波特率发生器。口用定时器作为波特率发生器。 D7D6D5D4D3D2D1D0SM0SM1SM2REN

33、TB8RB8TIRI特殊功能寄存器SCONSM0 SM1SM0 ,SM1为串行口工作方式选择位。为串行口工作方式选择位。SM0SM1方式功能000移位寄存器输入/输出方式(波特率为fosc/12 )0118位UART方式,波特率可变(T1溢出率/n)1029位UART方式,波特率fosc/64或fosc/321139位UART方式,波特率可变(T1溢出率/n)注:UART为通用的异步接收/发送器特殊功能寄存器特殊功能寄存器PCON PCON主要是为主要是为CHMOS型单片机的电源控制型单片机的电源控制设置的专用寄存器,单元地址为设置的专用寄存器,单元地址为87H,不能位不能位寻址。寻址。 SM

34、OD:波特率选择位。在方式波特率选择位。在方式1、方式、方式2和和方式方式3时,串行通信的波特率和时,串行通信的波特率和SMOD有关。有关。当当SMOD=1时,通信波特率乘以时,通信波特率乘以2;否则波特;否则波特率不变。率不变。SMODIDLPDGF0GF1PCOND7D6D5D4D3D2D1D0字节地址97H波特率计算波特率计算串行通信波特率的计算:串行通信波特率的计算:方式方式 0:移位寄存器方式。:移位寄存器方式。波特率波特率= fosc/12方式方式 2:9位位UART。波特率波特率= 2SMOD fosc/64方式方式 1、3:8、9位位UART。都是由定时器都是由定时器1作为串行

35、口波特率发生器,作为串行口波特率发生器,由其溢出率决定。由其溢出率决定。波特率波特率=( 2SMOD /32)()(定时器定时器1溢出率)溢出率))初值21(12322波特率的波特率综合公式为:3和1对于串行口方式8,2定时器方式16,1定时器方式13,0定时器方式的位数:1为定时器式中)初值21(12定时器溢出率modkoscskoscfkkkkf当定时器1工作于方式2时:波特率波特率= ( 2SMOD /32) (fosc/12)/(256TH1)串行口工作方式串行口工作方式一、方式一、方式0 方式方式0为同步移位寄存器方式,其波特为同步移位寄存器方式,其波特率固定,为率固定,为fosc/

36、12,数据由,数据由RXD(P3.0脚)脚)端出入,同步移位脉冲由端出入,同步移位脉冲由TXD(P3.1脚)端脚)端输出,发送、接收的是输出,发送、接收的是8位数据,低位在先位数据,低位在先, ,高位在后高位在后。1 1、发送。执行任何一条将、发送。执行任何一条将SBUFSBUF作为目的寄存作为目的寄存器的指令时,数据开始从器的指令时,数据开始从RXDRXD端串行发送,其端串行发送,其波特率为振荡频率的波特率为振荡频率的1/121/12。方式。方式0 0发送时的如发送时的如图图4 41313所示。所示。在写信号有效后,相隔一个机器周期,发送控制端在写信号有效后,相隔一个机器周期,发送控制端SE

37、NDSEND有效有效(高电平),允许(高电平),允许RXDRXD发送数据,同时,允许从发送数据,同时,允许从TXDTXD端输出移端输出移位脉冲,位脉冲,1 1帧(即帧(即8 8位)数据发送完毕时,各控制端均恢复原位)数据发送完毕时,各控制端均恢复原状态,只有状态,只有TITI保持高电平,呈中断申请状态。保持高电平,呈中断申请状态。要再次发送数要再次发送数据时,必须用软件将据时,必须用软件将TITI清零。清零。写写入入S SB BU UF FS SE EN ND D(发发送送开开始始)R RX XD D(数数据据输输出出)T TX XD D(移移位位脉脉冲冲)T TI I(中中断断标标志志)D

38、D0 0D D1 1D D2 2D D3 3D D4 4D D5 5D D6 6D D7 7(a a)图413方式0同步移位寄存器发送2 2、接收。在满足、接收。在满足REN=1REN=1和和RI=0RI=0的条件下,就会启动一次接收过的条件下,就会启动一次接收过程。此时,程。此时,RXDRXD为串行输入端,为串行输入端,TXDTXD为同步脉冲输出端。串行接为同步脉冲输出端。串行接收的波特率也为振荡频率的收的波特率也为振荡频率的1/121/12。其时序如图。其时序如图4 41414所示。所示。同样,当接收完一帧数据后,控制信号复位,只有同样,当接收完一帧数据后,控制信号复位,只有RIRI仍保持

39、高仍保持高电平,呈中断申请状态。再次接收时,必须通过软件清零。电平,呈中断申请状态。再次接收时,必须通过软件清零。R RE EC CE EI IV VE E(接接收收开开始始)R RX XD D(数数据据输输出出)T TX XD D(移移位位脉脉冲冲)(b b)D D0 0D D1 1D D2 2D D3 3D D4 4D D5 5D D6 6D D7 7写写S SC CO ON N( (清清R RI I) )R RI I( (中中断断标标志志) )图414方式0同步移位寄存器接收二、方式二、方式1 1在方式在方式1 1状态下,串行口为状态下,串行口为8 8位异步通信接口。一帧信息为位异步通信

40、接口。一帧信息为1010位,包括位,包括1 1位起始位(位起始位(0 0),),8 8位数据位(低位在先)和位数据位(低位在先)和1 1位停位停止位(止位(1 1)。)。TXDTXD为发送端,为发送端,RXDRXD为接收端。波特率不变。为接收端。波特率不变。1 1、发送。串行口以方式、发送。串行口以方式1 1发送时,数据由发送时,数据由TXDTXD端输出,端输出,CPUCPU执执行一条写入行一条写入SBUFSBUF的指令后,便启动串行口发送,发送完一帧的指令后,便启动串行口发送,发送完一帧信息时,发送中断标志置信息时,发送中断标志置1 1,其时序如图,其时序如图4 41515所示。所示。写入S

41、BUF写入SBUFSEND(发送开始)SEND(发送开始)TXD(数据输出)TXD(数据输出)D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D70 01 1TI(中断标志)TI(中断标志)(a)(a)起始位起始位停止位停止位图415方式1发送2 2、接收。方式、接收。方式1 1的接收时序如图的接收时序如图4 41616所示。所示。 数据从数据从RXD端输入。当允许输入位端输入。当允许输入位REN置置1后,接收后,接收器便以波特率的器便以波特率的16倍速率采样倍速率采样RXD端电平,当采样到端电平,当采样到1至至0的跳变时,启动接收器接收,并复位内部的的跳变时,启动接收器接收,并复

42、位内部的16分频计数分频计数器,以实现同步。计数器的器,以实现同步。计数器的16个状态把个状态把1位时间等分成位时间等分成16份,并在第份,并在第7、8、9个计数状态时,采样个计数状态时,采样RXD电平。电平。因此,每一位的数值采样三次,至少两次相同的因此,每一位的数值采样三次,至少两次相同的值才被确认。在起始位,如果接收到的值不是值才被确认。在起始位,如果接收到的值不是0 0,则起始位无效,复位接收电路。在检测到一个则起始位无效,复位接收电路。在检测到一个1 1到到0 0的跳变时,再重新启动接收器,如果接收值的跳变时,再重新启动接收器,如果接收值为为0 0,起始位有效,则开始接收本帧的其余信息。,起始位有效,则开始接收本帧的其余信息。在在RI=0RI=0的情况下,接收到停止位为的情况下,接收到停止位为1 1(或(或SM2=0SM2=0)时,将停止位送入时,将停止位送入RB8RB8,8 8位数据进入接收缓冲器位数据进入接收缓冲器SBUFSBUF,并置并置RI=1RI=1中断标志。中断标志。4.2.4 串行口应用举例串行口应用举例例例3 3:下图为单片机与:下图为单片机与PCPC机原理示意图。本例主要机原理示意图。本例主要完成以下几个通信功能:完成以下几个通信功能:a.a.通信波特率设为通信波特率设为48004800(1 1个起始位、个起始位、1 1个停止位个停止位及无校验位)

温馨提示

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

评论

0/150

提交评论