ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:222.51KB ,
资源ID:3444959      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-3444959.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机课程设计竞赛抢答器Word文件下载.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

微机课程设计竞赛抢答器Word文件下载.docx

1、参考文献 主程序清单 第一章 关于抢答器的概述及设计要求 1.1数字抢答器的简介 抢答器是在竞赛、文体娱乐活动(抢答活动)中,能准确、公正、直观地判断出抢答者的机器。通过抢答者的指示灯显示、数码显示和警示显示等手段指示出第一抢答者。随着科学技术的不断发展,促使人们学科学,学技术,学知识的手段多种多样,抢答器作为一种强大工具,已经广泛应用于各种知识能力竞赛场合,例如选拔人才、评选优胜及各种智力竞赛等。目前知识竞赛之类的活动愈加频繁,凡是有知识竞赛类的活动那么也就必然离不开抢答器。针对主持人提出的问题,各组一般要进行必答和抢答,对于抢答,要判定哪组先按键,为了公正,这就要有一种逻辑电路抢答器作为裁

2、判员。这种数字抢答器杜绝了人为因素的影响,实现了抢答公平公正的原则。所以操作简单、经济实用的小型数字抢答器将流行于各类竞赛中,成为小规模知识竞赛的首选。1.2课程设计要求内容:用微机原理实验箱,在外接8个按键的抢按下,让8段LED数码管显示抢答者编号,并使喇叭响一下。具体要求:(1) 通过实验箱上8255芯片接收来自实验箱按键的信息,将该信息送入8088CPU,由CPU判断是哪个按键按下;(2) 8088CPU将判断出的按键信息转换为8段显示码,并通过8255芯片发送到8段显示模块显示;(3) 在显示按键信息的同时通过实验箱上8253芯片产生一定频率的方波信号发送到音频功放模块,发出声音;(4

3、) 提高要求: 能对几乎同时发生的按键进行判别,找到先按的键。 1.3实现功能 当没有选手按下按键时,LED数码管显示“-”符号,表示此时可以进行抢答,当抢答开始,选手按下8路抢答器中的任何一路开关时,8段LED数码管上显示最先按开关的选手的号码,同时蜂鸣器鸣叫一段时间以示已经有人抢答成功。 当一位选手抢答成功时,数码管上显示这位选手的号码,此时其他选手再按下按键不会产生任何作用,系统进入锁死状态,当抢答成功的选手退下按键时,LED数码管显示“-”符号,表示系统已经初始化,可以进行下一轮抢答。 第二章 总体设计2.1功能需求分析系统必须准确判断抢答者的信息,根据按键信息判断被按下的按键的序号,

4、在LED数码管上显示相应的数字反映抢答信息,同时蜂鸣器响一声以示有选手抢答成功。2.2可行性分析将8个抢答器按键连接到8255芯片的PA0PA7,当8组均未按下抢答按钮时,送入到并行接口的8位抢答状态都是0,当检测到按键发生变化时,即微机采样到这8位数据不为0时,微机通过该并行输入口循环对8路抢答信号进行采样。当采样到哪一组的抢答信号已经发出,则记录下该组的组号,从PB口输出组号所对应的LED数码管段码,同时PC7端口连接至定时器的门控信号端口,使定时器工作,输出端连接到蜂鸣器,蜂鸣器鸣叫一段时间后关闭,若系统检测到按键信息全为0时,表明选手已经把按键退下,则系统重新开始检测按键状态,进入下一

5、个抢答环节。2.3硬件总体设计2.3.1硬件器材所需器件:可编程并行接口芯片8255、可编程定时器计数器8253,扬声器,一个LED显示器,8个按键。2.3.2内存单元地址可编程并行接口接口芯片8255A的端口地址为0ff28H、0ff29H、0ff2AH、0ff2BH。可编程定时器计数器8253的端口地址为0040H、0041H、0042H、0043H。2.4软件流程图显示“-”符号从8255A口读取按键状态Y无按键按下NLED显示1按键1按下LED显示3LED显示4LED显示5LED显示6LED显示7LED显示2按键2按下按键3按下按键4按下按键5按下按键6按下按键7按下LED显示8按键8

6、按下蜂鸣器响一声检测PA口是否全为0按键全为0图1 系统软件流程图第三章 硬件设计3.1所选芯片介绍3.1.1可编程并行接口接口芯片8255A8255A内部结构8255A芯片是一个采用NMOS工艺制造的40引脚双列直插式(DIP)封装组件。8255A有3个8位数据端口,即A口、B口及C口,它们都可以分别作为输入口或输出口使用;A组控制与B组控制;读写控制逻辑;数据总路线缓冲器。8255A主要的外部引脚图2 8255A引脚图PA7PA0:A口的8条IO线。8条线只能同时作为输入或输出,不能分开使用,可设置成双向口,也只有A口允许这样做。PB7PB0:B口的8条IO线。不可以设置成双向口,其它和A

7、口一样。PC7PC0:C口的8条IO线。不可以设置成双向口,但它可以分拆为两组即高4位和低4位,这两组可以任意设置为输入或输出。除了作为独立的IO线外,C口还经常为A口、B口服务,配合A口、B口作联络线使用。A1、A0:端口地址选择信号。用于选择8255A的3个数据端口和一个控制口。当A1A0=00时,选择端口A;为01时,选择端口B;为10,选择端口C;为11时,选择控制口。8255A工作方式方式0:基本的输入输出方式。A口、B口、C口都可以工作在些方式下。8255A方式控制字格式表1 8255方式控制字D7D6、D5D4D3D2D1D01A口C口高4位B口C口低4位00 方式001 方式1

8、1x 方式20 输出1 输入0方式01方式13.1.2可编程定时器计数器82538253的内部结构8253采用NMOS工艺制成,有24个引脚,所有输入、输出端均TTL电平兼容,单一电源(Vcc=+5V)供电,最高计数速率为2.6MHz。它包括3个计数器(即计数器0、1、2)、数据总路线缓冲器、读写逻辑以及控制寄存器等4个部分。8253的外部引脚图3 8253引脚图地址输入线,用来址8253内部的4个端口,即3个计数器和1个控制字寄存器与CPU系统地址线相连。CLK0、CLK1、CLK2:时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号。CLK可以是系统的时钟脉冲,也可以由系统时钟分频或者其他脉冲

9、源提供。当用于定时时,这个脉冲必须是均匀的、连续的、周期精确的,而用于计数时,这个脉冲可以是不均匀的、断续的、周期不定的。GATE0、GATE1、GATE3:门控输入端,用于外部控制计数器的启动计数和停止计数的操作。两个或两个以上计数器连用时,可用此信号同步,也可用于与外部某信号的同步。OUT0、OUT1、OUT2:计数输出,当计数器从初值开始完成计数操作进,OUT引脚输出相应的信号。 8253的工作方式减1计数到0,产生中断请求信号。方式3:减1计数到初值的12,方波发生器。8253方式控制字格式表2 8253方式控制字D7 D6D5 D4D3 D2 D100 选计数器001 选计数器110

10、 选计数器200 计数器锁存01 只读写低8位10 先读写高8位11 先读写低8位 再读写高8位000 方式0001 方式1X10 方式2X11 方式3100 方式4101 方式50 二进制计数1 BCD计数3.2系统所选用各芯片的连接3.2.1各芯片与CPU的连接8255A、8253的数据总线D7D0端、端、端、INT端分别与CPU的数据总线D7D0端、片选端0040H、端、INTR端相连。8255A、8253的A1、A0端分别与CPU地址线的A1、A0端相连。3.2.2各芯片之间的连接和与外设的连接8255A的A口的PA7PA0依次接“按键1”“按键8”,B口的PB7PB0通过驱动器1接到

11、LED显示器,8253的GATE0端接PC7端口,CLK0接1MHz,OUT0的输出接入接扬声器。第四章 软件设计4.1程序流程设定好8255、8253的方式控制字后,根据读取8255PA端口的状态值,获取选手的具体号码,从而转到相应程序,将号码所对应的段码输出到PB端口进行数码管显示。同时将PC7置1,使相连的GATE0门控信号为1,通道0进行计数,输出到扬声器进行鸣叫。4.2子程序清单PORT_A EQU 0FF28HPORT_B EQU 0FF29HPORT_C EQU 0FF2AHPORT_CTL EQU 0FF2BH MOV AL,90H ;8255控制字 A组方式0输入 MOV D

12、X,PORT_CTL ;B组方式0输出 C口输出 OUT DX,AL MOV AL,00110110B ;8253控制字 计数器0 读写字 MOV DX,43H ;工作方式方式3 MOV AX,1000 ;计数器初值 MOV DX,40H MOV AL,AH在硬件电路中,8255的PA端口连接开关按键,根据读取PA的状态可以判断出按下的是哪个键(按下为高电平),根据进行移位操作,可得出选手的具体号码。MOV DX,PORT_A ;读取A口状态(按键状态) IN AL,DX CMP AL,00000000B ;无按键按下 返回LED1 JE LED1 CMP AL,00000001B ;按键1

13、JE LP1 CMP AL,00000010B ;按键2 JE LP2 CMP AL,00000100B ;按键3 JE LP3 CMP AL,00001000B ;按键4 JE LP4 CMP AL,00010000B ;按键5 JE LP5 CMP AL,00100000B ;按键6 JE LP6 CMP AL,01000000B ;按键7 JE LP7 CMP AL,10000000B ;按键8 JE LP8 JMP LED1 ;返回根据获取得到选手的号码,跳转相应程序,将段码输出给PB端口。LP1: MOV DX,PORT_B ;数码管显示1 MOV AL,11111001B OUT

14、DX,ALLP2:数码管显示2 MOV AL,10100100BLP3:数码管显示3 .LP8:LED的管脚对应的字形dp、g、f、e 、d、c、b、a 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 2 3 4 5 6 7 8 MOV AL,00001111B ;8255 PC7口置1,使蜂鸣器工作 MOV DX,PORT_CTL OUT DX,AL MOV BL,00000000B

15、 MOV CX,0FFFFH ;延时一段时间 LOOP1:LOOP LOOP1 LOOP2:LOOP LOOP2 LOOP3:LOOP LOOP3 LOOP4:LOOP LOOP4 LOOP5:LOOP LOOP5 LOOP6:LOOP LOOP6 LOOP7:LOOP LOOP7 MOV AL,00001110B ;8255 PC7口置0,蜂鸣器停止工作 第五章 结果分析 连接硬件电路后,控制程序输出得到相应结果: 图5 硬件显示结果由上结果可看出,当按键3按下的时候,数码管显示数字3,扬声器进行鸣叫,在无按键按下时,LED数码管显示符号“-”,可得程序设计及硬件连接能达到题目要求。 小结

16、转眼间微机课程设计就结束了,回想过去的几周,这里面的辛苦只有亲自做的人才知道。我们经历了阶段性的狂喜,测试失败后的失望,陷入困境后的不知所措,重新投入时的齐心协力。最终我们完成了8人竞赛抢答器的设计,基本实现了竞赛抢答器的所有功能。这次课程设计主要运用到了8088CPU,可编程并行接口芯片8255和可编程定时器8253芯片,扬声器。所以,在开始设计之前,我们需要熟悉LED显示器的结构及译码方式,熟悉掌握汇编语言,熟悉8255和8253的内部结构、外部引脚及其对应功能,扬声器的工作原理。在进行软件编程的过程中,我们去图书馆查询了许多相关资料,着重看了一下不同书籍中完成同一功能的子程序,通过比较再

17、选择最合适的程序。我们还结合了大量微机原理课程学过的知识,比如8255、8253初始化,数码管显示。在硬件连接的时候要认真对待,根据引脚功能及设计需求进行连线。我们了解了各芯片功能以后,进行了硬件连线,然后结合程序进行编译。刚开始编程部分出现了问题,8个数码管不能全都显示。经过几次修改后,八个数字都能显示,只是蜂鸣器发声部分出现了问题,后来在老师的帮助下解决了这个问题。在这次课程设计中,我既运用了很多之前学到的专业知识,又学会了许多课本上学不到的东西,所以这次课程设计,我觉得是对课本知识的巩固和加强,整个设计使我加深了对课本知识的理解,同时熟练掌握了汇编语言的编辑、调试。在设计过程中,我发现带

18、着问题去设计效率很高,另外要想做好一个课程设计,就必须在设计程序之前有一个清晰的思路和一个完整的软件流程图。当然,整个课程设计也充分锻炼了我的汇编能力,设计方案制定能力,同时也加强了我的动手、思考和解决问题的能力,使我受益匪浅。虽然由于汇编水平有限,对芯片的理解不够到位,抢答器还有需要改进的地方,但我们还是很满意的。这次的课程实际给我留下了宝贵的财富,不光是简简单单的理论知识,它让我开始尝试我以前所未曾接触过的一些东西,相信这些经验会对我即将面临的毕业设计有所帮助。最后,我要感谢在整个课程设计过程中曾经给予我们帮助的同学以及给予我们精心辅导的老师,因为有你们的帮助和支持,这次的课程设计才得以圆

19、满完成。附录参考文献1.朱金钧 麻新旗,微型计算机原理及应用技术,机械工业出版社2.李顺增,微机原理及接口技术,机械工程出版社主程序清单 PORT_A EQU 0FF28HCODE SEGMENTASSUME CS:CODE ORG 11B0H START: MOV AL,90H ; MOV DX,PORT_CTL ; OUT DX,AL MOV AL,00110110B ; MOV DX,43H ; MOV AX,1000 ; MOV DX,40H MOV AL,AH LED1: MOV BL,00000001B ;设置全局变量 BLPC7端口置0 MOV DX,PORT_B ;在数码管显示

20、符号- MOV AL,10111111B MOV DX,PORT_A ;返回 LP1:数码管显示1 跳转LP9 MOV AL,11111001B JMP LP9 LP2:数码管显示2 跳转LP9 MOV AL,10100100B LP3:数码管显示3 跳转LP9 MOV AL,10110000B LP4:数码管显示4 跳转LP9 MOV AL,10011001B LP5:数码管显示5 跳转LP9 MOV AL,10010010B LP6:数码管显示6 跳转LP9 MOV AL,10000010B LP7:数码管显示7 跳转LP9 MOV AL,11111000B LP8:数码管显示8 跳转LP

21、9 MOV AL,10000000B LP9:读取按键状态 CMP BL,00000001B ;全局变量BL与1比较 相同时跳转 JE DELAY2检测按键是否清零,清零时跳DELAY1 JE DELAY1 JMP LP9 ;重复检测A口状态 DELAY1:延时 返回LED1 LPP1:LOOP LPP1 LPP2:LOOP LPP2 LPP3:LOOP LPP3 LPP4:LOOP LPP4 JMP LED1 DELAY2: ;PC7口置1,8253开始工作 MOV AL,00001111BPC7口置0,8253停止工作 返回LP9 CODE ENDS END START指导教师评语:课程设计成绩: 指导教师签名:

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2