- 11
- 0
- 约3.44千字
- 约 7页
- 2017-06-07 发布于重庆
- 举报
DAC0832和ADC0804与单片机的知识精华
DAC0832和ADC0804与单片机的知识精华
DAC0832与单片机
首先我们必须对DAC0832有基本的知识认识
D/A是八位的数模转换器,多用芯片是DAC0832,原理图多采用T型电阻网络,分流的形式。
主要的性能指标
1.分辨率 对于5V的转换器,分辨率为5/256=19.5mv,位数越高分辨率越高。
2.线性度 误差在1%之内
绝对精度和相对精度
3.建立时间
常用引脚分析
CS 为片选信号
CR1 写信号
ILE 允许锁存信号
Vref 基准电压输入端
D0-D7 数字量数据输入端,接着单片机P0口上
IOUT1 IOUT2接着单片机上的DA上,排针用跳线帽连接,两者之和为一常数
Rfb 接一反馈电阻
对DAC0832和单片机操作只是对CS和CR1引脚操作就可以
工作方式: 直通方式(还有单 双缓冲) 它们的区别是对不同引脚进行不同的操作
直通方式: CS WR1 WR2 XFER全部接地
ILE接5V
数据一旦输入就直接进行进入DAC寄存器,进行D/A转换
连接好之后输入的程序时:
#includereg51.h
sbit wela=P2^7;
sbit dula=P2^6;
sbit dawr=P3^6;
sbit csda=P3^2;
sbit beep=P2^3;
unsigned char a,b,j,k;
void delay(unsigned char i) //延时函数
{
for(j=i;j0;j--)
for(k=125;k0;k--);
}
void main()
{
wela=0;
dula=0; //关掉数码管显示
csda=0;
dawr=0; //直通方式的接法
a=0;
b=0;
while(1)
{
if(a==0)
{
b+=5;
P0=b;
if(b==225)
{
a=1;
beep=0;
delay(100);
beep=1;
}
delay(50);
}
else
{
b-=5;
P0=b;
if(b==0)
{
a=0;
beep=0;
delay(100);
beep=1;
}
delay(50);
}
}
}
现象是记到极值是蜂咛器响一下。
ADC0804与单片机
芯片:
8位A/D模数转换器ADC0804(温度 湿度 压力采集)
模拟量:连续,中间没有间隔,不规则的。
技术指标
1.分辨率
2.量化误差
3.偏移误差
采用逐次逼近式ADC的转化原理(双积分转换)
Vref: 参考电压源,一定要是稳定。
Vin: 模拟信号输入端
两者之间有一个比较器,一共比较8位
OE: 输出使能信号
EOC: 转换标志位,转换完置1,这样可以中断法查询,做相应的处理
START: 启动信号
引脚
CS:片选信号低电平就选中
RD:读信号的输入
WR:写信号的输入端
INTR:AD转换结束信号,平时是高电平,结束后为低电平
DB0-DB7: 接到单片劫的P1口
CLKR CLKIN:产生时钟信号 电阻选10K 电容选150PF 利用RC充放原理
VIN+:模拟信号的输入,接了一个滑动电位器1,通过一个排针用跳线帽连在一起,还要接一个10K的电阻去限流作用
Vref: 参考电压源,一定要是稳定。(2.5V)
模拟地和数字地不能接到一块。
程序编写:
#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(ucha
原创力文档

文档评论(0)