标题:
lcd1602自定义字符显示lcd1602自定义字符显示
[打印本页]
作者:
卓zz
时间:
2019-10-21 18:56
标题:
lcd1602自定义字符显示lcd1602自定义字符显示
如题
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define DISOPEN 0x0c //光标开
#define GLINT 0x0b
#define DISMODE 0x06 //读字符后地址加一
#define CLEAR 0x01 //清屏
#define PORT P0 //数据口
uchar code table[]="I LOVE MCU!";
uchar code table1[]="WWWTXMCUCOM";
sbit lcdrs=P1^0; //数据/写命令选择端
sbit lcdrw=P1^1; //读写输入端,因为我们不从液晶读取任何数据,因此始终为低电平就行(RW=0为写)
sbit lcden=P1^2;
uchar num;
/********************** 定义一个字符需要8个字节,每个字节前三位不用**********/
uchar code hot[8]={0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00}; //℃
uchar code nian[8]={0x08,0x1F,0x12,0x0F,0x0A,0x1F,0x02,0x00};//字符年
uchar code yue[8]={0x0F,0x09,0x0F,0x09,0x0F,0x09,0x13,0x00}; //字符月
uchar code ri[8]={0x1F,0x11,0x11,0x1F,0x11,0x11,0x1F,0x00}; //字符日
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)
{
lcdrs=0;
lcdrw=0;
PORT=com;
delay(1);
lcden=1;
delay(1);
lcden=0;
}
void write_0ne_data(uchar date)
{
lcdrs=1;
lcdrw=0;
PORT=date;
delay(1); //tsp2>20ns
lcden=1;
delay(1); //tpw>150
lcden=0; //给E一个高脉冲将数据送进液晶控制器,完成写操作
}
void write_str_data(uint addr,uint length,uchar *pbuf)
{
uint i;
write_com(addr);
for(i=0;i<length;i++)
{
write_0ne_data(pbuf[i]);
}
}
void init()
{
lcden=0;
write_com(0x38);
write_com(DISOPEN);
write_com(DISMODE);
write_com(CLEAR);
}
void main()
{
init();
write_str_data(0x40,8,hot);
write_str_data(0x48,8,nian);
write_str_data(0x50,8,yue);
// write_str_data(0x58,8,ri);
write_com(0x80);
write_0ne_data(0);
delay(5);
write_0ne_data(1);
delay(5);
write_0ne_data(2);
delay(5);
write_0ne_data(3);
delay(5);
while(1);
}
复制代码
LCD1602-zcc.zip
2019-10-21 18:56 上传
点击文件名下载附件
下载积分: 黑币 -5
22.68 KB, 下载次数: 18, 下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1