找回密码
 立即注册

QQ登录

只需一步,快速开始

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

LCD1602A显示图片功能

[复制链接]
跳转到指定楼层
楼主
最近学习51单片机学会LCD1602A显示图片功能,这里分享给大家(上传显示效果和使用说明)

#include"reg52.h"
#define uchar unsigned char
#define uint unsigned int

sbit lcdrs=P1^0;
sbit lcdrw=P1^1;
sbit lcden=P2^5;

uchar code table[]={
                         0x03,0x07,0x0f,0x1f,0x1f,0x1f,0x1f,0x1f,
                         0x18,0x1E,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
                         0x07,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
                         0x10,0x18,0x1c,0x1E,0x1E,0x1E,0x1E,0x1E,
                         0x0f,0x07,0x03,0x01,0x00,0x00,0x00,0x00,
                         0x1f,0x1f,0x1f,0x1f,0x1f,0x0f,0x07,0x01,
                         0x1f,0x1f,0x1f,0x1f,0x1f,0x1c,0x18,0x00,
                         0x1c,0x18,0x10,0x00,0x00,0x00,0x00,0x00
                                        };         //心形图片       
uchar code table1[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};  //自定义字符数据地址

void delay(uchar z)
{
       uint x,y;
       for(x=z;x>0;x--)
              for(y=122;y>0;y--);      
}
void write_cmd(uchar cmd)        //写命令
{
       lcdrs=0;
       lcdrw=0;   
       lcden=1;
       P0=cmd;     
       delay(5);
       lcden=0;   
       lcden=1;
}
void write_date(uchar date)         //写入数据
{
       lcdrs=1;
       lcdrw=0;   
       lcden=1;
       P0=date;   
       delay(5);
       lcden=0;   
       lcden=1;
}
void init_lcd1602()          //1602初始化
{
       write_cmd(0x01);  
       write_cmd(0x38);  
       write_cmd(0x0c);  
       write_cmd(0x06);  
       delay(1);
}
void main()
{
       uchar i;
       init_lcd1602();
       delay(1);
              write_cmd(0x40);    //开始写入你要显示的自定义字符、汉字代码
              for(i=0;i<64;i++)
              {
                     write_date(table[i]);
                     delay(5);
              }
              write_cmd(0x80);   
              for(i=0;i<4;i++)     //写入心形前一半数据
              {
                     write_date(table1[i]);  
                     delay(5);
              }
                                       write_cmd(0xc0);   
              for(i=4;i<8;i++)                      //写入心形后一半数据
              {
                     write_date(table1[i]);  
                     delay(5);
              }
                                      
       while(1);
}

微信图片_20180723213232.jpg (84.13 KB, 下载次数: 80)

微信图片_20180723213232.jpg

参考资料.doc

43.5 KB, 下载次数: 29, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:68189 发表于 2019-3-13 10:23 | 只看该作者
感谢分享,谢谢楼主了.
回复

使用道具 举报

板凳
ID:466164 发表于 2019-3-13 22:03 | 只看该作者
有创意,买了12864,我的那个很久没用了,顶一下。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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