STM32液晶屏驱动程序

STM32液晶屏驱动程序
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&=0XF0000000; //PE8-14数据口

GPIOE->CRH|=0X03333333;

GPIOE->CRL&=0X0FFFFFFF; //PE7数据口

GPIOE->CRL|=0X30000000;

GPIOE->ODR|=0X7F80; //上拉

GPIOF->CRL&=0XF0000000;

GPIOF->CRL|=0X03333333; //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液晶屏驱动程序

相关主题
相关文档
最新文档