//----主函数-----//
#include "stm32f10x.h"
#include "1602.h"
void Delay(u32 nCont); //延时函数
int main()
{
Delay(100);
GPIO_Config1();
Init1602();
disp(0,0,"I Love You");
disp(1,0,"author is Zwl");
while(1);
}
void Delay(u32 nCont)
{
for(;nCont>0;nCont--);
}
//----显示-----//
#include "1602.h"
static void delay(u16 cnt)
{
for(;cnt!=0;cnt--);
}
void GPIO_Config1(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOD,&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(GPIOE,&GPIO_InitStructure);
}
void WriteCmd(u8 cmd)
{
delay(1000);
RS0;
RW0;
GPIO_Write(GPIOE,cmd);
delay(500);
GPIO_ResetBits(GPIOD,GPIO_Pin_10);
E1;
delay(500);
GPIO_ResetBits(GPIOD,GPIO_Pin_10);
}
void WriteData(u8 Dat)
{
delay(1000);
RS1;
RW0;
GPIO_ResetBits(GPIOD,GPIO_Pin_10);
delay(500);
GPIO_Write(GPIOE,Dat);
delay(500);
E1;
delay(500);
GPIO_ResetBits(GPIOD,GPIO_Pin_10);
}
void Init1602(void)
{
WriteCmd(0x38);
delay(100);
WriteCmd(0x08);
delay(100);
WriteCmd(0x01);
delay(100);
WriteCmd(0x06);
delay(100);
WriteCmd(0x0c);
delay(100);
}
void Set_xy(unsigned char x,unsigned char y)
{
unsigned char ss;
if(x==0)
ss=0x80+y;
if(x==1)
ss=0xc0+y;
WriteCmd(ss);
}
void disp(unsigned char x,unsigned char y,unsigned char *s)
{
Set_xy(x,y);
while(*s)
{
WriteData(*s);
s++;
}
}
#ifndef _1602_H_
#define _1602_H_
#include "stm32f10x.h"
#define RS0 GPIO_ResetBits(GPIOD,GPIO_Pin_8)
#define RS1 GPIO_SetBits(GPIOD,GPIO_Pin_8)
#define RW0 GPIO_ResetBits(GPIOD,GPIO_Pin_9)
#define RW1 GPIO_SetBits(GPIOD,GPIO_Pin_9)
#define E1 GPIO_SetBits(GPIOD,GPIO_Pin_10)
void WriteCmd(u8 cmd);
void WriteData(u8 Dat);
void Init1602(void);
void Set_xy(unsigned char x,unsigned char y);
void disp(unsigned char x,unsigned char y,unsigned char *s);
void GPIO_Config1(void);
#endif
请问这有问题吗? |