这几天根据网上资料仿照了一个简单的;但现在就是很有问题: ①只能显示你要求的第一个像素点的值,再多就是统一为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号****** } } 有没有大佬帮我看看什么问题。。。。十分感谢 |