📄 lcd1602_packet.h
字号:
/*--------------------------------------------------------------------------
LCD.H
--------------------------------------------------------------------------*/
//**************************************************************************************//
// 头文件区 //
//**************************************************************************************//
#define write_data_operation XBYTE[0XCDFF] //写数据//E =1 RS=1 RW=0
#define write_commend_operation XBYTE[0XCCFF] //写命令//E=1 RS=0 RW=0
#define read_operation XBYTE[0xCEFF] //读数据//CS=1 RS=0 RW=1
//**************************************************************************************//
// 全局变量定义 //
//**************************************************************************************//
unsigned char test_value,temptemp;
unsigned char code display[]= " It will take years of hard work to speak English well! ";
unsigned char code display1[]= "Try our best to study! ";
unsigned char code display2[]= " to study! ";
unsigned char code display3[]= " tsp! English! ";
unsigned char code display4[]= " so lovely! ";
//**************************************************************************************//
// 延时程序 //
//**************************************************************************************//
void delay5ms(void)
{
unsigned int TempCyc = 5552;
while(TempCyc--);
}
//**************************************************************************************//
// 状态字检测程序 //
//**************************************************************************************//
void read_write_test(void) //状态字检测程序
{ //对控制器每次进行读写操作前,都必须进行读写检测
temptemp=read_operation;
test_value=(temptemp&0x80);
}
//**************************************************************************************//
// 写指令子函数 //
//**************************************************************************************//
void write_command_not(unsigned char value)//(不检测忙信号)写指令子函数
{
write_commend_operation=value;
}
void write_command(unsigned char value)//(须检测忙信号)写指令子函数
{
do
{
read_write_test(); //对控制器每次进行读写操作前,都必须进行读写检测
}while(test_value==0x80); //STA7=P0^7最高们为读/写操作使能端,1:禁止 0:允许
write_commend_operation=value;
}
//**************************************************************************************//
// 写数据子函数 //
//**************************************************************************************//
void write_data(unsigned char value)
{
do
{
read_write_test(); //对控制器每次进行读写操作前,都必须进行读写检测
}while(test_value==0x80); //STA7=P0^7最高们为读/写操作使能端,1:禁止 0:允许
write_data_operation=value;
}
//**************************************************************************************//
// LCD系统初始化 //
//**************************************************************************************//
void LCD_system_Init ( void )
{
delay5ms();
delay5ms();
delay5ms();
write_command_not(0x38); //(不检测忙信号)写指令子函数
delay5ms();
write_command_not(0x38); //
delay5ms();
write_command_not(0x38); //
write_command(0x38); //设置显示模式 ,8位2行5x7点阵
write_command(0x08); // 关显示
write_command(0x01); //清屏
write_command(0x38); //设置显示模式 ,8位2行5x7点阵
write_command(0x06); //文字不动,光标自动右移
write_command(0x0F); //显示器开、光标开、闪烁开
}
void LCD_display(bit hang,unsigned char lie,unsigned char *string)
{
unsigned char i;
if(hang==0)
{
for(i=0;i<17-lie;i++)
{
write_command(0x80|(lie+i));
write_data(*(string+i));
}
}
else
{
for(i=0;i<17-lie;i++)//#0C0H ;写入显示起始地址(第二行第一个位置)
{
write_command(0xc0|(lie+i));
write_data(*(string+i));
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -