登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] LCD液晶屏显示

[复制链接]
发表于 2019-1-22 23:55:17 | 显示全部楼层 |阅读模式
学习笔记
学习科目: 单片机
学习安排: 利用《手把手教你51单片机》和csdn论坛学会使用LCD1602显示字符
开始时间: 2019-01-22
结束时间: 2019-01-22
此次编程参考了《[color=rgba(0, 0, 0, 0.75)]LCD1602芯片的使用——简单易懂》文章的代码,并在此基础上加上了判断LCD1602“忙”状态的代码,解决了第二行无法显示的结果,这个的原因是由于开发板单片机的速度比控制1602的单片机速度快,导致有些字符1602还未来得及读取,造成了没有显示第二行的现象。



#include <reg51.h>
#include <string.h>
sbit RS=P2^0;
sbit RW=P2^1;
sbit EN=P1^2;
unsigned char info_1[]=" ou xue bing";  // LCD1602第一行字符
unsigned char info_2[]="   wantin";     // LCD1602第二行字符
/* 延时 */
void delay(int n)
{
    int i,j;
    for(i=0;i<n;i++)
    {
        for(j=0;j<200;j++);
    }
}
void ready()  //判断LCD1602是否处于“忙“的状态
{
unsigned int sta;
P0 = 0XFF;
RS = 0;
RW = 1;
do
{
EN=1;
sta=P0;  //读取DB的状态
  EN=0;
}while(sta&0x80); //0x80为10000000;用按位与判断最后一位是否为0,0的时候跳出循环
}
/* LCD1602 */
void LCD1602_WriteCMD(unsigned char cmd)  //写入命令
{
ready();   //    判断LCD1602是否为“忙”状态
    P0=cmd;    //    将命令送入LCD1602
    RS=0;      //    命令选择端
    RW=0;      //    写选择端
    EN=1;      //    LCD1602使能信号
    EN=0;   
    delay(10); //   延时,使命令有充足时间读入
}
/* LCD1602写入一字节的数据,Data为待写入的数据*/
void LCD1602_WriteDATA(unsigned char Data)
{
ready();  //   判断LCD1602是否为“忙”状态
    P0=Data; //    将数据送入LCD1602
    RS=1;   //     数据选择端
    RW=0;  //      写选择端
    EN=1; //       使能信号   
    EN=0;   
    delay(10);//   延时,使数据有充足时间读入
}
/* 初始化LCD1602*/
void LCD1602_Initi()
{
    LCD1602_WriteCMD(0x38); //  16*2显示,5*7点阵,8位数据接口
    LCD1602_WriteCMD(0x0F); //  显示器打开,光标打开,如果是0xC0,光标关闭
    LCD1602_WriteCMD(0x06); //  文字不动,地址加一(这里的地址加一不是很理解,请路过的大神解释一下,感谢)
    LCD1602_WriteCMD(0x01); //  清屏
}

void main()
{
    int i;
    LCD1602_Initi();
    LCD1602_WriteCMD(0x80); //  0x80为第一行第一格的地址
    for(i=0;i<strlen(info_1);i++)
    {
        LCD1602_WriteDATA(info_1); //  输入第一行的字符
    }
    LCD1602_WriteCMD(0xc3); //  0xc3为第二行第四个的地址,0xc0为第二行第一格的地址
    for(i=0;i<strlen(info_2);i++)
    {
        LCD1602_WriteDATA(info_2);  //  输入第二行的字符
    }
    while(1);
}

好懒~~不想说~~~
发表于 2019-1-24 16:33:54 | 显示全部楼层
加上图片就很不错了
好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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