8255硬件课设抢答器_第1页
8255硬件课设抢答器_第2页
8255硬件课设抢答器_第3页
8255硬件课设抢答器_第4页
8255硬件课设抢答器_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

西安郵電大学西安郵電大学 硬件课程设计报告 题题 目 目 抢抢 答答 器器 院系名称 院系名称 专业名称 专业名称 班班 级 级 学生姓名 学生姓名 学号 学号 8 位 位 指导教师 指导教师 设计起止时间 设计起止时间 1 设计目的设计目的 用逻辑开关模拟竞赛抢答器按钮 共8个开关 K0 K7 当某个逻辑开关置 1 时 相当某组抢答按钮按下 在七段数码管上将其组号 0 7 显示出来 若为0表示无人抢答 从键盘上按空格键开始下一轮抢答 按 键 退出程 序 二二 设计内容设计内容 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 表示无人抢答 从键盘上按空格键开始下一轮抢答 按 键 退出 程序 三 概要设计三 概要设计 1 功能模块图 开始 初始化 开始抢答 有组抢答 判断抢答小组号 LED 灯显示 是 否 是 否 结束 2 所用芯片 8255 引脚图 3 抢答器电路图 四 详细设计四 详细设计 1 实验步骤 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指令时 出现错 误 Relative jump out of range byte XXXXh bytes 通过二度跳转 解决了 这个问题 五 调试情况 设计技巧及体会五 调试情况 设计技巧及体会 通过对抢答器这一课题的设计和实现 使我更好的将理论与实践相结合 我更加 深入地理解了微机原理课程上讲到的并行芯片8255的功能 以及引脚的作用 同时加深了对于该芯片的应用的认识 同时在试验室的环境里熟悉了汇编程序 的编写过程和运行过程 更重要的是通过这个实验 进一步掌握了程序设计的 合理结构 但要达到这样的程度其首要条件还是要学好课本上的基础知识 理解 每一条指令的意义 让我感到很欣慰的是 与搭档的合作下高效地 顺利地完 成本次实验 六 参考文献六 参考文献 微机接口技术及其应用 李育贤 微型计算机原理 王忠民 七 附录七 附录 源代码 电子版 一 8255 基本输入输出 data segment data ends code segment assume cs code ds data start mov dx 1403h mov al 10010000b out dx al read mov dx 1400h in al dx mov dx 1401h out dx al mov ah 1 int 16h jz read mov ah 4ch int 21h code ends end start 二 流水灯设计实现 data segment my8255 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 0feh data ends code segment assume cs code ds data start MOV DX 1406H 写控制口 MOV AL 90H OUT DX AL READ MOV DX 1400H 写 A 端口 IN AL DX MOV DX 1402H 写 B 端口 AND AL 01H JZ key1 AND AL 02H JZ key2 AND AL 04H JZ key3 AND AL 08H JZ key4 JMP READ key1 for i 0 i 1 MOV CX 5 MOV AL 08H L TO RCNT PUSH CX L TO R MOV CX 8 OUT DX AL SHL AL 1 LOOP L TO R POP CX LOOP L TO RCNT JMP READ key2 for i 0 i 5 i for al 0 x01 al 0 al 1 MOV CX 5 MOV AL 01H R TO LCNT PUSH CX R TO L MOV CX 8 OUT DX AL SHR AL 1 LOOP R TO L POP CX LOOP R TO LCNT JMP READ key3 MOV CX 5 M TO OCNT MOV SI 4 M TO O MOV AL TABLE 4 SI OUT DX AL DEC SI JNZ M TO O LOOP M TO OCNT JMP READ key4 MOV CX 5 CNT MOV SI 4 O TO M MOV AL TABLE SI OUT DX AL DEC SI JNZ O TO M LOOP CNT JMP READ OUT DX AL JMP READ mov ax 4c00h int 21h CODEENDS end start 三 数码管应用 data segment my8255 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 控制字 data ends code segment assume cs code ds data start MOV DX 1406H 写控制口 MOV AL 90H OUT DX AL READ MOV DX 1400H 写 A 端口 IN AL DX MOV DX 1402H 写 B 端口 MOV BL AL 保存端口读到的值 A1 TEST AL 01H JNZ A2 OR AL 01H CMP AL 0FFH JZ key1 JMP keyE A2 MOV AL BL TEST AL 02H JNZ A3 OR AL 02H CMP AL 0FFH JZ key2 JMP keyE A3 MOV AL BL TEST AL 04H JNZ A4 OR AL 04H CMP AL 0FFH JZ key3 JMP keyE A4 MOV AL BL TEST AL 08H JNZ A5 OR AL 08H CMP AL 0FFH JZ key4 JMP keyE A5 MOV AL BL TEST AL 10H JNZ A6 OR AL 10H CMP AL 0FFH JZ key5 JMP keyE A6 MOV AL BL TEST AL 20H JNZ A7 OR AL 20H CMP AL 0FFH JZ key6 JMP keyE A7 MOV AL BL TEST AL 40H JNZ A8 OR AL 40H CMP AL 0FFH JZ key7 JMP keyE A8 MOV AL BL TEST AL 80H JNZ READ OR AL 80H CMP AL 0FFH JZ key8 JMP keyE key1 MOV AL TABLE 0 OUT DX AL JMP READ key2 MOV AL TABLE 1 OUT DX AL JMP READ key3 MOV AL TABLE 2 OUT DX AL JMP READ key4 MOV AL TABLE 3 OUT DX AL JMP READ key5 MOV AL TABLE 4 OUT DX AL JMP READ key6 MOV AL TABLE 5 OUT DX AL JMP READ key7 MOV AL TABLE 6 OUT DX AL JMP READ key8 MOV AL TABLE 7 OUT DX AL JMP READ keyE MOV AL TABLE 8 OUT DX AL JMP READ OUT DX AL JMP READ mov ax 4c00h int 21h CODEENDS end start 四 抢答器 data segment my8255 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 控制字 data ends code segment assume cs code ds data start MOV DX 1406H 写控制口 MOV AL 90H OUT DX AL READ MOV DX 1400H 写 A 端口 IN AL DX MOV DX 1402H 写 B 端口 倒计时过程 到了 0 开始抢答 MOV SI 5 TIME 延时等待 MOV CX 0FFFFH delay LOOP delay MOV AL TABLE SI OUT DX AL DEC SI JNZ TIME MOV BL AL A1 TEST AL 01H JZ key1 A2 TEST AL 02H JZ key2 A3 TEST AL 04H CMP AL 0FFH A4 TEST AL 08H JZ key4 A5 TEST AL 10H JZ key5 A6 TEST AL 20H JZ key6 A7 TEST AL 40H JZ key7 A8 TEST AL 80H JZ key8 无人抢答 MOV AL TABLE 0 OUT DX AL NEXT 等待输入空格键或者 Esc 到下一轮抢答或者退出程序 MOV AH 1 INT 21H CMP AL 32 是否为 空格 JZ READ CMP AL 27 是否为 Esc JZ END key1 MOV AL TABLE 1 OUT DX AL JMP NEXT key2 MOV AL TABLE 2 OUT DX AL JMP NEXT key3 MOV AL TABLE 3 OU

温馨提示

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

最新文档

评论

0/150

提交评论