资源描述:
《《微机原理与接口技术》课程设计---抢答器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、设计题目:竞赛抢答器题目要求:开关K0-K7代表竞赛抢答按钮0-7号,当某个逻辑电平开关置“1”时,相当于某组抢答按钮按下,在七段数码管上将其组号(0-7)显示出来,并使喇叭响一下。发一个脉冲开始下一轮抢答,按其他键程序退出。同时考虑抢答允许时间,10秒内有效,10秒之后无人抢答,本次抢答作废。设计思路:抢答器设计可分为以下几部分:开始抢答信号的接收;计时器的倒计时;检查抢答按钮并显示在数码管上;任意键退出程序。对此,我们选用可编程并行接口芯片8255A,采用方式0,PA接口做输入,接收抢答信号,并用PB接口做输出通过编程将
2、抢答组号输出到数码管显示。PC接口用PC0接扬声器通过芯片控制其发声,PC7接口接收开始的脉冲信号,当接收到高电平时开始一轮抢答。定时器我们选用可编程定时/计数器8254.,采用方式0在计数结束时产生正跃变信号。我们使用计数器0,其中GATE0接8255的PC1端口,高电平时开始计数,OUT0接8255的PC6,CLK0接试验箱上的频率为1HZ的脉冲发生器,当做1秒计时信号。编程对8255A初始化后,开始时由脉冲发生器产生一个正脉冲被8255A的PC7接收,8255A则通过PC1输出高电平使定时器8254工作;这之前通过编程
3、使8254实现10秒倒计时。当8254开始计时时,8255循环检查PA端口和PC6端口,若有人抢答,则PA8端口有高电平输入,此时若PC6仍然低电平,则抢答有效,通过编好的程序判断是第几组抢答,并通过PB端口输出一段01代码使数码管显示组号,同时PC0端口产生高电平使扬声器发声;若循环时PA端口一直低电平而PC6产生高电平,说明时间已到,PC0端口产生高电平使扬声器发声。扬声器发声后,编程使8254定时2秒,并在时间到时OUT0发出高电平通知8255A使之将PC0输出变为低电平,扬声器停止发声。至此,一轮抢答结束,插入一个任
4、意键退出子程序,并等待脉冲信号开始下一辆抢答。设计电路原理图8程序流程图开始8255初始化接收脉冲信号8对8254初始化10秒计时判断时间是否超过十秒是有人抢答否否判断是第几组抢答并由数码管显示组号是否8254控制扬声器发声2秒按下任意键结束程序是程序清单MY82540EQU9840HMY82541EQU9841HMY82542EQU9842HMY8254MEQU9843HMY8255AEQU9860HMY8255BEQU9861HMY8255CEQU9862H8MY8255MEQU9863H;8254,8255宏定义DAT
5、ASEGMENTTABDB60H,0CAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH;控制七个数码管DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,MY8255M;初始化8255MOVAL,BOUTDX,ALRE:MOVDX,MY8255C;检查脉冲信号INAL,DXANDAL,B;PC口工作方式方式二JZREMOVDX,MY8254M;定义8254方式MOVAL,B;计数器0,先低八位在高八位,工作方式0,十进制计数
6、OUTDX,ALMOVDX,MY82540;定时10秒MOVAL,B;延时100OUTDX,AL8MOVDX,MY8255C;gate开启MOVAL,BOUTDX,ALJCH:MOVDX,MY8255A;检查是否有人按键INAL,DXTESTAL,B;JNZKAISHI;有则跳至kaishiTESTAL,B;JNZKAISHI;有则跳至kaishiTESTAL,B;JNZKAISHI;有则跳至kaishiTESTAL,B;JNZKAISHI;有则跳至kaishiTESTAL,B;JNZKAISHI;有则跳至kaishiTES
7、TAL,B;JNZKAISHI;有则跳至kaishiTESTAL,B;JNZKAISHI;有则跳至kaishiTESTAL,B;JNZKAISHI;有则跳至kaishiMOVDX,MY8255C;检查10秒是到INAL,DXANDAL,BJZJCHJNZLABA8KAISHI:MOVSI,0;判断哪个抢到YR:SHLAL,1INCSIJNCYRDECSIMOVAL,TAB[SI];显示抢到选手号码MOVDX,MY8255BOUTDX,ALLABA:MOVDX,MY8255M;喇叭响MOVAL,B;用PC2.3控制喇叭OUTD
8、X,ALMOVDX,MY8254M;8254计时2秒MOVAL,BOUTDX,ALMOVDX,MY82540;设置8254的计数初值MOVALBOUTDX,ALMOVDX,MY8255M;8255控制喇叭停止响MOVAL,BOUTDX,ALCALLBREAKJMPREBREAKPROCNE