本人小白一枚,从网上弄了基于89c52单片机开发板,自学。
教材里用了8位ADC0804LCN进行讲解。自我感觉也听懂了大部分。下面是DAC0804LCN的典型应用、时序图、原理图和教材里的例程。
典型应用
时序图1
时序图2
原理图
单片机例程:(作用是将用于比较的电压的值用0-255显示在数码管上)
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uint disnum,a;
sbit adrd=P3^7;
sbit adwr=P3^6;
sbit dula=P2^6;
sbit wela=P2^7;
uchar code table_du[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
delay(uchar);
display(uint);
void main()
{
while(1)
{
wela=1;
P0=0x7f;
adwr=1;
adwr=0;
adwr=1;
delay(10);
P1=0xff;
adrd=1;
adrd=0;
disnum=P1;
adrd=1;
P1=disnum;
for(a=20;a>0;a--)
display(disnum);
}
}
delay(uchar x)
{
uchar a,b;
for(a=x;a>0;a--)
for(b=200;b>0;b--);
}
display(uint disnum)
{
P0=table_du[disnum/100];
dula=1;
dula=0;
P0=0xfe;
wela=1;
wela=0;
delay(10);
P0=table_du[disnum%100/10];
dula=1;
dula=0;
P0=0xfd;
wela=1;
wela=0;
delay(10);
P0=table_du[disnum%100%10];
dula=1;
dula=0;
P0=0xfb;
wela=1;
wela=0;
delay(10);
}
---------------------------------------------------------
我想套用上面的方法。来写ADC124S101CIMM/NOPB的应该程序。结果ADC0804有8个I/O口输出数据。ADC124S101CIMM/NOPB好像只有一个。这个应用程序要怎么看数据手册来写代码。求大神提携下我这个菜鸟,感激成分。下面这个是ADC124S101CIMM/NOPB数据手册的网址
https://www.ti.com/cn/lit/ds/symlink/adc124s101.pdf?ts=1595498761719
|