ADC0809--EDA实验
- 格式:doc
- 大小:174.54 KB
- 文档页数:3
一、实验内容利用实验仪上的0809做A/ D转换实验,〖ZH(〗实验仪上的W1电位器提供模拟量输入。
编制程序,将模拟量转换成数字量,通过发光二极管L1-L8显示。
二、实验说明A/ D转换器大致分有三类:一是双积分A/ D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近式A/ D转换器,精度、速度、价格适中;三是并行A/ D转换器,速度快,价格也昂贵。
实验用ADC0809属第二类,是8位A/ D转换器。
每采集一次一般需100μs。
由于ADC0809 A/ D转换器转换结束后会自动产生EOC信号(高电平有效),取反后将其与8031的INT0相连,可以用中断方式读取A/ D转换结果。
三、实验步骤①把A/D区0809的0通道IN0用插针接至W1的中心抽头V01插孔(0-5V)。
②0809的CLK插孔与分频输出端T4相连。
③将W2的输入VIN接+12V插孔,+12V插孔再连到外置电源的+12上(电源内置时,该线已连好)。
调节W2,使V REF 端为+5V。
④将A/D区的VREF 连到W2的输出VREF 端。
⑤EXIC1上插上74LS02芯片,将有关线路按图连好。
⑥将A/D区D0-D7用排线与BUS1区XD0-XD7相连。
⑦将BUS3区P3.0用连到数码管显示区DA TA插孔。
⑧将BUS3区P3.1用连到数码管显示区CLK插孔。
⑨单脉冲发生/SP插孔连到数码管显示区CLR插孔。
⑩仿真实验系统在"P....."状态下。
⑾以连续方式从起始地址06D0运行程序,在数码管上显示当前采集的电压值转换后的数字量,调节W1数码管显示将随着电压变化而相应变化,典型值为0-00H,2.5V-80H,5V-FFH。
#include<reg51.h>#include<absacc.h>#define ad0809 XBYTE[0x9000]//sbit eoc=P3^3;sbit clk=P3^1;sbit sdata=P3^0;void HC164_Send(unsigned char displaysag); void display(unsigned char d);extern void delay(unsigned int n);void delay(unsigned int n);void main(void){unsigned char *add;unsigned char d,adcdata;float adc;add=& ad0809;while(1){*add=0x00;//while(eoc==0);delay(1);d=*add;adc=(float)d*5/255+0.05;adcdata=adc*10;display(adcdata);delay(30000);}}void delay(unsigned int n){while(n--);}。
8位A/D转换实验1.实验目的了解A/D转换器ADC0809的基本性能;掌握A D C0809转换芯片的使用及与C P U接口方法。
学习A/D转换程序设计方法。
通过实训了解单片机的数据采集过程。
2.实验原理及内容用一片ADC0809和必要的外围器件与A T89C51进行接口连接,设计一个简易数字电压表,要求能对IN0所输入的模拟电压进行识别,将其转换成相应的二进制数并以发光二极管的形式显示;用万用表测量IN0输入的模拟电压值,并与转换结果进行对比,计算测量误差。
八路8位A/D实验电路由一片A D C0809,一片74L S02,一片74L S373组成。
A D C0809转换器引脚排布如图1所示。
图1A D C0809转换器引脚A D C0809转换芯片内部结构如图2所示。
图2A D C0809转换芯片内部结构A D C0809是一种能将8路模拟信号转换成8位数字量的A/D转换器,它采用逐次逼近法进行转换。
8路模拟开关由3位地址码经译码进行选通。
3位地址码在0809内部可锁存。
其输出的8位数字也可锁存。
控制信号及引脚功能:I N0~I N7:8个模拟输入量0~5V。
S T R A T:启动A/D转换信号,高电平有效,启动0809开始转换。
E O C:转换结束信号,A/D转换结束,发一正脉冲,此信号可用作A/D转换结束的检测信号或中断请求信号。
O E: 输出允许信号,此信号被选中时(当O E为高电平时),允许从A/D锁存器中读取数字量,高电平有效,一般由C P U发来的(C S)和读信号(R D)联合产生O E信号。
当O E为低电平时,D0~D7对外呈高阻抗。
C L K: 转换时钟,A/D转换需要时钟信号。
A L E:地址锁存允许信号,这个信号是外部加到0809上的信号,高电平有效,它的作用是把外部加来的选择模拟开关的地址码锁存到0809的地址锁存器内,A L E与外加地址码决定选哪个模拟输入通道。
大连理工大学实验报告实验室(房间号):420 实验台号码:4班级:电子1303姓名:指导教师签字:成绩:实验五ADC0809实验一、实验目的和要求了解ADC0809模数转换器的基本原理,外围电路结构及编程方法。
二、实验算法整个程序由主程序,中断服务程序和8255A的B口输出组成。
主程序:对ADC0809的初始化及启动和对8255A的初始化。
改变电位器:读取ADC数据,送LED显示模块。
三、实验电路图四、实验流程图五、程序清单.model small.386AD_IO EQU 200hIO_8255 EQU 220hDATA SEGMENTBUF DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,IO_8255ADD DX,03HMOV AL,10000000BOUT DX,ALRPT: MOV DX,AD_IO ;ADC启动转换地址OUT DX,AL ;启动ADCADD DX,02HL1: IN AL,DXTEST AL,01H ;测试EOC=1?JZ L1MOV DX,AD_IO ;读数据地址INC D XIN AL,DXMOV BUF,ALCALL DISP ;显示JMP RPTDISP PROCMOV AL,BUFMOV DX,IO_8255ADD DX,01HOUT DX,ALRETDISP ENDPCODE ENDSEND START六、实验结果与分析运行程序,可以观察到LED亮,旋转电位器旋钮,改变模拟量,可以观察到LED亮暗变化,说明变成了新的数字量,实现了数模转换。
七、实验体会和建议通过本实验,掌握了0809的使用方法。
实验涉及到硬件电路的连接,因此在调试之前一定要注意连接正确。
本次实验刚开始我在DISP子程序中出现了一个错误,导致运行程序后LED并没有亮,经过设置断点进行调试才找到错误并改正。
实验三ADC0809模数转换实验一、实验目的1、掌握ADC0809模/数转换芯片与单片机的连接方法及ADC0809的典型应用。
2、掌握用查询方式、中断方式完成模/数转换程序的编写方法。
二、实验说明本实验使用ADC0809模数转换器,ADC0809是8通道8位CMOS逐次逼近式A/D转换芯片,片内有模拟量通道选择开关及相应的通道锁存、译码电路,A/D转换后的数据由三态锁存器输出,由于片内没有时钟需外接时钟信号。
下图为该芯片的引脚图。
各引脚功能如下:IN0~IN7:八路模拟信号输入端。
ADD-A、ADD-B、ADD-C:三位地址码输入端。
八路模拟信号转换选择由这三个端口控制。
CLOCK:外部时钟输入端(小于1MHz)。
D0~D7:数字量输出端。
OE:A/D转换结果输出允许控制端。
当OE为高电平时,允许A/D转换结果从D0~D7端输出。
ALE:地址锁存允许信号输入端。
八路模拟通道地址由A、B、C输入,在ALE信号有效时将该八路地址锁存。
START:启动A/D转换信号输入端。
当START端输入一个正脉冲时,将进行A/D转换。
EOC:A/D转换结束信号输出端。
当A/D转换结束后,EOC输出高电平。
Vref(+)、Vref(-):正负基准电压输入端。
基准正电压的典型值为+5V。
VCC和GND:芯片的电源端和地端。
三、实验步骤1、单片机最小应用系统1的P0口接A/D转换的D0~D7口,单片机最小应用系统1的Q0~Q7口接0809的A0~A7口,单片机最小应用系统1的WR、RD、P2.0、ALE、INT1分别接A/D转换的WR、RD、P2.0、CLOCK、INT1,A/D转换的IN接入+5V,单片机最小应用系统1的RXD、TXD连接到串行静态显示实验模块的DIN、CLK。
2、基于KEIL建立A/D转换程序。
要求将采集到的电压等间隔分为0~9共10级,并用一位共阴级数码管显示出来。
四、流程图及源程序1.流程图如图2所示。
A/D转换实验1、实验目的:掌握A/D转换与单片机接口的方法;了解A/D芯片0809转换性能及编程方法;2、实验内容:利用综合实验仪上的0809做A/D转换器,综合实验仪上的电位器提供模拟量输入,编制程序,将模拟量转换成数字量,通过8155键显区数码管显示出来。
3、实验电路图4、实验器材:(1)超想-3000TB综合实验仪 1 台(2)超想3000仿真器 1 台(3)连线若干根(4)计算机 1 台5、实验连线:ADC0809的09IN0通道与模拟信号发生器的Vin0孔相连,ADC080片选信号CS09 孔与译码器的YC2孔相连,脉冲源的0.5M与ADC0809的CLOCK相连。
6、实验原理:A/D转换器的功能主要是将输入的模拟信号转换成数字信号,如电压、电流、温度测量等都属于这种转换。
本实验中采用的转换器为ADC0809,它是一个8位逐次逼近型A/D转换器,可以对8个模拟量进行转换,转换时间为100μS。
其工作过程如下:首先由地址锁存信号ALE的上升沿将引脚ADDA、ADDB和ADDC上的信号锁存到地址寄存器内,用以选择模拟量输入通道;START信号的下降沿启动A/D转换器开始工作;当转换结束时,AD0809使EOC引脚由低电平变成高电平,程序可以通过查询的方式读取转换结果,也可以通过中断方式读取结果。
CLOCK为转换时钟输入端,频率为100KHz-1.2MHz,推荐值为640KHz。
7、程序框图8、实验步骤:(1)设定仿真模式为程序空间在仿真器上,数据空间在用户板上(2)硬件诊断:调整综合实验仪上模拟信号发生器的电位器,使输入到此AD0809的IN0上电压为一定值。
(3)编写程序,并编译通过。
本程序使用查询的方式读取转换结果。
在读取转换结果的指令后设置断点,运行程序,在断点处检查并读出A/D转换结果,数据是否与Vin0相对应。
修改程序中错误,使显示值随Vin0变化而变化。
9、实验程序OUTBIT equ 0e101h ; 位控制口CLK164 equ 0e102h ; 段控制口(接164时钟位)DAT164 equ 0e102h ; 段控制口(接164数据位)IN equ 0e103h ; 键盘读入口LEDBuf equ 40h ; 显示缓冲org 0000hmov sp,#60hmov dptr,#0e100h ;8155初始化mov a,#03hmovx @dptr,amov 40h,#00h ;显示缓冲器初始化mov 41h,#08hmov 42h,#00hmov 43h,#09hmov 44h,#00h ;存放转换后数字的高位mov 45h,#00h ;存放转换后数字的低位LOOP1: MOV R7,#40VI: LCALL DISPLAYDJNZ R7,VImov a,#00hmov dptr,#0a000hmovx @dptr,a ;0809AD的通道开始转换mov r7,#0fhloop2: djnz r7,loop2movx a,@dptr ;读取转换结果mov r0,#45h ;拆字lcall ptdssjmp loop1ptds: mov r1,alcall ptds1mov a,r1swap aptds1: anl a,#0fhmov @r0,adec r0retDelay:mov r7, #0 ; 延时子程序DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopretDISPLAY:setb 0d3hmov r0, #LEDBufmov r1, #6 ; 共6个八段管mov r2, #00100000b ; 从左边开始显示Loop:mov dptr, #OUTBITmov a, #00hmovx @dptr, a ; 关所有八段管mov a, @r0mov dptr,#LEDmapmovc a,@a+dptrmov B, #8 ; 送164DLP:rlc amov r3, amov acc.0, canl a,#0fdhmov dptr, #DAT164movx @dptr, amov dptr, #CLK164orl a,#02hmovx @dptr, aanl a,#0fDhmovx @dptr, amov a, r3djnz B, DLPmov dptr, #OUTBITmov a, r2movx @dptr, a ; 显示一位八段管mov r6, #1call Delaymov a, r2 ; 显示下一位rr amov r2, ainc r0djnz r1, Loopmov dptr, #OUTBITmov a, #0movx @dptr, aclr 0d3h ; 关所有八段管retLEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hdb 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hEND10、实验思考:1、试编写循环采集8路模拟量输入A/D转换程序。
ADC0809A-D转换器基本应用技术D(6).当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。
3.实验任务如下图所示,从ADC0809的通道IN3输入0-5V之间的模拟量,通过ADC0809转换成数字量在数码管上以十进制形成显示出来。
ADC0809的VREF接+5V 电压。
4.电路原理图图1.27.15.系统板上硬件连线(1).把“单片机系统板”区域中的P1端口的P1.0-P1.7用8芯排线连接到“动态数码显示”区域中的A B C D E F G H端口上,作为数码管的笔段驱动。
(2).把“单片机系统板”区域中的P2端口的P2.0-P2.7用8芯排线连接到“动态数码显示”区域中的S1 S2 S3 S4 S5 S6 S7 S8端口上,作为数码管的位段选择。
(3).把“单片机系统板”区域中的P0端口的P0.0-P0.7用8芯排线连接到“模数转换模块”区域中的D0D1D2D3D4D5D6D7端口上,A/D转换完毕的数据输入到单片机的P0端口(4).把“模数转换模块”区域中的VREF端子用导线连接到“电源模块”区域中的VCC端子上;(5).把“模数转换模块”区域中的A2A1A0端子用导线连接到“单片机系统”区域中的P3.4 P3.5 P3.6端子上;(6).把“模数转换模块”区域中的ST端子用导线连接到“单片机系统”区域中的P3.0端子上;(7).把“模数转换模块”区域中的OE端子用导线连接到“单片机系统”区域中的P3.1端子上;(8).把“模数转换模块”区域中的EOC端子用导线连接到“单片机系统”区域中的P3.2端子上;(9).把“模数转换模块”区域中的CLK端子用导线连接到“分频模块”区域中的/4 端子上;(10).把“分频模块”区域中的CK IN端子用导线连接到“单片机系统”区域中的ALE 端子上;(11).把“模数转换模块”区域中的IN3端子用导线连接到“三路可调压模块”区域中的VR1 端子上;6.程序设计内容(1).进行A/D转换时,采用查询EOC的标志信号来检测A/D转换是否完毕,若完毕则把数据通过P0端口读入,经过数据处理之后在数码管上显示。
EDA实验报告之实验十一A/D转换实验1、实验目的(1)掌握A/D转换器与单片机接口的方法;(2)了解A/D芯片0809的转换性能及编程方法;(3)通过实验了解数据采集、处理的基本方法。
2、实验要求利用实验板上的ADC0809做A/D转换器,实验板上的电位器提供模拟量输入,编制程序,将模拟量转换成二进制数字量,在数码管的最高两位显示出数字量来。
另外要把模拟量值在数码管的最低三位显示出来。
例如显示“80 2.50”(其中80是采样数值,而2.50是电压值。
要求程序可连续运行以便测量不同的模拟电压(类似于电压表)(注意:多次采集求平均值可提高转换精度)3、实验说明1)原理图参看LAB6000使用手册、图示帮助等;2)连线方式与LAB6000给出的有所不同,这里的实验用数码管显示结果(原实验则用LED显示结果);3)EOC可接中断、其它引脚或不接,对应的获取数据方法为中断、查询、延迟,建议采用中断方法;4)注意ADC0809各连线接在了什么位置。
4、写出实验报告(包括6位LED显示的部分电路图)。
5、实验内容5.1 使用仪器、仪表,开发平台型号本实验用到了WAVE 6000软件平台,电脑一台,LAB6000实验箱,若干连线,串行数据线。
5.2 性能指标、技术要求、思路方案、流程图5.2.1性能指标、技术要求见实验目的和实验要求。
5.2.2 思路方案:先将所有中断使能位置位,然后启动A/D转换。
在主程序中显示缓冲区的内容,判断4次中断已满的标志位是否置位,是的话调用计算子程序计算数字平均值和模拟值,这个过程反复循环的进行。
5.2.3流程图:主程序:计算数字量和模拟量的子程序:中断子程序:5.3源程序;采样的数字值放在20H 开始的单元中,修改R6的值(4);可以控制采样的个数(为了方便我们选择2,4,8……等2的倍数),上限为256个ORG 0000HLJMP BEGIN ;ORG 0003H ;外部中断0LJMP INT0ORG 0030H;=================BEGIN:FLAG EQU 50H ;对应到16进制的是2A单元,四次中断是否满的标志位TRANS EQU 51H ;是否一次转换完毕的标志位MOV R0,#20H ;采样数据存储单元MOV R6,#4 ;采样4次求均值CLR FLAGCLR TRANSSETB EA ; 开所有中断SETB IT0 ; INT0边沿触发SETB EX0 ; 允许INT0中断MOV DPTR,#8000H ; 指向0809 IN0通道地址MOVX @DPTR,A;=================LOOP:LCALL DISPLAYJNB TRANS,LOOP ;判断是否发生EOC,为0时转移CLR TRANSJNB FLAG,CONTINUE ;为0时转移CLR FLAGLCALL COMPUTEECONTINUE:MOV DPTR,#8000HMOVX @DPTR,A ; 启动A/D转换,因为与A值无关,故不管ALJMP LOOP;================= ;中断服务程序INT0:MOVX A,@DPTR ; 读A/D转换结果MOV @R0,AINC R0DJNZ R6,RETURNSETBFLAGMOV R6,#4MOV R0,#20HRETURN:SETB TRANSRETI;=================DISPLAY:MOV R4,#02H;==============BEGIN0:MOV A,#01H ;位选择字节MOV R2,#5 ;5次MOV R1,#60H ;数据地址LOOOP:MOV DPTR,#9002H ;位选输出地址MOVX @DPTR,ARL A ;修改位信号PUSH AMOV DPTR,#9004H ;数据输出地址MOV A,@R1LCALL CHECK ;查表CJNE R1,#62H,PEIORL A,#80HPEI:MOVX @DPTR,ALCALL DELAYINC R1POP ADJNZ R2,LOOOPLCALL DELAY ;为了两轮显示间时间间隔久一些DJNZ R4,BEGIN0RET;================DELAY:MOV R5,#02HMOV R3,#09FHLOOPP:DJNZ R3,$DJNZ R5,LOOPPRET;================= ;计算数字平均值和模拟值COMPUTEE: ;计算采样值总和,放在BA单元,前者为高位MOV R1,#20H ;指向20H单元MOV R5,#4CLR CCLR AMOV B,ALLOOPP:ADD A,@R1JNC GOONINC B ;C为1是加一CLR CGOON:INC R1DJNZ R5,LLOOPP;====================MOV R5,#2 ;2的2倍是4次DIVISION: ;数字平均值最后在A中,B移位完后为0PUSH AMOV A,BCLR CRRC AMOV B,A ;暂存POP ARRC ADJNZ R5,DIVISION;===================== ;这部分程序是为了获得模拟值和将数字量分别存为两个字节里面PUSH APUSH AANL A,#0FHMOV 63H,APOP AANL A,#0F0HSWAP AMOV 64H,APOP AMOV B,#5MUL ABMOV 62H,BMOV B,#10MUL ABMOV 61H,BMOV B,#10MUL ABMOV 60H,BRET;==================CHECK:INC AMOVC A,@A+PCRETTABLE:DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FHDB 77H,7CH,39H,5EH,79HDB 71H5.4实验步骤,完成情况5.4.1在WAVE 6000中新建文件,并将代码写入文件中,保存为EXPERIMENT11.ASM;5.4.2在WAVE 6000中新建项目,并在模块文件中包含上述EXPERIMENT11.ASM文件,最后保存为EXPERIMENT11.PRG。
实验十三A/D转换器ADC0809实验五、实验步骤1、单通道采集接线⑴使用2×10的排线连接D7区的J28接到A7区的J84;⑵将D2区10K电位器的左端金属孔通过导线连接到该区的GND金属孔,而右端金属孔通过导线连接到该区的VCC金属孔;⑶D2区10K电位器的中间金属孔连接到A7区的P2_IO2金属孔(IN0);⑷将A7区的P2_IO3~P2_IO5分别连接到A2区的A2~A0;⑸将A7区的P2_CS连接到A2区的A15;⑹用排线将A2区的J61与D1区的J52相连。
2、实验步骤⑴运行编写好的软件程序,每次跑到断点就会停止,此时观察转换的结果和用数字万用表测量的结果相比较是否正确(所需观察的存储单元或者变量在程序中依照注释执行);⑵改变10K电位器的旋钮位置,用数字万用表测量中间金属孔的电压,再次运行程序至断点处,观察转换的结果是否正确。
⑶扭动电位器,改变IN0模拟输入电压,再次运行程序到断点处,观察30H单元的数值是否随之改变,同时观察8个发光二极管显示的转换结果的二进制数(1亮,0灭),改变的是否正确?⑷数据换算成实际电压值是否与万用表的测量结果相等?3、实验参考程序清单ORG 8000HLJMP MAINORG 8100HMAIN: MOV SP,#70HMAIN1: MOV R1,#30H ;置数据区首地址,用于存放A/D转换结果MOV DPTR,#7FF8H ;P2.0=0,且指向通道0LOOP:MOVX @DPTR,A;启动A/D转换CALL DELAYMOVX A,@DPTR ;读取转换结果MOV @R1,A;转存LCALL P1ZHCPL AMOV P1,ALJMP MAIN1P1ZH: MOV C,ACC.0MOV 07H,CMOV C,ACC.1MOV 06H,CMOV C,ACC.2MOV 05H,CMOV C,ACC.3MOV 04H,CMOV C,ACC.4MOV 03H,CMOV C,ACC.5MOV 02H,CMOV C,ACC.6MOV 01H,CMOV C,ACC.7MOV 00H,CMOV A,20HRETDELAY:MOV R6,#0H ;软件延时,等待转换结束DELAY1:MOV R5,#0FFHDJNZ R5,$DJNZ R5,$DJNZ R6,DELAY1RETEND调试程序的说明:在标有 的指令处设置一个断点,采用连续运行程序,在断点处观察30H 单元的内容,30H单元的内容;继续执行程序,观察8个发光二极管显示的采集结果二进制数。