模数转换ADC0804的应用实例(含源程序及电路)
本文引用地址:https://www.eepw.com.cn/article/185910.htm
wela=0;
P0=0xfd;
wela=1;
wela=0;
delay(5);
P0=table[g_c];//显示个位
dula=1;
dula=0;
P0=0xfb;
wela=1;
wela=0;
delay(5);
}
void main()//主程序
{
uchar a,A1,A2,A2t,A3;
while(1)
{
wela=1;
P0=0;//选通ADCS
adwr=0;//AD写入(随便写个什么都行,主要是为了启动AD转换)
_nop_();
adwr=1;
P0=0xff;//关闭ADCS
delay(10);
wela=0;//关闭有AD片选信号锁存器的锁存端以防止在操作数码管时使AD的片选发生变化
for(a=20;a>0;a--)//需要注意的是ADC0804在写和读之间的时间间隔要足够长否则无法读出数据
{//这里把显示部分放这里的原因也是为了增加写读之间的时间隔
display(A1,A2,A3);
}//送去显示各位。
wela=1;//重新打开有AD片选信号锁存器的锁存端
P1=0xff;//读取P1口之前先给其写全
P0=0;//选通ADCS
adrd=0;//AD读使能
adval=P1;//AD数据读取赋给P1口
adrd=1;
P0=0xff;//关闭ADCS
adwr=0;
P1=adval;//同时把AD的值送八个发光二极显示
A1=adval/100;//分出百,十,和个位
A2t=adval%100;
A2=A2t/10;
A3=A2t%10;
};
}
DIY机械键盘相关社区:机械键盘DIY
电路相关文章:电路分析基础
波段开关相关文章:波段开关原理
评论