stm32驱动12832液晶屏程序(ST7565R控制器)
LCD12832.c文件: #include"stm32f10x_lib.h" #include "OCM12232.h" void Lcd12232delay(unsigned int Time)//延时函数 { unsigned int i,j; ;i<Time;i++) ;j<;j++); } void Delay(unsigned int us)//延时微秒 { unsigned int i; ;i<us;i++); } void LCD_WriteLByte(u8 Byte)//写PC口的低8位,高8位不变 { u16 Data_PAL; Data_PAL = GPIO_ReadOutputData(GPIOC); Data_PAL = Data_PAL&0xFF00;//保留高8位数据 Data_PAL = Data_PAL | Byte;//写入低8位数据 GPIO_Write(GPIOC,Data_PAL ); } void w_com(unsigned char Byte)//向LCD写指令 { A0_0; CS_0; RD_1; WR_0; Delay(); LCD_WriteLByte(Byte); Delay(); WR_1; } void w_data(unsigned char data)//向LCD写数据 { A0_1; CS_0; RD_1; WR_0; Delay(); LCD_WriteLByte(data); Delay(); WR_1; } void SetStartPage(u8 StartPageAddress)//设置起始页面地址 { w_com(0xB0|StartPageAddress); } void SetStartColumn(u8 StartColumnAddress)//设置起始列地址 { w_com(0x10|StartColumnAddress); } void SetStartLine(u8 StartLineAddress)//设置起始行地址 { w_com(0x40|StartLineAddress); } void clrscr(void)//清屏 { u8 i,page; for(page=0xb0;page<0xb4;page++) { w_com(page); w_com(0x10);//列地址,高低字节两次写入,从第0列开始 w_com(0x40);//行地址,从第0行开始 ;i<;i++) {w_data();} } } void ClrOnePage(unsigned StartPage)//清除一页 { u8 i; w_com(0xb0+StartPage);//页地址 w_com(0x10);//列地址,从第0列开始 w_com(0x40);//行地址,从第0行开始 ;i<;i++) {w_data();} } void ClrNumColumn(unsigned char StartPage,unsigned char StartColumn,unsigned Num)//清除StartPage页从StartColumn个汉字位置开始的Num列 { u8 i; w_com(0xb0+StartPage); w_com(0x10+StartColumn); w_com(0x40);//行地址,从第0行开始 ;i<Num;i++) {w_data();} } void Displayhz(unsigned char num,const unsigned char *p)//从(0,0)开始显示num个16*16的汉字(包括标点符号) { u8 i,j; ) { w_com(0xb0); w_com(0x10);//列地址,从第0列开始 w_com(0x40);//行地址,从第0行开始 ;i<;i++) { ;j<;j++) { **i+j<*num) {w_data(p[**i+j]);} } } w_com(0xb1); w_com(0x10);//列地址,从第0列开始 w_com(0x40);//行地址,从第0行开始 ;i<;i++) { ;j<;j++) { *(*i+)+j<*num) {w_data(p[*(*i+)+j]);} } } } ) { w_com(0xb0); w_com(0x10);//列地址,从第0列开始 w_com(0x40);//行地址,从第0行开始 ;i<;i++) { ;j<;j++) { **i+j<*num) {w_data(p[**i+j]);} } } w_com(0xb1); w_com(0x10);//列地址,从第0列开始 w_com(0x40);//行地址,从第0行开始 ;i<;i++) { ;j<;j++) { *(*i+)+j<*num) {w_data(p[*(*i+)+j]);} } } w_com(0xb2); w_com(0x10);//列地址,从第0列开始 w_com(0x40);//行地址,从第0行开始 ;i<;i++) { ;j<;j++) { **i+j<*num) {w_data(p[**i+j]);} } } w_com(0xb3); w_com(0x10);//列地址,从第0列开始 w_com(0x40);//行地址,从第0行开始 ;i<;i++) { ;j<;j++) { *(*i+)+j<*num) {w_data(p[*(*i+)+j]);} } } } } void DisplayHz(unsigned char StartPage,unsigned char column,unsigned char Num,const unsigned char *p)//从StartPage页的第Column个汉字位置开始显示Num个汉字 { u8 i,j; w_com(0xb0+StartPage); w_com(0x10+column);//列地址,从第0列开始 w_com(0x40);//行地址,从第0行开始 ;i<Num;i++) { ;j<;j++) {w_data(p[**i+j]);} } w_com(0xb1+StartPage); w_com(0x10+column);//列地址,从第column个汉字列开始 w_com(0x40);//行地址,从第0行开始 ;i<Num;i++) { ;j<;j++) {w_data(p[*(*i+)+j]);} } } void DisplayZf(unsigned char StartPage,unsigned char column,unsigned char Num,const unsigned char *p)//从StartPage页的第Column个字符位置开始显示Num个8*16的字符 { u8 i,j; w_com(0xb0+StartPage); w_com(0x10+column);//列地址,从第0列开始 w_com(0x40);//行地址,从第0行开始 ;i<Num;i++) { ;j<;j++) {w_data(p[**i+j]);} } w_com(0xb1+StartPage); w_com(0x10+column);//列地址,从第0列开始 w_com(0x40);//行地址,从第0行开始 ;i<Num;i++) { ;j<;j++) {w_data(p[*(*i+)+j]);} } } void DisplayZF(unsigned char num,const unsigned char *p)//从(0,0)开始显示num个8*16的汉字(包括标点符号) { u8 i,j; ) { w_com(0xb0); w_com(0x10);//列地址,从第0列开始 w_com(0x40);//行地址,从第0行开始 ;i<;i++) { ;j<;j++) { **i+j<*num) {w_data(p[**i+j]);} } } w_com(0xb1); w_com(0x10);//列地址,从第0列开始 w_com(0x40);//行地址,从第0行开始 ;i<;i++) { ;j<;j++) { *(*i+)+j<*num) {w_data(p[*(*i+)+j]);} } } } ) { w_com(0xb0); w_com(0x10);//列地址,从第0列开始 w_com(0x40);//行地址,从第0行开始 ;i<;i++) { ;j<;j++) { **i+j<*num) {w_data(p[**i+j]);} } } w_com(0xb1); w_com(0x10);//列地址,从第0列开始 w_com(0x40);//行地址,从第0行开始 ;i<;i++) { ;j<;j++) { *(*i+)+j<*num) {w_data(p[*(*i+)+j]);} } } w_com(0xb2); w_com(0x10);//列地址,从第0列开始 w_com(0x40);//行地址,从第0行开始 ;i<;i++) { ;j<;j++) { **i+j<*num) {w_data(p[**i+j]);} } } w_com(0xb3); w_com(0x10);//列地址,从第0列开始 w_com(0x40);//行地址,从第0行开始 ;i<;i++) { ;j<;j++) { *(*i+)+j<*num) {w_data(p[*(*i+)+j]);} } } } } void display_map(const unsigned char *p)//显示128*32的图片,p是图片数据首地址 { unsigned char seg; unsigned char page; for(page=0xb0;page<0xb4;page++)//写页地址共4页0xb0--0xb3 { w_com(page); w_com(0x10);//列地址,高低字节两次写入,从第0列开始 w_com(0x40);//行地址,从第0行开始 ;seg<;seg++)//写128列 {w_data(*p++);} } } void LCD_Init()//LCD初始化 { RES_0; Lcd12232delay(); RES_1; w_com(0xaf);//ON DSIPLAY w_com(0x40);//START Line DISPLAY w_com(0xa0);//ADC正常 //w_com(0xa1);//ADC反向 w_com(0xa6);//正常显示 //w_com(0xa7);//反白显示 w_com(0xa4);//CLEAR--Normal Modle //w_com(0xa5);//全屏显示 w_com(0xa2);//1/9BIAS--1/9偏置设置 //w_com(0xa3);//1/7BIAS--1/7偏置设置 w_com(0xc8);//COMMON OUTPUT DIRECTION //w_com(0xc0); w_com(0x2f);//POWER CONTROL w_com(0x20);//RESISTER RATIO--粗调 w_com(0x81);//VOLUM MODE SET w_com(0x20);//RESISTER RATIO--细调 } LCD12832.h文件: #ifndef _OCM12232_h_ #define _OCM12232_h_ #define CS_1 GPIO_SetBits(GPIOC, GPIO_Pin_8) //取消LCD片选 #define CS_0 GPIO_ResetBits(GPIOC, GPIO_Pin_8) //LCD片选有效 #define RES_1 GPIO_SetBits(GPIOC, GPIO_Pin_9) //LCD低电平复位,复位之后保持高电平 #define RES_0 GPIO_ResetBits(GPIOC, GPIO_Pin_9) //LCD复位 #define A0_1 GPIO_SetBits(GPIOC, GPIO_Pin_10) //Ao=1,向LCD输入数据 #define A0_0 GPIO_ResetBits(GPIOC, GPIO_Pin_10) //Ao=0,向LCD写入指令 #define WR_1 GPIO_SetBits(GPIOC, GPIO_Pin_11) //LCD写禁止 #define WR_0 GPIO_ResetBits(GPIOC, GPIO_Pin_11) //LCD写允许 #define RD_1 GPIO_SetBits(GPIOC, GPIO_Pin_12) //LCD读禁止 #define RD_0 GPIO_ResetBits(GPIOC, GPIO_Pin_12) //LCD读允许 void Lcd12232delay(unsigned int Time);//延时函数 void LCD_WriteLByte(u8 Byte);//写PC口的低8位,高8位不变 void w_com(unsigned char Byte);//向LCD写指令 void w_data(unsigned char data);//向LCD写数据 void SetStartPage(u8 StartPageAddress);//设置起始页面地址 void SetStartColumn(u8 StartColumnAddress);//设置起始列地址 void SetStartLine(u8 StartLineAddress);//设置起始行地址 void clrscr(void);//清屏 void ClrOnePage(unsigned StartPage);//清除一页 void ClrNumColumn(unsigned char StartPage,unsigned char StartColumn,unsigned Num);//清除StartPage页从StartColumn个汉字位置开始的Num列 void Displayhz(unsigned char num,const unsigned char *p);//从(0,0)开始显示num个16*16的汉字(包括标点符号) void DisplayHz(unsigned char StartPage,unsigned char column,unsigned char Num,const unsigned char *p);//从StartPage页的第Column个汉字位置开始显示Num个汉字 void DisplayZf(unsigned char StartPage,unsigned char column,unsigned char Num,const unsigned char *p);//从StartPage页的第Column个字符位置开始显示Num个8*16的字符 void DisplayZF(unsigned char num,const unsigned char *p);//从(0,0)开始显示num个8*16的汉字(包括标点符号) void display_map(const unsigned char *p);//显示128*32的图片,p是图片数据首地址 void LCD_Init();//LCD初始化 #endif hw_conf.C文件: #include"stm32f10x_lib.h" #include "hw_conf.h" #include "OCM12232.h" ErrorStatus HSEStartUpStatus; void RCC_Configuration(void) { RCC_DeInit(); RCC_HSEConfig(RCC_HSE_ON); HSEStartUpStatus = RCC_WaitForHSEStartUp(); if(HSEStartUpStatus == SUCCESS) { FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); FLASH_SetLatency(FLASH_Latency_2); RCC_HCLKConfig(RCC_SYSCLK_Div1); RCC_PCLK2Config(RCC_HCLK_Div1); RCC_PCLK1Config(RCC_HCLK_Div2); RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); RCC_PLLCmd(ENABLE); while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) { } RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); while(RCC_GetSYSCLKSource() != 0x08) { } } RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); } void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOC, &GPIO_InitStructure); } void NVIC_Configuration(void) { #ifdef VECT_TAB_RAM NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); #else NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0); #endif } void Setup_System(void) { RCC_Configuration(); GPIO_Configuration(); NVIC_Configuration(); } hw_conf.h文件: #ifndef _hw_conf_H_ #define _hw_conf_H_ extern void Setup_System(void); #endif main.c文件: #include"stm32f10x_lib.h" #include "hw_conf.h" #include"OCM12232.h" const unsigned char tab4[]={ /*-- 文字: 武 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x10,0x10,0x14,0x14,0x14,0xD4,0x14,0x14,0x10,0x7F,0x90,0x12,0x14,0x10,0x10,0x00, 0x40,0x40,0x7F,0x20,0x20,0x1F,0x11,0x11,0x01,0x00,0x07,0x18,0x20,0x40,0xF0,0x00, /*-- 文字: 汉 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x10,0x60,0x01,0x86,0x60,0x04,0x1C,0xE4,0x04,0x04,0x04,0xE4,0x1C,0x04,0x00,0x00, 0x04,0x04,0x7E,0x01,0x40,0x20,0x20,0x10,0x0B,0x04,0x0B,0x10,0x30,0x60,0x20,0x00, /*-- 文字: 普 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x40,0x44,0x54,0x64,0x45,0x7E,0x44,0x44,0x44,0x7E,0x45,0x64,0x54,0x44,0x40,0x00, 0x00,0x00,0x00,0xFF,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0xFF,0x00,0x00,0x00,0x00, /*-- 文字: 仕 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x80,0x40,0xF0,0x1C,0x27,0x22,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x30,0x20,0x00, 0x00,0x00,0x7F,0x00,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x30,0x20,0x00, /*-- 文字: 数 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x10,0x92,0x54,0x38,0xFF,0x38,0x54,0x52,0x80,0xF0,0x1F,0x12,0x10,0xF0,0x10,0x00, 0x42,0x42,0x2A,0x2E,0x13,0x1A,0x26,0x02,0x40,0x20,0x13,0x0C,0x33,0x60,0x20,0x00, /*-- 文字: 控 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x08,0x08,0x08,0xFF,0x88,0x48,0x00,0x98,0x48,0x28,0x0A,0x2C,0x48,0xD8,0x08,0x00, 0x02,0x42,0x81,0x7F,0x00,0x00,0x40,0x42,0x42,0x42,0x7E,0x42,0x42,0x42,0x40,0x00, /*-- 文字: 科 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 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, /*-- 文字: 技 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x08,0x08,0x88,0xFF,0x48,0x28,0x00,0xC8,0x48,0x48,0x7F,0x48,0xC8,0x48,0x08,0x00, 0x01,0x41,0x80,0x7F,0x00,0x40,0x40,0x20,0x13,0x0C,0x0C,0x12,0x21,0x60,0x20,0x00, /*-- 文字: 有 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x04,0x84,0x44,0xE4,0x34,0x2C,0x27,0x24,0x24,0x24,0xE4,0x04,0x04,0x04,0x00, 0x02,0x01,0x00,0x00,0xFF,0x09,0x09,0x09,0x29,0x49,0xC9,0x7F,0x00,0x00,0x00,0x00, /*-- 文字: 限 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0xFE,0x02,0x32,0x4E,0x82,0x00,0xFE,0x4A,0xCA,0x4A,0x4A,0x4A,0x7E,0x00,0x00,0x00, 0xFF,0x00,0x02,0x04,0x03,0x00,0xFF,0x40,0x20,0x03,0x0C,0x12,0x21,0x60,0x20,0x00, /*-- 文字: 公 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x00,0x80,0x40,0x30,0x0E,0x84,0x00,0x00,0x0E,0x10,0x60,0xC0,0x80,0x80,0x00, 0x00,0x01,0x20,0x70,0x28,0x24,0x23,0x31,0x10,0x10,0x14,0x78,0x30,0x01,0x00,0x00, /*-- 文字: 司 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x10,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x12,0x02,0x02,0xFE,0x00,0x00, 0x00,0x00,0x1F,0x04,0x04,0x04,0x04,0x04,0x04,0x0F,0x00,0x20,0x40,0x3F,0x00,0x00, /*-- 文字: 欢 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 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, /*-- 文字: 迎 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 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, /*-- 文字: 你 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x80,0x40,0xF0,0x2C,0x43,0x20,0x98,0x0F,0x0A,0xE8,0x08,0x88,0x28,0x1C,0x08,0x00, 0x00,0x00,0x7F,0x00,0x10,0x0C,0x03,0x21,0x40,0x3F,0x00,0x00,0x03,0x1C,0x08,0x00, /*-- 文字: ! --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x5F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }; const unsigned char tab3[]={ /*-- 文字: 北 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 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, /*-- 文字: 京 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x04,0x04,0xE4,0x24,0x24,0x25,0x26,0x24,0x24,0x24,0xE4,0x06,0x04,0x00,0x00, 0x00,0x20,0x10,0x19,0x0D,0x41,0x81,0x7F,0x01,0x01,0x05,0x0D,0x38,0x10,0x00,0x00, /*-- 文字: 欢 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 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, /*-- 文字: 迎 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 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, /*-- 文字: 你 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x80,0x40,0xF0,0x2C,0x43,0x20,0x98,0x0F,0x0A,0xE8,0x08,0x88,0x28,0x1C,0x08,0x00, 0x00,0x00,0x7F,0x00,0x10,0x0C,0x03,0x21,0x40,0x3F,0x00,0x00,0x03,0x1C,0x08,0x00, /*-- 文字: ! --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x5F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }; const unsigned char tab2[]={ /*-- 文字: A --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20, /*-- 文字: B --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00, /*-- 文字: C --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00, /*-- 文字: D --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00, /*-- 文字: E --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00, /*-- 文字: F --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00, /*-- 文字: G --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00, /*-- 文字: H --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20, /*-- 文字: I --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00, /*-- 文字: J --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00, /*-- 文字: K --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00, /*-- 文字: L --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00, /*-- 文字: M --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00, /*-- 文字: N --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00, /*-- 文字: 8 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00, /*-- 文字: 8 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00, /*-- 文字: 6 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00, /*-- 文字: 2 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00, /*-- 文字: 9 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00, /*-- 文字: 8 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00, /*-- 文字: 8 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00, /*-- 文字: J --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00, /*-- 文字: M --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00, /*-- 文字: A --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20, /*-- 文字: S --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00, /*-- 文字: D --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00, /*-- 文字: F --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00, /*-- 文字: G --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00, /*-- 文字: H --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20, }; const unsigned char tab5[]={ /*-- 调入了一幅图像:D:\My Documents\My Pictures\我爱你.bmp --*/ /*-- 宽度x高度=128x32 --*/ 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,0x00,0x00,0x00,0x00,0x00,0x00, 0x80,0x80,0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xC0,0xC0,0xC0,0x80,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0xCE,0x00,0x00,0x84,0x00,0x00,0x00,0x04,0x80,0x48, 0x00,0x02,0x02,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,0xE8,0xFF,0xB6,0x6F,0xFF,0xFB,0xFF,0xD0,0xE0, 0x40,0xE0,0xC0,0xE0,0xC0,0xE0,0xE0,0x60,0xA0,0xEE,0xFF,0xFB,0xDE,0x7F,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0xC0,0xC0,0xC0,0xC0,0xC4,0x9F, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x9C,0x9C,0x9E,0xFF,0xF3,0xF3,0xF3,0xFF,0xFF,0xFF, 0x7C,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x22,0x50,0x10,0x0C,0x00,0x04,0x04,0x00, 0x0C,0x02,0x08,0x21,0x90,0x40,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,0x0B,0x3F,0xDD,0xCF,0x8F,0x8E,0xCF,0xFE,0x37, 0x07,0x07,0x06,0x07,0x07,0x05,0x07,0x07,0x1F,0x3D,0xFE,0xEF,0xFF,0xF5,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x08,0x7E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x06,0x00,0x0C,0x10,0x08,0x00,0x08, 0x00,0x08,0x00,0x06,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, 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,0x01,0x01,0x01,0x01,0x01,0x01,0x01, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x04,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, }; void main(void) { Setup_System(); LCD_Init(); clrscr();//清屏 ) { //display_map(tab3);//显示图片,p是图片数据首地址 //Display_hz(16,tab4); //Disp_ZF(2,2,10,tab2);//从page页的第Column个字符位置开始显示Num个字符 display_map(tab5);//显示图片,p是图片数据首地址 //Display_ZF(22,tab2); //Disp_Hz(0,1,6,tab4); //Lcd12232delay(20000); //Disp_Hz(2,1,6,tab3); //ClrOnePage(1); //ClrNumColumn(1,2,64);//清除page页从16*StartColumn开始的Num列 //Lcd12232delay(200); } } 字模提取软件:zimo221,纵向取模,字节倒序。
stm32驱动12832液晶屏程序(ST7565R控制器)的更多相关文章
- STM32 驱动1602液晶
利用STM32f103c8t6单片机驱动1602A液晶进行显示功能 上图即为写入信息后的效果图 本人用的是STM32的核心系统,无任何外设 库函数:3.5版本的库函数 驱动模式:采用4线驱动模式 供电 ...
- [DM8168]Linux下控制GPIO控制12864液晶屏(ST7565控制器)
首先加载驱动模块,应用程序通过调用API实现GPIO控制功能. 驱动函数: /* * fileName: st7565_driver.c * just for LCD12864 driver * GP ...
- STM32驱动ILI9341控制器控制TFTLCD显示
STM32驱动ILI9341控制器控制TFTLCD显示 一.用STM32控制TFTLCD显示的编程方法,在编程驱动TFTLCD液晶显示器之前,我们先熟悉以下概念: 1.色彩深度,这是一个与TFTLCD ...
- 所谓的液晶屏驱动IC是单独的IC还是在屏内就集成
所谓的液晶屏驱动IC是单独的IC还是在屏内就集成 时间:2016-12-05 作者:admin 其实无论什么液晶屏,想要正常工作必须包括两个人:玻璃屏+驱动IC:但是现在有一些液晶厂商他们不 ...
- ESA2GJK1DH1K升级篇: 升级STM32 预热: 单片机定时 使用 http 获取云端文本文件里面的内容,然后显示在液晶屏
前言: 实现功能概要 STM32使用AT指令控制Wi-Fi以TCP方式连接咱上节安装的Web服务器,然后使用http的get协议获取云端文本文件里面的内容, 然后把获取的数据显示在OLED液晶屏. ...
- Arduino 1602液晶屏实验和程序
在Arduino IDE中, 项目->加载库->管理库中搜索LiquidCrystal,然后安装即可 1.接线图 2.引脚图 3.最简单程序 #include <LiquidCrys ...
- s3c2440液晶屏驱动 (内核自带) linux-4.1.24
自带有一部分驱动的配置信息,只要修改这部分就能支援 不同的液晶屏 - /arch/arm/mach-s3c24xx/mach-smdk2440.c 另一部分在 /drivers/video/fbdev ...
- 2.2寸(14PIN)TFT液晶屏STM32 SPI 控制
屏幕如图所示,共14个IO口(也可能只有13个),控制屏幕的有9个IO口 详细版介绍见:http://www.ciast.net/post/20151112.html 反面IO口图: 连接通过SPI方 ...
- 联盛德 HLK-W806 (六): I2C驱动SSD1306 128x64 OLED液晶屏
目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...
随机推荐
- leetcode238
public class Solution { public int[] ProductExceptSelf(int[] nums) { int[] result = new int[nums.Len ...
- leetcode300
本题使用回溯法,深度优先搜索.使用隐式条件来进行加速. public class Solution { ; int[] x; Dictionary<int, int> dic = new ...
- linux 机器之间 zssh, rz, sz互相传输
zssh的全名叫ZMODEM SSH.看名字就知道,使用的zmodem,我们习惯了SecureCRT,直接就可以用来发送文件,比使用scp方便很多. zmodem协议方便主要表示在以下点 其一,不需要 ...
- Hibernate 再接触 事务隔离机制
事务:要么都要完成,一个不完成就要回滚. ACID 原子性 一致性 独立性 持久性 第一类丢失更新 第一类丢失更新 脏读(读了另外一个事务没有提交的数据) 不可重复读(在同一个事务里,对数据库里的值前 ...
- python学习Day3 变量、格式化输出、注释、基本数据类型、运算符
今天复习内容(7项) 1.语言的分类 -- 机器语言:直接编写0,1指令,直接能被硬件执行 -- 汇编语言:编写助记符(与指令的对应关系),找到对应的指令直接交给硬件执行 -- 高级语言:编写人能识别 ...
- 记账本,C,Github,Dao
package dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSe ...
- 服务器解析慢,可以安装nscd解决
针对服务器解析慢,可以在服务器上安装nscd,就可以把解析缓存起来,不用每次都解析 安装nscd: yum -y install nscd chkconfig nscd on service nscd ...
- 模型介绍之FastText
模型介绍一: 1. FastText原理及实践 前言----来源&特点 fastText是Facebook于2016年开源的一个词向量计算和文本分类工具,在学术上并没有太大创新.但是它的优点也 ...
- JS中的事件(对象,冒泡,委托,绑定)
- 事件,是文档或浏览器窗口中发生的一些特定的交互瞬间,JS与HTML之间的交互是通过事件实现的 对于web应用来说,有下面这些代表性事件:点击事件,鼠标移动,按下键盘等等 - 事件,是用户和浏览器之 ...
- AltiumDesigner PCB导入CAD
点击File菜单下的New的PCB,新建PCB文件. 在AD09中点击File菜单下的Import,导入CAD文件 选择要导入的CAD文件,点击打开. 选择单位mm,这里的单位选择要与CAD单位一致, ...