51单片机串口工作方式0和1_第1页
51单片机串口工作方式0和1_第2页
51单片机串口工作方式0和1_第3页
51单片机串口工作方式0和1_第4页
51单片机串口工作方式0和1_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

.,串口工作方式5.1方式0同步移位寄存器方式,比特率固定为fosc/12。常用于外接移位寄存器,以扩展并行I/O口,SM2位必须为0。1方式0发送:当CPU执行写入发送缓冲器SBUF的指令时,串行口即把SBUF中的8位数据以fosc/12的固定比特率从RXD引脚串行输出,低位在先,TXD引脚输出同步移位脉冲,发送完8位数据置“1”中断标志位TI,图5-1,CPU响应中断后:CLRTI,请求中断,写入SBUF后自动开始发送,.,5.2.2用74LS164扩展并行输出口74LS164:8位串入并出移位寄存器。图是利用74LS164扩展二个8位并行输出口的接口电路。.,图5-2-1,5.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-2,CPU响应中断后:CLRRI,RI=0时,其中REN=1,请求中断,写入SBUF后自动开始发送,.,5.2.1用74LS165扩展并行输入口,图9-21,P.159-160,74LS165:8位并入串出移位寄存器。图9-22是利用74LS164扩展二个8位并行输入口的接口电路。,并行锁存,串行口工作于方式0:同步移位寄存器方式接收,fosc/12,每当向SCON写入控制字为方式0且REN=“1”,即串行移入8位数据到SBUF,.,5.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-7,.,1方式1发送2方式1接收,图7-8,图7-9,P.105,请求中断,请求中断,可写下一个要发送的数据,可从SBUF读取新接收的数据,写入SBUF后自动开始发送,.,5.3.1比特率的制定方法方式0、方式2的比特率是固定的;方式1、方式3比特率由定时器T1的溢出率来确定。5.3.2定时器T1产生比特率的计算(1)方式0波特率=时钟频率fosc1/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.109,.,P.110,时钟振荡频率为6MHz或12MHz时,产生的比特率偏差较大,故用到串口通信时通常选用11.0592MHZ晶体振荡器。,=/12,=/32,=/12/计次/16,9.6kbit/s实际10.4166MHz102FDH1.2kbit/s实际1.3026MHz002F4H,=/12/计次/16,=/12/计次/32,1200bps,9600bps,计1次,计3次,计24次,计3次,计6次,计12次,比特率,比特率,.,MCS-51单片机串行接口的硬件,MCS-51单片机串行接口的控制,MCS-51单片机串行接口工作方式,P3.0位的第二功能收端RXDP3.1位的第二功能发端TXD,寄存器SCON、PCON、SBUF寄存器IE、IP,方式0方式2,方式1方式3,串行口的结构,.,有两个数据缓冲寄存器SBUF,一个输入移位寄存器,一个串行控制寄存器SCON和一个特殊功能寄存器PCON等组成。,8位SBUF是全双工串行接口寄存器,它是特殊功能寄存器,地址为99H,不可位寻址;串行输出时为发送数据缓冲器,发送寄存器只写不读,数据从发送端TXD(P3.1)输出;串行输入时为接收数据缓冲器,接收寄存器只读不写,数据从接收端RXD(P3.0)输入;由指令确定是对发送寄存器或接收寄存器作用。,.,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的差异,.,SM2多机通信控制位(方式2和3),SM2=0,无多机通信SM2=1,允许多机通信,串行口控制寄存器SCON,REN串行口接收数据控制位,REN=1,允许串行口接收数据REN=0,禁止串行口接收数据,由软件置位或清除,.,7.1.2特殊功能寄存器PCON,串行数据传送速率控制寄存器PCON,SMOD=0,定义波特率不变,SMOD=1,定义波特率加倍,注:PCON寄存器的地址为87H,仅b7位有用,不可位寻址。,地址:87H,TDL:等待方式位,PD:掉电方式,GF1、GF2通用标志位,ANLPCON,7FH:对SMOD位清零,ORLPCON,80H:对SMOD位置位,.,串行口的4种工作方式,SM0SM1,串行口工作方式选择位,可变,.,5.3.1方式0移位寄存器输入/输出方式,非串行通信用方式扩展并行I/O,RXD、TXD线的作用,用并入串出移位寄存器扩展并行输入口用串入并出移位寄存器扩展并行输出口,RXD串并、并串数据传送线TXD同步时钟线,同步时钟为fosc/12(固定波特率),注:为应用串行接口扩展并行接口的方式。,串行口为同步移位寄存器方式,.,方式0用于扩展并行I/O口,串并方式,扩展并行输出口,电路图,RXDTXD,DATACLK,功能线,RXD接移位寄存器的数据输入端TXD接移位寄存器的同步时钟端,8031,串入并出移位寄存器,注:注意信号方向,.,方式0用于扩展并行I/O口,并串方式,扩展输入口,电路图,功能线,RXDTXD,DATACLK,8031,并入串出移位寄存器,RXD接移位寄存器的数据输出端TXD接移位寄存器的同步时钟端,注:注意信号方向,.,方式0用于扩展并行I/O口,例1:用8031的串口外接1个串入并出移位寄存器芯片CD4094扩展为8位并行输出口,并口接8个LED,并循环轮流显示。,电路图,P1.0,DATACLK,TBS,CD4094,8031,TXD,RXD,.,方式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、08HCLRP1.0;CD4094输出并口关闭MOVSBUF,A;数据传出,产生中断RETIEND,注:延时子程序DELAY未给出,.,方式0用于扩展并行I/O口,例2:用8031的串口外接1个并入串出移位寄存器芯片CD4014扩展为8位并行输入口,并口接8个开关量输入,开关K闭合时有效。,电路图,P/S,CD4014,8031,P1.0,K,RXD,TXD,DATA,CLK,P1.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,.,方式110位异步接收/发送(波特率可变),方式1的数位,1位起始位值08位数据位为有用信息(低位在前,可含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,#7FHMOVR1,AINCR1CLRRIRET,.,7.3单片机串行口的应用,7.3.1串行口扩展显示器【例7-1】用8位串入并出移位寄存器74HC164扩展显示器。,.,功能:把数据从显示缓冲区送到数码管。入口;将要显示的数放在以DIS0为首的8个单元中。出口:把预置的数输出以更新原有的显示。,MOVR2,08H;显示8个数码管MOVR0,DIS7;显示缓冲区未地址送入R0DL0:MOVA,R0;取要显示数作查表偏移量MOVDPTR,TAB;指向字形表首MOVCA,ADPTR;查表得字形码MOVSBUF,A;发送显示DL1:JNBT1,DL1;等待发送完一帧CLRT1;清中断标志,准备继续发送DECR0;更新显示单元DJNZR2,DL0;重复显示所有数码管TAB:DB0C0H,0F9H,0A4H,0B0H,99H;0,1,2,3,4,DB92H,82H,0F8H,80H,90H;5,6,7,8,9,DB88H,83H,0C6H,0A1H,86H;A,B,C,D,E,DB8EH,0BFH,8CH,0FFH;F,P,暗,.,7.3.2串行口扩展的键盘,在方式0下,串行口作同步移位寄存器用,以8位数据为一帧,先发送或接收最低位,每个机器周期发送或接收一位,故其波特率是固定的,为fosc12。串行数据由RX

温馨提示

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

评论

0/150

提交评论