⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd12864a_430.c

📁 基于MSP430F22X4系列的液晶显示器12864的驱动程序
💻 C
📖 第 1 页 / 共 2 页
字号:


#include "msp430x22x4.h"


const unsigned char Number0[]={8,2,

0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x07,0x08,0x10,0x10,0x08,0x07,0x00
};

const unsigned char Number1[]={8,2,
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x1F,0x10,0x10,0x00,0x00
};

const unsigned char Number2[]={8,2,
0x00,0x30,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x18,0x14,0x12,0x11,0x10,0x18,0x00
};

const unsigned char Number3[]={8,2,
0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x0C,0x10,0x10,0x10,0x11,0x0E,0x00
};

const unsigned char Number4[]={8,2,
0x00,0x80,0x40,0x20,0xF8,0x00,0x00,0x00,0x00,0x03,0x02,0x12,0x1F,0x12,0x12,0x00
};
/*--  文字:  5  --*/
/*--  宋体11;  此字体下对应的点阵为:宽x高=8x15   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=8x16  --*/
const unsigned char Number5[]={8,2,
0x00,0xF8,0x88,0x48,0x48,0x48,0x88,0x00,0x00,0x0C,0x10,0x10,0x10,0x10,0x0F,0x00
};
/*--  文字:  6  --*/
/*--  宋体11;  此字体下对应的点阵为:宽x高=8x15   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=8x16  --*/
const unsigned char Number6[]={8,2,
0x00,0xE0,0x10,0x88,0x88,0x98,0x00,0x00,0x00,0x0F,0x11,0x10,0x10,0x10,0x0F,0x00
};
/*--  文字:  7  --*/
/*--  宋体11;  此字体下对应的点阵为:宽x高=8x15   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=8x16  --*/
unsigned char Number7[]={8,2,
0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00
};
/*--  文字:  8  --*/
/*--  宋体11;  此字体下对应的点阵为:宽x高=8x15   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=8x16  --*/
const unsigned char Number8[]={8,2,
0x00,0x70,0x88,0x88,0x88,0x88,0x70,0x00,0x00,0x0E,0x11,0x10,0x10,0x11,0x0E,0x00
};
/*--  文字:  9  --*/
/*--  宋体11;  此字体下对应的点阵为:宽x高=8x15   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=8x16  --*/
const unsigned char Number9[]={8,2,
0x00,0xF0,0x08,0x08,0x08,0x90,0xE0,0x00,0x00,0x00,0x19,0x11,0x11,0x08,0x07,0x00
};
const unsigned char Number10[]={8,2,0x02,0x03,0x02,0x03,0x02,0x01,0x00,0x00,
0x02,0x03,0x02,0x03,0x02,0x01,0x00,0x00,0x02,0x07,0x40,0x80,0x7F,0x00,0x00,0x00
};
const unsigned char He[]={16,2,
0x10,0x60,0x01,0xC6,0x30,0x02,0xE2,0x22,
0x22,0xE2,0x02,0x02,0xFE,0x02,0x02,0x00,
0x04,0x04,0xFF,0x00,0x00,0x00,0x07,0x02,
0x02,0x07,0x40,0x80,0x7F,0x00,0x00,0x00,
};
const unsigned char Bei[]={16,2,
0x00,0x20,0x20,0x20,0x20,0xFF,0x00,0x00,
0x00,0xFF,0x40,0x20,0x30,0x18,0x10,0x00,
0x10,0x30,0x18,0x08,0x04,0x7F,0x00,0x00,
0x00,0x3F,0x40,0x40,0x40,0x40,0x78,0x00,/*"北",1*/

};
const unsigned char Gong[]={16,2,
0x00,0x00,0x02,0x02,0x02,0x02,0x02,0xFE,
0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,/*"工",2*/
};
const unsigned char Ye[]={16,2,
0x00,0x10,0x60,0x80,0x00,0xFF,0x00,0x00,
0x00,0xFF,0x00,0x80,0x60,0x38,0x10,0x00,
0x20,0x20,0x20,0x23,0x21,0x3F,0x20,0x20,
0x20,0x3F,0x22,0x21,0x20,0x30,0x20,0x00,/*"业",3*/
};
const unsigned char Da[]={16,2,
0x20,0x20,0x20,0x20,0x20,0x20,0xA0,0x7F,
0xA0,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
0x00,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,
0x01,0x06,0x08,0x30,0x60,0xC0,0x40,0x00,/*"大",4*/
};
const unsigned char Xue[]={16,2,
0x40,0x30,0x10,0x12,0x5C,0x54,0x50,0x51,
0x5E,0xD4,0x50,0x18,0x57,0x32,0x10,0x00,
0x00,0x02,0x02,0x02,0x02,0x02,0x42,0x82,
0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x00,/*"学",5*/

};
const unsigned char Chen[]={16,2,
0x00,0x00,0xFE,0x42,0x52,0xD2,0x52,0xD2,
0x52,0x52,0x52,0x52,0x52,0x42,0x40,0x00,
0x40,0x30,0x0F,0x00,0x00,0x7F,0x20,0x11,
0x06,0x08,0x14,0x22,0x23,0x42,0x40,0x00,/*"辰",1*/
};
const unsigned char Jin[]={16,2,
0x80,0x80,0x40,0x20,0x10,0x08,0x24,0x43,
0xC4,0x08,0x10,0x20,0x60,0xC0,0x40,0x00,
0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x82,
0x42,0x32,0x0E,0x02,0x00,0x00,0x00,0x00,/*"今",0*/

};
const unsigned char Ri[]={16,2,
0x00,0x00,0x00,0xFE,0x42,0x42,0x42,0x42,
0x42,0x42,0x42,0xFE,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0x10,0x10,0x10,0x10,
0x10,0x10,0x10,0x3F,0x00,0x00,0x00,0x00,/*"日",1*/

};
const unsigned char Qi[]={16,2,
0x00,0x20,0x10,0x8C,0xA7,0xA4,0xA4,0xA4,
0xA4,0xA4,0xA4,0xA4,0x24,0x04,0x04,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x0F,0x30,0x40,0xF0,0x00,/*"气",2*/

};
const unsigned char Wen[]={16,2,
0x10,0x21,0x86,0x70,0x00,0x7E,0x4A,0x4A,
0x4A,0x4A,0x4A,0x7E,0x00,0x00,0x00,0x00,
0x02,0xFE,0x01,0x40,0x7F,0x41,0x41,0x7F,
0x41,0x41,0x7F,0x41,0x41,0x7F,0x40,0x00,/*"温",3*/
};
const unsigned char She[]={16,2,
0x08,0x88,0xFF,0x48,0x28,0x41,0x41,0x7F,
0x55,0x55,0x55,0xFF,0x21,0x21,0x00,0x00,
0x41,0x80,0x7F,0x00,0x41,0x23,0x15,0x4D,
0x53,0x20,0x23,0x15,0x19,0x65,0x23,0x00,
};/*"摄",0*/
const unsigned char Shi[]={16,2,
0x00,0x00,0xFC,0x44,0x44,0x44,0x44,0x7C,
0xC2,0x42,0x42,0x42,0x42,0x40,0x00,0x00,
0x00,0x00,0xFF,0x40,0x20,0x10,0x00,0x00,
0x03,0x0C,0x10,0x20,0x40,0xF0,0x00,0x00,/*"氏",1*/

};


/*--  调入了一幅图像:Welcome.bmp  --*/
/*--  宽度x高度=128x64  --*/
const unsigned char WELCOME[]={128,8,};

#define	LCD_DI			BIT1			//LCD_DI -> P2.1>
#define LCD_DI_DIR		P2DIR
#define LCD_DI_LO		P2OUT &= ~LCD_DI
#define LCD_DI_HI		P2OUT |= LCD_DI

#define	LCD_RW			BIT2		//LCD_RW -> P2.2
#define LCD_RW_DIR		P2DIR
#define LCD_RW_LO		P2OUT &= ~LCD_RW
#define LCD_RW_HI		P2OUT |= LCD_RW

#define	LCD_EN			BIT1		//LCD_EN -> P3.1
#define LCD_EN_DIR		P3DIR
#define LCD_EN_LO		P3OUT &= ~LCD_EN
#define LCD_EN_HI		P3OUT |= LCD_EN

#define	LCD_CS1			BIT0		//LCD_CS1 -> P3.0
#define LCD_CS1_DIR		P3DIR
#define LCD_CS1_LO		P3OUT &= ~LCD_CS1
#define LCD_CS1_HI		P3OUT |= LCD_CS1

#define	LCD_CS2			BIT2			//LCD_CS2 -> P3.1
#define LCD_CS2_DIR		P3DIR
#define LCD_CS2_LO		P3OUT &= ~LCD_CS2
#define LCD_CS2_HI		P3OUT |= LCD_CS2

#define	LCD_RST			BIT3		//LCD_RST-> P3.
#define LCD_RST_DIR		P3DIR
#define LCD_RST_LO		P3OUT &= ~LCD_RST
#define LCD_RST_HI		P3OUT |= LCD_RST

#define LCD_DATA_IN		P4IN
#define LCD_DATA_OUT		P4OUT
#define LCD_DATA_DIR		P4DIR

#define LCD_DisplayON		0x3F		//LCD Display On
#define LCD_DisplayOFF		0x3E		//LCD Display Off
#define LCD_Data		0x01		//LCD Display Date
#define LCD_Instrument		0x00		//LCD Intrument Data
#define LCD_StartLine		0xC0		//LCD Display Start Line
#define LCD_XAddress		0xB8		//Set X Address
#define LCD_YAddress		0x40		//Set Y Address
#define LCD_Chip1		0x02		//LCD Chip 1
#define LCD_Chip2		0x04		//LCD Chip 2

void LCD_Initialization(void);
void LCD_WriteByte(unsigned char LCD_Date,unsigned char flag);
void LCD_Clear(unsigned char I_Data);
void LCD_ClearRange(unsigned char Start_XPos,unsigned char Start_YPos,unsigned char End_XPos,unsigned char End_YPos);
void LCD_Display(const unsigned char *Buffer,unsigned char Start_XPos,unsigned char Start_YPos,unsigned char Rotate);
void LCD_Delayt(unsigned int dtime);
unsigned char LCD_ReadByte(unsigned char flag);
unsigned char LCD_Location(unsigned char XPos,unsigned char YPos);
void LCD_DispNum(unsigned char dates,unsigned char Start_XPos,unsigned char Start_YPos,unsigned char Rotate);
void LCD_DispNums(unsigned char dates,unsigned char Start_XPos,unsigned char Start_YPos,unsigned char Rotate);
void InitOsc(void);
void delay(unsigned int time);
void second();
void main(void) {
	WDTCTL = WDTPW + WDTHOLD;		//关闭系统看门狗
	//InitOsc();			//初始化系统时钟
        P1DIR |=BIT0;
        P1OUT |=BIT0;
        
       
	LCD_Initialization();			//初始化LCD显示
	LCD_Clear(0x00);
	
	while(1) {
                 
                 
                 P1OUT ^=BIT0;
                LCD_Display(He,0,0,0);
                LCD_Display(Bei,0,16,0);
                LCD_Display(Gong,0,32,0);
                LCD_Display(Ye,0,48,0);
                LCD_Display(Da,0,64,0);
                LCD_Display(Xue,0,80,0);
                LCD_Display(Bei,0,96,0);
                LCD_Display(Chen,0,112,0);
                
                LCD_Display(Jin,2,0,0);
                LCD_Display(Ri,2,16,0);
                LCD_Display(Qi,2,32,0);
                LCD_Display(Wen,2,48,0);
                
                LCD_DispNums(567,4,0,0);
		
               /* LCD_Display(Number11,0,0,0);
                delay(58);
                LCD_Display(Number3,0,0,0);
                delay(58);
               LCD_Display(Number4,0,0,0);
               delay(58);
                LCD_Display(Number5,0,0,0);
                delay(58);
                 LCD_Display(Number6,0,0,0);
                 delay(58);
                 LCD_Display(Number7,0,0,0);
                  delay(58);
                 LCD_Display(Number8,0,0,0);
                  delay(58);
                 LCD_Display(Number9,0,0,0);
                  delay(58);*/
                 /* second();
                  LCD_Clear(0x00);	*/
                  /*LCD_Display(Number0,3,16,0);
                   LCD_Display(Number1,3,24,0);
                    LCD_Display(Number2,3,32,0);
                     LCD_Display(Number3,3,40,0);
                      LCD_Display(Number4,3,48,0);
                       LCD_Display(Number5,3,56,0);
                        LCD_Display(Number6,3,64,0);
                         LCD_Display(Number7,3,72,0);
                          LCD_Display(Number8,3,80,0);
                          
                         

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -