|
发表于 2009-8-12 19:16:39
|
显示全部楼层
我也在学,12864可以做到控制每个点,也可以和汉字混合显示。
刚开始玩LCD画点,发现屏上都是花花的乱七八糟,后来多试了几次,发现上电后画图RAM上的数据是随机的,所以上电后得清屏(给画图RAM写‘0’或基本的图形)。
我的方法是建个二维数组,行就是波形的幅度,列就是采集的点数。
在LCD上显示波形的大小为61*80 (±30的幅度+1的‘0’点)
//////////////////将ADC采集的数据转成波形//////////////////////////////
//ADC数据外理 Vn=显示电压比例(1,2,3,4,5)
void ADCDataCL(unsigned char Vn) //40269T
{
//unsigned char ADCInData[80]; //ADC数据库采集
//unsigned char LCDBXData[61][10]; //波形数据
unsigned char ADCn=0,Xz,Yz;
unsigned char R1,R2;
unsigned short R3;
for(Xz=0;Xz<=9;Xz++)
{
for(Yz=0;Yz<=7;Yz++)
{
R1=(ADCInData[ADCn])/Vn;
R2=7-Yz;
if(R1>=62)
LCDBXData[0][Xz]|=(1<<R2); //超出范围
else if(R1<=1)
LCDBXData[60][Xz]|=(1<<R2); //超出范围
else
LCDBXData[61-R1][Xz]|=(1<<R2);
ADCn++;
}
}
R3=0; //与上基本画面(基本画面为一个“田”字形)
for(R1=0;R1<=60;R1++)
{
for(R2=0;R2<=9;R2++)
{LCDBXData[R1][R2]|=LCDBXHM[R3];
R3++;
}
}
}
////////////////////////////////////////////////////////////////////// |
|