车载小液晶屏广告发布软硬件系统设计方案
楚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的图片,所以按照一个字行列的显示顺序存储,这样以来读数据送屏时不必做其他的处理,节省了时间和资源。
广告发布 车载液晶 图像解码 STC89C58RD 相关文章:
- LT3751如何使高压电容器充电变得简单(08-12)
- 三路输出LED驱动器可驱动共阳极LED串(08-17)
- 浪涌抑制器IC简化了危险环境中电子设备的本质安全势垒设计(08-19)
- 严酷的汽车环境要求高性能电源转换(08-17)
- 适用于工业能源采集的技术 (08-10)
- 单片式电池充电器简化太阳能供电设计(08-20)