ADC(模数转换器)是许多单片机开发中非常重要的一部分,本文是关于将ADC连接到8051单片机。ADC0804是此处使用的ADC,在进行接口程序之前,我们必须清楚地了解ADC0804的工作原理。
一、ADC0804
ADC0804是一颗8位、单通道的A/D转换器。ADC0804的特点是差分模拟电压输入,0-5V输入电压范围,无调零,内置时钟发生器,可以外部调节参考电压以将较小的模拟电压跨度转换为8位分辨率等。ADC0804引脚图如下图所示:
ADC0804的Vref/2(引脚9)处的电压可以在外部进行调节,以将较小的输入电压跨度转换为全8位分辨率。Vref/2(pin9)左开表示输入电压跨度为0-5V,步长为5/255=19.6V。查看下表,了解不同的Vref/2电压和相应的模拟输入电压范围:
转换模拟输入和读取ADC0804输出的步骤:
(1)使CS=0并向WR引脚发送一个低到高的脉冲以启动转换。
(2)现在继续检查INTR引脚。如果转换未完成,INTR将为1,如果转换完成,INTR将为0。
(3)如果转换未完成(INTR=1),则轮询直到完成。
(4)如果转换完成(INTR=0),则进入下一步。
(5)使CS=0并向RD引脚发送一个从高到低的脉冲以从ADC读取数据。
二、原理图
上图显示了ADC0804与8051的接口原理图。电路启动ADC以转换给定的模拟输入,然后接受相应的数字数据并将其显示在连接在P0的LED阵列上。例如,如果模拟输入电压Vin为5V,则所有LED都会发光,以二进制表示11111111,相当于十进制的255。AT89s51是这里使用的单片机。ADC0804的数据输出引脚(D0至D7)分别连接到端口引脚P1.0至P1.7。LEDD1至D8分别连接到端口引脚P0.0至P0.7。电阻器R1至R8是限流电阻器。简单来说,单片机的P1是输入端口,P0是输出端口。ADC的控制信号(INTR、WR、RD和CS)分别在端口引脚P3.4至P3.7处可用。电阻器R9和电容器C1与ADC的内部时钟电路相关联。预设电阻R10形成一个分压器,可用于将特定输入模拟电压施加到ADC。按钮S1、电阻器R11和电容器C4形成去抖动复位机制。晶体X1和电容器C2、C3与单片机的时钟电路相关。
四、程序
ORG00H MOVP1,#11111111B MAIN:CLRP3.7 SETBP3.6 CLRP3.5 SETBP3.5 WAIT:JBP3.4,WAIT CLRP3.7 CLRP3.6 MOVA,P1 CPLA MOVP0,A SJMPMAIN END
以上就是英锐恩单片机开发工程师分享的8051单片机如何连接ADC。英锐恩专注单片机应用方案设计与开发,提供8位单片机、16位单片机、32位单片机。