资源描述:
《【实验三【竞赛抢答器】》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验五竞赛抢答器自动化11351011高沛强实验目的1、了解微机化竞赛抢答器的基本原理2、进一步学习使用并行接口、计数器,并学会编写中断服务程序。实验原理手动中断后通过读取逻辑电平开关K0~K6的值,通过右移位操作计算出是第几组抢答按钮,将该数字显示到数码管上,通过8253芯片计时五秒之后熄灭数码管。实验内容1、硬件连接:逻辑电平开关K0~K6接到8255的PC0~PC6,8255的PA0~PA6接到数码管的a~g,8253的GATE0和GATE1接高电平,CLK0接1MHz脉冲,CLK1接OUT0,OUT1接8255的PC7。2、由裁判直接手动产生单
2、脉冲作为中断请求信号,接到中断请求后,显示信息“answerthequestion!!”进入抢答。3、在中断服务程序中检测竞赛抢答按钮0~6号,当某个逻辑电平开关置“1”时,相当于某一组抢答按钮按下。在七段数码管上将其组号(0~6号),并使微机扬声器响一下,同时开始计时,五秒后微机扬声器再响一下,并熄灭数码管。4、要能够产生十次中断。实验流程主程序流程图中断服务程序流程图实验代码datasegmentio8253c0equ280hio8253c1equ281hio8253conequ283hio8255aequ288hio8255cequ28ahio8
3、255conequ28bh;写控制字地址端口leddb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;段码msgdb0dh,0ah,'answerthequestion!!',0dh,0ah,'$'msg1db0dh,0ah,'5secondisover!!!',0dh,0ah,'$'dataendscodesegmentassumecs:code,ds:datastart:movax,csmovds,axmovdx,io8255con;设8255为A口输出,C口输入movax,89houtdx,almovdx,offs
4、etint3movax,250bhint21h;设置IRQ3的中断矢量inal,21h;读取中断屏蔽寄存器andal,0f7h;开放IRQ3中断out21h,almovcx,10;记抢答循环次数为10次sti;开放中断ll:jmpll;进入死循环int3:movax,datamovds,axmovdx,offsetmsg;显示每次中断的提示信息movah,09hint21hmovbx,offsetled;使BX指向段码管首址sss:movdx,io8255cinal,dx;从8255的C口输入数据andal,7fh;将最高位置0oral,al;比较是否
5、为0jesss;若为0,则表明无键按下,转ssspushcxmovcl,0ffh;cl作计数器,初值为-1rr:shral,1inccljncrr;计算组号,判断进位,不为1则继续循环moval,clxlat;查表popcxmovdx,io8255a;显示组号outdx,alcalldelay;调用延时程序leadx,msg1movah,09int21hmovdx,io8255a;熄灭数码管moval,0outdx,alleadx,msg1movah,09int21hinal,21horal,08h;关闭IRQ3中断out21h,alstimovah,
6、4ch;返回DOSint21hnext:moval,20hout20h,al;发EOI结束中断iretdelayprocnear;延时5s子程序pushdxmovdx,io8253con;设8253计数器0为方式3moval,00110110boutdx,almovdx,io8253c0movax,1000;写入8253计数器0初值10000outdx,almoval,ahoutdx,almovdx,io8253conmoval,10110000b;设8253计数器1为方式0outdx,almovdx,io8253c1movax,5000;写入计数器初
7、值500outdx,almoval,ahoutdx,alcheck:movdx,io8255cinal,dx;查询8255的PC7是否为高电平andal,80hjzcheck;若不是则继续查询popdxret;子程序返回exit:movah,4chint21hdelayendpcodeendsendstart实验结果手动中断后,屏幕显示“answerthequestion!!”信息,提示用户抢答。当有用户抢答后,数码管上显示组号五秒后熄灭,程序显示“5secondisover!”。十次中断后,程序结束。实验总结本实验学会新内容——8259芯片,学会了设
8、置可编程中断控制和工作方式,以及设置中断服务程序地址、开放中断,并学会编写中断服务程序。实验过