自动化通讯设备人机接口设计.docx

上传人:b****8 文档编号:28166575 上传时间:2023-07-08 格式:DOCX 页数:34 大小:203.33KB
下载 相关 举报
自动化通讯设备人机接口设计.docx_第1页
第1页 / 共34页
自动化通讯设备人机接口设计.docx_第2页
第2页 / 共34页
自动化通讯设备人机接口设计.docx_第3页
第3页 / 共34页
自动化通讯设备人机接口设计.docx_第4页
第4页 / 共34页
自动化通讯设备人机接口设计.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

自动化通讯设备人机接口设计.docx

《自动化通讯设备人机接口设计.docx》由会员分享,可在线阅读,更多相关《自动化通讯设备人机接口设计.docx(34页珍藏版)》请在冰豆网上搜索。

自动化通讯设备人机接口设计.docx

自动化通讯设备人机接口设计

通讯设备人机接口设计

(计算机硬件技术基础课程设计)

 

 

专业:

自动化

组员:

黄超郝鸿凯赖升勇陈开宇杜征宇

重庆大学自动化学院

2013年9月

人员及任务分配

专业班级

学号

姓名

任务分配

自动化1班

20104951

黄超

定时中断,时钟显示

自动化1班

20105049

赖升勇

总体设计,程序连接

自动化1班

20105071

郝鸿凯

键盘扫描,显示

自动化1班

20105098

陈开宇

来电闪烁,撰写实验报告

自动化1班

20104893

杜征宇

占线程序段的编写

目录

一、系统功能和设计方案3

1.1基本设计目标实现3

1.1.1基本设计目标3

1.1.2按键说明4

1.2硬件连接5

1.2.1键盘扫描连接图:

5

1.2.2显示连接图:

6

1.3系统设计思路6

二、程序流程图7

三、编程与调试8

四、心得体会8

五、程序清单11

一、系统功能和设计方案

1.1基本设计目标实现

根据课程设计任务书所提出的要求,我们小组将利用计算机硬件实验系统的输入输出设备模拟通讯设备的来电、接听、挂断和拨号功能。

1.1.1基本设计目标

你可以选择0-9的号码,每当输入一个数字,就会在LED的最高位显示出当前按下的数字,当再次按下数字时,LED上的数字将会显示在后面,这样就始终保持当前输入号码为LED的最低位。

然后按下A键进行拨号,此时系统先判断是否处于占线状态,若处于占线状态,则LED上则会显示BUSY;若不处于占线状态,则拨通了电话。

拨通电话后,若一段时间无人接听,LED上会显示55555555,当然也可以拨动K3直接挂断,若拨动K2则进入通话阶段,LED开始计时。

通话阶段可以通过K3自己挂断,也能通过K5对方挂断。

我们的拓展功能则是:

1、拨号可以拨1到15位任何号码。

2、若按错了号码,则可以通过键盘上的B键回删。

 

1.1.2按键说明

  

(1)实验箱面板上4*4小键盘:

表1.14*4键盘功能对照表

按键

功能

按键

功能

按键1

数字键

按键8

数字键

按键2

数字键

按键9

数字键

按键3

数字键

按键0

数字键

按键4

数字键

按键A

拨号

按键5

数字键

按键B

回删

按键6

数字键

——

——

按键7

数字键

——

——

 

(2)实验箱面板上开关功能说明:

表1.2开关功能对照表

开关

功能

开关

功能

开关1

开关2

接听

开关3

己方挂断

开关4

占线

开关5

对方挂断

开关6

 

1.2硬件连接

确定了基本功能软件设计方案,我们通过查阅相关资料,综合讨论后设计出了硬件连接方案,下面是我们的硬件连接:

8254:

GATE1——+5VCLK1——47KCS——320HOUT1——8259的IRQ0

8259:

INT1——INTRSP-1——+5VCS-1——340HIRQ0——8254的OUT1

第5片8255:

CS——300HPA0-PA3——P0-P3PB0-PB3——K0-K3PA6——Q-D1PA7——Q-D0PC1——K2PC2——K3PC3——K4

PC4——K5

1.2.1键盘扫描连接图:

图1.1

1.2.2显示连接图:

 

图1.2

 

1.3系统设计思路

将整个系统分为许多个小的模块,各个模块之间相互独立,通过定义不同的接口来实现各个模块的连接。

这样在调试程序的时候,可以分别进行调试。

可以加快课程设计的进程,缩短课程设计时间,简化我们的调试工作。

关于通讯系统的人机接口设计,其实主要是要完成三大功能的设计。

即:

接听功能,拨号功能和查询功能。

我们从这三个功能入手,分别对其进行了模块细化,画出了相应的程序流程。

 

二、程序流程图

图2.1

三、编程与调试

在明确实现目的与方法后,我们画出了流程图,根据流程图,我们编制出整个设计的主程序和子程序,并且通过组员的反复调试后,实现了提出的基本功能。

四、心得体会

本次课程设计我们小组抽到的是通讯设备人机接口的模拟设计,在刚分配好设计任务书后,小组4人快速选好组长,并初步安排好后面两周的工作。

1黄超的心得体会:

在这次课程设计中,我负责的是计时功能部分的设计。

说实话,已经放了一学期的硬件知识,到现在我已经忘得差不多了。

本来学习的时候就学得不是很好,为了不拖大家的后腿,我用了第一天整个晚上的时间把硬件的书粗略的过了一遍,把支离破碎的知识重新拾起在脑海里。

第二天,早上八点半,我们准时来到了实验室。

我们几个理清了所有的功能和流程,一个上午我们把整个的流程图画出来了,再用了下午跟晚上的时间修改整理出来了主程序,和各个模块的流程图。

第三天,我们把主程序和各个模块的流程图用专业工具画了出来。

然后进行了任务分工,由于我编程水平一般,所以没有分配到特别复杂的模块,我负责计时程序。

乍一看,我的任务太简单了,我最初也这么以为,可是当我真正着手干的时候我才发现,各种各样的问题都来了。

比如,我们使用的是三色LED灯的六位显示。

我要把所有需要显示的信息全部设计出来,而且显示的每一个信息都不能超过六位,最重要的是,还要使用能用八段LED显示出来的字母,像如果遇见“w”之类的字母,我想没有哪位大神能用八段LED把它显示出来吧。

所以,这可真不是一件让人省心的事。

遇见像挂断之类的信息还好,直接用英文“busy”,,我想终究还是能够传情达意。

最终我用了1个小时把这些需要显示的八种信息全部用八段LED可以显示的英文或符号设计出来了。

设计好这个问题又来了,三色LED能显示的字形码只有0~F这十六个数字,我们显示需要用到的字母或者符号全都没有,没办法,自己编呗。

对于从来都很不细心的我,这又是一个不小的挑战,还好最终我把这些东西都顺利的弄出来了。

(很不幸,调试的时候还是发现编错了一个码)

在这次课程设计过程中我学到了许多东西,比如遇到问题解决不了要向老师或同学求助,我学会了如何与同学合作。

学习了这么久这是第一次合作做出一个比较贴近现实生活和实际的系统,感觉自己终于能够将所学的知识跟实际应用联系到了一起。

感谢这次课程设计,我学会了许多有用的东西,学会了与他人合作,学会了将知识运用于实际。

2,郝鸿凯的心得体会:

此次的课程设计,拿到题目时,我有点不知所措,一直以来成绩不是很好,基础比较差,有些时候就不知道从哪里下手。

不过还好组长给我们分析了整个设计的流程,还给我分配了比较简单的任务,就是一小段的编程。

硬件都是去年学的咯,现在基本都已经忘完了,不过既然接了任务还是要把它做好,于是乎我回去开始翻开硬件书来看了。

不过现在看起来感觉还是很吃力,看了大半天才看懂点点,所以看的比较慢,看了几天才几乎了解到怎么编,编了好久终于编好了,拿给组长看,不过问题一大堆,还好组长厉害给我改了又改,才改好。

还给我讲为什么这样,虽然听不懂,不过好像很厉害的样子。

程序大概都已经编好了,接下来就交给组长来进行合并了,这是最难的部分,当然得交给最厉害的组长啦。

组长花了一天的功夫终于合并好了,然后就进行调试了,调试才是关键的,即使程序编好了,要是调试不出来还是不行,我们一组5个人咋实验室奋斗了2天才调试好,调试真的很复杂,有些时候明明觉得自己是对的,不过就是调试不出来。

在调试过程中,都换了好几台硬件设备,不过还好终于调试好了。

然后我们一一进行了实验,看看功能是否都完全实现了,虽然功能都比较简单,不过是能基本实现功能了。

3,赖升勇的的心得体会:

此次设计,给我的最大体会就是团体与个人的力量,一个人的力量总是有限的,不过结合众人的力量就会发挥出强大的力量,此次的设计要是单独给一个人做,会很费时间,并且错误几率夜会增大。

团体合作不仅能扬长补短,还能够增强彼此的团队协作能力。

虽然我们这次做的不是特别的好,不过重要的是过程,从零到一,从无到有的过程才是最重要的。

结果已经不是特别重要了,重要的是我付出了,也感觉到了收获这就足够了,我相信在最后的检验阶段,经过老师的检验,我们一定会做的更好,不足的也希望老师能给与指出,一边我们以后做的更好。

总的来说光是书本上的知识是不够的,只有自己做了菜知道自己的不足,也才能够进步,希望以后多一点这样的课程设计,也多一点这样的团队合作。

加油。

4,杜征宇的心得体会:

1:

控制三色led的四片8255只能工作在输出方式,所以其控制字写入之后可以不用更改,但是第5片8255工作方式多样,比如,在扫描键盘的时候,A口是作为方式0输入,B口作为方式0输出,C口未用上,但是在对来电指示灯和拨号指示灯进行操作时,应该由8255输出信号来控制,本可以用B口进行控制,但是在实验中发现,在按键时会干扰到那两个灯,所以我改变控制方式,使A口作为方式0输出,得以控制小灯而且不会影响到对键盘的操作。

因此,当我们在改变各个端口的输入输出方式时,千万不要忘记更改控制字。

2:

在设计中我们用8254产生定时中断接8259IR0,但是当特殊情况来时,需要关闭中断,此时我们有三种方式可以避免中断,第一:

关cpu的中断,这时只需执行指令CLI,但是这样其他可屏蔽中断也会被屏蔽,显然这种方法不合适,第二:

关8259中断,即写入操作命令字屏蔽掉8259对IR0的响应,这种方法最好。

第三:

因为8254工作在方式0,所以如果我们不写入计数初值,则8254的定时中断信号无法产生,也可以“关”掉中断。

3:

总的来说,本次课程设计程序流程清晰,思路比较好找,因此如果注意到细节方面的问题,完成起来也比较容易,而且在程序调试过程中还很容易发现硬件的问题,比如某个键盘按下之后未弹起,这在程序走向中可以很清楚地辨识出来。

当然,我觉得在做软件的时候,首先得拿个正确的程序去测试硬件是否能够正常工作,我们只有在保证硬件能够正常工作的前提下才能不出差错地将程序弄好。

5,陈开宇的心得体会:

在课程设计中,我们在一起设计好流程图后,我们决定以分工的形式完成此次任务,每个人完成一段子程序,最后由一个同学完成所有子程序的捏合。

我负责的是拨号功能模块,这一部分相对来说比较简单。

拨号功能其实就是键盘的扫描以及用4片8255显示相对应数字的功能,这些是以前在计算机硬件基础课程中所学习过的。

计算机硬件的知识都放了一个学期了,还是有些生疏了,我利用一个下午的时间简单的浏览了一下课本之后便开始编写程序。

我的这部分程序主要就是键盘的扫描,用第五片8255的B口送信号,从A口读入判断是否有键按下,然后判断按键是否松开,再通过比较字型码跳转到响应程序段执行显示数字的功能。

开始的时候遇到了很多问题,按键不能正常显示,走了很多弯路,最后才发现是我们组分配到的两台试验箱的键盘是坏的,在更换了试验箱后程序就可以正确运行了。

完成了这部分内容我的程序也就是有一个主体了。

因为是在模拟拨打电话的拨号阶段,所以我需要在根据按下数字的顺序决定是在哪一片的8255中显示,开始编写了一个让地址递增的程序,后来发现不行,因为4片8255的8个LED的地址是跳变的,即四个A口是连续的,四个B口是连续的。

也就是说我应该先送200,再送204,然后送201,然后205,以此类推…所以只能建表完成,建表还算顺利,唯一的问题就是我在建表的时候没有搞清楚地址是字节,不是字,所以需要在计数的时减候2,即通过计数每次减2,直到摁下9次,程序将结束。

通过这次设计我还是学习到了很多知识的,因为这次是相对以前实验更为独立完成的一次自主编写程序的锻炼,从程序的设计、流程图的绘画、程序框架的设计到每一个小程序段的细致完成,都是独立完成的,唯一的资料就是课本和网络,所以很锻炼人。

在以后的工作中会有更多的机会独立完成任务,处理和学习相对应的软件。

这次锻炼就显得更加珍贵和实用。

这次课程设计给了我一个让我将理论与实际联系的机会,给了我一个通过小组合力完成任务的机会。

最后,感谢老师的细心教诲和指导。

 

五、程序清单

.486

PORTAEQU300H

PORTBEQU304H

PORTCEQU308H

K0EQU0EEH

K1EQU0EDH

K2EQU0EBH

K3EQU0E7H

K4EQU0DEH

K5EQU0DDH

K6EQU0DBH

K7EQU0D7H

K8EQU0BEH

K9EQU0BDH

KAEQU0BBH

KBEQU0B7H

KCEQU7EH

KDEQU7DH

KEEQU7BH

KFEQU77H;各个键值

ctrl_8254equ32ch

cunt0equ320h

cunt1equ324h

ctrl_8255equ30ch

portbequ304h

addr0equ340h

addr1equ348h

intqequ40h

A8255EQU200H

B8255EQU204H

C8255EQU208H

CODESEGMENTUSE16

ORG2000H

ASSUMECS:

CODE

BEG:

JMPSTART

zhanxiancdd0fffffh

zhanxianc1dd100000h

cfdb-1

geshudw30d

cunshudb?

count1dd50h

SECONDDB0

MINUTEDB0

HOURDB0

jianpantabdw207h,203h,206h,202h,205h,201h,204h,200h

dw207h,203h,206h,202h,205h,201h,204h,200h

TABDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;0_9的段码INITDPROC

XSDM0DB0C0H,0BFH,0C0H,0C0H

XSDM1DB0C0H,0C0H,0BFH,0C0H

START:

callinit

LP1:

CALLJIANPAN

JMPLP1

houbanduanproc

pusha

calllaidian

cmpcf,0

jzwt33

wt2:

MOVDX,308H

INAL,DX

ANDAL,14H

CMPAL,00H

jzwt2

cli

moval,0ffh

movdx,addr1

outdx,al

sti

jmpwt22

jmpwt2

wt22:

calldelay2

callltoff

wt33:

callinit

popa

ret

houbanduanendp

initproc

pusha

moval,-1

movcf,al

movdx,30ch

moval,99h

outdx,al

moval,0ffh

movdx,300h

outdx,al

moveax,80808080h

movdx,20ch

outdx,eax

moveax,0ffffffffh

movdx,200h

outdx,eax

moveax,0ffffffffh

movdx,204h

outdx,eax

movax,30d

movgeshu,ax

moval,0

movhour,al

movsecond,al

movminute,al

popa

ret

initendp

zhanxianproc

pusha

movdx,30ch

moval,89h

outdx,al

moval,0bfh

movdx,300h

outdx,al

movecx,zhanxianc

z1:

movdx,308h

inal,dx

andal,0ch

cmpal,08h

jzz3;占线

cmpal,04h

jzz4;挂断

loopdz1

movdx,200h

moveax,0ff9291ffh

outdx,eax

movdx,204h

moveax,0ffff86ffh

outdx,eax

callhoubanduan

jmpz5

z3:

callzhanxiand

jmpz5

z4:

callltoff

z5:

callinit

popa

ret

zhanxianendp

zhanxiandproc

pusha

movecx,zhanxianc1

zd:

dececx

cmpecx,0

jzzdd

movdx,204h

moveax,0ff91c1ffh

outdx,eax

movdx,200h

moveax,0ff9283ffh

outdx,eax

movdx,308h

inal,dx

andal,0ch

cmpal,08h

jzzd;占线键高电平

cmpal,04h

jzzd1;己方挂断

cmpal,0ch

jzzd1;占线键高,己方挂断

cmpal,00h

jzzd2

zdd:

callautocut

jmpzd1

zd2:

movdx,200h

moveax,0ff9291ffh

outdx,eax

movdx,204h

moveax,0ffff86ffh

outdx,eax

callhoubanduan

zd1:

callltoff

popa

ret

zhanxiandendp

INIT459PROC

PUSHA

movdx,ctrl_8254

moval,70h;方式0,定时中断

outdx,al

movdx,cunt1;通道1

movax,47000

outdx,al

moval,ah

outdx,al;定时1s,初始化完毕

movdx,addr0

moval,13h

outdx,al

movdx,addr1

moval,40h

outdx,al

movdx,addr1

moval,01h

outdx,al

movdx,addr1

inal,dx

andal,0feh

outdx,al;8259初始化

cli

movax,0

movds,ax

leaax,jishi

movds:

[intq*4],ax

movax,segjishi

movds:

[intq*4+2],ax

sti

POPA

RET

INIT459ENDP

jishiproc

PUSHA

movdx,cunt1

movax,47000

outdx,al

moval,ah

outdx,al

CALLJIAYIMIAO

CALLJISHIZHUANHUAN

moval,20h

movdx,addr0

outdx,al;中断结束

POPA

iret

jishiendp

JIAYIMIAOPROC

PUSHA

MOVAL,SECOND

ADDAL,1

DAA

MOVSECOND,AL

CMPAL,60H

JBS0

MOVSECOND,0

MOVAL,MINUTE

ADDAL,1

DAA

MOVMINUTE,AL

CMPAL,60H

JBS0

MOVMINUTE,0

MOVAL,HOUR

ADDAL,1

DAA

MOVHOUR,AL

CMPAL,24H

JBS0

MOVHOUR,0

S0:

POPA

RET

JIAYIMIAOENDP

JISHIZHUANHUANPROC

PUSHA

MOVSI,0

MOVCL,4

MOVAL,SECOND

MOVAH,AL

MOVBX,OFFSETTAB

ANDAL,0FH

XLAT

MOVXSDM1[SI+3],AL

MOVAL,AH

SHRAL,CL

XLAT

MOVXSDM0[SI+3],AL

MOVAL,MINUTE

MOVAH,AL

ANDAL,0FH

XLAT

MOVXSDM0[SI+2],AL

MOVAL,AH

SHRAL,CL

XLAT

MOVXSDM1[SI+1],AL

MOVAL,HOUR

MOVAH,AL

ANDAL,0FH

XLAT

MOVXSDM1[SI],AL

MOVAL,AH

SHRAL,CL

XLAT

MOVXSDM0[SI],AL

MOVEAX,DWORDPTRXSDM0

MOVDX,A8255

OUTDX,EAX

MOVEAX,DWORDPTRXSDM1

MOVDX,B8255

OUTDX,EAX

MOVEAX,05050505H

MOVDX,C8255

OUTDX,EAX

POPA

RET

JISHIZHUANHUANENDP

laidianprocnear

pusha

movecx,count1

lp0:

dececx

cmpecx,0

jzlp3;无人接听

movdx,300h

moval,3fh;来电灯等亮

outdx,al

movdx,308h

inal,dx

andal,16h

calldelay1;闪烁延时

cmpal,00h

jzlp11;没按键

cmpal,10h

jzlp4;按下挂断键

cmpal,04h

jzlp4

jmplp2

lp11:

dececx

cmpecx,0

jzlp3;无人接听

movdx,300h

moval,0bfh;来电灯灭

outdx,al

movdx,308h

inal,dx

andal,16h

calldelay1;闪烁延时

cmpal,00h

jzlp0;没按键

cmp

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

当前位置:首页 > 成人教育 > 专升本

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

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