单片机串口扩展.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《单片机串口扩展.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约定:约定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 串口 扩展
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内