1
接口/总线/驱动
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三条线。
#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口
全部0条评论
快来发表一下你的评论吧 !