📄 testlcd.c
字号:
//
// Description
// test LCD driver
//
// Copyright (C) 2006 Hyesco Technology Co.,Ltd
//
// Author: casiauw <wujh@hyesco.com>
//
// History:
//
// 2006.5 casiawu <wujh@hyesco.com>
// Original version
//
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <unistd.h>
/****** LCD control cmd *********/
#define LCD_CLEAR 0x5A00
//#define BACKLIGHT_OFF 0x5A01
//#define BACKLIGHT_ON 0x5A02
#define XPAGE_GET 0x5A03
#define XPAGE_SET 0x5A04
#define YCOL_GET 0x5A05
#define YCOL_SET 0x5A06
/****** LCD control cmd *********/
unsigned char huan[]={
0x14,0x24,0x44,0x84,0x64,0x1C,0x20,0x18,0x0F,0xE8,0x08,0x08,0x28,0x18,0x08,0x00,
0x20,0x10,0x4C,0x43,0x43,0x2C,0x20,0x10,0x0C,0x03,0x06,0x18,0x30,0x60,0x20,0x00
};
unsigned char ying[]={
0x40,0x41,0xCE,0x04,0x00,0xFC,0x04,0x02,0x02,0xFC,0x04,0x04,0x04,0xFC,0x00,0x00,
0x40,0x20,0x1F,0x20,0x40,0x47,0x42,0x41,0x40,0x5F,0x40,0x42,0x44,0x43,0x40,0x00
};
unsigned char guang[]={
0x00,0x40,0x42,0x44,0x5C,0xC8,0x40,0x7F,0x40,0xC0,0x50,0x4E,0x44,0x60,0x40,0x00,
0x00,0x80,0x40,0x20,0x18,0x07,0x00,0x00,0x00,0x3F,0x40,0x40,0x40,0x40,0x78,0x00
};
unsigned char lin[]={
0x00,0xF8,0x00,0x00,0xFE,0x40,0x30,0x8F,0x0A,0x08,0x18,0x68,0x08,0x88,0x08,0x00,
0x00,0x1F,0x00,0x00,0x7F,0x00,0x00,0x7F,0x21,0x21,0x3F,0x21,0x21,0x7F,0x01,0x00
};
unsigned char heng[]={
0x70,0x00,0xFF,0x08,0x30,0x02,0xF2,0x92,0x92,0x92,0x92,0x92,0xF2,0x02,0x00,0x00,
0x00,0x00,0x7F,0x00,0x20,0x20,0x27,0x24,0x24,0x24,0x24,0x24,0x27,0x20,0x20,0x00
};
unsigned char yi[]={
0xFE,0x02,0xF2,0x12,0x1E,0x12,0xF2,0x00,0xF2,0x1A,0xD6,0x12,0x12,0xF2,0x02,0x00,
0x1F,0x10,0x11,0x11,0x1F,0x11,0x51,0x40,0x27,0x18,0x07,0x08,0x10,0x27,0x60,0x00
};
unsigned char gao[]={
0x04,0x04,0x04,0x04,0x74,0x54,0x55,0x56,0x54,0x54,0x74,0x04,0x04,0x04,0x04,0x00,
0x00,0xFF,0x01,0x01,0x3D,0x25,0x25,0x25,0x25,0x25,0x3D,0x41,0x81,0x7F,0x00,0x00
};
unsigned char ke[]={
0x10,0x12,0x92,0x72,0xFE,0x51,0x91,0x00,0x22,0xCC,0x00,0x00,0xFF,0x00,0x00,0x00,
0x04,0x02,0x01,0x00,0xFF,0x00,0x04,0x04,0x04,0x02,0x02,0x02,0xFF,0x01,0x01,0x00
};
unsigned char bmppage[]={
/*128*64.bmp --*/
0x00,0x00,0x00,0x80,0xF0,0xFE,0x7E,0x0E,0x7E,0xFE,0xF0,0x80,0x00,0x00,0x00,0x00,
0xFE,0xFE,0xFE,0x3C,0xF0,0xE0,0x80,0x00,0x00,0xFE,0xFE,0xFE,0x00,0x00,0x00,0xFE,
0xFE,0xFE,0x0E,0x0E,0x0E,0x0E,0x0E,0x3E,0xFC,0xF8,0xE0,0x00,0x00,0xE0,0xF8,0xFC,
0x3C,0x1E,0x0E,0x0E,0x0E,0x0E,0x1E,0x3C,0xFC,0xF8,0xE0,0x00,0x00,0x00,0xFE,0xFE,
0xFE,0x8E,0x8E,0x8E,0x8E,0x8E,0xFE,0xFC,0xF8,0x00,0x00,0x00,0xFE,0xFE,0xFE,0x00,
0x00,0xFE,0xFE,0xFE,0x3C,0xF0,0xE0,0x80,0x00,0x00,0xFE,0xFE,0xFE,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0xF0,0xFE,0x7F,0x1F,0x1D,0x1C,0x1C,0x1C,0x1D,0x1F,0x7F,0xFE,0xF0,0x80,0x00,
0xFF,0xFF,0xFF,0x00,0x00,0x03,0x0F,0x3E,0x78,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,
0xFF,0xFF,0xE0,0xE0,0xE0,0xE0,0xE0,0x70,0x7F,0x3F,0x0F,0x00,0x00,0x0F,0x3F,0x7F,
0x78,0xF0,0xE0,0xE0,0xE0,0xE0,0xF0,0x78,0x7F,0x3F,0x0F,0x00,0x00,0x00,0xFF,0xFF,
0xFF,0x03,0x03,0x03,0x0F,0x1F,0x7D,0xF9,0xE0,0x80,0x00,0x00,0xFF,0xFF,0xFF,0x00,
0x00,0xFF,0xFF,0xFF,0x00,0x00,0x03,0x0F,0x3E,0x78,0xFF,0xFF,0xFF,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x40,0x30,0x10,0x10,0x10,0xD0,0x12,0x1C,0x10,0x10,0x10,0x10,0x50,
0x30,0x00,0x00,0x00,0x00,0xF0,0x10,0x18,0x16,0x10,0xF0,0x80,0x40,0x30,0x1E,0x10,
0x10,0x10,0xF8,0x10,0x00,0x00,0x40,0x48,0x48,0x48,0xC8,0xF8,0x44,0x46,0x44,0x40,
0x00,0xF8,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x10,0x60,0x00,0x00,
0xFE,0x00,0x80,0x60,0x18,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0xF0,0x10,0x10,0x10,
0x10,0xFE,0x10,0x10,0x10,0x10,0x10,0xF8,0x10,0x00,0x00,0x00,0x48,0x48,0x48,0x44,
0xFC,0x42,0x42,0x40,0x80,0x08,0x30,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x20,0x20,
0x20,0xFE,0x20,0x20,0x00,0x20,0x20,0x20,0xFE,0x20,0x20,0x20,0x30,0x20,0x00,0x00,
0x00,0x00,0x01,0x01,0x01,0x01,0x09,0x8F,0x91,0x51,0x21,0x21,0x59,0x47,0x81,0x81,
0x81,0x01,0x00,0x00,0x00,0xFF,0x42,0x42,0x42,0x42,0xFF,0x00,0x00,0x01,0x0E,0x80,
0x00,0x80,0x7F,0x00,0x00,0x00,0x20,0x10,0x08,0x06,0x01,0xFF,0x01,0x02,0x0C,0x00,
0x00,0x1F,0x80,0x00,0xFF,0x00,0x00,0x00,0x01,0x01,0x01,0x81,0x41,0x3F,0x01,0x01,
0x01,0xFF,0x01,0x01,0x01,0x01,0x01,0xF1,0x00,0x00,0x00,0x00,0x1F,0x09,0x09,0x09,
0x09,0xFF,0x09,0x09,0x09,0x09,0x09,0x1F,0xC0,0x00,0x00,0x00,0x10,0x08,0x04,0x03,
0xFF,0x01,0x06,0x10,0x10,0x13,0x08,0x08,0x08,0xFF,0x04,0x04,0x00,0x00,0x04,0x84,
0x02,0xFF,0x01,0x01,0x00,0x81,0x87,0x59,0x21,0x51,0x4D,0x83,0x81,0x80,0x00,0x00,
0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0xF1,0x7C,0x0C,0x7C,0xF0,0x80,
0x01,0x00,0x00,0xFC,0xFC,0x3C,0xF8,0xC0,0x00,0x00,0x00,0xC1,0xF8,0x3C,0xFC,0xFC,
0x00,0x00,0x00,0x61,0x30,0x18,0xFC,0xFC,0x01,0x01,0x01,0x00,0x30,0x38,0x1C,0x0C,
0x0C,0x1C,0xF9,0xF1,0x01,0x01,0x71,0xF9,0x8C,0x8C,0x8C,0x8C,0xF8,0x70,0x00,0x00,
0xE0,0xF8,0x1D,0x8D,0x8D,0x8D,0x19,0x11,0x01,0x00,0x00,0xC0,0xE0,0x38,0xFC,0xFC,
0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x60,0x7C,0x1F,0x07,0x06,0x06,0x06,0x07,0x1F,
0x7C,0x60,0x00,0x7F,0x7F,0x00,0x01,0x1F,0x7C,0x60,0x7C,0x1F,0x01,0x00,0x7F,0x7F,
0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x00,0x00,0x00,0x00,0x60,0x70,0x78,0x6C,
0x66,0x63,0x61,0x60,0x00,0x00,0x1E,0x3F,0x61,0x61,0x61,0x61,0x3F,0x1E,0x00,0x00,
0x0F,0x3F,0x73,0x61,0x61,0x61,0x3F,0x1E,0x00,0x0E,0x0F,0x0D,0x0C,0x0C,0x7F,0x7F,
0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x61,0x06,0xC0,
0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0x00,0xF8,0x00,0xFF,0x00,0x00,0x00,0x80,0x82,
0x84,0x8C,0x00,0x10,0x90,0x90,0x90,0x90,0x90,0xFF,0x10,0x12,0x14,0x10,0x00,0x00,
0x24,0x24,0xA4,0xFE,0xA2,0x23,0x22,0x80,0xBE,0xA2,0xA2,0xA2,0xA2,0xA2,0xBF,0x82,
0x00,0x00,0x00,0x00,0xFC,0x04,0x14,0x14,0x14,0x15,0x56,0x94,0x54,0x34,0x14,0x14,
0x06,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x30,0x18,0xFC,0xFC,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF8,0x1C,0x0C,0x0C,0x1C,0xF8,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,0x08,0x08,0x7E,0x81,
0x40,0x27,0x10,0x0F,0x10,0x67,0x00,0x00,0x4F,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,
0x00,0x7F,0x20,0x10,0x20,0x60,0x3F,0x10,0x10,0x03,0x1C,0x20,0x40,0xF0,0x00,0x00,
0x10,0x0E,0x01,0xFF,0x00,0x03,0x80,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0xC8,
0x80,0x00,0x80,0x60,0x1F,0x00,0x01,0x01,0x01,0x41,0x81,0x7F,0x01,0x01,0x01,0x05,
0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x00,
0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x1F,0x3F,0x70,0x60,0x60,0x70,0x3F,0x1F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
/*------------------ delay ------------------------*/
void delay(unsigned int t)
{
unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<10;j++);
}
/*------------------ chinese test --------------------*/
void chinese_show(int fd)
{
int retval;
int i,j ;
//显示“欢”;
for(i=0;i<2;i++)
{
//设置显示行,下同;
retval=ioctl(fd,XPAGE_SET,i); //retval=ioctl(fd,XPAGE_SET,3+i);
//设置显示列,下同;
retval = ioctl(fd,YCOL_SET,0); //retval = ioctl(fd,YCOL_SET,32);
for(j=0;j<16;j++)
write(fd,&huan[i*16+j],1);
}
//显示“迎”;
for(i=0;i<2;i++)
{
retval=ioctl(fd,XPAGE_SET,i);
retval = ioctl(fd,YCOL_SET,16);
for(j=0;j<16;j++)
write(fd,&ying[i*16+j],1);
}
//显示“光”;
for(i=0;i<2;i++)
{
retval=ioctl(fd,XPAGE_SET,i);
retval = ioctl(fd,YCOL_SET,32);
for(j=0;j<16;j++)
write(fd,&guang[i*16+j],1);
}
//显示“临”;
for(i=0;i<2;i++)
{
retval=ioctl(fd,XPAGE_SET,i);
retval = ioctl(fd,YCOL_SET,48);
for(j=0;j<16;j++)
write(fd,&lin[i*16+j],1);
}
//显示“恒”;
for(i=0;i<2;i++)
{
retval=ioctl(fd,XPAGE_SET,i);
retval = ioctl(fd,YCOL_SET,64);
for(j=0;j<16;j++)
write(fd,&heng[i*16+j],1);
}
//显示“颐”;
for(i=0;i<2;i++)
{
retval=ioctl(fd,XPAGE_SET,i);
retval = ioctl(fd,YCOL_SET,80);
for(j=0;j<16;j++)
write(fd,&yi[i*16+j],1);
}
//显示“高”;
for(i=0;i<2;i++)
{
retval=ioctl(fd,XPAGE_SET,i);
retval = ioctl(fd,YCOL_SET,96);
for(j=0;j<16;j++)
write(fd,&gao[i*16+j],1);
}
//显示“科”;
for(i=0;i<2;i++)
{
retval=ioctl(fd,XPAGE_SET,i);
retval = ioctl(fd,YCOL_SET,112);
for(j=0;j<16;j++)
write(fd,&ke[i*16+j],1);
}
}
/*------------------ picture test --------------------*/
void picture_show(int fd)
{
int retval;
int i,j ;
for(i=0;i<8;i++)
{
retval = ioctl(fd,XPAGE_SET,i);
retval = ioctl(fd,YCOL_SET,0);
for(j=0;j<128;j++)
write(fd,&bmppage[i*128+j],1);
}
}
/* main function */
int main(int argc,char **argv)
{
int retval;
int fd;
fd = open("/dev/lcd",O_RDWR);
if (fd <0)
{
printf("open device lcd error!\n");
return 0;
}
while(1)
{
retval = ioctl(fd,LCD_CLEAR,0);
if(retval<0)
{
printf("clear lcd error!\n");
return 0;
}
/* chinese show */
chinese_show(fd);
delay(2000000);
retval = ioctl(fd,LCD_CLEAR,0);
if(retval<0)
{
printf("clear lcd error!\n");
return 0;
}
/* picture show */
picture_show(fd);
delay(2000000);
}
close(fd);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -