串口异步通信

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机原理与接口课程设计报告课程设计题目:DOS功能调用-串口异步通信学号:08113217

学生姓名:苏林坡

班级:081132

专业:信息工程

指导教师:谌洪茂

一软件的功能

随着计算机的不断普及,在我们的周围可能会同时出现多台微型计算机,而且这些计算机的牌号,后型号不同,而且有的格式不兼容。于是利用单片机串行口实现不同计算机之间的相互通信,以达到信息或程序的共享是非常有用的。另一方面,在某计算机的软磁盘驱动器万一出现故障的情况下,也可以通过它将计算机硬盘的数据或程序拷贝出来。

文件传输程序可以用来在两个计算机之间传输任何类型的文件(包括二进制文件),对于那些有不同类型的计算机特别有用。

网络的发展,局域网的建立,使得一个文件服务器以及允许其他计算机从服务器中装入文件或将它们存入文件服务器也可以通过串口来实现。

二软件设计

2.1设计简单介绍

本系统的软件设计流程图参见附录部分(图2)。

系统设计代码分为以下几个部分:初始化8251A、发送数据、接收数据、键盘输入、数值转换、LED显示。

2.2 模块设计详细分析

1. 初始化8251A:

8251A工作在同步方式下,方式选择控制字为00H,工作命令控制字为40H.

代码如下:

KEYLED: MOV AL,00H

OUT DX,AL

OUT DX,AL

OUT DX,AL

MOV AL,40H

OUT DX,AL

MOV AL,4EH

OUT DX,AL

MOV AL,27H

OUT DX,AL

2. 键盘输入

键盘的输入由8279控制,再输入之前要现判断键盘是否允许按键,则只需读取8279的状态即可;通过数据口读取键值。然后对输入的数据进行判断,若为数字键,只需判断其高四位,高四位为零,则为数字键;不为零则不是数字键;再判断是否为EXEC键,此时只需和10H比较,相同则为EXEC键。

KEY0: MOV DX,CONTPORT ;读8279状态

IN AL,DX

TEST AL,07H ;判断是否有键按下

JZ KEY0

MOV CX,0FFFH

DELAY1: LOOP DELAY1

MOV DX,DATAPORT ;读取键值

IN AL,DX

MOV DI,AX

AND AL,0F0H ; 判断是否为数字键

JZ KEY1

MOV AX,DI

CMP AL,10H ; 判断是否为EXEC键

JNZ KEY0

CMP WORD PTR DS:[0601H],0000H ;判断按EXEC键前是否按过数字键

JZ SERERR1

MOV SI,DATA3

CALL LEDDISP

3. 数值转换

数值转换就是将输入的键值转换成发送代码。

转换代码实现部分:

CONVERS:MOV BH,0H

MOV AX,DI

AND AL,0FH

MOV BL,AL

MOV AL,CS:[BX+DATA4]

MOV BYTE PTR DS:[0602H],AL

RET

4. 发送数据

1号机用于键盘的控制以及数据的发送。

首先判断1号机器键盘的状态,由8279控制,则只需读取8279的状态即可;再判断按键值,若为数字键,则计算次数,

再将按键值转换为显示代码;若为EXEC键,再判断按此键之前是否按过数字键,若没按过,则调用显示,显示Errl,若按过再将按键值转换为显示代码。接下来就是判断是否允许发送数据了,发送数据由8251控制,则只需读取8251的状态。允许发送就开始发送数据。

部分代码如下:

WATTXD: MOV DX,SECOPORT

IN AL,DX ;读取8251状态

TEST AL,01H ;判断是否允许发送

JZ WATTXD

MOV AL,BYTE PTR DS:[0602H] ;显示代码送给AL

MOV DX,SEDAPORT ;发送显示代码

OUT DX,AL

MOV CX,0FFFFH

DELAY2: LOOP DELAY2

JMP KEY0

SEREND: JMP SEREND

5. 接收数据并显示

2号机用于接受1号机发送的数据并将其显示出来。数据接收由8251控制,则先判断其状态,允许接收则转入接收程序,从数据口读取数据,然后将接收到的数据存入到RAM区暂存。再将数据发送到控制口进行显示。

接收数据部分代码如下:

WATRXD:MOV DX,SECOPORT ;读取8251状态

IN AL,DX

TEST AL,02H ;判断是否允许接受

JZ WATRXD

MOV DX,SEDAPORT ;接受数据

IN AL,DX

MOV BYTE PTR DS:[0600H],AL ;将接受的数据存入RAM区 MOV AL,90H

MOV DX,CONTPORT

OUT DX,AL

MOV AL,BYTE PTR DS:[0600H] ;从RAM区取出数据?

MOV DX,DATAPORT

OUT DX,AL ;显示接受的数据

MOV AL,00H

OUT DX,AL

JMP WATRXD

详见源程序清单及注释附录部分。

三操作说明

1、准备2台本系统,确定1号为发送,2号为接收。

相关文档
最新文档