--------------------------------LCD6029.c------------------------------------------------------------
#include "stm32f10x.h"
#include "lcd.h"
void Delay(u16 xus)
{
u16 i;
for(;xus>0;xus--)
for(i=24000; i>0; i--);
}
void Delay1()
{
u8 i;
for(i=40; i>0; i--);
}
void LM6029_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE,ENABLE);
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin=( GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9);
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
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_50MHz;
GPIO_Init(GPIOD,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOE,&GPIO_InitStructure);
GPIO_ResetBits(GPIOE,GPIO_Pin_0);
}
void write_com(u8 com) //写入命令子函数
{
if(com&0x01)
GPIO_SetBits(GPIOD,GPIO_Pin_7);
else
GPIO_ResetBits(GPIOD,GPIO_Pin_7);
if(com&0x02)
GPIO_SetBits(GPIOD,GPIO_Pin_6);
else
GPIO_ResetBits(GPIOD,GPIO_Pin_6);
if(com&0x04)
GPIO_SetBits(GPIOD,GPIO_Pin_5);
else
GPIO_ResetBits(GPIOD,GPIO_Pin_5);
if(com&0x08)
GPIO_SetBits(GPIOD,GPIO_Pin_4);
else
GPIO_ResetBits(GPIOD,GPIO_Pin_4);
if(com&0x10)
GPIO_SetBits(GPIOD,GPIO_Pin_3);
else
GPIO_ResetBits(GPIOD,GPIO_Pin_3);
if(com&0x20)
GPIO_SetBits(GPIOD,GPIO_Pin_2);
else
GPIO_ResetBits(GPIOD,GPIO_Pin_2);
if(com&0x40)
GPIO_SetBits(GPIOD,GPIO_Pin_1);
else
GPIO_ResetBits(GPIOD,GPIO_Pin_1);
if(com&0x80)
GPIO_SetBits(GPIOD,GPIO_Pin_0);
else
GPIO_ResetBits(GPIOD,GPIO_Pin_0);
GPIO_ResetBits(GPIOB,GPIO_Pin_7); //RS=0
GPIO_ResetBits(GPIOB,GPIO_Pin_9); //CS=0
GPIO_ResetBits(GPIOB,GPIO_Pin_6); //WR=0
Delay1();
GPIO_SetBits(GPIOB,GPIO_Pin_6); //WR=1
GPIO_SetBits(GPIOB,GPIO_Pin_9); //CS=1
}
void write_data(u8 date) //写入数据子函数
{
GPIO_SetBits(GPIOB,GPIO_Pin_7); //RS=1
if(date&0x01)
GPIO_SetBits(GPIOD,GPIO_Pin_7);
else
GPIO_ResetBits(GPIOD,GPIO_Pin_7);
if(date&0x02)
GPIO_SetBits(GPIOD,GPIO_Pin_6);
else
GPIO_ResetBits(GPIOD,GPIO_Pin_6);
if(date&0x04)
GPIO_SetBits(GPIOD,GPIO_Pin_5);
else
GPIO_ResetBits(GPIOD,GPIO_Pin_5);
if(date&0x08)
GPIO_SetBits(GPIOD,GPIO_Pin_4);
else
GPIO_ResetBits(GPIOD,GPIO_Pin_4);
if(date&0x10)
GPIO_SetBits(GPIOD,GPIO_Pin_3);
else
GPIO_ResetBits(GPIOD,GPIO_Pin_3);
if(date&0x20)
GPIO_SetBits(GPIOD,GPIO_Pin_2);
else
GPIO_ResetBits(GPIOD,GPIO_Pin_2);
if(date&0x40)
GPIO_SetBits(GPIOD,GPIO_Pin_1);
else
GPIO_ResetBits(GPIOD,GPIO_Pin_1);
if(date&0x80)
GPIO_SetBits(GPIOD,GPIO_Pin_0);
else
GPIO_ResetBits(GPIOD,GPIO_Pin_0);
GPIO_SetBits(GPIOB,GPIO_Pin_7); //RS=1
GPIO_ResetBits(GPIOB,GPIO_Pin_9); //CS=0
GPIO_ResetBits(GPIOB,GPIO_Pin_6); //WR=0
Delay1();
GPIO_SetBits(GPIOB,GPIO_Pin_6); //WR=1
GPIO_SetBits(GPIOB,GPIO_Pin_9); //CS=1
}
void Initialize(void)
{
GPIO_SetBits(GPIOB,GPIO_Pin_5); //
GPIO_ResetBits(GPIOB,GPIO_Pin_8); //
Delay(10);
GPIO_SetBits(GPIOB,GPIO_Pin_8); //
Delay(10);
GPIO_SetBits(GPIOB,GPIO_Pin_9); //
GPIO_SetBits(GPIOB,GPIO_Pin_6); //
write_com(0xa2);
write_com(0xa0); //
write_com(0xc8);
write_com(0x40);
write_com(0x2c);
Delay(20);
write_com(0x2e);
Delay(20);
write_com(0x2f);
Delay(20);
write_com(0x25);
// write_com(0x81);
// write_com(0x20);
write_com(0xaf);
write_com(0xb0);
write_com(0x10);
write_com(0x00);
}
void display(void)
{
write_data('Z');
}
---------------------------主函数--------------------------------------------------------
#include "stm32f10x.h"
#include "lcd.h"
int main()
{
LM6029_Init();
Initialize();
GPIO_SetBits(GPIOE,GPIO_Pin_0); //ê1PE0êä3ö¸ßμçƽ
display();
while(1);
}
一周热门 更多>