找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

LCD1602自定义汉字与动态显示的应用

查看数: 4800 | 评论数: 7 | 收藏 5
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-12-21 03:52

正文摘要:

回复

ID:360535 发表于 2019-3-23 10:54
谢谢分享
ID:442524 发表于 2019-3-19 10:13
1602显示汉字比较勉强啊
ID:472268 发表于 2019-2-13 16:43
谢谢分享!实力超强!
ID:473186 发表于 2019-1-28 16:53
很好很好,借用一下咯!呵呵!

评分

参与人数 2黑币 +22 收起 理由
找人PK + 12 很给力!
sheng7533967 + 10

查看全部评分

ID:21069 发表于 2019-1-13 04:38
w358435135 发表于 2018-12-25 18:27
文件不全啊
user_def()函数没啊

下面是重新修整过的代码,此例的目地是让他家了解一下LCD1602动态显示


#include<reg51.h>               
#define uchar        unsigned char
#define uint    unsigned int

sbit RS = P2^5;
sbit RW = P2^6;
sbit EN = P2^7;

uchar Data2[15]="jinsheng7533967";

//---------自定义的字符数据------
uchar code CGCODE[]={
0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02,//显示年0x00
0x0F,0x09,0x0F,0x09,0x0F,0x09,0x13,0x00,//显示月0x01
0x0F,0x09,0x09,0x0f,0x09,0x09,0x0f,0x00 //显示日0x02
};

//-----------函数的声明------------------
void DelayMS(uint dly);
void User_def(void);

//----------液晶模块的声明---------------
bit BUSY(void);
void Write_cmd(uchar cmd);
void Write_dat(uchar dat);
void LCD_Init(void);


void main(void)
{
        uchar i, k;
        LCD_Init();
        User_def();                                            //将自定义的字符写入CGRAM
        while(1)
        {
                Write_cmd(0x83);
                Write_dat(0x32);                        //      2
                Write_dat(0x30);                        //      0
                Write_dat(0x31);                        //      1
                Write_dat(0x38);                        //      8
                Write_dat(0x00);                        //显示  年               
                Write_dat(0x31);                        //      1
                Write_dat(0x32);                        //      2
                Write_dat(0x01);                        //显示  月
                Write_dat(0x31);               
                Write_dat(0x31);                       
                Write_dat(0x02);                       
                Write_cmd(0xc3);
                Write_dat(0x02);
                Write_dat(0x31);                       

                Write_cmd(0xc1);
                for(i=0;i<15;i++)
                        Write_dat(Data2);
                Write_cmd(0x8b);       
                Write_dat(0x30+k/10);       
                Write_dat(0x31+k%10);       
                DelayMS(200);        DelayMS(200);        DelayMS(200);       
                if(k>30)k=0;
        else        k++;                                                                       
        }       
}


void DelayMS(uint dly)
{
        uint x,y;
        for(x=dly;x>0;x--)
                for(y=124;y>0;y--);
}


bit BUSY(void)
{
        bit Bit;
        RS = 0;
        RW = 1;
        EN = 1;
        DelayMS(1);
        Bit = (bit)(P0 & 0x80);        //最高位为忙信号位       
        EN = 0;
        return Bit;                               
}


void Write_cmd(uchar cmd)
{
        while(BUSY());                        //测忙
        RS = 0;
        RW = 0;
        EN = 0;       
        P0 = cmd;
        EN = 1;
        DelayMS(1);
        EN = 0;                       
}

void Write_dat(uchar dat)
{
        while(BUSY());                        //测忙
        RS = 1;
        RW = 0;
        EN = 0;       
        P0 = dat;
        EN = 1;
        DelayMS(1);
        EN = 0;                       
}


void LCD_Init(void)
{
        Write_cmd(0x38);                        //功能设置
        DelayMS(1);
        Write_cmd(0x0c);                        //显示开关控制
        DelayMS(1);
        Write_cmd(0x06);                        //输入方式设置
        DelayMS(1);
        Write_cmd(0x01);                        //清除LCD的显示内容
        DelayMS(1);
}

void User_def(void)
{       
        uchar i;
        Write_cmd(0x40);                        //设置CGRAM地址
        for(i=0;i<24;i++)
        {
                Write_dat(CGCODE);
        }                               
}


评分

参与人数 5黑币 +119 收起 理由
yoxi + 4
刀刀见红 + 35
areyouok + 35 很给力!
shuisheng + 35 赞一个!
zhengchong60 + 10 很给力!

查看全部评分

ID:422055 发表于 2018-12-25 18:27
文件不全啊
user_def()函数没啊
ID:380710 发表于 2018-12-25 15:29
文件打不开????

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表