- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
ADC0804全面知识知识
ADC0804
1 功能: A/D转换器就是模拟/数字转换器(ADC),是将输入的模拟信号转换成数字信号。信号输入端可以是传感器或转换器的输出,而ADC的数字信号也可能提供给微处理器,以便更广泛的应用。
2 ADC0804的规格及引脚图
8位CMOS依次逼近型的A/D转换器。
三态锁定输出
存取时间:135us
分辨率:8位
转换时间:100us
总误差:正负1LSB
工作温度:ADC0804LCN—0_70度
引脚图及说明图:
Cs/芯片选择信号
/RD外部读取转换结果的控制输出信号。/RD为高电平,8个数字输出口处理高阻抗,/RD为低电平时数字数据才会输出
/WR:用来启动转换的控制输入,相当于ADC转换的开始(CS=0时),/WR由高电平变为低电平,转换器被清除,/WR回到高电平时,转换正式开始。
CLK IN ,CLK R:时钟输入或接振荡元件(R.C),频率限制在100KHZ~1460KHZ,如果使用RC电路,振荡频率为1/(1.1RC)
/INTR:中断请求信号输出,低电平动作. INTR 是转换结束信号输出端,输出跳转为低电平表示本次转换已经完成,可作为微处理器的中断或查询信号。如果将CS 和WR 端与INTR 端相连,则ADC0804 就处于自动循环转换状态。/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 片内有时钟电路,只要在外部“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。当fCLK 超过640KHZ,转换精度下降,超过极限值1460KHZ 时便不能正常工作。A 经典的电路
B 实验:从ADC0804 的模拟量通道输入0-5V 之间的模拟量,通过ADC0804 转换成数字量送给单片机,经单片机处理后在数码管上以十进制形成显示出来Proteus仿真,有时不能仿真出来,尤其是数码管的,这也正常,硬件能用就好了。
[源代码]
//拧动AD旁边的电位器,会在数码管的前三位显示0-255之间的数//值。这就是把模拟信号转换成数字信号,即模数转换。
#includereg51.h
#include intrins.h
#define uint unsigned int
#define uchar unsigned char
sbit adrd=P3^7; //IO口定义
sbit adwr=P3^6;
sbit diola=P2^5;
sbit dula=P2^6;
sbit wela=P2^7;
unsigned char j,k,adval;
void delay(unsigned char i) //延时程序
{
for(j=i;j0;j--)
for(k=125;k0;k--);
}
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, //数码管编码
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void display(uchar bai_c,uchar sh_c,uchar g_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;
#includereg52.h
#include intrins.h
#include stdio.h
#define uchar unsigned char
#define uint
文档评论(0)