单片机串口扩展.ppt

上传人:hyn****60 文档编号:70754580 上传时间:2023-01-27 格式:PPT 页数:26 大小:625KB
返回 下载 相关 举报
单片机串口扩展.ppt_第1页
第1页 / 共26页
单片机串口扩展.ppt_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《单片机串口扩展.ppt》由会员分享,可在线阅读,更多相关《单片机串口扩展.ppt(26页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、电平转换电平转换 单片机电平是单片机电平是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+

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

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

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

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

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

7、2FEHXXXXXXXXB使用串口必须先初始化,有以下使用串口必须先初始化,有以下4个步骤。个步骤。DLHDLL波波特特率率DLHDLL波特波特率率DLHDLL波特波特率率09H00H5000HC0H60000H18H480006H00H7500H60H120000H10H720004H17H11000H40H180000H0CH960003H59H134.500H3AH200000H06H1920003H00H15000H30H240000H03H3840001H80H30000H20H360000H01H115200例:设例:设COM1的波特率为的波特率为9600,则,则outportb(

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

9、tb(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 x80););/*写线路控制寄存

10、器,访问写线路控制寄存器,访问波特率因子寄存器波特率因子寄存器*/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发送一个字符,程序如下:发送一个字符,程序如下:send(char

11、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;receivechar=inportb(0

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

13、: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 x30););outportb(0

14、 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:/*查询接收数据是否有效查询接收数据是

15、否有效*/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 ;初始化T1MOVTH1,#0F3HMOV

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

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

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

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

20、化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/*查询发送移位寄存器是否空查询发送移位寄存器是否空*/

21、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););/*读入单片机返回的编号读入单片机返回的编号*/if(n1!=n2)prin

22、tf(“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););/*PC机处于接收状态机处于接收状态

23、*/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单片机软件设计单片机软件设计3、程序清单:ORG

24、0000HLJMPMAINORG0023HLJMPSERVEMAIN:MOVTMOD,#20H;初始化T1MOVTH1,#0F3HMOVTL1,#0F3HMOVSCON,#0F0H;串行口为方式3,REN=1MOVPCON,#80H;SMOD=1SETBTR1SETBEASETBESHERE:SJMPHERESERVE:CLREAPUSHACCPUSHPSWCLRRS1SETBRS0MOVA,SBUF;接收地址接收地址XRLA,#01H;与本机地址进行比较与本机地址进行比较JNZRETURN;与本机地址不符,则返回与本机地址不符,则返回CLRSM2;置单片机为接收数据状态置单片机为接收数据状态

25、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机进行双机和多机通信的电路及实现程序。机进行双机和多机通信的电路及实现程序。小结

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com