预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共32页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

5.2MCS-51串行接口及其应用一、串行通信的两种基本方式为逻辑“0”信号,占用一位,用来通知接收设备,一个新的字符开始了 2、同步传送方式二、MCS-51串行口结构1、数据缓冲器SBUFSM0SM1SM2RENTB8RB8TIRI(2)SM2——多机通信控制位 用于方式2或方式3中。 如果SM2=1,只有当接收到的第9位数据(RB8)为“1”时,才将接收到的前8位数据送入SBUF,并置“1”RI,产生中断请求;当接收到的第9位数据(RB8)为“0”时,则将接收到的前8位数据丢弃。 如果SM2=0,则不论第9位数据是“1”还是“0”,都将前8位数据送入SBUF中,并置“1”RI,产生中断请求。 REN:允许接收控制位。 3、特殊功能寄存器PCON8051⑵方式0接收2、方式13、方式24、方式3四、波特率的设计⑷定时器1作波特率发生器(1)利用方式0扩展并行I/O口 例:利用51单片机的串行口外接74LS164扩展8位并行输出口。电路图如下图所示,8位并行输出口的各位分别接一个发光二极管,要求发光二极管按从左到右的顺序,以一定的时间间隔依次循环发光,试编程实现。参考程序如下: ORG0000H LJMPMAIN ORG2000H MAIN: CLRP1.0 MOVSCON,#00H SETBP1.0 MOVA,#80H BACK1: MOVSBUF,AC51参考程序如下: #include“reg51.h” SbitP1_0=P1^0; //voiddelay(void) Voidmain(){ Unsignedcharled; P1_0=0; SCON=0; P1_0=1; Led=0x80; While(1){ SBUF=led;利用51单片机的串行口外接74ls165扩展8位并行输入口, 如图所示要求通过8位输入口读入一个字节数据存入R2中汇编语言源程序: ORG0000H; LJMPMAIN; ORG2000H; MAIN:CLRP1.0; SETBP1.0; BACK:MOVSCON,#10H; BACK1:JNBRI,BACK1; CLRRI; MOVA,SBUF; MOVR2,A; SJMP$;(2)利用方式1实现点对点的异步通信 例:编程将甲机片内RAM50H~5FH单元中的数据向乙机发送,在发送之前将数据块长度N发送给乙机,当发送完N个字节后,再发送一个累加效验和。乙机接收数据进行累加和校验,如果和发送方的累加和一致,发送数据“00”,表示接收正确,如果不一致,发数据FFH,甲机再重发,乙机接收的数据存入片内70H~7FH单元中。设波特率为2400,fosc=6MHz,试编程实现。 参考程序如下:甲机发送程序 TRT:MOVTMOD,#20H MOVTH1,#0F3H MOVTL1,#0F3H SETBTR1 MOVSCON,#50H RPT:MOVR0,#50H MOVR2,#10H MOVR3,#00H MOVSBUF,R2 BACK1:JNBTI,BACK1 CLRTI BACK2:MOVA,@R0 MOVSBUF,A ADDA,R3乙机接收程序 RSU:MOVTMOD,#20H MOVTH1,#0F3H MOVTL1,#0F3H SETBTR1 MOVSCON,#50H BACK:MOVR0,#70H BACK1:JNBRI,BACK1 CLRRI MOVA,SBUF MOVR2,A MOVR3,#00H BACK2:JNBRI,BACK2 CLRRI MOVA,SBUF MOV@R0,A INCR0 甲机发送C51参考程序: #include“reg51.h” Voidmain(){ Volatileunsignedcharrev; Unsignedchar*pt,chk,len; TMOD=0x20; TH1=0xF3; TL1=0xF3; TR1=1; SCON=0x50; Do{ Pt=0x50; Len=0x10; Chk=0; SBUF=len; While(!TI) TI=0; Do{ 乙机接收C51参考程序: #include“reg51.h” Voidmain(){ Volatileunsignedcharrev; Unsignedchar*pt,chk,len; Bitstat; TMOD=0x20; TH1=0xF3; TL1=0xF3; TR1=1; SCON=0x50; Do{pt=0x70; while(!RI) RI=0; Rev=SBUF; Len=rev; Chk=0; do{ While(!RI) (3)利用方式2、方式3与多机通信 串行口控制寄存器SCON中的SM2位为方式2、方式3的多机通讯控制位。在多机通讯中起着非常重要的作用。一个典型的多机通讯系统