×
单片机 > 单片机程序设计 > 详情

msp430和stm32 lcd屏驱动程序

发布时间:2020-08-26 发布时间:
|

最近使用了一块MSP430F5529单片机做课设,自带的拓展板上有一块12864的COG的LCD屏,记录下使用的驱动程序。


硬件原理图:

COG_CS为片选信号,每次数据或指令通信完毕,需要拉低拉高一次。COG_RST为上电复位引脚,正常工作后不控制。

COG_A0是数据命令选择端,低电平表示传输的是数据,高电平表示传输的时命令。

COG_SCLK是时钟信号,上升沿有效。

COG_SDA为数据线,只能写不能读,无法读取COG内部的显存数据。COG_BKLED为背光控制IO,低电平背光点亮,高电平背光熄灭。


驱动程序:

头文件:


#ifndef LCD_H_

#define LCD_H_


#define LCD_CS_H P8OUT |= BIT2

#define LCD_CS_L P8OUT &= ~BIT2


#define LCD_RST_H P3OUT |= BIT6

#define LCD_RST_L P3OUT &= ~BIT6


#define LCD_AO_H P3OUT |= BIT7

#define LCD_AO_L P3OUT &= ~BIT7


#define LCD_SCK_H P4OUT |= BIT0

#define LCD_SCK_L P4OUT &= ~BIT0


#define LCD_SDA_H P1OUT |= BIT2

#define LCD_SDA_L P1OUT &= ~BIT2



#define LCD_X 128

#define LCD_Y 64/8

#define Font_Size 16

#define Font_Buff_Size Font_Size*Font_Size/8


void LCD_Init(void);

void LCD_6_8_Char(unsigned char y,unsigned char x,char ch);

void LCD_6_8(unsigned char y,unsigned char x,char string[]);

void LCD_8_16_Char(unsigned char y,unsigned char x,char Font);

void LCD_8_16(unsigned char y,unsigned char x,char* string);

void LCD_bmp(unsigned char x0,unsigned char y0,unsigned char x_lenth,unsigned char y_lenth,const unsigned char *bmp_tab);//显示一幅图片,横坐标范围为0-127,纵坐标范围为0-7

void LCD_clear(void);//清屏

unsigned char LCD_GBK16(unsigned char y,unsigned char x0,const char* str);


#endif


源文件:


#include "MSP430.h"

#include "LCD.h"

#include


struct typFNT_GB162

{

unsigned char Index[2];

char Msk[32];

};


#define hz16_num 62


const struct typFNT_GB162 hz16[]={



{"温",0x10,0x60,0x02,0x8C,0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,0x04,0x04,0x7E,0x01,0x40,0x7E,0x42,0x42,0x7E,0x42,0x7E,0x42,0x42,0x7E,0x40,0x00},

{"度",0x00,0x00,0xFC,0x24,0x24,0x24,0xFC,0x25,0x26,0x24,0xFC,0x24,0x24,0x24,0x04,0x00,0x40,0x30,0x8F,0x80,0x84,0x4C,0x55,0x25,0x25,0x25,0x55,0x4C,0x80,0x80,0x80,0x00},

{"湿",0x10,0x60,0x02,0x8C,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,0x04,0x04,0x7E,0x01,0x44,0x48,0x50,0x7F,0x40,0x40,0x7F,0x50,0x48,0x44,0x40,0x00},

{"年",0x00,0x20,0x18,0xC7,0x44,0x44,0x44,0x44,0xFC,0x44,0x44,0x44,0x44,0x04,0x00,0x00,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x00},

{"月",0x00,0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0xFE,0x00,0x00,0x00,0x80,0x40,0x30,0x0F,0x02,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x00,0x00,0x00},

{"日",0x00,0x00,0x00,0xFE,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xFF,0x00,0x00,0x00,0x00},

{"风",0x00,0x00,0xFE,0x02,0x12,0x22,0xC2,0x02,0xC2,0x32,0x02,0xFE,0x00,0x00,0x00,0x00,0x80,0x60,0x1F,0x00,0x20,0x10,0x0C,0x03,0x0C,0x30,0x00,0x0F,0x30,0x40,0xF8,0x00},

{"扇",0x00,0x00,0xFC,0x24,0x24,0x24,0x25,0x26,0x24,0x24,0x24,0x24,0x24,0x3C,0x00,0x00,0x40,0x30,0x0F,0x21,0x15,0x49,0x81,0x7F,0x00,0x21,0x15,0x49,0x81,0x7F,0x00,0x00},

{"加",0x10,0x10,0x10,0xFF,0x10,0x10,0xF0,0x00,0x00,0xF8,0x08,0x08,0x08,0xF8,0x00,0x00,0x80,0x40,0x30,0x0F,0x40,0x80,0x7F,0x00,0x00,0x7F,0x20,0x20,0x20,0x7F,0x00,0x00},

{"热",0x08,0x08,0x88,0xFF,0x48,0x48,0x00,0x08,0x48,0xFF,0x08,0x08,0xF8,0x00,0x00,0x00,0x81,0x65,0x08,0x07,0x20,0xC0,0x08,0x04,0x23,0xC0,0x03,0x00,0x23,0xC4,0x0F,0x00},

{"打",0x10,0x10,0x10,0xFF,0x10,0x90,0x04,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x00,0x04,0x44,0x82,0x7F,0x01,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00},

{"开",0x80,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x80,0x00,0x00,0x80,0x40,0x30,0x0F,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00},

{"关",0x00,0x00,0x10,0x11,0x16,0x10,0x10,0xF0,0x10,0x10,0x14,0x13,0x10,0x00,0x00,0x00,0x81,0x81,0x41,0x41,0x21,0x11,0x0D,0x03,0x0D,0x11,0x21,0x41,0x41,0x81,0x81,0x00},

{"闭",0x00,0xF8,0x01,0x22,0x20,0x22,0x22,0xA2,0xFA,0x22,0x22,0x22,0x02,0xFE,0x00,0x00,0x00,0xFF,0x00,0x08,0x04,0x02,0x11,0x20,0x1F,0x00,0x00,0x40,0x80,0x7F,0x00,0x00},

};


unsigned char const F6x8[][6] =//6*8的点阵

{

0x00, 0x00, 0x00, 0x00, 0x00, 0x00,// sp

0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,// !

0x00, 0x00, 0x07, 0x00, 0x07, 0x00,// "

0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14,// #

0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12,// $

0x00, 0x62, 0x64, 0x08, 0x13, 0x23,// %

0x00, 0x36, 0x49, 0x55, 0x22, 0x50,// &

0x00, 0x00, 0x05, 0x03, 0x00, 0x00,// '

0x00, 0x00, 0x1c, 0x22, 0x41, 0x00,// (

0x00, 0x00, 0x41, 0x22, 0x1c, 0x00,// )

0x00, 0x14, 0x08, 0x3E, 0x08, 0x14,// *

0x00, 0x08, 0x08, 0x3E, 0x08, 0x08,// +

0x00, 0x00, 0x00, 0xA0, 0x60, 0x00,// ,

0x00, 0x08, 0x08, 0x08, 0x08, 0x08,// -

0x00, 0x00, 0x60, 0x60, 0x00, 0x00,// .

0x00, 0x20, 0x10, 0x08, 0x04, 0x02,// /

0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E,// 0

0x00, 0x00, 0x42, 0x7F, 0x40, 0x00,// 1

0x00, 0x42, 0x61, 0x51, 0x49, 0x46,// 2

0x00, 0x21, 0x41, 0x45, 0x4B, 0x31,// 3

0x00, 0x18, 0x14, 0x12, 0x7F, 0x10,// 4

0x00, 0x27, 0x45, 0x45, 0x45, 0x39,// 5

0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30,// 6

0x00, 0x01, 0x71, 0x09, 0x05, 0x03,// 7

0x00, 0x36, 0x49, 0x49, 0x49, 0x36,// 8

0x00, 0x06, 0x49, 0x49, 0x29, 0x1E,// 9

0x00, 0x00, 0x36, 0x36, 0x00, 0x00,// :

0x00, 0x00, 0x56, 0x36, 0x00, 0x00,// ;

0x00, 0x08, 0x14, 0x22, 0x41, 0x00,// <

0x00, 0x14, 0x14, 0x14, 0x14, 0x14,// =

0x00, 0x00, 0x41, 0x22, 0x14, 0x08,// >

0x00, 0x02, 0x01, 0x51, 0x09, 0x06,// ?

0x00, 0x32, 0x49, 0x59, 0x51, 0x3E,// @

0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C,// A

0x00, 0x7F, 0x49, 0x49, 0x49, 0x36,// B

0x00, 0x3E, 0x41, 0x41, 0x41, 0x22,// C

0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C,// D

0x00, 0x7F, 0x49, 0x49, 0x49, 0x41,// E

0x00, 0x7F, 0x09, 0x09, 0x09, 0x01,// F

0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A,// G

0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F,// H

0x00, 0x00, 0x41, 0x7F, 0x41, 0x00,// I

0x00, 0x20, 0x40, 0x41, 0x3F, 0x01,// J

0x00, 0x7F, 0x08, 0x14, 0x22, 0x41,// K

0x00, 0x7F, 0x40, 0x40, 0x40, 0x40,// L

0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F,// M

0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F,// N

0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E,// O

0x00, 0x7F, 0x09, 0x09, 0x09, 0x06,// P

0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E,// Q

0x00, 0x7F, 0x09, 0x19, 0x29, 0x46,// R

0x00, 0x46, 0x49, 0x49, 0x49, 0x31,// S

0x00, 0x01, 0x01, 0x7F, 0x01, 0x01,// T

0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F,// U

0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F,// V

0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F,// W

0x00, 0x63, 0x14, 0x08, 0x14, 0x63,// X

0x00, 0x07, 0x08, 0x70, 0x08, 0x07,// Y

0x00, 0x61, 0x51, 0x49, 0x45, 0x43,// Z

0x00, 0x00, 0x7F, 0x41, 0x41, 0x00,// [

0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55,// 55

0x00, 0x00, 0x41, 0x41, 0x7F, 0x00,// ]

0x00, 0x04, 0x02, 0x01, 0x02, 0x04,// ^

0x00, 0x40, 0x40, 0x40, 0x40, 0x40,// _

0x00, 0x00, 0x01, 0x02, 0x04, 0x00,// '

0x00, 0x20, 0x54, 0x54, 0x54, 0x78,// a

0x00, 0x7F, 0x48, 0x44, 0x44, 0x38,// b

0x00, 0x38, 0x44, 0x44, 0x44, 0x20,// c

0x00, 0x38, 0x44, 0x44, 0x48, 0x7F,// d

0x00, 0x38, 0x54, 0x54, 0x54, 0x18,// e

0x00, 0x08, 0x7E, 0x09, 0x01, 0x02,// f

0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C,// g

0x00, 0x7F, 0x08, 0x04, 0x04, 0x78,// h

0x00, 0x00, 0x44, 0x7D, 0x40, 0x00,// i

0x00, 0x40, 0x80, 0x84, 0x7D, 0x00,// j

0x00, 0x7F, 0x10, 0x28, 0x44, 0x00,// k

0x00, 0x00, 0x41, 0x7F, 0x40, 0x00,// l

0x00, 0x7C, 0x04, 0x18, 0x04, 0x78,// m

0x00, 0x7C, 0x08, 0x04, 0x04, 0x78,// n

0x00, 0x38, 0x44, 0x44, 0x44, 0x38,// o

0x00, 0xFC, 0x24, 0x24, 0x24, 0x18,// p

0x00, 0x18, 0x24, 0x24, 0x18, 0xFC,// q

0x00, 0x7C, 0x08, 0x04, 0x04, 0x08,// r

0x00, 0x48, 0x54, 0x54, 0x54, 0x20,// s

0x00, 0x04, 0x3F, 0x44, 0x40, 0x20,// t

0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C,// u

0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C,// v

0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C,// w

0x00, 0x44, 0x28, 0x10, 0x28, 0x44,// x

0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C,// y

0x00, 0x44, 0x64, 0x54, 0x4C, 0x44,// z

0x14, 0x14, 0x14, 0x14, 0x14, 0x14,// ~

};


unsigned char const F8X16[][16]=//8*16的点阵

{

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 0

0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//! 1

0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//" 2

0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,//# 3

0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,//$ 4

0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,//% 5

0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,//& 6

0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//' 7

0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,//( 8

0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,//) 9

0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,//* 10

0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,//+ 11

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,//, 12

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,//- 13

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,//. 14

0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,/// 15

0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//0 16

0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//1 17

0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//2 18

0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//3 19

0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
如何为单片机选择合适的负载电容