AT89S51单片机与ADC0809模数转换器的三种典型连接[1]
- 格式:doc
- 大小:101.00 KB
- 文档页数:5
目录引言 (1)1 ADC0809的逻辑结构 (1)1.1 ADC0809引脚结构 (1)1.2 ADC0809的主要性能指标 (3)1.3 ADC0809的内部逻辑结构 (3)1.4 ADC0809的时序 (4)2 ADC0809与MCS-51单片机的接口电路 (5)2.1 0809与51单片机的第一种连接方式 (7)2.2 0809与51单片机的第二种连接方式 (9)2.3 0809与51单片机的第三种连接方式 (10)3 ADC0809与单片机制作的数字电压表 (11)总结 (16)参考文献 (16)英文翻译 (17)ADC0809芯片的原理及应用摘要:ADC0809是8位逐次逼近型A/D转换器,是目前应用比较广泛、典型的A/D转换芯片之一。
本文主要介绍ADC0809芯片的内部逻辑结构、引脚分布,并详细阐述了其工作原理。
在此基础上设计了两种相关应用电路——ADC0809与单片机的接口电路及数字电压表,并对这两种应用电路的可行性进行了讨论。
通过对ADC0809应用电路的探究,能更全面的提高对应用系统的分析、设计能力,对实践具有重要的指导意义。
关键词:ADC0809;模数转换;单片机引言A/D转换器是模拟信号源与计算机或其它数字系统之间联系的桥梁,它的任务是将连续变化的模拟信号转换为数字信号,以便计算机等数字系统进行处理、存储、控制和显示。
在工业控制和数据采集及许多其它领域中,A/D转换器是不可缺少的重要组成部分,它的应用已经相当普遍。
目前用软件的方法虽然可以实现高精度的A/D转换,但占用CPU时间长,限制了应用。
8位A/D转换器ADC0809作为典型的A/D转换芯片,具有转换速度快、价格低廉及与微型计算机接口简便等一系列优点,目前在8位单片机系统中得到了广泛的应用。
1 ADC0809的逻辑结构ADC0809是带有8位A/D转换器、8路模拟开关以及微处理机兼容的控制逻辑的CMOS组件。
它是逐次逼近式A/D转换器,是目前应用比较广泛的A/D转换芯片之一,主要适用于对精度和采样速率要求不高的场合或一般的工业控制领域,可以和单片机直接相连。
摘要本文介绍了基于单片机的数据采集的硬件设计和软件设计,数据采集系统是模拟域与数字域之间必不可少的纽带,它的存在具有非常重要的作用。
本文介绍的重点是数据采集系统,而该系统硬件部分的重心在于单片机。
硬件部分是以单片机为核心,还包括A/D模数转换模块,LCD1602显示模块部分。
8路被测电压通过模数转换器ADC0809进行模数转换,实现对采集到的数据进行模拟量到数字量的转换,并将转换后的数据通过LCD1602显示器来显示所采集的结果,并且可以通过按键来查看任意通路的电压值,整个系统具有操作方便、线路简单、测量误差小等优点。
关键词:单片机AT89S52、模数转换器ADC0809、数据采集、LCD1602显示器目录摘要 01、方案设计 (2)2、硬件电路的设计 (3)2.1单片机的最小系统设计 (3)2.2 ADC0809模数转换器设计电路 (4)2.2.1 ADC0809的结构功能 (4)2.2.2 ADC0809的工作时序 (7)2.2.3 ADC0809与AT89C52单片机的接口电路 (8)2.3 LCD1602显示电路 (8)2.4 键盘与单片机连接电路 (11)2.5系统整体电路图 (11)3、软件设计 (12)4、系统仿真和测试结果 (13)5、性能分析 (14)6、心得与体会 (15)7、参考文献 (15)附录一:源程序 (15)附录二:本科生能力拓展训练成绩评定表 (21)1、方案设计根据设计要求,采用的方案如下:硬件部分实现对8路数据采集和显示的功能,包括MCS-51单片机、ADC0809、LCD1602;软件部分实现单片机对8路输入数据的采集以及对LCD1602的显示操作。
主要设计思想:单片机P1与ADC0809相连,P0与LCD1602连接。
模拟信号通过IN0——IN7输入到ADC0809中转换为数字信号,P1获得此值后,经过处理得到每位的数据后,通过P0口写数据到LCD屏上。
数据采集电路的原理框如图1所示。
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进行接口设计,可以实现模拟信号的数字化处理和控制功能。
245 可直接连到AT89S51单片机的数据总线上。
通过适当的外接电路,ADC0809可对0~5V 的模拟信号进行转换。
图11-19 ADC0809的内部结构框图3.输入模拟电压与输出数字量的关系ADC0809的输入模拟电压与转换输出结果的数字量的关系如下。
)(256)]()([R R R IN −+•−−+=V N V V V 其中:V IN 处于[V R (+)-V R (-)]之间, N 为十进制数。
通常情况下V R (+)接+5V ,V R (-)接地,即模拟输入电压范围为0~+5V 。
此时,输入模拟电压与转换输出结果的数字量的关系如下。
N V V •+=256)(R IN 对应的数字量输出为00H ~FFH 。
由于N /256的值小于1,所以被转换的模拟电压要小于参考电压。
11.6.2 AT89S51单片机与ADC0809的接口设计在讨论接口设计之前,先来了解单片机如何控制ADC 开始转换,如何得知转换结束以及如何读入转换结果的问题。
单片机控制ADC0809有查询和中断两种方式。
查询方式控制过程如下:首先用指令选择ADC0809的一个模拟输入通道,当执行指令“MOVX@DPTR ,A ”时,单片机的WR 信号有效,从而产生一个启动脉冲。
信号加到ADC0809的START 脚,开始对选中通道进行A/D 转换。
同时不断对ADC0809的EOC 脚的电平进行查询,如EOC 脚为高电平,则表明A/D 转换已经结束,然后单片机执行指令“MOVX A ,@DPTR ”,发出读控制RD 信号,控制OE 端为高电平,把转换完毕的数字量读入到单片机中。
中断控制方式控制过程如下:首先用指令选择ADC0809的一个模拟输入通道,当执行“MOVX @DPTR ,A ”时,单片机的WR 信号有效,在启动信号送到ADC 之后,单片机执行其他程序。
ADC0809转换结束时,通过EOC 脚向单片机发出中断请求信号,单片机响应该中断请求,进入中断服务程序读入转换完毕的数字量。
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.小结:上面所讲述的方法对于对角占优矩阵是非常行之有效的.但是它还有一定的局限性。
ADC0809AD转换芯片的原理及应用的控制逻辑的CMOS组件。
它是逐次逼近式A/D转换器,可以和单片机直接接口。
(1)ADC0809的内部逻辑结构由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
(2).引脚结构IN0-IN7:8条模拟量输入通道ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:4条ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
通道选择表如下表所示。
选择的CBA通道000001010011100101110111IN0IN1IN2IN3IN4IN5IN6IN7数字量输出及控制线:11条ST为转换启动信号。
当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。
EOC为转换结束信号。
当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。
OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。
D7-D0为数字量输出线。
CLK为时钟输入信号线。
因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(+),VREF(-)为参考电压输入。
2.ADC0809应用说明(1).ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。
ADC0809 与单片机的接口地址ADC0809 是美国国家半导体公司生产的CMOS 工艺8 通道,8 位逐次逼近式A/D 模数转换器。
其内部有一个8 通道多路开关,它可以根据地址码锁存译码后的信号,只选通8 路模拟输入信号中的一个进行A/D 转换。
目前仅在单片机初学应用设计中较为常见。
ADC0809 与单片机的接口地址----ADC0809 引脚ADC0809 芯片为28 引脚为双列直插式封装,其引脚排列见下图。
对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,输出转换得到的数据。
Vcc+5V 电源。
Vref 参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。
其典型值为+5V(Vref(+)=+5V,Vref(-)=-5V)。
ADC0809 与单片机的接口地址----A/D 转换器ADC0809 与MCS-51 单片机的接口设计ADC0808/0809 八位逐次逼近式A/D 转换器是一种单片CMOS 器件,包括8 位的模/数转换器,8 通道多路转换器和与微处理器兼容的控制逻辑。
第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转换。
姓名:何建国学号:20116255 班级:机械1102班
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 某一通道并启动转换
这是一种不完全地址译码方式. 如果增加地址译码器, 将P2. 7/ A15 线改为高位地址译码器的输出线, 就可以形成完全译码在图
1 连接方式中,ADC0809 的转换结果寄存器在概念上定位为单片机外部RAM 单元的一个只读寄存器, 与通道号无关. 因此读取转换结果时不必关心DPTR 中的通道号如何.编程概要:
MOV DPTR , # 7FF8H; DPTR 指向0809 通道0
MOVX @DPTR ,A ; 锁定通道0 并启动转换
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
MOVX A , @DPTR ;
读取转换结果要求在程序第一条指令中把决定是否能选中
整个ADC0809 芯片和通道的数据送到数据指针DPTR. 在本电路中, 只要送到DPTR 的最高位数据为0 , 就能选中ADC0809 , 而通道地址由DPTR 的最低 3 位数字决定. 这里累加器 A 的内容对于ADC没有任何意义. 因此事先不用操心累加器 A 内容如何. 这是本程序的一大特点.
2 ADC0809 与51 单片机的第二种连接方式通常芯片的地址线只能进不能出自不必说,ADC0809 的数据线有一特点: 只能出不能进. 就是说, 就像往SBUF 写入时写到发送缓冲寄存器, 从SBUF 读出时实际是读取接收缓冲寄存器的数据一样, 往ADC0809 写入时, 把数据总线上的数据写到地址寄存器, 从ADC0809 读出时实际是读取转换
结果数据
因此可以在把51 单片机的8 位数据线接到ADC0809 的8 位数据线的同时, 又把其中的 3 位直接接到ADC0809 的 3 根地址线以确定通道号. 通常把51 单片机的8 位数据线中的低 3 位D2 ,D1 ,D0 直接接到ADC0809 的3 根地址线A2 ,A1 ,A0 以确定通道号, 如图 2. 采用这种连接方式明显可以省去一片74LS373.在图 2 连接方式中,ADC0809 的转换结果寄存器在概念上定位为单片机外部RAM 单元的只读寄存器, 而通道号锁存器在概念上定位为单片机同一个外部RAM 单元的只写寄存器. 同一个外部RAM 单元的只读寄存器与只写寄存器使用同一个地址,就像51 系列单片机的串行发送缓冲器与串行接收缓冲器使用同一个地址99H 一样, 不会发生混乱.图 2 连接方式有一个特点, 那就是单片机要把最低 3 位二进制数据通过数据总线写入ADC0809的地址锁存器, 然后作为通道地址使用.
编程概要:
MOV A , # 0F8H ; ADC0809 通道0 地址送到A
MOV DPTR , # 7FFFH; DPTR 指向ADC0809
MOVX @DPTR ,A ; 锁定通道0 并启动转换
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
MOVX A , @DPTR ; 读取转换结果
要求在程序第一条指令中把决定是否能选中整个ADC0809 芯片的数据送到数据指针DPTR. 在本电路中, 只要送到DPTR 的最高位数据为0 , 就能选中ADC0809 , 而通道地址由累加器A 的最低3 位数字决定. 除了最高位以外,DPTR 的其余15 位数据对于ADC 没有任何意义. 除了较低 3 位以外, 累加器 A 的其余 5 位数据对于ADC 也没有任何意义. 这是本程序的一大特点.
3 ADC0809 与51 单片机的第三种连接方式在很多应用场合,AT89S51 内部的硬件资源,例如4kB 闪存,128B 内部RAM , 一个串行口和
4 个8 位并行口等, 已经够用. 就是说, 在很多应用场合, 不需要外扩RAM 或I/ O 口
当51 单片机没有外扩RAM 和I/ O 口时,ADC0809 就可以在概
念上作为一个特殊的唯一的外扩RAM 单元. 因为它是唯一的, 就没有地址编号, 也就不需要任何地址线或者地址译码线. 只要单片机往外部RAM 写入, 就是写到ADC0809 的地址寄存器中. 只要单片机从外部RAM 读取数据, 就是读取ADC0809 的转换结果.基于这种外部RAM 的唯一单元概念设计的AT89S51 与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 中送入什么数据. 这是本程序的一大特点。