📄 lcd12232._h
字号:
//定义LCD口线
#define lcd_cs PA4
#define lcd_std PA3
#define lcd_sclk PA2
#define lcd_port PORTA
#define lcd_ddr DDRA
//LCD显示坐标定义
#define x1 0x80 //lcd初始坐标1
#define x2 0x90 //lcd初始坐标2
//LCD数据/命令格式定义
#define command 0 //lcd命令
#define data 1 //lcd数据
//传送单个字节到LCD
void lcd_write(unsigned char dat_comm,unsigned char content)
{
unsigned char a,i,j;
delay_ms();//延时时间要根据实际使用的芯片采用不同的延时时间
a=content; //数据记录
//delay_ms();//这个延时要根据实际需要看是否需要增加//如8515就要加
lcd_port|=BIT(lcd_cs);//cs=1
lcd_port&=~BIT(lcd_sclk);//sclk=0;
lcd_port|=(1<<lcd_std);//PORTC|=BIT(lcd_std);//std=1;
for(i=0;i<5;i++) //启动命令
{
lcd_port|=BIT(lcd_sclk);//sclk=1;
lcd_port&=~BIT(lcd_sclk);//sclk=0;
}
lcd_port&=~(1<<lcd_std);//PORTC&=~BIT(lcd_std);//std=0;
lcd_port|=BIT(lcd_sclk);//sclk=1;
lcd_port&=~BIT(lcd_sclk);//sclk=0;
if(dat_comm)
lcd_port|=(1<<lcd_std);//PORTC|=BIT(lcd_std);//std=1; //数据
else
lcd_port&=~(1<<lcd_std);//PORTC&=~BIT(lcd_std);//std=0; //命令
lcd_port|=BIT(lcd_sclk);//sclk=1;
lcd_port&=~BIT(lcd_sclk);//sclk=0;
lcd_port&=~(1<<lcd_std);//PORTC&=~BIT(lcd_std);//std=0;
lcd_port|=BIT(lcd_sclk);//sclk=1;
lcd_port&=~BIT(lcd_sclk);//sclk=0;
for(j=0;j<2;j++) //循环发送8个位数据
{
for(i=0;i<4;i++)
{
if ((a&0x80)==0x80)
lcd_port|=(1<<lcd_std);//PORTC|=BIT(lcd_std);//单字节传送
else
lcd_port&=~(1<<lcd_std);//PORTC&=~BIT(lcd_std);
a=a<<1;
lcd_port|=BIT(lcd_sclk);//sclk=1;
lcd_port&=~BIT(lcd_sclk);//sclk=0;
}
lcd_port&=~(1<<lcd_std);//PORTC&=~BIT(lcd_std);//std=0;
for(i=0;i<4;i++) //发送4个空数据
{
lcd_port|=BIT(lcd_sclk);//sclk=1;
lcd_port&=~BIT(lcd_sclk);//sclk=0;
}
}
lcd_port|=BIT(lcd_cs);
}
//LCD初始化
void LCD_init(void)
{
/**********LCD12232串口口线设置************/
lcd_port|=BIT(lcd_cs)|BIT(lcd_sclk)|BIT(lcd_std);
lcd_ddr|=BIT(lcd_cs)|BIT(lcd_sclk)|BIT(lcd_std);
lcd_write(command,0x30); //30---基本指令动作
//lcd_write(command,0x04); //点设定:显示字符/光标从左到右移位,DDRAM地址加1
lcd_write(command,0x01); //清屏,地址指针指向00H
lcd_write(command,0x06); //光标的移动方向
lcd_write(command,0x0c); //开显示,关游标
delay_1ms(); //液晶初始化后延时
}
//LCD全屏显示字符
void lcd_display(unsigned char chn[30])
{
unsigned char i;
lcd_write(command,0x30);
lcd_write(command,x1);
for (i=0;i<15;i++)
lcd_write(data,chn[i]);
lcd_write(command,x2);
for (i=0;i<15;i++)
lcd_write(data,chn[15+i]);
}
//LCD第一行显示字符
void line1_display(unsigned char chn[15])
{
unsigned char i;
lcd_write(command,0x30);
lcd_write(command,x1);
for (i=0;i<15;i++)
lcd_write(data,chn[i]);
}
//LCD第二行显示字符
void line2_display(unsigned char chn[15])
{
unsigned char i;
lcd_write(command,0x30);
lcd_write(command,x2);
for (i=0;i<15;i++)
lcd_write(data,chn[i]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -