收藏 分享(赏)

汇编语言八路抢答器设计.doc

上传人:HR专家 文档编号:7266923 上传时间:2019-05-11 格式:DOC 页数:23 大小:133KB
下载 相关 举报
汇编语言八路抢答器设计.doc_第1页
第1页 / 共23页
汇编语言八路抢答器设计.doc_第2页
第2页 / 共23页
汇编语言八路抢答器设计.doc_第3页
第3页 / 共23页
汇编语言八路抢答器设计.doc_第4页
第4页 / 共23页
汇编语言八路抢答器设计.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、- 1 -微机原理与接口技术课程设计报告2015-2016 学年第二学期设计题目: _小组成员: 所学专业: 指导教师: _完成时间: _- 2 -目 录一、课程设计目的 4二、课程设计要求 4三、系统功能 4四、总体设计 41.基本工作原理 41.1 可编程并行接口接口芯片 8255A 控制字要求 41.2 可编程定时器计数器 8253 控制字要求 .52.硬件总体设计 52.1 系统总成方案 52.2 内存单元编址 53.键盘、扬声器及显示功能的定义 54.原理图 54.1 硬件原理框图 64.2 原理连线图 65 软件总体设计 .6五、硬件设计 8- 3 -六、软件设计 8七、调试过程

2、.21八、系统操作说明 .21九、总结 .22十、参考文献 .22- 4 -八路抢答器设计一、设计目的1、掌握微机系统的开发步骤;2、掌握抢答器控制编程方法和芯片 8255、8253 的逻辑功能、键盘中断及使用方法和数码管的用法;3、掌握一定的汇编语言知识,培养自己的动手操作能力。4、学习程序设计的基本思路和方法。因此,本次设计要求对微机原理的理论知识,8255A,8253,键盘显示区的工作方式、工作原理熟练掌握。二、设计要求当按开始键,绿灯亮后,选手抢答,1-8 号选手中先按下按键者,LED 数码管显示其选手号码(后按下无效),并进行声光报警(黄灯亮)提示。当按开始键未按下时,如果有选手抢答

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

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

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

6、址(1)可编程并行接口接口芯片 8255A 的端口地址为60H、61H、62H、63H(2)可编程定时器计数器 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.键盘、扬声器及显示功能的定义- 6 -一个开始键一个复位键,另外 8 个数字键用做 8 位选手的抢答按键。扬声器用与黄、红、绿三个发光二极管配合使用,黄灯亮扬声器鸣叫表示抢答成功,红灯亮扬声报警表示

7、抢答违规报警,绿灯亮扬声器不鸣则表示主持人已按下开始键。LED 显示器显示的内容与选手号对应,抢答成功或违规都要显示。4.原理图4.1 硬件原理框图图 14.2 原理连线图按键设置82558 2 5 58086CPU82538 2 5 4LED 灯LED 显 示 模 块扬声器声光报警键盘输入- 7 -4.3 软件总体设计主程序流程图:NYNY检测开始键是否弹起对 8255、8253 进行初始化开始检测开始键是否按下 设置抢答键键盘中断向量并使 IF 置 1 开放中断关闭 LED 显示器设置 LED 字形码初值、标志初值开始设置 LED 字形码初值、标志初值对 8259A、8255、8253 进

8、行初始化设置抢答键中断向量并使 IF置 1 开放中断检测开始键是否按下 检测开始键是否弹起关闭 显示器开始设置 字形码初值、标志初值对 、 、 进行初始化设置抢答键中断向量并使置 开放中断检测开始键是否按下检测开始键是否弹起关闭 显示器点亮绿灯置标志位值为 FFH 使 IF=1开放中断检测复位键是否按下开始设置 字形码初值、标志初值对 、 、 进行初始化设置抢答键中断向量并使置 开放中断检测开始键是否按下检测开始键是否弹起关闭 显示器点亮绿灯置标志位值为 使开放中断- 8 -NYNY图 3五、硬件设计1.可编程并行接口接口芯片 8255A 的工作方式8255A 具有三个独立的输入/输出端口,每

9、个端口的并行数据宽度为 8 位。三个端口分别为 A 端口,B 端口,C 端口,可分别与不同的外设进行数据交换,也可联合使用,在中断方式下实现 CPU 与外设间的数据传递。8255A 提供方式0,方式 1,方式 2 三种工作方式供选择。2.可编程定时器计数器 8253 的工作方式(1)方式 0:操作类型为先读写低字节再读写高字节,工作在方式 3 即方波发生器,计数格式为 BCD 码,计数初值为 0。(2)方式 1:操作类型为先读写低字节再读写高字节,工作在方式 1 即可重触发的单稳态触发器,计数格式为 BCD 码,计数初值为 0。置标志位值为 FFH 使 IF=1开放中断检测复位键是否按下点亮绿

10、灯点亮绿灯置标志位值为 使开放中断检测复位键是否按下关闭 LED 显示器、指示灯将标志位清零,使 IF=1 开入中断检测复位键是否弹起结束- 9 -(3)方式 2:操作类型为先读写低字节再读写高字节,工作在方式 3 即方波发生器,计数格式为 BCD 码,计数初值为 0。六、软件设计DATA SEGMENTBZ DB 00HDATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART: MOV AX,DATAMOV DS,AX;8255A 初始化MOV AL,88H ;置 8255A 工作方式OUT 63H,ALXOR AL,AL ;B 口、C 口初始化OUT

11、 61H,ALOUT62H,AL;8253 初始化- 10 -MOV AL,37H ;置 8253 方式 0 控制字OUT 43H,ALMOV AL,00H ;置 8253 方式 0 计数初值为 4000OUT40H,ALMOV AL,40HOUT40H,ALMOV AL,73H ;置 8253 方式 1 控制字OUT43H,ALMOV AL,00H ;置 8253 方式 1 计数初值为 3000OUT41H,ALMOV AL,30HOUT41H,ALMOV AL,0B7H ;置 8253 方式 2 控制字OUT43H,ALMOV AL,00HOUT42H,ALMOV AL,00H ;置 82

12、53 方式 2 计数初值为 0- 11 -OUT42H,AL;中断设置MOV AX,0000HMOV DS,AX;MOV BX,0457HMOV AL,31HMOV CX,8LOP4:MOV BX,ALINC BXINC ALLOOP LOP4MOV AX, OFFSET KKK1MOV 00A8,AXMOV AX,0000HMOV 00AA,AXMOV AX, OFFSET KKK2MOV 00AC,AXMOV AX,0000H- 12 -MOV 00AE,AXMOV AX, OFFSET KKK3MOV 00B0,AXMOV AX,0000HMOV 00B2,AXMOV AX, OFFSE

13、T KKK4MOV 00B4,AXMOV AX,0000HMOV 00B6,AXMOV AX, OFFSET KKK5MOV 00B8,AXMOV AX,0000HMOV 00BA,AXMOV AX, OFFSET KKK6MOV 00BC,AXMOV AX,0000HMOV 00BE,AXMOV AX, OFFSET KKK7- 13 -MOV 00C0,AXMOV AX,0000HMOV 00C2,AXMOV AX, OFFSET KKK8MOV 00C4,AXMOV AX,0000HMOV 00C6,AXSTI ;使 IF 置 1,开放可屏蔽中断;主循环LOPM: IN AL,62H ;

14、检测开始键TEST AL,20H ;检测 C 口的 PC5 端JZ LOP2 ;开始键未按下即 PC5=0,则跳转检测;复位键LOP1: IN AL,62H ;检测开始键是否已经弹起 ,即 PC5=0TEST AL,20HJNZ LOP1 ;开始键没有弹起再重新检测MOV AL,00H ;关 LED 显示器OUT 61H,AL ;送到 B 口- 14 -MOV AL,08H ;绿灯亮OUT62H,AL ;送到 C 口MOV BZ, 0FFH ;置标志STILOP2: IN AL,62H ;检测复位键TEST AL,10H ;检测 C 口的 PC4 端JZ LOPM ;复位键未按下即 PC4=0

15、,则跳转再检;测开始键LOP3: IN AL,62H ;检测复位键是否弹起 ,即 PC4=0TEST AL,10HJNZ LOP3 ;位键没有弹起,则重新检测MOV AL,00H ;关 LED 显示器、指标灯OUT 61H,ALOUT 62H,ALMOV BZ,00H ;清标志STIJMP LOPM- 15 -;中断服务子程序KKK1:PUSH AX ;保护现场PUSH BXPUSH DXPUSH DSCLI ;并使本次中断压入堆栈中的 IF=0MOV AL,06HOUT61H,ALCALL PUBLICPOP DS ;恢复现场POP DXPOP BXPOP AXIRETKKK2:PUSH A

16、X ;保护现场PUSH BXPUSH DXPUSH DS- 16 -CLI ;并使本次中断压入堆栈中的 IF=0MOV AL,5BHOUT61H,ALCALL PUBLICPOP DS ;恢复现场POP DXPOP BXPOP AXIRETKKK3:PUSH AX ;保护现场PUSH BXPUSH DXPUSH DSCLI ;并使本次中断压入堆栈中的 IF=0MOV AL,4FHOUT61H,ALCALL PUBLICPOP DS ;恢复现场- 17 -POP DXPOP BXPOP AXIRETKKK4:PUSH AX ;保护现场PUSH BXPUSH DXPUSH DSCLI ;并使本次中

17、断压入堆栈中的 IF=0MOV AL,66HOUT61H,ALCALL PUBLICPOP DS ;恢复现场POP DXPOP BXPOP AXIRETKKK5:PUSH AX ;保护现场- 18 -PUSH BXPUSH DXPUSH DSCLI ;并使本次中断压入堆栈中的 IF=0MOV AL,6DHOUT61H,ALCALL PUBLICPOP DS ;恢复现场POP DXPOP BXPOP AXIRETKKK6:PUSH AX ;保护现场PUSH BXPUSH DXPUSH DSCLI ;并使本次中断压入堆栈中的 IF=0MOV AL,7CH- 19 -OUT61H,ALCALL PU

18、BLICPOP DS ;恢复现场POP DXPOP BXPOP AXIRETKKK7:PUSH AX ;保护现场PUSH BXPUSH DXPUSH DSCLI ;并使本次中断压入堆栈中的 IF=0MOV AL,07HOUT61H,ALCALL PUBLICPOP DS ;恢复现场POP DXPOP BX- 20 -POP AXIRETKKK8:PUSH AX ;保护现场PUSH BXPUSH DXPUSH DSCLI ;并使本次中断压入堆栈中的 IF=0MOV AL,7FHOUT61H,ALCALL PUBLICPOP DS ;恢复现场POP DXPOP BXPOP AXIRETPUBLIC

19、:TEST BZ,0FFH ;判断标志位是否为 FFHJZ LOP5MOV AL,00H ;置 8253 方式 2 计数值- 21 -OUT42H,ALMOV AL,10HOUT42H,ALMOV AL,03H ;黄灯亮,抢答成功OUT 62H,ALJMP KKKLOP5: MOV AL,00H ;置 8253 方式 2 计数值OUT42H,ALMOV AL,20HOUT 42H,ALMOV AL,05H ;红灯亮,抢答违规OUT62H,ALKKK: MOV AL,20H ;中断结束;防止中断重复响应OUT20H,ALCODE ENDSEND START七、调试过程(1)在刚开始编程时,各种功

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

21、中一定要耐下心来去做,否则一旦出现烦躁的心里,就会事倍功半,适得其反。在本次设计中出现的主要问题即如上所述,解决方法也如上所述,在今后的软件调试过程中更应注意如上问题。八、系统操作说明比赛开始,在主持人按下开始键,绿灯亮后,选手才可开始抢答,否则违规。若选手抢答成功,LED 显示器显示选手号码,扬声器鸣叫。若选手抢答违规(主持人未按开始键) ,LED 显示器显示违规选手号码,红灯亮,扬声器报警。若系统提示某号选手抢答违规,主持人仍未按开始键,此时该号选手又按下抢答键,LED 显示器显示该选手的号码。本系统开机后,若主持人既未按复位键又未按开始键,此时有选手按下抢答键,系统提示红灯亮,并报警。注

22、: 1、抢答成功,置 8253 方式 2 计数值为 1000,扬声器的鸣叫声音频率为1MHz/1000=1KHz。2、抢答失败,置 8253 方式 2 计数值为 2000,扬声器的鸣叫声音频率为1MHz/2000=0.5KHz。3、扬声器鸣叫或报警的时间为 12s。- 23 -九、课程设计总结及体会这次实验是一个综合性实验,通过这次实验,使我们将以前我们所学习到的芯片知识综合应用到这个实验上,从结构、功能、用法上都有了全面的认识,并基本达到了能够通过我们小组的讨论完成从构思到设计最后到调试的整个过程,虽然其中遇到了很多困难阻力,从开始到整个完成,但我们还是坚持了下来,所有的努力换回了成功的喜悦

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报