51单片机串口工作方式0和1解析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

串口工作方式5.1方式0同步移位寄存器方式,比特率固定为fosc/12。常用于外接移位寄存器,以扩展并行I/O口,SM2位必须为0。1.方式0发送:当CPU执行写入发送缓冲器SBUF的指令时,串行口即把SBUF中的8位数据以fosc/12的固定比特率从RXD引脚串行输出,低位在先,TXD引脚输出同步移位脉冲,发送完8位数据置“1”中断标志位TI图5-1CPU响应中断后:CLRTI请求中断写入SBUF后自动开始发送5.2.2用74LS164扩展并行输出口74LS164:8位串入并出移位寄存器。图是利用74LS164扩展二个8位并行输出口的接口电路。.图5-2-15.2用AT89C51的串行口扩展并行口RXD/TXD/74HC595:8位串入并出移位寄存器,带锁存及三态输出功能。(相当于74LS164+273+244)清0串行口工作于方式0:同步移位寄存器方式发送fosc/12每当新数据写入SBUF,即把SBUF中的8位数据以串行移出2.方式0接收向串口的SCON写入控制字(置为方式0,并置“1”REN位,同时RI=0)时,串行口即开始接收数据。RXD为数据输入端,TXD为移位脉冲信号输出端,也以fosc/12的固定比特率,当收到8位数据时置“1”RI。表示一帧数据接收完,时序如下:图5-2CPU响应中断后:CLRRIRI=‘0’时其中REN=‘1’请求中断写入SBUF后自动开始发送5.2.1用74LS165扩展并行输入口图9-21P.159-16074LS165:8位并入串出移位寄存器。图9-22是利用74LS164扩展二个8位并行输入口的接口电路。并行锁存串行口工作于方式0:同步移位寄存器方式接收fosc/12每当向SCON写入控制字为方式0且REN=“1”,即串行移入8位数据到SBUF5.2.2方式1:8位异步收发,比特率可变(由定时器控制)SM0、SM1=01方式1一帧数据为10位,1个起始位(0),8个数据位,1个停止位(1),先发送或接收最低位。帧格式如图7-7:方式1比特率=(2SMOD/32)×定时器T1的溢出率SMOD为PCON寄存器的最高位的值(0或1)。图7-71.方式1发送2.方式1接收图7-8图7-9P.105请求中断请求中断可写下一个要发送的数据可从SBUF读取新接收的数据写入SBUF后自动开始发送5.3.1比特率的制定方法方式0、方式2的比特率是固定的;方式1、方式3比特率由定时器T1的溢出率来确定。5.3.2定时器T1产生比特率的计算(1)方式0波特率=时钟频率fosc×1/12,不受SMOD位的值的影响。若fosc=12MHz,比特率为fosc/12即1Mb/s。(2)方式2波特率=(2SMOD/64)×fosc若fosc=12MHz:SMOD=0比特率=187.5kb/s;SMOD=1比特率=375kb/s(3)方式1或方式3时,比特率为:比特率=(2SMOD/32)×T1的溢出率=fosc/12/(T1计数次数)×(2SMOD/32)实际设定比特率时,T1常设置为方式2定时(自动装初值)这种方式不仅操作方便,也可避免因软件重装初值而带来的定时误差。P.109P.110时钟振荡频率为6MHz或12MHz时,产生的比特率偏差较大,故用到串口通信时通常选用11.0592MHZ晶体振荡器。=/12=/32=/12/计次/169.6kbit/s实际10.4166MHz102FDH1.2kbit/s实际1.3026MHz002F4H=/12/计次/16=/12/计次/321200bps9600bps计1次计3次计24次计3次计6次计12次比特率比特率•MCS-51单片机串行接口的硬件•MCS-51单片机串行接口的控制•MCS-51单片机串行接口工作方式P3.0位的第二功能——收端RXDP3.1位的第二功能——发端TXD寄存器SCON、PCON、SBUF寄存器IE、IP方式0方式2方式1方式3串行口的结构CPU波特率发生器+SBUF门TXDRXD串行口中断接收控制器发送控制器移位寄存器TIRISBUFT1有两个数据缓冲寄存器SBUF,一个输入移位寄存器,一个串行控制寄存器SCON和一个特殊功能寄存器PCON等组成。8位SBUF是全双工串行接口寄存器,它是特殊功能寄存器,地址为99H,不可位寻址;串行输出时为发送数据缓冲器,发送寄存器只写不读,数据从发送端TXD(P3.1)输出;串行输入时为接收数据缓冲器,接收寄存器只读不写,数据从接收端RXD(P3.0)输入;由指令确定是对发送寄存器或接收寄存器作用。b7b6b5b4b3b2b1b0SM0SM1SM2RENTB8RB8TIRI9FH9EH9DH9CH9BH9AH99H98HSM0、SM1——串行接口工作方式定义位•SM0、SM1=00——方式0,8位同步移位寄存器•SM0、SM1=01——方式1,10位异步接收发送•SM0、SM1=10——方式2,11位异步接收发送•SM0、SM1=11——方式3,11位异步接收发送7.1.1串行口控制寄存器SCON注意:方式0的特点,方式2、方式3的差异b7b6b5b4b3b2b1b0SM0SM1SM2RENTB8RB8TIRI9FH9EH9DH9CH9BH9AH99H98HSM2——多机通信控制位(方式2和3)•SM2=0,无多机通信•SM2=1,允许多机通信串行口控制寄存器SCONREN——串行口接收数据控制位•REN=1,允许串行口接收数据•REN=0,禁止串行口接收数据由软件置位或清除7.1.2特殊功能寄存器PCON•串行数据传送速率控制寄存器——PCONb7b6b5b4b3b2b1b0SMODGF1GF2PDTDLSMOD=0,定义波特率不变SMOD=1,定义波特率加倍注:PCON寄存器的地址为87H,仅b7位有用,不可位寻址。地址:87HTDL:等待方式位PD:掉电方式GF1、GF2通用标志位ANLPCON,#7FH:对SMOD位清零ORLPCON,#80H:对SMOD位置位串行口的4种工作方式SM0SM100100111方式0123功能同步移位寄存器10位异步收发11位异步收发11位异步收发波特率fosc/12fosc/64或fosc/32可变SM0SM1串行口工作方式选择位可变•5.3.1方式0——移位寄存器输入/输出方式非串行通信用方式-扩展并行I/ORXD、TXD线的作用•用并入串出移位寄存器扩展并行输入口•用串入并出移位寄存器扩展并行输出口•RXD—串→并、并→串数据传送线•TXD—同步时钟线,同步时钟为fosc/12(固定波特率)注:为应用串行接口扩展并行接口的方式。串行口为同步移位寄存器方式方式0用于扩展并行I/O口•串→并方式,扩展并行输出口电路图RXDTXDDATACLK功能线•RXD——接移位寄存器的数据输入端•TXD——接移位寄存器的同步时钟端8031串入并出移位寄存器注:注意信号方向方式0用于扩展并行I/O口•并→串方式,扩展输入口电路图功能线RXDTXDDATACLK8031并入串出移位寄存器•RXD——接移位寄存器的数据输出端•TXD——接移位寄存器的同步时钟端注:注意信号方向方式0用于扩展并行I/O口例1:用8031的串口外接1个串入并出移位寄存器芯片CD4094扩展为8位并行输出口,并口接8个LED,并循环轮流显示。•电路图P1.0DATACLKTBSCD40948031TXDRXD方式0用于扩展并行I/O口•编程ORG0000HLJMPMAINORG0023HLJMPSBRMAIN:MOVSCON,#00H;方式0,TI=0SETBEASETBESMOVA,#80H;初值,左边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口例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位异步接收/发送(波特率可变)方式1的数位•1位起始位—值0•8位数据位—为有用信息(低位在前,可含1位校验位)•1位停止位—值1异步传送时的速率设置•速率设置的方法——设置定时器T1的初值•常用波特率:用T1作为波特率发生器,B=(2SMOD/32)×T1溢出率。串行口为8位异步通信接口•方式1(续)异步发送时的工作过程•发送条件——清SCON中发送中断标志TI=0•发送指令——MOVSBUF,A注:需发送的8位字节数据送串行数据缓冲器SBUF后将启动异步发送开始。•起始位0、停止位1在执行发送指令时自动加入•发送传输线——TXD、GND•发送10位数据结束——发送中断标志TI=1注:若需继续发送,置TI=0,送数据到SBUF•方式1(续)异步接收时的工作过程•接收条件——清SCON中接收中断标志RI=0置SCON中接收控制标志REN=1•接收传输线——RXD、GND•接收同步位——接收传输线RXD有从1到0的信号•接收数据——9位数据送数据接收器8位字节数据送串行数据缓冲器SBUF1位停止位送入SCON中的RB8=1•接收10位数据结束——接收中断标志RI=1注:若需继续接收,置RI=0方式1用于串行通信例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,AINCR1CLRRIRET7.3单片机串行口的应用•7.3.1串行口扩展显示器•【例7-1】用8位串入并出移位寄存器74HC164扩展显示器。8051TXDRXD+5V74HC164Q7Q1Q0D74HC164Q7Q1Q0D74HC164Q7Q1Q0D(

1 / 35
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功