收藏 分销(赏)

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

上传人:可**** 文档编号:687505 上传时间:2024-02-01 格式:DOC 页数:20 大小:678KB
下载 相关 举报
基于8086的数字电压表设计.doc_第1页
第1页 / 共20页
基于8086的数字电压表设计.doc_第2页
第2页 / 共20页
基于8086的数字电压表设计.doc_第3页
第3页 / 共20页
基于8086的数字电压表设计.doc_第4页
第4页 / 共20页
基于8086的数字电压表设计.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、微机原理与接口技术课程设计姓名: 叶阳 学号: 0945531210 班级: 09电信2班 专业: 电子信息工程 学院: 电气与信息工程学院 江苏科技大学张家港校区2012年6月目 录1.理论部分31.1课题要求与内容31.2系统方案设计31.2.1 实验器材31.2.2实验总体框图:41.3系统硬件设计41.3.1 所用芯片及原理简介:41.3.2分部原理图片:81.4系统软件设计101.4.1 A/D转换部分101.4.2 8254和8259模块111.4.3 中断程序122.实践部分132.1系统硬件原理简介132.2系统硬件调试中出现的问题及解决措施132.2.1 8254计数器模块1

2、32.2.2 0809AD转换及8255显示模块142.3系统软件142.3.1软件设计143 .课程设计心得194.附录20基于8086的数字电压表设计摘要:数字电压表利用模-数转换原理测量电压值,并以数字形式显示测量结果的仪表。本课题基于8086系统设计软件程序,采用A/D模数转换芯片0809将采集的模拟量转换为数字量,通过并行接口芯片8255A在数码管上实时显示,并且采用8254和8259A芯片设置采样时间以及产生中断。关键字:数字电压表,0809,8255,8259,数码管1.理论部分1.1课题要求与内容课题:设计数字电压表课题内容及要求:1) 使用0809芯片,获取电压数据;2) 通

3、过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显示在实验箱数码管上

4、显示结果在屏幕上图1 方案设计框图1.3系统硬件设计1.3.1 所用芯片及原理简介:1) A/D转换器0809ADC0809的引脚图如下图所示:图2 0809引脚图ADC0809是双列直插式8位A/D转换芯片,具有8路模拟量输入线,可在程序控制下对任意一路进行A/D转换,得到8位二进制数字量。ADC0809包括一个8位的逐次逼近型的ADC部分,并提供一个8通道的模拟多路开关和联合寻址逻辑。用它可以直接输入8个单端的模拟信号,分时进行A/D转换,在多点巡回检测、过程控制等应用领域中使用非常广泛。ADC0809的主要技术指标为:分辨率:8位; 单电源:+5V;总的不可调误差:1LSB; 转换时间:

5、取决于时钟频率模拟输入范围:单极性05V 时钟频率范围:10KHz1280KHzA/D转换方法: IN0单极性输入电压与转换后数字的关系为: N=Ui/(Uref/256)其中Ui为输入电压,Uref为参考电压(+5V)本设计中电压模拟量从ADC0809的IN0端输入。2) 并行接口芯片82558255A的引脚图如下图所示:图3 8255A引脚图8255A是一个40引脚的双列直插式并行接口芯片。8255芯片内部有3个8位的输入输出端口,即A口,B口和C口。从内部控制角度来讲,可分为两组:A组和B组;A组控制模块管理A口和C口的高四位,B组控制模块管理B口和C口的第四位。8255的三种工作方式:

6、方式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:软件触发选通

7、方式;方式5:硬件触发选通方式。4)中断控制芯片8259A:8259A的引脚图如下图所示:图5 8259A引脚图8259A是为了进行中断控制而设计的芯片,它是可以用程序控制的中断控制器。单个的8259A能管理8级向量优先级中断。在不增加其他电路的情况下,最多可以级联成64级的向量优级中断系统。8259A有多种工作方式,能用于各种系统。各种工作方式的设定是在初始化时通过软件进行的。 在总线控制器的控制下,8259A芯片可以处于编程状态和操作状态,编程状态是CPU使用IN或OUT指令对8259A芯片进行初始化编程的状态。5)8段LED数码管:表2:共阴极数码管字形代码显示字形gfedcba段码00

8、1111113fh1000011006h210110115bh310011114fh4110011066h511011016dh611111017dh7000011107h811111117fh911011116fh本设计用2位8段LED数码管分别显示电压值(电位器模拟电压)的十位和个位部分。1.3.2分部原理图片: A/D转换模块0809:图6 A/D转换模块并行接口模块8255:图7 并行接口8255模块设置采样时间模块8253:图8 采样时间模块8253设置中断模块8259:图9 设置中断模块82591.4系统软件设计1.4.1 A/D转换部分将结果显示在电脑屏幕上将BUFFE空间中的结

9、果转换至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中断屏蔽字开始关中断

10、打开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口作

11、为模拟信号输入,但是调节旋钮发现产生的数字信号没有任何变化,然后我们尝试用以前微机接口实验的程序控制0809还是没有任何变化,初步认为是电位器损坏无法使用,换过数次试验台后能显示00FF的电压变化。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

12、 ;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+0

13、0H ;实验系统中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

14、 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 ENDSDATA SEGMENT DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71HCUN DB 256 DUP(?) MES DB Press number to

15、 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 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV SI,OFFSET CUN CALL MY_8259 CALL MY_8254

16、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*

17、;*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 D

18、X,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_82

19、54 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和IR

20、1的屏蔽位 OUT DX,AL RETMY_8259 ENDP;*0809*;FUNCTION:;NAME:;*MY_0809 PROC NEAR ;采样 PUSH DX PUSH CX PUSH AX MOV DX,AD0809 ;启动A/D转换OUT DX,ALCALL 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,0F0HMOV CL,04HSHR AL,CL ;取出数据的十位MOV BUFFE,A

21、LCMP AL,09HJG A1 ADD AL,30H JMP A2A1: ADD AL,37H ;对AF的处理 A2: MOV DL,AL ;对09的处理 MOV AH,02H INT 21HMOV AL,BUFFEMOV BX,OFFSET DATA XLAT MOV SI,ALMOV AL,CH AND AL,0FH ;取出数据的各位MOV BUFFE,AL CMP AL,09H JG A3 ADD AL,30H JMP A4A3: ADD AL,37H ;对AF的处理 A4: MOV DL,AL ;对09的处理 MOV AH,02H INT 21HMOV AL,BUFFE MOV BX

22、,OFFSET DATA XLATINC SIMOV SI,AL POP AX POP CXPOP 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_BOUT DX,ALMOV AL,01H MOV DX,MY8255_A OUT DX,ALCALL DALLYDEC SIMOV AL,SIMOV DX,MY8255

23、_BOUT DX,ALMOV AL,02H MOV DX,MY8255_AOUT DX,AL CALL DALLY INC SIPOP DXPOP AXDISPLAY1 ENDP;*DELLY*;FUNCTION:;NAME:;* DALLY PROC NEAR ;软件延时子程序 PUSH CX PUSH AX MOV CX,4000HD1: MOV AX,0300HD2: DEC AX JNZ D2 LOOP D1 POP AX POP CX RETDALLY ENDPCODE ENDS END START 3 .课程设计心得 本次设计基本完成了课题要求,但仍具有一些不足之处。首先未将电位器

24、值转换为电压值显示,即将两位的电阻值转换成为三位的电压值(一位整数部分,两位小数部分)。其次,考虑到数码管和矩阵按键已经复用,并未使用试验箱上的矩阵按键,而改用的DOS系统功能调用,采用电脑键盘输入。最后,对课题的附加部分因为专业知识不足也未能很好完成,而是采用在电脑CMD窗口中跟踪显示实时电压值。通过本次课程设计,我获益良多,对微机接口这门课程和8086系统有了更深入的了解,掌握了如何使用汇编语言编写程序实现软硬件的结合,达到课题要求。4.附录附录1:参考文献:【1】 陈红卫主编.2009. 微型计算机基本原理与接口技术(第二版)M . 北京:科学出版社【2】 西安唐都科教仪器公司编著 32位微机原理与接口技术实验教程【3】 樊昌信,曹丽娜编著. 2010.通信原理(第六版)M. 北京:国防工业出版社最新范本,供参考!

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

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

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

关于我们      便捷服务       自信AI       AI导航        获赠5币

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

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

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

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服