1、接口技术课程设计竞赛抢答器题目:竞赛抢答器的设计与设计设计任务与要求:1.1设计任务:了解微机控制的竞赛抢答器的基本原理。进一步熟练8255的使用。设计一个7路的智力竞赛抢答器。1.2要求:在主持人侧,设置抢答指示电路和启动/复位开关。选手侧各设置1个抢答按钮。使用开关K8代表启动/复位开关,K8向上拨时,表示启动一次抢答,绿色发光二极管亮作允许抢答指示。此时选手侧可以按动各自的抢答按钮。使用实验仪的逻辑电平开关K1-K7来代表7个抢答按钮。当开关向上拨时表示按下按钮。收到第1个抢答信号后,主持人侧红色发光二极管亮(绿色发光二极管灭)作抢答指示,并且在单个LED数码管显示抢先一组的组别。主持人
2、向下拨K8,代表复位操作,指示灯和数码管熄灭。主持人可以再次向上拨动K8,启动下一次抢答。通过8255完成设计。 设计方案:2.1 设计思路:利用可编程的并行接口8255进行设计。首先 ,初始化8255。然后,判断是启动还是复位操作,若是复位操作,则控制8255输出的数据使绿色和红色指示灯、LED数码管全灭;否则启动下一次抢答,使绿色发光二极管亮,当绿灯亮时表示可以抢答,当8255的输入口A有不为0的数据时,则使红色发光二极管点亮、并判断先拨动开关的组号,在LED上显示出其组号,当然,如果要使绿灯在抢答时亮,在每次复位时检测k8看其值是不是为零,即是不是在抢答完复位,如果没有复位,则不断的检测
3、,相反则重新下一轮的抢答。 2.2 设计硬件:本次试验用到了并行接口8255 该芯片的主要的功能是提供了四个外设编制地址,即A口,B口,C口和控制器各占一个外设接口地址,并且多同一个地址分别可以进行读,写操作。而且还可以适应 CPU与IO接口多种输出方式,如无条件传输方式, 查询传输方式和中断传输方式等。B口和C口的引脚具有达林顿复合晶体管驱动功能,在1.5V时输出1mA电流,适于作输出端口。C口除作数据口外,当8255工作在方式1和方式2时,C口的部分引脚作为固定的联络信号线。本实验中8255作为外设接口,A口输入,B、C输出,B口用于控制红,绿灯,C口用于控制LDE发光二极管。 硬件线路设
4、计:3.1 线路图:四位数码管循环显示图3.2连线说明: 8255模块的WR、RD分别连到ISA总线接口的IOWR、IORD。 8255模块的数据(AD07)、地址线(A07)分别连到ISA总线接口的数据(LAD07)、地址线(LA07)。 8255模块选通线CE连到ISA总线接口模块的IOY0。8255的PA07连到键盘显示模块的KD07;8255的PB03连到键盘显示模块的KL14。8255的端口C(PC0-PC7)通过驱动连接到LED的ah各段。8255的端口A(PA0-PA7)和开关K1-K8相连。8255的端口B(如PB2、PB1)分别和发光二极管L2(绿)、L1(红)连接。 软件设
5、计 4.1 流程图: yes no no继续检测 yesno继续检测 yes 源程序MY_DATA SEGMENT P8255_A DW 0c800H P8255_B DW 0c801H P8255_C DW 0c802H P8255_MODE DW 0c803H SGTB DB 0F9H,0A4H,0B0H,099H,92H,82H,0F8H ;共阳极数码管 MY_DATA ENDS MY_CODE SEGMENT MY_PROC PROC FAR ASSUME CS:MY_CODE ,DS:MY_DATA START: MOV AX,MY_DATA MOV DS,AX MOV DX,P82
6、55_MODE MOV AL,90H ;初始化8255控制字A口输入,B、C输出 OUT DX,AL AGAIN: MOV BX,0 MOV DX,P8255_A IN AL,DX TEST AL,80H JNZ QD ;启动 MOV DX,P8255_B ;绿灯 红灯 全灭 MOV AL,11111111B OUT DX,ALMOV DX,P8255_C MOV AL,11111111B ;数码管灭 OUT DX,AL JMP AGAIN QD: MOV DX,P8255_B ; 启动,绿灯亮 可以开始抢答 MOV AL,11111011B OUT DX,ALA: MOV DX,P8255_
7、A IN AL,DX TEST AL, 7FH JZ A ;若无人抢答跳转继续检测 有人按下 则转B B: MOV BX,0040H MOV CX,7 D: TEST AL,BL ;从K7判断是否抢答 JNZ C ;若抢答跳转 SHR BL,1 ;逻辑右移,依次检测首次抢答者 LOOP D JZ B ;若第一次没检测到抢答者返回继续检测C: MOV DX,P8255_B ;红灯亮 MOV AL,11111101B OUT DX,AL MOV DX,P8255_B ;位选线 PB7 MOV AL,10000000B OUT DX,ALDEC CX ;记录第一个抢答者的组别 MOV BX,CX M
8、OV DX,P8255_C ;将第一个抢答者的组别送C口LED显示 MOV AL,SGTBBX OUT DX,AL R: MOV DX,P8255_B ;红灯亮 MOV AL,11111101B OUT DX,AL MOV DX,P8255_A ;检测开关是否复位,如果没有继续检测,如果有,开始下一轮的抢答。 IN AL,DX TEST AL,80H JNZ R JMP AGAIN ;重新开始 EXIT: MOV AX,4C00H INT 21H MY_PROC ENDp MY_CODE ENDs END START 调试过程6.1实验连线出现的问题:在一开始时输完程序,编译连接,发现程序没有
9、错误,可是红,绿灯一开始就是不亮,更别说是通过开关来控制了。经仔细检查程序并没有发现什么问题,后来又去检查线路,发现有一根线接触不良,用手一摁灯就亮,手一放灯就灭。后来通过换线子,解决了问题。6.2实验中程序出现的问题:解决了线路问题,兴高采烈,本以为试验就可以成功,可是无论怎么拨弄开关红,绿灯还是不亮,无可奈何只好重新检查程序,在检查程序的过程中发现少了一些控制语句。源程序中因为没有循环控制语句,所以程序循环的太快,使得绿灯熄灭的频率太快,人肉眼无法分辨出来,因此我在程序中加了MOV DX,P8255_B MOV AL,11111101 B OUT DX,AL MOV DX,P8255_A
10、IN AL,DX TEST AL,80H JNZ R JMP AGAIN 这几句程序来判断K8是否复位,如果没有复位是红灯一直亮,强制使绿灯熄灭,如果复位后就进行下一轮的抢答。解决了程序的问题。6.3 实验中操作易出现的问题: 在使用编译软件的过程中我发现如果我更换程序要注意重新新建,因为我每次更该程序仅仅靠复制,粘贴,可是实验结果和没有更换程序一样,即使是进行复位也解决不了问题,后来我每次更换程序都重新新建编译文本,这样问题就解决啦! 总结: 首先:我觉的我们学生的动手能力太差,只要结果没出来就怀疑是实验仪器出问题了,而不去检查程序是否出问题。 其次:同学都不愿意去动脑子,很少有人愿意自己去
11、编程序,都是相互复制。在实验室中只要有一个同学把实验做出来,很快其他同学也做出来了。原因是只要把程序复制一下,稍微修改一些数据就能把实验做出来,可是当问其每一步的步骤是什么意思时,很多人支支吾吾,不知所以然, 这样就失去实验的意义了。 再者:我认为最重要的一点是通过实验反映一个人性格。大多人在实验中只要遇一点困难就东张西望,或是焦躁不安,跑去问别人即使问题解决了还是不知道是什么原因。而有的同学遇到问题回去反复实验,仔细研究在研究中发现问题解决问题。这样的人收获是做大的,因为他们在解决问题的过程中会学到很多东西。所以当我们遇到问题时要尽最大努力去解决,即使别人帮忙解决也要明白为什么,这样才会有收获。 参考文献1 裘雪红,李伯成,刘凯编著. 微型计算机原理及接口技术(第二版). 西安电子科技大学出版社. 20072杨全胜. 现代微机原理与接口技术.电子工业出版社. 2005
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1