DAC0832和ADC0804与单片机的知识精华
1.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转换
连接好之后输入的程序时: #include
unsigned char a,b,j,k;
void delay(unsigned char i) //延时函数 {
for(j=i;j>0;j--)
for(k=125;k>0;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); } } }
现象是记到极值是蜂咛器响一下。
2.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) 模拟地和数字地不能接到一块。
程序编写:
#include
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;j>0;j--)
for(k=125;k>0;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;