单片机与数模及模数转换器接口
- 格式:doc
- 大小:330.00 KB
- 文档页数:16
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.小结:上面所讲述的方法对于对角占优矩阵是非常行之有效的.但是它还有一定的局限性。
单片机中的数字信号处理与接口技术数字信号处理(Digital Signal Processing,DSP)是将连续时间变化的模拟信号转换为离散时间的数字信号的过程。
在单片机中,数字信号处理与接口技术是非常重要的一部分,它涉及到信号的采集、处理和输出等方面,对于实现各种功能和应用起着至关重要的作用。
首先,数字信号处理在单片机中的应用非常广泛。
通过AD(模数转换)和DA(数模转换)模块,可以将模拟信号转换为数字信号,再对数字信号进行各种算法处理,例如滤波、傅里叶变换、微分和积分等操作,最后再将处理后的数字信号转换为模拟信号输出。
这样可以实现对各种传感器信号的采集和处理,满足各种控制系统的需求。
其次,接口技术也是单片机中必不可少的一部分。
单片机通过各种接口与外部设备进行通信,包括串口、并口、SPI(串行外设接口)、I2C(串行总线接口)等。
这些接口技术可以实现单片机与各种外设的数据交换和通信,比如与PC机通信传输数据,与传感器模块进行数据采集等。
在数字信号处理和接口技术的结合中,单片机可以实现各种复杂的功能和应用,比如音频处理、图像处理、通信系统、控制系统等。
其中,音频处理是单片机数字信号处理的典型应用之一,通过对音频信号的采集、数字滤波和编解码等处理,可以实现音频的实时处理和变换,例如降噪、均衡、混响等效果。
另外,数字信号处理和接口技术在控制系统中也有着广泛的应用。
单片机可以通过采集各种传感器信号,如温度、湿度、光照等,进行实时处理和控制,控制各种执行器的运动,实现自动化控制系统。
这种数字信号处理和接口技术的应用,大大提高了控制系统的精度和可靠性。
总的来说,数字信号处理与接口技术是单片机应用中的核心技术之一,它使得单片机可以实现各种复杂的功能和应用。
通过对数字信号的处理和接口的应用,单片机可以实现音频处理、图像处理、通信系统、控制系统等多种功能,为现代电子产品的发展和应用提供了强大的技术支持。
单片机接口技术简介单片机是一种集成了处理器、存储器和各种输入/输出(I/O)接口功能的微型计算机系统。
单片机常用于嵌入式系统中,广泛应用于家电、汽车、医疗设备、通信设备等领域。
而单片机的接口技术则是连接单片机与外部设备之间的桥梁,它是实现单片机与外部环境交互的关键。
单片机接口技术主要包括数字接口和模拟接口两种类型。
数字接口用于数字信号的输入输出,而模拟接口用于模拟信号的输入输出。
下面将依次介绍这两种接口技术。
数字接口技术是单片机与数字设备之间进行数据交换的一种方式。
常见的数字接口技术有并行接口、串行接口和通用串行总线(USB)接口。
1. 并行接口是将数据以并行方式传输的接口技术。
它通过多条数据线同时传输数据,传输速度较快,适用于要求高速数据传输的场景。
常见的并行接口有通用并行接口(GPIO)、外部存储器接口(EMI)等。
2. 串行接口是一种将数据逐位按顺序传输的接口技术。
与并行接口相比,串行接口需要较少的数据线,占用的引脚较少,适用于对引脚数量有限的场景。
常见的串行接口有串行外设接口(SPI)、I2C接口、异步串行通信接口(UART)等。
3. 通用串行总线(USB)接口是一种广泛应用于计算机和外部设备之间的接口技术。
USB接口具有热插拔、高速传输、兼容性好等特点,广泛应用于各种外部设备,如键盘、鼠标、打印机等。
模拟接口技术是单片机与模拟设备之间进行数据交换的一种方式。
常见的模拟接口技术有通用模拟接口(ADC/DAC接口)和PWM(脉宽调制)接口。
1. 通用模拟接口(ADC/DAC接口)用于将模拟信号转换为数字信号(ADC)或将数字信号转换为模拟信号(DAC)。
ADC(模数转换器)将模拟信号转换为数字信号,以便单片机进行处理,而DAC(数模转换器)则将数字信号转换为模拟信号,以便控制外部模拟设备。
2. PWM(脉宽调制)接口是一种通过调节脉冲信号的高电平时间来控制模拟设备的接口技术。
PWM接口广泛应用于电机控制领域,通过改变脉冲的占空比可以控制电机的转速和转向。
单片机中的模拟输入输出接口设计与应用概述单片机是一种集成了处理器、存储器和各种外设功能的集成电路,广泛应用于嵌入式系统中。
在实际应用中,模拟输入输出(Analog Input/Output,简称为AI/AO)是单片机常用的功能之一。
模拟输入输出接口用于将模拟信号转换为数字信号或将数字信号转换为模拟信号,从而实现单片机与外部模拟设备的互联。
本文将介绍单片机中的模拟输入输出接口的设计与应用。
一、模拟输入输出的作用与特点1. 作用:模拟输入输出接口可将模拟量与单片机进行连接,实现模拟量信号的输入和输出,为系统提供更精确的数据。
2. 特点:- 模拟输入输出接口可以实现模拟信号与数字信号之间的转换。
- 模拟输入输出接口通常采用模数转换器(ADC)和数模转换器(DAC)实现模拟信号的采样和重构。
- 模拟输入输出接口的精度和分辨率直接影响系统的测量和控制精度。
二、模拟输入与数字输出接口的设计与应用1. 模拟输入接口设计与应用模拟输入接口常使用模数转换器(ADC)实现。
ADC将外部模拟信号转换为相应的数字信号,单片机可以通过读取数字信号来获取模拟输入量的值。
以下是模拟输入接口的设计与应用步骤:(1)选择合适的ADC型号:根据系统需求,选择合适的ADC型号。
选型时要考虑采样率、分辨率、电平范围和功耗等因素。
(2)接线:将模拟信号与ADC输入引脚相连。
通常,需要使用模拟信号调理电路(如信号调理电路和滤波器)来满足输入要求。
(3)配置寄存器:根据单片机的技术手册,配置ADC寄存器,设置采样频率、参考电压、输入通道等参数。
(4)采样和转换:通过编程,触发ADC进行采样和转换。
读取ADC结果寄存器,获取模拟输入量的数值。
(5)数据处理与应用:根据需要,对获取的模拟输入量进行进一步处理,如信号滤波、数据补偿等。
可以将模拟输入量用于系统的测量、控制、报警等功能。
2. 数字输入与模拟输出接口的设计与应用数字输入与模拟输出接口通常使用数模转换器(DAC)来实现。
单片机中常见的接口类型及其功能介绍单片机(microcontroller)是一种集成了中央处理器、内存和各种外围接口的微型计算机系统。
它通常用于嵌入式系统中,用于控制和监控各种设备。
接口是单片机与外部设备之间进行数据和信号传输的通道。
本文就单片机中常见的接口类型及其功能进行介绍。
一、串行接口1. 串行通信口(USART):USART是单片机与外部设备之间进行串行数据通信的接口。
它可以实现异步或同步传输,常用于与计算机、模块、传感器等设备进行数据交换。
2. SPI(串行外围接口):SPI接口是一种全双工、同步的串行数据接口,通常用于连接单片机与存储器、传感器以及其他外围设备。
SPI接口具有较高的传输速度和灵活性,可以实现多主多从的数据通信。
3. I2C(Inter-Integrated Circuit):I2C接口是一种面向外部设备的串行通信总线,用于连接不同的芯片或模块。
I2C接口通过两条双向线路进行数据传输,可以实现多主多从的通信方式,并且占用的引脚较少。
二、并行接口1. GPIO(通用输入/输出):GPIO接口是单片机中最常见的接口之一,用于连接与单片机进行输入输出的外围设备。
通过设置相应的寄存器和引脚状态,可以实现单片机对外部设备进行控制和监测。
2. ADC(模数转换器):ADC接口用于将模拟信号转换为数字信号,常用于单片机中对模拟信号的采集和处理。
通过ADC接口,单片机可以将外部传感器等模拟信号转化为数字信号,便于处理和分析。
3. DAC(数模转换器):DAC接口用于将数字信号转换为模拟信号。
通过DAC接口,单片机可以控制外部设备的模拟量输出,如音频输出、电压控制等。
三、特殊接口1. PWM(脉冲宽度调制):PWM接口用于产生特定占空比的脉冲信号。
通过调节脉冲的宽度和周期,可以控制外部设备的电平、亮度、速度等。
PWM接口常用于控制电机、LED灯、舵机等设备。
2. I2S(串行音频接口):I2S接口用于在单片机和音频设备之间进行数字音频数据传输。
单片机与DAC数字模拟转换接口原理解析在现代电子设备中,数字模拟转换器(Digital-to-Analog Converter,DAC)起着至关重要的作用。
它可以将数字信号转换成模拟信号,供电路系统进行进一步的处理。
而单片机与DAC之间的数字模拟转换接口是实现这一转换过程的关键。
一、DAC的工作原理DAC是一种电子器件,它可以将数字信号转换为相应的模拟信号。
在DAC内部,数字信号以二进制形式存在,并通过一系列的操作被转换为模拟信号。
典型的DAC是采用分立逐级结构的,其中每个级别对应一个比特位。
在数字信号转换为模拟信号的过程中,每个比特位选择并设置一个精确的电压级别,最终将这些电压级别叠加得到模拟输出信号。
二、单片机与DAC的连接为了实现单片机与DAC之间的数字模拟转换,需要通过连接将它们联结在一起。
连接的方式通常是通过I2C总线、SPI总线或并行接口来实现。
这些接口不仅能够传输数字信号,还可以提供时钟和控制信号。
1. I2C总线:I2C总线是一种串行通信协议,通过两根线(SDA和SCL)实现设备之间的通信。
单片机通过I2C总线向DAC发送数字信号,并提供时钟信号使得DAC能够将数字信号转换为模拟信号。
2. SPI总线:SPI总线也是一种串行通信协议,相比I2C总线,SPI总线具有更高的传输速率。
在单片机与DAC之间,SPI总线通过四根线(SCK、MISO、MOSI和SS)实现通信。
单片机通过这四根线向DAC发送数字信号,并提供时钟信号以控制数据传输。
3. 并行接口:并行接口是一种多线传输方式,其中每一根线对应一个比特位。
在单片机与DAC之间,通过这些并行线路传输数字信号,以及相应的控制信号和时钟信号。
三、单片机与DAC的控制除了连接方式之外,单片机还需要提供相应的控制信号来使得DAC能够正确执行数字模拟转换的过程。
1. 地址选择信号:在使用多个DAC时,单片机需要向特定的DAC发送数字信号,以选择该DAC进行数字模拟转换。