标题: LCD1602字符液晶显示实验代码 [打印本页]

作者: 左挎子    时间: 2019-6-16 20:48
标题: LCD1602字符液晶显示实验代码
/*************************************************************/
/********************* 04 字符液晶显示实验 *******************/
/*************************************************************/
/************************* 作者:XHCH ************************/
/*************************************************************/
/*************************************************************/

#include<reg52.h>                //添加库文件
#define uint unsigned int
#define uchar unsigned char

sbit E = P3^2;                        //定义管脚
sbit RW = P3^1;
sbit RS = P3^0;

void mDelay(uint Delay)        //延时
{        uint i;
        for(;Delay > 0;Delay--)
                for(i = 0;i < 110;i++);
}


void LCD1602Write_data(uchar i)        //LCD1602写数据
{
        //E=0;
        RS = 1;//数据
        RW = 0;//写入
        P0 = i;
        E = 1;//允许
        mDelay(11);
        E = 0;


}
void LCD1602Write_com(uchar i)        //LCD1602写指令
{

        RS = 0; //指令
        RW = 0; //写入
        P0 = i;
        E = 1;  //允许写入
    mDelay(11);
        E = 0;         
}
void LCD1602Init()                 //LCD1602初始化
{
        RW = 0;
        RS = 0;
        LCD1602Write_com(0x01);
        LCD1602Write_com(0x38);
        LCD1602Write_com(0x0c);                //无光标
        LCD1602Write_com(0x06);        
}

void main()                                //主函数
{
        unsigned char Code1[] = "1602 LCD TEST OK";//Code1是要显示在字符液晶的第一行
        unsigned char Code2[] = "HELLO EVERYONE!!"; //Code2是要显示在字符液晶的第二行
         unsigned char m;
        RW = 0;
        LCD1602Init();
        while(1)
        {
                LCD1602Write_com(0x80+0x00);        //在第一行第一个显示Code1
                for(m = 0;m < 40;m++)                        
           {
                        LCD1602Write_data(Code1[m]);

                        mDelay(10);                        //延时
       }
        LCD1602Write_com(0x80+0x40);                //在第二行第一个显示Code2
                for(m = 0;m < 40;m++)                        
           {
                        
                        LCD1602Write_data(Code2[m]);        
                        mDelay(10);                        //延时
}               
    }
}






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1