📄 lcd.c
字号:
#include<avr/io.h>
#define uint unsigned int
#define uchar unsigned char
const uchar table[]=" Nothing is";
const uchar table1[]=" impossible!";
const uchar table2[]="Jiang kaibo";
void delay(uint ms)
{
uint a,b;
for(a=0;a<ms;a++)
for(b=0;b<1141;b++);//???
}
void write_com(uchar com)
{
PORTB&=0XFE; //命令操作
PORTB&=0XFD; //写操作
PORTA=com; //读入指令
PORTB|=0X04; // E变为高
delay(1); //E延时
PORTB&=~(1<<2); //E变为低
}
void write_dat(uchar dat)
{
PORTB|=0X01; //数据操作
PORTB&=0XFD;
PORTA=dat;
PORTB|=0X04;
delay(1);
PORTB&=~(1<<2);
}
void main()
{ uint i;
DDRA=0XFF;
DDRB|=0X07;
PORTB&=~(1<<2); //E 变为低
write_com(0X38); //显示模式设置
delay(5);
write_com(0X01); //清屏
delay(5);
write_com(0X0F); //光标显示闪烁 这句不加则重上电则不显示
delay(5);
write_com(0X06); //屏幕不移动
delay(5);
write_com(0X80+0); //从头开始显示
delay(5);
for(i=0;i<13;i++)
{
write_dat(table[i]); //写数据
delay(5);
}
write_com(0x80+0x40); //从第二行开始显示
delay(5);
for(i=0;i<14;i++)
{
write_dat(table1[i]);
delay(5);
}
write_com(0x80+0x10);//从第一行第二页开始显示
delay(5);
for(i=0;i<11;i++)
{
write_dat(table2[i]);
delay(5);
}
for(i=0;i<16;i++)
{
write_com(0x18); //左移
delay(10);
}
delay(75);
for(i=0;i<16;i++)
{
write_com(0x1C); //右移
}
delay(75);
write_com(0x08);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -