微机原理与接口技术课程设计
- 格式:doc
- 大小:153.50 KB
- 文档页数:10
目录1.需求分析2.设计内容…………………………………….3.设备与器材4.设计要求5.硬件连接方案6.系统设计6.1系统硬件设计6.2系统软件设计7.调试与测试8.结束语9.参考文献1.需求分析:当今社会,随着越来越多的家庭拥有第二台电脑,如何能够实现两PC机之间的通信成为更多家庭和用户所关注的问题。
实现双机互联的方法有很多,根据个人和环境的情况不同,采用的方法也有所不同。
然而,对于仅仅是两台PC机之间实现的互联来说,建立串口间的连接以实现通信是不错的选择。
这种方案最大的特点是简单易行、成本低廉,相对于其他的选择而言,更加适合于两PC机之间的通信连接。
本设计通过对PC机串口通信端口定义、参数和双机互联等技术方面的了解和分析,对通信距离较近时的双PC机之间的通信,采用最简单的三线接法,对少数几根信号线实现全双工异步串行通信,并且通过编写程序,以查询方式来实现两机之间的发送和接收功能。
2.设计内容:两台微机采用RS—232串口接口(COM1/COM2)实现双机串行通信;其中一台为发送机,另一台为接收机,负责接收发送机送来的字符。
3.设备与器材:PC机两台,RS—232串行线2条。
4.设计要求:1、采用查询方式或中断方式下的PC机间相互通信;2、在A机(发送机)上敲键盘字符,并且在A机的屏幕上显示该字符,然后通过串行口将该字符发送给(接收机),并且也在B机上显示,即实现A、B机间通信,以敲击字符”P”作为结束。
3、格式:设置通信波特率1200BPS;数据位7位、停止位1位、奇校验。
5.硬件连接方案:两机通过RS—232C的三根信号线(TXD、RXD、GND)进行连接(发送机TXD←→接收机RXD、发送机RXD←→接收机TXD,GND←→GND)6.系统设计6.1系统硬件设计:(1). 异步通信适配器的组成:1.电平转换INS 8250芯片处理电平为TTL电平,要与25芯连接器相连接,必须经过电平转换。
从下图中可以看出,INS 8250和连接器的信号线是分别通过了电平转换器SN75150和SN75154才送到对方的。
2.地址译码电路系统地址总线低10位(A 0~A 9)用于端口地址译码,其中高位地址(A 3~A 9)经译码器U 2产生选片信号,送到8250的___CS 2端;低位地址(A 0~A 2)直接送到8250的(A 0~A 2)端,作为芯片内部寄存器的选择线。
从图8-18中可以看出,I/O 地址译码部分是由8输入端与非门U 2及反相器U 3组成的。
由于系统中可使用两块适配器板,故异步适配器的口地址有两个,由跳接开关U 15的J 10和J 12端子进行切换,切换实际上是对地址位A 8进行改变,也就是通过U 15的J 10和J 12使A 8反相(A 8=0)还是不反相(A 8=1)就可进行切换端口地址。
如下表所示。
34关U 15控制。
当U 15的J 9接通时,适配器产生的中断请求信号为IRQ 3;而当U 15的J 11接通时,其中断请求信号为IRQ 4。
从译码器U 2的输入端可以看出,只有当AEN 信号为低电平时,即非DMA 方式时,U 2才能输出低电平,去选中INS 8250芯片,这说明异步通信适配器不能以DMA 方式传送数据。
3. INS 8250的结构INS 8250是通用异步收发器UART,适合用作异步通信接口电路。
INS 8250的外部引脚及内部结构如图8-19所示。
INS 8250的引脚信号线基本上可分为两大类:与CPU系统总线相连的信号和与通信设备MODEM连接的信号。
6.2系统软件设计1.初始化串行通信口入口参数:AL=初始化参数,其格式如下:其中,D4~D0各位的定义与线路控制寄存器相对应的位定义相同,而D7~D5的各位则为波特率选择。
串行口初始化的子程序如下:BAUD-TABLE DW 1047 ;0 0 0 110DW 768 ;0 0 1 150DW 384 ;0 1 0 300DW 192 ;0 1 1 600DW 96 ;1 0 0 1200DW 48 ;1 0 1 2400DW 24 ;1 1 0 4800DW 12 ;1 1 1 9600 为D7D6D5 波特率SERIAL—INIT PROC NEARMOV AH,AL ;入口参数保存到AHMOV DX,3FBH ;线路控制寄存器端口MOV AL,80H ;置DLAB=1OUT DX,ALMOV DL,AH ;获取波特率因子MOV CL,4 ;ROL DL,CL ;循环左移4次,波特率因子移低4位 AND DX,0EH ;因子值乘2,存放在DX中MOV DI,OFFSET BAUD-TABLE ;ADD DI,DX ;DI为波特率因子表索引MOV DX,3F9H ;波特率因子高字节端口MOV AL,CS:[DI]+1 ;OUT DX,AL ;写入因子高字节MOV DX,3F8H ;波特率因子低字节端口MOV AL,CS:[DI] ;OUT DX,AL ;写入低字节MOV DX,3FBH ;线路控制寄存器端口MOV AL,AHAND AL,1FH ;保留数据格式参数OUT DX,AL ;写入数据格式MOV AL,0 ;屏蔽4种中断源类型MOV DX,3F9H ;中断允许寄存器端口OUT DX,AL ;采用查询I/ORET ;正常通信,返回SERIAL—INIT ENDP2. 查询方式下的PC机间相互通信:1.发送程序(查询方式):DATA SEGMENTDISP DB 'transmission start:',0ah,0dh,'$' DATA ENDSSTACK SEGMENT PARA STACK 'STACK'DB 200 DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: M OV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV DX,2FBH ;置DLAB=1MOV AL,80HOUT DX,ALMOV DX,2F8H ;置波特率因子寄存器MOV AL,60H ;波特率因子低字节OUT DX,ALMOV DX,2F9HMOV AL,0 ;波特率因子高字节OUT DX,ALMOV DX,2FBH ;置线路控制寄存器MOV AL,0AH ;数据位7位、停止位1位、奇校验OUT DX,ALMOV DX,2FCH ;置MODEM控制寄存器MOV AL,02H ;禁止中断OUT DX,ALMOV DX,2F9H ;置中断允许寄存器MOV AL,0 ;屏蔽所有中断OUT DX,ALMOV DX,OFFSET DISP ;显示发送提示信息MOV AH,9INT 21HLOP: MOV DX,2FDH ;读线路状态寄存器IN AL,DXTEST AL,20H ;测试发送保持寄存器空?JZ LOP ;不空,则循环测试MOV AH,1 ;读取按键字符,并显示INT 21HMOV DX,2F8H ;发送该字符OUT DX,ALCMP AL,'P' ;判断按下字符“P”吗?JZ OVER ;是,则结束JMP LOP ;不是,继续循环OVER: MOV AH,4CH ;返回DOSINT 21HCODE ENDSEND START2.接收程序(查询方式):DATA SEGMENTRBUF DB 30 DUP(0)DISP DB 'RECEIVE START:',0AH,0DH,'$'ERROR DB 'RECEIVE ERROR!',0AH,0DH,'$'DATA ENDSSTACK SEGMENT PARA STACK 'STACK'DB 200 DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXLEA SI,RBUF ;置接收缓冲区地址指针MOV DX,2FBH ;置DLAB=1MOV AL,80HOUT DX,ALMOV DX,2F8H ;置波特率因子寄存器MOV AL,60H ;波特率因子低字节OUT DX,ALMOV DX,2F9HMOV AL,0 ;波特率因子高字节OUT DX,ALMOV DX,2FBH ;置通信线路控制寄存器MOV AL,0AH ;数据位7位、停止位1 位、奇校验OUT DX,ALMOV DX,2FCH ;置MODEM控制寄存器MOV AL,02 ;禁止中断OUT DX,ALMOV DX,2F9H ;置中断允许寄存器MOV AL,0 ;屏蔽所有中断OUT DX,ALMOV DX,OFFSET DISP ;显示接收提示信息MOV AH,9INT 21HMOV DX,2F8H ;读接收缓冲器内容,不处理IN AL,DXLOP: MOV DX,2 FDH ;读线路状态寄存器IN AL,DXTEST AL,1EH ;测试接收错误?JNZ ER ;有错误,转错误显示TEST AL,01H ;无错误,则测试接收数据准备好?JZ LOP ;未准备好则循环测试MOV DX,2F8H ;准备好则接收字符IN AL,DXAND AL,7FHCMP AL,'P' ;判断接收结束吗?JZ OVER ;结束转OVERMOV [SI],AL ;未结束则存入缓冲区INC SIMOV DL,AL ;显示该字符MOV AH,02INT 21HJMP LOPER: MOV DX,2F8H ;清标志位IN AL,DXMOV DX,OFFSET ERROR ;显示错误信息MOV AH,9INT 21HJMP LOPOVER: MOV DL,ALMOV AH,2INT 21HMOV AH,4CH ;返回DOSINT 21HCODE ENDSEND START7.调试与测试1、调试记录:a.将两个机器连接起来。
b.输入程序,程序编译、连接无误,在A机输入任意一个或几个字符,以”P”结束。
c.运行B机程序,等待接收数据。
d.然后运行A机程序,当数据传送完毕时。
e.观察第B机显示内容,用CTRL+C返回监控。
f.检查B机显示字符是否与A机一致。
2、结果分析:如B机与A机显示字符一样,说明达到预期的实验目的符合实验要求,则实验成功8.结束语课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.回顾起课程设计,至今我仍感慨颇多。