7.1-7.2 液晶1602操作实例

//用C语言编程,实现在1602液晶的第一行显示“I LOVE MCU”,第二行显示“WWW.TXMCU.COM”.
#include
#define uchar unsigned char
#define uint unsigned int
uchar code table[] = “I LOVE MCU!”;        //这里面共计11个数值,后面的for语句里面一个一个地显示出来
uchar code table1[] = “WWW.TXMCU.COM”;     //共计13个数值
sbit lcden = P3 ^ 4;      //液晶使能端en,en=0,en=1,en=0   这三个组合拳为一个使能脉冲,数据被送进去
sbit lcdrs = P3 ^ 5;      //液晶数据or命令选择端,rs=1,写的是数据;rs=0,写的是命令commond,控制程序。
sbit dula = P2 ^ 6;
sbit wela = P2 ^ 7;
uchar num;
void delay(uint z)
{
    uint x, y;
    for (x = z; x > 0; x–)
        for (y = 110; y > 0; y–);
}
void write_com(uchar com)
{
    lcdrs = 0;     //选择写命令模式
    P0 = com;      //将要写的命令字送到数据总线上
    delay(5);      //稍作延迟待数据稳定
    lcden = 1;     //使能端给一个高脉冲,因为初始化函数中已经将lcden置0
    delay(5);       //再延时会
    lcden = 0;        //将使能端置0以完成高脉冲
}
void write_data(uchar date)
{
    lcdrs = 1;
    P0 = date;
    delay(5);
    lcden = 1;
    delay(5);
    lcden = 0;
}
void init()
{
    dula = 0;
    wela = 0;
    lcden = 0;
    write_com(0x38);    //设置16×2显示,5×7点阵,8位 数据接口
    write_com(0x0c);    //设置开显示,不显示光标
    write_com(0x06);    //写一个字符后,地址指针加1
    write_com(0x01);    //显示清0,数据指针清0
}

void main()
{
    init();                        //|||  设置初始化函数init,设置1602显示,设置光标,指针工作模式
    write_com(0x80);    //|||   写命令发送位置,0x80为第一个位置;  指令码是“80H+地址码”,规定位置形式。
    for (num = 0; num     {
        write_data(table[num]); //table 0 = I,把I 写入P0=I,且脉冲进去,I 在里面显示了。大前提“写一个字符后,地址指针加1”,table=1,table=2,把所有写入。
        delay(5);
    }
    write_com(0x80 + 0x40);
    for (num = 0; num     {
        write_data(table1[num]);
        delay(5);
    }
    while (1);
}
 

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年11月9日
下一篇 2021年11月9日

相关推荐