📄 1602.c
字号:
/*********************
函数名:1602显示
功能:
*********************/
#include <clock.h>
void didi()
{
beep=0;//分频器关
delay(100);
beep=1;//分频器开
delay(200);
beep=0;//分频器关
delay(100);
beep=1;//分频器开
}
void write_com(uchar com) //写命令
{
lcdrs=0;
lcden=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_date(uchar date) //写数据
{
lcdrs=1;
lcden=0;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_sfm(uchar add,uchar date) //写时分秒
{
uchar shi,ge;
shi=date/10;
ge=date%10;
write_com(0x80+0x40+add);
write_date(0x30+shi);
write_date(0x30+ge);
}
void write_dmy(uchar add1,uchar date) //写天、星期
{
uchar shi, ge;
shi=date/10;
ge=date%10;
write_com(0x80+add1);
write_date(0x30+shi);
write_date(0x30+ge);
}
void write_week(uchar add2,uchar date) //写星期
{
uchar ge;
ge=date%10;
write_com(0x80+add2);
// write_date(0x30+shi);
write_date(0x30+ge);
}
//写地址函数
void LCD_set_rc( uchar r, uchar c )
{
uchar address;
if (r == 1)
address = 0x80 + c;//地址从第一行开始写
else if(r == 2)
address = 0xc0 + c;//地址从第二行开始写
write_com( address );
}
//写一个字符
void LCD_write_char(uchar r, uchar c, uchar date)
{
LCD_set_rc( r, c ); //写地址
write_date( date ); //写数据
}
//向CGRAM写入字模数据
void write_CGRAM( uchar TAB[], uchar n ) //定义输入CGRAM的字模代码,字模的个数
{
uchar tmp;
uchar i;
uchar j;
uchar k;
tmp = 0x40; //设置CGRAM地址的格式字
k = 0;
for( j = 0; j < n; j++)
{
for(i = 0; i < 8; i++)
{
write_com(tmp + i); // 设置自定义字符的 CGRAM 地址
write_date(TAB[k]); // 向CGRAM写入自定义字符表的数据
k++;
}
tmp = tmp + 0x08;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -