本帖最后由 wlqqc123 于 2019-4-28 21:18 編輯
用Proteus做一個仿真,用了ad0808的雙通道,通道1能夠正常顯示,通道0顯示的數字一直在跳動,剛才發帖以為是ad的問題,后來我自己改了改發現在顯示時候出了一點問題,程序中dat【】如果【】中數字大于4,在12864上的顯示就會是兩個數值在不停的跳。
程序和代碼在下邊,希望大神能夠指教一下,謝謝!
電路原理圖如下:
TIM圖片20190428172849.png (62.77 KB, 下載次數: 23)
下載附件
2019-4-28 17:31 上傳
void main()
{
InitLCD();
InitDingshi();
while(1)
{
Key_Scan();
ST=0;
ST=1;
ST=0;//??????
while(EOC==0); //?????????
OE=1; //???????
adc=P1;
OE=0;
if(adc>199)
{
Reverse_dianji();
}
tmp=(4.3478261*adc)+93;
{
if(A==0)
{
dat[0]=tmp%10;
dat[1]=tmp/10%10;
dat[2]=tmp/100%10;
dat[3]=tmp/1000;
}
else
{
dat[4]=tmp%10;
dat[5]=tmp/10%10;
dat[6]=tmp/100%10;
dat[7]=tmp/1000;
}
A=!A;
}
Display(1,2,0,0);
Display(1,2,16,1);
Display(1,2,32,2);
Display(1,2,48,5);
Display(1,4,0,3);
Display(1,4,16,4);
Display(1,4,32,2);
Display(1,4,48,5);
Display(2,4,32,6);
Display(2,4,48,7);
Display(2,2,32,6);
Display(2,2,48,7);
Displayen(2,4,24,dat[0]);
Displayen(2,4,16,dat[1]);
Displayen(2,4,8,dat[2]);
Displayen(2,4,0,dat[3]);
Displayen(2,2,24,dat[4]);
Displayen(2,2,16,dat[5]);
Displayen(2,2,8,dat[6]);
Displayen(2,2,0,dat[7]);
}
|