资源描述
自动测试实验数据采集系统的设计多通道数字电压表的实现
12
2020年4月19日
文档仅供参考
实验三 数据采集系统的设计
——多通道数字电压表的实现
一、实验目的和要求
1.熟悉仿真器的使用方法;
2.了解教学实验系统的结构和地址译码方式;
3.掌握仪器系统中对模拟量信号的数据采集方法,了解数据采集系统的组成及单片机中的两种实现方法——利用外接专用ADC器件完成,利用片内ADC部件完成;
4.掌握系统中ADC接口的实现方法,进一步熟悉ADC0809的使用方法;
5.基本掌握智能仪器中数据运算和数据处理的方法;
6.体会一个典型仪器系统的总体设计思路
二、实验内容
模拟信号是最常见的被测信号,对它的采集与测量是自动化测试仪器中很重要的一部分。在许多高性能单片机内部拥有ADC部件,具有直接ADC功能。在没有片内ADC部件的单片机中,可直接选用专用ADC器件来完成。逐次比较式ADC器件转换速度快,性能价格比高,是当前ADC技术的主流,在本实验中以ADC0809为例来实现多通道数据采集过程。
1.利用实验系统上提供的ADC0809接口电路,当寻址为 8000H~8007H时,可分别实现对VX0—VX7八个通道的模/数转换,被测模拟电压有自制的+5V电阻分压网络提供,经过对ADC结束信号EOC的查询完成ADC结果的读入。如此循环采集每个通道10次,将所得数据一次存入片内RAM单元。
2.将每个通道10次采集所得的数据进行数字滤波处理,可采用限幅滤波和算术平均滤波或中值滤波的方法,并将结果依次存入指定的外部RAM单元。
3.将存入指定的外部RAM单元的十六进制被测数据经过标度转换变成十进制结果存入相应的外部RAM单元。
4.调用可手动切换的显示子程序(即第一节实验中的用上行/下行按键,手动控制显示程序),将八个通道的结果显示在LED数码管上。
流程图可参考图3-1
图3-1
三、实验仪器、设备(软、硬件)及仪器使用说明
1.计算机
2.仿真机E
3.WAVE调试软件
四、实验原理
1.ADC0809 A/D转换电路
电路连线说明:0809片选CS-由译码器74LS138的CS4-提供;数据信号线2-8 — 2-1接8031的AD0~AD7;A,B,C分别接8031的AB0,AB1,AB2,转换结束信号EOC经过反相器接到CN1的11脚AINT,ALE和START信号短接,接到74LS02的1脚,作为A/D转换的启动信号,CLOCK信号接74LS74的5脚,74LS74的作用是把8031的ALE信号二分频再接到CLOCK作为ADC0809的时钟输入,IN0~IN7接到CN3的5~12脚,供用户输入0 — +5V模拟量时使用。
图3-2 ADC0809 A/D转换电路
五、实验内容与步骤
1.在实验系统上将实验接口连线按内容1连接好,并自行设计实现+5V的电阻分压网络,作为8个被测输入电压分别加在实验系统机的ADC输入插孔IN7—IN0上,执行程序,观察LED的显示,并用数字电压表进行校验,列表比较两者的结果,分析它的误差。
2.编写使用查寻法进行多通道数据采集的监控程序,上PC机汇编调试经过后,将目标程序码送入仿真机进行调试,注意观察程序中的问题,记录解决方法。
3. 要求对电压连续采集10次,放到 30H~37H,然后求均值放20H~2F H,再把 转换的电压值 放到 10H~1FH;显示结果
1) 循环显示8个通道的电压值 ;
ORG 0000H
MAIN:LCALL ATOD ;采集数据
LCALL NEW ;转换为电压值
LCALL CLRLED;清LED
LCALL DISKLED;显示电压值
LCALL DELAY
SJMP MAIN
;********************************************************************
ATOD: MOV DPTR,#8000H;开始采集
LOOP1:MOVX @DPTR,A
LOOP2:JB P1.1,LOOP2
MOVX A,@DPTR
MOV 20H,A
RET
;*******此转换思路采取相减1V对应的数值和0.1V对应的数值
NEW:mov R0,#0
mov R1,#0
MOV A,20H;把采集的十六进制数转换为电压值
CLR C
NEW1:SUBB A,#33H ;(=#51)
JC OUT1
INC R0
AJMP NEW1
OUT1:CLR C
MOV A,R0
MOV B,#33H ;(=#51)
MUL AB
MOV R3,A
MOV A,20H
SUBB A,R3
NEW2:CLR C
SUBB A,#5
JC OUT2
INC R1
LJMP NEW2
OUT2:RET
;****************清LED*******************************************
CLRLED:MOV SCON,#00H //同步移位寄存器
MOV R6,#08H
TP21:MOV A,#0FFH
MOV SBUF,A
KK:JNB TI,KK
CLR TI
DJNZ R6,TP21
RET
;**************显示电压值*******************************************
DISKLED:MOV SCON,#00H
MOV DPTR,#TAB
MOV A,R0 ;取电压整数部分
ORL A,#10H;形成带小数点的数
DISKEY:MOVC A,@A+DPTR
MOV SBUF,A ;送出显示
LP:JNB TI,LP
CLR TI
MOV A,R1;取电压小数部分的一位数
MOVC A,@A+DPTR
MOV SBUF,A
LP1:JNB TI,LP1
CLR TI
RET
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H
DB 92H,82H,0F8H,80H,90H
DB 88H,83H,0C6H,0A1H,86H,8EH
DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,18H
DELAY:MOV R2,#250 ;延时子函数
LL2:MOV R3,#250
LL1:NOP
NOP
DJNZ R3,LL1
DJNZ R2,LL2
RET
2) 按不同开关显示 对应通道号及此通道的电压值
MAIN:LCALL ATOD ;采集数据
LCALL NEW;转换为电压值
LCALL CLRIED ;清LED
LCALL LED;显示电压值
LJMP MAIN
;***********************************************************************
ATOD: MOV DPTR,#8000H;开始采集
LOOP1:MOVX @DPTR,A
LOOP2:JB P1.1,LOOP2
MOVX A,@DPTR
MOV 20H,A
RET
;***********************************************************************
NEW: mov r0,#0
mov R1,#0
MOV A,20H;把采集的十六进制数转换为电压值
CLR C
NEW1:SUBB A,#33H ;(=#51)
JC OUT1
INC R0
AJMP NEW1
OUT1:CLR C
MOV A,R0
MOV B,#33H ;(=#51)
MUL AB
MOV R3,A
MOV A,20H
SUBB A,R3
NEW2:SUBB A,#5
JC OUT2
INC R1
LJMP NEW2
OUT2:RET
;***********************************************************************
CLRIED:MOV SCON,#00H
MOV R6,#08H
TP21:MOV A,#0FFH
MOV SBUF,A
KK:JNB TI,KK
CLR TI
DJNZ R6,TP21
RET
;***********************************************************************
LED:MOV SCON,#00H
MOV DPTR,#TAB
MOV A,R0
ORL A,#10H;形成带小数点的数
DISKEY:MOVC A,@A+DPTR
MOV SBUF,A
LP:JNB TI,LP
CLR TI
MOV A,R1 ;取小数点后的一位数
MOV SBUF,A
LP1:JNB TI,LP1
CLR TI
RET
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H
DB 92H,82H,0F8H,80H,90H
DB 88H,83H,0C6H,0A1H,86H,8EH
DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,18H
展开阅读全文