模數轉換ADC0804的應用(含源程序及電路)
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的片選發(fā)生變化
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的值送八個發(fā)光二極顯示
A1=adval/100;//分出百,十,和個位
A2t=adval%100;
A2=A2t/10;
A3=A2t%10;
};
}
DIY機械鍵盤相關社區(qū):機械鍵盤DIY
評論