本帖最后由 wlqqc123 于 2019-4-28 21:18 编辑
用Proteus做一个仿真,用了ad0808的双通道,通道1能够正常显示,通道0显示的数字一直在跳动,刚才发帖以为是ad的问题,后来我自己改了改发现在显示时候出了一点问题,程序中dat【】如果【】中数字大于4,在12864上的显示就会是两个数值在不停的跳。
程序和代码在下边,希望大神能够指教一下,谢谢!
电路原理图如下:
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]);
}
|