电子相册
1. 功能设计
- 上一张
- 下一张
- 随机一张
- 循环播放
- 退出循环播放
- 滑动实现相片的切换
2.代码实现
1. 上一张
else if(touch_x1 >= 0 && touch_x1 < 160 && touch_y1 >= 430 && touch_y1<= 480)
{
Bmp_display("/mnt/udisk/Logos/bian.bmp",0,430,plcd);
usleep(5000);
Bmp_display("/mnt/udisk/Logos/shang.bmp",0,430,plcd);
//printf("return\n");
if(0 == k)
{
k = 31;
}
sprintf(arr,"/mnt/udisk/pic/ (%d).bmp",--k);
Bmp_display(arr,0,0,plcd);
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
2. 下一张
else if(touch_x1 >= 160 && touch_x1 <320 && touch_y1 >= 430 && touch_y1<= 480)
{
Bmp_display("/mnt/udisk/Logos/bian.bmp",160,430,plcd);
usleep(5000);
Bmp_display("/mnt/udisk/Logos/xia.bmp",160,430,plcd);
//printf("next\n");
if(30 == k)
{
k = 0;
}
sprintf(arr,"/mnt/udisk/pic/ (%d).bmp",++k);
Bmp_display(arr,0,0,plcd);
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
3. 随机一张
else if(touch_x1 >= 320 && touch_x1 <480 && touch_y1 >= 430 && touch_y1<= 480)
{
Bmp_display("/mnt/udisk/Logos/bian.bmp",320,430,plcd);
usleep(5000);
Bmp_display("/mnt/udisk/Logos/sui.bmp",320,430,plcd);
//printf("suiji\n");
k = random()%30;
sprintf(arr,"/mnt/udisk/pic/ (%d).bmp",k);
Bmp_display(arr,0,0,plcd);
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
4. 循环播放
else if(touch_x1 >= 480 && touch_x1 <640 && touch_y1 >= 430 && touch_y1<= 480)
{
Bmp_display("/mnt/udisk/Logos/bian.bmp",480,430,plcd);
usleep(5000);
Bmp_display("/mnt/udisk/Logos/xun.bmp",480,430,plcd);
//printf("xun\n");
xunflag=1;
while(1)
{
if(30 == k)
{
k = 0;
}
sprintf(arr,"/mnt/udisk/pic/ (%d).bmp",++k);
Bmp_display(arr,0,0,plcd);
sleep(1);
if(touch_x1 >= 640&& touch_x1 <= 800 && touch_y1 >= 430 && touch_y1<= 480 )break;
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
}
5. 退出循环播放
else if(touch_x1 >= 640&& touch_x1 <= 800 && touch_y1 >= 430 && touch_y1<= 480 )
{
usleep(5000);
Bmp_display("/mnt/udisk/Logos/ting2.bmp",640,430,plcd);
printf("停止循环播放");
touch_x1=touch_y1=touch_x2=touch_y2=-1;
//break;
}
6. 滑动实现相片的切换
else if(touch_x1 >= 0 && touch_x1 <= 600 && touch_y1 >= 200 && touch_y1<= 430)
{
//测试滑动
if(-1 == getInput(touch_fd))
{
continue;
}
int direction;
switch (direction = Get_slip_direction())
{
case RIGHT:
printf("RIGHT\n");
if(1 ==k)
{
k = 30;
}
sprintf(arr,"/mnt/udisk/pic/ (%d).bmp",--k);
Bmp_display(arr,0,0,plcd);
touch_x1=touch_y1=touch_x2=touch_y2=-1;
break;
case LEFT:
if(31 == k)
{
k = 0;
}
printf("%d\n",k);
sprintf(arr,"/mnt/udisk/pic/ (%d).bmp",++k);
Bmp_display(arr,0,0,plcd);
touch_x1=touch_y1=touch_x2=touch_y2=-1;
break;
default:
touch_x1=touch_y1=touch_x2=touch_y2=-1;
break;
}
}
3. 功能实现以及缺陷
现在已经将基本功能全部做好了,但是我觉得代码还可以进一步优化,但是实习事件已经快结束了,并没有进一步优化代码。单说以下那个触摸就有点不太灵敏,不知道是代码的问题还是板子的问题。
而且我们做相册时,对图片的处理都是统一为屏幕的大小,然后将其裁剪为同样的大小实现的看上去时“相册”,而且bmp文件也是统一了命名才方便图片路径的使用,这样对于图片的添加是不太友好的。
对于音乐的添加,在做完音乐播放器以后是很简单的操作,而且事件有限我就没添加了。
环境检测
1.功能设计
- 进入初始界面,显示一定信息
- 打印广告和倒计时,倒计时结束后进入主界面
- 主界面里面打印光照强度,温湿度,海拔和气压
2.代码实现
1.初始界面
/*打印开始界面*/
void displayStart(int* plcd)
{
Bmp_display("/mnt/udisk/Logos/startface.bmp", 0, 0, plcd);
//Lcd_draw_matrx(0,0,800,480,0x71c671,plcd);
for(int i=0;i<14;i++)
{
Draw_word(20+phrase_w*i, 50, phrase_w, phrase_h, 0x000000, phrase[i], plcd);
usleep(100000);
}
for(int i=0;i<6;i++)
{
Draw_word(20+words_w*i, 100, words_w, words_h, 0x000000, words[i], plcd);
usleep(100000);
}
for(int i=6;i<13;i++)
{
Draw_word(200+words_w*i, 400, words_w, words_h, 0x000000, words[i], plcd);
usleep(100000);
}
sleep(3);
}
这部分代码通过计算和循环实现了打印字的自动移动,而不像部分同学的用冗长的重复代码打印,算是自己的一点小创新吧。
2. 播放广告
/*打印广告视频*/
void displayAdvertising(int* plcd)
{
char a[100];
system("madplay -a -30 /mnt/udisk/MusicJF/AD.mp3 &");
for(int k=1;k<200;k++)
{
sprintf(a,"/mnt/udisk/ADimag/(%d).bmp",k);
Bmp_display(a,0,40,plcd);
Lcd_draw_matrx(0,450,k*2,40,0x006400,plcd);
usleep(10000);
if(1==main_flag||k==199)
{
break;
}
}
system("killall -9 madplay");
}
播放广告的同时,播放音乐,停止的条件是:主界面标志位置1(表示进入主界面),或者广告播放完。本来是打算倒计时5秒后,可以通过触摸退出广告,即进入主界面标志位置1,但是没有做。还有在整合三个部分的代码时,使程序出了点bug,广告页的进度条和倒计时有点小问题,但快要结束了也懒得改了,而且gy39模块也收了,没时间做了。
3.主界面
/*打印主界面*/
void displayMainInterface(int* plcd)
{
int data[5]={0};
int k=1;
Bmp_display("/mnt/udisk/Logos/MainInterface.bmp", 0, 0, plcd);
touch_x1=touch_y1=touch_x2=touch_y2=-1;
while(1)
{
if(touch_x1>=700&&touch_x1<800&&touch_y1>=0&&touch_y1<=100)
{
break;
}
GY39(data,5);
for(int j=0;j<5;j++)
{
Num_reverse(&data[j]);
Lcd_draw_matrx(565+number_w*k,35+50*(j+1),number_w*6,number_h,0xffffff,plcd);
do
{
Draw_word(565+number_w*k, 35+50*(j+1), number_w, number_h, 0x000000, number[data[j]%10], plcd);
k++;
data[j]=data[j]/10;
}while(--counter);
k=1;
}
}
}
这部分的代码没有问题,但是我感觉自己的主界面做的不好看,也是本来还想优化,但是最后没时间没耐心了。需要提到的是,在做完以后我的队员发现的问题:因为是逆序输出,在逆序以后,30变成了3,输出以后也变成了3,而不是30。所以最后我加了一个计数位来记录逆序的位数,用它来控制输出,这样30逆序以后逻辑上变成了03,逆序输出就成了30;
还有一个是,我本来是按位刷底色,而且是先刷底色,再打印数值,但是这样会导致一个现象:假如数据本来是9,然后变成了10,再变回9,这时屏幕上会显示90。因为多出来的那个0,并不会被刷掉。解决办法就是:我干脆整体刷,刷一大块区域,这样即使变回了9,后面那个0也会被刷掉。
音乐播放器
1.功能设计
- 音乐模式
- 顺序播放 0x00
- 随机播放 0x01
- 列表播放 0x10
- 单曲循环 0x01
- 上一曲
- 暂停/播放
- 下一曲
- 退出
目前还有的bug:
由于转换到顺序,列表循环模式后,会从头开始播放。而且上下切歌会杀掉顺序播放,列表循环播放模式,然后按着自己目前的位置向下一首/上一首进行播放。所以顺序播放和列表循环播放只能点一下让他们自己跑。为了解决这个问题,我殚精竭虑只能想到两个办法:
一个是利用链表,将头文件不断移动,然后在切歌代码部分改为循环语句,这样即使它每次都只能从头文件开始播放,但是可以看上去做到了列表循环/顺序播放的功能;
另一个是从底层出发使用madplay库更改命令,但是难度太大了。
第一种方法其实还不错,实现的可能性也很大,不过我没时间去实现我的想法了。
2.代码实现
1.音乐模式
else if(touch_x1 >=0 && touch_x1 <= 160 && touch_y1 >= Key_Start_location_y &&touch_y1<= 480)
{
Play_State++;
//随机播放
if(1==Play_State)
{
system("killall -9 madplay");
Bmp_display("/mnt/udisk/Logos/music_in_imag.bmp",0,Key_Start_location_y,plcd);
usleep(50000);
Bmp_display("/mnt/udisk/Logos/music_random_imag.bmp",0,Key_Start_location_y,plcd);
system("madplay /mnt/udisk/MusicJF/*.mp3 -z &");
printf("更换模式成功!随机播放!\n");
}
//循环播放
if(2==Play_State)
{
system("killall -9 madplay");
Bmp_display("/mnt/udisk/Logos/music_in_imag.bmp",0,Key_Start_location_y,plcd);
usleep(50000);
Bmp_display("/mnt/udisk/Logos/music_cycle_imag.bmp",0,Key_Start_location_y,plcd);
system("madplay /mnt/udisk/MusicJF/*.mp3 -r &");
printf("更换模式成功!循环播放!\n");
}
//单曲循环
if(3==Play_State)
{
system("killall -9 madplay");
Bmp_display("/mnt/udisk/Logos/music_in_imag.bmp",0,Key_Start_location_y,plcd);
usleep(50000);
Bmp_display("/mnt/udisk/Logos/music_cycleself_imag.bmp",0,Key_Start_location_y,plcd);
bzero(buf,200);//将内存(字符串)前n个字节清零
printf("%s,%s\n",path,head->data);
sprintf(buf,"madplay %s/%s &",path,head->data);
system(buf);
printf("更换模式成功!单曲循环!\n");
}
//顺序播放
if(4==Play_State)
{
system("killall -9 madplay");
Bmp_display("/mnt/udisk/Logos/music_in_imag.bmp",0,Key_Start_location_y,plcd);
usleep(50000);
Bmp_display("/mnt/udisk/Logos/music_sqrt_imag.bmp",0,Key_Start_location_y,plcd);
system("madplay /mnt/udisk/MusicJF/*.mp3 &");
printf("更换模式成功!顺序播放!\n");
Play_State=0;
}
if(0==StopPlay_State)
{
StopPlay_State=1;
Bmp_display("/mnt/udisk/Logos/music_play_imag.bmp",320,Key_Start_location_y,plcd);
}
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
2. 上一曲
//上一首按键
else if(touch_x1 >= 160 && touch_x1<= 320 && touch_y1 >= Key_Start_location_y && touch_y1<= 480)
{
system("killall -9 madplay");
Bmp_display("/mnt/udisk/Logos/music_in_imag.bmp",160,Key_Start_location_y,plcd);
usleep(50000);
Bmp_display("/mnt/udisk/Logos/music_last_imag.bmp",160,Key_Start_location_y,plcd);
if(1==StopPlay_State)
{
StopPlay_State=1;
Bmp_display("/mnt/udisk/Logos/music_play_imag.bmp",320,Key_Start_location_y,plcd);
}
if(0==Play_State)
{
system("madplay /mnt/udisk/MusicJF/*.mp3 -z &");
}
else if(3==Play_State)
{
bzero(buf,200);//将内存(字符串)前n个字节清零
printf("%s,%s\n",path,head->data);
sprintf(buf,"madplay %s/%s &",path,head->data);
system(buf);
}
else
{
head = head->prev;
bzero(buf,200);//将内存(字符串)前n个字节清零
printf("%s%s\n",path,head->data);
sprintf(buf,"madplay %s/%s &",path,head->data);
system(buf);
}
if(0==StopPlay_State)
{
StopPlay_State=1;
Bmp_display("/mnt/udisk/Logos/music_play_imag.bmp",320,Key_Start_location_y,plcd);
}
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
3. 暂停播放
//暂停,播放
else if(touch_x1 >= 320 && touch_x1 <= 480 && touch_y1 >= Key_Start_location_y && touch_y1<= 480)
{
//暂停
StopPlay_State=(!StopPlay_State)&0x01;
if(0==StopPlay_State)
{
Bmp_display("/mnt/udisk/Logos/music_in_imag.bmp",320,Key_Start_location_y,plcd);
usleep(50000);
Bmp_display("/mnt/udisk/Logos/music_stop_imag.bmp",320,Key_Start_location_y,plcd);
system("killall -STOP madplay &");//暂停播放
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
//播放
if(1==StopPlay_State)
{
Bmp_display("/mnt/udisk/Logos/music_in_imag.bmp",320,Key_Start_location_y,plcd);
usleep(50000);
Bmp_display("/mnt/udisk/Logos/music_play_imag.bmp",320,Key_Start_location_y,plcd);
system("killall -CONT madplay &");
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
}
4.下一曲
//下一首按键
else if(touch_x1 >= 480 &&touch_x1 <= 640 && touch_y1 >= Key_Start_location_y && touch_y1<= 480)
{
system("killall -9 madplay");
printf("下一首!\n");
Bmp_display("/mnt/udisk/Logos/music_in_imag.bmp",480,Key_Start_location_y,plcd);
usleep(50000);
Bmp_display("/mnt/udisk/Logos/music_next_imag.bmp",480,Key_Start_location_y,plcd);
if(1==Play_State)
{
system("madplay /mnt/udisk/MusicJF/*.mp3 -z &");
}
else if(3==Play_State)
{
bzero(buf,200);//将内存(字符串)前n个字节清零
printf("%s,%s\n",path,head->data);
sprintf(buf,"madplay %s/%s &",path,head->data);
system(buf);
}
else
{
head = head->next;
bzero(buf,200);
printf("%s%s\n",path,head->data);
sprintf(buf,"madplay %s/%s &",path,head->data);
system(buf);
}
if(0==StopPlay_State)
{
StopPlay_State=1;
Bmp_display("/mnt/udisk/Logos/music_play_imag.bmp",320,Key_Start_location_y,plcd);
}
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
5.退出
//退出按键
else if(touch_x1 >= 640 && touch_x1 <= 800 && touch_y1 >= Key_Start_location_y && touch_y1<= 480 )
{
system("killall -9 madplay");
StopPlay_State=0;//暂停音乐
Bmp_display("/mnt/udisk/Logos/music_in_imag.bmp",640,Key_Start_location_y,plcd);
usleep(50000);
Bmp_display("/mnt/udisk/Logos/music_back_imag.bmp",640,Key_Start_location_y,plcd);
printf("退出音乐播放器!!!\n");
touch_x1=touch_y1=touch_x2=touch_y2=-1;
break;
}
如果能将那个bug解决,那么这个项目我自认为是完美解决的,至少全部达到了我自己最初的设计。文章来源:https://www.toymoban.com/news/detail-502979.html
整合版的全部代码:
main.c
#include <stdio.h>
#include <pthread.h>
#include <string.h>
#include <stdlib.h>
#include <dirent.h>
#include "lcd.h"
#include "touch.h"
#include "words.h"
#include "matrix.h"
#include "ADimge.h"
#include "gy39.h"
#define Key_Start_location_y 380
#define MusicListlong 27
#define MPGIFLONG 48
//线程函数
void *get_usr_touch(void *arg);
void *countdown(void *arg);
//初始化函数
void displayStart(int* plcd);
void displayAdvertising(int* plcd);
void displayMainInterface(int* plcd);
void startappimag(int *plcd);
void initMPInterface(int *plcd);
//功能性函数
void playVideo(int * plcd,int imagnum,char *filename);
void Num_reverse(int* num) ;
void* palyGif(void *arg);
int mp(int *plcd);
int et(int *plcd);
int ea(int *plcd);
//全局变量
int touch_fd = -1;
int ad_flag=0;
int main_flag=0;
int i = 0; // i使bmp图片的路径名数组的下标
int counter=0;
int StopPlay_State =1;//默认播放
int Play_State =0;
int xunflag=0;
int main()
{
touch_fd = Init_touch();
int fd=-1;
int* plcd = Init_LCD(&fd);
pthread_t pid;
pthread_create(&pid, NULL, get_usr_touch, NULL);
playVideo(plcd,83,"appstartimag");
while (1)
{
Bmp_display("/mnt/udisk/Logos/appface.bmp",0,0,plcd);
//判断是否按下
if(-1==touch_x1)
{
continue;
}
else if(touch_x1>=0&&touch_x1<210&&touch_y1>=300&&touch_y1<=480)
{
printf("打开环境检测系统!\n");
//playVideo(plcd,160,"ea");
et(plcd);
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
else if(touch_x1>=210&&touch_x1<400&&touch_y1>=300&&touch_y1<=480)
{
printf("打开音乐播放器!\n");
//playVideo(plcd,160,"ea");
mp(plcd);
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
else if(touch_x1>=400&&touch_x1<=565&&touch_y1>=300&&touch_y1<=480)
{
printf("打开电子相册!\n");
playVideo(plcd,160,"ea");
ea(plcd);
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
else touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
Uninit_touch(touch_fd);
Uninit_LCD(fd,plcd);
return 0;
}
/*全屏打印一张图形成一个视频*/
void playVideo(int * plcd,int imagnum,char *filename)
{
char arr[100]={0};
for(int k=1;k<=imagnum;k++)
{
if(touch_x1>=600&&touch_x1<800&&touch_y1>=0&&touch_y1<=200)
{
touch_x1=touch_y1=touch_x2=touch_y2=-1;
break;
}else touch_x1=touch_y1=touch_x2=touch_y2=-1;
sprintf(arr,"/mnt/udisk/%s/(%d).bmp",filename,k);
Bmp_display(arr,0,0,plcd);
usleep(5000);
}
}
/***********************************************************************************************
* 音乐播放器
***********************************************************************************************/
int mp(int *plcd)
{
pthread_t gif;
pthread_create(&gif, NULL, palyGif, NULL);
/*设置节点*/
struct node
{
struct node *next;
char *data;
struct node *prev;
};
/*
初始化链表
返回了一个data为字符newdata的头节点
*/
struct node *list_init(char *newdata)
{
//名义头节点
struct node *head = malloc(sizeof(struct node));
head->data = newdata;
head->next = head;
head->prev = head;
return head;
}
//写入数据并创建新节点
struct node *newnode(char *newdata)
{
struct node *new = malloc(sizeof(struct node));
new->data = newdata;
new->next = NULL;
new->prev = NULL;
}
//将节点加入链表
int addnode(struct node *new,struct node *tail)
{
new->prev = tail->prev;
new->next = tail;
tail->prev = new;
new->prev->next = new;
}
struct node *list = list_init("1.mp3");
char *path = "/mnt/udisk/MusicJF/";
DIR *dp = opendir(path);
struct dirent *p;
while(p = readdir(dp)) //遍历目录文件
{
if(p->d_type == DT_REG)
{
if(strstr(p->d_name,".mp3")) //判断是否为.mp3文件
{
struct node *new = newnode(p->d_name); //创建新节点
addnode(new,list); //插入新节点
}
}
}
char buf[200];
//头指针
struct node *head = list->next;
initMPInterface(plcd);
while(1)
{
//滑动
if(touch_x1 >= 0 && touch_x1 <= 800 && touch_y1 >= 0 && touch_y1<= Key_Start_location_y)
{
//测试滑动
if(-1 == getInput(touch_fd))
{
continue;
}
int direction;
switch (direction = Get_slip_direction(touch_x1))
{
case UP:
printf("UP\n");
break;
case DOWN:
printf("DOWN\n");
break;
case RIGHT:
printf("RIGHT\n");
break;
case LEFT:
printf("LEFT\n");
break;
default:
break;
}
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
//模式按键
else if(touch_x1 >=0 && touch_x1 <= 160 && touch_y1 >= Key_Start_location_y &&touch_y1<= 480)
{
Play_State++;
//随机播放
if(1==Play_State)
{
system("killall -9 madplay");
Bmp_display("/mnt/udisk/Logos/music_in_imag.bmp",0,Key_Start_location_y,plcd);
usleep(50000);
Bmp_display("/mnt/udisk/Logos/music_random_imag.bmp",0,Key_Start_location_y,plcd);
system("madplay /mnt/udisk/MusicJF/*.mp3 -z &");
printf("更换模式成功!随机播放!\n");
}
//循环播放
if(2==Play_State)
{
system("killall -9 madplay");
Bmp_display("/mnt/udisk/Logos/music_in_imag.bmp",0,Key_Start_location_y,plcd);
usleep(50000);
Bmp_display("/mnt/udisk/Logos/music_cycle_imag.bmp",0,Key_Start_location_y,plcd);
system("madplay /mnt/udisk/MusicJF/*.mp3 -r &");
printf("更换模式成功!循环播放!\n");
}
//单曲循环
if(3==Play_State)
{
system("killall -9 madplay");
Bmp_display("/mnt/udisk/Logos/music_in_imag.bmp",0,Key_Start_location_y,plcd);
usleep(50000);
Bmp_display("/mnt/udisk/Logos/music_cycleself_imag.bmp",0,Key_Start_location_y,plcd);
bzero(buf,200);//将内存(字符串)前n个字节清零
printf("%s,%s\n",path,head->data);
sprintf(buf,"madplay %s/%s &",path,head->data);
system(buf);
printf("更换模式成功!单曲循环!\n");
}
//顺序播放
if(4==Play_State)
{
system("killall -9 madplay");
Bmp_display("/mnt/udisk/Logos/music_in_imag.bmp",0,Key_Start_location_y,plcd);
usleep(50000);
Bmp_display("/mnt/udisk/Logos/music_sqrt_imag.bmp",0,Key_Start_location_y,plcd);
system("madplay /mnt/udisk/MusicJF/*.mp3 &");
printf("更换模式成功!顺序播放!\n");
Play_State=0;
}
if(0==StopPlay_State)
{
StopPlay_State=1;
Bmp_display("/mnt/udisk/Logos/music_play_imag.bmp",320,Key_Start_location_y,plcd);
}
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
//上一首按键
else if(touch_x1 >= 160 && touch_x1<= 320 && touch_y1 >= Key_Start_location_y && touch_y1<= 480)
{
system("killall -9 madplay");
Bmp_display("/mnt/udisk/Logos/music_in_imag.bmp",160,Key_Start_location_y,plcd);
usleep(50000);
Bmp_display("/mnt/udisk/Logos/music_last_imag.bmp",160,Key_Start_location_y,plcd);
if(1==StopPlay_State)
{
StopPlay_State=1;
Bmp_display("/mnt/udisk/Logos/music_play_imag.bmp",320,Key_Start_location_y,plcd);
}
if(0==Play_State)
{
system("madplay /mnt/udisk/MusicJF/*.mp3 -z &");
}
else if(3==Play_State)
{
bzero(buf,200);//将内存(字符串)前n个字节清零
printf("%s,%s\n",path,head->data);
sprintf(buf,"madplay %s/%s &",path,head->data);
system(buf);
}
else
{
head = head->prev;
bzero(buf,200);//将内存(字符串)前n个字节清零
printf("%s%s\n",path,head->data);
sprintf(buf,"madplay %s/%s &",path,head->data);
system(buf);
}
if(0==StopPlay_State)
{
StopPlay_State=1;
Bmp_display("/mnt/udisk/Logos/music_play_imag.bmp",320,Key_Start_location_y,plcd);
}
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
//暂停,播放
else if(touch_x1 >= 320 && touch_x1 <= 480 && touch_y1 >= Key_Start_location_y && touch_y1<= 480)
{
//暂停
StopPlay_State=(!StopPlay_State)&0x01;
if(0==StopPlay_State)
{
Bmp_display("/mnt/udisk/Logos/music_in_imag.bmp",320,Key_Start_location_y,plcd);
usleep(50000);
Bmp_display("/mnt/udisk/Logos/music_stop_imag.bmp",320,Key_Start_location_y,plcd);
system("killall -STOP madplay &");//暂停播放
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
//播放
if(1==StopPlay_State)
{
Bmp_display("/mnt/udisk/Logos/music_in_imag.bmp",320,Key_Start_location_y,plcd);
usleep(50000);
Bmp_display("/mnt/udisk/Logos/music_play_imag.bmp",320,Key_Start_location_y,plcd);
system("killall -CONT madplay &");
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
}
//下一首按键
else if(touch_x1 >= 480 &&touch_x1 <= 640 && touch_y1 >= Key_Start_location_y && touch_y1<= 480)
{
system("killall -9 madplay");
printf("下一首!\n");
Bmp_display("/mnt/udisk/Logos/music_in_imag.bmp",480,Key_Start_location_y,plcd);
usleep(50000);
Bmp_display("/mnt/udisk/Logos/music_next_imag.bmp",480,Key_Start_location_y,plcd);
if(1==Play_State)
{
system("madplay /mnt/udisk/MusicJF/*.mp3 -z &");
}
else if(3==Play_State)
{
bzero(buf,200);//将内存(字符串)前n个字节清零
printf("%s,%s\n",path,head->data);
sprintf(buf,"madplay %s/%s &",path,head->data);
system(buf);
}
else
{
head = head->next;
bzero(buf,200);
printf("%s%s\n",path,head->data);
sprintf(buf,"madplay %s/%s &",path,head->data);
system(buf);
}
if(0==StopPlay_State)
{
StopPlay_State=1;
Bmp_display("/mnt/udisk/Logos/music_play_imag.bmp",320,Key_Start_location_y,plcd);
}
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
//退出按键
else if(touch_x1 >= 640 && touch_x1 <= 800 && touch_y1 >= Key_Start_location_y && touch_y1<= 480 )
{
system("killall -9 madplay");
StopPlay_State=0;//暂停音乐
Bmp_display("/mnt/udisk/Logos/music_in_imag.bmp",640,Key_Start_location_y,plcd);
usleep(50000);
Bmp_display("/mnt/udisk/Logos/music_back_imag.bmp",640,Key_Start_location_y,plcd);
printf("退出音乐播放器!!!\n");
touch_x1=touch_y1=touch_x2=touch_y2=-1;
break;
}
}
}
void *get_usr_touch(void *arg)
{
pthread_detach(pthread_self());
while (1)
{
getInput(touch_fd);
if(xunflag==0&&touch_x1 >= 640&& touch_x1 <= 800 && touch_y1 >= 430 && touch_y1<= 480 )xunflag=1;
}
}
void* palyGif(void *arg)
{
StopPlay_State=1;//每次开进程先置“播放”,不然打印不出动画。
int touch_fd = Init_touch();
int fd=-1;
int* plcd = Init_LCD(&fd);
char a[MPGIFLONG];
while (1)
{
if(touch_x1 >= 640 && touch_x1 <= 800 && touch_y1 >= Key_Start_location_y && touch_y1<= 480 )
{
break;
}
for(int k=1;k<=74;k++)
{
while((!StopPlay_State)&0x01);//只有为1/“播放”才能继续,不然阻塞。
sprintf(a,"/mnt/udisk/mpgifJF/(%d).bmp",k);
Bmp_display(a,0,0,plcd);
usleep(10000);
}
}
}
/*初始化音乐播放器的界面*/
void initMPInterface(int *plcd)
{
Bmp_display("/mnt/udisk/Logos/music_sqrt_imag.bmp",0,Key_Start_location_y,plcd);
Bmp_display("/mnt/udisk/Logos/music_last_imag.bmp",160,Key_Start_location_y,plcd);
Bmp_display("/mnt/udisk/Logos/music_play_imag.bmp",320,Key_Start_location_y,plcd);
Bmp_display("/mnt/udisk/Logos/music_next_imag.bmp",480,Key_Start_location_y,plcd);
Bmp_display("/mnt/udisk/Logos/music_back_imag.bmp",640,Key_Start_location_y,plcd);
printf("成功打开音乐播放器!\n");
system("madplay /mnt/udisk/MusicJF/*.mp3 &");
}
/***********************************************************************************************
* 环境检测执行函数
***********************************************************************************************/
int et(int *plcd)
{
//创建一个线程去获取广告倒计时
pthread_t count;
pthread_create(&count, NULL, countdown,NULL);
displayStart(plcd);
Lcd_draw_matrx(0,0,800,480,0x71c671,plcd);
ad_flag=1;
displayAdvertising(plcd);
if(1==main_flag)
{
displayMainInterface(plcd);
}
}
/*打印开始界面*/
void displayStart(int* plcd)
{
Bmp_display("/mnt/udisk/Logos/startface.bmp", 0, 0, plcd);
//Lcd_draw_matrx(0,0,800,480,0x71c671,plcd);
for(int i=0;i<14;i++)
{
Draw_word(20+phrase_w*i, 50, phrase_w, phrase_h, 0x000000, phrase[i], plcd);
usleep(100000);
}
for(int i=0;i<6;i++)
{
Draw_word(20+words_w*i, 100, words_w, words_h, 0x000000, words[i], plcd);
usleep(100000);
}
for(int i=6;i<13;i++)
{
Draw_word(200+words_w*i, 400, words_w, words_h, 0x000000, words[i], plcd);
usleep(100000);
}
sleep(3);
}
void displayStartface(int* plcd)
{
char a[100];
for(int k=1;k<200;k++)
{
sprintf(a,"/mnt/udisk/ADimag/(%d).bmp",k);
Bmp_display(a,0,40,plcd);
Lcd_draw_matrx(0,450,k*2,40,0x006400,plcd);
usleep(10000);
if(1==main_flag||k==199)
{
break;
}
}
system("killall -9 madplay");
}
/*打印广告视频*/
void displayAdvertising(int* plcd)
{
char a[100];
system("madplay -a -30 /mnt/udisk/MusicJF/AD.mp3 &");
for(int k=1;k<200;k++)
{
sprintf(a,"/mnt/udisk/ADimag/(%d).bmp",k);
Bmp_display(a,0,40,plcd);
Lcd_draw_matrx(0,450,k*2,40,0x006400,plcd);
usleep(10000);
if(1==main_flag||k==199)
{
break;
}
}
system("killall -9 madplay");
}
/*打印主界面*/
void displayMainInterface(int* plcd)
{
int data[5]={0};
int k=1;
Bmp_display("/mnt/udisk/Logos/MainInterface.bmp", 0, 0, plcd);
touch_x1=touch_y1=touch_x2=touch_y2=-1;
while(1)
{
if(touch_x1>=700&&touch_x1<800&&touch_y1>=0&&touch_y1<=100)
{
break;
}
GY39(data,5);
for(int j=0;j<5;j++)
{
Num_reverse(&data[j]);
Lcd_draw_matrx(565+number_w*k,35+50*(j+1),number_w*6,number_h,0xffffff,plcd);
do
{
Draw_word(565+number_w*k, 35+50*(j+1), number_w, number_h, 0x000000, number[data[j]%10], plcd);
k++;
data[j]=data[j]/10;
}while(--counter);
k=1;
}
}
}
/*将数组arr的内容逆序*/
void Num_reverse(int* num)
{
int d=*num;
int c=0;
do
{
c=c*10+d%10;
d=d/10;
counter++;
} while ((*num=*num/10)!=0);
*num =c;
}
/* 线程函数:倒计时*/
void *countdown(void *arg)
{
touch_fd = Init_touch();
int fd = -1;
int *plcd = Init_LCD(&fd);
pthread_detach(pthread_self());//系统"收尸""
while (1)
{
if(1==ad_flag)
{
for(int t=9;t>=0;t--)
{
//printf("zhegeshi zi xian cheng");
Draw_word(750, 0, number_w, number_h, 0xffffff, number[t], plcd);
sleep(1);
Lcd_draw_matrx(750,0,number_w,number_h,0x71c671,plcd);
if(0==t)
{
main_flag=1;
}
}
ad_flag=0;
break;
}
}
}
/***********************************************************************************************
* 电子相册执行函数
***********************************************************************************************/
int ea(int *plcd)
{
char arr[100]={0};
int k=1;
Bmp_display("/mnt/udisk/Logos/shang.bmp",0,430,plcd);
Bmp_display("/mnt/udisk/Logos/xia.bmp",160,430,plcd);
Bmp_display("/mnt/udisk/Logos/sui.bmp",320,430,plcd);
Bmp_display("/mnt/udisk/Logos/xun.bmp",480,430,plcd);
Bmp_display("/mnt/udisk/Logos/ting.bmp",640,430,plcd);
//Bmp_display("/mnt/udisk/Logos/ting2.bmp",640,430,plcd);
//Bmp_display("/mnt/udisk/Logos/bian.bmp",x,430,plcd);
sprintf(arr,"/mnt/udisk/pic/ (%d).bmp",k);
Bmp_display(arr,0,0,plcd);
while(1)
{
if(touch_x1>=600&&touch_x1<800&&touch_y1>=0&&touch_y1<=200)
{
touch_x1=touch_y1=touch_x2=touch_y2=-1;
break;
}
//上一张
else if(touch_x1 >= 0 && touch_x1 < 160 && touch_y1 >= 430 && touch_y1<= 480)
{
Bmp_display("/mnt/udisk/Logos/bian.bmp",0,430,plcd);
usleep(5000);
Bmp_display("/mnt/udisk/Logos/shang.bmp",0,430,plcd);
//printf("return\n");
if(0 == k)
{
k = 31;
}
sprintf(arr,"/mnt/udisk/pic/ (%d).bmp",--k);
Bmp_display(arr,0,0,plcd);
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
//下一张
else if(touch_x1 >= 160 && touch_x1 <320 && touch_y1 >= 430 && touch_y1<= 480)
{
Bmp_display("/mnt/udisk/Logos/bian.bmp",160,430,plcd);
usleep(5000);
Bmp_display("/mnt/udisk/Logos/xia.bmp",160,430,plcd);
//printf("next\n");
if(30 == k)
{
k = 0;
}
sprintf(arr,"/mnt/udisk/pic/ (%d).bmp",++k);
Bmp_display(arr,0,0,plcd);
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
//随机播放
else if(touch_x1 >= 320 && touch_x1 <480 && touch_y1 >= 430 && touch_y1<= 480)
{
Bmp_display("/mnt/udisk/Logos/bian.bmp",320,430,plcd);
usleep(5000);
Bmp_display("/mnt/udisk/Logos/sui.bmp",320,430,plcd);
//printf("suiji\n");
k = random()%30;
sprintf(arr,"/mnt/udisk/pic/ (%d).bmp",k);
Bmp_display(arr,0,0,plcd);
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
//循环播放
else if(touch_x1 >= 480 && touch_x1 <640 && touch_y1 >= 430 && touch_y1<= 480)
{
Bmp_display("/mnt/udisk/Logos/bian.bmp",480,430,plcd);
usleep(5000);
Bmp_display("/mnt/udisk/Logos/xun.bmp",480,430,plcd);
//printf("xun\n");
xunflag=1;
while(1)
{
if(30 == k)
{
k = 0;
}
sprintf(arr,"/mnt/udisk/pic/ (%d).bmp",++k);
Bmp_display(arr,0,0,plcd);
sleep(1);
if(touch_x1 >= 640&& touch_x1 <= 800 && touch_y1 >= 430 && touch_y1<= 480 )break;
touch_x1=touch_y1=touch_x2=touch_y2=-1;
}
}
//停止循环播放
else if(touch_x1 >= 640&& touch_x1 <= 800 && touch_y1 >= 430 && touch_y1<= 480 )
{
usleep(5000);
Bmp_display("/mnt/udisk/Logos/ting2.bmp",640,430,plcd);
printf("停止循环播放");
touch_x1=touch_y1=touch_x2=touch_y2=-1;
//break;
}
else if(touch_x1 >= 0 && touch_x1 <= 600 && touch_y1 >= 200 && touch_y1<= 430)
{
//测试滑动
if(-1 == getInput(touch_fd))
{
continue;
}
int direction;
switch (direction = Get_slip_direction())
{
case RIGHT:
printf("RIGHT\n");
if(1 ==k)
{
k = 30;
}
sprintf(arr,"/mnt/udisk/pic/ (%d).bmp",--k);
Bmp_display(arr,0,0,plcd);
touch_x1=touch_y1=touch_x2=touch_y2=-1;
break;
case LEFT:
if(31 == k)
{
k = 0;
}
printf("%d\n",k);
sprintf(arr,"/mnt/udisk/pic/ (%d).bmp",++k);
Bmp_display(arr,0,0,plcd);
touch_x1=touch_y1=touch_x2=touch_y2=-1;
break;
default:
touch_x1=touch_y1=touch_x2=touch_y2=-1;
break;
}
}
}
}
gy39.c
#include"gy39.h"
//定义命令 --->设置模板的工作方式
unsigned char cmd_lux[]={0xa5,0x81,0x26};//设置连续光照模式
unsigned char cmd_oth[]={0xa5,0x82,0x27};//设置温度湿度气压海拔
/* 设置串口参数(初始化串口) */
void init_tty(int fd)
{
//声明设置串口的结构体
struct termios termios_new;
//先清空该结构体
bzero( &termios_new, sizeof(termios_new));
// cfmakeraw()设置终端属性,就是设置termios结构中的各个参数。
cfmakeraw(&termios_new);
//设置波特率
//termios_new.c_cflag=(B9600);
cfsetispeed(&termios_new, B9600);
cfsetospeed(&termios_new, B9600);
//CLOCAL和CREAD分别用于本地连接和接受使能,因此,首先要通过位掩码的方式激活这两个选项。
termios_new.c_cflag |= CLOCAL | CREAD;
//通过掩码设置数据位为8位
termios_new.c_cflag &= ~CSIZE;
termios_new.c_cflag |= CS8;
//设置无奇偶校验
termios_new.c_cflag &= ~PARENB;
//一位停止位
termios_new.c_cflag &= ~CSTOPB;
tcflush(fd,TCIFLUSH);
// 可设置接收字符和等待时间,无特殊要求可以将其设置为0
termios_new.c_cc[VTIME] = 10;
termios_new.c_cc[VMIN] = 1;
// 用于清空输入/输出缓冲区
tcflush (fd, TCIFLUSH);
//完成配置后,可以使用以下函数激活串口设置
if(tcsetattr(fd,TCSANOW,&termios_new) )
printf("Setting the serial1 failed!\n");
}
/*
GY39模块数据读取:GY39
获取 光照 温度 湿度 气压 海拔 ==>int
用数组
*/
void GY39(int data[],int n)
{
//1.打开串口
int tty_fd=open(COM2,O_RDWR);
if(-1 == tty_fd)
{
perror("open tty fail");
return ;
}
//初始化串口
init_tty(tty_fd);
unsigned char buf[15];
int LUX,T,P,HUM,H;//光照 温度 气压 湿度 海拔
int ret = write(tty_fd,cmd_lux,3);
if(ret!=3)
{
usleep(5000);//等待完全写入
}
read(tty_fd,buf,9);
if(buf[0]==0X5A && buf[1]==0X5A && buf[2]==0x15)//判断帧是否正常
{
LUX=(buf[4]<<24)|(buf[5]<<16)|(buf[6]<<8)|(buf[7]);
LUX=LUX/10+LUX%10;//最后一位不要(可以要单没必要)
data[0]=LUX;
}
usleep(50000);
ret = write(tty_fd,cmd_oth,3);
if(ret!=3)
{
usleep(5000);//等待完全写入
}
// read(tty_fd,buf,9);
read(tty_fd,buf,15);
if(buf[0]==0X5A && buf[1]==0X5A && buf[2]==0x45)//判断帧是否正常
{
T=(buf[4]<<8)|(buf[5]);
T=T/100;
P=(buf[6]<<24)|(buf[7]<<16)|(buf[8]<<8)|(buf[9]);
P=P/100;
HUM=(buf[10]<<8)|(buf[11]);
HUM=HUM/100;
H=(buf[12]<<8)|(buf[13]);
//最后一位不要(可以要单没必要)
data[1]=T;
data[2]=P;
data[3]=HUM;
data[4]=H;
}
usleep(50000);
close(tty_fd);
return ;
}
gy39.h
#ifndef _GY39_H_
#define _GY39_H_
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <termios.h>
#include <stdlib.h>
#include <netdb.h>
#include <string.h>
#include <errno.h>
//6818串口所对应的文件名
#define COM2 "/dev/ttySAC1"
#define COM3 "/dev/ttySAC2"
#define COM4 "/dev/ttySAC3"
extern unsigned char cmd_lux[];//设置连续光照模式
extern unsigned char cmd_oth[];//设置温度湿度气压海拔
void init_tty(int fd);
void GY39(int data[],int n);
#endif
lcd.c
/*头文件*/
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/mman.h>
#include <stdlib.h>
/*宏定义*/
#define FILE_PATH "/dev/fb0"
/*
Init_LCD:初始化显示屏
参数为空
返回值 int*
成功 返回映射区域的首地址
失败 返回NULL
*/
int *Init_LCD(int *fd)
{
//1.打开帧缓冲
*fd = open("/dev/fb0",O_RDWR);
if(-1 == *fd)
{
perror("open fail");
return NULL;
}
//2.映射
int *plcd = mmap(NULL,800*480*4
,PROT_READ | PROT_WRITE,
MAP_SHARED,*fd,0);
if(MAP_FAILED == plcd)
{
perror("mmap fail");
return NULL;
}
return plcd;
}
/*
Uninit_LCD:解初始化屏幕
@fd:帧缓冲的文件描述符
@plcd:
返回值:无
*/
void Uninit_LCD(int fd,int *plcd)
{
//1.解映射
munmap(plcd,800*480*4);
//2.关闭帧缓冲
close(fd);
}
void Lcd_draw_point(int x,int y,int color,int *plcd)
{
if(NULL == plcd)
{
printf("error:plcd == NULL\n");
return ;
}
if(x>=0&&x<800&&y>=0&&y<480)
{
*(plcd+800*y+x) = color;
}
}
void Lcd_draw_matrx(int x,int y,int h,int w,int color,int *plcd)
{
int i,j;
if((x+w)>=0||(x+w)<=880||(y+h)>=0||(y+h)<=880)
for(j=x;j<x+w;j++)
{
for(i=y;i<y+h;i++)
{
Lcd_draw_point(i,j,color,plcd);
}
}
}
/*
Bmp_display:在屏幕的指定的位置显示bmp图片
@bmp_file:图片的路径名
@x0 y0 图片左上角在屏幕上的坐标
@plcd:帧缓冲映射区域的首地址
返回值:
-1 失败
0 成功
*/
int Bmp_display(const char *bmp_file,int x0,int y0,int *plcd)
{
if(plcd == NULL || !(x0>=0&&x0<800&&y0>=0&&y0<480))
{
return -1;
}
//1.打开图片
int fd = open(bmp_file,O_RDONLY);
if(-1 == fd)
{
printf("%s",bmp_file);
perror("open fail");
return -1;
}
//2.判断到底是不是一张bmp图片
char buf[4]={0};
read(fd,buf,2);
if(buf[0]!=0x42 || buf[1]!=0x4D)
{
printf("NOT BMP\n");
close(fd);
return -1;
}
//3.解析图片 宽 高 色深
lseek(fd,0x12,SEEK_SET);
read(fd,buf,4);
int width = buf[3]<<24 | buf[2]<<16 | buf[1]<<8 | buf[0];
lseek(fd,0x16,SEEK_SET);
read(fd,buf,4);
int height = buf[3]<<24 | buf[2]<<16 | buf[1]<<8 | buf[0];
lseek(fd,0x1c,SEEK_SET);
read(fd,buf,2);
short depth = buf[1]<<8 | buf[0];
if(!(depth == 24 || depth == 32))
{
printf("NOT SUPPORT!\n");
close(fd);
return -1;
}
//printf("%s:%d*%d depth:%d\n",bmp_file,width,height,depth);
//4.获取像素数组
int line_vaild_bytes=abs(width)*depth/8;
int line_bytes;//一行总字节数=有效字节数+赖子数
int laizi = 0;
if(line_vaild_bytes%4)
{
laizi = 4 - line_vaild_bytes%4;
}
line_bytes = line_vaild_bytes + laizi;
int total_bytes = line_bytes*abs(height);//整个像素数组的大小
//从文件中读取像素数组
lseek(fd,54,SEEK_SET);
unsigned char piexl[total_bytes];
read(fd,piexl,total_bytes);
//5.在屏幕的对应位置显示即可
unsigned char a,r,g,b;
int color;
int i=0;
int x,y;
//遍历整个像素数组
for(y=0;y<abs(height);y++)
{
for(x=0;x<abs(width);x++)
{
b=piexl[i++];
g=piexl[i++];
r=piexl[i++];
if(depth==32)
{
a=piexl[i++];
}
else
{
a=0;//不透明
}
color=a<<24|r<<16|g<<8|b;
Lcd_draw_point(width>0?x+x0:x0+abs(width)-x-1,
height>0?y0+abs(height)-y-1:y0+y,color,plcd);
}
//每一行末尾可能存在赖子
i+=laizi;
}
close(fd);
return 0;
}
lcd.h
#ifndef LCD_H
#define LCD_H
/*函数声明*/
int *Init_LCD(int *fd);
void Uninit_LCD(int fd,int *plcd);
void Lcd_draw_point(int x,int y,int color,int *plcd);
void Lcd_draw_matrx(int x,int y,int h,int w,int color,int *plcd);
int Bmp_display(const char *bmp_file,int x0,int y0,int *plcd);
#endif
matrix.h
#ifndef _MATRIX_H_
#define _MATRIX_H_
#define words_w 40
#define words_h 46
#define phrase_w 32
#define phrase_h 38
#define number_w 24
#define number_h 46
#define appicon_w 32
#define appicon_h 54
char words[][words_w*words_h/8]=
{
/*-- 文字: 环 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=35x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=40x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0xFF,
0xC0,0xFF,0xFC,0x0F,0x80,0x00,0x07,0x80,0x0F,0x00,0x00,0x07,0x80,0x0F,0x00,0x00,
0x07,0x80,0x0F,0x00,0x00,0x07,0x80,0x1E,0x00,0x00,0x07,0x80,0x1E,0x00,0x00,0x07,
0x80,0x3E,0x00,0x00,0xFF,0xFC,0x3F,0x80,0x00,0xFF,0xFC,0x3F,0xF0,0x00,0xFF,0xFC,
0x7F,0xF0,0x00,0x07,0x80,0x7F,0xF8,0x00,0x07,0x80,0xFF,0xFC,0x00,0x07,0x80,0xFF,
0xBE,0x00,0x07,0x81,0xFF,0x9E,0x00,0x07,0x83,0xEF,0x9F,0x00,0x07,0x83,0xCF,0x8F,
0x80,0x07,0xFF,0xCF,0x87,0x80,0x07,0xFF,0x8F,0x87,0xC0,0x7F,0xFF,0x8F,0x83,0xE0,
0xFF,0xDF,0x0F,0x83,0xE0,0xFC,0x3E,0x0F,0x81,0xC0,0xE0,0x1C,0x0F,0x80,0x00,0x00,
0x0C,0x0F,0x80,0x00,0x00,0x00,0x0F,0x80,0x00,0x00,0x00,0x0F,0x80,0x00,0x00,0x00,
0x0F,0x80,0x00,0x00,0x00,0x0F,0x80,0x00,0x00,0x00,0x0F,0x80,0x00,0x00,0x00,0x07,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 境 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=35x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=40x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x0F,0x00,0x00,0x0F,0x00,0x0F,
0x00,0x00,0x0F,0x00,0x0F,0x80,0x00,0x0F,0x0F,0xFF,0xFF,0xC0,0x0F,0x0F,0xFF,0xFF,
0xC0,0x0F,0x0F,0xFF,0xFF,0x80,0x0F,0x01,0xE0,0x7C,0x00,0x0F,0x01,0xF0,0x78,0x00,
0x7F,0xE0,0xF8,0xF8,0x00,0xFF,0xFF,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0xFF,0xE0,0x7F,
0xFF,0xFF,0xFF,0xE0,0x0F,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x0F,0x0F,
0xFF,0xFF,0x00,0x0F,0x0F,0xFF,0xFF,0x00,0x0F,0x0F,0x00,0x0F,0x00,0x0F,0x0F,0x00,
0x0F,0x00,0x0F,0x0F,0xFF,0xFF,0x00,0x0F,0x0F,0xFF,0xFF,0x00,0x0F,0x0F,0xFF,0xFF,
0x00,0x0F,0x0F,0x00,0x0F,0x00,0x0F,0x3F,0x00,0x0F,0x00,0x0F,0xFF,0xFF,0xFF,0x00,
0x3F,0xFF,0xFF,0xFF,0x00,0xFF,0xEF,0x79,0xEF,0x00,0xFF,0x00,0x79,0xE1,0xE0,0xF0,
0x00,0xF1,0xE1,0xE0,0x00,0x01,0xF1,0xE1,0xE0,0x00,0x07,0xE1,0xE1,0xE0,0x00,0x3F,
0xC1,0xFF,0xE0,0x00,0xFF,0x81,0xFF,0xC0,0x00,0x7E,0x00,0xFF,0x80,0x00,0x70,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 检 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=35x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=40x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x07,0x80,0x00,0x07,0x80,0x0F,
0x80,0x00,0x07,0x80,0x0F,0xC0,0x00,0x07,0x80,0x1F,0xE0,0x00,0x07,0x80,0x3F,0xE0,
0x00,0x07,0x80,0x3D,0xF0,0x00,0x07,0x80,0x7C,0xF8,0x00,0xFF,0xF8,0xF8,0x7C,0x00,
0xFF,0xF9,0xF0,0x3E,0x00,0xFF,0xFB,0xE0,0x1F,0x00,0x0F,0x87,0xC0,0x0F,0xC0,0x0F,
0x8F,0x80,0x07,0xE0,0x0F,0x9F,0xFF,0xFF,0xE0,0x1F,0xEF,0xFF,0xFF,0xC0,0x1F,0xE5,
0xFF,0xFE,0x00,0x1F,0xF0,0xFF,0xFC,0x00,0x3F,0xF8,0x0E,0x00,0x00,0x3F,0xF8,0x1E,
0x0F,0x00,0x7F,0xBF,0x8F,0x0F,0x00,0x7F,0x87,0x8F,0x1F,0x00,0xF7,0x87,0xCF,0x1E,
0x00,0xF7,0x83,0xCF,0x1E,0x00,0xE7,0x83,0xC7,0xBE,0x00,0xE7,0x83,0xC7,0xBC,0x00,
0x07,0x81,0xE7,0xBC,0x00,0x07,0x81,0xE7,0xBC,0x00,0x07,0x81,0xE7,0x78,0x00,0x07,
0x81,0xC0,0x78,0x00,0x07,0x80,0x00,0x78,0x00,0x07,0x9F,0xFF,0xFF,0xC0,0x07,0x9F,
0xFF,0xFF,0xE0,0x07,0x9F,0xFF,0xFF,0xE0,0x07,0x80,0x00,0x00,0x00,0x07,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 测 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=35x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=40x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x38,0x00,0x00,
0x03,0xC0,0x7C,0x7F,0xFE,0x73,0xC0,0x3E,0x7F,0xFE,0xF3,0xC0,0x1F,0xFF,0xFE,0xF3,
0xC0,0x0F,0xF8,0x1E,0xF3,0xC0,0x07,0x78,0x1E,0xF3,0xC0,0x02,0x7B,0xDE,0xF3,0xC0,
0x00,0x7B,0xDE,0xF3,0xC0,0x60,0x7B,0xDE,0xF3,0xC0,0xF0,0x7B,0xDE,0xF3,0xC0,0xF8,
0x7B,0xDE,0xF3,0xC0,0x7C,0x7B,0xDE,0xF3,0xC0,0x3F,0x7B,0xDE,0xF3,0xC0,0x1F,0x7B,
0xDE,0xF3,0xC0,0x0E,0x7B,0xDE,0xF3,0xC0,0x00,0x7B,0xDE,0xF3,0xC0,0x00,0x7B,0xDE,
0xF3,0xC0,0x00,0x7B,0xDE,0xF3,0xC0,0x0C,0x7B,0xDE,0xF3,0xC0,0x0F,0x7B,0xDE,0xF3,
0xC0,0x0F,0x7F,0xDE,0xF3,0xC0,0x1F,0x7F,0x9E,0xF3,0xC0,0x1E,0x7F,0x9E,0xF3,0xC0,
0x1E,0x07,0xC0,0xF3,0xC0,0x1E,0x0F,0xE0,0xF3,0xC0,0x3E,0x1F,0xF0,0x03,0xC0,0x3C,
0x1E,0xF8,0x03,0xC0,0x3C,0x3E,0x7E,0x03,0xC0,0x7C,0xFC,0x3F,0x03,0xC0,0x7D,0xF8,
0x1F,0xFF,0xC0,0x7F,0xF0,0x0F,0xFF,0x80,0x7B,0xE0,0x06,0xFF,0x00,0x01,0x80,0x00,
0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 系 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=35x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=40x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,
0xFF,0x00,0x3F,0xFF,0xFF,0xFF,0x80,0x3F,0xFF,0xFF,0xFF,0x80,0x3F,0xFF,0xFC,0x00,
0x00,0x18,0x07,0xE0,0x00,0x00,0x00,0x1F,0xC0,0x38,0x00,0x00,0x3F,0x00,0x7C,0x00,
0x00,0xFE,0x01,0xFC,0x00,0x01,0xF8,0x03,0xF8,0x00,0x07,0xE0,0x3F,0xE0,0x00,0x1F,
0xFF,0xFF,0xC0,0x00,0x1F,0xFF,0xFF,0x00,0x00,0x1F,0xFF,0xFC,0x00,0x00,0x0C,0x03,
0xF9,0xC0,0x00,0x00,0x0F,0xE3,0xE0,0x00,0x00,0x3F,0x81,0xF8,0x00,0x00,0xFE,0x00,
0xFC,0x00,0x03,0xF8,0x00,0xFE,0x00,0x1F,0xFF,0xFF,0xFF,0x00,0x1F,0xFF,0xFF,0xFF,
0x80,0x1F,0xFF,0xFF,0xEF,0xC0,0x0F,0x00,0xF0,0x07,0xC0,0x00,0xC0,0xF1,0xC3,0x80,
0x01,0xF0,0xF3,0xE0,0x00,0x03,0xF0,0xF3,0xF0,0x00,0x07,0xE0,0xF1,0xFC,0x00,0x0F,
0xC0,0xF0,0x7E,0x00,0x3F,0x00,0xF0,0x3F,0x00,0x7E,0x00,0xF0,0x1F,0xC0,0xFC,0x3F,
0xF0,0x0F,0xC0,0xF8,0x3F,0xE0,0x03,0x80,0x60,0x3F,0xE0,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 统 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=35x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=40x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x03,0xC0,0x0F,0x00,0x00,0x03,0xC0,0x0F,
0x00,0x00,0x07,0xC0,0x0F,0x80,0x00,0x07,0x80,0x07,0xC0,0x00,0x0F,0x9F,0xFF,0xFF,
0xE0,0x0F,0x1F,0xFF,0xFF,0xE0,0x1E,0x1F,0xFF,0xFF,0xE0,0x1E,0x00,0x3C,0x00,0x00,
0x3C,0x78,0x7C,0x00,0x00,0x3C,0xF8,0xF8,0x38,0x00,0x78,0xF0,0xF8,0x7C,0x00,0xFF,
0xF1,0xF0,0x3C,0x00,0xFF,0xE3,0xE0,0x3E,0x00,0xFF,0xC7,0xC0,0x1F,0x00,0x7F,0xCF,
0xFF,0xFF,0x00,0x07,0x9F,0xFF,0xFF,0x80,0x0F,0x0F,0xFF,0xFF,0xC0,0x1F,0x0F,0xF1,
0xE7,0xC0,0x1E,0x00,0xF1,0xE3,0xC0,0x3C,0x30,0xF1,0xE1,0x00,0x7F,0xF8,0xF1,0xE0,
0x00,0x7F,0xF0,0xF1,0xE0,0x00,0x7F,0xF0,0xF1,0xE0,0x00,0x78,0x00,0xF1,0xE0,0x00,
0x00,0x01,0xF1,0xE1,0xC0,0x00,0x39,0xE1,0xE1,0xE0,0x07,0xFB,0xE1,0xE1,0xE0,0xFF,
0xFB,0xE1,0xE1,0xE0,0xFF,0xE7,0xC1,0xE1,0xE0,0xFC,0x1F,0x81,0xE3,0xE0,0x40,0x3F,
0x01,0xFF,0xE0,0x00,0xFE,0x00,0xFF,0xC0,0x00,0x7C,0x00,0x7F,0x80,0x00,0x30,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 开 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=35x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=40x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xC0,0x7F,0xFF,0xFF,0xFF,0xC0,0x7F,0xFF,0xFF,0xFF,
0xC0,0x00,0x78,0x03,0xE0,0x00,0x00,0x78,0x03,0xE0,0x00,0x00,0x78,0x03,0xE0,0x00,
0x00,0x78,0x03,0xE0,0x00,0x00,0x78,0x03,0xE0,0x00,0x00,0x78,0x03,0xE0,0x00,0x00,
0x78,0x03,0xE0,0x00,0x00,0x78,0x03,0xE0,0x00,0x00,0x78,0x03,0xE0,0x00,0x00,0x78,
0x03,0xE0,0x00,0xFF,0xFF,0xFF,0xFF,0xE0,0xFF,0xFF,0xFF,0xFF,0xE0,0xFF,0xFF,0xFF,
0xFF,0xE0,0x00,0x78,0x03,0xE0,0x00,0x00,0x78,0x03,0xE0,0x00,0x00,0x78,0x03,0xE0,
0x00,0x00,0x78,0x03,0xE0,0x00,0x00,0xF8,0x03,0xE0,0x00,0x00,0xF8,0x03,0xE0,0x00,
0x00,0xF0,0x03,0xE0,0x00,0x01,0xF0,0x03,0xE0,0x00,0x01,0xF0,0x03,0xE0,0x00,0x03,
0xE0,0x03,0xE0,0x00,0x07,0xC0,0x03,0xE0,0x00,0x1F,0xC0,0x03,0xE0,0x00,0x7F,0x80,
0x03,0xE0,0x00,0xFE,0x00,0x03,0xE0,0x00,0x7C,0x00,0x03,0xE0,0x00,0x30,0x00,0x03,
0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 发 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=35x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=40x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x81,0x80,0x00,0x0F,0x07,0x83,
0xC0,0x00,0x0F,0x07,0x83,0xF0,0x00,0x1F,0x0F,0x81,0xF8,0x00,0x1E,0x0F,0x80,0xFC,
0x00,0x3E,0x0F,0x80,0x7C,0x00,0x3C,0x0F,0x00,0x18,0x00,0x3F,0xFF,0xFF,0xFF,0xE0,
0x7F,0xFF,0xFF,0xFF,0xE0,0x7F,0xFF,0xFF,0xFF,0xE0,0x3F,0xFF,0xFF,0xFF,0xC0,0x00,
0x1E,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x3F,
0xFF,0xFE,0x00,0x00,0x7F,0xFF,0xFE,0x00,0x00,0x7F,0xFF,0xFE,0x00,0x00,0xFF,0x00,
0x3E,0x00,0x00,0xFF,0x00,0x3C,0x00,0x01,0xF7,0x80,0x7C,0x00,0x01,0xF7,0x80,0xF8,
0x00,0x03,0xE3,0xC0,0xF8,0x00,0x03,0xC3,0xE1,0xF0,0x00,0x07,0xC1,0xF3,0xE0,0x00,
0x0F,0x80,0xFF,0xC0,0x00,0x0F,0x80,0x7F,0x80,0x00,0x1F,0x00,0x3F,0x00,0x00,0x3E,
0x00,0xFF,0xC0,0x00,0x7C,0x07,0xFF,0xF0,0x00,0xFC,0x1F,0xF3,0xFE,0x00,0xF9,0xFF,
0xC0,0xFF,0xE0,0x73,0xFF,0x00,0x3F,0xC0,0x01,0xF8,0x00,0x0F,0xC0,0x01,0xC0,0x00,
0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 者 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=35x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=40x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,0x07,0xC0,
0x00,0x00,0x00,0x07,0xC0,0x0E,0x00,0x00,0x07,0xC0,0x0F,0x00,0x0F,0xFF,0xFF,0xDF,
0x00,0x0F,0xFF,0xFF,0xFE,0x00,0x0F,0xFF,0xFF,0xFC,0x00,0x00,0x07,0xC0,0xF8,0x00,
0x00,0x07,0xC3,0xF0,0x00,0x00,0x07,0xC7,0xE0,0x00,0x00,0x07,0xCF,0xC0,0x00,0xFF,
0xFF,0xFF,0xFF,0xE0,0xFF,0xFF,0xFF,0xFF,0xE0,0x7F,0xFF,0xFF,0xFF,0xC0,0x00,0x07,
0xF0,0x00,0x00,0x00,0x1F,0xE0,0x00,0x00,0x00,0x7F,0x80,0x00,0x00,0x01,0xFF,0xFF,
0xFC,0x00,0x07,0xFF,0xFF,0xFC,0x00,0x3F,0xFF,0xFF,0xFC,0x00,0xFF,0xE0,0x00,0x7C,
0x00,0xFF,0xE0,0x00,0x7C,0x00,0x79,0xE0,0x00,0x7C,0x00,0x01,0xFF,0xFF,0xFC,0x00,
0x01,0xFF,0xFF,0xFC,0x00,0x01,0xFF,0xFF,0xFC,0x00,0x01,0xE0,0x00,0x7C,0x00,0x01,
0xE0,0x00,0x7C,0x00,0x01,0xE0,0x00,0x7C,0x00,0x01,0xFF,0xFF,0xFC,0x00,0x01,0xFF,
0xFF,0xFC,0x00,0x01,0xFF,0xFF,0xFC,0x00,0x01,0xE0,0x00,0x7C,0x00,0x01,0xE0,0x00,
0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: : --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=35x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=40x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x03,0xE0,0x00,0x00,0x00,0x03,
0xF0,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x01,0xE0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x01,0xE0,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x03,
0xF0,0x00,0x00,0x00,0x03,0xE0,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 刘 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=35x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=40x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x07,0x80,0x01,0xF0,0x00,
0x07,0xC0,0x00,0xF0,0x00,0x07,0xC0,0x00,0xF8,0x00,0x07,0xC0,0x00,0x78,0x07,0x87,
0xC0,0xFF,0xFF,0xFF,0x87,0xC0,0xFF,0xFF,0xFF,0x87,0xC0,0xFF,0xFF,0xFF,0x87,0xC0,
0x00,0x03,0xE7,0x87,0xC0,0x00,0x03,0xC7,0x87,0xC0,0x3C,0x03,0xC7,0x87,0xC0,0x3E,
0x07,0xC7,0x87,0xC0,0x1E,0x07,0x87,0x87,0xC0,0x1F,0x07,0x87,0x87,0xC0,0x0F,0x8F,
0x87,0x87,0xC0,0x07,0xCF,0x07,0x87,0xC0,0x03,0xDF,0x07,0x87,0xC0,0x03,0xFE,0x07,
0x87,0xC0,0x01,0xFE,0x07,0x87,0xC0,0x00,0xFC,0x07,0x87,0xC0,0x00,0xFC,0x07,0x87,
0xC0,0x00,0x7C,0x07,0x87,0xC0,0x00,0xFE,0x07,0x87,0xC0,0x01,0xFF,0x07,0x87,0xC0,
0x01,0xFF,0x07,0x87,0xC0,0x03,0xEF,0x87,0x87,0xC0,0x07,0xC7,0xC0,0x07,0xC0,0x0F,
0x87,0xC0,0x07,0xC0,0x1F,0x03,0xE0,0x07,0xC0,0x3F,0x01,0xF0,0x07,0x80,0xFE,0x01,
0xE3,0xFF,0x80,0xFC,0x00,0xC3,0xFF,0x80,0x78,0x00,0x03,0xFF,0x00,0x20,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 剑 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=35x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=40x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x07,0x80,0x00,0x7C,0x00,
0x07,0x80,0x00,0xFE,0x00,0x07,0x80,0x00,0xFF,0x01,0xC7,0x80,0x01,0xFF,0x81,0xE7,
0x80,0x03,0xE7,0xC1,0xE7,0x80,0x07,0xC3,0xE1,0xE7,0x80,0x0F,0x81,0xF1,0xE7,0x80,
0x1F,0x80,0xF9,0xE7,0x80,0x3F,0x00,0x7D,0xE7,0x80,0x7E,0x00,0x3D,0xE7,0x80,0xFF,
0xFF,0xFD,0xE7,0x80,0xFF,0xFF,0xF1,0xE7,0x80,0x7F,0xFF,0xF1,0xE7,0x80,0x60,0x00,
0x01,0xE7,0x80,0x00,0x78,0x61,0xE7,0x80,0x0C,0x78,0x79,0xE7,0x80,0x3C,0x78,0x79,
0xE7,0x80,0x3C,0x78,0xF9,0xE7,0x80,0x1E,0x78,0xF1,0xE7,0x80,0x1E,0x3C,0xF1,0xE7,
0x80,0x1E,0x3C,0xF1,0xE7,0x80,0x0F,0x3D,0xE1,0xE7,0x80,0x0F,0x3D,0xE1,0xE7,0x80,
0x0F,0x3F,0xE1,0xE7,0x80,0x0F,0x9F,0xC1,0xE7,0x80,0x07,0x83,0xC0,0x07,0x80,0x06,
0x03,0xC0,0x07,0x80,0x00,0x1F,0xFE,0x07,0x80,0x7F,0xFF,0xFE,0x07,0x80,0x7F,0xFF,
0xFF,0xFF,0x80,0x7F,0xFE,0x01,0xFF,0x80,0x30,0x00,0x01,0xFF,0x00,0x00,0x00,0x01,
0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 锋 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=35x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=40x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x78,0x00,0x00,0x0F,0x00,0x78,
0x00,0x00,0x1E,0x00,0xFF,0xFE,0x00,0x1E,0x00,0xFF,0xFF,0x00,0x1F,0xF1,0xFF,0xFF,
0x00,0x3F,0xFB,0xE0,0x1E,0x00,0x3F,0xFB,0xF0,0x3C,0x00,0x3C,0x07,0xF8,0x7C,0x00,
0x78,0x0F,0xBC,0xF8,0x00,0x78,0x1F,0x3F,0xF0,0x00,0xF0,0x0E,0x1F,0xE0,0x00,0xFF,
0xE0,0x1F,0xE0,0x00,0x7F,0xE0,0xFF,0xFC,0x00,0x1F,0xE7,0xFC,0xFF,0xE0,0x0F,0x1F,
0xF7,0xBF,0xE0,0x0F,0x1F,0xC7,0x8F,0xC0,0x0F,0x0E,0x07,0x80,0xC0,0x0F,0x07,0xFF,
0xFF,0x80,0xFF,0xF7,0xFF,0xFF,0x80,0xFF,0xF7,0xFF,0xFF,0x80,0x7F,0xF0,0x07,0x80,
0x00,0x0F,0x00,0x07,0x80,0x00,0x0F,0x07,0xFF,0xFF,0x00,0x0F,0x07,0xFF,0xFF,0x00,
0x0F,0x33,0xFF,0xFF,0x00,0x0F,0xF0,0x07,0x80,0x00,0x0F,0xFF,0xFF,0xFF,0x80,0x0F,
0xEF,0xFF,0xFF,0xC0,0x0F,0xCF,0xFF,0xFF,0xC0,0x1F,0x80,0x07,0x80,0x00,0x0F,0x00,
0x07,0x80,0x00,0x0E,0x00,0x07,0x80,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x07,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
};
char phrase[][phrase_w*phrase_h/8]=
{
/*-- 文字: W --*/
/*-- 微软雅黑22; 此字体下对应的点阵为:宽x高=30x38 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=32x38 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xF0,0x07,0x80,0x7C,0xF8,0x0F,0xC0,0x78,0xF8,0x0F,0xC0,0x78,0x78,0x0F,0xC0,0xF8,
0x78,0x0F,0xC0,0xF8,0x7C,0x1F,0xE0,0xF0,0x7C,0x1F,0xE0,0xF0,0x3C,0x1F,0xE1,0xF0,
0x3E,0x3F,0xE1,0xF0,0x3E,0x3D,0xF1,0xE0,0x1E,0x3C,0xF1,0xE0,0x1E,0x3C,0xF3,0xE0,
0x1F,0x78,0xFB,0xC0,0x0F,0x78,0x7B,0xC0,0x0F,0x78,0x7B,0xC0,0x0F,0xF8,0x7F,0xC0,
0x0F,0xF0,0x7F,0x80,0x07,0xF0,0x3F,0x80,0x07,0xF0,0x3F,0x80,0x07,0xE0,0x3F,0x00,
0x03,0xE0,0x1F,0x00,0x03,0xE0,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: e --*/
/*-- 微软雅黑22; 此字体下对应的点阵为:宽x高=30x38 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=32x38 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF8,0x00,0x00,0x1F,0xFC,0x00,0x00,
0x1F,0xFE,0x00,0x00,0x3E,0x1E,0x00,0x00,0x7C,0x1F,0x00,0x00,0x78,0x0F,0x00,0x00,
0x7F,0xFF,0x00,0x00,0x7F,0xFF,0x00,0x00,0x7F,0xFF,0x00,0x00,0x78,0x00,0x00,0x00,
0x78,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x06,0x00,0x00,0x3F,0x1E,0x00,0x00,
0x1F,0xFE,0x00,0x00,0x0F,0xFC,0x00,0x00,0x03,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: l --*/
/*-- 微软雅黑22; 此字体下对应的点阵为:宽x高=30x38 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=32x38 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: c --*/
/*-- 微软雅黑22; 此字体下对应的点阵为:宽x高=30x38 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=32x38 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,
0x1F,0xFC,0x00,0x00,0x3E,0x0C,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,
0x78,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
0x78,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x3F,0x1C,0x00,0x00,
0x1F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x01,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: o --*/
/*-- 微软雅黑22; 此字体下对应的点阵为:宽x高=30x38 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=32x38 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFC,0x00,0x00,0x0F,0xFE,0x00,0x00,
0x1F,0xFF,0x00,0x00,0x3E,0x0F,0x80,0x00,0x7C,0x07,0x80,0x00,0x78,0x07,0x80,0x00,
0x78,0x07,0xC0,0x00,0x78,0x07,0xC0,0x00,0x78,0x07,0xC0,0x00,0x78,0x07,0xC0,0x00,
0x78,0x07,0x80,0x00,0x7C,0x07,0x80,0x00,0x3C,0x0F,0x80,0x00,0x3F,0x1F,0x00,0x00,
0x1F,0xFE,0x00,0x00,0x0F,0xFC,0x00,0x00,0x01,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: m --*/
/*-- 微软雅黑22; 此字体下对应的点阵为:宽x高=30x38 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=32x38 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3D,0xF8,0xFE,0x00,0x3F,0xFD,0xFF,0x00,
0x3F,0xFF,0xFF,0x80,0x3E,0x1F,0x87,0x80,0x3E,0x1F,0x07,0xC0,0x3C,0x0F,0x07,0xC0,
0x3C,0x0F,0x07,0xC0,0x3C,0x0F,0x07,0xC0,0x3C,0x0F,0x07,0xC0,0x3C,0x0F,0x07,0xC0,
0x3C,0x0F,0x07,0xC0,0x3C,0x0F,0x07,0xC0,0x3C,0x0F,0x07,0xC0,0x3C,0x0F,0x07,0xC0,
0x3C,0x0F,0x07,0xC0,0x3C,0x0F,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: e --*/
/*-- 微软雅黑22; 此字体下对应的点阵为:宽x高=30x38 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=32x38 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF8,0x00,0x00,0x1F,0xFC,0x00,0x00,
0x1F,0xFE,0x00,0x00,0x3E,0x1E,0x00,0x00,0x7C,0x1F,0x00,0x00,0x78,0x0F,0x00,0x00,
0x7F,0xFF,0x00,0x00,0x7F,0xFF,0x00,0x00,0x7F,0xFF,0x00,0x00,0x78,0x00,0x00,0x00,
0x78,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x06,0x00,0x00,0x3F,0x1E,0x00,0x00,
0x1F,0xFE,0x00,0x00,0x0F,0xFC,0x00,0x00,0x03,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: --*/
/*-- 微软雅黑22; 此字体下对应的点阵为:宽x高=30x38 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=32x38 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: t --*/
/*-- 微软雅黑22; 此字体下对应的点阵为:宽x高=30x38 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=32x38 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,
0x1E,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0xFF,0xE0,0x00,0x00,0xFF,0xE0,0x00,0x00,
0xFF,0xE0,0x00,0x00,0x1E,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,
0x1E,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,
0x1E,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x1F,0x60,0x00,0x00,
0x1F,0xE0,0x00,0x00,0x0F,0xE0,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: o --*/
/*-- 微软雅黑22; 此字体下对应的点阵为:宽x高=30x38 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=32x38 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFC,0x00,0x00,0x0F,0xFE,0x00,0x00,
0x1F,0xFF,0x00,0x00,0x3E,0x0F,0x80,0x00,0x7C,0x07,0x80,0x00,0x78,0x07,0x80,0x00,
0x78,0x07,0xC0,0x00,0x78,0x07,0xC0,0x00,0x78,0x07,0xC0,0x00,0x78,0x07,0xC0,0x00,
0x78,0x07,0x80,0x00,0x7C,0x07,0x80,0x00,0x3C,0x0F,0x80,0x00,0x3F,0x1F,0x00,0x00,
0x1F,0xFE,0x00,0x00,0x0F,0xFC,0x00,0x00,0x01,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: --*/
/*-- 微软雅黑22; 此字体下对应的点阵为:宽x高=30x38 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=32x38 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: U --*/
/*-- 微软雅黑22; 此字体下对应的点阵为:宽x高=30x38 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=32x38 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x3C,0x01,0xF0,0x00,0x3C,0x01,0xF0,0x00,0x3C,0x01,0xF0,0x00,0x3C,0x01,0xF0,0x00,
0x3C,0x01,0xF0,0x00,0x3C,0x01,0xF0,0x00,0x3C,0x01,0xF0,0x00,0x3C,0x01,0xF0,0x00,
0x3C,0x01,0xF0,0x00,0x3C,0x01,0xF0,0x00,0x3C,0x01,0xF0,0x00,0x3C,0x01,0xF0,0x00,
0x3C,0x01,0xF0,0x00,0x3C,0x01,0xF0,0x00,0x3C,0x01,0xF0,0x00,0x3C,0x01,0xF0,0x00,
0x3E,0x01,0xE0,0x00,0x3E,0x01,0xE0,0x00,0x1F,0x03,0xE0,0x00,0x1F,0xFF,0xC0,0x00,
0x0F,0xFF,0x80,0x00,0x07,0xFF,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: s --*/
/*-- 微软雅黑22; 此字体下对应的点阵为:宽x高=30x38 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=32x38 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x00,0x00,0x3F,0xF0,0x00,0x00,
0x7F,0xF0,0x00,0x00,0x78,0x10,0x00,0x00,0x78,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,
0x7E,0x00,0x00,0x00,0x3F,0xC0,0x00,0x00,0x1F,0xE0,0x00,0x00,0x07,0xF0,0x00,0x00,
0x00,0xF8,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x78,0x00,0x00,0x70,0xF8,0x00,0x00,
0x7F,0xF0,0x00,0x00,0x7F,0xE0,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: e --*/
/*-- 微软雅黑22; 此字体下对应的点阵为:宽x高=30x38 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=32x38 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF8,0x00,0x00,0x1F,0xFC,0x00,0x00,
0x1F,0xFE,0x00,0x00,0x3E,0x1E,0x00,0x00,0x7C,0x1F,0x00,0x00,0x78,0x0F,0x00,0x00,
0x7F,0xFF,0x00,0x00,0x7F,0xFF,0x00,0x00,0x7F,0xFF,0x00,0x00,0x78,0x00,0x00,0x00,
0x78,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x06,0x00,0x00,0x3F,0x1E,0x00,0x00,
0x1F,0xFE,0x00,0x00,0x0F,0xFC,0x00,0x00,0x03,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
char number[][number_w*number_h/8]=
{
/*-- 文字: 0 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=21x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=24x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFE,
0x00,0x07,0xFF,0x00,0x0F,0xFF,0x80,0x1F,0x9F,0xC0,0x1F,0x07,0xC0,0x3E,0x07,0xE0,
0x3E,0x03,0xE0,0x3C,0x03,0xE0,0x7C,0x03,0xE0,0x7C,0x01,0xF0,0x7C,0x01,0xF0,0x7C,
0x01,0xF0,0x7C,0x01,0xF0,0x7C,0x01,0xF0,0x7C,0x01,0xF0,0x7C,0x01,0xF0,0x7C,0x01,
0xF0,0x7C,0x01,0xF0,0x7C,0x01,0xE0,0x7C,0x03,0xE0,0x7C,0x03,0xE0,0x3E,0x03,0xE0,
0x3E,0x07,0xC0,0x1F,0x0F,0xC0,0x1F,0xFF,0x80,0x0F,0xFF,0x00,0x07,0xFE,0x00,0x00,
0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 1 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=21x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=24x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,
0x00,0x00,0x7C,0x00,0x01,0xFC,0x00,0x0F,0xFC,0x00,0x1F,0xFC,0x00,0x1F,0xFC,0x00,
0x1E,0x7C,0x00,0x18,0x7C,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,
0x7C,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x7C,
0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,
0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 2 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=21x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=24x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFC,
0x00,0x0F,0xFF,0x00,0x1F,0xFF,0x80,0x3F,0x1F,0xC0,0x3C,0x07,0xC0,0x38,0x07,0xC0,
0x00,0x03,0xE0,0x00,0x03,0xE0,0x00,0x03,0xE0,0x00,0x03,0xC0,0x00,0x07,0xC0,0x00,
0x0F,0xC0,0x00,0x0F,0x80,0x00,0x3F,0x00,0x00,0x7E,0x00,0x00,0xFC,0x00,0x03,0xF8,
0x00,0x07,0xF0,0x00,0x0F,0xC0,0x00,0x1F,0x80,0x00,0x1F,0x00,0x00,0x3E,0x00,0x00,
0x3C,0x00,0x00,0x7C,0x00,0x00,0x7F,0xFF,0xE0,0x7F,0xFF,0xE0,0x7F,0xFF,0xE0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 3 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=21x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=24x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFC,
0x00,0x1F,0xFE,0x00,0x1F,0xFF,0x00,0x1E,0x1F,0x80,0x18,0x0F,0x80,0x00,0x07,0xC0,
0x00,0x07,0xC0,0x00,0x07,0xC0,0x00,0x07,0xC0,0x00,0x0F,0x80,0x00,0x1F,0x80,0x00,
0xFF,0x00,0x0F,0xFE,0x00,0x0F,0xFE,0x00,0x0F,0xFF,0x00,0x00,0x1F,0x80,0x00,0x0F,
0xC0,0x00,0x07,0xC0,0x00,0x03,0xE0,0x00,0x03,0xE0,0x00,0x03,0xE0,0x00,0x07,0xC0,
0x00,0x07,0xC0,0x38,0x0F,0xC0,0x3F,0xFF,0x80,0x3F,0xFF,0x00,0x3F,0xFE,0x00,0x07,
0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 4 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=21x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=24x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,
0x00,0x00,0x1F,0x80,0x00,0x1F,0x80,0x00,0x3F,0x80,0x00,0x7F,0x80,0x00,0x7F,0x80,
0x00,0xFF,0x80,0x00,0xFF,0x80,0x01,0xFF,0x80,0x03,0xEF,0x80,0x03,0xCF,0x80,0x07,
0xCF,0x80,0x0F,0x8F,0x80,0x1F,0x0F,0x80,0x1F,0x0F,0x80,0x3E,0x0F,0x80,0x7C,0x0F,
0x80,0xF8,0x0F,0x80,0xFF,0xFF,0xF8,0xFF,0xFF,0xF8,0xFF,0xFF,0xF8,0x00,0x0F,0x80,
0x00,0x0F,0x80,0x00,0x0F,0x80,0x00,0x0F,0x80,0x00,0x0F,0x80,0x00,0x0F,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 5 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=21x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=24x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,
0x80,0x0F,0xFF,0x80,0x1F,0xFF,0x80,0x1F,0xFF,0x80,0x1F,0x00,0x00,0x1F,0x00,0x00,
0x1F,0x00,0x00,0x1F,0x00,0x00,0x1F,0x00,0x00,0x1E,0x00,0x00,0x1E,0xC0,0x00,0x1F,
0xFC,0x00,0x1F,0xFF,0x00,0x1F,0xFF,0x80,0x00,0x1F,0xC0,0x00,0x0F,0xC0,0x00,0x07,
0xC0,0x00,0x03,0xE0,0x00,0x03,0xE0,0x00,0x03,0xE0,0x00,0x03,0xE0,0x00,0x07,0xC0,
0x00,0x07,0xC0,0x38,0x1F,0xC0,0x3F,0xFF,0x80,0x3F,0xFF,0x00,0x3F,0xFE,0x00,0x07,
0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 6 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=21x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=24x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,
0xC0,0x01,0xFF,0xC0,0x03,0xFF,0xC0,0x07,0xE1,0xC0,0x0F,0xC0,0x00,0x1F,0x80,0x00,
0x1F,0x00,0x00,0x1E,0x00,0x00,0x3E,0x00,0x00,0x3E,0x00,0x00,0x3C,0x7E,0x00,0x3D,
0xFF,0x80,0x7F,0xFF,0xC0,0x7F,0xFF,0xC0,0x7F,0x07,0xE0,0x7E,0x03,0xE0,0x7E,0x01,
0xF0,0x7C,0x01,0xF0,0x7C,0x01,0xF0,0x3C,0x01,0xF0,0x3E,0x01,0xF0,0x3E,0x03,0xE0,
0x1F,0x03,0xE0,0x1F,0x87,0xE0,0x0F,0xFF,0xC0,0x07,0xFF,0x80,0x03,0xFF,0x00,0x00,
0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 7 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=21x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=24x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,
0xE0,0x7F,0xFF,0xE0,0x7F,0xFF,0xE0,0x7F,0xFF,0xE0,0x00,0x03,0xC0,0x00,0x07,0xC0,
0x00,0x07,0x80,0x00,0x0F,0x80,0x00,0x0F,0x00,0x00,0x1F,0x00,0x00,0x1E,0x00,0x00,
0x3E,0x00,0x00,0x3C,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0xF8,0x00,0x00,0xF8,
0x00,0x00,0xF0,0x00,0x01,0xF0,0x00,0x01,0xF0,0x00,0x03,0xE0,0x00,0x03,0xE0,0x00,
0x03,0xE0,0x00,0x03,0xE0,0x00,0x07,0xC0,0x00,0x07,0xC0,0x00,0x07,0xC0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 8 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=21x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=24x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFC,
0x00,0x07,0xFF,0x00,0x0F,0xFF,0x80,0x1F,0x8F,0xC0,0x3F,0x07,0xC0,0x3E,0x03,0xC0,
0x3E,0x03,0xC0,0x3E,0x03,0xC0,0x3E,0x03,0xC0,0x1E,0x07,0xC0,0x1F,0x8F,0x80,0x0F,
0xFF,0x00,0x07,0xFE,0x00,0x0F,0xFF,0x80,0x1F,0xFF,0xC0,0x3F,0x07,0xC0,0x3E,0x03,
0xE0,0x7C,0x01,0xE0,0x7C,0x01,0xF0,0x7C,0x01,0xF0,0x7C,0x01,0xF0,0x7C,0x01,0xE0,
0x7E,0x03,0xE0,0x3F,0x07,0xE0,0x1F,0xFF,0xC0,0x0F,0xFF,0x80,0x07,0xFF,0x00,0x00,
0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 9 --*/
/*-- 微软雅黑26; 此字体下对应的点阵为:宽x高=21x46 --*/
/*-- 宽度不是8的倍数,现调整为:宽度x高度=24x46 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFC,
0x00,0x0F,0xFF,0x00,0x1F,0xFF,0x80,0x1F,0x9F,0x80,0x3E,0x07,0xC0,0x3E,0x07,0xC0,
0x7C,0x03,0xE0,0x7C,0x03,0xE0,0x7C,0x03,0xE0,0x7C,0x03,0xE0,0x7C,0x03,0xE0,0x7C,
0x03,0xE0,0x3E,0x07,0xE0,0x3F,0x0F,0xE0,0x1F,0xFF,0xE0,0x0F,0xFF,0xE0,0x07,0xFF,
0xE0,0x00,0xE3,0xE0,0x00,0x03,0xE0,0x00,0x03,0xE0,0x00,0x07,0xC0,0x00,0x07,0xC0,
0x00,0x0F,0x80,0x30,0x1F,0x80,0x3F,0xFF,0x00,0x3F,0xFE,0x00,0x3F,0xF8,0x00,0x07,
0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
#endif
touch.c
#include "touch.h"
int touch_x1=-1,touch_y1=-1,touch_x2=-1,touch_y2=-1;
/*
触摸屏初始化:Init_touch
参数为空
返回值:int
touch_fd:触摸屏的文件描述符
*/
int Init_touch(void)
{
//1.打开触摸屏
int touch_fd = open(TOUCH_FILE,O_RDONLY);
if(-1 == touch_fd)
{
perror("open touch fail");
return -1;
}
return touch_fd;
}
/*
关闭触摸屏:Uninit_touch
@touch_fd
返回值:void
*/
void Uninit_touch(int touch_fd)
{
if(-1 == touch_fd)
{
return ;
}
close(touch_fd);
}
/*
get_usr_input_pro:获取用户的对触摸屏的输入
@touch_fd
返回值:int
-1 失败
0 成功
*/
int getInput(int touch_fd)
{
if(-1 == touch_fd)
{
return -1;
}
struct input_event ev;//保存读取出来的信息
while(1)
{
//1 读取输入事件
int res = read(touch_fd,&ev,sizeof(ev));
if(res != sizeof(ev)) // 判断结构体数据不符合要求 重新读
{
continue;//跳过本次循环,执行下一次循环
}
//2.2 通过判断结构体里面的成员坐标值
if(ev.type == EV_ABS && ev.code == ABS_X) //获取x轴的坐标
{
if(-1 == touch_x1)
{
touch_x1=ev.value *(1.0*800/1040); //只获取一次
touch_x2 = ev.value *(1.0*800/1040);
}
touch_x2 = ev.value;
}
if(ev.type == EV_ABS && ev.code == ABS_Y) //获取x轴的坐标
{
if(-1 == touch_y1)
{
touch_y1 = ev.value*(1.0*480/600);
touch_y2 = ev.value*(1.0*480/600);
}
touch_y2 = ev.value*(1.0*480/600);
}
if(ev.type == EV_KEY && ev.code == BTN_TOUCH && ev.value == 0 ) //手指松开
{
break;//一次获取
}
}
return 0;
}
/*
获取滑动的方向:Get_slip_direction
返回值:int
LEFT RIGHT UP DOWN TOUCH_ERROR
*/
int Get_slip_direction()
{
//判断是否有滑动
if(-1 == touch_x1 || -1 == touch_y1 || -1 == touch_x2 || -1 == touch_y2)
{
return TOUCH_ERROR;
}
int direction; //方向
//printf("touch_x1:%d touch_y1:%d touch_x2:%d touch_y2:%d\n",touch_x1,touch_y1,
//touch_x2,touch_y2);
if(
touch_x2 > touch_x1 && (abs(
touch_x2-touch_x1) > abs(touch_y2-touch_y1)))
{
return RIGHT;
}
if(
touch_x2 < touch_x1 && (abs(
touch_x2-touch_x1) > abs(touch_y2-touch_y1)))
{
return LEFT;
}
if(touch_y2 < touch_y1 && (abs(
touch_x2-touch_x1) < abs(touch_y2-touch_y1)))
{
return UP;
}
if(touch_y2 > touch_y1 && (abs(
touch_x2-touch_x1) < abs(touch_y2-touch_y1)))
{
return DOWN;
}
return TOUCH_ERROR;
}
//打印坐标 测试
void printfTouchLocation()
{
//1.打开触摸屏
int fd = open("/dev/input/event0",O_RDONLY);
if(-1 == fd)
{
perror("open touch fail");
return ;
}
//2.操作
struct input_event ev;//保存读取出来的信息
while(1)
{
read(fd,&ev,sizeof(ev));
printf("type =%d,code=%d,value=%d\n",ev.type,ev.code,ev.value);
int x ,y ;
if(ev.type == EV_ABS && ev.code == ABS_X )//触摸屏的x轴
{
x = ev.value *(1.0*800/1040);
}
if(ev.type == EV_ABS && ev.code == ABS_Y )//触摸屏的y轴
{
y = ev.value*(1.0*480/600);
}
printf("( %d , %d )\n",x,y);
if(ev.type == EV_KEY && ev.code == BTN_TOUCH && ev.value == 0 ) //手指松开
{
break;//一次获取
}
}
//3.关闭
close(fd);
}
/*
get_usr_touch: 获取用户触摸屏输入的坐标值
@x :保存 x轴的坐标值
@y :保存 y轴的坐标值
返回值 :
无
*/
touch.h
#ifndef __TOUCH_H__
#define __TOUCH_H__
/*头文件*/
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <linux/input.h>//输入子系统
#define UP 1
#define DOWN 2
#define LEFT 3
#define RIGHT 4
#define TOUCH_ERROR -1
#define TOUCH_FILE "/dev/input/event0"
extern int touch_x1, touch_y1, touch_x2, touch_y2;
int Init_touch(void);
void Uninit_touch(int touch_fd);
int getInput(int touch_fd);
int Get_slip_direction();
void printfTouchLocation();
#endif
words.c
#include"words.h"
/*
Draw_word:在屏幕的指定的位置显示一个颜色位color的字符
@x,y:字符区域的左上角在屏幕上的位置
@w,h:字符区域的宽和高
@color: 字的颜色
@char s[]:显示的那个字符的字模
@plcd
*/
void Draw_word(int x,int y,int w,int h,int color,char s[],int *plcd)
{
//1.遍历字模数组的元素
int i,j;
int line_num=w/8;//一行所占的元素的数量
//遍历整个字符区域
for(i=0;i < w*h/8;i++)
{
//遍历元素的每一位 由高到低
for(j=7;j>=0;j--)
{
//s[i] >> 7 判断是不是1
//s[i] >> 7 & 1 0 =>0 1 => 1
if((s[i]>>j)&1)
{
Lcd_draw_point(x+8*(i%line_num)+7-j,y+i/line_num,color,plcd);
}
}
//usleep(1);
}
}
words.h
#ifndef _WORDS_H_
#define _WORDS_H_
#include <unistd.h>
#include "lcd.h"
void Draw_word(int x,int y,int w,int h,int color,char s[],int *plcd);
#endif
遗憾和总结
在这个项目里,还有很多我想实现的功能没有实现,bug也还有,但是时间确实不咋够。不过,在不断优化自己代码的时候,我也明白了一个道理:代码永无止境,不要过度追求完美。感触和想法肯定还有,但是我觉得这是我最大的收获了。文章来源地址https://www.toymoban.com/news/detail-502979.html
到了这里,关于Project_电子相册&音乐播放器&环境检测系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!