这几天根据网上资料仿照了一个简单的;但现在就是很有问题:
①只能显示你要求的第一个像素点的值,再多就是统一为0了;
②显示的数值不是在34与127两个间不断跳动,而且跳一会就不动了,怎么动tsl1401都没用!
这是主要程序:
#include "reg52.h"
#include <intrins.h>
#include "ad.h" //用的是串行的ad0832
#include "oled.h"
#define uchar unsigned char
#define uint unsigned int
sbit CCD_CLK=P2^6;
sbit SI=P2^7;
uchar n;
uchar adc[];
void Delayus(uchar x)
{
while(x--)
{_nop_();}
}
void main()
{
OLED_Init();
while(1)
{
SI=1;
Delayus(10);
CCD_CLK=1;
Delayus(10);
SI=0;
Delayus(10);
CCD_CLK=0;
Delayus(10);
for(n=0; n<128;n++)
{
CCD_CLK=1;
adc[n]=A_D(); //将采集到的每个像素点ad值保存起来
CCD_CLK=0;
Delayus(1);
}
OLED_ShowNum(0,0,adc[81],3,16);//输出81号像素点的值
OLED_ShowNum(0,2,adc[30],3,16);//输出30号******
}
}
有没有大佬帮我看看什么问题。。。。十分感谢
|