两机通信接口课程设计 .doc
《两机通信接口课程设计 .doc》由会员分享,可在线阅读,更多相关《两机通信接口课程设计 .doc(15页珍藏版)》请在沃文网上搜索。
1、两机串口通讯课程设计报告以及代码。代码在下面 课程设计 一、设计目的:了解机串行口的使用。二、设计所需设备:机,插座及连线。三、设计任务:用的零的连线法连好两机的连线;用的命令将一数发送到串行口(),然后在另一台机上用命令读入串行口的内容。如果发送的内容与接收的内容一致,说明两机已经连好线,否则必须检查连线,直到两机可通讯为止;编一程序,将一台机的键值通过口送到另一台机,并在上显示键值;编一程序,通过口进行一台机到另一台机的文件复制。四、串行口的有关硬件资料:RS-232-C 详解串行通信接口标准经过使用和发展,目前已经有几种。但都是在RS-232标准的基础上经过改进而形成的。所以,以RS-2
2、32C为主来讨论。RS-323C 标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969 年公布的通信协议。它适合于数据传输速率在020000b/s 范围内的通信。这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。由于通行设备厂商都生产与RS-232C制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用。RS-232C 标准(协议)的全称是EIA-RS-232C 标准,其中EIA(Electronic IndustryAssociation)代表美国电子工业协会,RS(ecommeded standard)代表推荐标准,232是标识号,C
3、代表RS232 的最新一次修改(1969),在这之前,有RS232B、RS232A。它规定连接电缆和机械、电气特性、信号功能及传送过程。常用物理标准还有有EIARS-232-C、EIARS-422-A、EIARS-423A、EIARS-485。这里只介绍EIARS-232-C(简称232,RS232)。例如,目前在IBM PC 机上的COM1、COM2 接口,就是RS-232C接口。9芯接口标准()引脚:,载体检测;()引脚:,接收数据;()引脚:,发送数据;()引脚:,终端准备好;()引脚:信号地;()引脚:,准备好;()引脚:,请求发送;()引脚:,
4、清除发送;()引脚:,响铃指示。29芯的零的连接方法3线路控制寄存器(端口地址3FBH/2FBH) 其中:奇偶校验停止位 字长无效验 奇效验.5(字长为位时) 6 1 1 偶效验(字长为6,7,8位时) 1 0 71 1 8 4.可编程波特率发生器(3F9H,3F8H,或2F9,2F8H)时,向(高八位),(低八位)写入位数,即可对1.8432hz的时钟分频,得到串行口的波特率。公式为:波特率=1846200/(分频值)输入频率1.8432hz波特率分频器分频器60000HC0H120000H60H180000H40H200000H3AH240000H30H360000H20H480000H1
5、8H720000H10H960000H0CH1920000H03H5.线路状态寄存器(3FDH/2FDH)6.中断识别寄存器(3FAH/2FAH)其中:D2 D1 D0 中断来源 NONE1 1 0 线路故障1 0 接收数据准保好发送保持寄存器ODEM中断7.中断允许寄存器(3F9H/2F9H,且DLAB=0)8.MODEM控制寄存器(3FEH/2FEH)9.MODEM控制寄存器 (3FEH/2FEH )8250内部寄存器端口地址及读写情况端口地址寄存器名称读写3F8H发送保持寄存器3F8H接收数据寄存器3F8H波特率分频器3F9H波特率分频器3F9H中断允许寄存器3FAH中断标识寄存器3FB
6、H线路控制寄存器3FHMODEM控制寄存器3FDH线路状态控制器3FEHMODEM状态寄存器10.以上四.3四.4介绍的寄存器中7的各位均为有效,无效。五、程序流程图如下:六、 代码与分析#include#include#include#define SIZE 1024*8 /*定义发送级冲区大小*/int flag=1;unsigned char state;/*状态字*/union char csizeof(long); long length;len; /*用联合体表示文件的长度*/void initInquire();/*初始化COM1端口,查询方式初始化*/void initInte
7、rrupt();/*初始化COM1端口,中断方式初始化*/void sendwait();/*发送等待*/void receivewait(); /*接收等待*/void interrupt(* asyncvect)(void); void interrupt far asyncint(void); /*接收中断服务程序中断服务程序*/void closeInterrupt(void); /*关中断*/long getsize(FILE *fp);/*计算文件大小*/void sendstring();/*发送字符,字符串*/void sendfile(); /*发送文件*/void gets
8、tring();/*中断接收字符串*/void getfile();/*查询接收文件*/void initInquire() /*初始化COM2端口,查询方式初始化*/ outportb(0x3fb,0x80); /*线路控制寄存器最高位为1*/ outportb(0x3f8,0x0c); outportb(0x3f9,0x00); /*除数寄存器,波特率为9600b/s*/ outportb(0x3fb,0x0b); /*8数据位,一个停止位*/ outportb(0x3fc,0x03); /*设置3FC端口MODEM控制寄存器,使8250输出DTR(数据终端准备好)和RTS(请求发送)送*
9、/ outportb(0x3f9,0x00); /*关闭所有中断*/void initInterrupt() /*初始化COM2端口,中断方式初始化*/ outportb(0x3fb,0x80); /*线路控制寄存器最高位为1*/ outportb(0x3f8,0x0c); outportb(0x3f9,0x00); /*除数寄存器,波特率为9600b/s*/ outportb(0x3fb,0x0b); /*8数据位,一个停止位*/ outportb(0x3fc,0x0b); /*打开中断开关out2,这样8250产生的中断信号可以通过系统总线送给8259中断控制器*/ outportb(0x
10、3f9,0x01); /*允许接收中断*/void sendwait()/*发送等待*/ do state=inportb(0x3fd);/*线路状态寄存器*/ state=state&0x20; /*00100000发送保持寄存器为空*/ while(!state);void receivewait() /*接收等待*/ do state=inportb(0x3fd);/*线路状态寄存器*/ state=state&0x01;/*00000001数据准备好*/ while(!state);void closeInterrupt(void) /*关中断*/ unsigned char i; d
11、isable(); outportb(0x3f9,0x00);/*关中断*/ outportb(0x3fc,0x03);/*请求发送,打开OUT1*/ i=inportb(0x21); i=i|0x10; /*8259复位*/ outportb(0x21,i); enable();/*开中断*/ setvect(0x0c,asyncvect);/*恢复原来中断向量*/void interrupt far asyncint(void) /*接收中断服务程序中断服务程序*/ state=inportb(0x3f8); if(state=) getfile(); flag=0; closeInter
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 两机通信接口课程设计 通信 接口 课程设计