基于8086系统抢答器的设计实现分析.docx
- 文档编号:28592096
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:16
- 大小:257.04KB
基于8086系统抢答器的设计实现分析.docx
《基于8086系统抢答器的设计实现分析.docx》由会员分享,可在线阅读,更多相关《基于8086系统抢答器的设计实现分析.docx(16页珍藏版)》请在冰豆网上搜索。
基于8086系统抢答器的设计实现分析
郑州科技学院
《微机原理与接口技术》课程设计
题目__基于8086系统抢答器的设计与实现__
学生姓名
完成时间2015年1月11日
1引言……………………………………………………………………1
2设计方案与论证……………………………………………………2
2.1硬件设计……………………………………………………………2
2.2设计方法……………………………………………………………2
3设计原理及功能说明……………………………………………3
3.1设计原理……………………………………………………………3
3.2元器件功能特性…………………………………………………8
4调试与结果测试………………………………………………………12
4.1程序调试…………………………………………………………12
4.2结果测试…………………………………………………………12
5总结…………………………………………………………………15
参考文献…………………………………………………………………………17
附录1:
总体电路原理图……………………………………………18
附录2:
元器件清单………………………………………………………19
1引言
本课程设计的目的是了解微机化竞赛抢答器的设计原理和方法,掌握定时/计数器、并行接口芯片和中断控制的工作原理与使用方法,以及进一步学习使用并行接口。
该课程设计主要任务是完成八路抢答控制器的电路设计、元器件选型、8255A的使用,控制器装配与接线、实物制作、汇编语言设计与联机调试等内容。
其要求为应基于8086系统,其次当主持人启动开始键之后,数码管显示倒计时,当有选手把抢答按钮按下时,显示器显示该组的组号,并使扬声器响一下。
八路数显抢答器主要具有电路简单、成本较低、操作方便、灵敏可靠等优点,经使用效果良好,具有较好的可操作性。
八路抢答器,它由八组开关和一个LED显示器组成,哪一组最先按下该组的抢答开关,哪一组面前的led灯就会亮起。
以后,按下任何一路抢答键均不起反映。
只有再次按动复位后,才能进行下一次抢答。
2设计方案与论证
2.1硬件设计
(1)设计一个可容纳八组(或更多)参赛的数字式抢答器,每组设一个按钮,供抢答使用。
(2)抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作用。
(3)一定时间结束后数码管清零,等待下次抢答开始。
[1]
设计框图如图2-1所示。
图2-1设计框图
2.2设计方案:
(1)本抢答器的控制装置是由8086CPU作为控制器、一只电源开关,一个LED显示器,八组抢答开关等组成。
(2)有八组抢答按钮。
先按按钮的选手的请求会被响应,而后按按钮的选手的请求会被屏蔽掉。
(3)启动电脑程序,8086统一通过8255给A端口设置统一的数位,选择抢答按钮方可抢答。
最先按下抢答的按钮序号会在LED显示器上显示,同时通过汇编程序的控制跳出对8255A输入端的检索,使其他输入的信号被屏蔽掉。
[2]
3设计原理及功能说明
3.1设计原理及设计背景
3.1.1设计原理
8255采用90H运行方式,即PA口为输入,PB、PC均为输出。
将八个抢答器按键连接到8255芯片的PA0~PA7,当8组均未按下抢答按钮时,送入到并行接口的8位抢答状态都是0,当检测到按键发生变化时,即微机采样到这8位数据不为0时,微机通过该并行输入口循环对8路抢答信号进行采样。
[3]
经过分析,实验的关键的是准确判断抢答者的信息,为此,要将8个抢答器按键连接到PA0~PA7,微机通过该并行输入口循环对8路抢答信号进行采样。
当样到哪一组的抢答信号已经发出,则记录下该组的组号。
从PB口输出组号所对应的LED数码管段码,在LED显示器上显示抢答按钮编号。
当8组均未按下抢答按钮时,送入到并行接口的8位抢答状态都是空,而当微机采样到这8位数据不为0时,则表示有一组获得了抢答机会,然后通过逐位查询个位状态,即可判断出哪一组抢答成功,最后利用并行输出接口将抢答成功的组号现实出来。
在实验中,可以仅用一位7段数码管来显示抢答选手的组号。
具体电路框图如图3-1。
图3-1电路框图
获取选手号码子程序:
在硬件电路中,8255的PA端口连接开关按键,根据读取PA的状态可以判断出按下的是哪个键(按下为低电平),根据进行移位操作,可得出选手的具体号码。
start:
movax,data
movds,ax
movdx,io8255b;设8255为A口输出,C口输入
movax,89h
outdx,al
movbx,offsetled;使BX指向段码管首址
sss:
movdx,io8255a
inal,dx;从8255的C口输入数据
oral,al;比较是否为0
jesss;若为0,则表明无键按下,转sss
movcl,0ffh;cl作计数器,初值为-1
rr:
shral,1
inccl
jncrr
moval,cl
具体系统流程图如图3-2所示。
图3-2系统流程图
其抢答器的具体源程序为:
datasegment
ioportequ0d400h-0280h
io8255aequioport+28ah
io8255bequioport+28bh
io8255cequioport+288h
leddb3fh,06h,5bh,4fh,66h,6dh,7dh,07h;数码表
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movdx,io8255b;设8255为A口输出,C口输入
movax,89h
outdx,al
movbx,offsetled;使BX指向段码管首址
sss:
movdx,io8255a
inal,dx;从8255的C口输入数据
oral,al;比较是否为0
jesss;若为0,则表明无键按下,转sss
movcl,0ffh;cl作计数器,初值为-1
rr:
shral,1
inccl
jncrr
moval,cl
xlat
movdx,io8255c
outdx,al
movdl,7;响铃ASCII码为07
movah,2
int21h
wai:
movah,1
int21h
cmpal,20h;是否为空格
jneeee;不是,转eee
moval,0;是,关灭灯
movdx,io8255c
outdx,al
jmpsss
eee:
movah,4ch;返回
int21h
codeends
endstart
3.1.2设计背景
当今的社会竞争日益激烈,选拔人才,评选优胜,知识竞赛之类的活动愈加频繁,那么也就必然离不开抢答器。
而现在的抢答器有着数字化,智能化的方向发展,这就必然提高了抢答器的成本。
鉴于现在小规模的知识竞赛越来越多,操作简单,经济实用的小型抢答器必将大有市场。
本抢答器通过十分巧妙的设计仅用一块数字芯片便实现了数显抢答的功能,与其他抢答器电路相比较有分辨时间极短、结构清晰,成本低、制作方便等优点,并且还有防作弊功能。
因此,我们制作了这款简易五路抢答器屏弃了成本高,体积大,而且操作复杂。
我们采用了数字显示器直接指示,自动锁存显示结果,并自动复位的设计思想,因而本抢答器具有显示直观,不需要人干预的特点。
而且在显示时抢答器会发出叮咚声使效果更为生动。
工厂、学校和电视台等单位常举办各种智力竞赛,抢答记分器是必要设备。
[4]
3.2元器件功能特性:
3.2.1可编程并行接口接口芯片8255A
8255A芯片是一个采用NMOS工艺制造的40引脚双列直插式(DIP)封装组件。
8255A有3个8位数据端口,即A口、B口及C口,它们都可以分别作为输入口或输出口使用;A组控制与B组控制;读/写控制逻辑;数据总路线缓冲器。
3.2.28255A内部结构
8255A芯片是一个采用NMOS工艺制造的40引脚双列直插式(DIP)封装组件。
8255A有3个8位数据端口,即A口、B口及C口,它们都可以分别作为输入口或输出口使用;A组控制与B组控制;读/写控制逻辑;数据总路线缓冲器。
3.2.38255A主要的外部引脚
8255A引脚图如图3-3所示。
图3-38255A引脚图
PA7~PA0:
A口的8条I/O线。
8条线只能同时作为输入或输出,不能分开使用,可设置成双向口,也只有A口允许这样做。
PB7~PB0:
B口的8条I/O线。
不可以设置成双向口,其它和A口一样。
PC7~PC0:
C口的8条I/O线。
不可以设置成双向口,但它可以分拆为两组即高4位和低4位,这两组可以任意设置为输入或输出。
除了作为独立的I/O线外,C口还经常为A口、B口服务,配合A口、B口作联络线使用。
A1、A0:
端口地址选择信号。
用于选择8255A的3个数据端口和一个控制口。
当A1A0=00时,选择端口A;为01时,选择端口B;为10,选择端口C;为11时,选择控制口。
[5]
3.2.48255A工作方式
方式0:
基本的输入/输出方式。
A口、B口、C口都可以工作在些方式下。
(1)工作方式0:
这是8255A中各端口的基本输入/输出方式。
它只完成简单的并行输入/输出操作,CPU可从指定端口输入信息,也可向指定端口输出信息,如果三个端口均处于工作方式0,则可由工作方式控制字定义16种工作方式的组合
(2)工作方式1:
被称作选通输入/输出方式。
在这种工作方式下,数据输入/输出操作要在选通信号控制下完成。
[6]
(3)工作方式2:
被称作带选通的双向传送方式。
8255A中只允许端口A处于工作方式2,可用来在两台处理机之间实现双向并行通信。
其有关的控制信号由端口C提供,并可向CPU发出中断请求信号。
在本次试验中,考虑到程序的简洁性,在完全满足实验要求的情况下,我们将8255A的A、B口都设置为方式0,A口输入四位,B口输出数据,C口低四位输出。
3.2.58255A方式控制字格式
A口工作在方式0,做为输入端口用于连接选手按键(PA7~PA0依次对应按键1~8);B口工作在方式0,做为输出端口,经驱动器1连接LED显示器(PB7~PB0依次对应连接LED显示器的dp、g、f、e、d、c、b、a七段数码管管脚);C口也必须工作在方式0,高4位做输入端口(本次设计中只用PC4、PC5,分别用于连接复位键和开始键),低4位做输出端口(PC3~PC0,经驱动器2后PC1、PC2、PC3分别用于连接黄、红、绿三个发光二极管,PC0连接到8253的GATE1端,以控制通道1的计数)。
表18255方式控制字
D7
D6、D5
D4
D3
D2
D1
D0
1
A口
A口
C口高4位
B口
B口
C口低4位
00方式0
01方式1
1x方式2
0输出
1输入
0输出
1输入
0方式0
1方式1
0输出
1输出
0输出
1输入
3.2.6可编程并行接口接口芯片8255A的工作方式
(1)A口工作在方式0,做为输入端口用于连接选手按键(PA7~PA0依次对应按键1~8);
(2)B口工作在方式0,做为输出端口,经驱动器1连接LED显示器(PB7~PB0依次对应连接LED显示器的dp、g、f、e、d、c、b、a七段数码管管脚)。
[7]
4调试与结果测试
4.1程序调试。
启动计算机,计算机自动为系统各芯片进行初始化,抢答器开始工作。
比赛开始,选手抢答成功,LED显示器显示选手号码。
4.2结果测试。
(1)按照接线图连接电路,连接、编译无误后载入系统,执行程序。
(2)当向前推动多个按钮后(可故意先推动一个按钮以测试准确性),屏幕显示出抢答成功的按钮编号。
(3)实验结束。
实验测试结果如表4-1所示。
表4-1实验测试结果表
推动按钮
0
1
2
3
4
5
6
7
LED显示按钮编号
0
1
2
3
4
5
6
7
连接硬件电路后,控制程序输出得到相应结果,如图图4-1、4-2所示,为试验成功截图。
图4-1硬件显示结果
由上结果可看出,当按键3按下的时候,数码管显示数字3,可得程序设计及硬件连接能达到题目要求。
图4-2硬件显示结果
由上结果可看出,当按键4按下的时候,数码管显示数字4,可得程序设计及硬件连接能达到题目要求。
其他几种测试均可成功,如表4-1实验测试结果表相同。
5总结
刚开始要运行代码的时候,不知道如何使用系统实验箱,虽然自己写的程序没有任何错误,但是却无法运行,使得对程序设计没有一点头绪,使得我们组的抢答器成为了可以重复使用的抢答器,提高了它的实用性。
通过本次课程设计我也获得了许多收益,首先,让我更好的掌握了8255A芯片的工作原理、方式及其应用。
其次,让我学会了如何设计一个简单的微机系统,以及设计一个简单微机系统所需要的步骤和设计中需要注意的地方。
本人在设计中遇到很多困难,大都是对和芯片的应用还不是很熟练,还需更加努力更加深入的了解微机系统和芯片功能。
由于我的能力和时间的限制,没能通过硬件的验证实验,只是通过查找一些资料和大脑抽象来设计本次课程设计,设计的抢答器还存在一些问题有待改进。
转眼间一周微机课程设计转眼就结束了,通过这次课程设计,我学会了许多课本上学不到的东西,同时也加强了我的动手、思考和解决问题的能力,受益匪浅。
课程设计过程中,我觉得是对课本知识的巩固和加强,由于课本上的知识太多,同时平时课间又没有好好的运用额理解个芯片的功能,而且考试的内容有限,所以在这次课程设计过程中,我们了解很多元件的功能,对其在电路中的使用有更多的认识。
从前的学习过程过于浮浅,只是流于表面的理解,而现在要做课程设计,就不得不要求我们对所用到的知识有更深层次的理解。
因为课程设计的内容比及书本中的理论知识而言,更接近于现实生活,而理论到实践的转化往往是一个艰难的过程,它犹如一只拦路虎,横更在我们的面前。
但是我们毫不畏惧,因为我们相信我们能行。
前几天的主要任务是设计程序。
虽然在设计中会遇到这样那样的问题,有时认为是正确的,而在仿真中却出现了这样那样的问题。
软件部分做好了,下面就是接线啦,这可是一个比较麻烦的事。
在接线的时候要细心和耐心、恒心,这样才能做好事情。
同时接好了一步电路以后,最为重要的是检查这部分是不是接对了。
在做硬件测试的时候,八个数字基本能显示,但还是有点缺陷,比如显示数字1的时候,显示的不对,后来在老师帮助下解决了这个问题。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,和与人合作共同提高,都受益非浅,今后的制作应该更轻松,自己也都能扛的起并高质量的完成项目。
最后,我要感谢给予我精心辅导的老师。
参考文献
[1]《微型计算机原理及接口技术》[M]中国科技大学出版社吴秀清周荷琴编著
[2]《16-32位微型计算机技术及应用》[M]清华大学出版社戴梅萼史嘉权编著
[3]《汇编语言程序设计》[M]南京大学出版社姚君遗编著
[4]《汇编语言程序设计教程》[M]清华大学出版社杨记文编著
[5]《80X86汇编语言程序设计》[M]机械工业出版社马力妮主编
[6]《16-32位微机原理、汇编语言及接口技术》机械工业出版社钱晓捷陈涛编著
[7]《微型计算机原理及接口技术》实验指导书
附录1:
总体电路原理图
附录2:
元器件清单
该抢答器所要器件:
(1)可编程并行接口芯片8255;
(2)一个扬声器;
(3)一个LED显示器;
(4)8个按键;
(5)数根排线。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 8086 系统 抢答 设计 实现 分析