单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,串口工作方式,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,响应中断后:,CLR TI,恳求中断,写入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,响应中断后:,CLR RI,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/64fosc,假设fosc=12MHz:SMOD=0 比特率=187.5kb/s;,SMOD=1 比特率=375kb/s,3方式1或方式3时,比特率为:,比特率=2SMOD/32T1的溢出率,=fosc/12/(T1计数次数)2SMOD/32,实际设定比特率时,T1常设置为方式2定时自动装初值这种方式不仅操作便利,也可避开因软件重装初值而带来的定时误差。,P.109,P.110,时钟振荡频率为6MHz或12 MHz时,产生的,比,特率偏差较大,故用到串口通信时通常选用11.0592MHZ晶体振荡器。,=/12,=/32,=/12/,计次,/16,9.6kbit/s,实际,10.416,6MHz 1 0 2 FDH,1.2kbit/s,实际,1.302,6MHz 0 0 2 F4H,=/12/,计次,/16,=/12/,计次,/32,1200bps,9600bps,计,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,串行口的构造,有两个数据缓冲存放器SBUF,一个输入移位存放器,一个串行掌握存放器SCON和一个特殊功能存放器PCON等组成。,8 位SBUF是全双工串行接口存放器,它是特殊功能存放器,地址为 99H,不行位寻址;串行输出时为发送数据缓冲器,发送存放器只写不读,数据从,发送端TXDP3.1输出;,串行输入时为接收数,据缓冲器,接收存放,器只读不写,数据从,接收端 RXDP3.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:掉电方式,GF,1,、GF,2,通用标志位,ANL PCON,7FH:对SMOD位清零,ORL PCON,80H:对SMOD位置位,串行口的4种工作方式,SM,0,SM,1,0,0,1,0,0,1,1,1,方式,0,1,2,3,功 能,同步移位寄存器,10位异步收发,11位异步收发,11位异步收发,波特率,f,osc,/12,f,osc,/64或,f,osc,/32,可变,SM,0,SM,1,串行口工作方式选择位,可变,方式 0 移位存放器输入/输出方式,非串行通信用方式扩展并行,I/O,RXD,、,TXD,线的,作用,用并入串出移位存放器扩展并行输入口,用串入并出移位存放器扩展并行输出口,RXD,串 并、并 串 数据传送线,TXD,同步时钟线,同步时钟为,f,osc,/12(,固定波特率,),注:为应用串行接口扩展并行接口的方式。,串行口为同步移位存放器方式,方式 0 用于扩展并行 I/O口,串 并方式,扩展并行输出口,电路图,RXD,TXD,DATA,CLK,功能线,RXD 接移位存放器的数据输入端,TXD 接移位存放器的同步时钟端,8031,串入并出移位存放器,注:留意信号方向,方式 0 用于扩展并行 I/O口,并 串方式,扩展输入口,电路图,功能线,RXD,TXD,DATA,CLK,8031,并入串出移位存放器,RXD 接移位存放器的数据输出端,TXD 接移位存放器的同步时钟端,注:留意信号方向,方式 0 用于扩展并行 I/O口,例1:用 8031 的串口外接 1 个串入并出移位存放器 芯片CD4094 扩展为 8 位并行输出口,并口接 8 个 LED,并循环轮番显示。,电路图,P1.0,DATA,CLK,TBS,CD4094,8031,TXD,RXD,方式 0 用于扩展并行 I/O口,编程,ORG 0000H,LJMP MAIN,ORG 0023H,LJMP SBR,MAIN:MOV SCON,#00,H,;方式 0,TI=0,SETB EA,SETB ES,MOV A,#,80H,;初值,左边 LED 亮,CLR P1.0 ;CD4094 输出并口关闭,MOV SBUF,A ;数据传出,产生中断,LOOP:SJMP$,方式 0 用于扩展并行 I/O口,编程续,SBR:SETB P1.0 ;CD4094 输出并口翻开,LED 亮,ACALL DELAY,CLR TI ;手动清中断标志,RR A ;循环位移,;80H、40H、20H、10H、08H ,CLR P1.0 ;CD4094 输出并口关闭,MOV SBUF,A;数据传出,产生中断,RETI,END,注:延时子程序 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:JB P1.0,START ;假设 K 未合上则循环查询,SETB P1.1 ;CD4014 并行数据输入有效,MOV SCON,#00X1XXX0B,;方式 0,REN=1 允许接收,RI=0,CLR P1.1 ;CD4014 串行数据输出有效,LOOP:JNB RI,LOOP ;假设 RI=0 数据未收完,;假设 RI=1 数据已收完,CLR RI ;手动清 RI,预备下次传送数据,MOV A,SBUF,方式 1 10 位异步接收/发送波特率可变,方式,1,的数位,1 位起始位 值 0,8 位数据位 为有用信息低位在前,可含 1 位校验位,1 位停顿位 值 1,异步传送时的速率设置,速率设置的方法,设置定时器,T1,的初值,常用波特率:,用,T1,作为波特率发生器,,B=(2,SMOD,/32)T1,溢出率。,串行口为8位异步通信接口,方式 1续,异步发送时的工作过程,发送条件,清,SCON,中发送中断标志,TI=0,发送指令,MOV SBUF,,,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 位字节数据送串行数据缓冲器 SBUF,1 位停顿位送入 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 个单片机均有,ORG 0000H,LJMP MAIN,ORG 0023H,LJMP SBR1,MOV TMOD,#20H ;定时器 T1 设置为方式 2,MOV TL1,#0F4H,MOV TH1,#0F4H ;装定时器 T1 的初值,SETB TR1 ;启动定时器 T1,方式 1 用于串行通信,主程序2 个单片机均有,MOV SCON,#50H ;串口工作方式 1,REN=1,MOV R0,#20H ;发数据区首址,MOV R1,#40H ;收数据区首址,SETB ET1 ;开 T1 中断,SETB ES ;开串口中断,SETB EA ;开总中断,ACALL SOUT ;