计算机原理与应用实验报告.doc_第1页
计算机原理与应用实验报告.doc_第2页
计算机原理与应用实验报告.doc_第3页
计算机原理与应用实验报告.doc_第4页
计算机原理与应用实验报告.doc_第5页
免费预览已结束,剩余39页可下载查看

下载本文档

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

文档简介

计算机原理与应用实验计算机原理与应用实验 课程课程 实实 验验 报报 告告 水电与数字化工程学院水电与数字化工程学院 20112011 级级 姓姓 名 名 学学 号 号 专业班号 专业班号 日日 期 期 20142014 年年 1 1 月月 7 7 日日 实验成绩 实验成绩 评评 阅阅 人 人 电气学科大类 计算机原理与应用实验 实验报告书 水电与数字化工程学院 I 实验评分表实验评分表 实验名称实验分值评分 基本实验 实验一 EMU8086 软件安装与使用 实验二 汇编语言实例讲解与程序编写 实验三 基于 Proteus 软件 8086 最小系统硬 件设计 实验四 基于 8086 最小系统的汇编程序设 计 实验五 8255 并行接口实验 演示实验 实验名称实验分值评分 设计性实验 实验六 工频测频接口电路设计与实现 教师评价意见总分 100 计算机原理与应用实验 实验报告书 水电与数字化工程学院 II 目目 录录 实验评分表实验评分表 I 实验一 实验一 EMU8086 软件安装与使用软件安装与使用 1 一 实验目的 1 二 实验设备 1 三 实验任务 1 四 实验原理 1 五 实验内容 1 六 实验过程及结果 2 七 实验感想 4 八 参考文献 4 实验二 实验二 汇编语言实例讲解与程序编写汇编语言实例讲解与程序编写 5 一 实验目的 5 二 实验设备 5 三 实验任务 5 四 实验原理 5 五 实验内容 6 六 实验过程及结果 6 七 实验感想 12 八 参考文献 12 实验三 基于实验三 基于 PROTEUS 软件的软件的 8086 最小系统硬件设计最小系统硬件设计 14 一 实验目的 14 二 实验设备 14 三 实验任务 14 四 实验原理 14 五 实验内容 15 六 实验过程及结果 16 七 实验感想 18 八 参考文献 19 实验四 基于实验四 基于 8086 最小系统的汇编程序设计最小系统的汇编程序设计 20 一 实验目的 20 二 实验设备 20 三 实验任务 20 四 实验原理 20 五 实验内容 21 六 实验过程及结果 21 计算机原理与应用实验 实验报告书 水电与数字化工程学院 III 七 实验感想 24 八 参考文献 24 实验五 实验五 8255 并行接口实验 演示实验 并行接口实验 演示实验 25 一 实验目的 25 二 实验设备 25 三 实验任务 25 四 实验原理 25 五 实验内容 26 六 实验过程及结果 27 七 实验感想 28 八 参考文献 28 实验六 工频测频接口电路设计与实现实验六 工频测频接口电路设计与实现 30 一 实验目的 30 二 实验设备 30 三 实验任务 30 四 实验原理 30 五 实验内容 33 六 实验过程及结果 34 七 实验感想 39 八 参考文献 40 计算机原理与应用实验 实验报告书 水电与数字化工程学院 1 实验一 实验一 EMU8086 软件安装与使用软件安装与使用 一一 实验目的实验目的 通过本实验学习 EMU8086 软件的安装与使用 二 二 实验设备实验设备 PC 微机一台 Emu8086 仿真软件 三 三 实验任务实验任务 1 安装 Emu8086 仿真软件 2 利用 Emu8086 仿真软件编程 四 实验实验原理原理 Emu8086 仿真软件就是在 Windows 下的一种仿真软件 它可以仿真模拟 8086 的程序运行 并且可以直观地观察 CPU 寄存器的变化情况 Emu8086 Microprocessor Emulator 结合了一个先进的原始编辑器 组译器 反组译器 具除错功能的软件模拟工具 虚拟 PC 还有一个循序渐进的指导 工具 这对刚开始学组合语言的人会是一个很有用的工具 它会在模拟器中一 步一步的编译程序码并执行 视觉化的工作环境让它更容易使用 你可以在程 序执行当中检视暂存器 旗标以及记忆体 模拟器会在虚拟 PC 中执行程序 这可以隔绝你的程序 避免它去存取实际硬体 像硬碟 记忆体 而在虚拟机 器上执行组合程序 这可以让除错变得更加容易 这个软件完全相容於 Intel 的下一代处理器 包括了 Pentium II Pentium 4 而相信 Pentium 5 也会继续 支援 8086 的 这种现象让 8086 程序码的可携性相当高 它可以同时在老机 器以及现代的电脑是执行 8086 的另一个优势是它的指令比较小且相当容易学 习 五 实验内容实验内容 安装 Emu8086 仿真软件 熟悉菜单栏 工具栏的每个选项的作用 按照操 作流程完成程序的编译 链接 并对编辑窗口中所编写的简单汇编程序进行仿 计算机原理与应用实验 实验报告书 水电与数字化工程学院 2 真调试 最后能够输出正确结果 六六 实验 实验过程及结果过程及结果 1 EMU8086 安装 2 EMU8086 使用 安装完毕 得到窗口如下图 1 1 图 1 1 Emu 进入主界面 3 操作流程 1 file new empty workplace 编辑程序 如下图 1 2 图 1 2 Emu 程序编辑界面 计算机原理与应用实验 实验报告书 水电与数字化工程学院 3 2 file save 保存程序 asm 格式 完成程序的编辑 3 assmbler compile 完成程序的编译和链接 如下图 1 3 图 1 3 Emu 程序编译完成界面 4 emulator show emulator 开始仿真调试 如下图 1 4 图 1 4 Emu 程序仿真调试界面 5 左键点击 run 运行程序 结果如图 1 5 计算机原理与应用实验 实验报告书 水电与数字化工程学院 4 图 1 5 Emu 程序仿真调试结果界面 七七 实验 实验感想感想 通过本次实验学习 我对 Emu8086 仿真软件有了一定了解 比如其中 new 可以新建一个程序 code examples 汇编程序例子 有如 hello world calc 等很多实例 quick start tutor 启动帮助文 recent files 打开最近打开 过的文件等等 一般汇编环境是 masm 软件环境 具体可以到学校华中大在线上下载 但 是 MASM 环境是一种在 DOS 下的编译环境 虽然有 debug 程序的支持 但对 于我们这种初学者来说调试观察十分不方便 而且信息又不直观 此外 我们 还可以从中可以观摩别人的写法来安排自己的程序 也可以从中学习各种实用 的伪指令及程序结构 八 八 参考文献参考文献 1 李继灿 谭浩强 微机原理与接口技术 北京 清华大学出版社 2 王爽 汇编语言 北京 清华大学出版社 3 沈美明 温冬婵 汇编语言程序设计 北京 机械工业出版社 4 许立梓 微型计算机原理及应用 北京 机械工业出版社 计算机原理与应用实验 实验报告书 水电与数字化工程学院 5 实验二 实验二 汇编语言实例讲解与程序编写汇编语言实例讲解与程序编写 一 实验目的一 实验目的 学习所给的汇编程序示例 自己能亲自动手编写基本的汇编程序 二 实验设备二 实验设备 PC 微机一台 Emu8086 仿真软件 三 实验三 实验任务任务 1 熟练掌握基本的汇编指令意义 2 正确理解所给示例中每行代码的意义及作用 3 按要求编写所给的 3 个题目的代码并正确显示结果 四四 实验原理实验原理 汇编程序规范编程 使用汇编编程采用下面的编程规范能够极大简化编程 过程 提高编程效率 同时能够保证功能的顺利实现 下文是规范化汇编程序 的基本框架 一段典型的汇编程序主要包括数据段及其定义 堆栈段及其定义 最后一部分是代码的编写 DATAS SEGMENT 此处输入数据段代码 DATAS ENDS STACKS SEGMENT 此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS CODES DS DATAS SS STACKS START MOV AX DATAS MOV DS AX 此处输入代码段代码 MOV AH 4CH INT 21H CODES ENDS END START 计算机原理与应用实验 实验报告书 水电与数字化工程学院 6 以下以 hello 为例 介绍简单汇编程序的基本内容 aa SEGMENT 数据段 1 xx DB Hello 定义源串 aa ENDS bb SEGMENT 数据段 2 yy DB 6 dup 定义目的缓冲区 bb ENDS cc SEGMENT 代码段 ASSUME CS cc DS aa ES bb 指示指令中标号 变量所在段 start CLD 设置传送方向 MOV AX aa DS SI 源串首地址 MOV DS AX LEA SI xx MOV AX SEG yy ES DI 目的首地址 MOV ES AX MOV DI OFFSET yy MOV CX 6 CX 串的长度 REP MOVSB 串传送 MOV AH 4CH 调用 4CH 系统功能 返回 DOS INT 21H cc ENDS END start 指示程序结束和程序入口 五五 实验 实验内容内容 1 十进制数的显示 就是显示十进制数字 number 2 编程计算 w1 w2 w3 w4 25000 w5 w6 w1 到 w5 可以在数据定义时自行赋值 为使程序简单 最好使得最终 w6 的结果为整数 3 将 BL 寄存器的内容按二进制形式显示出来 提示 把要显示的数字存入 bl 寄存器 最后的输出结果就是 3 的二进制 比如待显示数据为 7 则其二进制显示结果为 0000 0111 计算机原理与应用实验 实验报告书 水电与数字化工程学院 7 六六 实验 实验过程及结果过程及结果 1 十进制数的显示 就是显示十进制数字 number 设要显示的数为 2013 若需修改只需改变数据段定义内容 NUM 范围为 0 65535 代码如下 DATA SEGMENT 定义数据段 NUM DW 2013 定义常量 NUM 2013 STR DB display the decimal number DATA ENDS 数据段结束 STACK SEGMENT STACK STACK 定义堆栈段 DB 100 DUP 0 堆栈段分配 100 个字节的空间 并用 0 进行初始化 STACK ENDS 堆栈段结束 CODE SEGMENT 定义代码段 ASSUME CS CODE DS DATA SS STACK 段名 CODE DATA STACK 分别对应段寄存器 CS DS SS STA PROC FAR 主程序开始 PUSH DS 把 DS 入栈 保存当前 psp 信息 XOR AX AX 把 AX 清零 PUSH AX AX 入栈 以上三行为标准程序前奏 把 psp 的起 点地址压入堆栈 MOV AX DATA MOV DS AX 给 DS 赋值 LEA DX STR 取 STR 的偏移地址送 DX MOV AH 9 INT 21H 以上两行为 9 号功能调用 显示 display the decimal number MOV AX NUM 把常量 NUM 放入 AX MOV BX 10 把 10 送入 BX 作为除数备用 XOR CX CX 把 CX 清零 CAL XOR DX DX 清 DX DIV BX NUM 10 商送 AX 余数送 DX PUSH DX DX 入栈 INC CX 记录十进制位数 CMP AX 0 JNZ CAL 商不为零则转 CAL 继续计算 否则跳出循环执行下 一指令 计算机原理与应用实验 实验报告书 水电与数字化工程学院 8 DISP POP DX 十进制数从高位到低位依次退栈 OR DL 30H 转化为相应 ASCII 码 MOV AH 02H INT 21H 以上两行为 2 号功能调用 显示 DL 中的字符 LOOP DISP CX 1 并判断 若 CX 为 0 则跳出循环 否则转 DISP 继续显示 MOV AH 4CH INT 21H 以上两行返回 DOS STA ENDP DOS 下的子程序结束 CODE ENDS 代码段结束 END STA 汇编程序结束 运行结果如下图 图 2 1 例一结果显示 2 编程计算 w1 w2 w3 w4 25000 w5 w6 w1 到 w5 可以在数据定义时自行赋值 为使程序简单 最好使得最终 w6 的结果为整数 DATA SEGMENT 定义数据段 W1 DW 25000 分别定义各常量 W2 DW 50 W3 DW 800 W4 DW 5000 W5 DW 10 计算机原理与应用实验 实验报告书 水电与数字化工程学院 9 W6 DW 2 DUP 为变量 W6 保留两个字单元 内容未定 STR1 DB calculation W6 W1 W2 W3 W4 25000 W5 STR2 DB 0AH result W6 ENT DB 0DH 0AH 以上三行分配了若干单元并初始化 留待显示时用 DATA ENDS 数据段结束 CODE SEGMENT 定义代码段 ASSUME CS CODE DS DATA 段名 CODE 和 DATA 分别对应段寄存器 CS DS START 主程序开始 MOV AX DATA MOV DS AX 给 DS 赋值 MOV AX W2 W2 送 AX IMUL W3 计算 W2 W3 低八位存于 AX 高八位存于 CX MOV BX AX W2 W3 的低八位送 BX MOV CX DX W2 W3 的高八位送 BX MOV AX W4 W4 送 AX CWD 对 W4 进行位扩展 将其最高位扩展到 DX ADD BX AX ADC CX DX 计算 W2 W3 W4 SUB BX 25000 SBB CX 0 计算 W2 W3 W4 25000 MOV AX W1 W1 送 AX CWD 对 W1 进行位扩展 将其最高位扩展到 DX SUB AX BX SBB DX CX 计算 W1 W2 W3 W4 25000 IDIV W5 计算 W1 W2 W3 W4 25000 W5 MOV W6 AX 计算结果的商存在 W6 中 MOV W6 2 DX 计算结果的余数存在相应位置 MOV BX 10 以下为显示计算结果 把 10 送入 BX 作为除数备用 XOR CX CX 把 CX 清零 CAL XOR DX DX 把 DX 清零 DIV BX NUM 10 商送 AX 余数送 DX PUSH DX DX 入栈 INC CX CX CX 1 记录十进制的位数 CMP AX 0 JNZ CAL 商不为零则转 CAL 继续计算 否则跳出循环执行下一指 令 LEA DX STR1 取 STR1 的偏移地址送 DX MOV AH 9 INT 21H 以上两行为 9 号功能调用 显示 calculation W6 W1 W2 W3 W4 25000 W5 LEA DX ENT 取 ENT 的偏移地址送 DX MOV AH 9 计算机原理与应用实验 实验报告书 水电与数字化工程学院 10 INT 21H 9 号功能调用 回车并换行 LEA DX STR2 取 STR2 的偏移地址送 DX MOV AH 9 INT 21H 以上两行为 9 号功能调用 换行并显示 result W6 DISP POP DX 十进制数从高位到低位依次退栈 OR DL 30H 转化为相应 ASCII 码 MOV AH 02H INT 21H 2 号功能调用 显示 DL 中的字符 LOOP DISP CX CX 1 并判断 若 CX 为 0 则跳出循环 否则转 DISP 继续显示 MOV AH 4CH INT 21H 返回 DOS CODE ENDS 代码段结束 END START 汇编程序结束 计算结果如下图 图 2 2 例二结果显示 3 将 BL 寄存器的内容按二进制形式显示出来 提示 把要显示的数字存入 bl 寄存器 最后的输出结果就是 3 的二进制 比如待显示数据为 7 则其二进制显示结果为 0000 0111 从键盘键入要转换的数字 再将其用二进制形式表示出来 代码如下 DATA SEGMENT 定义数据段 STR1 DB please enter the decimal number STR2 DB 0DH 0AH the binary number 计算机原理与应用实验 实验报告书 水电与数字化工程学院 11 BUFFER DB 0DH 10 DUP ENT DB 0DH 0AH 以上 4 行分配了若干单元并初始化 留待显示时用 DATA ENDS 数据段结束 CODE SEGMENT 定义代码段 ASSUME CS CODE DS DATA 段名 CODE 和 DATA 分别对应段寄存器 CS 和 DS START 主程序开始 MOV AX DATA MOV DS AX 给 DS 赋值 LEA DX STR1 取 STR1 的偏移地址送 DX MOV AH 9 INT 21H 以上两行为 9 号功能调用 显示 please enter the decimal number LEA DX BUFFER 取 BUFFER 的偏移地址 DX MOV AH 10 INT 21H 以上两行为 10 号功能调用 键入要显示的字符串 LEA DX ENT 取 STR1 的偏移地址 DX MOV AH 9 INT 21H 以上两行为 9 号功能调用 回车并换行 LEA DX STR2 取 STR2 的偏移地址 DX MOV AH 9 INT 21H 以上两行为 9 号功能调用 显示 the binary number MOV CL BUFFER 1 记录实际输入的字符数 回车符除外 LEA SI BUFFER 2 把要输出的数送 BL XOR AX AX 首先把 AX 清 0 TRANS 以下 6 行为将输入的 ASCII 码转换成数字 MOV DL 10 MUL DL AL 乘以 10 高四位送 AH 低四位送 AL AND SI 0FH ASCII 码转换成数字 ADD AL SI 数字累加 INC SI 偏移量 1 指向下一单元 LOOP TRANS 字符数 CX 1 并判断 若 CX 为 0 表示转换完毕 跳 出循环 否则转 TRANS 继续转换 MOV BL AL 转换完毕 将数字存入 BL MOV CX 8 BL 共八位 故要显示一个八位二进制数 BINY 以下 11 行用于转换成二进制 MOV DL 1 字符 1 送 DL TEST BL 10000000B 测试 BL 的最高位 JNZ YI 若最高位为 1 则转 YI 否则即为 0 顺序执行下一条指 令 MOV DL 0 字符 0 送 DL YI MOV AH 2 计算机原理与应用实验 实验报告书 水电与数字化工程学院 12 INT 21H 以上 2 行为 2 号调用功能 显示 DL 中的字符 SHL BL 1 BL 左移一位 LOOP BINY 字符数 CX 1 并判断 若 CX 为 0 表示转换完毕 跳出 循环 否则转 BINY 继续转换 MOV DL B 字符 B 送 DL INT 21H 2 号功能调用 在数字末尾加上 B 表明是二进制数 MOV AH 4CH INT 21H 返回 DOS CODE ENDS 代码段结束 END START 汇编程序结束 输入 23 回车 得到结果如下图 图 2 3 例三结果显示 七七 实验感想 实验感想 这门实验课的过程中 在做这个实验以前 我都会花大量时间弄透该次实 验所需要的理论知识 在网上查找实验中会遇到的命令意义 而在每次实验预 习过程中 我总是带着大量的问题 在每一次老师的悉心讲解后 我基本能做 到在做实验前对所做实验的内容 理论知识 程序原理全面掌握 我自认为做到了实验前认真预习 做到胸有成竹 实验过程中勤于思考 努力发掘每个实验现象背后的理论知识点 实验后努力分析 对于那些与预期 不符的实验结果 我和我的队友都会尽力寻找原因 尽管在许多计算机的问题 上我们力不从心 但是大部分的问题我们都能在实验中得到有效处理 计算机原理与应用实验 实验报告书 水电与数字化工程学院 13 八八 参考文献 参考文献 1 李继灿 谭浩强 微机原理与接口技术 北京 清华大学出版社 2 王爽 汇编语言 北京 清华大学出版社 3 沈美明 温冬婵 汇编语言程序设计 北京 机械工业出版社 4 许立梓 微型计算机原理及应用 北京 机械工业出版社 计算机原理与应用实验 实验报告书 水电与数字化工程学院 14 实验三实验三 基于 基于 Proteus 软件的软件的 8086 最小系统硬件设计最小系统硬件设计 一 实验目的一 实验目的 1 学习使用 Proteus 进行 8086 微机系统仿真设计的方法 2 学习 8086CPU 以及外部电路的接法和应用原理 二 实验设备二 实验设备 PC 微机一台 Proteus 软件 emu8086 编码器软件 三 实验三 实验任务任务 1 正确安装 Proteus 软件 2 使用 Proteus 绘制 38 译码电路 并通过通断开关 观察二极管导通情 况 3 在 Proteus 中绘制 8086 最小系统电路 并加载程序 观察运行结果 四四 实验 实验原理原理 本实验首先学习 Proteus 软件的安装 并通过绘制简单的 38 译码器电路掌 握该软件的使用方法 然后利用该软件设计完成一个 8086 最小模式系统原理图 并加载指定程序实现 LED 显示开关状态 设计 8086 最小模式系统包括 8086CPU 地址锁存器 数据总线收发器 时钟发生器等 利用 74LS373 芯片进 行扩展外接开关和 LED 发光二极管 Proteus 软件是英国 Lab Center Electronics 公司出版的 EDA 工具软件 它不仅具有其它 EDA 工具软件的仿真功能 还能仿真单片机及外围器件 它是 目前比较好的仿真单片机及外围器件的工具 它受到单片机爱好者 从事单片 机教学的教师 致力于单片机开发应用的科技工作者的青睐 本次试验将以该 软件为基础分别绘制 38 译码器电路图和 8086 最小系统电路图 74LS138 译码器有三个输入端 A0 A1 A2 和八个输出端 Y0 Y7 当输入 计算机原理与应用实验 实验报告书 水电与数字化工程学院 15 端 A0 A1 A2 的编码为 000 时 译码器输出为 Y0 0 而 Y1 Y7 1 即 Q0 对 应于 A0 A1 A2 为 000 状态 低电平有效 A0 A1 A2 的另外 7 种组合见后 面的真值表 S1 S2 S3 为使能控制端 起到控制译码器是否能进行译码的作 用 只有 S1 为高电平 S2 S3 均为低电平时 才能进行译码 否则不论输入 为何值 每个输出端均为 1 8086 最小模式即系统中只有 8086 或 8088 一个微处理器 最小模式是 单处理器系统 系统中所需要的控制信号全部由 8086 或 8088 CPU 本身直接 提供 该最小系统电路图 微处理器级总线带负载的能力弱 加之部分引脚采用复用引脚 所以在微 机系统设计时 不能直接与存储器 I O 接口连接 地址锁存 对存储器读写或对 I O 设备输入输出的总线周期中 要求地址 信息一直保持有效 因此总线控制逻辑必须完成对分时复用的地址 数据总线中 地址信息的锁存 以实现地址总线和数据总线的分离 74ls373 数据缓冲 三态输出的总线收发器 总线控制逻辑中的驱动器和 接收器是为了提高总线的驱动电流的能力和承受电容负载的能力 74ls245 他们都必须要求具有三态功能 最小系统原理图 图 3 1 8086 最小模式系统原理图 计算机原理与应用实验 实验报告书 水电与数字化工程学院 16 五五 实验 实验内容内容 实验中 我首先学习了 Proteus 软件的安装 并通过绘制简单的 38 译码器 电路掌握该软件的使用方法 然后利用该软件设计完成一个 8086 最小模式系统 原理图并加载指定程序实现 LED 显示开关状态 设计 8086 最小模式系统包括 8086CPU 地址锁存器 数据总线收发器 时钟发生器等 利用 74LS373 芯片进 行扩展外接开关和 LED 发光二极管 六六 实验 实验过程及结果过程及结果 1 下载 Proteus 软件 并根据安装步骤安装软件 运行 setup proteus 75 exe 安装中途会弹出添加 Key 的对话框 这个 Key 文件在文件夹 Proteus 7 1 5 SP3 v2 1 3 破解文件 里面 选中 Grassington North Yorkshire lxk 添加后单击 install 再 close 然后 运行破解文件夹里面另一个程序 LXK Proteus 7 5 SP3 v2 1 3 exe 找到 Proteus 安装路径 点 Updata 出现 successfull 的字样便更新成功 8086 的设置 双击 8086 弹出设置窗口 按下图设置即可 图 3 2 8086 处理器参数设置 2 学习 Proteus 软件使用方法并绘制 38 译码器电路 所用元器件 38 译码器 电源 地线 上拉电阻 LED 发光二极管 计算机原理与应用实验 实验报告书 水电与数字化工程学院 17 图 3 3 38 译码电路图 该电路图初始状态下开关全部断开 此时 A B C 引脚全部为低电压 编 码为 000 通过查询 38 译码器真值表可知此时输出端的编码为 01111111 即输 出端引脚 Y0 为低电压 Y1 Y7 为高电压 因此与 Y0 接口相连的 LED 发光二 极管导通发光 与实验结果相符 开关 1 闭合时 A B C 引脚编码为 100 输 出端编码为 10111111 即输出端引脚 Y1 为低电压 Y0 Y2 Y7 为高电压 因此与 Y1 接口相连的 LED 发光二极管导通发光 通过控制三个开关的开关与 闭合 控制 8 个 LED 发光二极管的发光 且结果与 38 译码器的真值表相符 3 设计绘制 8086 最小模式系统图并加载指定程序实现 LED 显示开关状态 所用元器件 8086 处理器 74LS373 锁存器 74LS245 数据缓冲 74LS138 三八译码器 6264 8Kx8 RAM 8255A IO 扩展 ADC08098 位 AD 转换器 BUTTON按键 DIPSW拨码开关 7SEG BCD数码管 LED RED 发光二极管 计算机原理与应用实验 实验报告书 水电与数字化工程学院 18 SWITCH开关 PULLUP上拉电阻 逻辑器件 AND OR NOT XOR NAND NOR 图 3 4 8086 最小模式系统电路图 该 8086 最小系统过控制开关的闭合与断开来控制 LED 发光二极管的发光与 熄灭 其中开关的输入物理地址为 4000H LED 发光二极管的输出物理地址为 4002H 双击 8086 处理器芯片加载指定的代码运行 电路图无报错 依次闭合 第 1 8 个开关 与之对应的第 1 8 个 LED 依次发光 闭合第 1 8 个开关 与之 对应的第 1 8 个 LED 依次熄灭 由此得出实验结果与预测结果完全相符 试验 成功 七七 实验感想 实验感想 8086 最小系统硬件设计试验是我在学习微机原理课程中的一个不可多得的 实践机会 对整个课程的学习起着重要作用 这次试验中用到的 Proteus 软件 是世界上著名的 EDA 工具 仿真软件 从原理图布图 代码调试到单片机与外 围电路协同仿真 一键切换到 PCB 设计 真正实现了从概念到产品的完整设计 通过本次试验使我们学会了使用该软件的安装并初步掌握了它的使用方法 积 累的一定的使用经验 为以后电子系统的开发与设计打下了基础 通过绘制 38 译码器电路 我对该电路有了直观的认识 对它的功能及使用方法影响深刻 计算机原理与应用实验 实验报告书 水电与数字化工程学院 19 在设计 8086 最小系统过程中 我对这门课程 八 八 参考文献参考文献 1 李继灿 谭浩强 微机原理与接口技术 北京 清华大学出版社 2 王爽 汇编语言 北京 清华大学出版社 3 沈美明 温冬婵 汇编语言程序设计 北京 机械工业出版社 4 许立梓 微型计算机原理及应用 北京 机械工业出版社 计算机原理与应用实验 实验报告书 水电与数字化工程学院 20 实验四 基于实验四 基于 8086 最小系统的汇编程序设计最小系统的汇编程序设计 一 实验目的一 实验目的 1 学习使用 Proteus 进行 8086 微机系统仿真设计的方法 2 学习 8086CPU 以及外部电路的接法和应用原理 3 编程实现电路功能 学习汇编程序的编辑 编译 链接 执行的全过程 二 实验设备二 实验设备 PC 微机一台 Proteus 软件 emu8086 编码器软件 三 实验三 实验任务任务 1 研究所给实验材料中的 8086 最小系统电路原理图 了解其基本工作原 理 包括工作时序 地址译码 相关逻辑器件的配合等 2 根据电路的工作原理 编写程序 实现由矩阵按键控制 BCD 数码管显示 0 F 的基本功能 四四 实验原理 实验原理 该 8086 最小系统的输入端物理地址为 4004H 输出端地址为 4000H 该系 统不断扫描输入端 4 4 矩阵开关的状态 当发现 4 4 矩阵开关有开关闭合 将 该开关所代表的横纵坐标传给 8086CUP 进行计算 求出其代表的键值 并将该 值传给输出端通过 BCD 数码管显示输出该值 在键盘中按键数量较多时 为了减少 I O 口的占用 通常将按键排列成矩 阵形式 在矩阵式键盘中 每条水平线和垂直线在交叉处不直接连通 而是通 过一个按键加以连接 这样 一个端口 如 P1 口 就可以构成 4 4 16 个按键 比之直接将端口线用于键盘多出了一倍 而且线数越多 区别越明显 比如再 多加一条线就可以构成 20 键的键盘 而直接用端口线则只能多出一键 9 键 由此可见 在需要的键数比较多时 采用矩阵法来做键盘是合理的 计算机原理与应用实验 实验报告书 水电与数字化工程学院 21 1 判断键盘中有无键按下 将全部行线 Y0 Y3 置低电平 然后检测列线 的状态 只要有一列的电平为低 则表示键盘中有键被按下 而且闭合的键位 于低电平线与 4 根行线相交叉的 4 个按键之中 若所有列线均为高电平 则键 盘中无键按下 2 判断闭合键所在的位置 在确认有键按下后 即可进入确定具体闭合 键的过程 其方法是 依次将行线置为低电平 即在置某根行线为低电平时 其它线为高电平 在确定某根行线位置为低电平后 再逐行检测各列线的电平 状态 若某列为低 则该列线与置为低电平的行线交叉处的按键就是闭合的按 键 电路如图 4 1 所示 AD 0 AD 1 AD 2 AD 3 AD 4 AD 5 AD 6 AD 7 A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 9 AD 8 AD 9 AD 10 AD 11 AD 12 AD 13 AD 14 AD 15A15 A 8 A10 A12 A13 A14 A11 AD 0 AD 1 AD 2 AD 3 AD 4 AD 5 AD 6 AD 8 AD 9 AD 10 AD 11 AD 12 AD 13 AD 14 AD 15 AD 7 D 15 D 1 D 2 D 3 D 4 D 5 D 6 D 7 D 8 D 9 D 10 D 11 D 12 D 13 D 14 D 0 A16 A17 A18 A19 D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 A 1 A 2 A14 AH 16 AH 17 AH 18 AH 19AH 18 AH 19 D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 AD 0 15 R EAD Y 22 IN T R 18 N M I 17 R ESE T 21 C LK 19 M N M X 33 H O LD G T 1 31 H LD A G T 0 30 A 16 19 M IO S0 28 ALE Q S 0 25 D T R S1 27 IN T A Q S1 24 T EST 23 BH E 34 D EN S 2 26 R D 32 WR LO C K 29 U 1 8086 D 0 3 Q 0 2 D 1 4 Q 1 5 D 2 7 Q 2 6 D 3 8 Q 3 9 D 4 13 Q 4 12 D 5 14 Q 5 15 D 6 17 Q 6 16 D 7 18 Q 7 19 O E 1 LE 11 U 2 74LS373 AD 0 15 A 0 15 R D W R M IO D 0 15 D 0 3 Q 0 2 D 1 4 Q 1 5 D 2 7 Q 2 6 D 3 8 Q 3 9 D 4 13 Q 4 12 D 5 14 Q 5 15 D 6 17 Q 6 16 D 7 18 Q 7 19 O E 1 LE 11 U 7 74LS373 A 0 2 B 0 18 A 1 3 B 1 17 A 2 4 B 2 16 A 3 5 B 3 15 A 4 6 B 4 14 A 5 7 B 5 13 A 6 8 B 6 12 A 7 9 B 7 11 C E 19 AB B A 1 U 8 74LS245 A 0 2 B 0 18 A 1 3 B 1 17 A 2 4 B 2 16 A 3 5 B 3 15 A 4 6 B 4 14 A 5 7 B 5 13 A 6 8 B 6 12 A 7 9 B 7 11 C E 19 AB B A 1 U 9 74LS245 D T R D E N D T R D E N D E N D T R A 16 19 A 16 19 D 0 3 Q 0 2 D 1 4 Q 1 5 D 2 7 Q 2 6 D 3 8 Q 3 9 D 4 13 Q 4 12 D 5 14 Q 5 15 D 6 17 Q 6 16 D 7 18 Q 7 19 O E 1 LE 11 U 5 74LS373 AH 16 19 D 0 3 Q 0 2 D 1 4 Q 1 5 D 2 7 Q 2 6 D 3 8 Q 3 9 D 4 13 Q 4 12 D 5 14 Q 5 15 D 6 17 Q 6 16 D 7 18 Q 7 19 O E 1 LE 11 U 3 74LS373 D 0 3 Q 0 2 D 1 4 Q 1 5 D 2 7 Q 2 6 D 3 8 Q 3 9 D 4 13 Q 4 12 D 5 14 Q 5 15 D 6 17 Q 6 16 D 7 18 Q 7 19 O E 1 LE 11 U 4 74LS373 O U T 2C S A 1 B 2 C 3 E 1 6 E 2 4 E 3 5 Y 0 15 Y 1 14 Y 2 13 Y 3 12 Y 4 11 Y 5 10 Y 6 9 Y 7 7 U11 74LS138 4004H 0 1 0 IN1 4002H 0 0 1 O UT2 4000H 0 0 0 O UT1 地 址AH19 A2 A1 CS IO口 译 码 表 INPUT PO RT 4004H U21 AN D U20 N O T R AM C S M IO U22 AN D BH E BH EAB H E O U T 1C S D 0 3 Q 0 2 D 1 4 Q 1 5 D 2 7 Q 2 6 D 3 8 Q 3 9 D 4 13 Q 4 12 D 5 14 Q 5 15 D 6 17 Q 6 16 D 7 18 Q 7 19 O E 1 LE 11 U10 74LS373 IN 1C S O UTPUT PO RT 4000H O UTPUT PO RT 4002H AH 19 O U T 1C S O U T 2C S IN 1C S N O R N O R W R 图 4 1 8086 系统电路图 五五 实验内容 实验内容 本实验首先需阅读 Proteus 设计文件中已经给出的译码表和译码电路 然 后编写程序实现显示按键号的功能 即 16 个按键对应显示 0 F 电路中的数 码管为 BCD 数码管 控制脚连接到 IO 口上 每个 IO 口分别代表二进制的一位 四位二进制可表示 0 15 的数 对应此数码管则显示 0 F 计算机原理与应用实验 实验报告书 水电与数字化工程学院 22 六六 实验 实验过程及结果过程及结果 1 绘制程序流程图 图 4 2 程序流程图 2 编写程序 INCS EQU 4000H OUTCSEQU 4002H DATAS SEGMENT 此处输入数据段代码 DATAS ENDS STACKS SEGMENT 此处输入堆栈段代码 STACKS ENDS CODES SEGMENT 计算机原理与应用实验 实验报告书 水电与数字化工程学院 23 ASSUME CS CODES DS DATAS SS STACKS START MOV BX INCS MOV AL BX 读出开关状态 MOV AH AL MOV BX 8000H 修改段地址 用于寻址 RAM MOV DS BX MOV BX 0000H 向偶地址写入一个 16Bit 的数 MOV BX AX MOV BX 0003H 向奇地址写入一个 16Bit 的数 MOV BX AX MOV BX 0006H 向偶地址写入一个 8Bit 的数 MOV BX AL MOV BX 0009H 向奇地址写入一个 8Bit 的数 MOV BX AL MOV AL BX 从 RAM 中再读出开关状态的值 MOV BX 0000H 恢复段地址 MOV DS BX CMP AL AH 比较读出的值和存入的值 JNE L 若不一致 跳到 L 运行 MOV BX OUTCS MOV BX AL 将开关状态输出到 JMP START L 若读出的数与存入的数不一致 则在这里运行 MOV BX OUTCS MOV BX 00H 的状态始终为全灭 JMP L CODES ENDS END START 3 载入程序验证结果 计算机原理与应用实验 实验报告书 水电与数字化工程学院 24 图 4 3 实验结果展示 在电路途中载入程序 电路导通 依次点击第 1 16 个按键 数码管依次 显示出 0 F 因此试验结果与预测结果相同 本实验正确 七七 实验感想 实验感想 基于 8086 的汇编程序设计实验是在 8086 最小系统硬件设计实验的基础上 进行的一步扩展 在上次实验中我主要对硬件结构进行设计 虽然对 8086 最小 系统有了具体化的了解 并对系统物理地址的定义有了真正认识 但对编译程 序如何在硬件系统中运行还不是十分清楚 为了更进一步增加程序的编写难度 本次试验将上次实验中的开关闭和与断开控制 LED 灯点亮与熄灭改为矩阵按键 由于上次试验已经认真复习学习了 8086 硬件系统的相关知识 因此本次试验很 容易读懂了硬件设计图 算出了输入端和输出端的物理地址分别为 4000H 和 4002H 但矩阵按键的特性要求整个代码分为以下几个模块 扫描矩阵按键状态 接收矩阵按键中被闭合按键的横纵坐标 根据按键的横纵坐标算出键值 输出 键值 看似简单的编程 在实际过程中经常出现逻辑混乱的情形 对逻辑思维 能力要求较高 而且需要熟练运用的汇编语言的能力 这次编程实验摆脱了以 单一枯燥的数学计算编程 使我们可以直观的看到编译程序对硬件系统的控制 为整个实验过程增加了很大的趣味性和成就感 八 八 参考文献参考文献 1 李继灿 谭浩强 微机原理与接口技术 北京 清华大学出版社 2 王爽 汇编语言 北京 清华大学出版社 3 沈美明 温冬婵 汇编语言程序设计 北京 机械工业出版社 4 许立梓 微型计算机原理及应用 北京 机械工业出版社 计算机原理与应用实验 实验报告书 水电与数字化工程学院 25 实验五 实验五 8255 并行接口实验 演示实验 并行接口实验 演示实验 一 实验目的一 实验目的 1 学习使用 Wmd86 编写汇编程序 并会加载到试验箱的 8086 运行 2 学习常用电路模块之间的接线 3 学习 8086CPU 以及 8255 可编程并行 I O 接口芯片的编程和应用 二 实验设备二 实验设备 PC 机一台 TD PITE 实验装置一套 三 实验三 实验任务任务 1 安装 Wmd86 并能够加载到试验箱上运行 2 了解试验箱的基本功能和模块 3 按照所给 8255 输入输出试验箱电路图正确接线 四四 实验原理 实验原理 并行接口是以数据的字节为单位与 I O 设备或被控制对象之间传递信息 CPU 和接口之间的数据传送总是并行的 即可以同时传递 8 位 16 位或 32 位等 8255 可编程外围接口芯片是 Intel 公司生产的通用并行 I O 接口芯片 它具有 A B C 三个并行接口 用 5V 单电源供电 能在以下三种方式下工作 方式 0 基本输入 输出方式 方式 1 选通输入 输出方式 方式 2 双向选通工作 方式 8255 的内部结构及引脚如图 5 1 所示 8255 工作方式控制字和 C 口按位 置位 复位控制字格式如图 5 2 所示 计算机原理与应用实验 实验报告书 水电与数字化工程学院 26 图 5 1 8255 内部结构及外部引脚图 图 5 2 8255 控制字格式 本实验使 8255 端口 A 工作在方式 0 并作为输入口 端口 B 工作在方式 0 并 作为输出口 用一组开关信号接入端口 A 端口 B 输出线接至一组数据灯上 然后通过对 8255 芯片编程来实现输入输出功能 五五 实验 实验内容内容 1 实验接线图如图 5 3 所示 按图连接实验线路图 计算机原理与应用实验 实验报告书 水电与数字化工程学院 27 图 5 3 8255 基本输入输出实验接线图 2 编写实验程序 经编译 连接无误后装入系统 3 运行程序 改变拨动开关 同时观察 LED 显示 验证程序功能 六六 实验过程及结果 实验过程及结果 1 按照实验原理中 8255 结构图和控制字 编写汇编语言程序 使 8255 的 A 口为输入端口 B 为输出端口 2 按照实验原理部分的电路接线图 3 完成 5 电路的线路连接 3 拨动开关 观察到数据灯的显示 输出端口 随着开关的拨动 输入端 口 发生了相应的改变 验证了程序和电路接线的正确性 初步学习了 TD 试验 箱的使用 了解了其基本功能和模块 实验代码及代码注释 文件名 A82551 ASM 功能描述 A 口为输入 B 口为输出 将读入的数据输出显示 注 IOY0 为实验箱提供好的译码引脚 地址空间为 0600H 063FH 由 A10 A9 译码而成 部分译码 地址有重叠 此实验中接 8255 的片选管脚 CS 即 8255 编程地址由它和 A2 A1 接实验箱的 A1 A0 决定 具体参考 8255 地址确定 MY8255 A EQU 0600H 600H 为 A 口地址 MY8255 B EQU 0602H 602H 为 B 口地址 MY8255 C EQU 0604H 604

温馨提示

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

评论

0/150

提交评论