找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5978|回复: 1
收起左侧

stm32驱动OCM12232液晶屏程序

[复制链接]
ID:73735 发表于 2015-2-19 00:08 | 显示全部楼层 |阅读模式

main.c文件:
#include"stm32f10x_lib.h"
#include "hw_conf.h"
#include"OCM12232.h"
unsigned char const tab1[]={
/*--  文字:  中  --*/
0x00,0x00,0xFC,0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0x08,0xFC,0x08,0x00,0x00,
0x00,0x00,0x07,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x02,0x02,0x07,0x00,0x00,0x00,
/*--  文字:  科  --*/
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,
/*--  文字:  国  --*/
0x00,0xFE,0x02,0x0A,0x8A,0x8A,0x8A,0xFA,0x8A,0x8A,0x8A,0x0A,0x02,0xFE,0x00,0x00,
0x00,0xFF,0x40,0x48,0x48,0x48,0x48,0x4F,0x48,0x49,0x4E,0x48,0x40,0xFF,0x00,0x00,
/*--  文字:  技  --*/
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,
/*--  文字:  肇  --*/
0x80,0x60,0x1C,0x95,0x96,0x94,0x9C,0xC8,0xA4,0xAF,0x94,0x94,0x2C,0x44,0x44,0x00,
0x20,0x22,0x2A,0x2A,0x2A,0x2A,0x2A,0xFF,0x2A,0x2A,0x2A,0x2F,0x22,0x22,0x20,0x00,
/*--  文字:  有  --*/
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,
/*--  文字:  庆  --*/
0x00,0x00,0xFC,0x44,0x44,0x44,0x44,0xC5,0x7E,0xC4,0x44,0x44,0x44,0x44,0x44,0x00,
0x40,0x30,0x0F,0x40,0x20,0x10,0x0C,0x03,0x00,0x01,0x06,0x18,0x30,0x60,0x20,0x00,
/*--  文字:  限  --*/
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,
/*--  文字:  金  --*/
0x40,0x40,0x20,0x20,0x50,0x48,0x44,0xC3,0x44,0x48,0x50,0x50,0x20,0x60,0x20,0x00,
0x40,0x40,0x42,0x42,0x4A,0x72,0x42,0x7F,0x42,0x62,0x5A,0x42,0x42,0x40,0x40,0x00,
/*--  文字:  公  --*/
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,
/*--  文字:  鹏  --*/
0x00,0xFE,0x12,0xFE,0x00,0xFE,0x12,0xFE,0x00,0xFC,0x0E,0x35,0x44,0x7C,0x00,0x00,
0x20,0x1F,0x21,0x7F,0x20,0x1F,0x41,0x7F,0x08,0x09,0x09,0x29,0x49,0x21,0x1F,0x00,
/*--  文字:  司  --*/
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
};
unsigned char const tab2[]={
/*--  文字:  8  --*/
0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,
/*--  文字:  G  --*/
0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,
/*--  文字:  6  --*/
0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,
/*--  文字:  o  --*/
0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,
/*--  文字:  -  --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
/*--  文字:  l  --*/
0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,
/*--  文字:  7  --*/
0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,
/*--  文字:  d  --*/
0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,
/*--  文字:  5  --*/
0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,
/*--  文字:  e  --*/
0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,
/*--  文字:  8  --*/
0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,
/*--  文字:  n  --*/
0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,
/*--  文字:  -  --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
/*--  文字:  P  --*/
0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,
/*--  文字:  2  --*/
0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,
/*--  文字:  a  --*/
0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,
/*--  文字:  2  --*/
0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,
/*--  文字:  l  --*/
0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,
/*--  文字:  2  --*/
0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,
/*--  文字:  m  --*/
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,
/*--  文字:  3  --*/
0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,
/*--  文字:     --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*--  文字:  1  --*/
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,
/*--  文字:  L  --*/
0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,
/*--  文字:  9  --*/
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,
/*--  文字:  C  --*/
0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,
/*--  文字:  6  --*/
0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,
/*--  文字:  M  --*/
0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00
};
unsigned char const tab3[]={
/*--  调入了一幅图像:F:\梁\其它\HOCO12232.bmp  --*/
/*--  宽度x高度=122x32  --*/
0x00,0x00,0x00,0x70,0xF8,0xF8,0xFC,0xFC,0xFE,0xFE,0xFE,0xFE,0xFC,0xFC,0xF0,0xE0,
0xC0,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,0x40,0x20,0x10,0x48,0xD4,0xB4,0x62,0xC2,0x82,0x03,0x02,0x02,
0x02,0x84,0xC4,0xE0,0xA0,0xE0,0x60,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0xB0,0xF8,0xF0,0xF0,0xF8,0xFC,0x60,0x60,0x30,
0x18,0x00,0x00,0x00,0x80,0xC0,0xE0,0xE0,0xF0,0xF0,0xF0,0xD8,0x58,0x58,0x58,0x58,
0x58,0xD8,0xD8,0x98,0xB0,0x30,0x70,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x07,
0x07,0x07,0x02,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xFC,0xFC,0xFC,
0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xF8,0xF0,0xC0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x01,0x00,0x04,
0x0D,0x1B,0x36,0x6D,0xDB,0xF6,0xED,0xFB,0xFE,0xFE,0xFF,0x7F,0x1F,0x07,0x01,0x00,
0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFC,0xFE,0xFE,
0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xE0,0xC0,0xC0,0xF8,0xFE,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x3E,0xF8,0x01,0x37,
0x0C,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x60,0xFF,0xC7,0x03,0x03,0x03,0x03,0xE1,
0xFF,0x3F,0x0F,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x0F,0x3F,0x7F,0xFF,0xEF,
0xBF,0x7F,0xFF,0xC7,0x07,0x1F,0xFE,0xF8,0xB0,0x60,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x04,0x08,0x10,0x20,0x40,0x40,0x80,0x83,
0xFF,0xFF,0xFF,0xFF,0x83,0x40,0x40,0x20,0x10,0x08,0x04,0x03,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x03,0x07,0x0F,0x1F,0x3F,0x3F,0x7F,0xFF,
0xFF,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xDF,0x3F,0x3F,0x0F,0x61,0x3F,0x1F,0x2F,0x3F,
0x1F,0x0F,0x00,0x0F,0x07,0x03,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x1E,0x07,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x40,0x60,0x70,0x3C,0x1F,0x07,0x03,0x01,0x01,0x00,0x00,
0x01,0x07,0x07,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x44,0xEC,0x00,
0x7C,0x44,0x7C,0x00,0x7C,0x40,0x40,0x00,0x7C,0x44,0x38,0x00,0x7C,0x14,0x1C,0x00,
0x7C,0x40,0x40,0x00,0x78,0x24,0x78,0x00,0x7C,0x18,0x18,0x7C,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x10,0x04,0x07,0x00,0x01,0x00,0x00,0x00,0x01,
0x05,0x03,0x02,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();
  //GPIO_Write(GPIOA, 0x0000);
  //GPIO_Write(GPIOC, 0x0000);
  Delay(10);
  init_lcd();
  while(1)
  {
    wrlattice(0x00,0x00);
    disphz(tab1);
    Delay(300);
   
    wrlattice(0xff,0x00);
    Delay(300);
   
    wrlattice(0x00,0x00);
    disphz(tab2);
    Delay(300);
   
    wrlattice(0x33,0x33);
    Delay(300);
    disphz(tab3);
    Delay(300);
   
    GPIO_WriteBit(GPIOC,GPIO_Pin_5,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOC,GPIO_Pin_5)));
  }
}
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_Div2, RCC_PLLMul_2);
    RCC_PLLCmd(ENABLE);
    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
    {
    }
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
    while(RCC_GetSYSCLKSource() != 0x08)
    {
    }
  }
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | 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_OD;
  GPIO_Init(GPIOA, &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_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
OCM12232.C文件:
#include"stm32f10x_lib.h"
#include "OCM12232.h"
void Lcd12232delay(unsigned int us)//延时微妙
{
  unsigned int i,j;
  for ( i=0;i<us;i++)
  for (j=0;j<100;j++)
    ;
}
void Delay(unsigned int ms)//延时毫秒
{
  unsigned int i,j;
  for ( i=0;i<ms;i++)
  for (j=0;j<1000;j++)
    ;
}
void LCD_WriteLByte(u8 Byte)
{
  GPIO_Write(GPIOA, 0x0000);
  u16 Data_PAL;
  Data_PAL = GPIO_ReadOutputData(GPIOA);
  Data_PAL = Data_PAL | Byte;
  GPIO_Write(GPIOA,Data_PAL );
}
void wr_lcd(unsigned char choe1,unsigned char choe2,unsigned char data_comm,u8 content)
{
  chk_busy(choe1,choe2);
  if(data_comm)
  {
    A0_1;
    RW_0;
    Lcd12232delay(1);
  }
  else
  {
    A0_0;
    RW_0;
    Lcd12232delay(1);
  }
  if(choe1==1)
  {
    LCD_WriteLByte(content);
    E1_1;
    Lcd12232delay(8);
    E1_0;
    Lcd12232delay(8);
  }
  if(choe2==1)
  {
    LCD_WriteLByte(content);
    E2_1;
    Lcd12232delay(8);
    E2_0;
    Lcd12232delay(8);
  }
}
void chk_busy(unsigned char choe1,unsigned char choe2)
{
  if(choe1==1)
  {
    A0_0;
    RW_1;
    Lcd12232delay(1);
    E1_1;
    Lcd12232delay(8);
    while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_7)==Bit_SET)
      Lcd12232delay(1);
    E1_0;
    Lcd12232delay(2);
  }
  if(choe2==1)
  {
    A0_0;
    RW_1;
    Lcd12232delay(1);
    E2_1;
    Lcd12232delay(8);
    while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_7)==Bit_SET)
      Lcd12232delay(1);
    E2_0;
    Lcd12232delay(2);
  }
}
void init_lcd(void)
{
  
  GPIO_Write(GPIOA, 0x0000);
  GPIO_Write(GPIOC, 0x0000);
  RES_1;
  Lcd12232delay(2);
  wr_lcd(1,1,comm,0xae);//关显示
  wr_lcd(1,1,comm,0xe2);//复位
  wr_lcd(1,1,comm,0xa4);//正常驱动
  wr_lcd(1,1,comm,0xa9);//占空比1/32
  wr_lcd(1,1,comm,0xa0);//ADC设置
  wr_lcd(1,1,comm,0xee);//改写结束指令
  wr_lcd(1,1,comm,0xaf);//开显示
  
  //wr_lcd(1,1,comm,0xe0);//读-修改-写设置
}
void disphz(unsigned char const *chn)//显示汉字(16*16)
{
  unsigned char i,j,k;
  for(k=0;k<3;k++)
  {
   for(j=0;j<4;j++)
   {
     wr_lcd(1,0,comm,f_page+j);
     wr_lcd(1,0,comm,f_row);
     wr_lcd(1,0,comm,f_line+12+k*16);
     for(i=0;i<16;i++)
       wr_lcd(1,0,data,chn[k*64+j*16+i]);
   }
  }
  for(k=3;k<6;k++)
  {
   for(j=0;j<4;j++)
   {
    wr_lcd(0,1,comm,f_page+j);
    wr_lcd(0,1,comm,f_row);
    wr_lcd(0,1,comm,f_line+k*16-48);
    for(i=0;i<16;i++)
    wr_lcd(0,1,data,chn[k*64+j*16+i]);
   }
  }
}
void dispzf(const unsigned char *eng)//显示字符(8*16)
{
unsigned char i,j,k;
for(k=0;k<7;k++)
{
  for(j=0;j<4;j++)
  {
    wr_lcd(1,0,comm,f_page+j);
    wr_lcd(1,0,comm,f_row);
    wr_lcd(1,0,comm,f_line+5+k*8);
    for(i=0;i<8;i++)
      wr_lcd(1,0,data,eng[k*32+j*8+i]);
  }
}
for(k=7;k<14;k++)
{
   for(j=0;j<4;j++)
   {
     wr_lcd(0,1,comm,f_page+j);
     wr_lcd(0,1,comm,f_row);
     wr_lcd(0,1,comm,f_line+k*8-56);
     for(i=0;i<8;i++)
       wr_lcd(0,1,data,eng[k*32+j*8+i]);
   }
}
}
void disptu(unsigned char const *img)//画图形
{
  unsigned char i,j;
  for(j=0;j<4;j++)
  {
    wr_lcd(1,1,comm,f_page+j);
    wr_lcd(1,1,comm,f_row);
    wr_lcd(1,1,comm,f_line);
    for(i=0;i<122;i++)
    {
      if(i<61)
      {
        wr_lcd(1,0,comm,f_line+i);
        wr_lcd(1,0,data,img[j*122+i]);
      }
      else
      {
        wr_lcd(0,1,comm,f_line+i-61);
        wr_lcd(0,1,data,img[j*122+i]);
      }        
    }
  }
}
void wrlattice(unsigned char data1,unsigned char data2)//写点阵
{
  unsigned char i,j;
  for(j=0;j<4;j++)
  {
    wr_lcd(1,1,comm,f_page+j);
    wr_lcd(1,1,comm,f_row);
    wr_lcd(1,1,comm,f_line);
    for(i=0;i<61;i=i+2)
    {
      wr_lcd(1,1,data,data1);
      wr_lcd(1,1,data,data2);
    }
  }
}
OCM12232.H文件:
#ifndef _OCM12232_h_
#define _OCM12232_h_
#define X                  0x80
#define Y                  0x80
#define comm               0
#define data               1
#define RES_1            GPIO_SetBits(GPIOC, GPIO_Pin_4)  //LCD上升沿复位,复位之后保持高电平
#define RES_0            GPIO_ResetBits(GPIOC, GPIO_Pin_4)
#define RW_0             GPIO_ResetBits(GPIOC, GPIO_Pin_2) //R/W=0,LCD写允许
#define RW_1             GPIO_SetBits(GPIOC, GPIO_Pin_2)   //R/W=1,LCD读允许
#define E1_0             GPIO_ResetBits(GPIOC, GPIO_Pin_0)     //ENABLE1=0,LCD读写禁止
#define E1_1             GPIO_SetBits(GPIOC, GPIO_Pin_0)   //ENABLE1=1,LCD读写使能
#define E2_0             GPIO_ResetBits(GPIOC, GPIO_Pin_1)   //ENABLE2=0,LCD读写禁止
#define E2_1             GPIO_SetBits(GPIOC, GPIO_Pin_1)     //ENABLE2=1,LCD读写使能
#define A0_0             GPIO_ResetBits(GPIOC, GPIO_Pin_3)//Ao=0,向LCD写入指令
#define A0_1             GPIO_SetBits(GPIOC, GPIO_Pin_3)  //Ao=1,向LCD输入数据
/*
#define RES_1            GPIO_WriteBit(GPIOC, GPIO_Pin_4, Bit_SET)  //LCD上升沿复位,复位之后保持高电平
#define RES_0            GPIO_WriteBit(GPIOC, GPIO_Pin_4, Bit_RESET)
#define RW_0             GPIO_WriteBit(GPIOC, GPIO_Pin_2, Bit_RESET) //R/W=0,LCD读允许
#define RW_1             GPIO_WriteBit(GPIOC, GPIO_Pin_2, Bit_SET)   //R/W=1,LCD写允许
#define E1_0             GPIO_WriteBit(GPIOC, GPIO_Pin_0, Bit_RESET)     //ENABLE1=0,LCD读写禁止
#define E1_1             GPIO_WriteBit(GPIOC, GPIO_Pin_0, Bit_SET)   //ENABLE1=1,LCD读写使能
#define E2_0             GPIO_WriteBit(GPIOC, GPIO_Pin_1, Bit_RESET)   //ENABLE2=0,LCD读写禁止
#define E2_1             GPIO_WriteBit(GPIOC, GPIO_Pin_1, Bit_SET)     //ENABLE2=1,LCD读写使能

#define A0_0             GPIO_WriteBit(GPIOC, GPIO_Pin_3, Bit_RESET)//Ao=0,向LCD写入指令
#define A0_1             GPIO_WriteBit(GPIOC, GPIO_Pin_3, Bit_SET)  //Ao=1,向LCD输入数据
*/
#define f_page             0xB8
#define f_row              0xC0
#define f_line             0x00
void Lcd12232delay(unsigned int us);//延时微妙
extern void Delay(unsigned int ms);//延时毫秒
void LCD_WriteLByte(u8 Byte);
void wr_lcd(unsigned char choe1,unsigned char choe2,unsigned char data_comm,u8 content);
void chk_busy(unsigned char choe1,unsigned char choe2);
void init_lcd(void);
void disphz(unsigned char const *chn);//显示汉字(16*16)
void dispzf(const unsigned char *eng);//显示字符(8*16)
void disptu(unsigned char const *img);//画图形
void wrlattice(unsigned char data1,unsigned char data2);//写点阵
#endif

回复

使用道具 举报

ID:727275 发表于 2020-4-15 09:01 | 显示全部楼层
感谢楼主共享stm32驱动OCM12232液晶屏程序
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表