STM32液晶屏驱动程序
附录2
整个设计全部源程序:
/*以下是32x64点阵LED电子显示屏的源程序,采用C语言编写,在Keil μVisionV2.38a(C51.Exe V7.06)以及MedWin3.0版环境下均测试通过。*/ #include
unsigned int zimo,xx=0; //zimo是字模计数器,xx为分屏显示的时候的字数。
unsigned char yid,h; //yid为移动计数器,h为行段计数器
unsigned char code hanzi[]; //汉字字模
unsigned char BUFF[18],BUFF2[18]; //左移显示的缓存
void qing(void); void xianshi(void);
void fen(void); void zuo(void);
void in_data(void); //调整数据
void rxd_data(void); //左移发送数据
void out_rxd(unsigned char *d); //分屏、上移发送数据
char code sw[]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x00}; /*8行段码*/
/***********主程序******************/
void main(void)
{ unsigned char ee;
SCON=0;P1=0;yid=0;zimo=0;
while(1)
{ fen(); //分屏显示
for(ee=30;ee>0;ee--)//清屏幕3秒
{qing();}
zuo(); //左移显示
for(ee=30;ee>0;ee--)
{qing();}
}
}
/**********清屏幕*******************/
void qing (void)
{ unsigned char zz,xx=0x0ff;
for (zz=33;zz>0;zz--)
{out_rxd(&xx);}
P1=0xff; P1=0; //锁存为高,74HC595锁存信号
P2=0; //清74LS138的使能端
}
/**********分屏显示***********/
void fen(void)
{ do{ xianshi(); }while(xx++<=5); //调用单屏显示
xx=0;
}
/************单屏显示*************/
void xianshi(void)
{ unsigned char ii,jj; unsigned int kk,aa;
for (kk=500;kk>0;kk--) //每屏显示500次
{for(ii=1;ii<16;ii+=2) //每个汉字分8行扫描
{for (jj=0;jj<8;jj++) //每次要发送8个汉字的2个字节,发送8次
{ aa=(xx*8+jj)*32+ii;
out_rxd(&hanzi[aa]); //从串口输出第1个字的第1字节。
out_rxd(&hanzi[aa-1]); //从串口输出第1个字的第1字节。
}
for (jj=0;jj<8;jj++) //每次要发送8个汉字的2个字节,发送8次
{ aa=(xx*8+jj)*32+ii;
out_rxd(&hanzi[aa+16]); //从串口输出第1个字的第17字节。
out_rxd(&hanzi[aa+15]); //从串口输出第1个字的第18字节
}
P2=0x0ff;
P1=0xff; P1=0; //锁存为高,74HC595锁存信号
P2=sw[h]; //输出行信号
h++; //行加一
if(h==8)h=0;
}
}
}
/***************左移显示************/
void zuo(void)
{ unsigned char i,d=5; //d为移动的时候一个汉字的扫描显示次数xianshi(); //调用单屏显示
while(zimo<=1450)
{while(yid<16) //数据移位。
{for(i=0;i {for(h=0;h<8;h++) //8行扫描 { in_data(); //调整数据 rxd_data(); //串口发送数据 P2=sw[h]; //送段码 P1=0xff; //锁存为高,595锁存信号 P1=0; } } yid++; //移动一步 } yid=0;zimo=zimo+32; //后移一个字, } zimo=0; } /*************分屏显示的数据发送************/ void out_rxd(unsigned char *d) /*从串口发送数据*/ { SBUF=*d; while(!TI); //等待发送完毕 TI=0; } /*******左移显示读取数据并调整**************/ void in_data(void) { char s,w; unsigned int qqq; for(s=8;s>=0;s--) { w=s+s; qqq=zimo+h+h+s*32; BUFF[w+1]=hanzi[qqq]; BUFF[w]=hanzi[qqq+1]; BUFF2[w+1]=hanzi[qqq+16]; BUFF2[w]=hanzi[qqq+17]; } } /**********左移显示的数据调整发送***************/ void rxd_data(void) //串行发送数据 {unsigned char inc,s,tempyid,temp; if(yid<8) inc=0; else inc=1; for(s=0+inc;s<16+inc;s++) //发送数据 { if(yid<8) tempyid=yid; else tempyid=yid-8; temp=(BUFF[s]>>tempyid)|(BUFF[s+1]<<(8-tempyid)); SBUF=temp; //把BUFF中的字节从大到小移位相或后发送输出。 while(!TI);TI=0; //等待发送中断 } for(s=0+inc;s<16+inc;s++) //发送8字节数据{ if(yid<8) tempyid=yid; else tempyid=yid-8; temp=(BUFF2[s]>>tempyid)|(BUFF2[s+1]<<(8-tempyid)); SBUF=temp; //把BUFF中的字节从大到小移位相或后发送输出。 while(!TI);TI=0; //等待发送中断 } } /*************汉字编码信息*************/ unsigned char code hanzi[]={/*-- 文字: 勤 --*/ 0xFB,0xBB,0xFA,0x00,0xFB,0xBB,0xFB,0x83,0xC0,0xEF,0xDB,0x01,0xDB,0x6D ,0xDB,0x01,0xDB,0xEF,0xDB,0x01,0xDB,0xEF,0xDB,0x83,0xDD,0xEF,0xDD,0x0 F,0xD6,0xE0,0xEF,0x7D,/*-- 文字: 奋 --*/ 0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x80,0x00,0xFE,0xBF,0xFD,0xDF,0xF3,0xEF ,0x8F,0xF3,0xD0,0x04,0xF7,0x77,0xF7,0x77,0xF0,0x07,0xF7,0x77,0xF7,0x7 7,0xF0,0x07,0xF7,0xF7,/*-- 文字: 求 --*/ 0xFB,0x7F,0xF7,0x7F,0xF7,0x7F,0xC0,0x01,0xFF,0x7F,0xEF,0x7B,0xF7,0x77 ,0xFA,0x6F,0xFD,0x7F,0xFB,0x5F,0xF7,0x6F,0x8F,0x77,0xDF,0x79,0xFF,0x7 F,0xFF,0x5F,0xFF,0xBF,/*-- 文字: 实 --*/ 0xFF,0x7F,0xFE,0xFF,0x80,0x01,0xDF,0xFD,0xEE,0xEE,0xFE,0xDF,0xFE,0xDF ,0xFE,0xF7,0xFE,0xEF,0xFE,0xEF,0xC0,0x01,0xFD,0x7F,0xFB,0xBF,0xF7,0xD F,0xCF,0xE7,0xDF,0xF9,/*-- 文字: 献 --*/ 0xF7,0xEF,0xF7,0xEF,0xE7,0xEF,0xD6,0x00,0xD7,0xEF,0xF7,0xEF,0x81,0x01 ,0xF7,0x55,0xF7,0x6D,0xF7,0x01,0xEB,0x6D,0xEB,0x01,0xEB,0x6D,0xDD,0x6 D,0xDD,0x4D,0xBE,0xBD,/*-- 文字: 身 --*/ 0xFF,0x7F,0xFF,0xBF,0xF0,0x0F,0xF7,0xEF,0xF0,0x0F,0xF7,0xEF,0xB0,0x0F ,0xD7,0xEF,0xE7,0xEF,0xF0,0x01,0xF5,0xFF,0xF6,0xFF,0xF7,0x3F,0xF7,0xC 7,0xF5,0xF8,0xFB,0xFF,/*-- 文字: 开 --*/ 0xFF,0xFF,0xC0,0x03,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF ,0x80,0x01,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xEF,0xFB,0xE F,0xFB,0xF7,0xFB,0xFB,/*-- 文字: 拓 --*/ 0xFF,0xF7,0xFF,0xF7,0x80,0x37,0xFD,0xF7,0xFD,0xC0,0xFE,0xF7,0xFE,0xD7 ,0xC0,0x67,0xDE,0xB3,0xDE,0xD4,0xDE,0xF7,0xDE,0xF7,0xDE,0xF7,0xC0,0xF 7,0xDE,0xF5,0xFF,0xFB,/*-- 文字: 桂 --*/ 0xFB,0xF7,0xFB,0xF7,0xC0,0x77,0xFB,0xF7,0xFB,0xC0,0xFB,0xF7,0x80,0x33 ,0xFB,0xE3,0xFB,0xD5,0xFB,0xD5,0xC0,0x76,0xFB,0xF7,0xFB,0xF7,0xFB,0xF 7,0x80,0x37,0xFF,0xF7,/*-- 文字: 林 --*/ 0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,0xC0,0x81,0xFB,0xEF,0xF9,0xE7 ,0xF1,0xC7,0xEA,0xAB,0xEA,0xAB,0xDB,0x6D,0xBB,0xAE,0xFB,0xEF,0xFB,0xE F,0xFB,0xEF,0xFB,0xEF,/*-- 文字: 工 --*/ 0xFF,0xFF,0xFF,0xFF,0xC0,0x01,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F ,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x80,0x0 0,0xFF,0xFF,0xFF,0xFF,/*-- 文字: 学 --*/ 0xF7,0xBB,0xF7,0x77,0xFB,0x77,0xFD,0xFF,0x80,0x01,0xDF,0xFD,0xEF,0xFE ,0xF8,0x07,0xFD,0xFF,0xFE,0x7F,0x80,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7 F,0xFF,0x5F,0xFF,0xBF,/*-- 文字: 院 --*/ 0xFD,0xFF,0xFB,0xC1,0x80,0x1D,0xBF,0xAD,0xFF,0xED,0xC0,0x75,0xFF,0xED ,0xFF,0xED,0x80,0x1D,0xF6,0xDD,0xF6,0xDD,0xF6,0xE9,0xB6,0xF5,0xB7,0x7 D,0x8F,0x7D,0xFF,0xBD,/*-- 文字: 电 --*/ 0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0xF0,0x01,0xF7,0xBD,0xF7,0xBD ,0xF0,0x01,0xF7,0xBD,0xF7,0xBD,0xF0,0x01,0xF7,0xBD,0xDF,0xBF,0xDF,0xB F,0xDF,0xBF,0xC0,0x7F,/*-- 文字: 计 --*/ 0xFB,0xFF,0xFB,0xF7,0xFB,0xEF,0xFB,0xEF,0xFB,0xFF,0xFB,0xFF,0x80,0x21 ,0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,0xFB,0x6F,0xFB,0xAF,0xFB,0xC F,0xFB,0xEF,0xFB,0xFF,/*-- 文字: 系 --*/ 0xE1,0xFF,0xFE,0x01,0xFF,0xBF,0xFB,0xDF,0xFD,0xEF,0xFE,0x03,0xFF,0x7F ,0xFB,0x9F,0xF7,0xEF,0xE0,0x03,0xEF,0x77,0xFF,0x7F,0xF7,0x77,0xEF,0x7 B,0xEF,0x5D,0xFF,0xBF, /*-- 文字: 电 --*/ 0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0xF0,0x01,0xF7,0xBD,0xF7,0xBD ,0xF0,0x01,0xF7,0xBD,0xF7,0xBD,0xF0,0x01,0xF7,0xBD,0xDF,0xBF,0xDF,0xB F,0xDF,0xBF,0xC0,0x7F,/*-- 文字: 信 --*/ 0xFE,0xEF,0xFD,0xEF,0xFD,0xEF,0xC0,0x17,0xFF,0xF7,0xFF,0xF3,0xE0,0x35 ,0xFF,0xF6,0xE0,0x37,0xFF,0xF7,0xE0,0x37,0xEF,0xB7,0xEF,0xB7,0xEF,0xB 7,0xE0,0x37,0xEF,0xB7,/*-- 文字: 0 --*/ 0xFC,0x1F,0xFB,0xEF,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7 ,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xFB,0xEF,0xFC,0x1F,0xFF,0xFF,0xFF,0xF F,0xFF,0xFF,0xFF,0xFF,/*-- 文字: 2 --*/ 0xFE,0x1F,0xFD,0xEF,0xFB,0xF7,0xFB,0xFF,0xFB,0xFF,0xFD,0xFF,0xFE,0xFF ,0xFF,0x7F,0xFF,0xBF,0xFF,0xDF,0xFF,0xEF,0xF0,0x07,0xFF,0xFF,0xFF,0xF F,0xFF,0xFF,0xFF,0xFF,/*-- 文字: - --*/ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF ,0xF0,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF F,0xFF,0xFF,0xFF,0xFF,/*-- 文字: 3 --*/ 0xF0,0x0F,0xFB,0xFF,0xFD,0xFF,0xFE,0xFF,0xFC,0x7F,0xFB,0xFF,0xF7,0xFF ,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xFB,0xEF,0xFC,0x1F,0xFF,0xFF,0xFF,0xF F,0xFF,0xFF,0xFF,0xFF,/*-- 文字: 班 --*/ 0xFE,0xFF,0xFE,0xFF,0x82,0xC0,0xEE,0xF7,0xEE,0xF7,0xEE,0xB7,0xEE,0xA1 ,0x82,0xB7,0xEE,0xD7,0xEE,0xF7,0xEE,0xF7,0xEF,0x47,0xEF,0x70,0x81,0xB D,0xFF,0xDF,0xFF,0xE7, /*-- 文字: 张 --*/ 0xFF,0x7F,0xEF,0x60,0xEF,0x6F,0xF7,0x6F,0xFB,0x6F,0xFD,0x61,0xFF,0x7D ,0x80,0x1D,0xFD,0x7D,0xFD,0x61,0xFB,0x6F,0xFB,0x6F,0xF7,0x6F,0x8D,0x6 F,0xDE,0x75,0xFF,0x7B,/*-- 文字: 涛 --*/ 0xFE,0xFF,0xFE,0xFB,0xC0,0x17,0xFE,0xF7,0xE0,0x3E,0xFE,0xFD,0x80,0x0D ,0xEF,0x7F,0xEF,0x77,0x80,0x3B,0xEF,0xB8,0xEF,0x5B,0xEE,0xEB,0xEE,0xF 3,0xEB,0xFB,0xF7,0xFF,/*-- 文字: 制 --*/ 0xDF,0xDF,0xDF,0xDB,0xDF,0xDB,0xDA,0x03,0xDB,0xDB,0xDB,0xDD,0xD8,0x00 ,0xDB,0xDF,0xDB,0xDF,0xDA,0x03,0xDA,0xDB,0xDE,0xDB,0xDE,0x9B,0xDF,0x5 B,0xD7,0xDF,0xEF,0xDF,/*-- 文字: 作 --*/ 0xFF,0x6F,0xFF,0x6F,0xFF,0x6F,0x80,0x77,0xFE,0xB7,0xFE,0xB3,0xFE,0xD5 ,0xE0,0xE6,0xFE,0xF7,0xFE,0xF7,0xFE,0xF7,0xC0,0xF7,0xFE,0xF7,0xFE,0xF 7,0xFE,0xF7,0xFE,0xF7,/*-- 文字: 谢 --*/ 0xEF,0x7F,0xEF,0xBD,0xEE,0x13,0xEE,0xDB,0x80,0x1F,0xEE,0xDF,0xEC,0x18 ,0xEA,0xDB,0xEA,0x0B,0xEE,0x7B,0xEE,0xBB,0xEE,0xAB,0xEE,0xD3,0xEE,0xE B,0xEA,0xB7,0xF7,0x7F,/*-- 文字: 谢 --*/ 0xEF,0x7F,0xEF,0xBD,0xEE,0x13,0xEE,0xDB,0x80,0x1F,0xEE,0xDF,0xEC,0x18 ,0xEA,0xDB,0xEA,0x0B,0xEE,0x7B,0xEE,0xBB,0xEE,0xAB,0xEE,0xD3,0xEE,0xE B,0xEA,0xB7,0xF7,0x7F,/*-- 文字: 各 --*/ 0xFF,0xDF,0xFF,0xDF,0xF0,0x1F,0xFB,0xCF,0xFB,0xB7,0xFD,0xB9,0xFE,0x7F ,0xF9,0x9F,0x87,0xE7,0xD0,0x08,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0xE F,0xF0,0x0F,0xFF,0xFF,/*-- 文字: 位 --*/ 0xFF,0x6F,0xFC,0xCF,0xFD,0xF7,0xC0,0x17,0xFF,0xFB,0xF7,0xD3,0xE7,0xB5 ,0xF7,0xB5,0xF7,0x76,0xFB,0x77,0xFB,0x77,0xFB,0xF7,0xFD,0xF7,0x80,0x0 7,0xFF,0xF7,0xFF,0xFF,/*-- 文字: 老 --*/ 0xFF,0xBF,0xEF,0xBF,0xC0,0x01,0xEF,0xBF,0xF7,0xBF,0xFB,0xBF,0x80,0x00 ,0xFE,0x7F,0xFF,0xBF,0xF3,0xCF,0xFC,0xD3,0xFF,0x1C,0xDF,0xDF,0xDF,0xD F,0xC0,0x3F,0xFF,0xFF,/*-- 文字: 师 --*/ 0xFF,0xEF,0x80,0x2F,0xFB,0xED,0xFB,0xED,0x80,0x2D,0xBB,0xAD,0xBB,0xAD ,0xBB,0xAD,0xBB,0xAD,0xBB,0xB5,0xAB,0xB5,0xDB,0xB7,0xFB,0xFB,0xFB,0xF D,0xFB,0xFE,0xFB,0xFF,/*-- 文字: ! --*/ 0xFE,0x3F,0xFC,0x1F,0xFC,0x1F,0xFC,0x1F,0xFC,0x1F,0xFC,0x1F,0xFC,0x1F ,0xFE,0x3F,0xFE,0x3F,0xFF,0x7F,0xFF,0xFF,0xFF,0x7F,0xFE,0x3F,0xFE,0x3 F,0xFF, 0x7F,0xFF,0xFF}; stm32_19264液晶LCD驱动程序 /****************************lcd.h********************************************/ #ifndef __LCD_H #define __LCD_H #include "sys.h" #define LCD_RS PFout(0)// PF.0 #define LCD_E PFout(1)// PF.1 #define LCD_CS1 PFout(2)// PF.2 #define LCD_RST PFout(3)// PF.3 #define LCD_CS2 PFout(4)// PF.4 #define LCD_CS3 PFout(5)// PF.5 #define LCD_DATA(x) GPIOE->ODR=(GPIOB->ODR&0x807F)|((x & 0x00FF)<<7) //PE7~14,作为数据线 #define LCD_PAGE_ADDR 0xb8 #define LCD_COL_ADDR 0x40 void LCDPortSet(void); //LCD IO口配置 void LcdInit(void); //初始化程序 void LcdClear(void); //清屏程序 void WriteChr16x16(u8 pag,u8 col, u8 *chr); //写一个汉字 #endif /******************************************************lcd.c**************************** ********************/ #include #include "lcd.h" #include "delay.h" //LCD IO口配置 void LCDPortSet(void) { RCC->APB2ENR|=1<<6; //使能PORTE时钟 RCC->APB2ENR|=1<<7; //使能PORTF时钟 GPIOE->CRH&=0XF; //PE8-14数据口 GPIOE->CRH|=0X; GPIOE->CRL&=0X0FFFFFFF; //PE7数据口 GPIOE->CRL|=0X; GPIOE->ODR|=0X7F80; //上拉 GPIOF->CRL&=0XF; GPIOF->CRL|=0X; //PF.0 1 2 3 4 5 6推挽输出 GPIOF->ODR|=1<<0; //PF.0 输出高 GPIOF->ODR|=1<<1; //PF.1 输出高GPIOF->ODR|=1<<2; //PF.2 输出高GPIOF->ODR|=1<<3; //PF.3 输出高GPIOF->ODR|=1<<4; //PF.4 输出高GPIOF->ODR|=1<<5; //PF.5 输出高GPIOF->ODR|=1<<6; //PF.6 输出高} void SelectChip1(void) //选择第1屏{ LCD_CS1=0; LCD_CS2=1; LCD_CS3=1; } void SelectChip2(void) //选择第2屏{ LCD_CS1=1; LCD_CS2=0; LCD_CS3=1; } void SelectChip3(void) //选择第3屏{ LCD_CS1=1; LCD_CS2=1; LCD_CS3=0; } void WriteCommand(u8 cmd) //写命令{ LCD_RS=0; //写命令 //RW=0; LCD_DATA(cmd); LCD_E=1; delay_us(10); LCD_E=0; } void WriteData(u8 dat) //写数据 { LCD_RS=1; //写数据 //RW=0; LCD_DATA(dat); //数据输出到数据口 LCD_E=1; //写入到LCD delay_us(10); LCD_E=0; } void LcdClear(void) //清屏 { u16 j = 0; u16 k = 0; LCD_CS1 = 0; LCD_CS2 = 0; LCD_CS3 = 0; WriteCommand(LCD_PAGE_ADDR + 0); WriteCommand(LCD_COL_ADDR + 0); for(k=0;k<8;k++) { WriteCommand(LCD_PAGE_ADDR+k); for(j=0;j<64;j++) { WriteData(0x00); } } LCD_CS1 = 1; LCD_CS2 = 1; LCD_CS3 = 1; } void LcdInit(void) //初始化程序 { LCD_RST = 0; delay_us(20); LCD_RST = 1; delay_us(5); LCD_CS1=0; LCD_CS2=0; LCD_CS3=0; WriteCommand(0x3f); //设置开显示命令WriteCommand(0xc0); //设置起始位置 LCD_CS1 = 1; LCD_CS2 = 1; LCD_CS3 = 1; LcdClear(); //清屏 } void WriteChr16x16(u8 pag,u8 col,u8 *chr) //写一个汉字{ u8 i = 0; u8 j = 0; u8 col_t = 0; WriteCommand(0xc0); col_t = col; for(i=0;i<2;i++) { for(j=0;j<16;j++) { switch(col_t&0xc0) { case 0: SelectChip1(); WriteCommand(LCD_PAGE_ADDR + pag + i); WriteCommand(LCD_COL_ADDR + col_t - 0 ); WriteData(chr[16*i + j]); col_t++; break; case 0x40: SelectChip2(); WriteCommand(LCD_PAGE_ADDR + pag + i); WriteCommand(LCD_COL_ADDR + col_t - 64); WriteData(chr[16*i + j]); col_t++; break; case 0x80: SelectChip3(); WriteCommand(LCD_PAGE_ADDR + pag + i); WriteCommand(LCD_COL_ADDR + col_t - 128); WriteData(chr[16*i + j]); col_t++; break; default: break; } } col_t=col_t-16; } } /***************************************************main.c***************************** *************************/ /** @说明:JBG19264 LCD测试程序 */ #include #include "sys.h" #include "delay.h" #include "lcd.h" u8 table[][32]={ /*-- 文字: 我 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x20,0x24,0x24,0x24,0xFE,0x23,0x22,0x20,0x20,0xFF,0x20,0x22,0x2C,0xA0 ,0x20,0x00, 0x00,0x08,0x48,0x84,0x7F,0x02,0x41,0x40,0x20,0x13,0x0C,0x14,0x22,0x41, 0xF8,0x00, /*-- 文字: 们 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x80,0x60,0xF8,0x07,0x00,0xF8,0x01,0x06,0x00,0x04,0x04,0x04,0xFC, 0x00,0x00, 0x01,0x00,0x00,0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x40,0x80,0x7F, 0x00,0x00, /*-- 文字: 都 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x20,0x24,0x24,0xA4,0x7F,0x24,0x34,0x28,0x26,0x20,0xFE,0x02,0x22,0xDA ,0x06,0x00, 0x04,0x02,0xFF,0x49,0x49,0x49,0x49,0xFF,0x00,0x00,0xFF,0x08,0x10,0x08, 0x07,0x00, /*-- 文字: 是 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x00,0x00,0x7F,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x7F,0x00,0x00, 0x00,0x00, 0x81,0x41,0x21,0x1D,0x21,0x41,0x81,0xFF,0x89,0x89,0x89,0x89,0x89,0x81, 0x81,0x00, /*-- 文字: 好 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x10,0x10,0xF0,0x1F,0x10,0xF0,0x00,0x80,0x82,0x82,0xE2,0x92,0x8A,0x86 ,0x80,0x00, 0x40,0x22,0x15,0x08,0x16,0x61,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00, 0x00,0x00, /*-- 文字: 孩 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x02,0x02,0x02,0xF2,0x8A,0x46,0x08,0x88,0xC8,0xA8,0x99,0x8E,0x88,0x48 ,0x28,0x00, 0x02,0x42,0x81,0x7F,0x00,0x00,0x88,0x88,0x44,0x44,0x22,0x11,0x28,0x44, 0x82,0x00, /*-- 文字: 子 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x80,0x82,0x82,0x82,0x82,0x82,0x82,0xE2,0xA2,0x92,0x8A,0x86,0x82,0x80, 0x80,0x00, 0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00, /*-- 文字: 我 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x20,0x24,0x24,0x24,0xFE,0x23,0x22,0x20,0x20,0xFF,0x20,0x22,0x2C,0xA0 ,0x20,0x00, 0x00,0x08,0x48,0x84,0x7F,0x02,0x41,0x40,0x20,0x13,0x0C,0x14,0x22,0x41, 0xF8,0x00, /*-- 文字: 们 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x80,0x60,0xF8,0x07,0x00,0xF8,0x01,0x06,0x00,0x04,0x04,0x04,0xFC, 0x00,0x00, 0x01,0x00,0x00,0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x40,0x80,0x7F, 0x00,0x00, /*-- 文字: 都 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x20,0x24,0x24,0xA4,0x7F,0x24,0x34,0x28,0x26,0x20,0xFE,0x02,0x22,0xDA ,0x06,0x00, 0x04,0x02,0xFF,0x49,0x49,0x49,0x49,0xFF,0x00,0x00,0xFF,0x08,0x10,0x08, 0x07,0x00, /*-- 文字: 是 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x00,0x00,0x7F,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x7F,0x00,0x00, 0x00,0x00, 0x81,0x41,0x21,0x1D,0x21,0x41,0x81,0xFF,0x89,0x89,0x89,0x89,0x89,0x81, 0x81,0x00, /*-- 文字: 好 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x10,0x10,0xF0,0x1F,0x10,0xF0,0x00,0x80,0x82,0x82,0xE2,0x92,0x8A,0x86 ,0x80,0x00, 0x40,0x22,0x15,0x08,0x16,0x61,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00, 0x00,0x00 }; int main(void) { u8 i = 0; Stm32_Clock_Init(9); //系统时钟设置8MHz * 9 = 72MHz delay_init(72); //延时初始化 LCDPortSet(); //LCD口设置 LcdInit(); //LCM初始化程序 delay_ms(100); while(1) { LCD_DATA(0x55); delay_us(10); LCD_DATA(0xf0); while(1) { delay_ms(1000); for(i=0;i<12;i++) WriteChr16x16(0,i*16,table[i]); for(i=0;i<12;i++) WriteChr16x16(2,i*16,table[i]); for(i=0;i<12;i++) WriteChr16x16(4,i*16,table[i]); for(i=0;i<12;i++) WriteChr16x16(6,i*16,table[i]); delay_ms(500); } } } STM32液晶屏驱动程序