本人小白一枚,從網上弄了基于89c52單片機開發板,自學。
教材里用了8位ADC0804LCN進行講解。自我感覺也聽懂了大部分。下面是DAC0804LCN的典型應用、時序圖、原理圖和教材里的例程。
典型應用.png (63.55 KB, 下載次數: 52)
下載附件
典型應用
2020-7-23 19:01 上傳
時序1.png (38.82 KB, 下載次數: 50)
下載附件
時序圖1
2020-7-23 19:01 上傳
時序2.png (27.38 KB, 下載次數: 59)
下載附件
時序圖2
2020-7-23 19:01 上傳
ADC0804原理圖.png (162.69 KB, 下載次數: 68)
下載附件
原理圖
2020-7-23 19:10 上傳
單片機例程:(作用是將用于比較的電壓的值用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
|