基于8086的数字电压表设计.doc_第1页
基于8086的数字电压表设计.doc_第2页
基于8086的数字电压表设计.doc_第3页
基于8086的数字电压表设计.doc_第4页
基于8086的数字电压表设计.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

微机原理与接口技术 课程设计 姓名 叶阳 学号 0945531210 班级 09 电信 2 班 专业 电子信息工程 学院 电气与信息工程学院 江苏科技大学张家港校区 2012 年 6 月 目目 录录 1 理论部分理论部分 3 1 1 课题要求与内容 3 1 2 系统方案设计 3 1 2 1 实验器材 3 1 2 2实验总体框图 4 1 3 系统硬件设计 4 1 3 1 所用芯片及原理简介 4 1 3 2分部原理图片 8 1 4 系统软件设计 10 1 4 1 A D转换部分 10 1 4 2 8254和8259模块 11 1 4 3 中断程序 12 2 实践部分实践部分 13 2 1 系统硬件原理简介 13 2 2 系统硬件调试中出现的问题及解决措施 13 2 2 1 8254计数器模块 13 2 2 2 0809AD转换及8255显示模块 14 2 3 系统软件 14 2 3 1软件设计 14 3 课程设计心得课程设计心得 19 4 附录附录 20 基于基于 8086 的数字电压表设计的数字电压表设计 摘要 摘要 数字电压表利用模 数转换原理测量电压值 并以数字形式显示测量结 果的仪表 本课题基于 8086 系统设计软件程序 采用 A D 模数转换芯片 0809 将采集的模拟量转换为数字量 通过并行接口芯片 8255A 在数码管上实时显示 并且采用 8254 和 8259A 芯片设置采样时间以及产生中断 关键字 关键字 数字电压表 0809 8255 8259 数码管 1 理论部分理论部分 1 1 课题要求与内容课题要求与内容 课题 设计数字电压表 课题内容及要求 1 使用 0809 芯片 获取电压数据 2 通过 8255A 芯片 使数据在数码管上实时显示 3 使用 8254 芯片 通过按键设置采样时间 比如 60s 采集一次 4 使用 8259A 芯片 采样时间结束后产生中断 采集电压数据 附加要求 使用 8251 芯片 通过串口在 PC 机上的串口调试助手显示实时电压 信号 1 2 系统方案设计系统方案设计 1 2 1 实验器材 表 1 实验器件 实验器材名称数量备注 PC 机一台 唐都实验箱一台 使用的芯片0809一片 8255一片 8254一片 8259一片 1 2 2 实验总体框图 图 1 方案设计框图 1 3 系统硬件设计系统硬件设计 1 3 1 所用芯片及原理简介 1 A D 转换器转换器 0809 ADC0809 的引脚图如下图所示 图 2 0809 引脚图 初始化 8254 和 8259 设置工作方式 和计数方式 进行计 数 采样 启动 A D 转换 分 析结果并进行 显示 初始化 8255 工 作方式 显示结果在屏 幕上 换码用 8255 显 示在实验箱数 码管上 软件延时子程序 ADC0809 是双列直插式 8 位 A D 转换芯片 具有 8 路模拟量输入线 可在 程序控制下对任意一路进行 A D 转换 得到 8 位二进制数字量 ADC0809 包括一个 8 位的逐次逼近型的 ADC 部分 并提供一个 8 通道的 模拟多路开关和联合寻址逻辑 用它可以直接输入 8 个单端的模拟信号 分时 进行 A D 转换 在多点巡回检测 过程控制等应用领域中使用非常广泛 ADC0809 的主要技术指标为 分辨率 8 位 单电源 5V 总的不可调误差 1LSB 转换时间 取决于时钟频率 模拟输入范围 单极性 0 5V 时钟频率范围 10KHz 1280KHz A D 转换方法 IN0 单极性输入电压与转换后数字的关系为 N Ui Uref 256 其中 Ui 为输入电压 Uref 为参考电压 5V 本设计中电压模拟量从 ADC0809 的 IN0 端输入 2 2 并行接口芯片并行接口芯片 82558255 8255A 的引脚图如下图所示 图 3 8255A 引脚图 8255A 是一个 40 引脚的双列直插式并行接口芯片 8255 芯片内部有 3 个 8 位的输入输出端口 即 A 口 B 口和 C 口 从内部 控制角度来讲 可分为两组 A 组和 B 组 A 组控制模块管理 A 口和 C 口的高 四位 B 组控制模块管理 B 口和 C 口的第四位 8255 的三种工作方式 方式 0 基本输入输出方式 方式 1 选通型输入输出方式 方式 2 双向数据传送方式 本设计中使用 8255 端口 A 输出 LED 数码管的位选信号和端口 B 输出段码 信号 用于控制数码管对电压值的显示 3 定时计数芯片 定时计数芯片 8254 8254 芯片的引脚图如下图所示 图 4 8254 引脚图 8254 芯片是一款使用十分广泛的可编程定时 计数芯片 其主要功能是定 时和计数的功能 8254 芯片主要由四部分组成 1 数据总线缓冲器 2 读写逻辑 3 控制字寄存器 4 计数器 8254 的工作方式 方式 0 计数到 0 结束输出正跃变信号方式 方式 1 硬件可重 触发单稳方式 方式 2 频率发生器方式 方式 3 方波发生器 方式 4 软件触发选通方式 方式 5 硬件触发选通方式 4 中断控制芯片 中断控制芯片 8259A 8259A 的引脚图如下图所示 图 5 8259A 引脚图 8259A 是为了进行中断控制而设计的芯片 它是可以用程序控制的中断 控制器 单个的 8259A 能管理 8 级向量优先级中断 在不增加其他电路的 情况下 最多可以级联成 64 级的向量优级中断系统 8259A 有多种工作方 式 能用于各种系统 各种工作方式的设定是在初始化时通过软件进行的 在总线控制器的控制下 8259A 芯片可以处于编程状态和操作状态 编程 状态是 CPU 使用 IN 或 OUT 指令对 8259A 芯片进行初始化编程的状态 5 8 段段 LED 数码管 数码管 表 2 共阴极数码管字形代码 显示字形gfedcba段码 001111113fh 1000011006h 210110115bh 310011114fh 4110011066h 511011016dh 611111017dh 7000011107h 811111117fh 911011116fh 本设计用 2 位 8 段 LED 数码管分别显示电压值 电位器模拟电压 的十位和个 位部分 1 3 2 分部原理图片 A D 转换模块 0809 图 6 A D 转换模块 并行接口模块 8255 图 7 并行接口 8255 模块 设置采样时间模块 8253 图 8 采样时间模块 8253 设置中断模块 8259 图 9 设置中断模块 8259 1 4 系统软件设计系统软件设计 1 4 1 A D 转换部分 图 10 A D 模数转换部分 将结果显示在电脑屏幕 上 将 BUFFE 空间中的结果转换至 AL 中 在屏幕上显示字符串 AD0809 读出转换结果 将结果存入 BUFFE 空间 开始 启动 AD 转换 换码用 8255 显示在实验箱数码管上 返回至中断 结束 1 4 2 8254 和 8259 模块 图 11 8254 和 8259 部分 开始 计数器 2 初始 8254 并设置工作方式 3 输 1 8432MHz 至 CLK2 进行 100 分 频 初始化 8254 设置工作方式 计数器 0 方式 3 输出至 CLK0 计数 0 进行 18432 次分频得到 1HZ 方波 初始化计数 1 设置工作方式 0 进入计数初值 键盘键入 计数完成 进入中断 1 4 3 中断程序 图 12 中断部分 计数是否完 成 是 否 结束 开中断 恢复 PCI INTCSR 恢复 INTR 中断矢量 恢复 INTR 中断屏蔽 字 开始 关中断 打开 INTR 中断屏蔽 位 初始化 PCI INTCSR 替换 INTR 中断矢量 开中断 关中断 进入 A D 采集模块 2 实践部分实践部分 2 1 系统硬件原理简介系统硬件原理简介 硬件设计总图如下图 图 13 硬件原理总图 2 2 系统硬件调试中出现的问题及解决措施系统硬件调试中出现的问题及解决措施 2 2 1 8254 计数器模块 在调试中把计数器 1 输出连接至 LED 灯 检验能否进入中断程序 时 灯 并未出现闪烁而是持续低电平 检查程序发现 端口存储器未改动 修改后又 持续高电平 还是未见闪烁 经过田老师检查发现电路接线错误 后改正能使 灯闪即可以进入中断 2 2 2 0809AD 转换及 8255 显示模块 在调试过程中将电位器的 ADJ 端接到 0809 的 IN0 口作为模拟信号输入 但是调节旋钮发现产生的数字信号没有任何变化 然后我们尝试用以前微机接 口实验的程序控制 0809 还是没有任何变化 初步认为是电位器损坏无法使用 换过数次试验台后能显示 00 FF 的电压变化 2 3 系统软件系统软件 2 3 1 软件设计 程序如下 IOY0 EQU 3000H 片选 IOY0 对应的端口始地址 IOY1 EQU 3040H 片选 IOY0 对应的端口始地址 AD0809 EQU IOY1 AD0809 的端口地址 MY8255 A EQU IOY0 00H 4 8255 的 A 口地址 MY8255 B EQU IOY0 01H 4 8255 的 B 口地址 MY8255 C EQU IOY0 02H 4 8255 的 C 口地址 MY8255 MODE EQU IOY0 03H 4 8255 的控制寄存器地址 IOY2 EQU 3080H 片选 IOY0 对应的端口始地址 MY8254 COUNT0 EQU IOY2 00H 4 8254 计数器 0 端口地址 MY8254 COUNT1 EQU IOY2 01H 4 8254 计数器 1 端口地址 MY8254 COUNT2 EQU IOY2 02H 4 8254 计数器 2 端口地址 MY8254 MODE EQU IOY2 03H 4 8254 控制寄存器端口地址 IOY3 EQU 30C0H 片选 IOY0 对应的端口始地址 MY8259 ICW1 EQU IOY3 00H 实验系统中 8259 的 ICW1 端口地址 MY8259 ICW2 EQU IOY3 04H 实验系统中 8259 的 ICW2 端口地址 MY8259 ICW3 EQU IOY3 04H 实验系统中 8259 的 ICW3 端口地址 MY8259 ICW4 EQU IOY3 04H 实验系统中 8259 的 ICW4 端口地址 MY8259 OCW1 EQU IOY3 04H 实验系统中 8259 的 OCW1 端口地址 MY8259 OCW2 EQU IOY3 00H 实验系统中 8259 的 OCW2 端口地址 MY8259 OCW3 EQU IOY3 00H 实验系统中 8259 的 OCW3 端口地址 INTR IVADD EQU 01C8H INTR 对应的中断矢量地址 INTR OCW1 EQU 0A1H INTR 对应 PC 机内部 8259 的 OCW1 地址 INTR OCW2 EQU 0A0H INTR 对应 PC 机内部 8259 的 OCW2 地址 INTR IM EQU 0FBH INTR 对应的中断屏蔽字 STACK1 SEGMENT STACK DB 256 DUP STACK1 ENDS DATA SEGMENT DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H 7CH 39H 5EH 79H 71H CUN DB 256 DUP MES DB Press number to set interrupt time 0AH 0DH 0AH 0DH STR1 DB AD0809 IN0 定义显示的字符串 BUFFE DB 2 DUP CS BAK DW 保存 INTR 原中断处理程序入口段地址的变量 IP BAK DW 保存 INTR 原中断处理程序入口偏移地址的变量 IM BAK DB 保存 INTR 原中断屏蔽字的变量 DATA ENDS CODE SEGMENT ASSUME CS CODE DS DATA START MOV AX DATA MOV DS AX MOV SI OFFSET CUN CALL MY 8259 CALL MY 8254 CALL MY 0809 QUERY CALL DISPLAY1 MOV AH 1 判断是否有按键按下 INT 16H JNZ QUIT 有按键则退出 MOV DX MY8259 OCW3 向 8259 的 OCW3 发送查询命令 MOV AL 0CH OUT DX AL IN AL DX 读出查询字 TEST AL 80H 判断中断是否已响应 JZ QUERY 没有响应则继续查询 CALL MY 8254 CALL MY 0809 CALL DISPLAY1 CALL MY 8259 JMP QUERY QUIT MOV AX 4C00H 结束程序退出 INT 21H 8254 MY 8254 PROC NEAR MOV DX MY8254 MODE 初始化 8254 工作方式 MOV AL 0B6H 计数器 2 方式 3 OUT DX AL MOV DX MY8254 COUNT2 装入计数初值 MOV AL 64H 100 分频 OUT DX AL MOV AL 00H OUT DX AL MOV DX MY8254 MODE 初始化 8254 工作方式 MOV AL 36H 计数器 0 方式 3 OUT DX AL MOV DX MY8254 COUNT0 装入计数初值 MOV AL 00H 18432 分频 OUT DX AL MOV AL 48H OUT DX AL MOV DX MY8254 MODE 初始化 8254 工作方式 MOV AL 74H 计数器 1 方式 0 OUT DX AL MOV AH 09H MOV DX OFFSET MES INT 21H MOV AH 01H INT 21H SUB AL 30H MOV BL 0AH MUL BL MOV SI AL MOV AH 01H INT 21H SUB AL 30H MOV BL SI ADD AL BL MOV DX MY8254 COUNT1 装入计数初值 MOV AL 02H 计数 2 秒 OUT DX AL MOV AL 00H OUT DX AL RET MY 8254 ENDP 8259 MY 8259 PROC NEAR MOV DX MY8259 ICW1 初始化实验系统中 8259 的 ICW1 MOV AL 13H 边沿触发 单片 8259 需要 ICW4 OUT DX AL MOV DX MY8259 ICW2 初始化实验系统中 8259 的 ICW2 MOV AL 08H OUT DX AL MOV DX MY8259 ICW4 初始化实验系统中 8259 的 ICW4 MOV AL 01H 非自动结束 EOI OUT DX AL MOV DX MY8259 OCW1 初始化实验系统中 8259 的 OCW1 MOV AL 0FCH 打开 IR0 和 IR1 的屏蔽位 OUT DX AL RET MY 8259 ENDP 0809 FUNCTION NAME MY 0809 PROC NEAR 采样 PUSH DX PUSH CX PUSH AX MOV DX AD0809 启动 A D 转换 OUT DX AL CALL DALLY MOV DX OFFSET STR1 显示字符串 AD0809 IN0 MOV AH 9 INT 21H MOV DX AD0809 读 A D 转换结果 IN AL DX MOV CH AL 分析结果进行显示 AND AL 0F0H MOV CL 04H SHR AL CL 取出数据的十位 MOV BUFFE AL CMP AL 09H JG A1 ADD AL 30H JMP A2 A1 ADD AL 37H 对 A F 的处理 A2 MOV DL AL 对 0 9 的处理 MOV AH 02H INT 21H MOV AL BUFFE MOV BX OFFSET DATA XLAT MOV SI AL MOV AL CH AND AL 0FH 取出数据的各位 MOV BUFFE AL CMP AL 09H JG A3 ADD AL 30H JMP A4 A3 ADD AL 37H 对 A F 的处理 A4 MOV DL AL 对 0 9 的处理 MOV AH 02H INT 21H MOV AL BUFFE MOV BX OFFSET DATA XLAT INC SI MOV SI AL POP AX POP CX POP DX RET MY 0809 ENDP DISPLAY1 DISPLAY1 PROC NEAR PUSH AX PUSH DX MOV DX MY8255 MODE 初始化 8255 工作方式 MOV AL 81H 方式 0 A 口 B 口输出 C 口低 4 位输入 OUT DX AL MOV AL SI MOV DX MY8255 B OUT DX AL MOV AL 01H MOV DX MY8255 A OUT DX AL CALL DALLY DEC SI MOV AL SI MOV DX MY8255 B OUT DX AL MOV AL 02H MOV DX MY8255 A OUT DX AL CALL DALLY INC SI POP DX POP AX DISPLAY1 ENDP DELLY FUNCTION NAME DALLY PROC NEAR 软件延时子程序 PUSH CX PUSH AX MOV CX 4000H D1 MOV AX 0300H D2 DEC AX JNZ D2 LOOP D1 POP AX POP CX RET DALLY ENDP CODE ENDS END START 3 课程设计心得课程设计心得 本次设计基本完成了课题要求 但仍具有一些不足之处 首先未将电位器 值转换为电压值显示 即将两位的电阻值转换成为三位的电压值 一位整数部 分 两位小数部分 其次 考虑到数码管和矩阵按键已经复用 并未使用试验 箱上的矩阵按键 而改用的 DOS 系统功能调用 采用电脑键盘输入 最后 对 课题的附加部分因为专业知识不足也未能很好完成 而是采用在电脑 CMD 窗 口中跟踪显示实时电压值 通过本次课程设计 我获益良多 对微机接口这门 课程和 8086 系统有了更深入的了解 掌握了如何使用汇编语言编写程序实现软 硬件的结合 达到课题要求 4 附录附录 附录附录 1 参考文献 参考文献 1 陈红卫主编 2009 微型计算机基本原理与接口技术 第二版 M 北 京 科学出版社 2 西安唐都科教仪器公司编著 32 位微机原理与接口技术实验教程 3 樊昌信 曹丽娜编著 2010 通信原理 第六版 M 北京 国防工业出 版社 还来不及享受美丽的锦瑟华年 就已经到了白发迟暮 一生匆匆而过 生命 就是这样匆匆 还来不及细细品味 就只剩下了回忆 生命匆匆 累了就选择放下 别让自己煎熬痛苦 别让自己不堪重负 放下该放下的 心才会释放重负 人生才能安然自如 人生就是一个口袋 里面装的东西越多 前行的脚步就越沉重 总觉得该得到的还没有得到 该拥有的却已经失去 苦苦追寻的依然渺茫无踪 心累 有时候是为了生存 有时候是为了 攀比 只有放下羁绊前行脚步的重担 放下阴霾缭绕的负面情绪 才能感受到 柳暗花明又一村 的豁然开朗 领悟到 一蓑烟雨任平生 的超然物外 人生太匆匆 累了 就放一放吧 何苦要执拗于一时的成败得失 很多时候 我们用汗水滋养梦想 可是 梦想是丰满的 现实是骨感的 每个人都渴望成功的鲜花围绕自己 可是 谁都不是常胜将军 都会猝不及防地遭遇人生的滑铁卢 唉声叹气只 会让自己裹足不前 一蹶不振只能让自己沉沦堕落 如果真的不能承受其重 就放一放 重新审视前方的道路 选择更适合自己的方向 有些东西 本就如同天上的浮云 即使竭尽全力 也未必能揽之入怀 或者即使得到 也未必能提高幸福指数 所以与其为得不到的东西惶惶终日 不如选择放下 为心减负 轻松前行 一人难如百人愿 不是所有的人 都会欣赏和喜欢自己 所以 我们不必曲意逢迎他人的目光 不用祈求得到所有人的温柔以待 真正在意你的人 不会对你无情无义 不在意你的人 你不过是轻若鸿毛的可有可无 做最好的自己 静静地守着一江春水的日子 让心云淡风轻 怡然自若 人生本过客 何必千千结 不是所有的相识都能地久天长 不是所有的情谊都能地老天荒 有些人终究是走着走着就散了 成为我们生命中的过客 爱过 恨过 都会装点我们原本苍白的人生 感谢曾经在我们生命中出现过的人 如果无缘继续红尘相伴 就选择放下吧 给自己和对方都留一段美好的回忆和前行的空间 鱼总是自由自在地在水中快乐游弋 是因为鱼只有七秒钟的记忆 只在一瞬间 鱼便忘记了所有的不愉快 所以 忘记所有的不愉快 才能为美好的情绪留出空间 才能让心情灿然绽放 林清玄说 一尘不染不是不再有尘埃 而是尘埃

温馨提示

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

评论

0/150

提交评论