微机原理课程设计 简单数字电压表的设计Word文档格式.docx

上传人:b****6 文档编号:20195020 上传时间:2023-01-17 格式:DOCX 页数:17 大小:596.51KB
下载 相关 举报
微机原理课程设计 简单数字电压表的设计Word文档格式.docx_第1页
第1页 / 共17页
微机原理课程设计 简单数字电压表的设计Word文档格式.docx_第2页
第2页 / 共17页
微机原理课程设计 简单数字电压表的设计Word文档格式.docx_第3页
第3页 / 共17页
微机原理课程设计 简单数字电压表的设计Word文档格式.docx_第4页
第4页 / 共17页
微机原理课程设计 简单数字电压表的设计Word文档格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

微机原理课程设计 简单数字电压表的设计Word文档格式.docx

《微机原理课程设计 简单数字电压表的设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计 简单数字电压表的设计Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。

微机原理课程设计 简单数字电压表的设计Word文档格式.docx

根据A/D器上DS4~DS1端的位选信号,控制显示部分个、十、百、千位哪一位上进行显示。

3系统硬件设计

本电路采用模块化设计,主要由A/D转换模块、控制模块和LED显示模块组成(如图1.0)。

控制模块

LED显示模块

A/D转换模块

图2系统总体硬件框图

设计的基本思想和顺序

利用0809采集电压数据,将模拟电压信号数字电压信号。

8255通过I/O控制两位数码管显示采集电压值。

8254设置采样频率。

8359设置中断。

基本思路:

当到定时时间时产生中断信号,进入中断采集电压数据。

采集的数据转化后保存到内存空间里,返回主程序后在数码管上显示。

二实践部分

(一)系统硬件原理简介

1模数(A/D)转换器ADC0809

1.1概述

ADC0809是采样分辨率为8位的、以逐次逼近原理进行模—数转换的器件。

其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

1.2主要特性

1)8路输入通道,8位A/D转换器,即分辨率为8位。

2)具有转换起停控制端。

3)转换时间为100μs

4)单个+5V电源供电

5)模拟输入电压范围0~+5V,不需零点和满刻度校准。

6)工作温度范围为-40~+85摄氏度

7)低功耗,约15mW。

图3ADC0809引脚图

2可编程中断控制器8259A

2.1概述

8259A是专门为了对8085A和8086/8088进行中断控制而设计的芯片,它是可以用程序控制的中断控制器。

单个的8259A能管理8级向量优先级中断。

在不增加其他电路的情况下,最多可以级联成64级的向量优先级中断系统。

8259A有多种工作方式,能用于各种系统。

各种工作方式的设定是在初始化时通过软件进行的。

在总线控制器的控制下,8259A芯片可以处于编程状态和操作状态.编程状态是CPU使用IN或OUT指令对8259A芯片进行初始化编程的状态

2.28259A引脚图

图48259A引脚图

2.3主要功能

在有多个中断源的系统中,接受外部的中断请求,并进行判断,选中当前优先级最高的中断请求,再将此请求送到CPU的INTR端;

当CPU响应中断并进入中断子程序的处理过程后,中断控制器仍负责对外部中断请求的管理。

3并行接口8255A

3.1概述

Intel8086/8088系列的可编程外设接口电路(ProgrammablePeripheralInterface)简称PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。

它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。

8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。

3.28255A工作方式

●方式0:

基本输入输出方式

适用于无条件传送和查询方式的接口电路

●方式1:

选通输入输出方式

适用于查询和中断方式的接口电路

●方式2:

双向选通传送方式

适用于与双向传送数据的外设

3.38255A引脚图

图58255A引脚图

4数码管

4.1数码管结构图

(a)七段式LED(b)共阳极LED(c)共阴极LED

图6七段式LED显示部件

数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);

按能显示多少个“8”可分为1位、2位、4位等等数码管;

按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。

共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。

共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。

当某一字段的阴极为高电平时,相应字段就不亮。

共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。

共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。

当某一字段的阳极为低电平时,相应字段就不亮。

5计数器Intel8254

5.1概述

8254芯片是一款使用十分广泛的可编程定时,计数芯片,其主要功能是定时和计数的功能。

是8253的改进型,比8253具有更优良的性能。

与大多数微处理器兼容;

技术频率从支流到10MHz;

有6种可编程计数器方式;

3个独立的16位计数器,二进制或十进制(BCD)计数;

任一引脚对地电压-0.5~7V.

5.2Intel8254的引脚图与逻辑引脚图

图78254的引脚图

对8254的编程通常只需注意两点:

先写控制字,再写计数初值;

计数初值必须遵循控制字中设定的格式(只有低字节或只有高字节或者先低后高,由RW1,RW0规定)。

只有当CPU向8254控制字寄存器写入控制字后,即对其初始化之后,8254才能正常地工作。

写入控制字后,所有控制逻辑电路将立即复位,输出端OUT立即进入初始状态。

接着向计数器的计数初值寄存器中写计数初值,在写入初值后,需要经过一个时钟脉冲后,计数器才开始在脉冲下降沿进行减1计数。

通常在时钟脉冲的上升沿时,门控信号GATE被采样。

当A1,A0=11时,控制字寄存器被选择,控制字寄存器中的SC1,SC0则决定着(0~2)计数器中哪个会被选中以写计数初值。

2系统硬件调试中出现的问题及解决措施

实验中,在连接总电路之前我们运用实验系统提供的实验程序将实验箱各个模块芯片检查了一遍.确定各个芯片和电位器能够正常工作之后开始连接总的电路.

(1)连接好电路图后运行程序数码管显示不太稳定.

重新检查电路,发现有些导线接触不良甚至损坏,更换损坏导线重新运行程序直至数码管显示稳定.

(2)连接好电路后发现调节电位器数码管显示不改变。

首先检查整个电路,发现电路正常;

转而检查程序是否有问题,发现有个子程序参数设置错误,设置了错误的终端屏蔽端口。

纠正之后重新连接中断部分电路之后运行程序,发现当调节电位器之后,在一个计数周期之后,数码管的显示值会变化电路正常。

3系统软件

3.1软件设计

1、整个程序源代码包括定义数据段,定义代码段、子程序及主程序内容。

子程序中包括延时子程序、中断服务子程序及8259A初始化主程序。

2、A/D转换器从启动转换到转换结束需要一定时间。

为了得到正确的转换结果,必须在转换结束之后才能去读取数字量,这就是时间配合。

常用三种方法实现时间配合,有:

延时等待法、查询法和中断法。

中断法是当ADC转换结束,用转换结束信号作为中断请求信号向CPU提出中断请求,CPU相应中断,在中断服务子程序中读取转换结果。

3、此次设计中我使用的是中断法。

将ADC0809的转换结束指示引脚EOC输出信号作为中断请求信号,送中断控制器8259A,占用一个终端类型号n,在中断服务程序里读取转换结果。

4、A/D转换中IN0单极性输入电压与转换后数字的关系为N=(输入电压/参考电压)*256

5、经过A/D转换后的数字量是八位二进制数,通过以下程序转换为原始电压值

MOVBL,0C4H;

乘以5/256*10000=196

MULBL;

AX=AL*BL,得16位结果

PUSHAX;

压栈,存入结果

MOVBX,0001H

POPAX

MULBX;

将AX扩展为32位,结果在DX:

AX中

MOVBX,64H;

100

DIVBX;

DX:

AX/BX,得32位,商在AX中,余数在DX中

DIVBL;

AX/BL,得16位,商在AL中,余数在AH中

MOV[SI],AL;

整数部分,结果放进NUM

MOVSI,OFFSETNUM;

段码地址,指向七段码表

MOVAL,AH

MOVAH,00H

MOVBL,0AH

DIVBL;

再除10

MOV[SI+1],AL;

AL中为小数点后第一位

MOV[SI+2],AH;

AH中为小数点后第二位

6、通过8255A输出在三位LED数码管上,程序如下:

(后两位同理)

MOVAL,[SI]

MOVDI,OFFSETLEDDMAP;

段码地址,查表,显示第一位包括小数点

MOVAH,0

ADDDI,AX

MOVAL,[DI]

MOVDX,PORTA

OUTDX,AL

MOVDX,PORTC;

位选

MOVAL,00000100B

OUTDX,AL;

选通第一位数码管,整数位

CALLDELAY

总程序见附录一

3.2软件调试中出现的问题及解决措施

(1)编写程序时候有细微语法错误,结合运行时软件纠错提示,发现并改正;

(2)部分子程序未达到设定要求,无法产生想要的结果;

整理思路,重新构思程序的设计,与他人交流,修改程序。

(3)编写好的程序没有实现要求的全部功能,无法实现通过按键设置采样时间,只能在程序里面事先设置好采样时间,不可以用小键盘设置并显示。

最后,由于时间和精力问题,此功能未能得以实现。

总结:

通过本次课程设计,使我们加深了对微机接口技术这一门课程的理解,在思路的构思,方案的设定、动手操作方面都有较大的提升。

还增强了我们的团队协作能力。

还有,能够熟练的运用TD-PIT++这个软件来调试运行已编号的程序和调节实验箱。

更重要的是通过这次课程设计,使我们能够熟练理解书本上所学的代码并运用到电路的设计中去。

这就是理论与实践的转变。

三附录

附录1参考程序清单

;

T0809.asm

A/D转换实验

IOY0EQU3000H;

片选IOY0对应的端口始地址

IOY1EQU3040H;

AD0809EQUIOY1;

AD0809的端口地址

MY8255_AEQUIOY0+00H*4;

8255的A口地址

MY8255_BEQUIOY0+01H*4;

8255的B口地址

MY8255_CEQUIOY0+02H*4;

8255的C口地址

MY8255_MODEEQUIOY0+03H*4;

8255的控制寄存器地址

IOY2EQU3080H;

MY8254_COUNT0EQUIOY2+00H*4;

8254计数器0端口地址

MY8254_COUNT1EQUIOY2+01H*4;

8254计数器1端口地址

MY8254_COUNT2EQUIOY2+02H*4;

8254计数器2端口地址

MY8254_MODEEQUIOY2+03H*4;

8254控制寄存器端口地址

IOY3EQU30C0H;

MY8259_ICW1EQUIOY3+00H;

实验系统中8259的ICW1端口地址

MY8259_ICW2EQUIOY3+04H;

实验系统中8259的ICW2端口地址

MY8259_ICW3EQUIOY3+04H;

实验系统中8259的ICW3端口地址

MY8259_ICW4EQUIOY3+04H;

实验系统中8259的ICW4端口地址

MY8259_OCW1EQUIOY3+04H;

实验系统中8259的OCW1端口地址

MY8259_OCW2EQUIOY3+00H;

实验系统中8259的OCW2端口地址

MY8259_OCW3EQUIOY3+00H;

实验系统中8259的OCW3端口地址

INTR_IVADDEQU01C8H;

INTR对应的中断矢量地址

INTR_OCW1EQU0A1H;

INTR对应PC机内部8259的OCW1地址

INTR_OCW2EQU0A0H;

INTR对应PC机内部8259的OCW2地址

INTR_IMEQU0FBH;

INTR对应的中断屏蔽字

STACK1SEGMENTSTACKDB256DUP(?

STACK1ENDS

DATASEGMENTDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,

7CH,39H,5EH,79H,71H

CUNDB256DUP(?

MESDB'

Pressnumbertosetinterrupttime!

'

0AH,0DH,0AH,0DH,'

$'

CS_BAKDW?

;

保存INTR原中断处理程序入口段地址的变量

IP_BAKDW?

保存INTR原中断处理程序入口偏移地址的变量

IM_BAKDB?

保存INTR原中断屏蔽字的变量

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVSI,OFFSETCUN

CALLMY_8259;

初始化8259,完成设置

CALLMY_8254

CALLMY_0809;

第一次采集电压

QUERY:

CALLDISPLAY1;

显示电压

MOVAH,1;

判断是否有按键按下

INT16H

JNZQUIT;

有按键则退出

MOVDX,MY8259_OCW3;

向8259的OCW3发送查询命令

MOVAL,0CH

INAL,DX;

读出查询字

TESTAL,80H;

判断中断是否已响应

JZQUERY;

没有响应则继续查询

CALLMY_0809

CALLDISPLAY1

CALLMY_8259

JMPQUERY

QUIT:

MOVAX,4C00H;

结束程序退出

INT21H

MY_8254PROCNEAR

MOVDX,MY8254_MODE;

初始化8254工作方式

MOVAL,0B6H;

计数器2,方式3

OUTDX,AL

MOVDX,MY8254_COUNT2;

装入计数初值

MOVAL,64H;

100分频

MOVAL,00H

MOVAL,36H;

计数器0,方式3

MOVDX,MY8254_COUNT0;

MOVAL,00H;

18432分频

MOVAL,48H

MOVAL,74H;

计数器1,方式0

MOVDX,MY8254_COUNT1;

MOVAH,01H

INT21H

SUBAL,30H

MOVAL,08H;

计数8秒

RET

MY_8254ENDP

MY_8259PROCNEAR

MOVDX,MY8259_ICW1;

初始化实验系统中8259的ICW1

MOVAL,13H;

边沿触发、单片8259、需要ICW4

MOVDX,MY8259_ICW2;

初始化实验系统中8259的ICW2

MOVAL,08H

MOVDX,MY8259_ICW4;

初始化实验系统中8259的ICW4

MOVAL,01H;

非自动结束EOI

MOVDX,MY8259_OCW1;

初始化实验系统中8259的OCW1

MOVAL,0FEH;

打开IR0屏蔽位

MY_8259ENDP

MY_0809PROCNEAR;

采样

PUSHDX

PUSHCX

PUSHAX

MOVDX,AD0809;

启动A/D转换

CALLDALLY

读A/D转换结果

INAL,DX

MOVCH,AL;

分析结果进行显示

ANDAL,0F0H

MOVCL,04H

SHRAL,CL;

取出数据的十位

MOVBX,OFFSETDATA

XLAT

MOV[SI],AL

MOVAL,CH

ANDAL,0FH;

取出数据的各位

INCSI

MOV[SI],AL

POPCX

POPDX

MY_0809ENDP

DISPLAY1PROCNEAR

PUSHAX

MOVDX,MY8255_MODE;

初始化8255工作方式

MOVAL,81H;

方式0,A口、B口输出,C口低4位输入

MOVAL,[SI]

MOVDX,MY8255_B

MOVAL,02H

MOVDX,MY8255_A

DECSI

MOVAL,01H

MOVDX,MY8255_A

DISPLAY1ENDP

DALLYPROCNEAR;

软件延时子程序

MOVCX,4000H

D1:

MOVAX,0300H

D2:

DECAX

JNZD2

LOOPD1

DALLYENDP

CODEENDS

ENDSTART

附录2:

电路连接实物图

图8电路接线实物图

图9电路接线实物图

附录3:

仿真电路图

图10软件仿真图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1