汇编语言八路抢答器设计(共18页)

上传人:沈*** 文档编号:143345439 上传时间:2022-08-26 格式:DOC 页数:23 大小:113.50KB
收藏 版权申诉 举报 下载
汇编语言八路抢答器设计(共18页)_第1页
第1页 / 共23页
汇编语言八路抢答器设计(共18页)_第2页
第2页 / 共23页
汇编语言八路抢答器设计(共18页)_第3页
第3页 / 共23页
资源描述:

《汇编语言八路抢答器设计(共18页)》由会员分享,可在线阅读,更多相关《汇编语言八路抢答器设计(共18页)(23页珍藏版)》请在装配图网上搜索。

1、微机原理与接口技术课程设计报告2015-2016学年第二学期设计题目: _小组成员: 所学专业: 指导教师: _完成时间: _目录二、课程设计要求4八路抢答器设计一、设计目的1、掌握微机系统的开发步骤;2、掌握抢答器控制编程方法和芯片8255、8253的逻辑功能、键盘中断及使用方法和数码管的用法;3、掌握一定的汇编语言知识,培养自己的动手操作能力。4、学习程序设计的基本思路和方法。因此,本次设计要求对微机原理的理论知识,8255A,8253,键盘显示区的工作方式、工作原理熟练掌握。二、设计要求当按开始键,绿灯亮后,选手抢答,1-8号选手中先按下按键者,LED数码管显示其选手号码(后按下无效),

2、并进行声光报警(黄灯亮)提示。当按开始键未按下时,如果有选手抢答,LED数码管显示其选手号码,并进行声光报警(红灯亮)提示。三、系统功能一个具有8路抢答的抢答器,利用并行接口和开关键。键盘上数字键1-8代表抢答按钮,当某个逻辑开关闭合时(开始键按下未按起时),相当于抢答按钮按下,此时在七段数码管上将其号码显示出来,并使喇叭响一声(或者以发光二极管代替)。四、总体设计1. 基本工作原理当按开始键按下时,绿灯亮后,选手才可抢答,否则违规。若抢答成功,LED显示器显示选手号码,黄灯亮,扬声器鸣叫;若抢答违规(未按下开始键),LED显示器显示违规选手号码,红灯亮,扬声器报警。1.1可编程并行接口接口芯

3、片8255A控制字要求(1)、B口工作在方式0,做为输出端口,经驱动器1连接LED显示器(PB7PB0依次对应连接LED显示器的dp、g、f、e、d、c、b、a七段数码管管脚);(2)、C口也必须工作在方式0,高4 位做输入端口(本次设计中只用PC4、PC5,分别用于连接复位键和开始键),低4位做输出端口(PC3PC0,经驱动器2后PC1、PC2、PC3分别用于连接黄、红、绿三个发光二极管,PC0连接到8253的GATE1端,以控制方式1的计数)。1.2可编程定时器计数器8253控制字要求(1)、方式0:操作类型为先读写低字节再读写高字节,工作在方式3即方波发生器,计数格式为BCD码,计数初值

4、为0。(2)、方式1:操作类型为先读写低字节再读写高字节,工作在方式1即可重触发的单稳态触发器,计数格式为BCD码,计数初值为0。(3)、方式2:操作类型为先读写低字节再读写高字节,工作在方式3即方波发生器,计数格式为BCD码,计数初值为0。2.硬件总体设计2.1系统总成方案该竞赛抢答器所要器件:可编程并行接口接口芯片8255、可编程定时器计数器8253,三个一样的驱动器,黄、红、绿三个发光二极管,十三个电阻,一个8输入与非门,一个非门,一个扬声器,一个LED显示器,10个按键。2.2内存单元编址(1)可编程并行接口接口芯片8255A的端口地址为60H、61H、62H、63H(2) 可编程定时

5、器计数器8253的端口地址为40H、41H、42H、43H(3) 特殊键中断号为2A-36,对应地址为00A8-00DB本实验用到数字键1-8,对应的ASCII为31H-38HLED显示器1-8对应的十六进制是:06H,5BH,4FH,66H,6DH,7CH,07H,7FH3.键盘、扬声器及显示功能的定义一个开始键一个复位键,另外8个数字键用做8位选手的抢答按键。扬声器用与黄、红、绿三个发光二极管配合使用,黄灯亮扬声器鸣叫表示抢答成功,红灯亮扬声报警表示抢答违规报警,绿灯亮扬声器不鸣则表示主持人已按下开始键。LED显示器显示的内容与选手号对应,抢答成功或违规都要显示。4.原理图4.1硬件原理框

6、图按键设置82558 2 5 5 8086CPU82538 2 5 4LED灯LED显 示 模 块扬声器声光报警键盘输入 图14.2 原理连线图4.3软件总体设计主程序流程图:开始置标志位值为FFH使IF=1开放中断点亮绿灯关闭LED显示器检测开始键是否弹起检测开始键是否按下 设置抢答键中断向量并使IF置1开放中断对8259A、8255、8253进行初始化设置LED字形码初值、标志初值开始检测复位键是否按下置标志位值为FFH使IF=1开放中断点亮绿灯关闭LED显示器检测开始键是否弹起检测开始键是否按下 设置抢答键中断向量并使IF置1开放中断对8259A、8255、8253进行初始化设置LED字

7、形码初值、标志初值开始开始设置LED字形码初值、标志初值设置LED字形码初值、标志初值对8255、8253进行初始化对8259A、8255、8253进行初始化设置抢答键键盘中断向量并使IF置1开放中断设置抢答键中断向量并使IF置1开放中断检测开始键是否按下 检测开始键是否按下 NY检测开始键是否弹起检测开始键是否弹起N Y关闭LED显示器关闭LED显示器点亮绿灯点亮绿灯置标志位值为FFH使IF=1开放中断置标志位值为FFH使IF=1开放中断检测复位键是否按下检测复位键是否按下N检测复位键是否弹起 YN Y关闭LED显示器、指示灯将标志位清零,使IF=1开入中断结束图3五、硬件设计1.可编程并行

8、接口接口芯片8255A的工作方式8255A具有三个独立的输入/输出端口,每个端口的并行数据宽度为8位。三个端口分别为A端口,B端口,C端口,可分别与不同的外设进行数据交换,也可联合使用,在中断方式下实现CPU与外设间的数据传递。8255A提供方式0,方式1,方式2三种工作方式供选择。2.可编程定时器计数器8253的工作方式(1)方式0:操作类型为先读写低字节再读写高字节,工作在方式3即方波发生器,计数格式为BCD码,计数初值为0。(2)方式1:操作类型为先读写低字节再读写高字节,工作在方式1即可重触发的单稳态触发器,计数格式为BCD码,计数初值为0。(3)方式2:操作类型为先读写低字节再读写高

9、字节,工作在方式3即方波发生器,计数格式为BCD码,计数初值为0。六、软件设计DATASEGMENTBZDB 00HDATAENDSCODE SEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATA MOVDS,AX;8255A初始化 MOV AL,88H;置8255A工作方式 OUT 63H,AL XORAL,AL;B口、C口初始化 OUT 61H,AL OUT62H,AL ;8253初始化 MOV AL,37H;置8253方式0控制字 OUT 43H,AL MOV AL,00H;置8253方式0计数初值为4000 OUT40H,AL MOVAL,40H OU

10、T40H,AL MOV AL,73H;置8253 方式1控制字 OUT43H,AL MOVAL,00H;置8253方式1计数初值为3000 OUT41H,AL MOVAL,30H OUT41H,AL MOV AL,0B7H;置8253方式2控制字 OUT43H,AL MOVAL,00H OUT42H,AL MOVAL,00H;置8253方式2计数初值为0 OUT42H,AL ;中断设置 MOV AX,0000H MOV DS,AX; MOV BX,0457H MOV AL,31H MOV CX,8 LOP4:MOV BX,AL INC BX INC AL LOOP LOP4 MOV AX, O

11、FFSET KKK1 MOV 00A8,AX MOV AX,0000H MOV 00AA,AX MOV AX, OFFSET KKK2 MOV 00AC,AX MOV AX,0000H MOV 00AE,AX MOV AX, OFFSET KKK3 MOV 00B0,AX MOV AX,0000H MOV 00B2,AX MOV AX, OFFSET KKK4 MOV 00B4,AX MOV AX,0000H MOV 00B6,AX MOV AX, OFFSET KKK5 MOV 00B8,AX MOV AX,0000H MOV 00BA,AX MOV AX, OFFSET KKK6 MOV

12、00BC,AX MOV AX,0000H MOV 00BE,AX MOV AX, OFFSET KKK7 MOV 00C0,AX MOV AX,0000H MOV 00C2,AX MOV AX, OFFSET KKK8 MOV 00C4,AX MOV AX,0000H MOV 00C6,AX STI;使IF置1,开放可屏蔽中断;主循环LOPM:INAL,62H;检测开始键 TESTAL,20H;检测C口的PC5端 JZ LOP2;开始键未按下即PC5=0,则跳转检测 ;复位键LOP1:INAL,62H;检测开始键是否已经弹起,即PC5=0 TESTAL,20H JNZ LOP1;开始键没有弹起

13、再重新检测 MOVAL,00H;关LED显示器 OUT 61H,AL;送到B口 MOVAL,08H;绿灯亮 OUT62H,AL;送到C口 MOVBZ, 0FFH;置标志 STILOP2:INAL,62H;检测复位键 TESTAL,10H;检测C口的PC4端 JZLOPM ;复位键未按下即PC4=0,则跳转再检 ;测开始键LOP3:INAL,62H;检测复位键是否弹起,即PC4=0 TEST AL,10H JNZ LOP3;位键没有弹起,则重新检测 MOVAL,00H;关LED显示器、指标灯 OUT 61H,AL OUT 62H,AL MOVBZ,00H;清标志 STI JMPLOPM ;中断服

14、务子程序 KKK1:PUSHAX;保护现场 PUSHBX PUSH DX PUSHDS CLI;并使本次中断压入堆栈中的IF=0 MOV AL,06H OUT61H,AL CALL PUBLIC POPDS;恢复现场 POPDX POPBX POPAX IRET KKK2:PUSHAX;保护现场 PUSHBX PUSH DX PUSHDS CLI;并使本次中断压入堆栈中的IF=0 MOV AL,5BH OUT61H,AL CALL PUBLIC POPDS;恢复现场 POPDX POPBX POPAX IRET KKK3:PUSHAX;保护现场 PUSHBX PUSH DX PUSHDS CL

15、I;并使本次中断压入堆栈中的IF=0 MOV AL,4FH OUT61H,AL CALL PUBLIC POPDS;恢复现场 POPDX POPBX POPAX IRET KKK4:PUSHAX;保护现场 PUSHBX PUSH DX PUSHDS CLI;并使本次中断压入堆栈中的IF=0 MOV AL,66H OUT61H,AL CALL PUBLIC POPDS;恢复现场 POPDX POPBX POPAX IRET KKK5:PUSHAX;保护现场 PUSHBX PUSH DX PUSHDS CLI;并使本次中断压入堆栈中的IF=0 MOV AL,6DH OUT61H,AL CALL P

16、UBLIC POPDS;恢复现场 POPDX POPBX POPAX IRET KKK6:PUSHAX;保护现场 PUSHBX PUSH DX PUSHDS CLI;并使本次中断压入堆栈中的IF=0 MOV AL,7CH OUT61H,AL CALL PUBLIC POPDS;恢复现场 POPDX POPBX POPAX IRET KKK7:PUSHAX;保护现场 PUSHBX PUSH DX PUSHDS CLI;并使本次中断压入堆栈中的IF=0 MOV AL,07H OUT61H,AL CALL PUBLIC POPDS;恢复现场 POPDX POPBX POPAX IRET KKK8:P

17、USHAX;保护现场 PUSHBX PUSH DX PUSHDS CLI;并使本次中断压入堆栈中的IF=0 MOV AL,7FH OUT61H,AL CALL PUBLIC POPDS;恢复现场 POPDX POPBX POPAX IRET PUBLIC:TESTBZ,0FFH;判断标志位是否为FFH JZLOP5 MOVAL,00H;置8253方式2计数值 OUT42H,AL MOVAL,10H OUT42H,AL MOVAL,03H;黄灯亮,抢答成功 OUT 62H,AL JMPKKKLOP5:MOV AL,00H;置8253方式2计数值 OUT42H,AL MOV AL,20H OUT

18、42H,AL MOVAL,05H;红灯亮,抢答违规 OUT62H,AL KKK:MOVAL,20H;中断结束;防止中断重复响应 OUT20H,ALCODEENDSENDSTART七、调试过程(1)在刚开始编程时,各种功能大部分是由主程序来完成的。由于主程序过于复杂,可读性不高。使得在以后的程序的调试中遇到了很大的麻烦。后来把主程序的部分功能转化成子程序来实现,并在一些重要的地方增加了注释,使的程序的可读性大大加强。调试也变的比较简单了。到此基本解决了第一个问题。(2)在编程时,子程序的调试也是相当重要,由于子程序不可避免的使用AXBXCXDX通用寄存器一个或几个。使得原主程序中的通用寄存器的内

19、容很容易被覆盖,对子程序中所有的通用寄存器出入栈即可以避免上诉的问题,不用考虑使用的是哪几个寄存器,使用起来又比较简单方便。所以至此这个问题也已基本解决。(3)调试是一个复杂烦琐而漫长的过程。在调试的过程中一定要耐下心来去做,否则一旦出现烦躁的心里,就会事倍功半,适得其反。在本次设计中出现的主要问题即如上所述,解决方法也如上所述,在今后的软件调试过程中更应注意如上问题。八、系统操作说明比赛开始,在主持人按下开始键,绿灯亮后,选手才可开始抢答,否则违规。若选手抢答成功,LED显示器显示选手号码,扬声器鸣叫。若选手抢答违规(主持人未按开始键),LED显示器显示违规选手号码,红灯亮,扬声器报警。若系

20、统提示某号选手抢答违规,主持人仍未按开始键,此时该号选手又按下抢答键,LED显示器显示该选手的号码。本系统开机后,若主持人既未按复位键又未按开始键,此时有选手按下抢答键,系统提示红灯亮,并报警。注: 1、抢答成功,置8253方式2计数值为1000,扬声器的鸣叫声音频率为1MHz/1000=1KHz。2、抢答失败,置8253方式2计数值为2000,扬声器的鸣叫声音频率为1MHz/2000=0.5KHz。3、扬声器鸣叫或报警的时间为12s。 九、课程设计总结及体会这次实验是一个综合性实验,通过这次实验,使我们将以前我们所学习到的芯片知识综合应用到这个实验上,从结构、功能、用法上都有了全面的认识,并

21、基本达到了能够通过我们小组的讨论完成从构思到设计最后到调试的整个过程,虽然其中遇到了很多困难阻力,从开始到整个完成,但我们还是坚持了下来,所有的努力换回了成功的喜悦。下面就说说实验中的一些问题以及一些体会:实验的初期,由于对整个的电路还不能从整体把握,只能从实验书上的实验要求出发,结合查找到的资料提出解决方案。最大的体会是团队的力量,几乎所有的设计都是在我们的讨论中“诞生”的,尽管每个人的想法不一样,但聚到一起后就会激发出更多的想法,同时也可以完善不足之处。设计如何用一个开关完成这些电路的多功能同时控制,曾经因为这一部分的设计而陷入僵局,好在认真经过分析,终于完成了。这也告诉我们,一定要对自己有信心,所要做的就是坚持,成功就不会遥远。我们调试时,虽然我们有合理的布局作保证,但也遇到了一些麻烦,但最终还是解决了。十、参考文献1刘红玲,邵晓根微机原理与接口技术M.中国电力出版社,2007年第一版2冯博琴微型计算机原理及接口技术M.清华大学出版社,2007.3艾德才微型计算机原理与接口技术M.高等教育出版社,2001.4张雪兰,谭毓安汇编语言程序设计M.北京:清华大学出版社,2005.5王爽汇编语言

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!