rs232介绍_rs232串口通信程序

来源:电子发烧友整理 作者:2018年01月14日 11:38

rs232是个人计算机上的通讯接口之一,由电子工业协会(ElectronicIndustriesAssociaTIon,EIA)所制定的异步传输标准接口。通常RS-232接口以9个引脚(DB-9)或是25个引脚(DB-25)的型态出现,一般个人计算机上会有两组RS-232接口,分别称为COM1和COM2。

在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。RS-232-C接口(又称EIARS-232-C)是目前最常用的一种串行通讯接口。(“RS-232-C”中的“-C”只不过表示RS-232的版本,所以与“RS-232”简称是一样的)

它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”该标准规定采用一个25个脚的DB-25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。后来IBM的PC机将RS232简化成了DB-9连接器,从而成为事实标准。而工业控制的RS-232口一般只使用RXD、TXD、GND三条线。

rs232介绍_rs232串口通信程序

rs232串口通信程序

#include《conio.h》

#include《stdio.h》

#include《bios.h》

main()

{

charch;

/************************串口初始化*************************/

outportb(0x3fb,0x80);//设置LCR,访问DLL、DLM,禁止串口中断,无校验,1位停止位;

outportb(0x3f8,0x0C);//设置串口的波特率低八位(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;//若有键盘输入,获取ASCII码

if(ch==27)//若输入字符为“ESC”,退出程序

exit(0);

outportb(0x3f8,ch);//否则将字符送入发送端口

}

/*************************接收数据*************************/

ch=inportb(0x3fd);//读取接收端口的线路状态寄存器LSR的状态

if(ch&0x01)//若线路状态寄存器LSR的末尾为1,表示接收就绪

{

ch=inportb(0x3f8);//读取数据putch(ch);//显示数据

}

}

}

注:com1口的基地址为:03F8;com2口的基地址为:02F8。根据串口线的连接,选择通信的是com1口还是com2口

关注电子发烧友微信

有趣有料的资讯及技术干货

下载发烧友APP

打造属于您的人脉电子圈

关注发烧友课堂

锁定最新课程活动及技术直播
声明:电子发烧友网转载作品均尽可能注明出处,该作品所有人的一切权利均不因本站而转移。
作者如不同意转载,既请通知本站予以删除或改正。转载的作品可能在标题或内容上或许有所改动。
收藏 人收藏
分享:

相关阅读

发表评论

elecfans网友

分享到:

用户评论(0