资源描述
《微机原理与接口技术》
课程设计
姓名: 叶阳
学号: 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]. 北京:国防工业出版社
最新范本,供参考!
展开阅读全文