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

下载本文档

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

文档简介

1、西安郵電大学硬件课程设计报告题目抢答器院系名称:计算机学院专业名称:_ 班 级: 学生姓名:_学号(8位):指导教师:_ 设计起止时间一. 设计目的用逻辑开关模拟竞赛抢答器按钮(共8个开关:K0K7)当某个逻辑开关置“ T 时,相当某组抢答按钮按下。在七段数码管上将其组号(07)显示出来,若为0 表示无人抢答。从键盘上按空格键开始下一轮抢答,按<ESC>S退出程序。二. 设计内容1.选用元器件:(1)、并行接口 8255:通过编程来指定它要完成的功能, 是并行数字设备与 微机间的接口。8255用于输入抢答信息,并输出正确的序号给数码管,以及控制 LED丁的亮灭。本设计中8255A的

2、地址范围设置为1400H 1403H,其中控制口地址 为1403H而且使用了 8255A的A 口 ,B 口和CD。它们均工作在方式0下,其中A口和 C 口为输出,B 口为输入。(2)、数码管:指示先抢答的组号。(3)、二极管:指示抢答。(4)、开关:作为抢答者的按钮。2. 基础实验一:8255基本输入输出能够在自行设计的接口开发板上,实现拨动开关控制 LED勺亮灭。(软件代 码命名为:8255.ASM,代码要求用小写字母,且必须经过优化,源代码小于 <95 行,每条指令算1行,伪指令也算1行)3. 基础实验二:流水灯设计实现能够在自行设计的接口开发板上,实现拨动不同开关控制 LED丁的变

3、化。例 如,K1从左往右,K2从右往左,K3从中间向两边,K4从两边向中间依次亮灭变化, 按主机键盘任意键退出。(软件代码命名为:TEST2.ASM代码要求用小写字母, 且必须经过优化,源代码小于<85行,每条指令算1行,伪指令也算1行)4. 基础实验三:数码管应用能够在自行设计的接口开发板上,上电数码管显示0到7,实现拨动不同开关, 数码管显示该开关位置值(1-8 );若同时拨动两个以上开关,则数码管显示“E”。(软件代码命名为:8SEGMENT.ASM弋码要求用小写字母,且必须经过优化,源 代码小于<100行,每条指令算1行,伪指令也算1行)5. 抢答器:用逻辑开关模拟竞赛抢答

4、器按钮(共8个开关:K0 K7)当某个逻辑开关置“ 1” 时,相当某组抢答按钮按下。在七段数码管上将其组号( 07)显示出来,若为 0表示无人抢答。从键盘上按空格键开始下一轮抢答,按 <ESC=键退出程序。三. 概要设计1. 功能模块图;2 所用芯片8255引脚图引脚DO - D7CSRDVRAlx AORSTPAO - PA7PBO 丹 PB7PCO - PC7引卿功走双向數据总线 片选 读输入 写输入 端口选痒 复憧验入 端口A r/oa 靖FIB TA)线 洁口 c J70线PA3 PA2 PAL FAO ROCSCKD Al_ AOFC7 PCS PC5 FC生一PCO PCI

5、PC2 PC3_ FEO PEI PE2 1234567896 7 8 9 01111243333333333222222222PA4 PAS PAG P47TrKST DO _D1D2D3D4B5D6D7Vcc PBTPB6FE5FE4PE3附录一图2 8255A引脚DIP8WJ:3.抢答器电路图 12 3 4 5 6 7 D 0 血 b © ”皿 D ® AhHMh 已 hz7'£佗C12HLED-BLUELEp-QftEiU站:ILED-HED咛:JLED-Y6LLWJt>5D0四. 详细设计1. 实验步骤、在实验箱上连接8255的WR CS

6、RD D0-D7 A1AC以及8255输入输出端口 A, B, C口连接到led灯、8段数码管、开关上。硬件电路搭建完毕。、在TD PIT上篇写汇编程序,进行测试。(3) 、在Proteus上按照需求连接电路,为验证电路正确性,为其加入输入,进行模拟。模拟结果正确后,将电路图保存。(4) 、制作硬件电路2、遇到的问题:(1) 、在8255的使用过程中,由于对控制字的使用错误,导致不能从 A、B口 输出信息,最后通过检查,改变控制字,实现了功能。(2) 、汇编语言的运用。由于平时较少使用汇编语言,用汇编语言编写程序 方面存在不小的障碍,通过知识回顾复习,对汇编进一步的了解后,熟练运用。(3) 、

7、汇编语言要求短小精悍,由于程序过长,在使用jnz指令时,出现错误:Relative jump out of ra nge byte XXXXh bytes。通过二度跳转,解决了这个问题。五. 调试情况,设计技巧及体会通过对抢答器这一课题的设计和实现,使我更好的将理论与实践相结合,我更加 深入地理解了微机原理课程上讲到的并行芯片 8255的功能,以及引脚的作用,同 时加深了对于该芯片的应用的认识,同时在试验室的环境里熟悉了汇编程序的编 写过程和运行过程。更重要的是通过这个实验,进一步掌握了程序设计的合理结 构。但要达到这样的程度其首要条件还是要学好课本上的基础知识,理解每一条指令的意义。让我感到

8、很欣慰的是,与搭档的合作下高效地、顺利地完成本次实 验。六. 参考文献微机接口技术及其应用-李育贤微型计算机原理-王忠民七. 附录:源代码(电子版)一、8255基本输入输出data segme ntdata endscode segme ntassume cs:code, ds:datastart:mov dx,1403hmov al,10010000bout dx,alread:mov dx,1400hin al,dxmov dx,14O1hout dx,almov ah,1int 16hjz readmov ah,4chint 21hcode endsend start二、流水灯设计实现d

9、ata segme ntmy8255_a equ 1400h ;8255 的 A 口地址my8255_b equ 1401h ;8255 的 B 口地址my8255_c equ 1402h ;8255 的 C 口地址 my8255_mode equ 1403h ;8255的控制寄存器地址mode_a db 10001001b; 控制字left db 0fehdata endscode segme ntassume cs:code,ds:datastart:MOV DX, 1406H ;写控制口MOV AL, 90HOUT DX, ALREAD:MOV DX, 1400H ;写 A端口IN AL

10、, DXMOV DX, 1402H ;写 B端口AND AL, 01HJZ key1AND AL, 02HJZ key2AND AL, 04HJZ key3AND AL, 08HJZ key4JMP READ keyl:;for( i = 0; i < 5; i+);for(al = 0x08; al != 0; al >> 1)MOV CX, 5MOV AL, 08HL_TO_RCNT:PUSH CXL_TO_R:MOV CX, 8OUT DX, ALSHL AL, 1LOOP L_TO_RPOP CXLOOP L_TO_RCNTJMP READ key2:;for( i

11、= 0; i < 5; i+);for(al = 0x01; al != 0; al << 1)MOV CX, 5MOV AL, 01HR_TO_LCNT:PUSH CXR_TO_L:MOV CX, 8OUT DX, ALSHR AL, 1 LOOP R_TO_LPOP CXLOOP R_TO_LCNTJMP READkey3:MOV CX, 5M_TO_OCNT:MOV SI, 4M_TO_O:MOV AL, TABLE4-SIOUT DX, ALDEC SIJNZ M_TO_OLOOP M_TO_OCNTJMP READ key4:MOV CX, 5CNT:MOV SI,

12、 4O_TO_M:MOV AL, TABLESIOUT DX, ALDEC SIJNZ O_TO_MLOOP CNTJMP READOUT DX, ALJMP READmov ax, 4c00hint 21hCODE ENDSend start 三、数码管应用data segme ntmy8255_a equ 1400h ;8255 的 A 口地址 my8255_b equ 1401h ;8255 的 B 口地址my8255_c equ 1402h ;8255 的 C 口地址 my8255_mode equ 1403h ;8255的控制寄存器地址mode_a db 10001001b; 控制字

13、data endscode segme ntassume cs:code,ds:datastart:MOV DX, 1406H ;写控制口MOV AL, 90HOUT DX, ALREAD:MOV DX, 1400H ;写 A端口IN AL, DXMOV DX, 1402H ;写 B端口MOV BL, AL ;保存端口读到的值A1:TEST AL, 01HJNZ A2OR AL, 01HCMP AL, 0FFH JZ keylJMP keyEA2:MOV AL, BLTEST AL, 02HJNZ A3JZ key2JMP keyEA3:MOV AL, BLTEST AL, 04HJNZ A4

14、OR AL, 04HCMP AL, OFFHJZ key3JMP keyEA4:MOV AL, BLTEST AL, 08HJNZ A5OR AL, 08HCMP AL, 0FFHJZ key4JMP keyEA5:MOV AL, BLTEST AL, 10HJNZ A6OR AL, 10HCMP AL, 0FFHJZ key5JMP keyEA6:MOV AL, BLTEST AL, 20HJNZ A7JZ key6JMP keyEA7:MOV AL, BLTEST AL, 40HJNZ A8OR AL, 40HCMP AL, OFFHJZ key7JMP keyEA8:MOV AL, BL

15、TEST AL, 80HJNZ READOR AL, 80HCMP AL, 0FFHJZ key8JMP keyE key1:MOV AL, TABLE0OUT DX, ALJMP READkey2:MOV AL, TABLE1OUT DX, ALJMP READkey3:OUT DX, ALJMP READ key4:MOV AL, TABLE3OUT DX, ALJMP READkey5:MOV AL, TABLE4OUT DX, ALJMP READkey6:MOV AL, TABLE 5OUT DX, ALJMP READkey7:MOV AL, TABLE 6OUT DX, ALJM

16、P READkey8:MOV AL, TABLE7OUT DX, ALJMP READkeyE:MOV AL, TABLE8OUT DX, ALJMP READOUT DX, AL; JMP READmov ax, 4cOOhint 21hCODE ENDSend start四、抢答器data segme ntmy8255_a equ 1400h ;8255 的 A 口地址 my8255_b equ 1401h ;8255 的 B 口地址my8255_c equ 1402h ;8255 的 C 口地址 my8255_mode equ 1403h ;8255 的控制寄存器地址 mode_a db

17、 10001001b; 控制字data endscode segme ntassume cs:code,ds:datastart:MOV DX, 1406H ;写控制口MOV AL, 90HOUT DX, ALREAD:MOV DX, 1400H ;写 A端口IN AL, DXMOV DX, 1402H ;写 B端口;倒计时过程 到了 0开始抢答MOV SI, 5TIME:;延时等待MOV CX, 0FFFFHdelay:LOOP delayMOV AL, TABLESIOUT DX, ALDEC SIJNZ TIMEMOV BL, ALA1:TEST AL, 01HJZ keylA2:TES

18、T AL, 02HJZ key2A3:TEST AL, 04HCMP AL, OFFHA4:TEST AL, 08HJZ key4A5:TEST AL, 10HJZ key5A6:TEST AL, 20HJZ key6A7:TEST AL, 40HJZ key7A8:TEST AL, 80HJZ key8;无人抢答MOV AL, TABLE0OUT DX, ALNEXT:;等待输入空格键或者 Esc到下一轮抢答或者退出程序MOV AH, 1INT 21H;CMP AL, 32;是否为 空格JZ READCMP AL, 27;是否为 EscJZ END keyl:MOV AL, TABLE1OUT DX, ALJMP NEXTkey2:MOV AL, TABLE2OUT DX, ALJMP NEXT

温馨提示

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

评论

0/150

提交评论