AD数据采集及显示 (2)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

湖南科技大学信息与电气工程学院
《微机原理与接口技术》
课程设计报告
题目:AD数据采集及显示
专业:
班级:
姓名:
学号:
指导老师:
目录
1.设计目的及意义 (1)
1.1设计目的 (1)
1.2设计意义 (1)
2.设计要求及方案论证 (1)
2.1设计要求 (1)
2.2方案论证 (1)
3.硬件设计 (2)
3.1端口地址译码电路 (2)
3.2 A/D模数转换电路 (3)
3.3数码管显示电路 (5)
4.软件设计 (5)
5.心得体会 (7)
附录: (8)
1.设计目的及意义
1.1设计目的
(1)掌握计算机应用系统特别是微机接口系统的设计;
(2)掌握接口电路设计,初步掌握电子设计软件Altium designer使用;
(3)掌握微机接口程序的编写与调试技术;
(4)学会ADC0809八位模数转换芯片的使用方法;
(5)利用所学微机的理论知识进行软硬件整体设计,提高综合应用能力。

1.2设计意义
A/D数据采集及其显示作为一种常用的模数转换显示器,是现代测试控制领域中应用非常广泛的通用仪器之一。

计算机只能对数字信号进行处理,处理的结果还是数字量,然而计算机在用于生产过程自动控制时,其所要处理的变量往往是连续变化的模拟量,如温度、压力、速度等都是模拟量,这些非电的模拟量经过传感器变成电压或电流等电的模拟量,然后将电的模拟量经过数模转换器转换成数字量,才能送入计算机进行处理。

本课程设计目的是将电压模拟量经ADC0809模数转换器转换成数字量后用数码管显示其数值。

2.设计要求及方案论证
2.1设计要求
本设计为设计一个AD数据采集及显示接口电路,通过电位计改变电压大小,电压满程为5V,将电压送至ADC0809模数转换芯片,ADC0809是八位逐次逼近式模数转换器,选择通道0输入,8255并行输入输出接口芯片PA口输出,选择方式“0”。

转换后的八位二进制数字量经过74LS273锁存器送至七段数码管显示数值。

2.2方案论证
方案一:逐次逼近式A/D转换器。

逐次逼近式A/D转换器是将一个待转换的模拟输入信号VIN与一个“推测”信号V1相比较,根据推测信号是大于还是小于输入信号来决定减小还是增大该推测信号,以便模拟输入信号逼近。

推测辛哈由D/A变换器的输出获得,当推测信号与模拟输入信号“相等”时,向D/A
转换器输入的数字即为对应的模拟输入的数字。

其“推测”的算法是这样的,它使二进制计数器的二进制数的每一位从最高位起依次置1,每接一位时,都要进行测试。

若模拟输入信号VIN小于推测信号V1,则比较器的输出为零,并使该位置零;否则比较器输出为1,并使该位保持1.无论哪种情况,均应继续比较下一位,直到最末位为止。

此时在D/A变换器的数字输入即为对应于模拟输入信号的数字量,将此数字输出,即完成A/D转换过程。

方案二:双积分式A/D转换器。

双积分式A/D转换器先对未知的输入电压进行固定时间的积分,然后转为对标准电压进行反向积分,直至积分输出返回到起始值。

则对标准电压进行积分的时间T正比于输入模拟电压。

输入电压大,则反向积分时间长。

用高频率标准时钟脉冲来测量这个时间,即可得到相应于输入模拟电压的数字量。

方案三:高速并行式ADC。

为了提高转换速率可以采用并行编码结构的ADC,工作过程:当正输入电压大于负输入电压大小时,该比较器给出数字1状态;当正输入端电压小于负输出端电压时,比较器给出数字0状态。

方案四:子区式ADC。

子区式ADC采用并行编码与串行编码相结合,可获得速度较高的ADC。

实际工作时由第一个4位并行粗精度ADC完成对模拟量的转换,得到高4位的编码,经高速ADC后,输入运算放大器的反相端,与原模拟输入Vi相减得到差值信号,经16倍放大器放大以后,由第二个4位并行细精度ADC转换,得到低4位数码,高低4位组合后,得到Vi的8位ADC数码。

逐次逼近式A/D转换器的转换速度较快,一般在几微妙到上百微妙之间。

其他方案A/D转换器的速度很慢。

因此,本设计采用八位逐次逼近式ADC0809。

3.硬件设计
3.1端口地址译码电路
本电路模块为74LS138端口译码电路,提供的I/O端口地址信号为200-23F。

74LS138译码器的Y0输出端接ADC0809的片选信号CS,低电平有效,即端口地址为200H。

200H=1000000000b,即十根可用地址线的A9为1,其余应为0。

地址线A3、A4、A5分别接译码器输入端A、B、C,地址线A6、A7、A8接三输入或非门输入端,其输出再与地址线A9作为二输入与非门输入端,二输入与非门输出端接控制信号G2A,其为低电平有效。

译码器控制信号G1接高电平,
控制信号G2B接低电平,译码器处于正常译码状态。

译码器的输出端Y1接锁存器74LS273的片选信号,即为208H,原理同上所述。

图 1 端口译码电路
芯片介绍:
1)74LS138为3线-8线译码器,A0-A2为地址输入端,STA(G1):选通端,/STB(/E2)、/STC(/E3):选通端(低电平有效),/Y0~/Y7:输出端(低电平有效)。

当一个选通端(E1)为高电平,另两个选通端((/E2))和(/E3))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。

比如:A2A1A0=110时,则Y6输出端输出低电平信号。

利用E1、E2和E3可级联扩展成24 线译码器;若外接一个反相器还可级联扩展成32 线译码器。

若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。

可用在8086的译码电路中,扩展内存。

2)74LS00为四组2输入端与非门,本设计选择了芯片的1,2引脚输入,3脚输出。

3)74LS27为三组3输入端或非门,本设计选择了芯片的3,4,5引脚输入,6脚输出。

3.2 A/D模数转换电路
本模块采用八位逐次逼近式ADC0809模数转换芯片,芯片的端口号地址为200H。

通过电位计改变电压大小,电压满程为5V,选择通道0输入,即通道地址线A、B、C全部接低电平。

参考电源正接+5V,参考电源负接地。

ADC0809的数据输出端接8255并行接口芯片的PA口,选择工作方式“0”。

图 2 A/D模数转换电路
芯片介绍:
ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。

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

IN0~IN7:8路模拟量输入端;2-1~2-8:8位数字量输出端;ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路;ALE:地址锁存允许信号,输入端,高电平有效;START:A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换);EOC:A/D转换结束信号,输出端,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平);OE:数据输出允许信号,输入端,高电平有效。

当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量;CLK:时钟脉冲输入端。

要求时钟频率不高于640KHz;REF(+)、REF(-):基准电压。

首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。

此地址经译码选通8路模拟输入之一到比较器。

START上升沿将逐次逼近寄存器复位。

下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。

直到A/D 转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。

当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。

转换数据的传送A/D转换后得到的数据应及时传送给单片机进行处理。

数据传送的关键问题是如何确认A/D转换的完成,因为只
有确认完成后,才能进行传送。

3.3数码管显示电路
数码管显示电路采用74LS273锁存器锁存数据,采用七段共阴数码管显示电压数值。

图 3 数码管显示电路
芯片介绍:
74LS273:74LS273是一种带清除功能的8D触发器,1D-8D为数据输入端,1Q-8Q为数据输出端,正脉冲触发,低电平清除,常用作数据锁存器和地址锁存器。

D0-D7:数据输入;Q0-Q7:数据输出;WR:主清除端,低电平触发,即当为低电平时,芯片被清除,输出全为0;CP:触发端,上升沿触发,当CP从低电平变为高电平时,D0-D7的数据通过芯片,为0时将数据锁存,D0-D7不变。

4.软件设计
初始化8255,设置为简单的输入输出,PA口作为输出口,地址为20bH;初始化ADC0809模数转换芯片,地址为200H,al赋初值为0;读取al寄存器中的值,将al中的值依次与电压值为5V、4V、3V、2V、1V所对应的二进制值大小相比较,若大于等于5V为真,则显示“5”,并返回继续读取al中的值,否则,继续判断是否大于等于4V,...,以此类推,若小于1V,则显示“0”。

显示“0”
图 4 软件流程图 开始
设置8255在简单输入输出方式,PA 口作为输出 初始化ADC0809,采用查询方式 读取al 寄存器中的值 >=ffh >=cch >=99h >=66h >=33h 显示“5” 显示“4” 显示“3”
显示“2” 显示“0” 显示“1” Y Y Y Y Y N N N N N
5.心得体会
本次课程设计为时两周,第一周主要任务为查找资料,选择以及方案设计和绘制原理图,第二周则主要是编写程序,整体调试以及撰写设计报告。

在本次课程设计中,无论是在程序设计方面还是实践动手能力方面都得到了不少的锻炼,对硬件知识的了解以及对安装调试能力也有提升。

另一方面,通过课程设计巩固了《微机原理与接口技术》这门教材中的不少知识。

在设计过程中,最开始是对ADC0809模块的设计与调试,输入一个电压值,通过ADC0809转换后将数据送至74LS273锁存器,观察LED灯的变化来验证试验的正确性。

然后,进行显示模块的设计,选用了较为简单的七段数码管显示,用万用表测试出数码管为共阴极,然后在软件方面进行设计,判断al寄存器中的数字量大小,然后在对应范围内显示相应值。

最后,在这里感谢欧青立老师以及宋芳老师,谢谢你们的耐心指导,在电路检测和软件设计上给予了我很大帮助。

参考文献
[1]朱晓华,微机原理与接口技术(第2版),电子工业出版社,2011
[2]李干林,微机原理与接口技术实验指导,北京大学出版社,2010
附录:
1.整体电路图
图 5 整体电路图
2.程序源码
;A/D数据采集与显示实验程序,CPU为8088,采用8位逐次逼近的ADC0809,;电位器改变电压值,送ADC的“0”通道,模数转换后由数码管显示数字。

;作者:卢泽时间:2014/12/19
;本程序完全自行编写,未经允许,不得拷贝。

.model small
.stack 200h
.code
start:
mov dx,20bh
mov al,10000000b;PA口输出“0”方式
out dx,al
x2:
mov dx,200h;ADC0809的驱动地址
mov al,0
out dx,al
mov si,0ffh
x1:
dec si
jnz x1 ;延时
mov dx,200h
in al,dx ;读A/D数值
;以下为判断语句
cmp al,11111111b;5v
jnc no1;cf=0,表示无进位,al中的内容>=5v jc no2;cf=1,有进位,al中的值<5v
;继续判断是否小于4
no2:
cmp al,11001100b;4v
jnc no3;cf=0,表示无进位,al中的内容>=4v jc no4;cf=1,有进位,al中的值<4v
no1:;显示5
mov dx,208h
mov al,01101101b;显示“5”
out dx,al
jmp x2
no3:;显示4
mov dx,208h
mov al,01100110b;显示“4”
out dx,al
jmp x2
;继续判断是否小于3
no4:
cmp al,10011001b;3v
jnc no5;cf=0,表示无进位,al中的内容>=3v jc no6;cf=1,有进位,al中的值<3v
no5:;显示3
mov dx,208h
mov al,01001111b;显示“3”
out dx,al
jmp x2
;继续判断是否小于2
no6:
cmp al,01100110b;2v
jnc no7;cf=0,表示无进位,al中的内容>=2v jc no8;cf=1,有进位,al中的值<2v
no7:;显示2
mov dx,208h
mov al,01011011b;显示“2”
out dx,al
jmp x2
;继续判断是否小于1
no8:
cmp al,00110011b;1v
jnc no9;cf=0,表示无进位,al中的内容>=1v jc no10;cf=1,有进位,al中的值<1v
no9:;显示1
mov dx,208h
mov al,00000110b;显示“1”
out dx,al
jmp x2
no10:;显示0
mov dx,208h
mov al,00111111b;显示“0”
out dx,al
jmp x2
mov ah,4ch ;结束,可以修改al设置返回码
int 21h
end start。

相关文档
最新文档