微机原理课程设计抢答器_第1页
微机原理课程设计抢答器_第2页
微机原理课程设计抢答器_第3页
微机原理课程设计抢答器_第4页
微机原理课程设计抢答器_第5页
已阅读5页,还剩24页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

.专业整理.西安郵電大学硬件课程设计报告题 目: 抢答器院系名称:计算机学院专业名称:班 级:学生姓名:学号(8位):.学习帮手..专业整理.指导教师:设计起止时间.学习帮手..专业整理.一.设计目的用逻辑开关模拟竞赛抢答器按钮 (共8个开关:K0~K7)当某个逻辑开关置“1”时,相当某组抢答按钮按下 。在七段数码管上将其组号 (0~7)显示出来,若为0表示无人抢答。从键盘上按空格键开始下一轮抢答 ,按<ESC>键退出程序。二.设计内容1.选用元器件:(1)、并行接口8255:通过编程来指定它要完成的功能 ,是并行数字设备与微机间的接口。8255用于输入抢答信息,并输出正确的序号给数码管 ,以及控制LED灯的亮灭。本设计中8255A的地址范围设置为1400H—1403H,其中控制口地址为1403H。而且使用了8255A的A口,B口和C口。它们均工作在方式0下,其中A口和C口为输出,B口为输入。(2)、数码管:指示先抢答的组号。(3)、二极管:指示抢答。(4)、开关:作为抢答者的按钮。2.基础实验一:8255基本输入输出能够在自行设计的接口开发板上 ,实现拨动开关控制LED的亮灭。(软件代码命名为:8255.ASM,代码要求用小写字母,且必须经过优化,源代码小于<95行,每条指令算1行,伪指令也算1行)3.基础实验二:流水灯设计实现能够在自行设计的接口开发板上 ,实现拨动不同开关控制LED灯的变化。例如,K1从左往右,K2从右往左,K3从中间向两边,K4从两边向中间依次亮灭.学习帮手..专业整理.变化,按主机键盘任意键退出。(软件代码命名为:TEST2.ASM,代码要求用小写字母,且必须经过优化,源代码小于<85行,每条指令算1行,伪指令也算1行)4.基础实验三:数码管应用能够在自行设计的接口开发板上 ,上电数码管显示0到7,实现拨动不同开关,数码管显示该开关位置值 (1-8);若同时拨动两个以上开关 ,则数码管显示“E”。(软件代码命名为:8SEGMENT.ASM,代码要求用小写字母,且必须经过优化,源代码小于<100行,每条指令算1行,伪指令也算1行)5.抢答器:用逻辑开关模拟竞赛抢答器按钮(共8个开关:K0~K7)当某个逻辑开关置“1”时,相当某组抢答按钮按下。在七段数码管上将其组号(0~7)显示出来,若为0表示无人抢答。从键盘上按空格键开始下一轮抢答,按<ESC>键退出程序。三.概要设计1.功能模块图;.学习帮手..专业整理.开始初始化否开始抢答?是否有组抢答?是判断抢答小组号?LED灯显示结束2.所用芯片8255引脚图.学习帮手..专业整理.3.抢答器电路图.学习帮手..专业整理.四.详细设计实验步骤(1)、在实验箱上连接8255的WR、CS、RD、D0-D7、A1A0以及8255输入输出端口A,B,C口连接到led灯、8段数码管、开关上。硬件电路搭建完毕。(2)、在TD—PIT上篇写汇编程序,进行测试。(3)、在Proteus上按照需求连接电路,为验证电路正确性,为其加入输入,进行模拟。模拟结果正确后,将电路图保存。(4)、制作硬件电路2、遇到的问题:(1)、在8255的使用过程中,由于对控制字的使用错误 ,导致不能从A、B口输出信息,最后通过检查,改变控制字,实现了功能。(2)、汇编语言的运用。由于平时较少使用汇编语言 ,用汇编语言编写程序方面存在不小的障碍,通过知识回顾复习,对汇编进一步的了解后,熟练运用。(3)、汇编语言要求短小精悍 ,由于程序过长,在使用jnz指令时,出现错误:RelativejumpoutofrangebyteXXXXhbytes 。通过二度跳转,解决了这个问题。五.调试情况,设计技巧及体会通过对抢答器这一课题的设计和实现 ,使我更好的将理论与实践相结合 ,我更加深入地理解了微机原理课程上讲到的并行芯片 8255的功能,以及引脚的作用,同时加深了对于该芯片的应用的认识 ,同时在试验室的环境里熟悉了汇编程序的.学习帮手..专业整理.编写过程和运行过程。更重要的是通过这个实验 ,进一步掌握了程序设计的合理结构。但要达到这样的程度其首要条件还是要学好课本上的基础知识 ,理解每一条指令的意义。让我感到很欣慰的是,与搭档的合作下高效地、顺利地完成本次实验。六.参考文献《微机接口技术及其应用》---李育贤《微型计算机原理》---王忠民七.附录:源代码(电子版)一、8255基本输入输出datasegmentdataendscodesegmentassumecs:code,ds:datastart:movdx,1403hmoval,10010000boutdx,alread:movdx,1400hinal,dxmovdx,1401houtdx,al.学习帮手..专业整理.movah,1int16hjzreadmovah,4chint21hcodeendsendstart二、流水灯设计实现datasegmentmy8255_aequ1400h;8255 的A口地址my8255_bequ 1401h ;8255的B口地址my8255_cequ1402h ;8255的C口地址my8255_modeequ1403h ;8255的控制寄存器地址mode_a db10001001b ;控制字left db0fehdataendscodesegmentassumecs:code,ds:datastart:MOVDX,1406H; 写控制口.学习帮手..专业整理.MOVAL,90HOUTDX,ALREAD:MOVDX,1400H ;写A端口IN AL,DXMOVDX,1402H ;写B端口ANDAL,01HJZ key1ANDAL,02HJZ key2ANDAL,04HJZ key3ANDAL,08HJZ key4JMPREAD.学习帮手..专业整理.key1:;for(i=0;i<5;i++);for(al=0x08;al!=0;al>>1)MOVCX,5MOVAL,08HL_TO_RCNT:PUSHCXL_TO_R:MOV CX,8OUT DX,ALSHL AL,1LOOPL_TO_RPOPCXLOOPL_TO_RCNT.学习帮手..专业整理.JMPREADkey2:;for(i=0;i<5;i++);for(al=0x01;al!=0;al<<1)MOVCX,5MOVAL,01HR_TO_LCNT:PUSHCXR_TO_L:MOV CX,8OUT DX,ALSHR AL,1LOOPR_TO_LPOPCXLOOPR_TO_LCNT.学习帮手..专业整理.JMPREADkey3:MOVCX,5M_TO_OCNT:MOV SI,4M_TO_O:MOV AL,TABLE[4-SI]OUT DX,ALDEC SIJNZ M_TO_OLOOPM_TO_OCNTJMPREADkey4:.学习帮手..专业整理.MOVCX,5CNT:MOV SI,4O_TO_M:MOVAL,TABLE[SI]OUTDX,ALDECSIJNZO_TO_MLOOPCNTJMPREADOUTDX,ALJMPREADmovax,4c00hint21h.学习帮手..专业整理.CODE ENDSendstart三、数码管应用datasegmentmy8255_aequ1400h;8255的A口地址my8255_bequ1401h;8255的B口地址my8255_cequ1402h;8255的C口地址my8255_modeequ1403h;8255的控制寄存器地址mode_adb10001001b;控制字dataendscodesegmentassumecs:code,ds:datastart:MOVDX,1406H; 写控制口MOVAL,90HOUTDX,ALREAD:MOVDX,1400H ;写A端口IN AL,DX.学习帮手..专业整理.MOVDX,1402H ;写B端口MOVBL,AL ;保存端口读到的值A1:TESTAL,01HJNZ A2OR AL,01HCMPAL,0FFHJZ key1JMPkeyEA2:MOV AL,BLTESTAL,02HJNZ A3OR AL,02HCMPAL,0FFHJZ key2.学习帮手..专业整理.JMPkeyEA3:MOV AL,BLTESTAL,04HJNZ A4OR AL,04HCMPAL,0FFHJZ key3JMPkeyEA4:MOVAL,BLTESTAL,08HJNZA5OR AL,08HCMPAL,0FFHJZ key4.学习帮手..专业整理.JMPkeyEA5:MOVAL,BLTESTAL,10HJNZA6OR AL,10HCMPAL,0FFHJZ key5JMPkeyEA6:MOVAL,BLTESTAL,20HJNZA7OR AL,20HCMPAL,0FFHJZ key6.学习帮手..专业整理.JMPkeyEA7:MOVAL,BLTESTAL,40HJNZA8OR AL,40HCMPAL,0FFHJZ key7JMPkeyEA8:MOVAL,BLTESTAL,80HJNZREADOR AL,80HCMPAL,0FFHJZ key8.学习帮手..专业整理.JMPkeyEkey1:MOV AL,TABLE[0]OUT DX,ALJMPREADkey2:MOV AL,TABLE[1]OUT DX,ALJMPREADkey3:MOV AL,TABLE[2]OUT DX,AL.学习帮手..专业整理.JMPREADkey4:MOV AL,TABLE[3]OUT DX,ALJMPREADkey5:MOV AL,TABLE[4]OUT DX,ALJMPREADkey6:MOV AL,TABLE[5]OUT DX,ALJMPREADkey7:.学习帮手..专业整理.MOV AL,TABLE[6]OUT DX,ALJMPREADkey8:MOV AL,TABLE[7]OUT DX,ALJMPREADkeyE:MOV AL,TABLE[8]OUT DX,ALJMPREADOUTDX,ALJMPREAD.学习帮手..专业整理.movax,4c00hint21hCODE ENDSendstart四、抢答器datasegmentmy8255_aequ1400h;8255的A口地址my8255_bequ1401h;8255的B口地址my8255_cequ1402h;8255的C口地址my8255_modeequ1403h;8255的控制寄存器地址mode_adb10001001b;控制字dataendscodesegmentassumecs:code,ds:datastart:MOVDX,1406H; 写控制口MOVAL,90HOUTDX,AL.学习帮手..专业整理.READ:MOVDX,1400H ;写A端口IN AL,DXMOVDX,1402H ;写B端口;倒计时过程 到了0开始抢答MOVSI,5TIME:;延时等待MOVCX,0FFFFHdelay:LOOPdelayMOV AL,TABLE[SI]OUT DX,ALDEC SIJNZ TIMEMOVBL,AL.学习帮手..专业整理.A1:TESTAL,01HJZ key1A2:TESTAL,02HJZ key2A3:TESTAL,04HCMP AL,0FFHA4:TESTAL,08HJZ key4A5:TESTAL,10HJZ key5A6:TESTAL,20H.学习帮手..专业整理.JZ key6A7:TESTAL,40HJZ key7A8:TESTAL,80HJZ key8;无人抢答MOV AL,TABLE[0]OUT DX,ALNEXT: ;等待输入空格键或者 Esc到下一轮抢答或者退出程序MOVAH,1INT 21H ;CMPAL,32 ;是否为 空格JZ READ.学习帮手..专业整理.CMPAL,27 ;是否为 EscJZ ENDkey1:MOV AL,TABLE[1]OUT DX,ALJMPNEXTkey2:MOV AL,TABLE[2]OUT DX,ALJMPNEXTkey3:MOV AL,TABLE[3]OUT DX,AL.学习

温馨提示

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

评论

0/150

提交评论