/*----------------------------写1字节命令或数据----------------------------*/
void LCD12864_Write_Byte(unsigned char temp)
/*----------------------------传送数据或者命令----------------------------*/
void LCD12864_Write(unsigned char Command,unsigned char temp)
LCD12864_Write_Byte(Command);
LCD12864_Write_Byte(temp&0xf0);
LCD12864_Write_Byte((temp<<4)&0xf0);
/*----------------------------清空GDRAM----------------------------*/
LCD12864_Write(Write_Command,Setting_Extended_Instruction_Set_Drawing_Off);
LCD12864_Write(Write_Command,k++);
LCD12864_Write(Write_Command,0x80);
LCD12864_Write(Write_Data,0x00);
LCD12864_Write(Write_Command,k++);
LCD12864_Write(Write_Command,0x88);
LCD12864_Write(Write_Data,0x00);
LCD12864_Write(Write_Command,Setting_Extended_Instruction_Set_Drawing_On);
/*----------------------------整页显示字符----------------------------*/
void Display_Text(unsigned char code *addr)
LCD12864_Write(Write_Command,Setting_Basic_Instruction_Set);
LCD12864_Write(Write_Command,0x80); //设置DDRAM地址
LCD12864_Write(Write_Data,*addr);
LCD12864_Write(Write_Command,0x90); //设置DDRAM地址
LCD12864_Write(Write_Data,*addr);
LCD12864_Write(Write_Command,0x88); //设置DDRAM地址
LCD12864_Write(Write_Data,*addr);
LCD12864_Write(Write_Command,0x98); //设置DDRAM地址
LCD12864_Write(Write_Data,*addr);
/*----------------------------指定位置显示字符----------------------------*/
void Display_Data(unsigned char x,unsigned char y,unsigned char Data1,unsigned char Data2)
LCD12864_Write(Write_Command,Setting_Basic_Instruction_Set);
LCD12864_Write(Write_Command,0x80+x); //设置DDRAM地址
LCD12864_Write(Write_Data,Data1);
LCD12864_Write(Write_Data,Data2);
LCD12864_Write(Write_Command,0x90+x); //设置DDRAM地址
LCD12864_Write(Write_Data,Data1);
LCD12864_Write(Write_Data,Data2);
LCD12864_Write(Write_Command,0x88+x); //设置DDRAM地址
LCD12864_Write(Write_Data,Data1);
LCD12864_Write(Write_Data,Data2);
LCD12864_Write(Write_Command,0x98+x); //设置DDRAM地址
LCD12864_Write(Write_Data,Data1);
LCD12864_Write(Write_Data,Data2);
/*----------------------------初始化12864----------------------------*/
LCD12864_Write(Write_Command,Setting_Basic_Instruction_Set);
Delay_x10us(10); //100uS延时
LCD12864_Write(Write_Command,Setting_Basic_Instruction_Set);
LCD12864_Write(Write_Command,Clear_Display); //显示光标闪烁完全关闭
Delay_x10us(10); //100uS延时
LCD12864_Write(Write_Command,Clear_Display); //清除显示
LCD12864_Write(Write_Command,Entry_Mode_Cursor_Right); //光标右移模式
Delay_x10us(10); //100uS延时
LCD12864_Write(Write_Command,Display_On_Cursor_Off_Inverse_Off); //开显示,无光标,光标不闪烁
Delay_x10us(10); //100uS延时
Delay_x10us(10); //100uS延时