单片机与模数转换器的接口
- 格式:pdf
- 大小:160.48 KB
- 文档页数:3
单片机原理及接口技术
单片机(Microcontroller)是一种集成了微处理器、存储器和各种输入输出接口的微型计算机系统。
它具有体积小、功耗低、成本低、性能稳定等特点,广泛应用于各种电子设备中。
本文将从单片机的基本原理和接口技术两个方面进行介绍。
首先,我们来了解一下单片机的基本原理。
单片机的核心是微处理器,它包括运算器、控制器和寄存器等部分。
运算器负责执行各种算术逻辑运算,控制器则负责指挥各个部件的工作,寄存器则用来存储数据和指令。
此外,单片机还包括存储器,用来存储程序和数据。
单片机通过各种输入输出接口与外部设备进行通信,实现各种功能。
接下来,我们将重点介绍单片机的接口技术。
单片机的接口技术包括数字接口和模拟接口两种。
数字接口主要用于数字信号的输入输出,包括并行接口、串行接口、定时器计数器等。
模拟接口则用于模拟信号的输入输出,包括模数转换器、数模转换器等。
单片机的接口技术是实现各种功能的关键,它决定了单片机能否与外部设备有效地进行通信。
在实际应用中,单片机的接口技术扮演着非常重要的角色。
通过合理设计接口电路,可以实现单片机与各种外部设备的连接,如传感器、执行器、显示器等。
同时,合理的接口设计还可以提高系统的稳定性和可靠性,降低系统的成本和功耗。
总的来说,单片机作为一种集成了微处理器、存储器和各种输入输出接口的微型计算机系统,具有体积小、功耗低、成本低、性能稳定等特点,广泛应用于各种电子设备中。
单片机的基本原理和接口技术是我们理解和应用单片机的关键,希望本文的介绍能够对大家有所帮助。
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.小结:上面所讲述的方法对于对角占优矩阵是非常行之有效的.但是它还有一定的局限性。
单片机IO口介绍单片机(microcontroller)是一种集成电路芯片,具有运算、存储和控制功能。
它是嵌入式系统中最常用的处理器之一、在单片机中,IO (Input/Output)口是用来进行输入输出操作的接口。
IO口通常包括数字IO口和模拟IO口两种类型。
下面将详细介绍单片机IO口的功能和应用。
1.数字IO口:数字IO口是单片机与外部设备进行数字信号交换的接口。
数字IO口可以进行输入和输出操作,具有以下特点:-输入功能:可以通过读取外部设备的状态或信号,并将其转换为数字信号输入到单片机中进行处理。
例如,传感器的信号输入和按键的输入等。
-输出功能:可以通过将数字信号输出到外部设备,控制其工作状态。
例如,LED的控制、驱动电机或继电器等。
数字IO口通常以引脚(pin)的形式存在于单片机芯片上。
一个引脚包括输入端和输出端,可以根据需要进行配置。
数字IO口操作简单、速度快、精度高,常用于控制和通信等方面。
2.模拟IO口:模拟IO口是单片机与外部设备进行模拟信号交换的接口。
模拟IO口可以进行模拟输入和输出操作,常用于采集和控制模拟信号。
-模拟输入功能:可以从外部信号源中获取模拟信号,并将其转换为数字信号输入到单片机中进行处理。
例如,温度传感器、声音传感器等。
-模拟输出功能:可以将数字信号转换为模拟电压、电流等形式,输出到外部设备中。
例如,通过PWM(脉冲宽度调制)信号控制电机的转速。
模拟IO口通常通过ADC(模数转换器)和DAC(数模转换器)实现。
ADC将模拟信号转换为数字信号,DAC将数字信号转换为模拟信号。
模拟IO口的使用相对复杂,需要进行模数转换和数模转换,但在一些需要对模拟信号进行处理和控制的应用中起到关键作用。
3.应用场景:IO口在单片机系统中广泛应用于各种应用场景。
以下是一些常见的应用场景:-传感器接口:通过IO口连接传感器,读取传感器的输出信号,进行数据采集和处理。
例如温度、湿度、光照等传感器的接口。
单片机adc引脚原理
单片机的ADC(模数转换器)引脚是用来接收模拟信号并将其转换为数字信号的。
ADC引脚通常是单片机的输入引脚之一,用于连接外部模拟传感器或其他模拟信号源。
在单片机内部,ADC引脚连接到ADC模块,该模块负责将模拟信号转换为数字信号。
ADC引脚的原理主要包括以下几个方面:
1. 输入范围,ADC引脚可以接收的模拟信号的电压范围。
通常情况下,单片机的ADC引脚有一个特定的电压范围,超出这个范围可能会损坏单片机或导致不准确的转换结果。
2. 分辨率,ADC引脚的分辨率表示了模拟信号被转换为数字信号时的精度。
分辨率越高,转换的数字信号就越精确。
3. 采样率,ADC引脚的采样率表示了单片机对模拟信号进行转换的速率。
采样率越高,单片机对模拟信号的转换就越快,能够更准确地捕捉到信号的变化。
除了以上原理外,ADC引脚还需要考虑输入阻抗、参考电压等
因素。
输入阻抗决定了ADC引脚对外部信号的影响,而参考电压则用于确定模拟信号的电压范围。
在使用ADC引脚时,需要根据具体的单片机型号和数据手册来了解其具体的特性和使用方法。
通常情况下,需要配置ADC模块的工作模式、参考电压等参数,并通过程序来读取转换后的数字信号进行进一步的处理和分析。
ADC引脚在单片机系统中起着至关重要的作用,能够帮助单片机获取外部环境的模拟信号并进行数字化处理,为系统的功能提供支持。
单片机接口技术的基本原理单片机是一种集成电路,具有微处理器核心、存储器、输入输出接口和定时/计数功能。
它可以用于控制各种电子设备,从家电到汽车电子系统。
接口技术是单片机与其它设备进行通信和控制的关键。
接口技术允许单片机与外部设备之间进行数据交换和相互操作。
在单片机系统中,接口技术可以分为数字接口和模拟接口两种类型。
1. 数字接口技术数字接口技术是通过数字信号进行通信和控制的。
它可以分为并行接口和串行接口两种。
1.1 并行接口并行接口是指单片机和外部设备之间同时传输多个数据位。
它可以分为通用并行接口(GPIO)和专用并行接口(如LCD接口、SD卡接口)两种类型。
通用并行接口(GPIO)是单片机器件上的一组设置为输入或输出的引脚,可以用来和外部设备通信。
通过软件编程,可以将这些引脚设置为输入以读取外部设备发送的数据,或者设置为输出以向外部设备发送数据。
专用并行接口通常用于特定的外部设备,比如连接液晶显示屏或SD卡读卡器。
这些接口具有更多的引脚和复杂的通信协议,可以实现高速数据传输和显示控制。
1.2 串行接口串行接口是指单片机和外部设备之间通过一根数据线按顺序传输数据位。
它可以分为同步串行接口和异步串行接口两种类型。
同步串行接口使用时钟信号同步数据传输,速度较快,但通信协议复杂。
常见的同步串行接口包括SPI(串行外设接口)、I2C(两线式串行通信接口)和CAN (控制器局域网)等。
异步串行接口通过起始位和停止位标记传输的字节,并且没有时钟信号。
它简单易用,常用于普通串口通讯(UART),用于与计算机、模块或其他单片机进行通信。
2. 模拟接口技术模拟接口技术是通过模拟信号进行通信和控制的。
它常用于测量、传感器和执行器之间的数据传输。
模拟接口技术包括模拟输入和模拟输出两种。
2.1 模拟输入模拟输入是将外部模拟信号转换为数字信号,供单片机进行处理和分析。
常见的模拟输入技术包括模数转换器(ADC)和电压比较器。
单片机接口技术简介单片机是一种集成了处理器、存储器和各种输入/输出(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)来实现。
A/D转换器CS5550与单片机的接口程序设计辛晓宁,吴子旭(沈阳工业大学信息科学与工程学院,辽宁沈阳110178)摘要:分析双通道低成本A/D转换器CS5550的接口特点,以ATmega16单片机为例设计CS5550与单片机的接口电路。
经过对ATmega16单片机SPI口的分析,详细讨论使用硬件SPI接口和软件模拟SPI两种方式的程序设计,并给出相应的软件流程图。
最后对CS5550的两种接口方式进行比较。
关键词:模数转换器;CS5550;单片机;接口程序现代智能化仪器仪表中A/D转换器和单片机是重要组成部分。
串行A/D转换器的串口信号线数目较少,在数据采样速率较低的系统中有利于降低硬件间连线的复杂度,节省单片机的接口资源。
在CS5550的性能特点及其片上串行接口的基础上,给出CS5550与单片机的接口程序设计方案。
1 CS5550的主要性能及接口特点[1]CS5550是Cirrus Logic公司推出的一款双通道低成本Δ-Σ型A/D转换器,内部集成有2个Δ-ΣA/D转换器、2个放大器、1个串行接口以及1个温漂为25 ppm/℃的2.5 V参考电压源。
CS5550在两个通道上都具有24位寄存器,其中通道1具有13位有效位,通道2具有10位有效位[2]。
CS5550片上集成有1个双向数字串行接口,包括CS(片选信号)、SDI(数据输入)、SDO(数据输出)和SCLK(串行时钟)4条控制线。
该串口与标准SPI 接口协议兼容,可与带有SPI接口的单片机传输数据。
另外,CS5550还有一个中断输出引脚INT,可通过配置其屏蔽寄存器(Mask Register)来设定中断,并可通过软件修改配置寄存器中的“IMODE IINV”位来决定中断的产生方式(高/低电平或上升/下降沿有效)。
2单片机的SPI接口与CS5550连接SPI接口是由Motorola公司最先推出的,目前很多型号的单片机都集成有SPI接口,如ATMEL公司的ATmega8[3]、PIC公司的PIC16F877[4]、Analog Devices 公司的ADuC812[5]等。
单片机和模数转换器的接口
·吴景逖·
数据采集是各种智能仪表、工控系统、科学试验等工作中必不可少的任务,它是将实时变化的各种物理量如温度、压力、流量等先经过各种传感器和变换器变成电压或电流信号,再经过模数转换器(以下简称A/D)变成数字信号,送到单片机或微机进行运算、显示、打印、控制等处理。
现在很多单片机内部已经嵌入了A/D,简化了硬件设计,但是这种A/D 的精度一般仅为10位或8 位,满足不了一些要求较高的应用需求。
本文将以80C31单片机和AD574A的接口为例,从硬件设计和编程两方面介绍如何实现单片机和A/D的接口。
希望读者通过本文的介绍可以系统了解A/D转换的过程以及相关的其它技术问题。
AD574A的特性
AD574A是12位逐次逼近型的A/D,芯片内有三态输出缓冲器,输出可直接连到单片机总线,输入控制信号有CE、/CS、R/C,A0及12/8。
当CE为1,/CS为0,R/C 为0时,表示作A/D转换,R/C为‘1’时,表示读A/D转换后的数据。
起动AD574A时,如果A0(通常将它和单片机的最低位地址线A0相连) 为‘0’,表示设定AD574A为12位A/D,如果A0为‘1’,表示设定为8位A/D。
在A/D结束后读取数据时,如果A0为‘0’,表示允许输出转换结果12位中的高8位,如果A0为‘1’,表示允许输出低4位。
引脚12/8如接数字地,表示以两个8位字的方式输出数据(与80C31的接口采用本方式)。
引脚12/8如接+5V,表示以一个12位字的方式输出数据。
AD574A完成一次A/D转换的时间约15~35微秒,它提供的STS信号可以用来被单片机查询A/D是否完成。
转换开始时,STS从‘0’到‘1’,转换过程中,它保持‘1’,转换结束时,它从‘1’到‘0’,‘1’到‘0’的下降沿通知单片机A/D已结束,可以开始读取A/D转换的结果。
80C31和AD574的接口
80C31和AD574的接口电路如图1所示。
由图可以看出AD574的高8位DB11~DB4和80C31的数据线D7~D0直接相连,低4位DB3~DB0和80C31的D3~D0相连,这样A/D结束后,A0为0时读取转换结果的高8位,A0为‘1’时,读取低4位。
/CS端接到译码器的一个输出端“AD574 ADDRR (即AD574的地址) ”;80C31的/WR和/RD经一个与非门接到CE端,表示A/D转换时 (WR=0)和读取数据时(/RD=0),CE=‘1’。
同时(/RD 反相后接R/C端)转换时RD=1,R/C=‘0’,读数据时RD=0,R/C=‘1’。
附表为AD574A
控制真值表。
附表
CE /CS R/C 12/8 AO 工作状态
0 X X X X 不工作
X 1 X X X 不工作
1 0 0 X 0 按12位启动转换
1 0 0 X 1按8位启动转换
1 0 11 X 12位并行输出
1 0 1 0 0 高8位并行输出
1 0 1 0 1低4位并行输出
一般A/D器件的模拟量输入端仅1个,而需要检测的模拟量是多个(假设为8个),这可以通过多路模拟开关(如13508)和一个通道锁存器(74LS373)来解决。
向通道锁存器写不同的控制字,其输出端A、B、C有8种组合,分别选通8个模拟量输入端AIN0~AIN7中的1个,等一个通道的A/D结束并读取数据后,再选择下一个通道,直到完成全部8个通道的A/D转换。
从电路图上可以看到通道锁存器的控制端是由/WR和CH_ADDR控制,CH_ADDR是74LS373的地址,来自译码器(图中未画)的另一个输出端,它不同于AD574 ADDR。
STS信号经倒相后并经数据缓冲器连到80C31的数据线D7,在程序中,80C31不停地检测D7(即检测STS的下降沿),当D7由‘1’变为‘0’时表示A/D转换结束,可以读取结果了。
A/D转换及输出数据时有关的控制端及检测端的时序请见图2。
AD574的驱动程序如下(设通道号寄存器为R1,通道锁存器地址为#CH-ADDR,AD574地址为#AD574,A/D转换结果缓冲器地址指针R0)。
MOV R1,#00H;通道号初值为0
CHSET : MOV A,R1;送通道号
MOV DPTR,#CH-ADDR ;选通道锁存器
MOVX @DPTR,A
INC R1
ACALL DELAY10US;延时10US
ADSTART:
MOV DPTR,#AD574;选AD574
MOVX@DPTR,A;启动A/D,按12为转换
MOV DPTR,#CH-ADDR ;选数据缓冲器
LOOP: MOVX A,@DPTR;读取STS
JNB D7,LOOP;若STS=‘1’,继续等待
MOV DPTR,A;若STS=‘0’,A/D结束
INC DPL ;使A0=‘1’
MOVX A,@DPTR;读A/D结果的低4位
MOV@R0,A;存低4位
DEC DPL;使A0=‘0’
INC R0
MOVX A,@DPTR;读A/D结果的高8位
INC R0
MOV A,R1;选通道号
CLR C
CJNE A,#07H,CHSET ;如通道号不到7,重复以上步骤
CONTIN:…… ;如8通道完成,做其它工作
A/D转换中的相关问题
A/D转换的精度不同系统要求的精度是不同的。
影响精度的首要因素是A/D芯片的分辨率,首先要根据系统对精度的要求,选择相应分辨率的芯片,如AD574是12位,它的分辨率是1/4096,但实际的数据采集精度还受传感器精度,信号处理电路精度的影响,应综合考虑,使各项影响精度的因素相加后满足于总的精度要求。
A/D转换的时间每个A/D转换的时间是有限的,AD574的转换时间是15~35微秒,如取35微秒,这要求被转换的信号在至少35微秒内保持电平不变,否则转换的结果不准确,因此,对快速变化的信号需加采样保持电路以满足要求。
A/D转换结果的读取 A/D转换后要延迟一段时间,待稳定后再读取结果,为了测量准确,同一通道应采样几次并取平均值,这样能避免因瞬间干扰引起的错误。
模量输入信号的处理模拟量输入信号的幅度应在A/D芯片允许的范围内,当太小拟
时应预先放大以便充分利用A/D的精度,当大于规定的范围时应先衰减后再输入,输入信号源应是低内阻的,为此可先加射极跟随器后再送到A/D,为减少地线干扰,可以采用差分方式,用两片多路模拟开关连接输入信号。
模拟地和数字地 AD574的模拟地和数字地有不同的引脚,±15V对应模拟地,+5V 对应数字地,输入信号的公共端应接到模拟地,A/D转换后的数据线和单片机的数据总线相连,单片机的地和外扩芯片的地应接数字地,在布线时数字地要和模拟地分开,最后一点相连。
在控制现场情环境恶劣、干扰严重时应采取光电耦合的方法,彻底分开现场地和系统地。