lcd1602 屏驱动(自定义字符)
2、代码
3、自定义字符
时序图
代码:
#include
#include
sbit RS = P2^4; //定义端口
sbit RW = P2^5;
sbit EN = P2^6;
void Delayus(unsigned char t) // us级别延时
{
while(--t);
}
void Delayms(unsigned char t)// ms级别延时
{
while(t--)
{
//大致延时1mS
Delayus(245);
Delayus(245);
}
}
bit m_1602() //判断1602是否忙
{
P0 = 0xFF; //准备读取
RS = 0;
RW = 1;
EN = 0;
_nop_();
EN = 1; //产生高电平
return (bit)(P0 & 0x80);
}
void x_1602(bit i,unsigned char j) //参数一是写(0、写指令 1、写数据),参数二是写入的8位数据
{
while(m_1602())
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
RS = i;
RW = 0;
EN = 1;
P0 = j;
_nop_();
EN = 0; //产生下降沿
}
void qp_1602() //清屏函数
{
x_1602(0,0x01); //第一个参数是:写入的类型(0、写指令 1、写数据),第一个参数是:写入的数据
Delayms(5);
}
评论