#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/mman.h>
#include "lcd.h"
#include "zimo.h"
void display_hanzi(int x0,int y0,char zimo[],int w,int h)
{
int dian; //点的编号 0 -- w*h-1
int color;
for(dian=0;dian<w*h;dian++)
{
//要知道这个bit为属于哪8个点
int xb=dian/8;
//要知道这个bit 属于这8个点的第几bit位
int bit=7-dian%8;
if(zimo[xb]&(1<<bit))
{
//此bit为1
color=0x000000;
}
else
{
//此bit为0
color=0xffffff;
}
int x,y; //点的坐标
x=x0+dian%w;
y=y0+dian/w;
lcd_draw_point(x,y,color);
}
}
void display_dian(int x0,int y0)
{
/*-- 文字: . --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
unsigned char dian[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00};
display_hanzi(x0,y0,dian,8,16);
}
void display_shuzi(int x0,int y0,int a)
{
char n0[] = {0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00};
char n1[] = {0x00,0x00,0x00,0x08,0x38,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00};
char n2[] = {0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x02,0x04,0x08,0x10,0x20,0x42,0x7E,0x00,0x00};
char n3[] = {0x00,0x00,0x00,0x3C,0x42,0x42,0x02,0x04,0x18,0x04,0x02,0x42,0x42,0x3C,0x00,0x00};
char n4[] = {0x00,0x00,0x00,0x04,0x0C,0x0C,0x14,0x24,0x24,0x44,0x7F,0x04,0x04,0x1F,0x00,0x00};
char n5[] = {0x00,0x00,0x00,0x7E,0x40,0x40,0x40,0x78,0x44,0x02,0x02,0x42,0x44,0x38,0x00,0x00};
char n6[] = {0x00,0x00,0x00,0x18,0x24,0x40,0x40,0x5C,0x62,0x42,0x42,0x42,0x22,0x1C,0x00,0x00};
char n7[] = {0x00,0x00,0x00,0x7E,0x42,0x04,0x04,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x00,0x00};
char n8[] = {0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x24,0x18,0x24,0x42,0x42,0x42,0x3C,0x00,0x00};
char n9[] = {0x00,0x00,0x00,0x38,0x44,0x42,0x42,0x42,0x46,0x3A,0x02,0x02,0x24,0x18,0x00,0x00};
switch (a)
{
case 0:
{
display_hanzi( x0, y0, n0,8,16);
break;
}
case 1:
{
display_hanzi( x0, y0, n1,8,16);
break;
}
case 2:
{
display_hanzi( x0, y0, n2,8,16);
break;
}
case 3:
{
display_hanzi( x0, y0, n3,8,16);
break;
}
case 4:
{
display_hanzi( x0, y0, n4,8,16);
break;
}
case 5:
{
display_hanzi( x0, y0, n5,8,16);
break;
}
case 6:
{
display_hanzi( x0, y0, n6,8,16);
break;
}
case 7:
{
display_hanzi( x0, y0, n7,8,16);
break;
}
case 8:
{
display_hanzi( x0, y0, n8,8,16);
break;
}
case 9:
{
display_hanzi( x0, y0, n9,8,16);
break;
}
}
}
//显示4位的数据 中间有小数点
void display_data4(int x0,int y0,int num)
{
display_shuzi(x0,y0,num/1000);
display_shuzi(x0+8,y0,(num%1000)/100);
display_dian(x0+16,y0);
display_shuzi(x0+24,y0,(num%100)/10);
display_shuzi(x0+32,y0,num%10);
}
//显示6位的数据 中间有小数点
void display_data6(int x0,int y0,int num)
{
display_shuzi(x0,y0,num/100000);
display_shuzi(x0+8,y0,(num%100000)/10000);
display_shuzi(x0+16,y0,(num%100000)%10000/1000);
display_dian(x0+24,y0);
display_shuzi(x0+32,y0,(num%1000)/100);
display_shuzi(x0+40,y0,(num%100)/10);
display_shuzi(x0+48,y0,num%10);
}
/*-- 文字: 智 --*/
/*-- 宋体26; 此字体下对应的点阵为:宽x高=35x35 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=40x35 --*/
char zhi[40*35/8]={0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x01,0xE0,0x00,0x00,0x00,0x03,
0xC0,0x80,0x00,0x00,0x03,0x81,0xCE,0x06,0x00,0x03,0xFF,0xEF,0xFF,0x00,0x07,0x3C,
0x0E,0x0F,0x00,0x07,0x3C,0x0E,0x0F,0x00,0x0E,0x3C,0x0E,0x0F,0x00,0x1C,0x38,0x4E,
0x0F,0x00,0x00,0x38,0xEE,0x0F,0x00,0x3F,0xFF,0xFE,0x0F,0x00,0x18,0x38,0x0E,0x0F,
0x00,0x00,0x7C,0x0E,0x0F,0x00,0x00,0x7F,0x0F,0xFF,0x00,0x00,0xF7,0xCE,0x0F,0x00,
0x00,0xE3,0xEE,0x0E,0x00,0x01,0xC1,0xEC,0x0C,0x00,0x03,0xF0,0xE0,0x70,0x00,0x0F,
0x7F,0xFF,0xF8,0x00,0x3C,0x70,0x00,0xF0,0x00,0x30,0x70,0x00,0xF0,0x00,0x00,0x70,
0x00,0xF0,0x00,0x00,0x70,0x00,0xF0,0x00,0x00,0x70,0x00,0xF0,0x00,0x00,0x7F,0xFF,
0xF0,0x00,0x00,0x70,0x00,0xF0,0x00,0x00,0x70,0x00,0xF0,0x00,0x00,0x70,0x00,0xF0,
0x00,0x00,0x70,0x00,0xF0,0x00,0x00,0x7F,0xFF,0xF0,0x00,0x00,0x70,0x00,0xF0,0x00,
0x00,0x70,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
/*-- 文字: 能 --*/
/*-- 宋体26; 此字体下对应的点阵为:宽x高=35x35 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=40x35 --*/
char zhi0[40*35/8]={0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0xF0,0x1E,0x00,0x00,0x00,
0xF0,0x1F,0x00,0x00,0x01,0xE0,0x1E,0x18,0x00,0x03,0xCE,0x1E,0x3C,0x00,0x03,0x87,
0x1E,0x7E,0x00,0x07,0x03,0x9F,0xF0,0x00,0x1E,0x03,0xDF,0xC2,0x00,0x3F,0xFF,0xFE,
0x03,0x00,0x1F,0xF9,0xFE,0x03,0x00,0x1C,0x00,0xDE,0x03,0x00,0x00,0x00,0x1E,0x07,
0x80,0x0C,0x07,0x0F,0xFF,0x80,0x0F,0xFF,0x8F,0xFF,0x80,0x0E,0x07,0x80,0x00,0x00,
0x0E,0x07,0x00,0x00,0x00,0x0E,0x07,0x1C,0x00,0x00,0x0F,0xFF,0x1E,0x1C,0x00,0x0E,
0x07,0x1C,0x1E,0x00,0x0E,0x07,0x1C,0x7E,0x00,0x0E,0x07,0x1C,0xF8,0x00,0x0E,0x07,
0x1D,0xE0,0x00,0x0F,0xFF,0x1F,0x80,0x00,0x0E,0x07,0x1E,0x00,0x00,0x0E,0x07,0x1C,
0x03,0x00,0x0E,0x07,0x1C,0x03,0x00,0x0E,0x07,0x1C,0x03,0x00,0x0E,0x07,0x1C,0x03,
0x80,0x0E,0x07,0x1E,0x03,0x80,0x0E,0x7F,0x1F,0xFF,0xC0,0x0E,0x1F,0x0F,0xFF,0x80,
0x0E,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
/*-- 文字: 家 --*/
/*-- 宋体26; 此字体下对应的点阵为:宽x高=35x35 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=40x35 --*/
char zhi1[40*35/8]={0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x01,0xE0,0x00,0x00,0x00,
0x00,0xF0,0x00,0x00,0x06,0x00,0xF0,0x00,0x00,0x06,0x00,0x60,0x07,0x00,0x07,0xFF,
0xFF,0xFF,0x80,0x0E,0x00,0x00,0x0F,0x80,0x1E,0x00,0x00,0xCE,0x00,0x3E,0x00,0x01,
0xFC,0x00,0x1F,0xFF,0xFF,0xF0,0x00,0x00,0x83,0xC0,0x00,0x00,0x00,0x07,0x80,0x20,
0x00,0x00,0x0F,0x80,0x70,0x00,0x00,0x3F,0xC0,0xF8,0x00,0x00,0x79,0xE3,0xF0,0x00,
0x01,0xE1,0xE7,0x80,0x00,0x07,0x83,0xFF,0x00,0x00,0x1E,0x07,0xFB,0x00,0x00,0x30,
0x1F,0x3B,0x00,0x00,0x00,0x3C,0x7B,0x80,0x00,0x00,0xF8,0xFD,0x80,0x00,0x01,0xE1,
0xFD,0xC0,0x00,0x07,0x83,0xFC,0xE0,0x00,0x3E,0x07,0x9C,0xF0,0x00,0x10,0x1F,0x1C,
0x7C,0x00,0x00,0x3C,0x1C,0x3F,0x00,0x00,0xF8,0x3C,0x1F,0xC0,0x03,0xE0,0x3C,0x0F,
0x00,0x0F,0x8F,0x7C,0x00,0x00,0x7C,0x07,0xF8,0x00,0x00,0x60,0x01,0xF0,0x00,0x00,
0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
/*-- 文字: 居 --*/
/*-- 宋体26; 此字体下对应的点阵为:宽x高=35x35 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=40x35 --*/
char zhi2[40*35/8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x1C,0x00,0x03,
0xFF,0xFF,0xFE,0x00,0x03,0x80,0x00,0x1C,0x00,0x03,0x80,0x00,0x1C,0x00,0x03,0x80,
0x00,0x1C,0x00,0x03,0x80,0x00,0x1C,0x00,0x03,0xFF,0xFF,0xFC,0x00,0x03,0x80,0x30,
0x1C,0x00,0x03,0x80,0x3C,0x18,0x00,0x03,0x80,0x3C,0x00,0x00,0x03,0x80,0x38,0x00,
0x00,0x03,0x80,0x38,0x03,0x00,0x03,0x80,0x38,0x0F,0x00,0x03,0xFF,0xFF,0xFF,0x80,
0x03,0xE0,0x38,0x00,0x00,0x03,0x80,0x38,0x00,0x00,0x03,0x80,0x38,0x00,0x00,0x07,
0x80,0x38,0x00,0x00,0x07,0x80,0x38,0x30,0x00,0x07,0x38,0x38,0x38,0x00,0x07,0x3F,
0xFF,0xFC,0x00,0x07,0x3C,0x00,0x78,0x00,0x07,0x3C,0x00,0x78,0x00,0x0E,0x3C,0x00,
0x78,0x00,0x0E,0x3C,0x00,0x78,0x00,0x0C,0x3C,0x00,0x78,0x00,0x1C,0x3C,0x00,0x78,
0x00,0x18,0x3F,0xFF,0xF8,0x00,0x38,0x3C,0x00,0x78,0x00,0x70,0x3C,0x00,0x70,0x00,
0x60,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
/*-- 文字: 系 --*/
/*-- 宋体26; 此字体下对应的点阵为:宽x高=35x35 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=40x35 --*/
char zhi3[40*35/8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x07,0xFC,0x00,0x00,
0x01,