收藏 分销(赏)

基于8086的数字电压表设计.doc

上传人:可**** 文档编号:687505 上传时间:2024-02-01 格式:DOC 页数:20 大小:678KB 下载积分:11 金币
下载 相关 举报
基于8086的数字电压表设计.doc_第1页
第1页 / 共20页
基于8086的数字电压表设计.doc_第2页
第2页 / 共20页


点击查看更多>>
资源描述
《微机原理与接口技术》 课程设计 姓名: 叶阳 学号: 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实验总体框图: 初始化8254和8259,设置工作方式和计数方式,进行计数 采样,启动A/D转换,分析结果并进行显示 初始化8255工作方式 软件延时子程序 换码用8255显示在实验箱数码管上 显示结果在屏幕上 图1 方案设计框图 1.3系统硬件设计 1.3.1 所用芯片及原理简介: 1) A/D转换器0809 ADC0809的引脚图如下图所示: 图2 0809引脚图 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) 并行接口芯片8255 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:共阴极数码管字形代码 显示字形 g f e d c b a 段码 0 0 1 1 1 1 1 1 3fh 1 0 0 0 0 1 1 0 06h 2 1 0 1 1 0 1 1 5bh 3 1 0 0 1 1 1 1 4fh 4 1 1 0 0 1 1 0 66h 5 1 1 0 1 1 0 1 6dh 6 1 1 1 1 1 0 1 7dh 7 0 0 0 0 1 1 1 07h 8 1 1 1 1 1 1 1 7fh 9 1 1 0 1 1 1 1 6fh 本设计用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转换部分 将结果显示在电脑屏幕上 将BUFFE空间中的结果转换至AL中 在屏幕上显示字符串AD0809 读出转换结果 将结果存入BUFFE空间 开始 启动AD转换 换码用8255显示在实验箱数码管上 返回至中断 结束 图10 A/D模数转换部分 1.4.2 8254和8259模块 开始 计数器2初始8254并设置工作方式3 输1.8432MHz至CLK2 进行100分频 初始化8254设置工作方式:计数器0,方式3输出至CLK0,计数0 进行18432次分频得到1HZ方波 初始化计数1,设置工作方式0 ,进入计数初值(键盘键入) 计数完成,进入中断 图11 8254和8259部分 1.4.3 中断程序 结束 开中断 恢复PCI_INTCSR 恢复INTR中断矢量 恢复INTR中断屏蔽字 开始 关中断 打开INTR中断屏蔽位 初始化PCI_INTCSR 替换INTR中断矢量 开中断 关中断 进入A /D采集模块 否 计数是否完成 是 图12 中断部分 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]. 北京:国防工业出版社 最新范本,供参考!
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服