通信接口选型及应用课件.ppt

上传人(卖家):ziliao2023 文档编号:5636358 上传时间:2023-04-28 格式:PPT 页数:56 大小:1.03MB
下载 相关 举报
通信接口选型及应用课件.ppt_第1页
第1页 / 共56页
通信接口选型及应用课件.ppt_第2页
第2页 / 共56页
通信接口选型及应用课件.ppt_第3页
第3页 / 共56页
通信接口选型及应用课件.ppt_第4页
第4页 / 共56页
通信接口选型及应用课件.ppt_第5页
第5页 / 共56页
点击查看更多>>
资源描述

1、 基本概念:串行通信和并行通信MCS-51系列单片机串行通信 计算机1 GND 计算机2 GND并行通信 计算机1 GND 计算机2 GND发送接收串行通信串行、并行通信各自特点 并行/串行:并行方式可一次同时传送N位数据,而串行方式一次只能传送一位;但并行传送的线路复杂(需要N根数据线),串行传送的线路简单(只需要12根数据线);并行方式常用于短距离通信,串行方式则多用于长距离通信。串行传送主要用于计算机与远程终端之间的数据传送,也很适合于经由公共电话网连接的计算机之间的通信。另外在某些场合,串行接口也可代替并行接口来控制外设,以节省软硬件资源,简化线路。发送器A站接收器B站单工通信(a)发

2、收A站发收B站发收A站发收B站(b)(c)同步、异步数据通信格式数据数据数据数据数据同 步字符同 步字 符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 异步通信数据帧格式同步通讯异步通信的概念 同步和异步都属于串行数据传送方式,但二者的传送格式有所不同。同步方式的一帧内含有很多数据位,而异步方式一帧内只含有几个数据位。如果要传送一大堆数据,同步方式只给这串数据进行一次外包装(即添加“头帧”、“尾帧”

3、、“校验”帧),而异步方式在传送这串数据时则要对数据的每一个字节分别加以包装(即添加“头”位、“尾”位和校验)。显然在相同的数据传输波特率下,同步方式比异步方式的传送速度快,但同步方式要求收发双方在整个事件传送过程中始终保持严格同步,这将增加硬件上的难度,而异步通信只要求每帧(字节)的传送中短时间保持同步即可,实现起来要容易得多。MCS-51串行接口的结构串行接口的结构SBUFSBUF发送控制接收控制发 送端 口接 收端 口1波特率控制TXDRXDDBDBTIRI串行中断写SBUF读SBUF1.数据缓冲寄存器数据缓冲寄存器SBUF两个两个SBUF,一个用于发送,一个用于发送(只写);一个用于接

4、收(只写);一个用于接收(只读)。映象地址均为只读)。映象地址均为99H。2.数据发送与接收控制数据发送与接收控制发送控制器在波特率作用下发送控制器在波特率作用下,将发送,将发送SBUF中的数据由中的数据由并到串,一位位地传输到发并到串,一位位地传输到发送端口;接收控制器在波特送端口;接收控制器在波特率作用下,将接收接收端口率作用下,将接收接收端口的数据由串到并,存入接收的数据由串到并,存入接收SBUF中。中。MCS-51的串行接口的串行接口 波特率:每秒钟传送二进制数码的位数,也叫比特数,单位为b/s,即位/秒。MCS-51串行接口寄存器控制寄存器控制寄存器SCONSM0SM1SM2RENT

5、B8RB8TIRI工作方式选择多机通信控制位允许串行接收位接收数据的第9位发送数据的第9位接收中断标志发送中断标志9FH9EH9DH9CH9BH9AH99H98HSM0 SM1工作方式工作方式功能功能波特率波特率0 0方式方式08位同步移位寄存器位同步移位寄存器fosc/120 1方式方式110位位UART可变可变1 0方式方式211位位UARTfosc/64或或fosc/321 1方式方式311位位UART可变可变串行方式的定义SMOD GF1 GF0PDIDL87H电源及波特率选择寄存器电源及波特率选择寄存器PCONPCON工作方式功能说明波特率方式08位同步移位寄存器常用于扩展I/O口f

6、osc/12方式110位UART8位数据、起始位、结束位可变(取决于定时器1溢出率)方式211位UART8位数据、起始位0、结束位1和奇偶校验位fosc/64或fosc/32方式311位UART数据、起始、校验、结束位可变(取决于定时器1溢出率)串行口四种工作方式应用比较串行口四种工作方式应用比较方式0用于扩展I/O口输出方式方式0 0方式0用于扩展I/O输出口原理 串行数据从RXD引脚输出,TXD引脚输出移位脉冲。CPU将数据写入发送寄存器SBUF时,立即启动发送,将8位数据以Fosc/12的固定波特率从RXD输出,低位在前,高位在后。发送完一帧数据后,发送标志TI由硬件置位。例:单片机串行

7、口方式设为移位寄存器方式,外接6片74LS164作为6位LED显示器的静态显示接口。串口方式0应用入口:把要显示的数分别放在显示缓冲区60H-65H共6个单元中,并且分别对应各个数码管LED0-LED5。出口:将预置在显示缓冲区中的6个数成相应的显示字形码,然后输出到显示器中显示。DISP:MOV SCON,#00H ;初始化串行口方式初始化串行口方式0MOV R1,#06H;显示显示6位数位数MOV R0,#65H;60H-65H为显示缓冲区为显示缓冲区 MOV DPTR,#SEGTAB;字形表的入口地址字形表的入口地址 LOOP:MOV A,R0 ;取最高位的待显示数据取最高位的待显示数据

8、 MOVC A,A+DPTR;查表获取字形码查表获取字形码 MOVSBUF,A;送串口显示送串口显示DELAY:JNB TI,DELAY;等待发送完毕等待发送完毕 CLR TI;清发送标志清发送标志 DEC R0;指针下移一位,准备取下一个待显示数指针下移一位,准备取下一个待显示数 DJNZ R1,LOOP;直到直到6个数据全显示完。个数据全显示完。RET SETTAB:;字形表,字形表,DB 03H 9FH 27H 0DH 99H 49H 41H 1FH 01H 09H 0FFH方式0用于扩展I/O口输入方式0用于扩展I/O输入口原理方式0用于扩展I/O输入口原理输入:RXD为串行输入端,T

9、XD仍为同步脉冲移位输出端。当(RI)=0且(REN)=1时开始接受。当接受到第8位数据时,将数据亦如接收寄存器,并由硬件置位RI。例:利用串行口扩展了1片74LS165,从而实现了8个按键的输入,在单片机的P1口连接了 8个LED发光二极管,程序中实现了用按键控制发光二极管的亮与灭。流程为8路开关-74165-3PIN数据线-8路指示灯。由此可以看出通过165传输,只用了3条数据线,就实现了8个开关控制8个灯的目的。从而节约了控制的连线。串口方式0扩展输入口应用接线方法:接线方法:1 用一个用一个4PIN数据排线一端插入数据排线一端插入CPU部分部分JP53(P3口)的口)的P3.0,P3.

10、1,P3.2,P3.3。另外一端插入。另外一端插入74LS165部分的输入端部分的输入端JP21。2 用一根用一根8PIN的数据排线,的数据排线,一端插入一端插入74LS165部分的输出端部分的输出端JP28,另一端另一端插入插入8路按键开关的的路按键开关的的JP48。3 用一条用一条8PIN的数据排线把的数据排线把CPU部份的部份的P1口(口(JP44)连接到八路指示灯部)连接到八路指示灯部份的份的JP32。运行后分别按。运行后分别按k00-k07,可以看到可以看到d00-d07八个灯受控制八个灯受控制程序清单org 00h loop:mov scon,#00010000b;设定设定 sm0

11、sm1=00,mode0 clr p3.2 ;P3.2=0 载入数据载入数据 call delay1 ;延时延时 setb p3.2;P3.2=1 ;数据输出数据输出 clr ri ;RI=0 loop1:jbc ri,loop2 ;RI=1?是则到是则到LOOP2 jmp loop1 ;否则继续监测否则继续监测 loop2:mov a,sbuf ;将将SUBF载入载入ACC mov p1,a ;输出到输出到P1 jmp loop ;重新开始重新开始 delay:movr7,#00h;延时子程序延时子程序 tt:movr6,#00h djnzr6,$djnzr7,tt ret delay1:;

12、短延时子程序短延时子程序 mov r7,#02 djnz r7,$ret end 1.方式方式0:移位寄存器方式:移位寄存器方式写SBUF内部移出脉冲RXD(数据输出)TXD(移位时钟)TID0D1D2D3D4D5D6D7方式方式0发送时序发送时序写SCON,清RI,置REN内部移出脉冲RIRXD(数据输入)TXD(移位时钟)D0D1D2D3D4D5D6D7方式方式0接收时序接收时序方式0时序方式1串行口为波特率可调的10位通用异步接口UART。每发送或接收的一帧信息中,包括1位起始位0,8位数据位和1位停止位1。方式1时序 一帧数据为一帧数据为10位:位:1位起始位、位起始位、8位数据位和位

13、数据位和1位停止位。位停止位。写写SBUFTXD起始起始位位停止停止位位TID0D1D2D3D4D5D6D7方式方式1发送时发送时序:序:起始起始位位停止停止位位RXDRI采 样采 样时间时间D0D1D2D3D4D5D6D7方式方式1接收时接收时序:序:方式1时序方式方式2方式方式3MCS-51串行口的波特率串行口的波特率 在方式2中,波特率取决于PCON中的SMOD值:当SMOD=0时,波特率为fosc/64;当SMOD=1时,波特率为fosc/32.即波特率=。oscSMODf642 在方式0中,波特率为时钟频率的1/12,即fosc/12,固定不变波特率/(b/s)fosc/MHzSMO

14、D定时器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波特率=)x256(12f322oscsmod方式方式0 0:波特率是固定的,为:波特率是固定的,为fosc/12fosc/12方式方式2 2:SMOD=1SMOD=1时为时为fosc/32fosc/32,SMOD=0SMOD=0时为时

15、为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=256N=2562121 6 6

16、 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设

17、置通讯波特率串行通信接口标准串行通信接口标准1.RS-232C通信接口通信接口接口信号:接口信号:9针针D型头型头1569载波检测DCD接收数据RXD发送数据TXD数据终端就绪信号地GND数据装置就绪请求发送RTS清除发送CTS振铃指示MCS-51系列单片机串行通信接口系列单片机串行通信接口电气特性:电气特性:逻辑逻辑“1”:3V15V;逻辑;逻辑“0”:3V15V。传输距离传输距离15米。米。最大负载电容最大负载电容2500pF。波特率波特率20kb/s。接受器输入阻抗:接受器输入阻抗:37k。驱动器输出阻抗驱动器输出阻抗300。驱动器转换速率驱动器转换速率30V/s。输出短路电流输出短路电

18、流0.5A。RS232特性电平转换电平转换 单片机电平是单片机电平是TTL电平,它与电平,它与RS-232C电平不兼容,电平不兼容,必须进行电平转换。电平转换的电路很多,必须进行电平转换。电平转换的电路很多,MAX232是是一种新型的专用集成电路,类似的集成电路还很多。一种新型的专用集成电路,类似的集成电路还很多。C1+C1-C2+C2-VCCV+V-电压倍增器+5V+10V电压反向器+10V-10V1111+5VT1OUTT2OUTR1OUTR2OUTT1INT2INR1INR2INC1C2C3C4TTL/CMOS输入TTL/CMOS输出RS-232C输出RS-232C输入MAX232C2-

19、V-C1+V+C1-C2+T2OUTR2INR2OUTT2INT1INR1OUTR1INT1OUTVCCGND12345678910161514131211RS232电平转换芯片PC机COM口接8051机11p(TXD)10p(RXD)PC机和单片机串口通讯的硬件电路 RS-422A通信接口通信接口 接口信号:接口信号:9针针D型头型头 电气特性电气特性电平转换电平转换3.RS-485通信接口:将通信接口:将RS-422A的发送数据信号正端与的发送数据信号正端与接收数据信号正端连起来,发送数据信号负端与接收接收数据信号正端连起来,发送数据信号负端与接收数据信号负端连起来就成为数据信号负端连起来

20、就成为RS-485通信接口通信接口 1569发送数据负发送数据负TX发送数据正发送数据正TX+接收数据正接收数据正RX+接收数据负接收数据负RX信号地信号地GND请求发送负请求发送负RTS清除发送正清除发送正CTS+请求发送负请求发送负RTS+清除发送负清除发送负CTSMCS-51系列单片机串行通信接口系列单片机串行通信接口接接 口口性性 能能RS-232CRS-422ARS-485功能功能双向,全双工双向,全双工双向,全双工双向,全双工双向,半双工双向,半双工传输方式传输方式单端单端差分差分差分差分逻辑逻辑“0”电平电平3V15V2V6V1.5V6V逻辑逻辑“1”电平电平3V15V2V6V1

21、.5V6V最大速率最大速率20kb/s10Mb/s10Mb/s最大距离最大距离30m1200m1200m驱动器加载输出电驱动器加载输出电压压5 5V15V2V2V1.5V1.5V接受器输入敏感度接受器输入敏感度3V3V0.2V0.2V0.2V0.2V接收器输入阻抗接收器输入阻抗3 37K7K4K4K7K7K组态方式组态方式点对点点对点1台驱动器:台驱动器:10台接台接收器收器32台驱动器:台驱动器:32台台接收器接收器抗干扰能力抗干扰能力弱弱强强强强传输介质传输介质扁平或多芯电缆扁平或多芯电缆二对双绞线二对双绞线一对双绞线一对双绞线RS232、RS422、RS485对比6.3 PC机与单片机通

22、信机与单片机通信 PC机是国内目前使用应用最广泛的微机,在与单片机串行接口后,可以方便地构成主从分布式多机系统。从机(单片机)作数据采集或实时控制,主机作数据处理或中央管理等。这种多机系统在过程控制、仪表生产、生产自动化和企业管理等方面都有广泛的应用。此外微机和单片机串行接口后,可以大大方便单片机的开发过程。一、PC机串口资源及编程使用方法 PC机一般有COM1和COM2两个串口。寄存器名称寄存器名称端口地址端口地址复位后初始值复位后初始值COM1COM2发送器保持寄存器(发送器保持寄存器(TBR)3F8H2F8HXXXXXXXXB接收器数据寄存器(接收器数据寄存器(RBR)3F8H2F8HX

23、XXXXXXXB波特绿因子低位寄存器(波特绿因子低位寄存器(DLL)3F8H2F8H00000000B波特绿因子高位寄存器(波特绿因子高位寄存器(DLH)3F9H2F9H00000001B中断允许寄存器(中断允许寄存器(IER)3F9H2F9H00000000B中断标识寄存器(中断标识寄存器(IIR)3FAH2FAH00000000B线路控制寄存器(线路控制寄存器(LCR)3FBH2FBH01100000B调制解调器控制寄存器(调制解调器控制寄存器(MCR)3FCH2FCHXXXX0000B线路状态寄存器(线路状态寄存器(LSR)3FDH2FDHXXXXXXXXB调制解调器状态寄存器(调制解调

24、器状态寄存器(MSR)3FEH2FEHXXXXXXXXB使用串口必须先初始化,有以下使用串口必须先初始化,有以下4个步骤。个步骤。DLHDLL波特率波特率DLHDLL波特率波特率DLHDLL波特率波特率09H00H5000HC0H60000H18H480006H00H7500H60H120000H10H720004H17H11000H40H180000H0CH960003H59H134.500H3AH200000H06H1920003H00H15000H30H240000H03H3840001H80H30000H20H360000H01H115200例:设例:设COM1的波特率为的波特率为96

25、00,则,则outportb(0 x3fb,0 x80););/*写线路控制寄存器,访问波特率因子寄存器写线路控制寄存器,访问波特率因子寄存器*/outportb(0 x3f8,0 x0c););/*写入波特率因子低字节写入波特率因子低字节*/outportb(0 x3f9,0 x00););/*写入波特率因子高字节写入波特率因子高字节*/设置波特率设置波特率PC机串口初始化 设置数据格式设置数据格式 例:设数据为例:设数据为7位,位,1位起始位,位起始位,1位停止位,偶校验,则位停止位,偶校验,则设置如下:设置如下:outportb(0 x3fb,0 x1a);设置操作方式设置操作方式不允许

26、中断:不允许中断:outportb(0 x3fc,0 x03);允许中断:允许中断:outportb(0 x3fc,0 x0b);自测试工作方式,且不允许中断:自测试工作方式,且不允许中断:outportb(0 x3fc,0 x13);设置中断允许寄存器设置中断允许寄存器开放中断语句:开放中断语句:outportb(0 x3f9,0 x0f);PC机串口初始化例例1 将将PC机的机的COM1初始化为初始化为9600波特率、波特率、7位数据、偶位数据、偶校验、校验、1位停止位、不中断,则位停止位、不中断,则初始程序初始程序如下:如下:initcom1()()outportb(0 x3fb,0 x

27、80););/*写线路控制寄存器,访问写线路控制寄存器,访问波特率因子寄存器波特率因子寄存器*/outportb(0 x3f8,0 x0c););/*写入波特率因子低字节写入波特率因子低字节*/outportb(0 x3f9,0 x00););/*写入波特率因子高字节写入波特率因子高字节*/outportb(0 x3fb,0 x1a););/*设数据为设数据为7位,位,1位起始位起始 位,位,1位停止位,偶校验位停止位,偶校验*/outportb(0 x3fc,0 x03););/*不允许中断不允许中断*/PC机的发送、接收程序例例2 PC机从机从COM1发送一个字符,程序如下:发送一个字符,

28、程序如下:send(char sendchar)int coms;do/*查询发送缓冲器是否空查询发送缓冲器是否空*/coms=inportb(0 x3fd)&0 x20;while(coms!=0 x20););outportb(0 x3f8,sendchar););例例3 PC机从机从COM1接收一个字符,程序如下:接收一个字符,程序如下:char receive()()char coms,receivechar;waitok:/*查询接收数据是否有效查询接收数据是否有效*/coms=inportb(0 x3fd););if(coms&0 x01)=0)goto waitok;receiv

29、echar=inportb(0 x3f8););return receivechar;二、二、PC机与单片机双机通信机与单片机双机通信 PC机与单片机构成主从式上下位计算机系统。机与单片机构成主从式上下位计算机系统。例:从例:从PC机键盘上输入一个字符,然后将这个字符发送给单片机,单机键盘上输入一个字符,然后将这个字符发送给单片机,单片机接收到这个字符后,不做任何处理,又将它发回给片机接收到这个字符后,不做任何处理,又将它发回给PC机,机,PC机机将这个字符显示在屏幕上。连接电路如下:将这个字符显示在屏幕上。连接电路如下:PC机RXDTXDMAX232T1OUTR1INT1IN(R1OUTRX

30、DTXDMCS-51约定:约定:u波特率:波特率:2400b/su信息格式:信息格式:8位数据,位数据,1位停止位位停止位u传送方式:传送方式:PC机采用查询式收发数据,单片机采用中断式收机采用查询式收发数据,单片机采用中断式收发数据发数据 由于PC机是RS-232C电平,单片机是TTL电平,用MAX232进行电平转换。PC机与单片机通信设计机与单片机通信设计 PC机的通信软件机的通信软件#include“stdio.h”main()()char c1,c2;int coms;outportb(0 x3fb,0 x80););/*初始化初始化8250*/outportb(0 x3f8,0 x3

31、0););outportb(0 x3f9,0 x00););outportb(0 x3fb,0 x03););/*8位数据,位数据,1位停位停止位止位*/outportb(0 x3fc,0 x03););c1=getchar();();开 始初始化8250有键输入吗?取键盘字符发送寄存器空否?向单片机发送字符接收单片机发回的字符接收的数据有效码?显示发回的字符NNNYYY结 束PC机发送程序do/*查询发送缓冲器是否空查询发送缓冲器是否空*/coms=inportb(0 x3fd)&0 x20;while(coms!=0 x20);outportb(0 x3f8,c1);waitok:/*查询

32、接收数据是否有效查询接收数据是否有效*/coms=inportb(0 x3fd);if(coms&0 x01)=0)goto waitok;c2=inportb(0 x3f8);printf(“The return char is:”);putchar(c2);开 始初始化定时器T1初始化串行口启动定时器T1开放中断主程序踏步中断服务程序关中断清接收中断标志RI保护现场接收PC机发来的字符将字符发送回PC机开中断,恢复现场中断返回MCS-51单片机通信软件主程序中断服务程序主程序:ORG0000HLJMPMAINORG0023HLJMPSERVEMAIN:MOVTMOD,#20H ;初始化T1

33、MOVTH1,#0F3HMOVTL1,#0F3HMOVSCON,#50H;串行口为方式1,REN=1MOVPCON,#80H;SMOD=1SETBTR1SETBEASETBESHERE:SJMPHERE单片机接收程序中断服务程序:中断服务程序:SERVE:CLREA;中断服务程序;中断服务程序CLRRIPUSHPSW;保护现场;保护现场SETBRS0CLRRS1PUSHACCMOVA,SBUF;接收;接收PC机发来的字符机发来的字符MOVSBUF,A;将字符回送给;将字符回送给PC机机WAIT:JNBTI,WAIT;等待发送完毕;等待发送完毕CLRTIPOPACC;恢复现场;恢复现场POPPS

34、WSETBEARETIEND三、三、PC机与单片机通讯多机通信机与单片机通讯多机通信多机通信的关键问题:识别单片机!给单片机编号。多机通信的关键问题:识别单片机!给单片机编号。怎样识别单片机?怎样识别单片机?起始起始位位D0D1D2D3D4D5D6D7奇偶奇偶位位停止停止位位起始起始位位D0D1D2D3D4D5D6D7TB8停止停止位位 从从PC机和单片机帧格式可知:通过软件编程,使得机和单片机帧格式可知:通过软件编程,使得PC机在机在发送地址(单片机编号)时,奇偶位为发送地址(单片机编号)时,奇偶位为1,发送数据时为,发送数据时为0;单片;单片机接收时,机接收时,TB8为为1表示收到的地址,

35、为表示收到的地址,为0表示收到的数据。表示收到的数据。PC机与单片机通讯多机通信例:从例:从PC机的键盘上输入单片机的编号,要求机的键盘上输入单片机的编号,要求PC机与该机与该单片机进行通信测试,从键盘上输入一个字符,发送给单片机进行通信测试,从键盘上输入一个字符,发送给某单片机,单片机受到该字符后,又发回给某单片机,单片机受到该字符后,又发回给PC机,在屏机,在屏幕上显示出来。幕上显示出来。由于由于RS-232C不能实现多机通信,故采用不能实现多机通信,故采用RS-422标准。标准。电路如下:电路如下:PC机机TXDRXD232/422转换器转换器RXDTXDMCS-517517575174

36、1号号RXDTXDMCS-5175175751742号号RXDTXDMCS-517517575174n号号PC机与单片机的多级通信 PC机软件设计机软件设计 开开 始始初始化初始化8250输入单片机输入单片机编号编号发送单片机发送单片机编号编号接收单片机送回接收单片机送回的编号的编号取键盘字取键盘字符符编号一致编号一致吗?吗?向单片机发送向单片机发送字符字符接收单片机发回接收单片机发回的字符的字符显示发回的显示发回的字符字符NY结结 束束多机通讯程序设计程序清单:程序清单:#include“stdio.h”main()()char c1,c2,n1,n2;int coms;outportb(0

37、 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(“Please input the number of MCS:n”););scanf(“%c”,&n1););do/*查询发送

38、移位寄存器是否空查询发送移位寄存器是否空*/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机端的程序goto waitok1;n2=inportb(0 x3f8););/*读入单片机返回的编号读入单片

39、机返回的编号*/if(n1!=n2)printf(“The number of MCS is error!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

40、););/*PC机处于接收状态机处于接收状态*/waitok2:/*查询单片机返回的字符是否有效查询单片机返回的字符是否有效*/coms=inportb(0 x3fd););if(coms&0 x01)=0)goto waitok2;c2=inportb(0 x3f8););/*读入单片机返回的字符读入单片机返回的字符*/printf(“The return char is:”););/*显示返回的字符显示返回的字符*/putchar(c2);单片机程序流程单片机程序流程中断服务程序保护现场接收地址与本机地址相等否?回送本机地址接收PC机发来的字符将收到的字符回送PC机恢复现场中断返回NY单片

41、机软件设计单片机软件设计3、程序清单:ORG0000HLJMPMAINORG0023HLJMPSERVEMAIN:MOVTMOD,#20H;初始化T1MOVTH1,#0F3HMOVTL1,#0F3HMOVSCON,#0F0H;串行口为方式3,REN=1MOVPCON,#80H;SMOD=1SETBTR1SETBEASETBESHERE:SJMPHERESERVE:CLREAPUSHACCPUSHPSWCLRRS1SETBRS0MOVA,SBUF;接收地址;接收地址XRLA,#01H;与本机地址进行比较;与本机地址进行比较JNZRETURN;与本机地址不符,则返回;与本机地址不符,则返回CLRS

42、M2;置单片机为接收数据状态;置单片机为接收数据状态CLRRIMOVA,#01HMOVSBUF,A;发送本机地址给;发送本机地址给PC机机JNBTI,;等待发送完毕;等待发送完毕CLRTIJNBRI,;等待;等待PC机发来的字符接收完毕机发来的字符接收完毕MOVA,SBUF;读入字符;读入字符CLRRIMOVSBUF,AJNBTI,;等待发送完毕;等待发送完毕CLRTIRETURN:POP PSWPOPACCSETBEARETIEND本章要求:本章要求:了解通信、并行通信、串行通信、同步通信、异步通信、了解通信、并行通信、串行通信、同步通信、异步通信、信息帧、波特率等概念;信息帧、波特率等概念;了解了解MCS-51MCS-51单片机串行口的结构;单片机串行口的结构;掌握掌握MCS-51MCS-51单片机的单片机的4 4种工作方式及波特率的设置;种工作方式及波特率的设置;掌握掌握4 4种方式下串行数据的收发过程;种方式下串行数据的收发过程;了解了解RS232CRS232C、RS422A/485RS422A/485通信协议;通信协议;了解了解PCPC机串口资源及其使用方法;机串口资源及其使用方法;掌握单片机与掌握单片机与PCPC机进行双机和多机通信的电路及实现程序。机进行双机和多机通信的电路及实现程序。小结

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(通信接口选型及应用课件.ppt)为本站会员(ziliao2023)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|