您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 汇编语言八路抢答器设计
-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五、硬件设计.............................错误!未定义书签。-3-六、软件设计.............................................8七、调试过程............................................21八、系统操作说明........................................21九、总结................................................22十、参考文献............................................22-4-八路抢答器设计一、设计目的1、掌握微机系统的开发步骤;2、掌握抢答器控制编程方法和芯片8255、8253的逻辑功能、键盘中断及使用方法和数码管的用法;3、掌握一定的汇编语言知识,培养自己的动手操作能力。4、学习程序设计的基本思路和方法。因此,本次设计要求对微机原理的理论知识,8255A,8253,键盘显示区的工作方式、工作原理熟练掌握。二、设计要求当按开始键,绿灯亮后,选手抢答,1-8号选手中先按下按键者,LED数码管显示其选手号码(后按下无效),并进行声光报警(黄灯亮)提示。当按开始键未按下时,如果有选手抢答,LED数码管显示其选手号码,并进行声光报警(红灯亮)提示。三、系统功能一个具有8路抢答的抢答器,利用并行接口和开关键。键盘上数字键1--8代表抢答按钮,当某个逻辑开关闭合时(开始键按下未按起时),相当于抢答按钮按下,此时在七段数码管上将其号码显示出来,并使喇叭响一声(或者以发光二极管代替)。四、总体设计1.基本工作原理当按开始键按下时,绿灯亮后,选手才可抢答,否则违规。若抢答成功,LED显示器显示选手号码,黄灯亮,扬声器鸣叫;若抢答违规(未按下开始键),LED显示器显示违规选手号码,红灯亮,扬声器报警。1.1可编程并行接口接口芯片8255A控制字要求(1)、B口工作在方式0,做为输出端口,经驱动器1连接LED显示器(PB7~PB0依次对应连接LED显示器的dp、g、f、e、d、c、b、a七段数码管管脚);-5-(2)、C口也必须工作在方式0,高4位做输入端口(本次设计中只用PC4、PC5,分别用于连接复位键和开始键),低4位做输出端口(PC3~PC0,经驱动器2后PC1、PC2、PC3分别用于连接黄、红、绿三个发光二极管,PC0连接到8253的GATE1端,以控制方式1的计数)。1.2可编程定时器/计数器8253控制字要求(1)、方式0:操作类型为先读写低字节再读写高字节,工作在方式3即方波发生器,计数格式为BCD码,计数初值为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)可编程定时器/计数器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位选手的抢答按键。扬声器用与黄、红、绿三个发光二极管配合使用,黄灯亮扬声器鸣叫表示抢答成功,红-6-灯亮扬声报警表示抢答违规报警,绿灯亮扬声器不鸣则表示主持人已按下开始键。LED显示器显示的内容与选手号对应,抢答成功或违规都要显示。4.原理图4.1硬件原理框图图14.2原理连线图按键设置825582558086CPU82538254LED灯LED显示模块扬声器声光报警键盘输入-7-4.3软件总体设计主程序流程图:NYNYNYNY检测开始键是否弹起置标志位值为FFH使IF=1开放中断对8255、8253进行初始化开始检测复位键是否按下检测开始键是否按下设置抢答键键盘中断向量并使IF置1开放中断关闭LED显示器设置LED字形码初值、标志初值点亮绿灯开始设置LED字形码初值、标志初值对8259A、8255、8253进行初始化设置抢答键中断向量并使IF置1开放中断检测开始键是否按下检测开始键是否弹起关闭LED显示器点亮绿灯置标志位值为FFH使IF=1开放中断检测复位键是否按下开始设置LED字形码初值、标志初值对8259A、8255、8253进行初始化设置抢答键中断向量并使IF置1开放中断检测开始键是否按下检测开始键是否弹起关闭LED显示器点亮绿灯置标志位值为FFH使IF=1开放中断检测复位键是否按下开始设置LED字形码初值、标志初值对8259A、8255、8253进行初始化设置抢答键中断向量并使IF置1开放中断检测开始键是否按下检测开始键是否弹起关闭LED显示器点亮绿灯置标志位值为FFH使IF=1开放中断关闭LED显示器、指示灯将标志位清零,使IF=1开入中断检测复位键是否弹起结束-8-图3五、硬件设计1.可编程并行接口接口芯片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:操作类型为先读写低字节再读写高字节,工作在方式3即方波发生器,计数格式为BCD码,计数初值为0。六、软件设计DATASEGMENTBZDB00HDATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATA-9-MOVDS,AX;8255A初始化MOVAL,88H;置8255A工作方式OUT63H,ALXORAL,AL;B口、C口初始化OUT61H,ALOUT62H,AL;8253初始化MOVAL,37H;置8253方式0控制字OUT43H,ALMOVAL,00H;置8253方式0计数初值为4000OUT40H,ALMOVAL,40HOUT40H,ALMOVAL,73H;置8253方式1控制字OUT43H,ALMOVAL,00H;置8253方式1计数初值为3000-10-OUT41H,ALMOVAL,30HOUT41H,ALMOVAL,0B7H;置8253方式2控制字OUT43H,ALMOVAL,00HOUT42H,ALMOVAL,00H;置8253方式2计数初值为0OUT42H,AL;中断设置MOVAX,0000HMOVDS,AX;MOVBX,0457HMOVAL,31HMOVCX,8LOP4:MOV[BX],ALINCBX-11-INCALLOOPLOP4MOVAX,OFFSETKKK1MOV[00A8],AXMOVAX,0000HMOV[00AA],AXMOVAX,OFFSETKKK2MOV[00AC],AXMOVAX,0000HMOV[00AE],AXMOVAX,OFFSETKKK3MOV[00B0],AXMOVAX,0000HMOV[00B2],AXMOVAX,OFFSETKKK4MOV[00B4],AXMOVAX,0000HMOV[00B6],AX-12-MOVAX,OFFSETKKK5MOV[00B8],AXMOVAX,0000HMOV[00BA],AXMOVAX,OFFSETKKK6MOV[00BC],AXMOVAX,0000HMOV[00BE],AXMOVAX,OFFSETKKK7MOV[00C0],AXMOVAX,0000HMOV[00C2],AXMOVAX,OFFSETKKK8MOV[00C4],AXMOVAX,0000HMOV[00C6],AXSTI;使IF置1,开放可屏蔽中断;主循环-13-LOPM:INAL,62H;检测开始键TESTAL,20H;检测C口的PC5端JZLOP2;开始键未按下即PC5=0,则跳转检测;复位键LOP1:INAL,62H;检测开始键是否已经弹起,即PC5=0TESTAL,20HJNZLOP1;开始键没有弹起再重新检测MOVAL,00H;关LED显示器OUT61H,AL;送到B口MOVAL,08H;绿灯亮OUT62H,AL;送到C口MOVBZ,0FFH;置标志STILOP2:INAL,62H;检测复位键TESTAL,10H;检测C口的PC4端JZLOPM;复位键未按下即PC4=0,则跳转再检;测开始键-14-LOP3:INAL,62H;检测复位键是否弹起,即PC4=0TESTAL,10HJNZLOP3;位键没有弹起,则重新检测MOVAL,00H;关LED显示器、指标灯OUT61H,ALOUT62H,ALMOVBZ,00H;清标志STIJMPLOPM;中断服务子程序KKK1:PUSHAX;保护现场PUSHBXPUSHDXPUSHDSCLI;并使本次中断压入堆栈中的IF=0MOVAL,06HOUT61H,ALCALLPUBLIC-15-POPDS;恢复现场POPDXPOPBXPOPAXIRETKKK2:PUSHAX;保护现场PUSHBXPUSHDXPUSHDSCLI;并使本次中断压入堆栈中的IF=0MOVAL,5BHOUT61H,A
本文标题:汇编语言八路抢答器设计
链接地址:https://www.777doc.com/doc-5841902 .html