是一個用51采集搖桿的度數(0-179度)的代碼
main()
{
ulong x,y;//無符號長整型x,y
uchar n;//無符號字符型n
Initialize_LCD(); //液晶屏初始化
InitADC(); //ADC初始化
delay_ms(100); //延時
x=0;
y=0;
for(n=0;n<10;n++)//這里是采集10位ADC的意思嗎?
{
ADC();
delay_ms(5);
x=x+b[n];//這里看不懂
//前面的代碼有個這個(ulong a=0; a=GetADCResult(0)&0x03; a=ADC_LOW8+a*256;//a=0-1023 b[i]=a; )
y=y+c[n];
}
refx=x/10;
refy=y/10;
mode=0;
while(1)
{
scankey();
ADC();
x=0;
y=0;
for(n=0;n<10;n++)
{
x=x+b[n];
y=y+c[n];
}
if(mode==0)
{
sx=(x*9/512);//x=0-179度
sy=(y*9/512);
}
else if(mode==1)
{
if(x>=refx*10)
sx=(x-refx*10)*9/(1024-refx)+90;
else if(x<refx*10)
sx=x*9/refx;
if(y>=refy*10)
sy=(y-refy*10)*9/(1024-refy)+90;
else if(y<refy*10)
sy=y*9/refy;
}
display_LCD();
delay_ms(100);
}
}
|