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
|