打印
[应用方案]

51单片机LCD1602显示汉字

[复制链接]
670|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hudi008|  楼主 | 2023-11-26 20:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#define uchar unsigned char
#define uint unsigned int

///////数据端口接 P0

sbit lcdrs=P2^7;//端口定义
sbit lcdrw=P2^6;//端口定义
sbit lcden=P2^5;//端口定义

uchar num;

uchar code table[]={





                        0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,//一  0x00
                        0x00,0x04,0x1f,0x15,0x15,0x1f,0x04,0x04,//中  0x01
                        0x1F,0x04,0x04,0x06,0x05,0x04,0x04,0x04,//下  0x02
                        0x1F,0x04,0x1F,0x15,0x1F,0x15,0x1F,0x15,//雨  0x03


   0x00,0x00,0x00,0x00,0x1e,0x12,0x12,0x12,//"叶1653"左上半部分代码 0x04
   0x04,0x04,0x04,0x04,0x04,0x04,0x1f,0x04,//"叶"右上半部分代码 0x05
   0x12,0x12,0x12,0x1e,0x00,0x00,0x00,0x00,//"叶"左下半部分代码 0x06
   0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,//"叶"右下半部分代码 0x07  
         
//         


      
      
};

uchar code table1[]={0x00,0x01,0x10,0x10,0x04,0x05,0x10,0x10,0x00,0x01,0x02,0x03,};//自定义字符数据地址



uchar code table2[]={0x02,0x03,0x10,0x10,0x06,0x07,};

/******************************

       ms延时函数

******************************/



void delay(uchar z)///延时函数


{


uint x,y;


for(x=z;x>0;x--)


for(y=122;y>0;y--);



}

/******************************

   lcd1602写命令函数

******************************/


void write_cmd(uchar cmd)


{

    P0=cmd; //写了命令

    lcdrs=0;


    lcdrw=0; //选择指令寄存器

  
    lcden=1;




    delay(5);
   

lcden=0; //使能拉低
   

lcden=1;


}



/******************************

    lcd1602写数据函数

******************************/


void write_date(uchar date)


{


       lcdrs=1;


       lcdrw=0; //选择数据寄存器


       lcden=1;


       P0=date; //写了命令


       delay(5);


       lcden=0; //使能拉低


       lcden=1;


}


/******************************

     lcd1602初始化

******************************/



void init_lcd1602()


{


     write_cmd(0x01); //清屏
   

write_cmd(0x38); //功能设置


     write_cmd(0x0c); //显示设置


     write_cmd(0x06); //输入方式从左到右


       delay(1);




}



/******************************

        主函数

******************************/


void main()


{


                        uchar i;
                        init_lcd1602();//1602显示初始化
                        delay(1);
                        while(1)

  {

write_cmd(0x40); //开始写入你要显示的自定义字符、汉字代码
   for(i=0;i<64;i++)
  {

write_date(table[i]);
  delay(5);

  }


  write_cmd(0x80); //从第一行第一列开始显示



for(i=0;i<12;i++) //显示自定义字符

{
  write_date(table1[i]);
delay(5);

}
write_cmd(0xc0); //显示第二行

   for(i=0;i<6;i++)
{

write_date(table2[i]);

delay(5);

      }  

}

}


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

240

主题

9418

帖子

11

粉丝