您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > MCS第九章串行接口
第十章:MCS-51系统的串行接口§10.1:串行通信的基本知识§10.2:MCS-51单片机的串行接口§10.3:MCS-51单片机串行接口的应用§10.4:MCS-51单片机RS-232串行接口§10.1:串行通信的基本知识•串行通信的基本通信方式•串行通信中的数据传送方式•并行/串行变换及串行接口串行通信的基本通信方式•串行通信协议异步协议同步协议数据可顺次地出现在数据流中,数据间的相对延迟没有专门的时钟来控制。数据流中顺次出现的数据由一个主数据时钟来管理,以一定的时间间隔出现。串行通信的基本通信方式•异步串行通信协议中的位定义•同步串行通信协议中的字节定义010/1起始位停止位数据位(位同步)0/10/1同步字节数据字节(字节同步)串行通信的基本通信方式•异步传送方式异步传送的特点异步传送的格式•数据在线路上的传送不是连续的•收发双方各用自已的时钟源控制接收和发送•起始位——1bit,0电平•数据位——Nbit,有效电平•校验位——1bit,与数据位中的值有关,可不用•停止位——1~2bit,1电平注:传送字符由4部分组成串行通信的基本通信方式•异步传送方式(续)异步传送中的数据间同步位——起始位异步传送中数据间的延时控制——停止位•发端按传送格式发数据流•收端若收到0电平(1bit),则认为后面将固定收Nbit数据位和1bit校验位•固定收Nbit数据位和1bit校验位后•固定收异步传送格式定义的停止位(固定延迟)•若无新的起始位(0电平),则收Mbit个1电平(可变延迟)串行通信的基本通信方式•异步传送方式(续)异步传送中的数据位•收发端必顺采用相同的异步传送格式•收发端必顺采用相近的速率(波特率)收发端的一致性特点•7bit数据位格式•8bit数据位格式注:波特率的概念看268页的说明注:数据位格式由工作方式确定串行通信的基本通信方式•同步传送方式同步传送的特点同步传送的格式数据在线路上的传送是连续的•同步字符块——由N字节数据组成•数据块——由M长度的字节数据组成注:同步字符和数据块由协议确定串行通信的基本通信方式•异步、同步传送比较异步同步•用位作为收发字符的同步信号•相对效率低•用字节作为收发数据块的同步信号,•相对效率高注:传送数据量少时用串行异步方式传送数据量多时用串行同步方式并行/串行变换及串行接口•数据传送方式计算机内部的数据传送均采用并行传送方式计算机间的数据传送应采用串行传送方式•数据变换方式计算机向外发送数据需完成数据的并行/串行变换计算机由外接收数据需完成数据的串行/并行变换•数据变换方法用软件实现数据的并行/串行变换用硬件实现数据的并行/串行变换§10.2:MCS-51单片机的串行接口•MCS-51单片机串行接口的硬件•MCS-51单片机串行接口的控制•MCS-51单片机串行接口工作方式P3.0位的第二功能——收端RXDP3.1位的第二功能——发端TXD寄存器SCON、PCON、SBUF寄存器IE、IP方式0方式2方式1方式3MCS-51单片机串行接口的控制•8位数据缓冲器——SBUF全双工串行接口寄存器SBUF为特殊功能寄存器,地址为99H串行输出时为发送数据缓冲器串行输入时为接收数据缓冲器注:数据从发送端TXD(P3.1)输出注:数据从接收端RXD(P3.0)输入注:不可位寻址MCS-51单片机串行接口的控制•串行口控制寄存器——SCONb7b6b5b4b3b2b1b0SM0SM1SM2RENTB8RB8TIRI9FH9EH9DH9CH9BH9AH99H98HSM0、SM1——串行接口工作方式定义位•SM0、SM1=00——方式0,同步移位寄存器•SM0、SM1=01——方式1,10位异步接收发送•SM0、SM1=10——方式2,11位异步接收发送•SM0、SM1=11——方式3,11位异步接收发送注:方式0的特点,方式2、方式3的差异MCS-51单片机串行接口的控制•串行口控制寄存器——SCON(续)SM2——多机通信控制位•SM2=0,无多机通信•SM2=1,允许多机通信REN——串行口接收数据控制位•REN=1,允许串行口接收数据•REN=0,禁止串行口接收数据TB8——发送串行输出数据的第9位RB8——接收串行输入数据的第9位注:方式2和方式3时,该位用于作校验位MCS-51单片机串行接口的控制•串行口控制寄存器——SCON(续)TI——串行口中发送完一组数据后的中断标志RI——串行口中接收完一组数据后的中断标志•若串口发送完一组数据,则由硬件自动置TI=1•若串口还要发数据,则应手动编程使TI=0•若串口接收完一组数据,则由硬件自动置RI=1•若串口还要收数据,则应手动编程使RI=0MCS-51单片机串行接口的控制•串行数据传送速率控制寄存器——PCONb7b6b5b4b3b2b1b0SMODSMOD=0,定义波特率不变SMOD=1,定义波特率加倍注:PCON寄存器的地址为87H,仅b7位有用,不可位寻址。MCS-51单片机串行接口的工作方式•方式0——移位寄存器输入/输出方式非串行通信用方式RXD、TXD线的作用•用并入串出移位寄存器扩展并行输入口•用串入并出移位寄存器扩展并行输出口•RXD——串→并、并→串数据传送线•TXD——同步时钟线,同步时钟为fosc/12注:为应用串行接口扩展并行接口的方式。MCS-51单片机串行接口的工作方式•方式1——10位异步接收/发送(波特率可变)方式1的数位•1位起始位——值0•8位数据位——为有用信息(可含1位校验位)•1位停止位——值1异步传送时的速率设置•速率设置的方法——设置定时器T1的初值•常用波特率(表10.2,276页)MCS-51单片机串行接口的工作方式•方式1(续)异步发送时的工作过程•发送条件——清SCON中发送中断标志TI=0•发送指令——MOVSBUF,A注:需发送的8位字节数据送串行数据缓冲器SBUF后将启动异步发送开始。•起始位0、停止位1在执行发送指令时自动加入•发送传输线——TXD、GND•发送10位数据结束——发送中断标志TI=1注:若需继续发送,置TI=0,送数据到SBUFMCS-51单片机串行接口的工作方式•方式1(续)异步接收时的工作过程•接收条件——清SCON中接收中断标志RI=0置SCON中接收控制标志REN=1•接收传输线——RXD、GND•接收同步位——接收传输线RXD有从1到0的信号•接收数据——9位数据送数据接收器8位字节数据送串行数据缓冲器SBUF1位停止位送入SCON中的RB8=1•接收10位数据结束——接收中断标志RI=1注:若需继续接收,置RI=0MCS-51单片机串行接口的工作方式•方式2——11位异步接收/发送(波特率固定)方式2的数位•1位起始位——值0•8位数据位——为1字节有用信息•1位校验位——对有用信息的奇偶校验•1位停止位——值1异步传送时的速率设置•若PCON中SMOD=0,速率=fosc/32•若PCON中SMOD=1,速率=fosc/64MCS-51单片机串行接口的工作方式•方式2(续)异步发送时的工作过程异步接收时的工作过程•基本过程同方式1•1位校验位在发送前应先置入SCON中的TB8•基本过程同方式1•1位校验位(第9位)送SCON中的RB8注:RB8中未存放1位停止位MCS-51单片机串行接口的工作方式•方式3——11位异步接收/发送(波特率可变)基本定义同方式2速率设置同方式1注:方式0——固定波特率为fosc/12方式2——固定波特率为fosc/32或fosc/64上述方式与单片机主频有关方式1——可变波特率方式3——可变波特率上述方式与定时器T1的初值有关§10.3:51单片机串行接口的应用•方式0用于扩展并行I/O口•方式1和方式3仅传送数位不同•方式2为固定波特率•方式1和方式3均需设置可变波特率方式0用于扩展并行I/O口•串→并方式,扩展并行输出口电路图RXDTXDDATACLK功能线•RXD——接移位寄存器的数据输入端•TXD——接移位寄存器的同步时钟端8031串入并出移位寄存器注:注意信号方向方式0用于扩展并行I/O口•并→串方式,扩展输入口电路图功能线RXDTXDDATACLK8031并入串出移位寄存器•RXD——接移位寄存器的数据输出端•TXD——接移位寄存器的同步时钟端注:注意信号方向方式0用于扩展并行I/O口例10.1:用8031的串口外接1个串入并出移位寄存器芯片CD4094扩展为8位并行输出口,并口接8个LED,并循环轮流显示。•电路图P1.0DATACLKTBSCD40948031TXDRXD方式0用于扩展并行I/O口•编程ORG0000HLJMPMAINORG0023HLJMPSBRMAIN:MOVSCON,#00XXXX0XB;方式0,TI=0SETBEASETBESMOVA,#10000000B;初值,左边LED亮CLRP1.0;CD4094输出并口关闭MOVSBUF,A;数据传出,产生中断LOOP:SJMP$方式0用于扩展并行I/O口•编程(续)SBR:SETBP1.0;CD4094输出并口打开,LED亮ACALLDELAYCLRTI;手动清中断标志RRA;循环位移;80H、40H、20H、10H、08H…CLRP1.0;CD4094输出并口关闭MOVSBUF,A;数据传出,产生中断RETIEND注:延时子程序DELAY未给出方式0用于扩展并行I/O口例10.2:用8031的串口外接1个并入串出移位寄存器芯片CD4014扩展为8位并行输入口,并口接8个开关量输入,开关K闭合时有效。•电路图P//SCD40148031P1.0KRXDTXDDATACLKP1.1方式0用于扩展并行I/O口•编程START:JBP1.0,START;若K未合上则循环查询SETBP1.1;CD4014并行数据输入有效MOVSCON,#00X1XXX0B;方式0,REN=1允许接收,RI=0CLRP1.1;CD4014串行数据输出有效LOOP:JNBRI,LOOP;若RI=0数据未收完;若RI=1数据已收完CLRRI;手动清RI,准备下次传送数据MOVA,SBUF方式1用于串行通信例10.3:8031串行口双工方式收发ASCII字符,最高1位用来作奇偶校验位,采用奇校验方式,波特率为1200。•工作方式•数据区•主频选用方式1,7位ASCII码,1位校验码发送数据区首址20H,接收数据区首址40H•T1设置fosc=6MHz方式2,初值为F4H(查表10.2)方式1用于串行通信•主程序(2个单片机均有)ORG0000HLJMPMAINORG0023HLJMPSBR1MOVTMOD,#20H;定时器T1设置为方式2MOVTL1,#0F4HMOVTH1,#0F4H;装定时器T1的初值SETBTR1;启动定时器T1方式1用于串行通信•主程序(2个单片机均有)MOVSCON,#50H;串口工作方式1,REN=1MOVR0,#20H;发数据区首址MOVR1,#40H;收数据区首址SETBET1;开T1中断SETBES;开串口中断SETBEA;开总中断ACALLSOUT;调用发送子程序SJMP$方式1用于串行通信•串行口中断服务程序SBR1:JNBRI,SENDACALLSIN;若RI=1,调用接收子程序SJMPNEXTSEND:ACALLSOUT;若RI=0,调用发送子程序NEXT:RETI方式1用于串行通信•发送子程序SOUT:MOVA,@R0MOVC,PCPLCMOVACC.7,CINCR0MOVSBUF,ACLR,TIRET方式1用于串行通信•接收子程序SIN:MOVA,SBUFMOVC,PCPLCANLA,#7FHMOV@R1,AINCR1CLRRIRET作业•10.1•10.3
本文标题:MCS第九章串行接口
链接地址:https://www.777doc.com/doc-3295854 .html