计算机控制技术课程设计.docx

上传人:b****5 文档编号:4047201 上传时间:2022-11-27 格式:DOCX 页数:32 大小:113.57KB
下载 相关 举报
计算机控制技术课程设计.docx_第1页
第1页 / 共32页
计算机控制技术课程设计.docx_第2页
第2页 / 共32页
计算机控制技术课程设计.docx_第3页
第3页 / 共32页
计算机控制技术课程设计.docx_第4页
第4页 / 共32页
计算机控制技术课程设计.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

计算机控制技术课程设计.docx

《计算机控制技术课程设计.docx》由会员分享,可在线阅读,更多相关《计算机控制技术课程设计.docx(32页珍藏版)》请在冰豆网上搜索。

计算机控制技术课程设计.docx

计算机控制技术课程设计

课程设计任务书

学生姓名:

某人专业班级:

指导教师:

工作单位:

题目:

串行通信程序设计

初始条件:

用汇编语言编写程序,实现两台计算机之间的通信。

要求完成的主要任务:

①制作RS-232C通信线,并用它连接两台计算机,每一台的用户均可在自己的屏幕上不同区域看到自己和对方由键盘输入的字符(并由不同的颜色加以区分);

②若一方敲入数字(1,2,3......8,9),另一方的机器将其理解为相应的音符发出声音;

③能设置发送、接收的数据长度,并能显示接收的数据;

④能选择通信校验方式(奇校验、偶校验或无校验);

⑤可以将接收的数据作为文件保存起来;

撰写设计说明书及调试心得。

时间安排:

2011年6月20日~2011年6月29日下午17:

30

指导教师签名:

年月日

系主任(或责任教师)签名:

年月日

摘要

汇编语言是面向计算机的程序设计语言。

在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。

这样用符号代替及其语言的二进制代码,就把机器语言变成了汇编语言。

作为最基本的编程语言之一,汇编语言的重要性毋庸置疑,因为它能够完成许多其它语言所无法完成的功能。

尤其在硬件关系非常密切的程序或要提高运算速度的程序,即使是C语言也会有些力不从心,而汇编语言能够很好的扬长避短,最大限度地发挥硬件的性能。

最重要的是计算机控制技术是一门实践性强的学科,不但要求有较高的理论水平,而且还要求有实际的动手能力,其中很多的规则,现象等仅仅靠学习教科书是无法完成掌握的,必须通过时间才能比较直观和深刻的理解。

本次课程设计的题目是用汇编语言编写程序,实现两台计算机之间的通信,要实现许多的功能,通过RS-232C通信线实现两台计算机之间的数据传输。

同时,可以传输数字,在传输数字的时候能够发声,对于接收到的东西,可以保存在指定的文件中。

程序还能够选择通信校验方式。

 

关键字:

汇编语言计算机通信计算机控制

 

目录

1设计任务和要求1

2设计思路1

2.1设计思路1

2.2程序流程图2

3软件设计3

3.1RS-232C介绍3

3.2初始化及奇偶校验3

3.3界面设计4

3.4数据传输设计6

3.4.1数据传输流程图6

3.4.2数据传输程序7

3.4.3数据接受程序7

3.5数字发声设计8

4调试过程和运行结果分析9

5心得体会12

参考文献13

附页14

串行通信程序设计

1设计任务和要求

①制作RS-232C通信线,并用它连接两台计算机,每一台的用户均可在自己的屏幕上不同区域看到自己和对方由键盘输入的字符(并由不同的颜色加以区分);

②若一方敲入数字(1,2,3......8,9),另一方的机器将其理解为相应的音符发出声音;

③能设置发送、接收的数据长度,并能显示接收的数据;

④能选择通信校验方式(奇校验、偶校验或无校验);

⑤可以将接收的数据作为文件保存起来;

撰写设计说明书及调试心得。

2设计思路

2.1设计思路

编写程序,运行程序之后,进入界面之后,显示选择奇偶校验方式,选择之后,界面跳转到下一个界面,选择校验方式的不同,会导致传输过程数据的稳定性。

在选择奇偶校验进入下一个界面之后,界面分为两个部分,左边为接受对方机子传输过来的文件和其他的信息,右边部分显示本台机子传输的文件及数字等信息,界面顶部有提示信息,可以根据提示信息操作。

在此期间,任何时候按ESC键,系统都退出运行。

输入数据,在两台机子的不同部分显示相同的信息,输入完整之后,按“[”键保存文件,在按enter显示保存的文件。

在输入数字时,数字传输到对方的电脑上,同时两台机子会同时发出声音,不同的数字发出的声音不相同。

2.2程序流程图

图2-1程序流程图

3软件设计

3.1RS-232C介绍

RS-232C是一个已制定很久的标准,它描述了计算机及相关设备间较低速率的串行数据通信的物理接口及协议。

它是由一个工业贸易组电子工业联合会定义的,最初是为电传打印机设备而制定。

RS-232C是你的计算机用来与你的modem及其它串行设备交谈或交换数据的接口。

在你PC的某处,一般是主板上的通用异步收发器芯片,你计算机上的数据正从它的数据终端设备接口传送到一个内置或外置的modem上。

因为你计算机中的数据是沿并行电路传输,而串行设备一次只能处理一个比特,因此UART芯片将把并行数据转换成连续的比特流。

你PC上的DTE代理也会和modem或其他串行设备通信,而modem与这些串行设备为了遵守RS-232C标准都有一个补充的接口数据通信设备接口。

  

RS-232C的通讯距离和速度,RS-232C规定最大的负载电容为2500pF,这个电容限制了传输距离和传输速率,RS-232C能够可靠进行数据传输的最大通讯距离为15米。

现在个人计算机提供的串行端口终端的传输速度一般都可以达到115200bps甚至更高,9600bps是最常见的传输速度,在传输距离较近时,使用最高传输速度也是可以的。

传输距距离和传输速度的关系成反比,适当地降低传输速度,可以延长RS-232的传输距离,提高通讯的稳定性。

表3-1串行端口通常使用下列基本I/O地址和IRQ值:

Port

Address

IRQ

COM1

03FB

4

COM2

02FB

3

COM3

03EB

4

COM4

02EB

3

3.2初始化及奇偶校验

初始化程序:

COMRDMACRO

MOVDX,3

INT14H

MOVDX,2EBH

MOVAL,80H

OUTDX,AL

MOVAL,0

MOVDX,2E9H

OUTDX,AL

MOVAL,0CH

MOVDX,2E8H

OUTDX,AL

MOVDX,2EBH

MOVAL,AH

OUTDX,AL

MOVDX,2ECH

MOVAL,08H

OUTDX,AL

ENDM

奇偶校验程序

JY:

LCRCX

set_p0300H

PUTSTISHI

MOVAH,1

INT21H

CMPAL,'o'

JZODD

CMPAL,'e'

JZEVE

CMPAL,'n'

JZNONE

JMPJY

ODD:

MOVAX,0EAH

MOVAH,AL

JMPDONE

EVE:

MOVAX,0FAH

MOVAH,AL

JMPDONE

NONE:

MOV[BX],0E3H

MOVAH,AL

3.3界面设计

设计要求在不同的区域用不同的颜色显示接收和发送的数据信息,通过BIOS、DOS系统功能调用,实现以上的要求。

调用“INT10H”和“INT21H”实现颜色和区域的选择显示。

使用宏定义、宏调用的方式来实现程序的调用。

表3-2INT21H的功能调用表

AH

功能

调用参数

返回参数

01H

带回显的键盘输入

AL=输入字符

09H

显示字符串

DS:

DX=串地址'$'结束字符串

02H

显示输出

DL=输出字符

表3-3INT10H的功能表

功能号

功能

入口参数

显示模式属性

00H

设置显示模式

AH=00H,AL=02H

80×25的16色文本

01H

设置光标形状

AH=01H

CH低四位=光标的起始行

CL低四位=光标的终止行

02H

用文本坐标下

设置光标位置

AH=02

BH=显示页码

DH=行(Y坐标)

DL=列(X坐标)

本次课程设计的题目是用汇编语言编写程序,实现两台计算机之间的通信,所以在实现传输的过程中,两台机子都有一个传输的界面,将一整块界面分为两个部分,一个部分显示传输的内容,另一个部分显示的是接受的内容。

界面程序:

SET_C0aH,80

SET_P0000H

PUTSINFORMATION1

SET_C0aH,80

SET_P0100H

PUTSINFORMATION2

SET_C0aH,80

PUTSINFORMATION4

INFORMATION1DB'OurTransmissiontest!

','$'

INFORMATION2DB'PRESS[ESC]TOEXIT','$'

INFORMATION3DB'-------------------------------------------------------------','$'

INFORMATION4DB'"["TOSAVETHEMESSAGE"]"TOSEEWHATYOUSAVED','$'

M11DB'WHATYOUWANTTOSEND:

','$'

M22DB'WHATYOUHAVERECEIVED:

3.4数据传输设计

3.4.1数据传输流程图

 

图3-2数据传输流程图

 

3.4.2数据传输程序

在字符发送的阶段,键盘输入字符后,程序对字符进行判别是否为特殊的字符,特殊的字符包括“ESC”、“[”和回车键,如果是特殊的字符,则进行相应的功能操作。

如果不是特殊字符,则将字符显示在发送的界面SET_P指定的光标的位置,和显示SET_C指定的字体颜色。

然后读取端口状态,将字符发送到另一台电脑上。

SENDSMACRO

LOCALSEND

PUSHAX

CMPAL,1BH

JZSEND1

CMPAL,'['

JZSEND1

CMPAL,0DH

JZSEND1

SET_PP1

SET_C0EH,1

MOVDL,[SI]

MOVAH,2

INT21H

LOCATION_sent

SET_P[BX]

SEND1:

LCRCX

PUSHAX

MOVDX,02EDH

SEND2:

INAL,DX

TESTAL,20H

JZSEND2

POPAX

MOVDX,02E8H

OUTDX,AL

POPAX

ENDM

3.4.3数据接受程序

在另一台电脑字符接收时,流程和发送基本相反,先读取端口状态,如果收到数据,则将字符显示在发送的界面SET_P指定的光标的位置,和显示SET_C指定的字体颜色。

同样,如果是特殊字符“ESC”、“[”和回车键,则按照特殊字符的功能做相应的处理。

数据接受程序:

RECVSMACRO

LOCALNEXT_R,AGAIN_R

LCRCX

MOVDX,02EDH

INAL,DX

TESTAL,01H

JZAGAIN_R

MOVDX,02E8H

INAL,DX

CMPAL,1BH

JZAGAIN_R

CMPAL,'['

JZAGAIN_R

CMPAL,0DH

JZAGAIN_R

MOV[DI],AL

CMPAL,30H

JLNEXT_R

CMPAL,39H

JGNEXT_R

SOUNDAL

NEXT_R:

SET_PP2

SET_C0AH,1

MOVDL,[DI]

MOVAH,2

INT21H

SAVE_PP2

LOCATION_recv

INCDI

AGAIN_R:

ENDM

3.5数字发声设计

设计任务中,要求在输入了一个数字之后,发出声音,每个数字对应不同的声音。

设计中,在键盘输入一个字符后,判断其是否为0-9的数字,如果是0-9的数字,就将其转换为相应的发声频率。

表3-4数字与发声频率的对应表

数字

0

1

2

3

4

5

6

7

8

9

频率

40

80

120

140

160

180

200

220

240

255

发声程序:

SOUNDMACROMM

LOCALLENG,DELAY

PUSHAX

MOVAL,MM

ANDAL,0FH

LEABX,FREG

XLAT

MOVCL,AL

MOVCH,0

MOVAL,0B6H

OUT43H,AL

MOVDX,08H

MOVAX,3208H

DIVCX

OUT42H,AL

MOVAL,AH

OUT42H,AL

INAL,61H

MOVAH,AL

ORAL,3

OUT61H,AL

MOVBX,0FFFFH

LENG:

MOVCX,663

DELAY:

LOOPDELAY

DECBX

JNZLENG

MOVAL,AH

OUT61H,AL

POPAX

ENDM

4调试过程和运行结果分析

程序的调试是一个非常重要的过程,可以测试出程序有哪些地方不对,哪些地方有欠缺,还需要修改,从而对程序进行改进,使程序更加的完美,实现的功能稳定,实现程序的良好运行

在最初运行程序的时候,存在着很多的问题,首先就是界面的问题,这个比较容易解决,主要是确定光标的位置,然后在位置上面显示字符。

经过微调,是界面开始去比较的整齐。

在后面输入字符后,由于传输和接收是不同的两个部分,但是在换行的时候,接收的部分不会在中界处跳转到下一行,对程序检查之后,发现少了一段换行的程序。

在程序调试之后,大部分的问题已经解决,但是有些功能还是没有实现,也就放弃了。

以下是程序调试之后,显示出来的结果。

进入界面之后两台电脑同时输入数据,两台电脑在不同的区域显示接受和传输的数据,在此期间,如果按下“ESC”键,程序将退出。

在输入数字之后,数字显示在界面上,同时,两台电脑发出声音。

图4-1,图4-2分别展示了两台电脑同时传输字符的过程,传输的字符和接受的字符分别显示在不同的地方:

图4-1字符传输/接收显示

图4-2字符传输/接收显示

按下“[”键之后,屏幕下方显示“SAVESUCCEED”,表示本台机子接受到的字符得到保存,显示结果如图4-3所示。

图4-3保存字符显示

在保存完数据之后,如果没有按下“ENTER”键,则可以继续传输字符,如果按下了“ENTER”键,界面跳转,显示保存的数据。

此期间,可以按“ESC”退出。

图4-4文件保存显示

 

5心得体会

《计算机控制原理》是自动化专业一门很重要的课程,在课程设计的这段时间里,我学习到了很多知识,也有许多的体会。

对于汇编语言,从不太熟悉到后面的熟悉,可以说,要掌握一门语言,并不是太难,主要是在遇到问题的时候要多查寻资料,这样就可以了解到更多,熟悉更多,然后这门语言也会被快速掌握,我们可以熟悉的运用语言。

对于程序的编写,对于我们来说仍然是一个很大的问题,在这方面,我们还需继续加强,所谓真正的好程序,是要有很多条件的,程序有逻辑性,可读性,高效性,可维护性,我们现在的编写能力还不能达到好程序的标准,在编写程序的时候,我们总是把一段程序想得比较简单,然后编写出来的程序也就是缺少一些功能,总是不能编写得很完美,在这个方面还需要加强。

学习编写程序的缜密性,逻辑性。

在整个课程设计的过程中,最复杂的一段就是程序的调试,每次调试都会花很多的时间。

每段程序都会遇到这样那样的问题,然后要逐条程序的检查,费时费力。

但是这个过程是收获很多的,从中可以查漏补缺,学到很多的东西。

同时,在程序的调试过程中我们也认识到,编程是需要细心和耐心的,如果在编程的时候做到了这些,那么在调试程序的时候我们就可以省去很多的麻烦,养成一个良好的编程习惯是很重要的!

这段时间里,通过这次课程设计,使我认识到了理论与实际相结合的重要性,对课本上的知识在实际生活中的运用也有了进一步的了解,进一步的掌握了书本上的知识,在解决困难的过程中,获得了许多专业方面的知识,拓展了视野。

提高了理论水平和实际动手能力,学会了解决问题的方法,激发了我们的探索精神。

这样的课程设计是很好的锻炼机会,增强了我们的实践动手能力。

对于汇编语言,也更加的熟悉,从中受益匪浅。

 

参考文献

[1]周佩玲.微机原理与接口技术(基于16位机).北京:

电子工业出版社,2005

[2]沈美明.IBM-PC汇编程序语言设计.北京:

清华大学出版社,1991

[3]袁新燕.计算机外设与接口简明教程.北京:

北京航空航天大学出版社,2005

[4]王力虎.PC控制及接口程序设计实例.北京:

科学出版社,2004

[5]毛明.宏汇编语言程序设计编程知道.北京:

机械工业出版社,1993

 

附页

;数据段

DATASSEGMENT

aa1db'*','$'

INFORMATION1DB'OurTransmissiontest!

','$'

INFORMATION2DB'PRESS[ESC]TOEXIT','$'

INFORMATION3DB'--------------------------------------------------------------','$'

INFORMATION4DB'"["TOSAVETHEMESSAGE"ENTER"TOSEEWHATYOUSAVED','$'

M11DB'WHATYOUWANTTOSEND:

','$'

M22DB'WHATYOUHAVERECEIVED:

','$'

FREGDB40,80,120,140,160,180,200,220,240,255

BUFDB255DUP(0)

BUF1DB255DUP(0)

BUF2DB255DUP(0)

P1DW0429H

P2DW0400H

FILE_SAVEDB'c:

\WENJIAN.txt',0

HANDLEDW?

SUCCEED_MESSAGEDB'SAVESUCCEED','$'

ERRORDB'SAVEERROR','$'

OPEN_INFO1DB'[ESC]toquit!

','$'

OPEN_INFO2DB'press[anykeyexceptESC]Returntotheserialtransmission','$'

OPEN_INFO3DB'Savedmessageis:

','$'

TISHIDB'pleasechoosetheway(o:

ODD,e:

EVEN,n:

NONE):

','$'

DATASENDS

;堆栈段

STACKSGSEGMENTSTACK'S'

DW64DUP(?

STACKSGENDS

;代码段

CODESSEGMENT

;初始化8250

COMRDMACRO;INITTIALINGCOM4

MOVDX,3

INT14H

MOVDX,2EBH

MOVAL,80H

OUTDX,AL;使通信线路寄存器最高位置1

MOVAL,0

MOVDX,2E9H

OUTDX,AL;设置波特率高位

MOVAL,0CH

MOVDX,2E8H

OUTDX,AL;设置波特率低位

MOVDX,2EBH

MOVAL,AH

OUTDX,AL;设置数据格式为8位/字符,1个停止位,无奇偶效验

MOVDX,2ECH

MOVAL,08H

OUTDX,AL;设置调制解调器控制寄存器,RTS,DTR无效

;CHOSETHEWAY

ENDM

;将LCR最高位清零

LCRCXMACRO

PUSHAX

MOVAL,1FH

MOVDX,02EBH

OUTDX,AL

POPAX

ENDM

;换行1,右边

LOCATION_sentMACRO

MOVAH,03H;读光标位置;02h,置光标位置,DH行,DL列。

MOVBH,0

INT10H

LEABX,P1

CMPDL,79

JZH1

CMPAL,0DH

JZH1

IH1:

MOV[BX],DX

jmpSH1

H1:

INCDH

MOVDL,29h

jmpIH1

SH1:

ENDM

;换行2

LOCATION_recvMACRO

MOVAH,03H

MOVBH,0

INT10H

LEABX,P2

CMPDL,28h

JZH2

CMPAL,0DH

JZH2

IH2:

MOV[BX],DX

jmpSH2

H2:

INCDH

MOVDL,00

jmpIH2

SH2:

ENDM

;显示

PUTSMACROSTRING

PUSHAX

MOVAH,9

LEADX,STRING

INT21H

POPAX

ENDM

;定光标位置

SET_PMACROP_XY

PUSHAX

MOVDX,P_XY

MOVBH,0

MOVAH,02H

INT10H

POPAX

ENDM

;保存光标位置

SAVE_PMACROPL

MOVAH,03H;读光标位置

MOVBH,0

INT10H

LEABX,PL

MOV[BX],DX

ENDM

;设置显示颜色

SET_CMACROCOLOR,LENGTH

MOVAH,9

MOVAL,1

MOVBH,0

MOVBL,COLOR;字体颜色

MOVCX,LENGTH;显示的长度

INT10H

ENDM

;从串口发送一个字符

SENDSMACRO

LOCALSEND

PUSHAX

CMPAL,1BH;ESC

JZSEND1

CMPAL,'['

JZSEND1

CMPAL,0DH

JZSEND1

SET_PP1;设置发送显示位置

SET_C0EH,1;设置字体颜色

MOVDL,[SI];显示[字符]

MOVAH,2

INT21H

LOCATION_sent

SET_P[BX]

SEND1:

LCRCX

PUSHAX

MOVDX,02EDH;状态口

SEND2:

INAL,DX;读状态

TESTAL,20H;发送就绪?

JZSEND2

POPAX

MOVDX,02E8H;数据口

OUTDX,AL

POPAX

ENDM

;从串口接收一个字符

RECVSMACRO

LOCALNEXT_R,AGAIN_R

LCRCX

MOVDX,

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

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1