微机原理课程设计之存储器扩展分析与设计.doc_第1页
微机原理课程设计之存储器扩展分析与设计.doc_第2页
微机原理课程设计之存储器扩展分析与设计.doc_第3页
微机原理课程设计之存储器扩展分析与设计.doc_第4页
微机原理课程设计之存储器扩展分析与设计.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

此文档收集于网络 如有侵权 请联系网站删除 此文档仅供学习与交流 学学 号 号 课课 程程 设设 计计 题题 目目存储器扩展分析与设计存储器扩展分析与设计 学学 院院自动化学院自动化学院 专专 业业自动化专业自动化专业 班班 级级 姓姓 名名 指导教师指导教师向馗向馗 副教授副教授 2013年1月10日 此文档收集于网络 如有侵权 请联系网站删除 此文档仅供学习与交流 课程设计任务书课程设计任务书 学生姓名 学生姓名 专业班级 专业班级 指导教师 指导教师 向馗向馗 副教授副教授 工作单位 工作单位 自动化学院自动化学院 题题 目目 存储器扩展分析与设计存储器扩展分析与设计 要求完成的主要任务 包括课程设计工作量及其技术要求 以及说明书撰写等具体要求 1 画出简要的硬件原理图 编写程序 2 完成以下任务 1 设计一个 EEPROM 扩展电路 由两片 2864 扩展为 16KB 容量 并编程信息检索程序 2 编程内容 在扩展的 ROM 中存入有 9 个不同的信息 编号 0 到 8 每个信息包括 40 个 字字符 从键盘接收 0 到 8 之间的一个编号 然后在屏幕上显示出相应的编号的信息内容 按 q 键退 出 3 撰写课程设计说明书 内容包括 摘要 目录 正文 参考文献 附录 程序清单 正文部 分包括 设计任务及要求 方案比较及论证 软件设计说明 软件思想 流程 源程序设计及说明等 程序调试说明和结果分析 课程设计收获及心得体会 时间安排 2012 年 12 月 30 日 12 月 31 日 查阅资料及方案设计 2013 年 01 月 01 日 01 月 05 日 编程 2013 年 01 月 06 日 01 月 08 日 调试程序 2013 年 01 月 09 日 01 月 10 日 撰写课程设计报告 指导教师签名 指导教师签名 2013 年年 1 月月 11 日日 此文档收集于网络 如有侵权 请联系网站删除 此文档仅供学习与交流 系主任 或责任教师 签名 系主任 或责任教师 签名 年年 月月 日日 目录目录 摘要 1 1 设计意义及任务 2 1 1 设计意义 2 1 2 设计任务 2 2 EEPROM 扩展电路设计 3 2 1 方案设计 3 2 2 芯片选择 3 2 3 连线说明 4 2 4 硬件电路图 5 3 程序设计 6 3 1 设计思路 6 3 2 程序框图 6 3 2 1 主程序流程图 6 3 2 2 输入程序流程图 6 3 2 3 输出程序流程图 6 3 3 设计程序一 8 3 4 设计程序二 10 3 5 调试过程 12 3 5 1 调试过程 12 3 5 2 结果记录 12 3 5 3 调试过程中遇到的问题 13 结束语 14 参考文献 15 附录一 16 此文档收集于网络 如有侵权 请联系网站删除 此文档仅供学习与交流 附录二 19 此文档收集于网络 如有侵权 请联系网站删除 此文档仅供学习与交流 摘要 存储器 Memory 是计算机系统中的记忆设备 用来存放程序和数据 有了存储器 计算机才有记忆功能 才能保证正常工作 按存储介质分可分为半导体存储器和磁表面 存储器 按存储器的读写功能分可分为只读存储器 ROM 和随机读写存储器 RAM 只读存储器 ROM 是一种对其内容只能读 不能写的存储器 随着半导体技术的发展 只读存储器也根据不同需要设计出不同的种类 其中电可擦除只读存储器 EEPROM 是一种可用电气方法在线擦除和再编程的只读存储器 它既有 RAM 可读可改写的特性 又有非易失性存储器 ROM 在掉电后仍能保持所存数据的优点 因此 EEPROM 在单片 机存储器扩展中可以作程序存储器 也可以用作数据存储器 基于 EEPROM 存储器的扩 展设计有十分重要的意义 建立一个信息检索系统 每个序号对应一个不同的信息 通过键盘输入不同的指令 序号 在电脑屏幕上会输出想要得到的信息 当超出序号范围的时候 屏幕会显示错误 程序还附加一个进一步查询的子程序 在输出信息后 可以对该信息进行查寻 当输入 信息与序号相对应的信息完全相同时 会在屏幕上显示 NO 字样 然后继续进行下一次的 提示输入 关键字关键字 存储器 EEPROM 信息检索 此文档收集于网络 如有侵权 请联系网站删除 此文档仅供学习与交流 1 设计意义及任务 1 1 设计意义 微机原理与接口技术 主要培养统筹运用课本所学的理论知识 掌握程序设计模 块化基本理论和基本方法 EEPROM 电可擦写可编程只读存储器 是用户可更改的只 读存储器 ROM 其可通过高于普通 电压的作用来擦除和重编程 重写 EEPROM 在单片机存储器扩展中可以作程序存储器 也可以用作数据存储器 建立一个信息检索 系统 然后通过键盘输入不同的指令 输出想要得到的信息 信息检索是为了满足用户 的查询需求 本次课程设计是针对我们平时学习的理论知识的检验 在实践中考察我们 的掌握能力 更好的存储器的一些问题 1 2 设计任务 要求完成的主要任务 1 画出简要的硬件原理图 编写程序 2 完成以下任务 1 设计一个 EEPROM 扩展电路 由两片 2864 扩展为 16KB 容量 并编程信息检索 程序 2 编程内容 在扩展的 ROM 中存入有 9 个不同的信息 编号 0 到 8 每个信息包括 40 个字字符 从键盘接收 0 到 8 之间的一个编号 然后在屏幕上显示出相应的编号的信 息内容 按 Q 或 q 键退出 此文档收集于网络 如有侵权 请联系网站删除 此文档仅供学习与交流 2 EEPROM 扩展电路设计 2 1 方案设计 8086 通过控制 138 译码器来实现控制 EEPROM 扩展电路 即两片 2864 芯片 通过 D0D7 数据总线来传输数据 通过地址总线来实现读写的输入输出 同时数据可以先放 在 74LS373 锁存器中存放来保护数据 硬件原理图如图 2 1 所示 图 2 1 硬件原理图 2 2 芯片选择 EEPROM 芯片在写入时能自动完成擦除 而且不需要专用的编程电源 可直接使用 5V 电源 在芯片引脚设计上 2KB 的 EEPROM2816 与相同容量的 EPROM2716 和静态 RAM6116 兼容 8KB 的 EEPROM2864A 与相同容量的 EPROM2764A 和静态 RAM6264 兼容 这些特点给硬件电路设计和调试带来了方便 常用的并行 EEPROM 芯片有 2816 2816A 2817 2817A 2864A 等 本次设计要形 成 16KB 容量 若采用 2816 2816A 2817 2817A 需用 8 块芯片 连接线麻烦 所以采 用 2864 芯片扩展 2816 2817 2864 的读出数据时间均为 250ns 写入时间为 10ms 2864 引脚图如图 2 2 所示 8086CPU 138 地 址译 码器 数据总线 D7 D0 2864 CS 地址总线 A0 A19 2864 CS 此文档收集于网络 如有侵权 请联系网站删除 此文档仅供学习与交流 图 2 2 2864 引脚图 计算芯片数量 2864 芯片容量是 64 8 8 即 8KB 所以需用两片 2864 芯片 168 2 88 K n K 2 3 连线说明 数据线 2864 的 8 位数据线直接与 8086 的数据线相连 地址线 根据选择的芯片进行地址分配 由于选择芯片分别是 8KB 这样片内寻址需要的地 址线是 13 根 因使用 138 译码器来片选 所以 8086 上的地址线作为片内寻址与 120 AA 8KB 的 ROM 的地址连接 120 AA 通过一片 74LS138 译码器来控制片选 将控制低 8 位的 2864 1 的 控制 0 YC E 1 Y 高 8 位的 2864 2 的 138 译码器的输入端连接到 8086 的地址线的高位 C E 1513 AA 地址分配表如表 2 1 所示 所以 2864 1 的地址范围为 0000H 至 1FFFH 2864 2 的地址范围为 2000H 至 3FFFH 两片加起来一共是 16KB 为了防止 CPU 在读取数据时 数据发生变化 在硬件电路上采用了 74LS373 锁存器 此文档收集于网络 如有侵权 请联系网站删除 此文档仅供学习与交流 控制线 取中的两根地址线如和分别控制两片 2864 的读写端 1916 AA 16 A 17 A 地址分配表如表 2 1 所示 表 2 1 地址分配表 15 A 14 A 13 A 1916 AA CBA 12 A 118 AA 74 AA 30 AA 00000000000000000000 00000001111111111111 00000010000000000000 00000011111111111111 2 4 硬件电路图 存储器扩展硬件电路图如图 2 3 所示 此文档收集于网络 如有侵权 请联系网站删除 此文档仅供学习与交流 图 2 3 存储器扩展硬件电路图 3 程序设计 3 1 设计思路 在存储器的数据段里分配 10 个小数据段 每个小数据段分配 40 个字符 0 8 这 9 个 信息存储信息内容 另外一个输出错误信息 Q 或 q 退出 取 MSG0 的首地址作为整个 信息段的首地址 根据输入的信号的不同 用序号乘 40 再加到首地址上找到相应序号的 信息内容 步骤为 1 开始 等待信息输入 2 输入序号 判断是否为 Q 若是转 7 否则转 3 3 判断是否满足要求的序号范围 满足转 4 否则转 6 4 根据输入的序号 计算出相关信息的物理地址 5 输出结果 跳转到 2 6 输出错误信息提示 转 2 7 结束 退出程序 3 2 程序框图 3 2 1 主程序流程图 主程序流程图如图 3 1 所示 3 2 2 输入程序流程图 输入程序流程图如图 3 2 所示 程序中需使用 DOS 调用程序来显示一串字符串 MOV AH 9 INT 21H 此文档收集于网络 如有侵权 请联系网站删除 此文档仅供学习与交流 3 2 3 输出程序流程图 输出程序流程图如图 3 3 所示 是 否 否 是 判断是否为 Q 或 q 输入序号 判断是否为 0 8 提示输入信息 图 3 1 主程序流程图 按要求显示提示语句 键盘输入序号 DOS 调用输入指令 放入指定缓冲区 结束 开始 错误信息提示 输出结果 计算出相应信息的物理地址 此文档收集于网络 如有侵权 请联系网站删除 此文档仅供学习与交流 图 3 2 输入程序流程图 图 3 3 输出程序流程图 从键盘输入序号 并运用 DOS 命令将所得结果显示在屏幕上 随后返回输入序号提 示语句 3 3 设计程序一 根据题目 尝试编写了一个简单程序 为与最后的程序作比较 将此程序列出 如 下 DATA SEGMENT n0 db 0000000000000000000000000000000000000000 n1 db 1111111111111111111111111111111111111111 n2 db 2222222222222222222222222222222222222222 n3 db 3333333333333333333333333333333333333333 n4 db 4444444444444444444444444444444444444444 n5 db 5555555555555555555555555555555555555555 n6 db 6666666666666666666666666666666666666666 n7 db 777 n8 db 888 Errmsg DB No Input 0 8 Q or q Exit 输出错误信息 DATA ENDS CODE SEGMENT ASSUME CS CODE DS DATA 段属性说明 按要求显示提示语句 显示在屏幕 DOS 调用输出指令 提示继续输入 此文档收集于网络 如有侵权 请联系网站删除 此文档仅供学习与交流 START MOVAX DATA 初始化DS MOVDS AX LOP MOVAH 01H 输入一个数字 INT21H CMPAL Q 判断是否输入字符与Q相等 相等跳到EXIT退出 JZ EXIT CMPAL q 判断是否输入字符与q相等 相等跳到EXIT退出 JZ EXIT CMPAL 0 输入不在0 8范围则退出 JB ERR 小于0跳转 CMPAL 8 JA ERR 大于8跳转 SUBAL 30H 计算字符串的地址 MOVDH 28H 28H 40 MULDH MOVBX AX 数据放入BX CALLDISP JMPLOP 输出错误信息后 继续输入序号 ERR MOVDL 0DH 输出提示错误语句 MOVAH 02 INT21H MOVDX OFFSET Errmsg MOVAH 9 INT21H MOVDL 0DH 回车和换行 MOVAH 02 INT21H JMPLOP 返回LOP继续输入序号 EXIT MOVAH 4CH 返回DOS INT21 DISP PROC NEAR MOVDL 0DH 回车换行 MOVAH 02 INT21H MOVDL 0AH 多字符输入 MOVAH 02 INT21H MOVCX 28H 28H 40 控制循环次数即输出的信息字符个数 LOP1 MOVDL BX 循环输出字符串 MOVAH 02H 此文档收集于网络 如有侵权 请联系网站删除 此文档仅供学习与交流 INT21H INCBX BX打印字符 LOOPLOP1 MOVDL 0DH MOVAH 02 INT21H MOV DL 0AH MOVAH 02 INT 21H RET DISP ENDP CODE ENDS END START 源程序结束 调试结果如图 3 4 所示 图 3 4 调试结果 出现的问题有 问题 1 开始输入序号时 只能显示在屏幕的第一个空间 问题 2 在输出没有写满 40 个字符的字符串时 输出是乱码 问题 3 按 Q 或 q 退出时 还会显示一串数字再退出 3 4 设计程序二 在程序一调试的基础上 检查程序发现一些问题 在输入不是 Q 或 q 或 0 至 8 的数 字时 没有写输出显示字符的程序 输入是应该是字符串 因为有回车 在此基础上 继续改善设计的程序 设计出程序二 即最终程序 输入一个序号 首先判断是否是 Q 或 q 如果是 则直接跳出 结束程序 如果不是 就在已设定好的信息库中检索相应信息 并将信息显示在屏幕上 紧接着跳入下一次序 此文档收集于网络 如有侵权 请联系网站删除 此文档仅供学习与交流 号输入界面 如果没有相应的序号所对应的信息 即超出序号范围会自动报错 并跳到 下一次序号输入界面 主体部分程序如下 BEGIN CALL CRLF 回车换行 LEADX MSG 输出提示语句Please input a number MOVAH 09H INT21H MOVAH 1 输入序号 INT21H CMPAL Q 判断为 Q 退出 JEEXIT CMP AL q 判断为 q 退出 JE EXIT SUBAL 0 小于0跳转ERROR JBERROR CMP AL 8 大于9跳转ERROR JA ERROR MOV BX OFFSET MSG0 取第一个字符串的首地址 MUL FORTY ADDBX AX 找到相应字符串的地址 CALL DISPLAY 调用DISPLAY子程序 定义ERROR程序 提示错误 重新要求输入序号 再次检测 ERROR CALL CRLF 回车换行 LEA DX ERRMSG 提示错误语句 MOV AH 09H INT 21H CALL CRLF JMP BEGIN 返回BEGIN程序 定义显示信息程序 将字符信息一个个输出 DISPLAY PROC NEAR CALL CRLF LEA DX MSG9 提示语The message is MOV AH 09H INT 21H MOV CX 40 设置循环次数 DISP1 MOV DL BX 输出字符串 MOV AH 2 INT 21H INC BX 此文档收集于网络 如有侵权 请联系网站删除 此文档仅供学习与交流 LOOP DISP1 CALL CRLF JMP BEGIN CALL CRLF RET 返回程序 DISPLAY ENDP 完整程序见附录一 3 5 调试过程 3 5 1 调试过程 调试过程主要由编辑 汇编 链接和执行等几个步骤组成 当编辑好汇编语言源程 序后 将其保存为 ASM 文件 再调用汇编程序对源程序进行翻译 生成 OBJ 的目标文件 在汇编过程中 源程序有错误则不能生成目标文件 经过多次修改最终生成无错误目标 文件 之后 调用链接程序 LINK 将用户目标程序和库文件进行链接 定位 生成 EXE 可执行文件 如果刚开始可执行程序运行之后没有得到预想的结果 又要重新检查 源程序的算法错误 重新编辑 汇编 链接和执行 最终得到预期的结果 3 5 2 结果记录 经过多次调试 修改 测试结果 最后基本符合要求 调试最终结果如图 3 5 所示 完整的调试见附录二 此文档收集于网络 如有侵权 请联系网站删除 此文档仅供学习与交流 图 3 5 调试最终结果 3 5 3 调试过程中遇到的问题 1 问题1 程序运行后无法生成 obj文件 首先 由于软件缺陷 要先运行一遍软件自带的程序之后 运行自己编写的程序 才能运行 另外 在程序有错误时 当错误被改正之后 即能正常生成 obj 文件 2 问题 2 开始输入序号时 只能显示在屏幕的第一个空间 检查程序发现一些问题 在输入不是Q或0至8的数字时 没有写输出显示字符的程序 输入是应该是字符串而不是字 因为需要有回车 3 问题3 选择序号后 屏幕上出现错误附加信息 这是由于 设计的是40个字符空间 当某一条序号所对应的信息达不到四十个字符 时 由于是顺序存储 计算机会自动用下一个序号所对应的信息填补上一条信息未满40 个字符的空间 保证输出一定是40个字符 于是 当调整每个信息的字符数均为40个字 符时 即将空白写上空格符 将不会再出现错误的附加信息 4 问题4 输入正确的序号后 会输出两个字符串 这是由于在显示程序的问题 在显示程序块结束的地方加入返回BEGIN语句 程序 可以运行处正确的结果 此文档收集于网络 如有侵权 请联系网站删除 此文档仅供学习与交流 结束语 通过本次课程设计让我学到了很多东西 受益匪浅 虽然刚才拿到任务 不知从何 下手 对编程也是一头雾水 但在通过看书和网上查阅了相关芯片资料 了解了一些设 计原理 对硬件设计有了一定了想法 顺利用 PROTUS 软件画出硬件电路图 编写程序 时 先简化了题目 从简单的开始写 再不断加入新的功能 逐渐完善所设计的程序 通过运用微机原理专用汇编程序软件 MF2KP 大大提高了我们的程序设计部分的效率 可见 这次课程设计 还锻炼了我们在短期内熟练掌握新软件 新知识的能力 当然 通过这次课程设计 我还发现了自己的不少问题 首先是理论知识掌握得不 够牢固 常常忘记一些知识点 对设计的过程和效率有很大影响 其次是动手能力还有 待提高 虽然这次没有操纵实物 但在计算机上编程和发现问题解决问题的能力上有所 欠缺 设计过程中不仅要求我对知识的掌握能力 还要细心和耐心 在几天的时间中 我 感到自己的知识还是比较匮乏 所以平时还是需要多锻炼自己 加深对所学的知识的了 解 本次设计涉及到了书本的绝大部分内容 将课本中所学的知识一一串联起来 考验 了自己的基础知识 也提升了学会串联知识的能力 在今后的学习中我要锻炼自己独立分析问题 解决问题的能力 端正态度努力学习 不断的完善自己 充实自己 此文档收集于网络 如有侵权 请联系网站删除 此文档仅供学习与交流 参考文献 1 彭虎 微机原理与接口技术 第三版 电子工业出版社 2011 2 张小鸣 微机原理与接口技术 第一版 清华大学出版社 2009 3 康华光 电子技术基础数字部分 第五版 高等教育出版社 2005 4 李志明 计算机原理与汇编语言程序设计 中南大学出版社 2005 5 潘名莲 微计算机原理 电子工业出版社 2004 此文档收集于网络 如有侵权 请联系网站删除 此文档仅供学习与交流 附录一 DATA SEGMENT MESS DB 0DH 0AH DB Input a number between 0 and 8 0DH 0AH DB Press Q OR q to quit 0DH 0AH DB 0DH 0AH 提示语句 FORTY DB 40 MSG0 DB I am very happy MSG1 DB Today is Monday MSG2 DB Today is Tuesday MSG3 DB Today is Wesnesday MSG4 DB Today is Thursday MSG5 DB Today is Friday MSG6 DB Today is Saturday MSG7 DB Today is Sunday MSG8 DB Today is a good day MSG DB Please input a number MSG9 DB The message is MESS1DB no CRLF1 DB 0DH 0AH ERRMSG DB error invalied parameter 错误信息 DATA ENDS STACK SEGMENT DB 256 DUP 0 256字节堆栈空间 TOS LABEL WORD 此文档收集于网络 如有侵权 请联系网站删除 此文档仅供学习与交流 STACK ENDS CODE SEGMENT MAINPROC FAR ASSUME CS CODE DS DATA SS STACK 段属性说明 START MOVAX STACK 初始化SS MOVSS AX M

温馨提示

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

评论

0/150

提交评论