900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 51单片机用c语言在液晶1602上显示汉字 51单片机LCD1602显示汉字(中文)源程序...

51单片机用c语言在液晶1602上显示汉字 51单片机LCD1602显示汉字(中文)源程序...

时间:2020-07-22 09:41:50

相关推荐

51单片机用c语言在液晶1602上显示汉字 51单片机LCD1602显示汉字(中文)源程序...

#include"stc15f2k60s2.h"

#define uchar unsigned char

#define uint unsigned int

///数据端口接 P0

sbit lcdrs=P2^7;//端口定义

sbit lcdrw=P2^6;//端口定义

sbit lcden=P2^5;//端口定义

uchar num;

uchar code table[]={

0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,//一0x00

0x00,0x04,0x1f,0x15,0x15,0x1f,0x04,0x04,//中0x01

0x1F,0x04,0x04,0x06,0x05,0x04,0x04,0x04,//下0x02

0x1F,0x04,0x1F,0x15,0x1F,0x15,0x1F,0x15,//雨0x03

0x00,0x00,0x00,0x00,0x1e,0x12,0x12,0x12,//"叶1653"左上半部分代码 0x04

0x04,0x04,0x04,0x04,0x04,0x04,0x1f,0x04,//"叶"右上半部分代码 0x05

0x12,0x12,0x12,0x1e,0x00,0x00,0x00,0x00,//"叶"左下半部分代码 0x06

0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,//"叶"右下半部分代码 0x07

//

};

uchar code table1[]={0x00,0x01,0x10,0x10,0x04,0x05,0x10,0x10,0x00,0x01,0x02,0x03,};//自定义字符数据地址

uchar code table2[]={0x02,0x03,0x10,0x10,0x06,0x07,};

/******************************

ms延时函数

******************************/

void delay(uchar z)///延时函数

{

uint x,y;

for(x=z;x>0;x--)

for(y=122;y>0;y--);

}

/******************************

lcd1602写命令函数

******************************/

void write_cmd(uchar cmd)

{

P0=cmd; //写了命令

lcdrs=0;

lcdrw=0; //选择指令寄存器

lcden=1;

delay(5);

lcden=0; //使能拉低

lcden=1;

}

/******************************

lcd1602写数据函数

******************************/

void write_date(uchar date)

{

lcdrs=1;

lcdrw=0; //选择数据寄存器

lcden=1;

P0=date; //写了命令

delay(5);

lcden=0; //使能拉低

lcden=1;

}

/******************************

lcd1602初始化

******************************/

void init_lcd1602()

{

write_cmd(0x01); //清屏

write_cmd(0x38); //功能设置

write_cmd(0x0c); //显示设置

write_cmd(0x06); //输入方式从左到右

delay(1);

}

/******************************

主函数

******************************/

void main()

{

uchar i;

init_lcd1602();//1602显示初始化

delay(1);

while(1)

{

write_cmd(0x40); //开始写入你要显示的自定义字符、汉字代码

for(i=0;i<64;i++)

{

write_date(table[i]);

delay(5);

}

write_cmd(0x80); //从第一行第一列开始显示

for(i=0;i<12;i++) //显示自定义字符

{

write_date(table1[i]);

delay(5);

}

write_cmd(0xc0); //显示第二行

for(i=0;i<6;i++)

{

write_date(table2[i]);

delay(5);

}

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。