微机原理接口技术课程设计竞赛抢答器(5页).doc
-微机原理接口技术课程设计竞赛抢答器-第 5 页微 机 原 理 与 接 口 技 术课程设计报告姓 名: 小白学 号: 姓 名: 小黑学 号: 指导教师: 白加黑日 期: 2010.12竞赛抢答器设计一、 设计内容开关K0-K7代表竞赛抢答按钮0-7号,当某个逻辑电平开关置“1”时,相当于某组抢答按钮按下,在七段数码管上将其组号(0-7)显示出来,并使喇叭响一下。发一个脉冲开始下一轮抢答,按其他键程序退出。同时考虑抢答允许时间,10秒内有效,10秒之后无人抢答,本次抢答作废。二、 设计思路:抢答器设计可分为以下几部分:开始抢答信号的接收;计时器的倒计时;检查抢答按钮并显示在数码管上;任意键退出程序。对此,我们选用可编程并行接口芯片8255A,采用方式0,PA接口做输入,接收抢答信号,并用PB接口做输出通过编程将抢答组号输出到数码管显示。PC接口用PC0接扬声器通过芯片控制其发声,PC7接口接收开始的脉冲信号,当接收到高电平时开始一轮抢答。定时器我们选用可编程定时/计数器8254.,采用方式0在计数结束时产生正跃变信号。我们使用计数器0,其中GATE0接8255的PC1端口,高电平时开始计数,OUT0接8255的PC6,CLK0接试验箱上的频率为1HZ的脉冲发生器,当做1秒计时信号。编程对8255A初始化后,开始时由脉冲发生器产生一个正脉冲被8255A的PC7接收,8255A则通过PC1输出高电平使定时器8254工作;这之前通过编程使8254实现10秒倒计时。当8254开始计时时,8255循环检查PA端口和PC6端口,若有人抢答,则PA 端口有高电平输入,此时若PC6仍然低电平,则抢答有效,通过编好的程序判断是第几组抢答,并通过PB端口输出一段01代码使数码管显示组号,同时PC0端口产生高电平使扬声器发声;若循环时PA端口一直低电平而PC6产生高电平,说明时间已到,PC0端口产生高电平使扬声器发声。扬声器发声后,编程使8254定时2秒,并在时间到时OUT0发出高电平通知8255A使之将PC0输出变为低电平,扬声器停止发声。至此,一轮抢答结束,插入一个任意键退出子程序,并等待脉冲信号开始下一辆抢答。三、 电路设计原理图四、 程序流程图开始8255初始化接收脉冲信号对8254初始化10秒计时判断是否到时是有人抢答否否判断是第几组抢答并由数码管显示是扬声器发声2秒按下任意键否结束是五、 源代码及注释M8254C0 EQU 0C840HM8254M EQU 0C843HM8255A EQU 0C860HM8255B EQU 0C861HM8255C EQU 0C862HM8255M EQU 0C863HDATA SEGMENT TAB DB 60H,0CAH,0F2H,66H,0B6H,0BEH,0E0H,0FEHDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV DX,M8255M ;初始化8255 MOV AL,98H OUT DX,AL BEGIN:MOV DX,M8255C ;检查脉冲信号 IN AL,DX AND AL,80H JZ BEGIN MOV DX,M8254M ;定义8254方式 MOV AL,31H OUT DX,AL MOV DX,M8254C0 ;定时10秒 MOV AL,0AH OUT DX,ALMOV DX,M8255C ;gate开启MOV AL,BOUT DX,AL JCH: MOV DX,M8255A ;检查是否有人按键 IN AL,DX TEST AL,B JNZ KAISHI ;有则跳至kaishi MOV DX,M8255C ;检查10秒是否到 IN AL,DX AND AL,40H JZ JCH JNZ LABAKAISHI:MOV SI,0 ;判断哪个抢到 YR: SHL AL,1 INC SI JNC YR DEC SI MOV AL,TABSI ;显示 MOV DX,M8255B OUT DX,AL LABA:MOV DX,M8255M ;喇叭响 MOV AL,01H OUT DX,AL MOV DX,M8254M ;8254计时2秒 MOV AL,31H OUT DX,AL MOV DX,M8254C0 MOV AL,03H OUT DX,AL MOV DX,M8255M ;8255控制喇叭停止响 MOV AL,00H OUT DX,AL CALL BREAK JMP BEGIN BREAK PROC NEAR ;任意键退出 MOV AH,06H MOV DX,0FFH INT 21H JE RETURN MOV AX,4C00H INT 21HRETURN:RETBREAK ENDPCODE ENDS END START六、 实验日志小白的实验日志: 周一:第一天集中上机,我们确定了微机原理和接口技术设计的课题为竞赛抢答器。经过讨论,我们决定使用选用可编程并行接口芯片8255A和可编程计时/定时器8254作为主要元器件,并理出了设计思路,画出了硬件搭接草图。 周二:方案通过后,我开始设计软件编程。通过测试程序我们测出了8255和8254的接口地址。通过查阅资料,我们完成了最开始的抢答器程序设计。 周三、周四:搭接硬件并调试程序。发现了一些问题如数码管不能正常显示,计时和抢答循环有若干逻辑错误,我随之对程序进行改动。 周五:最后一天的调试,抢答器的功能还是不能很好体现。检查程序,不能发现明显错误。 小黑的实验日志:周一:第一天集中上机,我们确定了微机原理和接口技术设计的课题为竞赛抢答器。经过讨论,我们决定使用选用可编程并行接口芯片8255A和可编程计时/定时器8254作为主要元器件,并理出了设计思路,画出了硬件搭接草图。 周二:方案通过后,我开始设计硬件搭线。通过测试程序我们测出了8255和8254的接口地址。通过查阅资料,我们完成了最开始的抢答器程序设计。 周三、周四:搭接硬件并调试程序。发现了一些问题如数码管不能正常显示,计时和抢答循环有若干逻辑错误,我随之检查电路是否有问题。 周五:最后一天的调试,抢答器的功能还是不能很好体现。检查硬件,不能发现明显错误。七、 收获 通过这次为期一周的微机原理和接口技术课程设计,扎实了我们的理论,培养了我们的实际动手能力。一周的设计,让我们更深入的理解了选用可编程并行接口芯片8255A和可编程计时/定时器8254的工作原理和工作方式,知道了数码管的显示方法,了解了计算机主板构成、接口技术及其应用编程方法。这次设计也培养了我们的团队协作精神以及做事认真细致有耐心的品质,锻炼了我们分析问题、解决问题的综合能力,为我们今后的学习和工作奠定了基础,让我们受益匪浅。