微机原理与接口技术课程设计-智能抢答器_第1页
微机原理与接口技术课程设计-智能抢答器_第2页
微机原理与接口技术课程设计-智能抢答器_第3页
微机原理与接口技术课程设计-智能抢答器_第4页
微机原理与接口技术课程设计-智能抢答器_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、核准通过,归档资料。未经允许,请勿外传!9JWKffwvG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#19的段码;(字形码)BZ DB 00HDATAENDSSTACKSEGMENTPARASTACKSTACKDB100HDUP(?)STACKENDSCODE SEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AX;8259A初始化MOV AL,13H;初始化8259A的ICW1OUT 20H,ALMOVAL,08H;送中断类

2、型码基值,8259A的ICW2OUT21H,ALMOVAL,0DH;一般中断结束方式,8259A的ICW4OUT21H,AL;8255A初始化MOV AL,98H;置8255A工作方式OUT 83H,ALXORAL,AL;B口、C口初始化OUT 81H,ALOUT82H,AL;8253初始化MOV AL,37H;置8253通道0控制字OUT 43H,ALMOV AL,00H;置8253通道0计数初值为4000OUT40H,ALMOVAL,40HOUT40H,ALMOV AL,73H;置8253 通道1控制字OUT43H,ALMOVAL,00H;置8253通道1计数初值为3000OUT41H,A

3、LMOVAL,30HOUT41H,ALMOV AL,B7H;置8253通道2控制字OUT43H,ALMOVAL,00H;置8253通道2控制字OUT42H,ALMOVAL,00H;置8253通道2计数初值为0OUT42H,ALMOVAL,00HOUT42H,AL;中断设置MOVAH,25H;设置抢答按键中断向量MOV AL,0AH;中断类型号为入口参数MOV BX,SEG KEYINT;DS:DX指向4字节地址MOV DS,BXMOV DX,OFFSET KEYINTINT 21HSTI;使IF置1,开放可屏蔽中断;主循环LOPM:INAL,82H;检测开始键TESTAL,20H;检测C口的P

4、C5端JZ LOP2;开始键未按下即PC5=0,则跳转检测;复位键LOP1:INAL,82H;检测开始键是否已经弹起,即PC5=0TESTAL,20HJNZ LOP1;开始键没有弹起再重新检测MOVAL,00H;关LED显示器OUT 81H,AL;送到B口MOVAL,08H;绿灯亮OUT82H,AL;送到C口MOVBZ,0FFH;置标志STILOP2:INAL,82H;检测复位键TESTAL,10H;检测C口的PC4端JZLOPM ;复位键未按下即PC4=0,则跳转再检;测开始键LOP3:INAL,82H;检测复位键是否弹起,即PC4=0TEST AL,10HJNZ LOP3;位键没有弹起,则

5、重新检测MOVAL,00H;关LED显示器、指标灯OUT 81H,ALOUT 82H,ALMOVBZ,00H;清标志STIJMPLOPM;中断服务子程序CODEENDSENDSTART中断服务子程序:KEYINTPROCFARPUSHAX;保护现场PUSHBXPUSH DXPUSHDSCLI;并使本次中断压入堆栈中的IF=0;(关中断)INAL,80H;从8255的A口获取选手按键信息NOTAL;将按键字节信息取反MOVCX,8;计数8次LOP4:SHRAL , 1;获取选手号码LOOPNZ LOP4MOVAX,CX;把选手号传给AXMOVBX,OFFSETTAB;查段码(字形码)XLAT;将

6、选手号转换成TAB中对应的LED;字形码OUT81H,ALTESTBZ,OFFH;判断标志位是否为FFHJZLOP5MOVAL,00H;置8253通道2计数值OUT42H,ALMOVAL,10HOUT42H,ALMOVAL,03H;黄灯亮,抢答成功OUT 82H,ALJMPKKKLOP5:MOV AL,00H;置8253通道2计数值OUT42H,ALMOV AL,20HOUT 42H,ALMOVAL,05H;红灯亮,抢答违规OUT82H,ALKKK:MOVAL,20H;给8259发中断结束命令,写OCW2OUT20H,ALPOPAX;恢复现场POPBXPOPDXPOPDSIRETKEYINTE

7、NDP6、调试过程(1)在刚开始编程时,各种功能大部分是由主程序来完成的。由于主程序过于复杂,可读性不高。使得在以后的程序的调试中遇到了很大的麻烦。后来把主程序的部分功能转化成子程序来实现,并在一些重要的地方增加了注释,使的程序的可读性大大加强。调试也变的比较简单了。到此基本解决了第一个问题。(2)在编程时,子程序的调试也是相当重要,由于子程序不可避免的使用AXBXCXDX通用寄存器一个或几个。使得原主程序中的通用寄存器的内容很容易被覆盖,对子程序中所有的通用寄存器出入栈即可以避免上诉的问题,不用考虑使用的是哪几个寄存器,使用起来又比较简单方便。所以至此这个问题也已基本解决。(3)调试是一个复

8、杂烦琐而漫长的过程。在调试的过程中一定要耐下心来去做,否则一旦出现烦躁的心里,就会事倍功半,适得其反。在本次设计中出现的主要问题即如上所述,解决方法也如上所述,在今后的软件调试过程中更应注意如上问题。7、系统操作说明启动计算机,计算机自动为系统各芯片进行初始化,抢答器开始工作。比赛开始,在主持人按下开始键,绿灯亮后,选手才可开始抢答,否则违规。若选手抢答成功,LED显示器显示选手号码,扬声器鸣叫。若选手抢答违规(主持人未按开妈键),LED显示器显示违规选手号码,红灯亮,扬声器报警,并根据比赛规则进行对该选手进行扣分。若系统提示某号选手抢答违规,主持人仍未按开始键,此时该号选手又按下抢答键,LE

9、D显示器显示该选手的号码。本系统开机后,若主持人既未按复位键又未按开始键,此时有选手按下抢答键,系统提示红灯亮,并报警。注: 1、抢答成功,置8253通道2计数值为1000,扬声器的鸣叫声音频率为1MHz/1000=1KHz。2、抢答失败,置8253通道2计数值为2000,扬声器的鸣叫声音频率为1MHz/2000=0.5KHz。3、扬声器鸣叫或报警的时间为12s。 8、总结这次实验是一个综合性实验,通过这次实验,使我们将以前我们所学习到的芯片知识综合应用到这个实验上,从结构、功能、用法上都有了全面的认识,并基本达到了能够通过我们小组的讨论完成从构思到设计最后到调试的整个过程,虽然其中遇到了很多困难阻力,从开始到整个完成,但我们还是坚持了下来,所有的努力换回了成功的喜悦。下面就说说实验中的一些问题以及一些体会:实验的初期,由于对整个的电路还不能从整体把握,只能从实验书上的实验要求出发,结合查找到的资料提出解决方案。最大的体会是团队的力量,几乎所有的设计都是在我们的讨论中“诞生”的,尽管每个人的想法不一样,但聚到一起后就会激发出更多的想法,同时也可以完善不足之处。设计如何用一个开关完成这些电路的多功能同时控制,曾经因为这一部分的设计而陷入僵局,好在认真经过分析,终于完成了。这也告诉我们,一定要对自己有信心,所要做的就是坚持,成功就不会遥远。我们调试时,虽然我们有合理的布局作保证

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论