资源描述:
《ADC0804全面知识知识》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ADC08041功能:A/D转换器就是模拟/数字转换器(ADC),是将输入的模拟信号转换成数字信号。信号输入端可以是传感器或转换器的输出,而ADC的数字信号也可能提供给微处理器,以便更广泛的应用。2ADC0804的规格及引脚图8位CMOS依次逼近型的A/D转换器。三态锁定输出存取时间:135us分辨率:8位转换时间:100us总误差:正负1LSB工作温度:ADC0804LCN—0_70度引脚图及说明图:Cs/芯片选择信号/RD外部读取转换结果的控制输出信号。/RD为高电平,8个数字输出口处理高阻抗,/RD为低电平时数字数据才会输出/WR:用来启动
2、转换的控制输入,相当于ADC转换的开始(CS=0时),/WR由高电平变为低电平,转换器被清除,/WR回到高电平时,转换正式开始。CLKIN,CLKR:时钟输入或接振荡元件(R.C),频率限制在100KHZ~1460KHZ,如果使用RC电路,振荡频率为1/(1.1RC)/INTR:中断请求信号输出,低电平动作.INTR是转换结束信号输出端,输出跳转为低电平表示本次转换已经完成,可作为微处理器的中断或查询信号。如果将CS和WR端与INTR端相连,则ADC0804就处于自动循环转换状态。VIN(+)VIN(-):差动模拟电压输入,输入单端正电压时,VI
3、N(-)接地。差动输入时直接接VIN(+)VIN(-)。AGNDDGND:模拟信号以及数字信号的接触。VREF/2:辅助参考电压DB0~DB7:8位的数字输出VCC:电源供应以及作为电路的参考电压。引脚功能及应用特性如下:CS、RD、WR(引脚1、2、3):是数字控制输入端,满足标准TTL逻辑电平。其中CS和WR用来控制A/D转换的启动信号。CS、RD用来读A/D转换的结果,当它们同时为低电平时,输出数据锁存器DB0~DB7各端上出现8位并行二进制数码。CLKIN(引脚4)和CLKR(引脚19):ADC0801~0805片内有时钟电路,只要在外部
4、“CLKI”和“CLKR”两端外接一对电阻电容即可产生A/D转换所要求的时钟,其振荡频率为fCLK≈1/1.1RC。其典型应用参数为:R=10KΩ,C=150PF,fCLK≈640KHZ转换速度为100μs。若采用外部时钟,则外部fCLK可从CLKIN端送入,此时不接R、C允许的时钟频率范围为100KHZ~1460KHZ。CS=0时,允许进行A/D转换。WR由低跳高时A/D转换开始,8位逐次比较需8×8=64个时钟周期,再加上控制逻辑操作,一次转换需要66~73个时钟周期。在典型应用fCLK=640KHZ时,转换时间约为103μs~114μs。当
5、fCLK超过640KHZ,转换精度下降,超过极限值1460KHZ时便不能正常工作。3常用电路:A经典的电路B实验:从ADC0804的模拟量通道输入0-5V之间的模拟量,通过ADC0804转换成数字量送给单片机,经单片机处理后在数码管上以十进制形成显示出来。Proteus仿真,有时不能仿真出来,尤其是数码管的,这也正常,硬件能用就好了。[源代码]//拧动AD旁边的电位器,会在数码管的前三位显示0-255之间的数//值。这就是把模拟信号转换成数字信号,即模数转换。#include#include#defineu
6、intunsignedint#defineucharunsignedcharsbitadrd=P3^7;//IO口定义sbitadwr=P3^6;sbitdiola=P2^5;sbitdula=P2^6;sbitwela=P2^7;unsignedcharj,k,adval;voiddelay(unsignedchari)//延时程序{for(j=i;j>0;j--)for(k=125;k>0;k--);}ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,//数码管编码0x07,0x7f,0
7、x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voiddisplay(ucharbai_c,ucharsh_c,ucharg_c)//显示程序{P0=table[bai_c];//显示百位dula=1;dula=0;P0=0xfe;wela=1;wela=0;delay(5);dula=0;P0=table[sh_c];//显示十位dula=1;dula=0;wela=0;P0=0xfd;wela=1;wela=0;delay(5);P0=table[g_c];//显示个位dula=1;dula=0;P0=0xfb;wel
8、a=1;wela=0;delay(5);}voidmain()//主程序{uchara,A1,A2,A2t,A3;while(1){we