📄 lcd1602.c
字号:
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define dat 1
#define com 0
#include <avr/io.h>
#define DP PORTB //模拟数居据总线
#define DR DDRB
#define PP PINB
#define e_s PORTA|=0x20
#define e_c PORTA&=~0x20
#define rw_s PORTA|=0x40
#define rw_c PORTA&=~0x40
#define rs_s PORTA|=0x80
#define rs_c PORTA&=~0x80
void delay(uint t) //1mS延时7.3728M
{ulong i;
while(t--)
{for(i=0;i<50000;i++)
;}
}
void busy(void) //检查BF信号
{DR=0x00; //设置为输入
do
{rs_c;rw_s;e_s;}
while((PP&0x80)!=0); //BUSY
e_c;
delay(3);
DR=0xff;
}
void w_lcd(uchar a,uchar dat_com) //向LCD写命令或数据,由dat_com决定
{busy();
if(dat_com==0)
rs_c;
else rs_s;
rw_c;
DP=a;
e_s;
e_c;
}
void ww(uchar word[16]) //写n个字符
{uchar i;
for(i=0;word[i]!='\0';i++)
w_lcd(word[i],dat);
}
void wn(uchar num) //写数字
{w_lcd(num+0x30,dat);
}
void go(uchar xxx,uchar yyy) //光标移到(xxxx,yyy)
{ uchar tmp;
if(yyy==0)
tmp=0x80+xxx;
else
tmp=0xc0+xxx;
w_lcd(tmp,com);
}
void ini(void) //初始化
{ delay(15);
w_lcd(0x38,com);
delay(5);
w_lcd(0x38,com);
delay(5);
w_lcd(0x38,com);
delay(10);
w_lcd(0x01,com); //显示清0
}
/*显视方式参数说明:
0:关显视
1:不显示光标,写一个字符光标加1,指针加1
2:显示光标,写一个字符光标加1,指针加1
3:不显示光标,写一个字符光标不变,指针加1,整屏显视左移
4:显示光标,写一个字符光标不变,指针加1,整屏显视左移
*/
void set(uchar way) //显视方式设置,其中way是方式参数
{if(way==0) //关显视
w_lcd(0x08,com);
else if(way==1) //不显视光标,光标、数据指针加1
w_lcd(0x0c,com),
w_lcd(0x06,com);
else if(way==2) //显视光标,光标交烁,光标、数据指针加1;
w_lcd(0x0f,com),
w_lcd(0x06,com);
else if(way==3) //不显视光标,光标不移动,屏幕左移
w_lcd(0x0c,com),
w_lcd(0x07,com);
else if(way==4) //显视光标,光标不移动,屏幕左移
w_lcd(0x0f,com),
w_lcd(0x07,com);
}
/*void ws(uchar str0[40],char str1[40]) //写字符串
{ uchar i;
ini(); //初始化
set(1); //设置显视方式
go(0,0);
for(i=0;str0[i]!='\0';i++)
w_lcd(str0[i],dat);
go(0,1);
for(i=0;str1[i]!='\0';i++)
w_lcd(str1[i],dat);
} //*/
void wsc(const char str0[40],const char str1[40]) //写字符串
{ uchar i;
ini(); //初始化
set(1); //设置显视方式
go(0,0);
for(i=0;str0[i]!='\0';i++)
w_lcd(str0[i],dat);
go(0,1);
for(i=0;str1[i]!='\0';i++)
w_lcd(str1[i],dat);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -