首页 RS-232串口通信程序设计

RS-232串口通信程序设计

举报
开通vip

RS-232串口通信程序设计RS-232串口通信程序设计丄实验要求:用TC对计算机的串口进行编程,并作一个简单的串口查询通讯程序。丄实验方案:用RS-232串口通讯线将两台计算机A、B的串口相连。丄实验步骤:1、首先对计算机串口通讯控制芯片8250的控制寄存器进行初始化和设置;2、对计算机B的串口发送一个数据前,查询计算机A的串口的发送移位寄存器是否为空,如果是则发送数据,如果为否则继续查询,直到条件成立;执行完发送指令后,再次查询计算机A的口的发送移位寄存器是否为空,如果是则结束发送;如果为否,则继续查询,直到条件成立。3、从计算机A的串口...

RS-232串口通信程序设计
RS-232串口通信程序 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 丄实验要求:用TC对计算机的串口进行编程,并作一个简单的串口查询通讯程序。丄实验方案:用RS-232串口通讯线将两台计算机A、B的串口相连。丄实验步骤:1、首先对计算机串口通讯控制芯片8250的控制寄存器进行初始化和设置;2、对计算机B的串口发送一个数据前,查询计算机A的串口的发送移位寄存器是否为空,如果是则发送数据,如果为否则继续查询,直到条件成立;执行完发送指令后,再次查询计算机A的口的发送移位寄存器是否为空,如果是则结束发送;如果为否,则继续查询,直到条件成立。3、从计算机A的串口接受刚才从计算机B的串口发送的数据前,先查询计算机A的口的接收数据标志位是否为1,如果是则表示计算机A的口接收数据准备就绪,执行接收指令,即从计算机A的口读入数据,若否则表示没有准备好接收,继续查询计算机A的口的接收数据标志位,直到为1;接收完数据后,再次查询计算机A的串口的接受寄存器是否为空的标志位的状态,如果为1则程序转入计算机B的串口的数据发送程序;如果否,则继续查询等待,直到接收。实验内容:1・在COMDEBUG中针对串口通信各寄存器进行设置,掌握各寄存器在串口通信中的作用及各参数的含义。Com1口中的10各可编程寄存器地址寄存器名称备注3F8H发送保持寄存器(THR)DLAB=03F8H接收缓冲寄存器(RBR)DLAB=03F8H波特率因子寄存器[低](DLL)DLAB=13F9H波特率因子寄存器[高](DLM)DLAB=13F9H中断允许寄存器(IER)DLAB=03FAH中断识别寄存器(IIR)3FBH线路控制寄存器(LCR)3FCHModem控制寄存器(MCR)3FDH线路状态寄存器(LSR)3FEHModem状态寄存器(MSR)注:coml口的基地址为:3F8;com2口的基地址为:2F8。在上表中,10个可编程寄存器,使用了7个地址,其中部分寄存器共用一个地址,由DLAB=0/1来区分,在DLAB=1,用于设定通讯所需的波特率;8250的控制寄存器控制/状态字:1)接收缓冲寄存器(RBR)和发送保持寄存器(THR)RBR暂存从线路上接收到的有效字符,等待本地读取。THR暂存等待发向线路的数据。它们共用同意I/O地址,在半双工工作环境下,互不干扰。2)中断识别寄存器(IIR)和中断允许寄存器(IER)IIR状态中断类型中断原因复位动作IER状态b1b2b3中断允许中断静止XX1无110线路状态中断线路状态变化读LSRb2=1b2=0100接收中断RBR输入有效读RBRb0=1b0=0010发送中断THR空闲,可发送下一字符读IIR或写THRb1=1b1=0000Modem状态中断Modem状态变化读MSRb3=1b3=03)线路状态寄存器(LSR)b7b6b5b4b3b2b1b00不用发送移位寄存器(TSRE)空,可发送发送保持寄存器(THRE)空,可接收数据断点中断(BI),收到停顿信号帧格式错(FE),即没有收到正确的停止位奇校验错(PE)超载错(OE),即数据缓冲出错数据准备就绪,即数据缓冲区中尚有数据未取走4)线路控制寄存器(LCR)b7b6b5b4b3b2b1b0访问分频器开关(DLAB位)中断控制位奇偶校验停止位宽字符位数0:常态1:访问DLL,DLM0:禁止1:允许xx0:不校验001:奇校验011:偶校验0xx:1位停止位100:5位字符,1.5位停止位101:6位字符,2位停止位110:7位字符,2位停止位111:8位字符,2位停止位5)波特率因子寄存器(DLL,DLM)DLL与DLM组成一个16位寄存器,存放一个波特率因子(分频值),对振荡时钟进行分频以得到用户需要的波特率。计算 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 :波特率因子=振荡时钟/(波特率*16)一些标准波特率对应的波特率因子寄存器的设置波特率(b/s)DLM设置DLL设置960000H0CH1920000H06H3840000H03H11520000H01H6)modem控制寄存器(MCR)MCR的b7~b5位恒为0,b4~b0中的各位产生对modem的控制信号。b4=1设置loopback模式-内部输入输出短接,构成反馈测试模式b3=1辅助输出2b2=1辅助输出1b1=1请求发送(RTS)b0=1数据终端准备好(DTR)7)modem状态寄存器(MSR)丄参考源代码:#includevconio.h>#includevstdio.h>#includevbios.h>main(){charch;/************************串口初始化*************************/outportb(0x3fb,0x80);〃设置LCR,访问DLL、DLM,禁止串口中断,无校验,1位停止位;outportb(Ox3f8,OxOC);〃设置串口的波特率低八位(DLL);outportb(0x3f9,0x00);〃设置串口的波特率高八位(DLM);outportb(0x3fb,0x03);〃设置LCR,禁止访问DLL、DLM,禁止串口中断,无校验,1位停止位;〃保持监听状态outportb(0x3fc,0x03);〃初始化MCR,数据终端准备好,请求发送;while(1){/*************************发送数据*************************/if(bioskey(1)){ch=bioskey(0)&0x0ff;if(ch==27)〃若有键盘输入,获取ASCII码〃若输入字符为“ESC”,退出程序exit(0);outportb(0x3f8,ch);〃否则将字符送入发送端口}/*************************接收数据*************************/ch=inportb(0x3fd);〃读取接收端口的线路状态寄存器LSR的状态if(ch&0x01){ch=inportb(0x3f8);putch(ch);〃若线路状态寄存器LSR的末尾为1,表示接收就绪〃读取数据〃显示数据}}}注:com1口的基地址为:03F8;com2口的基地址为:02F8。根据串口线的连接,选择通信的是com1口还是com2口
本文档为【RS-232串口通信程序设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥15.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
lizheng
暂无简介~
格式:doc
大小:18KB
软件:Word
页数:3
分类:建筑/施工
上传时间:2022-11-16
浏览量:6