void write_com(u8 com)
{
u16 para;
RS_1602_L();
RW_1602_L();
para = (u16)GPIOB->IDR;
para = 0x00FF¶
GPIOB->ODR=( (u16) ((com) )<<8)|para;
delay_ms(1);
EN_1602_H();
delay_ms(1);
EN_1602_L();
}
/******************************************************************
**函數名:void write_dat(u8 dat)
**功能:對1602進行寫數據
**說明:無
******************************************************************/
void write_dat(u8 dat)
{
u16 para;
RS_1602_H();
RW_1602_L();
para = (u16)GPIOB->IDR;
para = 0x00FF¶
GPIOB->ODR=( (u16) ((dat) )<<8)|para;
delay_ms(1);
EN_1602_H();
delay_ms(1);
EN_1602_L();
}
/************************************************************************
**函數名:void LCD1602_Char(u8 addr,u8 LCD1602_Table[])
**功能:向LCD1602打印字符
**說明:首地址未加 0x80
*************************************************************************/
void LCD1602_Char(u8 addr,u8 LCD1602_Table[])
{
u8 length,i;
length = strlen(LCD1602_Table);
write_com(addr);
for(i=0;i<length;i++)
{
write_dat(LCD1602_Table[i]);
delay_ms(10);
}
}
/*************************************************************************
**函數名:void init_1602()
**功能:對1602液晶進行初始化
**說明:無
*************************************************************************/
void init_1602(void)
{
// LCD1602_GPIO_Function();
// LCD1602_GPIO_Data();
write_com(0x38);
delay_ms(5);
write_com(0x0c);
delay_ms(5);
write_com(0x06);
delay_ms(5);
write_com(0x01);
delay_ms(5);
}
|