串口异步通信Word格式.docx

上传人:b****4 文档编号:7776362 上传时间:2023-05-09 格式:DOCX 页数:18 大小:100.42KB
下载 相关 举报
串口异步通信Word格式.docx_第1页
第1页 / 共18页
串口异步通信Word格式.docx_第2页
第2页 / 共18页
串口异步通信Word格式.docx_第3页
第3页 / 共18页
串口异步通信Word格式.docx_第4页
第4页 / 共18页
串口异步通信Word格式.docx_第5页
第5页 / 共18页
串口异步通信Word格式.docx_第6页
第6页 / 共18页
串口异步通信Word格式.docx_第7页
第7页 / 共18页
串口异步通信Word格式.docx_第8页
第8页 / 共18页
串口异步通信Word格式.docx_第9页
第9页 / 共18页
串口异步通信Word格式.docx_第10页
第10页 / 共18页
串口异步通信Word格式.docx_第11页
第11页 / 共18页
串口异步通信Word格式.docx_第12页
第12页 / 共18页
串口异步通信Word格式.docx_第13页
第13页 / 共18页
串口异步通信Word格式.docx_第14页
第14页 / 共18页
串口异步通信Word格式.docx_第15页
第15页 / 共18页
串口异步通信Word格式.docx_第16页
第16页 / 共18页
串口异步通信Word格式.docx_第17页
第17页 / 共18页
串口异步通信Word格式.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

串口异步通信Word格式.docx

《串口异步通信Word格式.docx》由会员分享,可在线阅读,更多相关《串口异步通信Word格式.docx(18页珍藏版)》请在冰点文库上搜索。

串口异步通信Word格式.docx

OUTDX,AL

OUTDX,AL

MOVAL,40H

MOVAL,4EH

MOVAL,27H

2.键盘输入

键盘的输入由8279控制,再输入之前要现判断键盘是否允许按键,则只需读取8279的状态即可;

通过数据口读取键值。

然后对输入的数据进行判断,若为数字键,只需判断其高四位,高四位为零,则为数字键;

不为零则不是数字键;

再判断是否为EXEC键,此时只需和10H比较,相同则为EXEC键。

KEY0:

MOVDX,CONTPORT;

读8279状态

INAL,DX

TESTAL,07H;

判断是否有键按下

JZKEY0

MOVCX,0FFFH

DELAY1:

LOOPDELAY1

MOVDX,DATAPORT;

读取键值

MOVDI,AX

ANDAL,0F0H;

判断是否为数字键

JZKEY1

MOVAX,DI

CMPAL,10H;

判断是否为EXEC键

JNZKEY0

CMPWORDPTRDS:

[0601H],0000H;

判断按EXEC键前是否按过数字键

JZSERERR1

MOVSI,DATA3

CALLLEDDISP

3.数值转换

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

转换代码实现部分:

CONVERS:

MOVBH,0H

ANDAL,0FH

MOVBL,AL

MOVAL,CS:

[BX+DATA4]

MOVBYTEPTRDS:

[0602H],AL

RET

4.发送数据

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

首先判断1号机器键盘的状态,由8279控制,则只需读取8279的状态即可;

再判断按键值,若为数字键,则计算次数,再将按键值转换为显示代码;

若为EXEC键,再判断按此键之前是否按过数字键,若没按过,则调用显示,显示Errl,若按过再将按键值转换为显示代码。

接下来就是判断是否允许发送数据了,发送数据由8251控制,则只需读取8251的状态。

允许发送就开始发送数据。

部分代码如下:

WATTXD:

MOVDX,SECOPORT

INAL,DX;

读取8251状态

TESTAL,01H;

判断是否允许发送

JZWATTXD

MOVAL,BYTEPTRDS:

[0602H];

显示代码送给AL

MOVDX,SEDAPORT;

发送显示代码

OUTDX,AL

MOVCX,0FFFFH

DELAY2:

LOOPDELAY2

JMPKEY0

SEREND:

JMPSEREND

5.接收数据并显示

2号机用于接受1号机发送的数据并将其显示出来。

数据接收由8251控制,则先判断其状态,允许接收则转入接收程序,从数据口读取数据,然后将接收到的数据存入到RAM区暂存。

再将数据发送到控制口进行显示。

接收数据部分代码如下:

WATRXD:

MOVDX,SECOPORT;

INAL,DX

TESTAL,02H;

判断是否允许接受

JZWATRXD

MOVDX,SEDAPORT;

接受数据

MOVBYTEPTRDS:

[0600H],AL;

将接受的数据存入RAM区

MOVAL,90H

MOVDX,CONTPORT

MOVAL,BYTEPTRDS:

[0600H];

从RAM区取出数据?

MOVDX,DATAPORT

OUTDX,AL;

显示接受的数据

MOVAL,00H

JMPWATRXD

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

三操作说明

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

2、将1号RXD插孔和2号的TXD插孔相连。

3、将1号TXD插孔和2号的RXD插孔相连。

4、将1号GND插孔和2号的GND插孔相连(共地)。

5、先运行2号机,显示器显示“8251-2”,进入等待接收状态。

6、再运行1号机,显示器显示“8251-1”,进入串行发送状态。

7、在1号机的键盘上输入数字键,在2号机显示器上显示对应数字值。

8、输入数字键后再按EXEC键,1号机显示“8251good”。

如果不输入数字键直接按EXEC键,则显示“Err”,如果双机通信不能正常进行,也显示“Err1”。

四总结

设计体会和收获:

最初选择串行通信这个实验时,由于从未接触过这类设计,感到新鲜的同时不乏焦虑。

现在终于将它完成了,感到受益颇多。

第一,这是一份考验我们自觉性、动手能力与协作意识的任务。

在长达一个月的时间里,我们不断发现自身不足也不断自我完善。

第二,未知并不可怕,可怕的是因未知而止步。

我们在课堂上所学的知识是非常有限的,这次的课程设计就是个很好的体现。

很多函数的运用我们还没掌握,一些简单的循环语句都可能出错。

实践后才能真的知道我们真正掌握了多少。

第三,团结就是力量一点都不假,三个臭皮匠顶一个诸葛亮。

在团组合作时我们更便于互相取长补短,相互讨论,效果很好。

附:

1、程序流程图

接收数据:

2、源程序清单及注释

Send程序段代码

CODESEGMENT

ASSUMECS:

CODE

START:

JMPSERIAL

CONTPORTEQU00DFH;

8279端口地址

DATAPORTEQU00DEH;

SECOPORTEQU0051H;

8251端口地址

SEDAPORTEQU0050H;

DATA0EQU0500H

DATA1EQU0508H

DATA2EQU0510H

DATA3EQU0518H

DATA4EQU0520H

SERIAL:

CALLFORMAT

MOVSI,DATA2

CALLLEDDISP;

显示8251-2

[0601H],0H

MOVWORDPTRDS:

[0602H],0H

CLD

MOVDI,0602H;

MOVCX,08H

XORAX,AX

REPSTOSW

MOVAL,00H;

初始化8251

MOVAL,40H

TESTAL,07H;

JZKEY0

MOVCX,0FFFH

MOVDX,DATAPORT;

MOVDI,AX

ANDAL,0F0H;

JZKEY1

MOVAX,DI

CMPAL,10H;

JNZKEY0

CMPWORDPTRDS:

JZSERERR1

MOVSI,DATA3

CALLLEDDISP

SERERR1:

MOVSI,DATA1

CALLLEDDISP;

显示Err1

JMPSEREND

KEY1:

CALLCONVERS;

键值转换成显示代码

INAL,DX;

TESTAL,01H;

JZWATTXD

MOVCX,0FFFFH

KEY2:

ADDBYTEPTRDS:

[0601H],01H

JMPKEY0

ANDAL,0FH

MOVBL,AL

MOVAL,CS:

RET

LEDDISP:

MOVAL,90H

[0600H],00

LED1:

CMPBYTEPTRDS:

[0600H],07H

JALED2

MOVBL,DS:

[0600H]

MOVBH,0H

[BX+SI]

[0600H],01H

JNZLED1

LED2:

LEDDISPD:

LEDD1:

JALEDD2

MOVAL,DS:

[BX+0602H]

JNZLEDD1

LEDD2:

FORMAT:

MOVBX,0

[BX+0500H],5050H;

ERR2显示代码

ADDBX,2

[BX+0500H],0079H

[BX+0500H],0000H

[BX+0500H],503FH;

ERR1显示代码

[BX+0500H],7950H

[BX+0500H],405BH;

8251---1显示代码

[BX+0500H],4040H

[BX+0500H],6D06H

[BX+0500H],7F5BH

[BX+0500H],5C5EH;

8251good显示代码

[BX+0500H],6F5CH

[BX+0500H],063FH;

0-F显示代码

[BX+0500H],4F5BH

[BX+0500H],6D66H

[BX+0500H],077DH

[BX+0500H],6F7FH

[BX+0500H],7C77H

[BX+0500H],5E39H

[BX+0500H],7179H

CODEENDS

ENDSTART

Recive程序段代码

8279控制口

8279数据口

ORG1800H

JMPKEYLED

参考文献

1《C语言程序设计》清华大学出版社;

谭浩强主编 

1999.12

2《C语言程序设计技巧及应用》 

上海科学普及出版社;

陈进编著 

1992.6

3《微型计算机原理与应用》(第二版)西安电子科技大学出版社;

王永山,杨宏五,杨婵娟编著 

4《单片机原理及应用教程》北京大学出版社;

范立南,谢子殿编著 

2007.8

东华理工大学软件学院

课程设计评分表

苏林坡班级:

081132学号:

项目内容

满分

实评

能结合所学课程知识、有一定的能力训练。

符合选题要求

(5人一题)

10

工作量适中,难易度合理

能熟练应用所学知识,有一定查阅文献及运用文献资料能力

理论依据充分,数据准确,公式推导正确

能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等

能体现创造性思维,或有独特见解

总体设计正确、合理,各项技术指标符合要求。

说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;

分析处理科学、条理分明、语言流畅、结构严谨、版面清晰

设计说明书栏目齐全、合理,符号统一、编号齐全。

 格式、绘图、表格、插图等规范准确,符合国家标准

有一定篇幅,字符数不少于5000

总分

100

指导教师评语:

指导教师签名:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2