数学与信息技术学院《计算机应用课程设计》设计报告摘要微机与外部的信息交换称为通信,基本方式有并行与串行两种。
本文主要说明串行方式,主要掌握微机串行通信的连接方法,熟悉其工作方式及其功能,运用程序流程图说明了其工作过程详细介绍了使用串行接口芯片8251A实现双CPU系统数据传输的设计和方法,接着从8251A的基本原理、工作方式,以及硬件和软件设计方面进行了详细的说明。
并在两台微处理器的目标机上,用串口通信模式实现了两机之间的高效通信。
关键词: 8251A;串口通信;数据传送AbstractExchange of information between computer and external as communications.Basic methods are both parallel and serial.This paper shows the serial mode, the main control computer serial communication connection method, familiar with their work and their functions, the use of process flow chart illustrates the process of their work.Described in detail using the serial interface chip 8251A dual CPU system design and method of data transmission, then the basic principle from 8251A, work, and hardware and software design aspects in detail. Two microprocessors in the target machine, achieved with a serial communication mode efficient communication between the two machines.Keywords: 8251A; serial communication; data transfer目录摘要 (2)Abstract (3)第一章系统的功能 (5)第二章系统的设计方案 (6)2.1硬件设计 (6)2.1.1涉及的芯片 (6)2.1.2 8251A芯片 (6)2.1.3 8279芯片 (8)2.2软件设计 (9)2.2.1设计简单介绍 (9)2.2.2 模块设计详细分析 (9)第三章操作说明 (11)第四章总结 (12)参考文献 (13)附: (14)1、硬件原理图 (14)2、程序流程图 (15)3、源程序清单及注释 (17)第一章系统的功能随着计算机的不断普及,在我们的周围可能会同时出现多台微型计算机,而且这些计算机的牌号,后型号不同,而且有的格式不兼容。
于是利用单片机串行口实现不同计算机之间的相互通信,以达到信息或程序的共享是非常有用的。
另一方面,在某计算机的软磁盘驱动器万一出现故障的情况下,也可以通过它将计算机硬盘的数据或程序拷贝出来。
文件传输程序可以用来在两个计算机之间传输任何类型的文件(包括二进制文件),对于那些有不同类型的计算机特别有用。
网络的发展,局域网的建立,使得一个文件服务器以及允许其他计算机从服务器中装入文件或将它们存入文件服务器也可以通过串口来实现。
第二章系统的设计方案2.1硬件设计2.1.1涉及的芯片1. 8251A接口芯片用于实现微机间的通信,发送数据;2. 8279芯片用于微机间接受数据和显示数据;2.1.2 8251A芯片8251A是一种可编程的同步/异步串行通信接口芯片,具有独立的接收器和发送器,能实现单工、半双工、双工通信。
由于近距离传输,所以可以不用MODEM,而直接互连。
同时采用查询方式,故接收/发送程序中只需检查发送/接收的准备好状态是否置位,在准备好时就发送或接收一个字节。
(1)在实验过程中,数据通信的基本方式可分为并行通信与串行通行,而我们的实验正是采用了串行通行方式,这种方式通信线路简单,利用线路就可实现通信,这样实验易于实现并且降低了成本,而且适合远距离通信。
(2)实验中用到的8251A就是一个可编程的通用串行通信接口芯片,在使用时必须对它进行初始化编程。
编程的内容包括两大方面:一是由CPU发出的控制字,即方式选择控制字和操作命令控制字;另一方面是由8251A向CPU送出的状态字。
①8251A的方式控制字和命令控制字方式控制字确定8251A的通信方式(同步/异步)、校验方式(奇校/偶校/不校)、字符长度及波特率等,格式如下图5-16所示。
命令控制字使8251A处于规定的状态以准备收发数据,格式如下图。
方式控制字和命令控制字无独立的端口地址,8251A 根据写入的次序来区分。
CPU对8251A初始化时先写方式控制字,后写命令控制字。
方式选择控制字的格式如图所示。
操作命令控制字的格式如下:②状态寄存器状态寄存器用于寄存8251A的状态信息,供CPU查询。
各位定义如下:TXRDY位:当数据缓冲器空时置位,而TXRDY引脚只有当条件( 数据缓冲器空·/CTS·TXE)成立时才置位。
溢出错误:CPU没读走前一个字符,下一个字符又接收到,称为溢出错误。
帧错误:在字符结尾没检测到停止位,称为帧错误。
状态字的格式如下:2.1.3 8279芯片8279芯片介绍:8279是一种可编程键盘/显示接口芯片,它共有3种工作方式:编码扫描方式、传感器扫描方式、时钟脉冲选通方式。
固只需通过编程就可用8279来实现各种键盘/显示器的接口,几乎不需附加任何电路。
本系统8279接口规定的小键盘的键名和键值对照表及数码管组显示代码表如下。
键名键值对照表:键名 0 1 2 3 4 5 6 7 8 9 A键值 00 01 02 03 04 05 06 07 08 09 0A键名 B C D E F EXEC NEXT MOV MON LAST STEP键值 0B 0C 0D 0E 0F 10 11 12 13 14 15显示代码表:显示值 0 1 2 3 4 5 6 7显示代码 3FH 06H 5BH 4FH 66H 6DH 7DH 07H显示值 8 9 A B C D E F显示代码 7FH 6FH 77H 7CH 39H 5EH 79H 71H2.2软件设计2.2.1设计简单介绍本系统的软件设计流程图参见附录部分(图2)。
系统设计代码分为以下几个部分:初始化8251A、发送数据、接收数据、键盘输入、数值转换、LED显示。
2.2.2 模块设计详细分析1. 初始化8251A:8251A工作在同步方式下,方式选择控制字为00H,工作命令控制字为40H.代码如下:KEYLED: MOV AL,00HOUT DX,ALOUT DX,ALOUT DX,ALMOV AL,40HOUT DX,ALMOV AL,4EHOUT DX,ALMOV AL,27HOUT DX,AL2. 键盘输入键盘的输入由8279控制,再输入之前要现判断键盘是否允许按键,则只需读取8279的状态即可;通过数据口读取键值。
然后对输入的数据进行判断,若为数字键,只需判断其高四位,高四位为零,则为数字键;不为零则不是数字键;再判断是否为EXEC键,此时只需和10H比较,相同则为EXEC键。
KEY0: MOV DX,CONTPORT ;读8279状态IN AL,DXTEST AL,07H ;判断是否有键按下JZ KEY0MOV CX,0FFFHDELAY1: LOOP DELAY1MOV DX,DATAPORT ;读取键值IN AL,DXMOV DI,AXAND AL,0F0H ; 判断是否为数字键JZ KEY1MOV AX,DICMP AL,10H ; 判断是否为EXEC键JNZ KEY0CMP WORD PTR DS:[0601H],0000H ;判断按EXEC键前是否按过数字键JZ SERERR1MOV SI,DATA3CALL LEDDISP3. 数值转换数值转换就是将输入的键值转换成发送代码。
转换代码实现部分:CONVERS:MOV BH,0HMOV AX,DIAND AL,0FHMOV BL,ALMOV AL,CS:[BX+DATA4]MOV BYTE PTR DS:[0602H],ALRET4. 发送数据1号机用于键盘的控制以及数据的发送。
首先判断1号机器键盘的状态,由8279控制,则只需读取8279的状态即可;再判断按键值,若为数字键,则计算次数,再将按键值转换为显示代码;若为EXEC键,再判断按此键之前是否按过数字键,若没按过,则调用显示,显示Errl,若按过再将按键值转换为显示代码。
接下来就是判断是否允许发送数据了,发送数据由8251控制,则只需读取8251的状态。
允许发送就开始发送数据。
部分代码如下:WATTXD: MOV DX,SECOPORTIN AL,DX ;读取8251状态TEST AL,01H ;判断是否允许发送JZ WATTXDMOV AL,BYTE PTR DS:[0602H] ;显示代码送给ALMOV DX,SEDAPORT ;发送显示代码OUT DX,ALMOV CX,0FFFFHDELAY2: LOOP DELAY2JMP KEY0SEREND: JMP SEREND5. 接收数据并显示2号机用于接受1号机发送的数据并将其显示出来。
数据接收由8251控制,则先判断其状态,允许接收则转入接收程序,从数据口读取数据,然后将接收到的数据存入到RAM区暂存。
再将数据发送到控制口进行显示。
接收数据部分代码如下:WATRXD:MOV DX,SECOPORT ;读取8251状态IN AL,DXTEST AL,02H ;判断是否允许接受JZ WATRXDMOV DX,SEDAPORT ;接受数据IN AL,DXMOV BYTE PTR DS:[0600H],AL ;将接受的数据存入RAM区MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV AL,BYTE PTR DS:[0600H] ;从RAM区取出数据?MOV DX,DATAPORTOUT DX,AL ;显示接受的数据MOV AL,00HOUT DX,ALJMP WATRXD详见源程序清单及注释附录部分。
第三章操作说明1、准备2台本系统,确定1号为发送,2号为接收。
2、将1号RXD插孔和2号的TXD插孔相连。
3、将1号TXD插孔和2号的RXD插孔相连。