ADC0809与单片机接口程序
ADC0809与AT89C51的一种接口方法
ADC0809与AT89C51的一种接口方法一、本文概述本文将详细介绍ADC0809与AT89C51之间的一种接口方法。
ADC0809是一种常用的8位模数转换器,广泛应用于数据采集和处理系统中。
AT89C51则是一款经典的8位微控制器,以其稳定的性能和广泛的应用场景而受到工程师的青睐。
通过合理的接口设计,可以实现ADC0809与AT89C51之间的有效通信,从而实现对模拟信号的精确采集和控制。
本文将详细阐述接口电路的设计原理、连接方式、信号传输过程以及可能遇到的问题和解决方案,旨在为工程师提供一套实用的参考方案,促进ADC0809与AT89C51在各类应用中的高效集成。
二、ADC0809与AT89C51简介ADC0809是一种8位逐次逼近型模拟数字转换器(ADC)。
它可以将连续的模拟信号转换为离散的数字信号,以便于数字系统进行处理。
ADC0809具有8路模拟输入通道,可以独立地选择其中的一路进行模数转换。
转换结束后,转换结果会通过三态输出锁存器输出到数据总线上。
ADC0809还具有转换启动、转换结束以及清零等控制功能,可以通过相应的控制引脚实现。
由于其转换速度快、精度高等特点,ADC0809在嵌入式系统、工业自动化等领域有着广泛的应用。
AT89C51是Atmel公司生产的一种基于8051内核的低功耗、高性能CMOS 8位微控制器。
它采用Atmel公司的高密度、非易失性存储技术生产,与工业标准的80C51指令集和引脚兼容。
AT89C51具有4K字节的可在系统编程(ISP)Flash存储器,这意味着用户可以在不将芯片从系统中取出的情况下,对其进行重新编程。
AT89C51还集成了多种功能强大的外设,如两个16位定时/计数器、一个5向量两级中断结构、一个全双工串行通信口、一个片内振荡器和时钟电路等。
由于其强大的功能和灵活的编程能力,AT89C51在嵌入式系统、智能仪表、工业控制等领域得到了广泛的应用。
将ADC0809与AT89C51进行接口设计,可以实现模拟信号的数字化处理和控制功能。
ADC0809与单片机的接口电路
ADC0809是一种CMOS单片型逐次比较式8路模拟输入、8位数字量输出的A/D转换器。
在多点巡回检测和过程控制、运动控制中应用十分广泛。
1.主要特性如下:1)8路8位A/D转换器,即分辨率8位。
2)具有转换起停控制端。
3)转换时间为100μs4)单个+5V电源供电5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
6)工作温度范围为-40~+85摄氏度7)低功耗,约15mW。
2.外部特性(引脚功能)ADC0809芯片有28条引脚,采用双列直插式封装。
下面说明各引脚功能IN0~IN7:8路模拟量输入端。
2-1~2-8:8位数字量输出端。
ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。
ALE:地址锁存允许信号,输入,高电平有效。
START:A/D转换启动信号,输入,高电平有效。
EOC:A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:时钟脉冲输入端。
要求时钟频率不高于640KHZ。
REF(+)、REF(-):基准电压。
VCC:电源,单一+5V。
GND:地。
ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
单片机与ADC0809的接口电路图。
AT89S51单片机与ADC0809模数转换器的三种典型连接
AT89S51单片机与ADC0809模数转换器的三种典型连接Ξ元增民(长沙大学机电工程系,湖南长沙410003)摘 要:根据模数转换器定位为单片机的外部RAM单元的概念,介绍了AT89S51单片机与ADC0809模数转换器三种典型连接电路及程序编制.分析了三种电路硬件和软件特点.并且给出了一种能用于中断、串行口和模数转换等项目的综合训练的短小精悍的可执行程序.关键词:单片机;模数转换;连接硬件;控制软件;AT89S51;AT89C51;ADC0809中图分类号:TP368.1 文献标识码:A 文章编号:1008-4681(2005)05-0069-04Three Typical Connections B etw een AT89S51Single Chip Computer andADC0809Analog to Digital ConverterY UAN Z engmin(Mechanical and E lectrical Engineering Department,Changsha University,Changsha,Hunan410003) Abstract:According to the concept that analog to digital converters are defined as external RAM of single chip com puter,three typical connections between AT89S51single chip com puter and ADC0809analog to digital converter are introduced.The characteristic of hardware and s oftware of the three circuits are analyzed.A short program which may be used in the integrated training of interrupting,series port and analog to digital converting is given.K ey w ords:single chip com puter;analog to digit converting;connecting hardware;controlling s oftware; AT89S51;AT89C51;ADC0809 MCS51系列单片机是美国英特尔公司于1980年开始生产的.MCS51系列单片机以功能强大的指令系统、并行口串行口兼有以及灵活的SFR模式等优点,在20世纪80~90年代曾经风行我国.上世纪末国际著名电子器件生产厂家,如飞力浦(Philips)公司,西门子(Siemens),都在MCS51系列单片机的框架下设计新型单片机产品.其中美国爱特美(AT ME L)公司采用MCS51系列单片机的指令系统和硬件框架,将MCS51系列单片机内置ROM、EPROM及外挂EPROM等模式改为内置FPEROM (Flash Programmable and Erasable Read Only Mem o2 ry),设计了与MCS51系列单片机兼容的AT ME L51系列单片机,包括内置4kB FPEROM的标准40脚AT89C51、内置2kB FPEROM的20脚AT89C2051以及内置1kB FPEROM的20脚AT89C1051.正是这些后起的51系列单片机赋予MCS51系列单片机以新的生命力.建议把英特尔公司MCS51系列单片机和后来世界各大公司在其框架下生产的各种51系列单片机统称为51系列单片机,简称为51单片机.51系列单片机至今在8位机控制领域还是一只独秀.就连一些32位处理器也在致力8位应用[1].讨论51系列单片机的一些基本应用问题非常有价值.尽管大家都知道模拟数字转换(Analog to Digit C onvert,ADC)数字模拟转换(Digit to Analog C onvert, DAC)接口技术在控制领域非常重要,而且很多教科书,如单片机、电子技术、计算机控制技术、都有关于ADC和DAC的内容,但是实际上在很多学校的教学中ADC和DAC都是一个薄弱环节,或者说是一个交叉点.谁都应当管,结果往往谁都不管.在一定程度上影响了教学效果.目前8路8位逐位比较式模数转换芯片ADC0809无论在工程设计还是教学过程中还是作为首选品种.讨论51系列单片机与ADC0809的硬件连接与软件编程,是一项有价值的工作.概念非常重要.要了解ADC0809与51单片机连接原理,首先要明确ADC0809在整个51单片机第19卷 第5期2005年9月 长 沙 大 学 学 报J OURNA L OF CH AN GSH A UNI VERSITYVol.19 No.5Sep.2005Ξ收稿日期:2005-06-09;修回日期:2005-09-09作者简介:元增民(1957-),男,河北沙河人,长沙大学教授,硕士,主要从事电子学研究和教学.系统中的定位.大体上说,ADC0809在整个51单片机系统中是作为外部RAM 的1个单元定位的.具体到某一个连接方式,ADC0809在整个51单片机系统中的定位又有一些差别.目前,性能非常好的AT 89C51的价格大约在10元左右,已经完全取代MCS51而稳占市场.考虑AT 89C51已经在2004年停产,代之而起的是性能价格比更好的AT 89S51.本文介绍ADC0809与51系列单片机的连接时将以AT 89S51作为例子,不过完全适合于AT 89C51和更早的MCS51系列单片机中的8031,8051和8751.本文介绍ADC0809与AT 89S51(51系列单片机)的3种典型连接方式.1 ADC0809与51单片机的第一种连接方式这是一种数据线对数据线、地址线对地址线的标准连接方式,如图1.但是由于51单片机没有现成的低8位地址总线,所以采用这种标准连接方式需要用74LS373或类似芯片产生低8位地址总线.早期的MCS51系列单片机的应用品种很多是没有内置程序存贮器的8031芯片,本身就需要外挂74LS373等芯片产生低8位地址总线来外接E 2PROM 等程序存贮器,连接ADC0809时不需要专门外挂74LS373.因此早期的MCS51系列单片机,如8031,采用这种方式连接ADC0809还是比较可行的.图1中的P2.7/A15线作为整个ADC0809芯片的片选线.当P2.7/A15=0时,或非门敞开,允许写信号通过,将单片机负的写脉冲转换为ADC0809所需要的正脉冲,以选中ADC0809某一通道并启动转换.图1 ADC0809与51单片机的第一种连接方式这是一种不完全地址译码方式.如果增加地址译码器,将P2.7/A15线改为高位地址译码器的输出线,就可以形成完全译码.在图1连接方式中,ADC0809的转换结果寄存器在概念上定位为单片机外部RAM 单元的一个只读寄存器,与通道号无关.因此读取转换结果时不必关心DPTR 中的通道号如何.编程概要:MOV DPTR ,#7FF8H ;DPTR 指向0809通道0MOVX @DPTR ,A ;锁定通道0并启动转换…………………………MOVX A ,@DPTR ;读取转换结果要求在程序第一条指令中把决定是否能选中整个ADC0809芯片和通道的数据送到数据指针DPTR.在本电路中,只要送到DPTR 的最高位数据为0,就能选中ADC0809,而通道地址由DPTR 的最低3位数字决定.这里累加器A 的内容对于ADC 没有任何意义.因此事先不用操心累加器A 内容如何.这是本程序的一大特点.2 ADC0809与51单片机的第二种连接方式通常芯片的地址线只能进不能出自不必说,ADC0809的数据线有一特点:只能出不能进.就是说,就像往S BUF 写入时写到发送缓冲寄存器,从S BUF 读出时实际是读取接收缓冲寄存器的数据一样,往ADC0809写入时,把数据总线上的数据写到地址寄存器,从ADC0809读出时实际是读取转换结果数据.图2 ADC0809与51单片机的第二种连接方式因此可以在把51单片机的8位数据线接到ADC0809的8位数据线的同时,又把其中的3位直接接到ADC0809的3根地址线以确定通道号.通常把51单片机的8位数据线中的低3位D2,D1,D0直接接到ADC0809的3根地址线A2,A1,A0以确定通道号,如图2.采用这种连接方式明显可以省去一片74LS373.在图2连接方式中,ADC0809的转换结果寄存07长沙大学学报 2005年9月器在概念上定位为单片机外部RAM 单元的只读寄存器,而通道号锁存器在概念上定位为单片机同一个外部RAM 单元的只写寄存器.同一个外部RAM 单元的只读寄存器与只写寄存器使用同一个地址,就像51系列单片机的串行发送缓冲器与串行接收缓冲器使用同一个地址99H 一样,不会发生混乱.图2连接方式有一个特点,那就是单片机要把最低3位二进制数据通过数据总线写入ADC0809的地址锁存器,然后作为通道地址使用.编程概要:MOV A ,#0F8H ;ADC0809通道0地址送到A MOV DPTR ,#7FFFH ;DPTR 指向ADC0809MOVX @DPTR ,A ;锁定通道0并启动转换…………………………MOVX A ,@DPTR ;读取转换结果要求在程序第一条指令中把决定是否能选中整个ADC0809芯片的数据送到数据指针DPTR.在本电路中,只要送到DPTR 的最高位数据为0,就能选中ADC0809,而通道地址由累加器A 的最低3位数字决定.除了最高位以外,DPTR 的其余15位数据对于ADC 没有任何意义.除了较低3位以外,累加器A 的其余5位数据对于ADC 也没有任何意义.这是本程序的一大特点.3 ADC0809与51单片机的第三种连接方式在很多应用场合,AT 89S51内部的硬件资源,例如4kB 闪存,128B 内部RAM ,一个串行口和4个8位并行口等,已经够用.就是说,在很多应用场合,不需要外扩RAM 或I/O 口.图3 ADC0809与51单片机的第三种连接方式当51单片机没有外扩RAM 和I/O 口时,ADC0809就可以在概念上作为一个特殊的唯一的外扩RAM 单元.因为它是唯一的,就没有地址编号,也就不需要任何地址线或者地址译码线.只要单片机往外部RAM 写入,就是写到ADC0809的地址寄存器中.只要单片机从外部RAM 读取数据,就是读取ADC0809的转换结果.基于这种外部RAM 的唯一单元概念设计的AT 89S51与ADC0809的连接电路如图3.相应的启动程序和读数程序都非常简单.编程概要:MOV A ,#0F8H ;ADC0809通道0地址送到A MOVX @R0,A ;锁定通道0并启动转换………………MOVX A ,@R0;读取转换结果只要程序中使用MOVX @R0,A 指令或者MOVX @DPTR ,A 指令,就能启动ADC0809.比较MOVX @R0,A 指令和MOVX @DPTR ,A 指令,当然是MOVX @R0,A 占优势,所以这里使用MOVX @R0,A 指令.其中间址寄存器R0中的数据无论在启动ADC0809还是在读取转换结果时都没有任何意义,因此事先不必考虑往R0中送入什么数据.这是本程序的一大特点.4 三种连接方式的综合比较第一种和第二种连接方式允许多片ADC0809与单片机连接,第三种连接方式只能连接一片.通常1片8通道ADC0809就能满足控制工程需要.因此在单片机没有外扩RAM 和I/O 接口时,第三种连接方式是一种优选方案.需要2片或更多ADC0809时,第二种连接方式是一种优选方案.第一种连接方式需要一片74LS373做地址锁存器.如果单片机系统已经有一片74LS373地址锁存器,那么第一种连接方式也不失为一种可以考虑的连接方式.5 同时进行模数转换和显示的典型程序单片机教学中除了ADC 和DAC 是难点之外,中断和串行口也是难点.下面介绍一个典型的程序.这个程序虽然短小精悍,但是能利用中断和串行口功能同时完成多项任务,有利于学员掌握中断、串行口及ADC0809的编程应用.执行本程序时,需要在图3基础上再增加一片串入并出芯片74LS164及一只共阳数码管,并通过P1口和7406或74LS240控制8只LE D. ORG 0000H LJMP MAI N ORG 0003H ;0号外中断服务子程序 PUSH ACC ;ACC 入栈保护 MOVX A ,@R0 ;读ADC 转换结果 MOV P1,A ;送P1口显示17总第67期 元增民 AT 89S51单片机与ADC0809模数转换器的三种典型连接 C LR A ;ACC指向ADC0809的0通道 MOVX@R0,A ;再次启动ADC0809 POP ACC ;ACC出栈 RETI ;中断返回MAI N:MOV IE,#10000001B;开0号外中断 C LR A ;ACC指向ADC0809的0通道 MOVX@R0,A ;首次启动ADC0809 MOV DPTR,#ST AB ;DPTR指向段码表ST ART:MOV R0,A ;秒数送R0保存 MOVC A,@A+DPTR ;查表取来秒数段码 M O V S BUF,A ;秒数的段码送串行口输出 AC A LL DE LAY ;延时1秒 ADD A,#1 ;加1秒 DA A ;十进制调整 AN L A,#0FH ;屏蔽掉十位 S JMP ST ART ;循环计时DE LAY:……………… ;1秒延时子程序 E ND执行本程序,首先在主程序中启动ADC0809,然后单片机运行一位秒表程序.在秒表运行过程中,当模数转换完成时,ADC0809发出一个正脉冲E OC(End O f C onvert),反相为负脉冲后给单片机的端子,单片机响应中断,执行完当前指令后即进入中断服务子程序,读取转换结果并送显示,然后再次启动ADC0809后返回主程序.ADC0809完成1次转换需用64个时钟脉冲.如果ADC0809时钟信号是640kH z,那么1次转换需要时间为0.1ms,1秒钟之内就能完成1万次转换,就是说,1秒钟之内要产生1万次中断,理论上对秒表运行肯定有影响,但是实际上作为演示实验,人们根本觉察不到中断对秒表的影响.所以我们把这个实验命名为“秒表运行中进行ADC”,其特征是秒表一边运行,一边连续进行ADC,因此实验成功的标志是代表转换结果的LE D显示数字能与为ADC0809提供模拟电压的电位器实现随动,即拧动电位器时LE D显示数字跟着闪烁.参考文献:[1]R obert Crav otta.32位微处理器致力于8位应用[J].电子设计技术,2005(12):5,56-57.[2]李朝青.单片机原理及接口技术[M].北京:北京航空航天大学出版社,2004.(上接第23页)A=100.11 0.190.1 10.13解:显然矩阵A为对角占优矩阵,且两圆盘R1与R2相交.∵S=1+0.1-0.2=0.9>0,Δ=0.92-4×1.1×0.1=0.37>0,∴R1与R2是可以被分离的.取a=S2P i ≈0.4,令D=0.4 1 1,作变换B=DAD-1=100.040.4 0.2590.1 2.50.13这时R1与R2就已经被分离.三个圆盘都被分离开来了.由G erschg orin圆盘定理可得三个特征值的范围分别为:9.56≤λ1≤10.44,8.65≤λ2≤9.35,2.5≤λ3≤3.5.小结:上面所讲述的方法对于对角占优矩阵是非常行之有效的.但是它还有一定的局限性。
ADC0809引脚图与接口电路
ADC0809引脚图与接口电路A/D转换器芯片ADC0809简介 8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道抵制锁存用译码电路,其转换时间为100μs左右。
图9.8 《ADC0809引脚图》1. ADC0809的内部结构ADC0809的内部逻辑结构图如图9-7所示。
图9.7 《ADC0809内部逻辑结构》图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,这是一种经济的多路数据采集方法。
地址锁存与译码电路完成对A、B、C 3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,表9-1为通道选择表。
表9-1 通道选择表2.信号引脚ADC0809芯片为28引脚为双列直插式封装,其引脚排列见图9.8。
对ADC0809主要信号引脚的功能说明如下:IN7~IN0——模拟量输入通道ALE——地址锁存允许信号。
对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。
START——转换启动信号。
START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。
本信号有时简写为ST.A、B、C——地址线。
通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。
其地址状态与通道对应关系见表9-1。
CLK——时钟信号。
ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。
通常使用频率为500KHz的时钟信号EOC——转换结束信号。
EOC=0,正在进行转换;EOC=1,转换结束。
使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。
D7~D0——数据输出线。
为三态缓冲输出形式,可以和单片机的数据线直接相连。
D0为最低位,D7为最高OE——输出允许信号。
用于控制三态输出锁存器向单片机输出转换得到的数据。
【免费下载】AD0809中文资料和单片机电路及程序
ADDA
0
1
0
1
0
1
0
1
选中通道
IN0
IN1
IN2
IN3
IN4
IN5
IN6
IN7
的上升沿将逐次逼近寄存器 SAR 复位,在该上升沿之后的 2μs 加 8 个时钟周期内(不定), EOC 信号将变低电平,以指示转换操作正在进行中,直到转换完成后 EOC 再变高电平。 微处理器收到变为高电平的 EOC 信号后,便立即送出 OE 信号,打开三态门,读取转换结 果。
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
51单片机加CPLD驱动ADC0809的多路数据采集系统
信号,从Po送出的data为其提供ADDR通道选择地址。
例如启动ADCl.关键代码为:
MOV A#01H
MOvDPPR#addr//此处addr与地址分配有关
MOVX@DPTRA
对应C51代码为:
unsigned char xdata ADC_aL
0xt234;//定义ADC
堑叠
囤2 A[1C,OS09启动转换
P0
_4.输入按键输出显示电路一■
片机P3
4、P3
_-≥二¨=I
口为数据总线.要接ADC0809数据输出端D.同时 POIq低3bit接通道选择地址A、B、C.而其它控制信 号需要通过CPLD实现时序的匹配.其中ADC0809时 钟CLK由MCU ALE信号经CPLD8分频后提供。 CPLD内部电路如图8所示.MCU ALE经过8分 频(22 1184M/6/8=460K)adc clk做ADC0809的时 钟CLK,译码地址Y0与WR或非后做adc stad(接 ADC0809的ALE和START).Y0与RD或非后做
ADc=CH
Ⅳ外∞中断0目n化
IT0=1WT&镕触&
本篇结合具体AD0809器件与MCU的接1:3设
计,详细分析了ADC0809的控制时序图,设计了满足
t/外部中断自敬
void exIjnl。(voidlinterrupt0 using
ADC0809接口需要的硬件电路,整合Mini51板上按键、 数码管资源,通过CPLD内部电路设计.实现MCU对
_麓:__曼≥j
ADC0809启动受START、ALE和ADDR信号控制
详细解读程序代码,给出完整设计方案。
ADC0809是8位A/D转换器、8路多路开关以及 徽处理机兼容的控制逻辑的CMOS组件。它是透次逼 近式A/D转换器.容易和单片机总线模式接13。圈1 是ADC0809芯片的实物图和引脚图。 IN0一IN7:8路模拟量输人:
ADC0809与51单片机接口电路及应用程序
ADC0809与51单片机接口电路及应用程序最近研究了下ADC0809这个芯片,做了个电路,和大家分享电路原理图如下:500)this.width=500;" border=0>说明:D0~D7接51单片机的P2口(P2.0~P2.7)ADIN1和ADIN2为通道IN0和IN1的电压模拟量输入(0~5V)应用程序如下:#include"reg52.h"#define uchar unsigned charsbit ST=P1^0;sbit EOC=P1^1;sbit OE=P1^2;sbit CLK=P1^3;sbit ADDCS=P1^4;uchar AD_DATA[2]; //保存IN0和IN1经AD转换后的数据/**********延时函数************/void delay(uchar i){uchar j;while(i--){for(j=125;j>0;j--);}}/*********系统初始化***********/void init(){EA = 1; //开总中断TMOD = 0x02; //设定定时器T0工作方式 TH0=216; //利用T0中断产生CLK信号 TL0=216;TR0=1; //启动定时器T0ET0=1;ST=0;OE=0;}/***********T0中断服务程序************/void t0(void) interrupt 1 using 0{CLK=~CLK;}/***********AD转换函数**********/void AD(){ST=0;ADDCS=0; //选择通道IN0delay(10);ST=1; //启动AD转换delay(10);ST=0;while(0==EOC);OE=1;AD_DATA[0]=P2;OE=0;ST=0;ADDCS=1; //选择通道IN1 delay(10);ST=1; //启动AD转换delay(10);ST=0;while(0==EOC);OE=1;AD_DATA[1]=P2;OE=0;}/*****************主函数**************/。
ADC0809程序
sbit D5=P1 ;
sbit D6=P1;
sbit D7=P1;
ucharad_dat;
/*---------------------------------
函数名:delayus(i)
功能:延时t=(12*i+14)us
参数:i
返回值:无
备注:晶振12MHz
-----------------------------------*/
}
/*---------------------------------
函数名:w_com_1602(uchar com)
功能:写命令
参数:uchar com
返回值:无
-----------------------------------*/
void w_com_1602(uchar com)
{
e=0;
while(!ADC_EOC); //等待转换结束
ADC_OE =1;
w_dat_1602(0x30+(uchar)D0);
w_dat_1602(0x30+(uchar)D1);
w_dat_1602(0x30+(uchar)D2);
w_dat_1602(0x30+(uchar)D3);
w_dat_1602(0x30+(uchar)D4);
dac0809模数转换
----------------------------------*/
void ADC_0809()
{
ADC_START=1; //上升沿复位
_nop_();
_nop_();
_nop_();
ADC_START=0; //下降沿开始
ADC0809模数转换器的使用详解与程序
ADC0809模数转换器的使用详解与程序作者:佚名来源:本站原创点击数:32 更新时间:2010年06月12日【字体:大中小】带我们的王老师刚评上硕导了,下学期开始带研究生了。
从他那里了解到每做一次实验或者实践,应该把它用规范的格式记录下来,一来自己可以日后查看,二来同学间可以相互交流,共通过进步,甚为必要。
现将本次实验记录如下。
实验名称:根据光强控制外围器件的通断。
实验原理;使用AD芯片将太阳能电池产生的光生伏打电压转化为数字信号,再通过单片机处理后,在数码管上显示电压,同时根据设定电压伐值,控制外围器件的通断。
实验所需的设备:51单片机烧写器一个,电脑一台,数字式示波器一个,数字式万用表一个实验所需的元件:太阳能电池一片,单片机一片,1k排阻一个,四位连体的数码管一个,排针若干排,导线,万用版一块,焊锡。
实验前的理论准备;能熟练使用51单片机,示波器,keil软件,isp下载软件,看懂AD0 809的英文pdf说明实验的难点:难点一就是AD0809芯片的使用。
难点二就是将AD0809产生的0~256的数字换算成0~5.000的精确度,而又不至于溢出出错。
难点三就是以上的理论准备全部系自学,呵呵下面着重说明AD0809的使用难点。
ADC0809是采样频率为8位的、以逐次逼近原理进行模—数转换的器件。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
1.主要特性1)8路8位A/D转换器,即分辨率8位。
2)具有转换起停控制端。
3)转换时间为100μs4)单个+5V电源供电5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
6)工作温度范围为-40~+85摄氏度7)低功耗,约15mW。
2.内部结构ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图13.22所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近3.外部特性(引脚功能)ADC0809芯片有28条引脚,采用双列直插式封装,如图13.23所示。
adc0809的的基本应用实例及程序
ADC0809与DAC0832进行ADDA转换程序使用0809将电压数据采集回来,然后再用DAC0832输出电压。
练习AD,DA的使用。
程序:#include<reg51.h>#include<absacc.h>#define DAC0832 XBYTE[0x7fff] /* 定义DAC0832端口地址*/#define uchar unsigned char#define uint unsigned intsbit ST=P3^0;sbit OE=P3^1;sbit EOC=P3^2;sbit CLK=P3^3;sbit A1=P3^4;sbit A2=P3^5;sbit A3=P3^7;void delay(unsigned int Delay) //Delay(1000)延时一秒{unsigned int q;for(;Delay>0;Delay--){ for(q=0;q<124;q++){;}}}/*void TimeInitial(){TMOD=0x20;TH1=0xff;TL1=0xff;EA=1;ET1=1;TR1=1;}*/uchar adin0(void) //AD0通道转换{uchar getdATa;//TimeInitial();ST=0;OE=0;ST=1;ST=0;A1=0;A2=0;A3=0;while(EOC==0);OE=1;getdA Ta=P1;OE=0;//TR1=0;return(getdATa);}uchar adin1(void) //AD1通道转换{uchar getdA Ta;//TimeInitial();ST=0;OE=0;ST=1;ST=0;A1=1;A2=0;A3=0;while(EOC==0);OE=1;getdA Ta=P0;OE=0;//TR1=0;return(getdATa);}void main(void){uchar dATa0,i;while(1){dA Ta0=adin0();DAC0832=dATa0;}}void time1(void) interrupt 3 using 0 {TH1=0xff;TL1=0xff;CLK=~CLK;}ADC0809 A/D转换程序基本知识ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。
ADC0809模数转换器的使用详解与程序
值得一提的是,我按照上面电路,把 AD 的 ABC 三脚共同接接地时,AD0809088 始终输 出高电平,最后当我把 BC 共同接地,在程序中给 A 一个 0,则 AD0809 正常运行,有输出, 并且发现当所给的时钟频率越低, 最高精度的那位输出越稳定, 具体参数范围从芯片资料里 有详细介绍,不过十全英文,专业词汇哦。哈哈 现将程序记录如下: 完整的程序从这里下载: /ziliao/file/0809c51x.rar
ADC0809 模数转换器的使用详解与程序
带我们的王老师刚评上硕导了,下学期开始带研究生了。 从他那里了解到每做一次实验或者实践,应该把它用规范的格式记录下来,一来自己可以 日后查看,二来同学间可以相互交流,共通过进步,甚为必要。现将本次实验记录如下。
实验 名称:根据光强控制外围器件的通断。 实验原理;使用 AD 芯片将太阳能电池产生的光生伏打电压转化为数字信号,再通过单片 机处理后,在数码管上显示电压,同时根据设定电压伐值,控制外围器件的通断。 实验所需的设备:51 单片机烧写器一个,电脑一台,数字式示波器一个,数字式万用表一 个
// //
开始转换 关地址//等来自 eoc 变为 1//
打开输出
temp=P1; oe=0; //
//
取 p1 到 p3 关输出
temp=temp*50; temp=temp/256;
qian=temp/1000; bai=temp%1000/100; shi=temp%100/10; ge=temp%10;
编辑本段转换方法
模数转换器
模数转换过程包括量化和编码。量化是将模拟信号量程分成许多离散量级,并确定输 入信号所属的量级。编码是对每一量级分配唯一的数字码,并确定与输入信号相对应 的代码。最普通的码制是二进制,它有 2n 个量级( n 为位数) , 可依次逐个编号。模 数转换的方法很多,从转换原理来分可分为直接法和间接法两大类。 直接法是直接 将电压转换成数字量。它用数模网络输出的一套基准电压,从高位起逐位与被测电压 反复比较,直到二者达到或接近平衡(见图) 。控制逻辑能实现对分搜索的控制,其 比较方法如同天平称重。先使二进位制数的最高位 Dn-1 = 1 ,经数模转换后得到一个 整个量程一半的模拟电压 VS ,与输入电压 Vin 相比较,若 V in> VS , 则保留这一位;若 V in< V in ,则 Dn-1 = 0 。然后使下一位 Dn -2 = 1, 与上一次的结果一起经数模转换后与 V in 相比较 , 重复这一过程,直到使 D 0 = 1 ,再与 V in 相比较 , 由 V in> VS 还是 V in< V 来 决定是否保留这一位。经过 n 次比较后, n 位寄存器的状态即为转换后的数据。这种 直接逐位比较型(又称反馈比较型)转换器是一种高速的数模转换电路,转换精度很 高,但对干扰的抑制能力较差,常用提高数据放大器性能的方法来弥补。它在计算机
ADC0808-0809与8031单片机接口设计
ADC0808/0809 与8031 单片机接口设计
ADC0808 是采样分辨率为8 位的、以逐次逼近原理进行模/数转换的
器件。
其内部有一个8 通道多路开关,它可以根据地址码锁存译码后的信号,只选通8 路模拟输入信号中的一个进行A/D 转换。
ADC0808 是
ADC0809 的简化版本,功能基本相同。
一般在硬件仿真时采用ADC0808 进
行A/D 转换,实际使用时采用ADC0809 进行A/D 转换。
AD0809 的逻辑结构ADC0809 是8 位逐次逼近型A/D 转换器。
它
由一个8 路模拟开关、一个地址锁存译码器、一个A/D 转换器和一个三态输出锁存器组成(见图1)。
多路开关可选通8 个模拟通道,允许8 路模拟量分时输入,共用A/D 转换器进行转换。
三态输出锁存器用于锁存A/D 转换完的数字量,当OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。
和偏文章主要就是说ADC0808/0809 与8031 单片机接口的三种方式,一
起来了解一下。
ADC0808/0809 与8031 单片机接口设计
ADC0808/0809 与8031 单片机的硬件接口有三种方式,查询方式,
中断方式和等待延时方式。
究竟采用何种方式,应视具体情况,按总体要求而选择。
这里我们主要谈谈延时方式和中断方式。
AD转换与单片机的接口电路(ADC0809)
;设置第0工作区 设置第 工作区 ;采样数据存放首址 ;IN0通道地址 通道地址 ;模拟量通道数 启动A/D转换 ;启动 转换 外部中断0为边沿触发方式 ;外部中断 为边沿触发方式 允许外部中断0中断 ;允许外部中断 中断 开放CPU中断 ;开放 中断
Copyright 2006
ADC 0809
22 21 20 19 18 17 16 15
Copyright 2006
ADC0809的通道选择: 的通道选择: 的通道选择
被选通的通道 IN0 IN1 IN2 IN3 ADDC 0 0 0 0 ADDB 0 0 1 1 ADDA 0 1 0 ቤተ መጻሕፍቲ ባይዱ 被选通的通道 IN4 IN5 IN6 IN7 ADDC 1 1 1 1 ADDB 0 0 1 1 ADDA 0 1 0 1
A/D转换器与单片机的接口技术 转换器与单片机的接口技术
从物理信号到电信号的转换
A/D转换器的作用是将模拟的电信号转换成数字信号。在将 物理量转换成数字量之前,必须先将物理量转换成电模拟 量,这种转换是靠传感器完成的。传感器的种类繁多,如 温度传感器,压力传感器、光传感器、气敏传感器等。 温度传感器:典型的温度传感器有热电偶和热敏电阻。热 电偶是利用热点效应来工作的,室温下的输出电压为毫伏 级的。热敏电阻是一种半导体新型感温元件,具有负的电 阻温度系数,当温度升高时,其电阻减小。 湿度传感器:是利用湿度变化引起其电阻值或电容量变 化原理制成的,即将湿度变化转换成电量变化。
Copyright 2006
ADC0809与51单片机接口 与 单片机接口
ADC0809与单片机接口 与单片机接口
通道地址: 78H~7FH
Copyright 2006
adc0809与单片机连接图(附程序)
ADC0809 电路图成品程序2008年08月17日星期日 21:13我为了这个ADC0809已经痛苦了好几天了,今天终于成功了。
算是一个里程碑了。
为了纪念它,把东西发上来。
电路图PCB图实物图程序#include<reg51.h>#include<intrins.h>sbit CLOCK=P2^7;sbit OE=P2^6;sbit START=P2^5;unsigned char _data;void init(){SM0=0; //SM01组合代表8位uart方式,波特率可变SM1=1;REN=1; //允许串行接受TH1=0xF3; //波特率2400,误差0.12%TL1=0XF3;TMOD=0X20; //定时器1工作于8位自动重载模式, 用于产生波特率EA=1; //总开关中断方式ET1=0; //定时器1 不允许中断ES=1; //允许串口中断TR1=1; //计时器启动控制位START=0;OE=0;}void wait(unsigned char time) //产生时钟{unsigned char i,j;for(i=0;i<time;i++)for(j=0;j<125;j++){CLOCK=0;_nop_();_nop_();_nop_();_nop_();_nop_(); CLOCK=1;_nop_();_nop_();_nop_();_nop_();_nop_();} }void get()//获取数据{START=1;wait(10);START=0;wait(10);wait(10);OE=1;_data=P0;OE=0;START=0;}void show()//发送到串口与led灯{P1=_data;TI=0;SBUF=_data;while(!TI);TI=0;}void main(){unsigned char i;int j=0;init();//初始化while(1){P2=0;j=0;for(i=0;i<10;i++)//测10次后显示{get();//获得数据j+=_data;}_data=j/10;show();//发送数据。
ADC0809引脚图与接口电路
A/D 转换器芯片ADC0809简介 8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道抵制锁存用译码电路,其转换时间为100μs左右。
图9.8 《ADC0809引脚图》1. ADC0809的内部结构ADC0809的内部逻辑结构图如图9-7所示。
图9.7 《ADC0809内部逻辑结构》图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,这是一种经济的多路数据采集方法。
地址锁存与译码电路完成对 A、B、C 3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,表9-1为通道选择表。
表9-1 通道选择表2.信号引脚ADC0809芯片为28引脚为双列直插式封装,其引脚排列见图9.8。
对ADC0809主要信号引脚的功能说明如下:IN7~IN0——模拟量输入通道ALE——地址锁存允许信号。
对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。
START——转换启动信号。
START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。
本信号有时简写为ST.A、B、C——地址线。
通道端口选择线,A 为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。
其地址状态与通道对应关系见表9-1。
CLK——时钟信号。
ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。
通常使用频率为500KHz的时钟信号EOC——转换结束信号。
EOC=0,正在进行转换;EOC=1,转换结束。
使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。
D7~D0——数据输出线。
为三态缓冲输出形式,可以和单片机的数据线直接相连。
D0为最低位,D7为最高OE——输出允许信号。
用于控制三态输出锁存器向单片机输出转换得到的数据。
OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。
ADC0809与AT89C51的一种接口方法
第4卷第2期2002年6月石家庄师范专科学校学报Jou rnal of Sh ijiazhuang T eachers Co llegeV o l.4,N o.2Jun.2002αADC0809与A T89C51的一种接口方法刘焕平1,韩树新2(1.石家庄职业技术学院机电系,河北石家庄 050081;河北经贸大学数学系,河北石家庄 050041)〔摘 要〕ADC0809是广泛使用的模 数转换器,在可不采用外部总线结构的单片机系统中(如由A T89C51组成的系统)。
A SC0809的数据线直接与单片结构的I O口相连,并由单片机的I O 口直接对ADC0809进行控制。
〔关键词〕A T89C51;单片机;ADC0809;外部总线〔中图分类号〕T P39 〔文献标识码〕A 〔文章编号〕100826188(2002)022*******ADC0809是一种8路模拟输入逐次比较型A D转换器,由于价格适中,与单片机的接口、软件操作均比较简单,目前在8位单片机系统中有着广泛的使用。
ADC0809由8路模拟开头、地址锁存与译码器、8位A D转换器和三态输出锁存缓冲器组成。
图1 ADC0809转换器的结构框图和引脚表1 8路模拟开关与输入通道的关系表通入通道I N0I N1I N2I N3I N4I N5I N6I N7 A01010101B00110011C00001111ADC0809芯片可以分时处理8路模拟量输入信号,使用模拟开关切换。
在某一时刻,模拟开关只能与一路模拟量通道接通,对该通道进行A D转换。
表1中C、B、A是三条通道的地址线。
当地址所存信号AL E为高电平时,C、B、A三条线上的数据送入ADC0809内部的地址锁存器中,经过译码器译码后选中某一通道。
当AL E=0时,地址锁存器处于锁存状态,模拟开关始终与刚才选中的输入通道接通。
选中通道的模拟量到达A D转换器时,A D转换器并未对其进行A D转换。
ADC0809引脚图与接口电路
ADC0809引脚图与接口电路作者: 来源:本站原创 点击数: 更新时间:2007年07月29日A/D转换器芯片ADC0809简介 8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道抵制锁存用译码电路,其转换时间为100μs 左右。
图9.8 《ADC0809引脚图》1. ADC0809的内部结构ADC0809的内部逻辑结构图如图9-7所示。
图9.7 《ADC0809内部逻辑结构》图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,这是一种经济的多路数据采集方法。
地址锁存与译码电路完成对A、B、C 3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,表9-1为通道选择表。
表9-1 通道选择表2.信号引脚ADC0809芯片为28引脚为双列直插式封装,其引脚排列见图9.8。
对ADC0809主要信号引脚的功能说明如下:IN7~IN0——模拟量输入通道ALE——地址锁存允许信号。
对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。
START——转换启动信号。
START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持 低电平。
本信号有时简写为ST.A、B、C——地址线。
通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。
其地址状态与通道对应关系见表9-1。
CLK——时钟信号。
ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。
通常使用频率为500KHz的时钟信号EOC——转换结束信号。
EOC=0,正在进行转换;EOC=1,转换结束。
使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。
D7~D0——数据输出线。
为三态缓冲输出形式,可以和单片机的数据线直接相连。
D0为最低位,D7为最高OE——输出允许信号。
9.2.1 ADC0809 的使用_快速学通51单片机C语言程序设计_[共2页]
第9章 数/模与模/数转换接口设计 193║9.2.1 ADC0809的使用1.ADC0809的功能与结构ADC0809是8位逐次逼近型A/D 转换器,具有8个模拟量输入通道,并带有通道地址译码锁存器,输出配有三态数据锁存器。
ADC0809采用脉冲启动方式,每一通道的转换时间大约为100μs 。
ADC0809由两大部分组成,一部分是输入通道,包括8位模拟开关,3条地址线的锁存器和译码器,可以实现8路模拟输入通道的选择。
另一部分是一个逐次逼近型A /D 转换器。
ADC0809的芯片引脚如图9.6所示。
ADC0809各引脚的功能如下。
• IN0~IN7:8个模拟通道输入端。
• START :启动转换信号。
• EOC :转换结束信号。
• OE :输出允许信号。
信号由CPU 读信号和片选信号组合产生。
• CLOCK :外部时钟脉冲输入端,典型值为640K 。
• ALE :地址锁存允许信号。
• A 、B 、C :通道地址线,CBA 的8种组合状态000~111对应8个通道的选择,并在ALE 有效时才被锁存。
• V REF+、V REF-:参考电压输入端。
• V CC :接+5V 电源。
• GND :接电源地。
ADC0809工作的过程是:先由通道地址线选择要采样的通道,然后发出启动信号START 启动转换,由于EOC 信号在START 下降沿之后才会变为低电平,所以在读取采样值前,必须对EOC 的状态进行判定。
地址码与模拟通道的关系如下。
地 址 码模 拟 通 道CB A 01111 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN72.ADC0809的接口设计图9.7是ADC0809与8031的接口电路,电路中0809的启动信号START 是由片选线P2.7图9.6 ADC0809芯片引脚。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.2.3 ADC0809与单片机接口
பைடு நூலகம்
图5.18 ADC0809与8031的接口连接图
3.A/D转换应用程序举例
设图5.18接口电路用于一个8路模拟量输入的巡回检测系统,
使用中断方式采样数据,把采样转换所得的数字量按序存于片
内RAM的30H~37H单元中。采样完一遍后停止采集。 其数据采集的初始化程序和中断服务程序如下: 初始化程序:
LOOP: MOVX @DPTR,A HERE: SJMP HERE
中断服务程序:
MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R2,INT0 CLR EA
CLR EX0
RETI INT0: MOVX @DPTR,A RETI
;禁止外部中断0中断
;中断返回 ;再次启动A/D转换 ;中断返回
MOV R0,#30H ;设立数据存储区指针
MOV R2,#08H
SETB IT0 SETB EA
;设置8路采样计数值
;设置外部中断0为边沿触发方式 ;CPU开放中断
SETB EX0 MOV A,R0
;允许外部中断0中断
MOV DPTR,#FEF8H ;送入口地址并指向IN0
ANL
A,#0FH
;启动A/D转换,A的值无意义 ;等待中断 ;读取转换后的数字量 ;存入片内RAM单元 ;指向下一模拟通道 ;指向下一个数据存储单元 ;8路未转换完,则继续 ;已转换完,则关中断
4.2.4:4位半双积分式AD转换器ICL7135
fCP=125KHz或其的倍数时,对50Hz工频干扰有较大 的抑制能力。
ICL7135的外部典型连接
ICL7135的输出时序图
ICL7135与8031的接口方式
查询法
4.2.3:7135
中断查询法
中断计数法
中断查询法