微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 车载小液晶屏广告发布软硬件系统设计方案

车载小液晶屏广告发布软硬件系统设计方案

时间:06-08 来源:中国IC网 点击:

楚7bit的编码原理。

编码的过程比较容易理解:将源串每8个字符分为一组进行编码,在组内字符间压缩,但每组之间是没有什么联系的。每一组内,首先将各个字符转换为7位的标准二进制ASCII码,然后要将后面字符的低位逐位调整到前面,补齐前面的差别。以发送一个16*16的图片为例编码后就有28个字节,但单片机读取的是56个字节,这是因为手机发送数据的过程中是把一个字节视为为二个字节进行发送的。当单片机负责解码时,采取的处理方法是将每七个字节分为一组,处理为八个字节,再将这八个字节变换成相应的数字进行两两合并,也就是还原原来图片的32个字节,这部分的程序如下:

for(j=0;j<7;j++)

{ h=j/7*4; a=gsm[j]&0x80;

chartemp1=gsm[j]&0x7f;

if(chartemp1<"A") chartemp1=chartemp1-48;

else chartemp1=chartemp1-55;

b=gsm[j+1]&0xc0;

chartemp3=((gsm[j+1]&0x3f)<<1)|(a>>7);

if(chartemp3<"A") chartemp3=chartemp3-48;

else chartemp3=chartemp3-55;

cun[h]=(chartemp1<<4)|chartemp3;

c=gsm[j+2]&0xe0;

chartemp5=((gsm[j+2]&0x1f)<<2)|(b>>6); if(chartemp5<"A") chartemp5=chartemp5-48;

else chartemp5=chartemp5-55;

d=gsm[j+3]&0xf0; chartemp7=((gsm[j+3]&0x0f)<<3)|(c>>5);

if(chartemp7<"A") chartemp7=chartemp7-48;

else chartemp7=chartemp7-55; cun[h+1]=(chartemp5<<4)|chartemp7; e=gsm[j+4]&0xf8; chartemp9=((gsm[j+4]&0x07)<<4)|(d>>4);

if(chartemp9<"A") chartemp9=chartemp9-48;

else chartemp9=chartemp9-55;

f=gsm[j+5]&0xfc;

chartemp11=((gsm[j+5]&0x03)<<5)|(e>>3);

if(chartemp11<"A") chartemp11=chartemp11-48;

else chartemp11=chartemp11-55;

cun[h+2]=(chartemp9<<4)|chartemp11;

g=gsm[j+6]&0xfe;

chartemp13=((gsm[j+6]&0x01)<<6)|(f>>2);

if(chartemp13<"A") chartemp13=chartemp13-48;

else chartemp13=chartemp13-55;

g=g>>1;

if(g<"A") g=g-48;

else g=g-55;

cun[h+3]=(chartemp13<<4)|g;}

3.3 与屏有关的软件设计

这些函数包括往内部ram写数据的writeyipin() 函数,送临时储存区的读数据函数,行扫描列扫描函数,送行列数据函数,同时还有一些延时函数。值得一提的是writeyipin() 函数,在写数据时,因为采用的条屏是可显示12个16*16的图片,所以按照一个字行列的显示顺序存储,这样以来读数据送屏时不必做其他的处理,节省了时间和资源。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top