找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2222|回复: 2
打印 上一主题 下一主题
收起左侧

Lcd1602液晶显示程序

[复制链接]
跳转到指定楼层
楼主
ID:973406 发表于 2021-10-28 18:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg51.h>
#include<string.h>
#define LCD1602_DB P2

sbit LCD1602_RS = P3^5;
sbit LCD1602_RW = P3^6;
sbit LCD1602_E = P3^7;
void InitLcd1602() ;
void LcdWaitReady() ;
void LcdWriteCmd(unsigned char cmd) ;
void LcdwriteDat(unsigned char dat) ;
void LcdSetCursor(unsigned char x,unsigned char y) ;
void LcdShowStr(unsigned char x,unsigned char y,unsigned char *str) ;

void main()
{
    unsigned char str[]="My NO:19031105";
        //init_uart();初始化串口
        InitLcd1602();
        LcdShowStr(0,0,str);
        LcdShowStr(0,1,"Welcome to JYPC");
}

void LcdWaitReady()
{
        unsigned char sta;
    LCD1602_DB = 0xFF;
        LCD1602_RS = 0;
        LCD1602_RW = 1;
        do        
        {
         LCD1602_E = 1;
         sta = LCD1602_DB;
         LCD1602_E = 0;
        }
        while(sta & 0x80);
}

void LcdWriteCmd(unsigned char cmd)
{
        LcdWaitReady();
        LCD1602_RS = 0;
        LCD1602_RW = 0;
        LCD1602_DB = cmd;
        LCD1602_E = 1;
        LCD1602_E = 0;
}

void LcdWriteDat(unsigned char dat)
{
        LcdWaitReady();
        LCD1602_RS = 1;
        LCD1602_RW = 0;
        LCD1602_DB = dat;
        LCD1602_E = 1;
        LCD1602_E = 0;
}

void LcdSetCursor(unsigned char x, unsigned char y)
{
        unsigned char addr;
        if(y == 0)
                addr = 0x00 + x;
        else
                addr = 0x40 + x;
        LcdWriteCmd(addr | 0x80);
}

void LcdShowStr(unsigned char x,unsigned char y,unsigned char *str)
{
        LcdSetCursor(x,y);
        while(*str != '\0')
        {
         LcdWriteDat(*str++);   
        }
}

void InitLcd1602()
{
        LcdWriteCmd(0x38);
        LcdWriteCmd(0x0C);//开显示,不显示光标,且不闪烁
        LcdWriteCmd(0x06);//每次写入数据后地址指针加1
        LcdWriteCmd(0x01);//清屏
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:928284 发表于 2021-11-30 15:52 | 只看该作者
和教程上的程序一样的,缺水了文字说明。理解意义不大。
回复

使用道具 举报

板凳
ID:719082 发表于 2022-2-4 21:33 | 只看该作者
我用LCD1602一直呈现一个现象就是运行一段时间之后,屏幕出现乱码,用了您这个程序测试之后,好了,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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