接口技术课程设计竞赛抢答器Word格式文档下载.docx
《接口技术课程设计竞赛抢答器Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《接口技术课程设计竞赛抢答器Word格式文档下载.docx(7页珍藏版)》请在冰豆网上搜索。
![接口技术课程设计竞赛抢答器Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2023-2/1/a9087b9b-a309-46cc-b377-49c0fc85b900/a9087b9b-a309-46cc-b377-49c0fc85b9001.gif)
5主持人向下拨K8,代表复位操作,指示灯和数码管熄灭。
6主持人可以再次向上拨动K8,启动下一次抢答。
7通过8255完成设计。
㈡设计方案:
2.1设计思路:
利用可编程的并行接口8255进行设计。
首先,初始化8255。
,然后,判断是启动还是复位操作,若是复位操作,则控制8255输出的数据使绿色和红色指示灯、LED数码管全灭;
否则启动下一次抢答,使绿色发光二极管亮,当绿灯亮时表示可以抢答,当8255的输入口A有不为0的数据时,则使红色发光二极管点亮、并判断先拨动开关的组号,在LED上显示出其组号,当燃,如果要使绿灯在抢答时亮,在每次复位时检测k8看其值是不是为零,即是不是在抢答完复位,如果没有复位,则不断的检测,相反则重新下一轮的抢答。
2.2设计硬件:
①木次试验用到了并行接口8255该芯片的主要的功能是提供了四个外设编制地址,即A口,B口,C口和控制器各占一个外设接口地址,并且多同一个地址分别可以进行读,写操作。
②而且还可以适应CPU与I\O接口多种输出方式,如无条件传输方式,查询传输方式和中断传输方式等。
③B口和C口的引脚具有达林顿复合晶体管驱动功能,在1.5V时输出1mA电流,适于作输出端口。
④C口除作数据口外,当8255工作在方式1和方式2时,C口的部分引脚作为固定的联络信号线。
⑤木实验中8255作为外设接口,A口输入,B、C输出,B口用于控制红,绿灯,C口用于控制LDE发光二极管。
㈢硕件线路设计:
3.1线路图:
KDOO
KD1O
JO2CJ
KH3a
KD-1C3
05O
06C)
3.2连线说明:
>
8255模块的WR、RD分别连到ISA总线接口的IOWR、IORD。
8255模块的数据(ADO〜7)、地址线(A0〜7)分别连到ISA总线接口的数据(LADO〜7)、地址线(LAO〜7)。
8255模块选通线CE连到ISA总线接口模块的IOYO。
8255的PAO〜7连到键盘显示模块的KDO〜7:
8255的PBO〜3连到键盘显示模块的KL1〜4。
8255的端口C(PC0-PC7)通过驱动连接到LED的d〜h各段。
8255的端口A(PA0-PA7)和开关K1-K8相连。
8255的端口B(如PB2、PB1)分别和发光二极管L2(绿)、L1(红)连接。
㈣软件设计
4.1流程图:
㈤源程序
MY_DATASEGMENT
DWOc8OOH
DW0c801H
DWOc8O2H
DWOc8O3H
P8255_A
P8255_B
P8255_C
P8255_MODE
SGTBDB0F9H,0A4H,0B0H,099H,92H,82H,0F8H;
共阳极数码
MY_DATAENDS
MY_CODESEGMENT
MY_PROCPROCFAR
ASSUMECS:
MY_CODE,DS:
MY_DATA
START:
MOVAX,MY_DATA
MOVDS,AX
MOVDX,P8255_MODE
MOVAL,90H;
初始化8255控制字A口输入,
B、C输出
OUTDX,AL
AGAIN:
MOVBX,0
MOVDX,P8255_A
INAL,DX
TESTAL,80H
JNZQD;
启动
MOVDX,P8255_B
MOVAL,11111111B
MOVDX,P8255_C
;
绿灯红灯全灭
数码管灭
抢答
B:
MOVBX,0040H
MOVCX,7
TESTAL,BL
JNZC
从K7判断是否抢答
若抢答跳转
JMPAGAIN
LOOPD
JZB;
若第一次没检测到抢答者返
回继续检测
C:
MOVDX,P8255_B;
红灯亮
MOVAL,11111101B
位选线PB7
MOVAL.10000000B
MOVBX.CX
;
将第一个抢答者的组别
送C口LED显示
MOVAL,SGTB[BX]
OUTDX.AL
MOVALJ1111101B
MOVDX,P8255_A;
检测开关是否复位,如果
没有继续检测,如果有,开始下一轮的抢答。
JNZR
JMPAGAIN;
重新开始
EXIT:
MOVAX,4C00H
INT21H
MY_PROCENDp
MY_CODEENDS
ENDSTART
伉)调试过程
6.1
实验连线出现的问题:
在一开始时输完程序,编译连接,发现程序没有错误,可是红,绿灯一开始就是不亮,更别说是通过开关来控制了。
经仔细检查程序并没有发现什么问题,后来又去检查线路,发现有一根线接触不良,用手一扌恩灯就亮,手一放灯就灭。
后来通过换线子,解决了问题。
6.2
实验中程序出现的问题:
解决了线路问题,兴高采烈,木以为试验就可以成功,可是无论怎么拨弄开关红,绿灯还是不亮,无可奈何只好重新检查程序,在检查程序的过程中发现少了一些控制语句。
源程序中因为没有循环控制语句,所以程序循环的太快,使得绿灯熄灭的频率太快,人肉眼无法分辨出来,因此我在程序中加了MOVDX,P8255_BMOV
AL,11111101BOUTDX,ALMOVDX,P8255_AINAL,DXTESTAL,80HJNZRJMPAGAIN这几句程序来判断K8是否复位,如果没有复位是红灯一直亮,强制使绿灯熄灭,如果复位后就进行下一轮的抢答。
解决了程序的问题。
实验中操作易出现的问题:
在使用编译软件的过程中我发现如果我更换程序要注意重新新建,因为我每次更该程序仅仅靠复制,粘贴,可是实验结果和没有更换程序一样,即使是进行复位也解决不了问题,后来我每次更换程序都重新新建编译文本,这样问题就解决啦!
(七)总结:
首先:
我觉的我们学生的动手能力太差,只要结果没出来就怀疑是实验仪器出问题了,而不去检查程序是否出问题。
其次:
同学都不愿意去动脑子,很少有人愿意自己去编程序,都是相互复制。
在实验室中只要有一个同学把实验做出来,很快其他同学也做出来了。
原因是只要把程序复制一下,稍微修改一些数据就能把实验做出来,可是当问其每一步的步骤是什么意思时,很多人支支吾吾,不知所以然,这样就失去实验的意义了。
再者:
我认为最重要的一点是通过实验反映一个人性格。
大多人在实验中只要遇一点困难就东张西望,或是焦躁不安,跑去问别人即使问题解决了还是不知道是什么原因。
而有的同学遇到问题回去反复实验,仔细研究在研究中发现问题解决问题。
这样的人收获是做大的,因为他们在解决问题的过程中会学到很多东西。
所以当我们遇到问题时要尽最大努力去解决,即使别人帮忙解决也要明白为什么,这样才会有收获。
(八)参考文献
[1]裘雪红,李伯成,刘凯编著•微型计算机原理及接口技术(第
二版).西安电子科技大学出版社.2007
[2]杨全胜.现代微机原理与接口技术.电子工业出版社.2005