通信接口选型及应用课件

上传人:494895****12427 文档编号:241579470 上传时间:2024-07-06 格式:PPT 页数:56 大小:540.96KB
返回 下载 相关 举报
通信接口选型及应用课件_第1页
第1页 / 共56页
通信接口选型及应用课件_第2页
第2页 / 共56页
通信接口选型及应用课件_第3页
第3页 / 共56页
点击查看更多>>
资源描述
基本概念:串行通信和并行通信MCS-51系列单片机串行通信 计算机1 GND 计算机2 GND并行通信 计算机1 GND 计算机2 GND发送接收串行通信并行通信:数据的各位并行通信:数据的各位并行通信:数据的各位并行通信:数据的各位同时同时同时同时传送;传送;传送;传送;串行通信:数据串行通信:数据串行通信:数据串行通信:数据一位一位一位一位一位一位一位一位顺序传送。顺序传送。顺序传送。顺序传送。基本概念:MCS-51系列单片机串行通信并行通信发送接收串1串行、并行通信各自特点 并行/串行:并行方式可一次同时传送N位数据,而串行方式一次只能传送一位;但并行传送的线路复杂(需要N根数据线),串行传送的线路简单(只需要12根数据线);并行方式常用于短距离通信,串行方式则多用于长距离通信。串行传送主要用于计算机与远程终端之间的数据传送,也很适合于经由公共电话网连接的计算机之间的通信。另外在某些场合,串行接口也可代替并行接口来控制外设,以节省软硬件资源,简化线路。串行、并行通信各自特点 并行/串行:并行方式可一次同2串行通信的分类:串行通信的分类:异步异步异步异步(Asynchronous Communication)(Asynchronous Communication)(Asynchronous Communication)(Asynchronous Communication)同步同步同步同步(Synchronous Communication)(Synchronous Communication)(Synchronous Communication)(Synchronous Communication)串行通信制式:串行通信制式:单工单工单工单工(a)(a)(a)(a)、半双工半双工半双工半双工(b)(b)(b)(b)和和和和全双工全双工全双工全双工(c)(c)(c)(c)(simplex half duplex full (simplex half duplex full (simplex half duplex full (simplex half duplex full duplex)duplex)duplex)duplex)发送器A站接收器B站单工通信(a)发收A站发收B站发收A站发收B站(b)(c)串行通信的分类:异步(Asynchronous Commun3同步、异步数据通信格式数据数据数据数据数据同步字符同 步字 符1同 步字 符2图6.1 同步传送的数据格式1 1 0 0/10/10/10/10/10/10/10/10/11 1 1起始位停止位奇偶校验8位 数据空闲位空闲位第 n个字符1 0 0/10/1起始位第 n+1个字符0/10/1图6.2 异步通信数据帧格式同步、异步数据通信格式数据数据数据数据数据同步字符同4同步通讯异步通信的概念 同步和异步都属于串行数据传送方式,但二者的传送格式有所不同。同步方式的一帧内含有很多数据位,而异步方式一帧内只含有几个数据位。如果要传送一大堆数据,同步方式只给这串数据进行一次外包装(即添加“头帧”、“尾帧”、“校验”帧),而异步方式在传送这串数据时则要对数据的每一个字节分别加以包装(即添加“头”位、“尾”位和校验)。显然在相同的数据传输波特率下,同步方式比异步方式的传送速度快,但同步方式要求收发双方在整个事件传送过程中始终保持严格同步,这将增加硬件上的难度,而异步通信只要求每帧(字节)的传送中短时间保持同步即可,实现起来要容易得多。同步通讯异步通信的概念 同步和异步都属于串行数据传送5MCS-51串行接口的结构串行接口的结构SBUFSBUF发送控制接收控制发 送端 口接 收端 口1波特率控制TXDRXDDBDBTIRI串行中断写SBUF读SBUF1.数据缓冲寄存器数据缓冲寄存器SBUF两个两个SBUF,一个用于发送,一个用于发送(只写);一个用于接收(只写);一个用于接收(只读)。映象地址均为(只读)。映象地址均为99H。2.数据发送与接收控制数据发送与接收控制发送控制器在波特率作用下,发送控制器在波特率作用下,将发送将发送SBUF中的数据由并中的数据由并到串,一位位地传输到发送到串,一位位地传输到发送端口;接收控制器在波特率端口;接收控制器在波特率作用下,将接收接收端口的作用下,将接收接收端口的数据由串到并,存入接收数据由串到并,存入接收SBUF中。中。MCS-51串行接口的结构SBUFSBUF发送控制接收控制发6MCS-51的串行接口的串行接口概述概述概述概述qq有一个可编程全双工串行通信接口(有一个可编程全双工串行通信接口(有一个可编程全双工串行通信接口(有一个可编程全双工串行通信接口(UART)UART)UART)UART)(Universal Asychronous Receiver/Transmitter(Universal Asychronous Receiver/Transmitter(Universal Asychronous Receiver/Transmitter(Universal Asychronous Receiver/Transmitter )qq管脚:管脚:管脚:管脚:TXDTXDTXDTXD(P3.1P3.1P3.1P3.1)、)、)、)、RXDRXDRXDRXD(P3.0P3.0P3.0P3.0)qq可同时发送、接收数据可同时发送、接收数据可同时发送、接收数据可同时发送、接收数据(Transmit/Receive)Transmit/Receive)Transmit/Receive)Transmit/Receive)qq有四种工作方式,帧格式有有四种工作方式,帧格式有有四种工作方式,帧格式有有四种工作方式,帧格式有8 8 8 8、10101010、11111111位。位。位。位。qq波特率波特率波特率波特率(Baud rate)(Baud rate)(Baud rate)(Baud rate)可设置可设置可设置可设置 波特率:每秒钟传送二进制数码的位数,也叫比特数,单位为b/s,即位/秒。MCS-51的串行接口概述7MCS-51串行接口寄存器qqSBUFSBUF串行口数据缓冲器串行口数据缓冲器串行口数据缓冲器串行口数据缓冲器qq共两个:一个发送寄存器共两个:一个发送寄存器共两个:一个发送寄存器共两个:一个发送寄存器SBUFSBUF,一个接收,一个接收,一个接收,一个接收SBUFSBUF,二者共用一个地,二者共用一个地,二者共用一个地,二者共用一个地址址址址99H99H。qqSCONSCON串行口控制寄存器串行口控制寄存器串行口控制寄存器串行口控制寄存器qqPCONPCON电源及波特率选择寄存器电源及波特率选择寄存器电源及波特率选择寄存器电源及波特率选择寄存器MCS-51串行接口寄存器SBUF串行口数据缓冲器8控制寄存器控制寄存器SCONSM0SM1SM2RENTB8RB8TIRI工作方式选择多机通信控制位允许串行接收位接收数据的第9位发送数据的第9位接收中断标志发送中断标志9FH9EH9DH9CH9BH9AH99H98H控制寄存器SCONSM0SM1SM2RENTB8RB8TIR9SM0 SM1工作方式工作方式功能功能波特率波特率0 0方式方式08位同步移位寄存器位同步移位寄存器fosc/120 1方式方式110位位UART可变可变1 0方式方式211位位UARTfosc/64或或fosc/321 1方式方式311位位UART可变可变串行方式的定义例:设串行口工作在方式例:设串行口工作在方式例:设串行口工作在方式例:设串行口工作在方式1 1 1 1,允许接收,则指令为:,允许接收,则指令为:,允许接收,则指令为:,允许接收,则指令为:MOV SCON,#01010000B MOV SCON,#01010000B MOV SCON,#01010000B MOV SCON,#01010000BSM0 SM1工作方式功能波特率0 0方式08位同10串行通信只用该位,为串行通信只用该位,为串行通信只用该位,为串行通信只用该位,为1 1时,波特率时,波特率时,波特率时,波特率22;为;为;为;为0 0时不变。时不变。时不变。时不变。SMOD GF1 GF0PDIDL87H电源及波特率选择寄存器电源及波特率选择寄存器PCONPCON串行通信只用该位,为1时,波特率2;为0时不变。SMOD11方式的选择由方式的选择由方式的选择由方式的选择由SM1SM1、SM0SM0实现。实现。实现。实现。工作方式功能说明波特率方式08位同步移位寄存器常用于扩展I/O口fosc/12方式110位UART8位数据、起始位、结束位可变(取决于定时器1溢出率)方式211位UART8位数据、起始位0、结束位1和奇偶校验位fosc/64或fosc/32方式311位UART数据、起始、校验、结束位可变(取决于定时器1溢出率)串行口四种工作方式应用比较串行口四种工作方式应用比较方式的选择由SM1、SM0实现。工作方式功能说明波特率方式012 在方式在方式在方式在方式0 0 0 0下,串行口作同步移位寄存器用,其波特率固下,串行口作同步移位寄存器用,其波特率固下,串行口作同步移位寄存器用,其波特率固下,串行口作同步移位寄存器用,其波特率固定为定为定为定为f f f foscoscoscosc/12/12/12/12。串行数据从。串行数据从。串行数据从。串行数据从RXD(P3.0)RXD(P3.0)RXD(P3.0)RXD(P3.0)端输入或输出,同步移端输入或输出,同步移端输入或输出,同步移端输入或输出,同步移位脉冲由位脉冲由位脉冲由位脉冲由TXD(P3.1)TXD(P3.1)TXD(P3.1)TXD(P3.1)送出。这种方式常用于扩展送出。这种方式常用于扩展送出。这种方式常用于扩展送出。这种方式常用于扩展I/OI/OI/OI/O口。口。口。口。方式0用于扩展I/O口输出方式方式0 0 在方式0下,串行口作同步移位寄存器用,其波特率固定为13方式0用于扩展I/O输出口原理 串行数据从RXD引脚输出,TXD引脚输出移位脉冲。CPU将数据写入发送寄存器SBUF时,立即启动发送,将8位数据以Fosc/12的固定波特率从RXD输出,低位在前,高位在后。发送完一帧数据后,发送标志TI由硬件置位。例:单片机串行口方式设为移位寄存器方式,外接6片74LS164作为6位LED显示器的静态显示接口。方式0用于扩展I/O输出口原理 串行数据从R14串口方式0应用入口:把要显示的数分别放在显示缓冲区60H-65H共6个单元中,并且分别对应各个数码管LED0-LED5。出口:将预置在显示缓冲区中的6个数成相应的显示字形码,然后输出到显示器中显示。DISP:MOVSCON,#00H;初始化串行口方式初始化串行口方式0MOVR1,#06H;显示显示6位数位数MOVR0,#65H;60H-65H为显示缓冲区为显示缓冲区MOVDPTR,#SEGTAB;字形表的入口地址字形表的入口地址LOOP:MOVA,R0;取最高位的待显示数据取最高位的待显示数据MOVCA,A+DPTR;查表获取字形码查表获取字形码MOVSBUF,A;送串口显示送串口显示DELAY:JNBTI,DELAY;等待发送完毕等待发送完毕CLRTI;清发送标志清发送标志DECR0;指针下移一位,准备取下一个待显示数指针下移一位,准备取下一个待显示数DJNZR1,LOOP;直到直到6个数据全显示完。个数据全显示完。RETSETTAB:;字形表,字形表,DB03H9FH27H0DH99H49H41H1FH01H09H0FFH串口方式0应用入口:把要显示的数分别放在显示缓冲区60H-615方式0用于扩展I/O口输入方式0用于扩展I/O输入口原理方式0用于扩展I/O口输入方式0用于扩展I/O输入口原理16方式0用于扩展I/O输入口原理输入:RXD为串行输入端,TXD仍为同步脉冲移位输出端。当(RI)=0且(REN)=1时开始接受。当接受到第8位数据时,将数据亦如接收寄存器,并由硬件置位RI。例:利用串行口扩展了1片74LS165,从而实现了8个按键的输入,在单片机的P1口连接了 8个LED发光二极管,程序中实现了用按键控制发光二极管的亮与灭。流程为8路开关-74165-3PIN数据线-8路指示灯。由此可以看出通过165传输,只用了3条数据线,就实现了8个开关控制8个灯的目的。从而节约了控制的连线。方式0用于扩展I/O输入口原理输入:RXD为串行输入端,TX17串口方式0扩展输入口应用接线方法:接线方法:1用一个用一个4PIN数据排线一端插入数据排线一端插入CPU部分部分JP53(P3口)的口)的P3.0,P3.1,P3.2,P3.3。另外一端插入。另外一端插入74LS165部分的输入端部分的输入端JP21。2用一根用一根8PIN的数据排线,的数据排线,一端插入一端插入74LS165部分的输出端部分的输出端JP28,另一端另一端插入插入8路按键开关的的路按键开关的的JP48。3用一条用一条8PIN的数据排线把的数据排线把CPU部份的部份的P1口(口(JP44)连接到八路指示灯部)连接到八路指示灯部份的份的JP32。运行后分别按。运行后分别按k00-k07,可以看到可以看到d00-d07八个灯受控制八个灯受控制串口方式0扩展输入口应用接线方法:18程序清单org00hloop:movscon,#00010000b;设定设定sm0sm1=00,mode0clrp3.2;P3.2=0载入数据载入数据calldelay1;延时延时setbp3.2;P3.2=1;数据输出数据输出clrri;RI=0loop1:jbcri,loop2;RI=1?是则到是则到LOOP2jmploop1;否则继续监测否则继续监测loop2:mova,sbuf;将将SUBF载入载入ACCmovp1,a;输出到输出到P1jmploop;重新开始重新开始程序清单org 00h 19delay:movr7,#00h;延时子程序延时子程序tt:movr6,#00hdjnzr6,$djnzr7,ttretdelay1:;短延时子程序短延时子程序movr7,#02djnzr7,$retenddelay:201.方式方式0:移位寄存器方式:移位寄存器方式写SBUF内部移出脉冲RXD(数据输出)TXD(移位时钟)TID0D1D2D3D4D5D6D7方式方式0发送时序发送时序写SCON,清RI,置REN内部移出脉冲RIRXD(数据输入)TXD(移位时钟)D0D1D2D3D4D5D6D7方式方式0接收时序接收时序方式0时序1.方式0:移位寄存器方式写SBUF内部移出脉冲RXD(数据21方式1串行口为波特率可调的10位通用异步接口UART。每发送或接收的一帧信息中,包括1位起始位0,8位数据位和1位停止位1。方式1串行口为波特率可调的10位通用异步接口UART。每发送22方式1时序 一帧数据为一帧数据为10位:位:1位起始位、位起始位、8位数据位和位数据位和1位停止位。位停止位。写写SBUFTXD起起始始位位停停止止位位TID0D1D2D3D4D5D6D7方方式式1发发送送时时序:序:起起始始位位停停止止位位RXDRI采采 样样时间时间D0D1D2D3D4D5D6D7方方式式1接接收收时时序:序:方式1时序方式1时序写SBUFTXD起始位停止位TID0D1D2D3D23方式方式21 1 1 1、串行口为串行口为串行口为串行口为11111111位位位位UARTUARTUARTUART,传送波特率与,传送波特率与,传送波特率与,传送波特率与SMODSMODSMODSMOD有关。发送或接有关。发送或接有关。发送或接有关。发送或接收的一帧数据中包括收的一帧数据中包括收的一帧数据中包括收的一帧数据中包括1 1 1 1位起始位位起始位位起始位位起始位0 0 0 0,8 8 8 8位数据位,位数据位,位数据位,位数据位,1 1 1 1位可编程位位可编程位位可编程位位可编程位(用于奇偶校验用于奇偶校验用于奇偶校验用于奇偶校验)和和和和1 1 1 1位停止位位停止位位停止位位停止位1 1 1 1。方式21、串行口为11位UART,传送波特率与SMOD有24方式方式3 方式方式方式方式3 3 3 3为波特率可变的为波特率可变的为波特率可变的为波特率可变的11111111位位位位UARTUARTUARTUART通信方式,通信方式,通信方式,通信方式,除了波特率以外,方式除了波特率以外,方式除了波特率以外,方式除了波特率以外,方式3 3 3 3和方式和方式和方式和方式2 2 2 2完全相同。完全相同。完全相同。完全相同。方式3 方式3为波特率可变的11位UART通信方式,除25MCS-51串行口的波特率串行口的波特率1.1.1.1.方式方式方式方式0 0 0 0和方式和方式和方式和方式2 2 2 2的波特率是固定的的波特率是固定的的波特率是固定的的波特率是固定的 在方式2中,波特率取决于PCON中的SMOD值:当SMOD=0时,波特率为fosc/64;当SMOD=1时,波特率为fosc/32.即波特率=。oscSMODf642 在方式0中,波特率为时钟频率的1/12,即fosc/12,固定不变MCS-51串行口的波特率1.方式0和方式2的波特率是固定的262.2.2.2.方式方式方式方式1 1 1 1和方式和方式和方式和方式3 3 3 3的波特率可变,由定时器的波特率可变,由定时器的波特率可变,由定时器的波特率可变,由定时器1 1 1 1的溢出率决定的溢出率决定的溢出率决定的溢出率决定波特率/(b/s)fosc/MHzSMOD定时器1C/模式初始值方式0:1 M方式2:375 k方式1、3:62.5 k19.2 k9.6 k4.8 k2.4 k1.2 k137.5 k11011012121211.05911.05911.05911.05911.05911.9866121110000000000000000222222221FFHFDHFDHFAHF4HE8H1DH72HFEEBHT波特率=2.方式1和方式3的波特率可变,由定时器1的溢出率决定波特27方式方式0 0:波特率是固定的,为:波特率是固定的,为fosc/12fosc/12方式方式2 2:SMOD=1SMOD=1时为时为fosc/32fosc/32,SMOD=0SMOD=0时为时为fosc/64fosc/64方式方式1 1和方式和方式3 3:波特率:波特率=2=2SMODSMOD T1T1溢出率溢出率/32 /32 T1 T1溢出率溢出率=fosc/32=fosc/32 12(2812(28N)N),N N为定时器为定时器T1T1的计数初值的计数初值例:要求串行口以方式例:要求串行口以方式1 1工作,通信波特率为工作,通信波特率为2400b/s2400b/s,设振荡频率,设振荡频率foscfosc为为6MHz6MHz,请初始化,请初始化T1T1和串口。和串口。解:若选解:若选SMOD=1SMOD=1,则,则T1T1时间常数时间常数 N=256 N=2562121 6 6 106/(384106/(384 2400)=242.98243=F3H2400)=242.98243=F3H 则,定时器则,定时器T1T1和串行口的初始化程序如下:和串行口的初始化程序如下:MOVMOVTMODTMOD,#20H#20H;设置;设置T1T1为方式为方式2 2MOVMOVTH1TH1,#0F3H#0F3H;置时间常数;置时间常数MOVMOVTL1TL1,#0F3H#0F3HSETBSETBTR1TR1;启动;启动T1T1ORLORLPCONPCON,#80H#80H;SMOD=1SMOD=1MOVMOVSCONSCON,#50H#50H;设串行口为方式;设串行口为方式1 1设置通讯波特率方式0:波特率是固定的,为fosc/12设置通讯波特率28串行通信接口标准串行通信接口标准1.RS-232C通信接口通信接口接口信号:接口信号:9针针D型头型头1569载波检测DCD接收数据RXD发送数据TXD数据终端就绪信号地GND数据装置就绪请求发送RTS清除发送CTS振铃指示MCS-51系列单片机串行通信接口串行通信接口标准1569载波检测DCD接收数据RXD发送数据29电气特性:电气特性:逻辑逻辑“1”:3V15V;逻辑;逻辑“0”:3V15V。传输距离传输距离15米。米。最大负载电容最大负载电容2500pF。波特率波特率20kb/s。接受器输入阻抗:接受器输入阻抗:37k。驱动器输出阻抗驱动器输出阻抗300。驱动器转换速率驱动器转换速率30V/s。输出短路电流输出短路电流0.5A。RS232特性电气特性:RS232特性30电平转换电平转换单片机电平是单片机电平是TTL电平,它与电平,它与RS-232C电平不兼容,电平不兼容,必须进行电平转换。电平转换的电路很多,必须进行电平转换。电平转换的电路很多,MAX232是是一种新型的专用集成电路,类似的集成电路还很多。一种新型的专用集成电路,类似的集成电路还很多。C1+C1-C2+C2-VCCV+V-电压倍增器+5V+10V电压反向器+10V-10V1111+5VT1OUTT2OUTR1OUTR2OUTT1INT2INR1INR2INC1C2C3C4TTL/CMOS输入TTL/CMOS输出RS-232C输出RS-232C输入MAX232C2-V-C1+V+C1-C2+T2OUTR2INR2OUTT2INT1INR1OUTR1INT1OUTVCCGND12345678910161514131211RS232电平转换芯片电平转换 C1+C1-C2+C2-VCCV+V-电压倍增器电31PC机COM口接8051机11p(TXD)10p(RXD)PC机和单片机串口通讯的硬件电路 PC机COM口接8051机11p(TXD)PC机和单片机串口32RS-422A通信接口通信接口接口信号:接口信号:9针针D型头型头电气特性电气特性电平转换电平转换3.RS-485通信接口:将通信接口:将RS-422A的发送数据信号正端与的发送数据信号正端与接收数据信号正端连起来,发送数据信号负端与接收接收数据信号正端连起来,发送数据信号负端与接收数据信号负端连起来就成为数据信号负端连起来就成为RS-485通信接口通信接口1569发送数据负发送数据负TX发送数据正发送数据正TX+接收数据正接收数据正RX+接收数据负接收数据负RX信号地信号地GND请求发送负请求发送负RTS清除发送正清除发送正CTS+请求发送负请求发送负RTS+清除发送负清除发送负CTSMCS-51系列单片机串行通信接口 RS-422A通信接口1569发送数据负TX发送数据正33接接 口口性性 能能RS-232CRS-422ARS-485功能功能双向,全双工双向,全双工双向,全双工双向,全双工双向,半双工双向,半双工传输方式传输方式单端单端差分差分差分差分逻辑逻辑“0”电平电平3V15V2V6V1.5V6V逻辑逻辑“1”电平电平3V15V2V6V1.5V6V最大速率最大速率20kb/s10Mb/s10Mb/s最大距离最大距离30m1200m1200m驱动器加载输出电驱动器加载输出电压压55V15V2V2V1.5V1.5V接受器输入敏感度接受器输入敏感度3V3V0.2V0.2V0.2V0.2V接收器输入阻抗接收器输入阻抗3 37K7K4K4K7K7K组态方式组态方式点对点点对点1台驱动器:台驱动器:10台接台接收器收器32台驱动器:台驱动器:32台台接收器接收器抗干扰能力抗干扰能力弱弱强强强强传输介质传输介质扁平或多芯电缆扁平或多芯电缆二对双绞线二对双绞线一对双绞线一对双绞线RS232、RS422、RS485对比接 口RS-232CRS-422ARS-485功能双向,全346.3PC机与单片机通信 PC机是国内目前使用应用最广泛的微机,在与单片机串行接口后,可以方便地构成主从分布式多机系统。从机(单片机)作数据采集或实时控制,主机作数据处理或中央管理等。这种多机系统在过程控制、仪表生产、生产自动化和企业管理等方面都有广泛的应用。此外微机和单片机串行接口后,可以大大方便单片机的开发过程。6.3 PC机与单片机通信 PC机是国内目前使35一、PC机串口资源及编程使用方法 PC机一般有COM1和COM2两个串口。寄存器名称寄存器名称端口地址端口地址复位后初始值复位后初始值COM1COM2发送器保持寄存器(发送器保持寄存器(TBR)3F8H2F8HXXXXXXXXB接收器数据寄存器(接收器数据寄存器(RBR)3F8H2F8HXXXXXXXXB波特绿因子低位寄存器(波特绿因子低位寄存器(DLL)3F8H2F8H00000000B波特绿因子高位寄存器(波特绿因子高位寄存器(DLH)3F9H2F9H00000001B中断允许寄存器(中断允许寄存器(IER)3F9H2F9H00000000B中断标识寄存器(中断标识寄存器(IIR)3FAH2FAH00000000B线路控制寄存器(线路控制寄存器(LCR)3FBH2FBH01100000B调制解调器控制寄存器(调制解调器控制寄存器(MCR)3FCH2FCHXXXX0000B线路状态寄存器(线路状态寄存器(LSR)3FDH2FDHXXXXXXXXB调制解调器状态寄存器(调制解调器状态寄存器(MSR)3FEH2FEHXXXXXXXXB一、PC机串口资源及编程使用方法 寄存器名称端口地址复位后初36使用串口必须先初始化,有以下使用串口必须先初始化,有以下4个步骤。个步骤。DLHDLL波波特特率率DLHDLL波特波特率率DLHDLL波特波特率率09H00H5000HC0H60000H18H480006H00H7500H60H120000H10H720004H17H11000H40H180000H0CH960003H59H134.500H3AH200000H06H1920003H00H15000H30H240000H03H3840001H80H30000H20H360000H01H115200例:设例:设COM1的波特率为的波特率为9600,则,则outportb(0 x3fb,0 x80););/*写线路控制寄存器,访问波特率因子寄存器写线路控制寄存器,访问波特率因子寄存器*/outportb(0 x3f8,0 x0c););/*写入波特率因子低字节写入波特率因子低字节*/outportb(0 x3f9,0 x00););/*写入波特率因子高字节写入波特率因子高字节*/设置波特率设置波特率PC机串口初始化使用串口必须先初始化,有以下4个步骤。DLHDLL波特率DL37设置数据格式设置数据格式例:设数据为例:设数据为7位,位,1位起始位,位起始位,1位停止位,偶校验,则位停止位,偶校验,则设置如下:设置如下:outportb(0 x3fb,0 x1a);设置操作方式设置操作方式不允许中断:不允许中断:outportb(0 x3fc,0 x03);允许中断:允许中断:outportb(0 x3fc,0 x0b);自测试工作方式,且不允许中断:自测试工作方式,且不允许中断:outportb(0 x3fc,0 x13);设置中断允许寄存器设置中断允许寄存器开放中断语句:开放中断语句:outportb(0 x3f9,0 x0f);PC机串口初始化 设置数据格式 PC机串口初始化38例例1将将PC机的机的COM1初始化为初始化为9600波特率、波特率、7位数据、偶位数据、偶校验、校验、1位停止位、不中断,则位停止位、不中断,则初始程序初始程序如下:如下:initcom1()()outportb(0 x3fb,0 x80););/*写线路控制寄存器,访问写线路控制寄存器,访问波特率因子寄存器波特率因子寄存器*/outportb(0 x3f8,0 x0c););/*写入波特率因子低字节写入波特率因子低字节*/outportb(0 x3f9,0 x00););/*写入波特率因子高字节写入波特率因子高字节*/outportb(0 x3fb,0 x1a););/*设数据为设数据为7位,位,1位起始位起始位,位,1位停止位,偶校验位停止位,偶校验*/outportb(0 x3fc,0 x03););/*不允许中断不允许中断*/PC机的发送、接收程序PC机的发送、接收程序39例例2PC机从机从COM1发送一个字符,程序如下:发送一个字符,程序如下:send(charsendchar)intcoms;do/*查询发送缓冲器是否空查询发送缓冲器是否空*/coms=inportb(0 x3fd)&0 x20;while(coms!=0 x20););outportb(0 x3f8,sendchar););例2 PC机从COM1发送一个字符,程序如下:40例例3PC机从机从COM1接收一个字符,程序如下:接收一个字符,程序如下:charreceive()()charcoms,receivechar;waitok:/*查询接收数据是否有效查询接收数据是否有效*/coms=inportb(0 x3fd););if(coms&0 x01)=0)gotowaitok;receivechar=inportb(0 x3f8););returnreceivechar;例3 PC机从COM1接收一个字符,程序如下:41二、二、PC机与单片机双机通信机与单片机双机通信PC机与单片机构成主从式上下位计算机系统。机与单片机构成主从式上下位计算机系统。例:从例:从PC机键盘上输入一个字符,然后将这个字符发送给单片机,单机键盘上输入一个字符,然后将这个字符发送给单片机,单片机接收到这个字符后,不做任何处理,又将它发回给片机接收到这个字符后,不做任何处理,又将它发回给PC机,机,PC机机将这个字符显示在屏幕上。连接电路如下:将这个字符显示在屏幕上。连接电路如下:PC机RXDTXDMAX232T1OUTR1INT1IN(R1OUTRXDTXDMCS-51约定:约定:u波特率:波特率:2400b/su信息格式:信息格式:8位数据,位数据,1位停止位位停止位u传送方式:传送方式:PC机采用查询式收发数据,单片机采用中断式收机采用查询式收发数据,单片机采用中断式收发数据发数据 由于PC机是RS-232C电平,单片机是TTL电平,用MAX232进行电平转换。PC机与单片机通信设计二、PC机与单片机双机通信 PC机RXDTXDMAX232T42PC机的通信软件机的通信软件#include“stdio.h”main()()charc1,c2;intcoms;outportb(0 x3fb,0 x80););/*初始化初始化8250*/outportb(0 x3f8,0 x30););outportb(0 x3f9,0 x00););outportb(0 x3fb,0 x03););/*8位数据,位数据,1位位停止位停止位*/outportb(0 x3fc,0 x03););c1=getchar();();开 始初始化8250有键输入吗?取键盘字符发送寄存器空否?向单片机发送字符接收单片机发回的字符接收的数据有效码?显示发回的字符NNNYYY结 束PC机发送程序 PC机的通信软件 开 始初始化8250有键输入吗?取键43do/*查询发送缓冲器是否空查询发送缓冲器是否空*/coms=inportb(0 x3fd)&0 x20;while(coms!=0 x20);outportb(0 x3f8,c1);waitok:/*查询接收数据是否有效查询接收数据是否有效*/coms=inportb(0 x3fd);if(coms&0 x01)=0)goto waitok;c2=inportb(0 x3f8);printf(“The return char is:”);putchar(c2);do/*查询发送缓冲器是否空*/44开 始初始化定时器T1初始化串行口启动定时器T1开放中断主程序踏步中断服务程序关中断清接收中断标志RI保护现场接收PC机发来的字符将字符发送回PC机开中断,恢复现场中断返回MCS-51单片机通信软件主程序中断服务程序开 始初始化定时器T1初始化串行口启动定时器T1开放中断主45主程序:ORG0000HLJMPMAINORG0023HLJMPSERVEMAIN:MOVTMOD,#20H ;初始化T1MOVTH1,#0F3HMOVTL1,#0F3HMOVSCON,#50H;串行口为方式1,REN=1MOVPCON,#80H;SMOD=1SETBTR1SETBEASETBESHERE:SJMPHERE单片机接收程序主程序:单片机接收程序46中断服务程序:中断服务程序:SERVE:CLREA;中断服务程序;中断服务程序CLRRIPUSHPSW;保护现场;保护现场SETBRS0CLRRS1PUSHACCMOVA,SBUF;接收;接收PC机发来的字符机发来的字符MOVSBUF,A;将字符回送给;将字符回送给PC机机WAIT:JNBTI,WAIT;等待发送完毕;等待发送完毕CLRTIPOPACC;恢复现场;恢复现场POPPSWSETBEARETIEND中断服务程序:47三、三、PC机与单片机通讯多机通信机与单片机通讯多机通信多机通信的关键问题:识别单片机!给单片机编号。多机通信的关键问题:识别单片机!给单片机编号。怎样识别单片机?怎样识别单片机?起始起始位位D0D1D2D3D4D5D6D7奇偶奇偶位位停止停止位位起始起始位位D0D1D2D3D4D5D6D7TB8停止停止位位 从从PC机和单片机帧格式可知:通过软件编程,使得机和单片机帧格式可知:通过软件编程,使得PC机在机在发送地址(单片机编号)时,奇偶位为发送地址(单片机编号)时,奇偶位为1,发送数据时为,发送数据时为0;单片;单片机接收时,机接收时,TB8为为1表示收到的地址,为表示收到的地址,为0表示收到的数据。表示收到的数据。PC机与单片机通讯多机通信三、PC机与单片机通讯多机通信起始位D0D1D2D3D4D548例:从例:从PC机的键盘上输入单片机的编号,要求机的键盘上输入单片机的编号,要求PC机与该单机与该单片机进行通信测试,从键盘上输入一个字符,发送给某片机进行通信测试,从键盘上输入一个字符,发送给某单片机,单片机受到该字符后,又发回给单片机,单片机受到该字符后,又发回给PC机,在屏幕机,在屏幕上显示出来。上显示出来。由于由于RS-232C不能实现多机通信,故采用不能实现多机通信,故采用RS-422标准。标准。电路如下:电路如下:PC机机TXDRXD232/422转换器转换器RXDTXDMCS-5175175751741号号RXDTXDMCS-5175175751742号号RXDTXDMCS-517517575174n号号PC机与单片机的多级通信例:从PC机的键盘上输入单片机的编号,要求PC机与该单片机进49PC机软件设计机软件设计 开开 始始初始化初始化8250输入单片机输入单片机编号编号发送单片机发送单片机编号编号接收单片机送回接收单片机送回的编号的编号取键盘字取键盘字符符编号一致吗编号一致吗?向单片机发送向单片机发送字符字符接收单片机发回接收单片机发回的字符的字符显示发回的显示发回的字符字符NY结结 束束多机通讯程序设计 PC机软件设计 开 始初始化8250输入单片机编号发送50程序清单:程序清单:#include“stdio.h”main()()charc1,c2,n1,n2;intcoms;outportb(0 x3fb,0 x80););/*初始化初始化8250*/outportb(0 x3f8,0 x30););outportb(0 x3f9,0 x00););outportb(0 x3fb,0 x2b););/*8位数据,位数据,1位停止,奇偶校验位为位停止,奇偶校验位为1*/outportb(0 x3fc,0 x03););/*PC机处于发送地址状态机处于发送地址状态*/outportb(0 x3f9,0 x00););/*禁止禁止8250中断中断*/printf(“PleaseinputthenumberofMCS:n”););scanf(“%c”,&n1););do/*查询发送移位寄存器是否空查询发送移位寄存器是否空*/coms=inportb(0 x3fd)&0 x40;while(coms!=0 x40););outportb(0 x3f8,n1););/*PC机发送单片机地址编号机发送单片机地址编号*/outportb(0 x3fc,0 x01););/*PC机处于接收状态机处于接收状态*/waitok1:/*查询单片机返回的编号是否有效查询单片机返回的编号是否有效*/coms=inportb(0 x3fd););if(coms&0 x01)=0)PC机端的程序程序清单:PC机端的程序51gotowaitok1;n2=inportb(0 x3f8););/*读入单片机返回的编号读入单片机返回的编号*/if(n1!=n2)printf(“ThenumberofMCSiserror!n”););break;elseoutportb(0 x3fc,0 x03););/*PC机处于发送状态机处于发送状态*/outportb(0 x3fb,0 x3b););/*PC机处于发送数据状态机处于发送数据状态*/c1=getchar();();do/*查询发送移位寄存器是否空查询发送移位寄存器是否空*/coms=inportb(0 x3fd)&0 x40;while(coms!=0 x40););outportb(0 x3f8,c1););outportb(0 x3fc,0 x01););/*PC机处于接收状态机处于接收状态*/waitok2:/*查询单片机返回的字符是否有效查询单片机返回的字符是否有效*/coms=inportb(0 x3fd););if(coms&0 x01)=0)gotowaitok2;c2=inportb(0 x3f8););/*读入单片机返回的字符读入单片机返回的字符*/printf(“Thereturncharis:”););/*显示返回的字符显示返回的字符*/putchar(c2);goto waitok1;52 单片机程序流程单片机程序流程中断服务程序保护现场接收地址与本机地址相等否?回送本机地址接收PC机发来的字符将收到的字符回送PC机恢复现场中断返回NY单片机软件设计单片机软件设计 单片机程序流程中断服务程序保护现场接收地址与本机地址相等533、程序清单:ORG0000HLJMPMAINORG0023HLJMPSERVEMAIN:MOVTMOD,#20H;初始化T1MOVTH1,#0F3HMOVTL1,#0F3HMOVSCON,#0F0H;串行口为方式3,REN=1MOVPCON,#80H;SMOD=1SETBTR1SETBEASETBESHERE:SJMPHERESERVE:CLREAPUSHACCPUSHPSWCLRRS1SETBRS03、程序清单:54MOVA,SBUF;接收地址;接收地址XRLA,#01H;与本机地址进行比较;与本机地址进行比较JNZRETURN;与本机地址不符,则返回;与本机地址不符,则返回CLRSM2;置单片机为接收数据状态;置单片机为接收数据状态CLRRIMOVA,#01HMOVSBUF,A;发送本机地址给;发送本机地址给PC机机JNBTI,;等待发送完毕;等待发送完毕CLRTIJNBRI,;等待;等待PC机发来的字符接收完毕机发来的字符接收完毕MOVA,SBUF;读入字符;读入字符CLRRIMOVSBUF,AJNBTI,;等待发送完毕;等待发送完毕CLRTIRETURN:POP PSWPOPACCSETBEARETIENDMOV A,SBUF;接收地址55本章要求:本章要求:了解通信、并行通信、串行通信、同步通信、异步通信、了解通信、并行通信、串行通信、同步通信、异步通信、信息帧、波特率等概念;信息帧、波特率等概念;了解了解MCS-51MCS-51单片机串行口的结构;单片机串行口的结构;掌握掌握MCS-51MCS-51单片机的单片机的4 4种工作方式及波特率的设置;种工作方式及波特率的设置;掌握掌握4 4种方式下串行数据的收发过程;种方式下串行数据的收发过程;了解了解RS232CRS232C、RS422A/485RS422A/485通信协议;通信协议;了解了解PCPC机串口资源及其使用方法;机串口资源及其使用方法;掌握单片机与掌握单片机与PCPC机进行双机和多机通信的电路及实现程序。机进行双机和多机通信的电路及实现程序。小结本章要求:小结56
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!