LCD
//================================================
// LCD_Write_Command.c
//================================================
void LCD_Write_Com(uchar com)
{
LCD_RS_Low; //Instruction
LCD_RW_Low; //Write
LCD_EN_Low;
LCD_DATA=com; //P0 receive data
LCD_EN_High; //Open
LCD_EN_Low; //Close
timer_ms_delay(20); //used for busy check
}
//================================================// LCD_Write_Data.c
//================================================void LCD_Write_Data(uchar date)
{
LCD_RS_High; //Data
LCD_RW_Low; //Write
LCD_EN_Low;
LCD_DATA=date; //P0 receive data
LCD_EN_High; //Open
LCD_EN_Low; //Close
timer_ms_delay(20); //used for busy check
}
//================================================// LCD_initialization.c
//================================================
void LCD_initi()
{
/* timer_ms_delay(15); 为什么把这些屏蔽后,显示就不正常了呢?
LCD_Write_Com(0x38);麻烦高手给一个写指令,写数据以及标准初始化的程序!
timer_ms_delay(5);
LCD_Write_Com(0x38);小弟这里谢啦!
timer_ms_delay(5);
LCD_Write_Com(0x38);
timer_ms_delay(5); */
LCD_Write_Com(0x38); //Data Bus 8 bit,line 2,5*7pot/character
LCD_Write_Com(0x0c); //Display on,No cursor,No cursor flashing
LCD_Write_Com(0x06); //光标右移,且AC值加1
LCD_Write_Com(0x01); //Clear,即光标回到左上方,AC的值设置为0
}
为什么把这些屏蔽后,显示就不正常了呢?麻烦高手给一个写指令,写数据以及标准初始化的程序!
小弟这里先谢过啦!
初始化过程:
1、延时15ms
2、写指令38H(不检测忙信号)
3、延时5ms
4、写指令38H(不检测忙信号)
5、延时5ms
6、写指令38H(不检测忙信号)
7、以后每次写指令、读/或写数据操作之前均需检测忙信号
8、写指令38H:显示模式设置
9、写指令08H:显示关闭
10、写指令01H:显示清屏
11、写指令06H:显示光标移动设置
12、写指令0cH:显示开及光标设置
主函数部分:
1、初始化
2、设置显示地址指针
3、for循环
4、在for循环程序中写入数据