单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

Proteus仿真LCD12864自建字库,字符,图片的使用

  [复制链接]
跳转到指定楼层
楼主


//-------------Proteus自建字库,字符,图片的使用------------------------//
#include <reg51.h>
#define LCDoff            0x3e
#define LCDon            0x3f
#define pageadd         0xb8  //ye
#define lieadd              0x40  //lie
#define hangadd         0xC0  //hang
#define uchar           unsigned char
#define uint              unsigned int
sbit RS=P3^5;
sbit RW=P3^6;
sbit EN=P3^4;
sbit cs1=P3^1;
sbit cs2=P3^0;   
void delay(uint t);
void busy();
void wricmd(uchar cmd);
void wridat(uchar dat);
void LCD12864init();
void L_disp(uchar page,  sl,  uchar code *tp) ;
void R_disp(uchar page,  sl,  uchar code *tp) ;
void tpdisp(uchar page,   sl,  uchar code *tp);
void qiping();
void pianxuan(uchar pianxian);       
char code tupian1[]; //haixin
uchar code Hz_dian[];
uchar code Hz_ya[];
uchar code Hz_liu[];
uchar code Hz_ji[];
uchar code Hz_shu[];
uchar code Hz_wen[];
uchar code Hz_du[];
uchar code SHU[];
void windph(uchar ye, sl, uchar *hzk);
void hzdisp(uchar px, uchar  y, uchar l, uchar*wc );
void jihe(uchar ye, sl, uchar n);
void strsdisp(uchar px, uchar  y, uchar l, uchar n )        
{
        pianxuan(px);
        jihe( y, l, n );       
}

void main()
{
    uchar t, g;
        LCD12864init();
        qiping();
           tpdisp(0, 0, tupian1);
           hzdisp(2, 0, 0,  Hz_dian );
           hzdisp(2, 0, 16, Hz_ya );
           hzdisp(2, 2, 0,  Hz_dian );
           hzdisp(2, 2, 16, Hz_liu );
           hzdisp(2, 4, 0,  Hz_ji );
           hzdisp(2, 4, 16, Hz_shu );
           hzdisp(2, 6, 0,  Hz_wen );
           hzdisp(2, 6, 16,  Hz_du );
           strsdisp(2, 0, 30, 10 ) ;
           strsdisp(2, 2, 30, 10 ) ;
           strsdisp(2, 4, 30, 10 ) ;
           strsdisp(2, 6, 30, 10 ) ;
           strsdisp(2, 0, 38, 5 ) ;
           strsdisp(2, 0, 48, 11 ) ;
           strsdisp(2, 2, 38, 3 ) ;
           strsdisp(2, 2, 48, 12 ) ;
           strsdisp(2, 6, 38, 2 ) ;
           strsdisp(2, 6, 46, 5 ) ;
           strsdisp(2, 6, 56, 13 ) ;
           while(1)
           {
                   strsdisp(2, 4, 38, g ) ;
                   strsdisp(2, 4, 46, t ) ;
                   if(t==9)t=0,g++;
                   else t++;
                   if(g==9)g=0;
                   delay(5000);
           }
}

void delay(uint t)
{
        uint i,j;
        for(i=0;i<t;i++);
        for(j=0;j<50000;j++);
}

void busy()//LCD是否忙               
{
        uchar dat,buysbit;//状态信息(判断是否忙)
        RS=0;
        RW=1;
        do
        {
                buysbit=0x00;
                EN=1;
                dat=buysbit;
                EN=0;
                dat=0x80 & dat; //仅当第7位为0时才可操作(判别busy信号)
    }
    while(!(dat==0x00));
}

void wricmd(uchar cmd)//写命令
{
    busy();//检测LCD是否忙
        RS=0;
        RW=0;
        P0=cmd;               
        EN=1;
        EN=0;
}

void wridat(uchar dat)        //写数据到LCD程序
{
    busy();//检测LCD是否忙
        RS=1;
        RW=0;
        P0=dat;
        EN=1;
        EN=0;
}

void LCD12864init()//LCD初始化程序
{       
        cs1=1;//刚开始关闭两屏
        cs2=1;
        wricmd(LCDoff);         //写初始化命令
        wricmd(pageadd+0);
        wricmd(hangadd+0);
        wricmd(lieadd+0);
        wricmd(LCDon);
}
void qiping()        //清屏
{
        uchar j,k;
        cs1=0; //左、右屏均开显示
        cs2=0;
        wricmd(pageadd+0);
        wricmd(lieadd+0);
        for(k=0;k<8;k++)            //控制页数0-7,共8页
        {
                wricmd(pageadd+k);     //每页每页进行写
                for(j=0;j<64;j++)      //每页最多可写32个中文文字或64个ASCII字符
                {
                        wricmd(lieadd+j);
                        wridat(0x00);     //控制列数0-63,共64列,写点内容,列地址自动加1
                }
        }
}
void pianxuan(uchar pianxian)
{
        if(pianxian==1)
        {
                cs1=0;          //开左屏
                cs2=1;
        }
        if(pianxian==2)
        {
                cs1=1;         //开右屏
                cs2=0;
        }
        if(pianxian==3)
        {
                cs1=0;
                cs2=0;
        }
}


void hzdisp(uchar px, uchar  y, uchar l, uchar*wc )        
{
        pianxuan(px);
        windph( y,l, wc );       
}

char code tupian1[]={ //haixin
               0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,
                0x00,0x20,0x10,0x00,0x08,0x00,0x00,0x04,0x00,0x02,0x00,0x00,0x01,0x01,0x01,0x01,
                0x00,0x01,0x01,0x01,0x00,0x00,0x02,0x02,0x00,0x00,0x04,0x00,0x00,0x08,0x00,0x10,
                0x00,0x00,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x10,0x04,0x02,0x01,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x40,0x40,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x40,0x80,0x80,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x10,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x35,0x70,0xF0,0xF0,0xF0,0xF8,0xFF,0x7F,0x3E,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x7D,0xF0,0xF0,0xF0,0xF8,0xFF,0xFF,0x7E,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xF0,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
                0x0E,0x0E,0x0E,0x0E,0x0E,0x04,0x00,0x00,0x01,0x01,0x00,0x00,0x18,0x20,0x60,0x40,
                0x40,0x40,0x40,0x40,0x20,0x38,0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x04,0x0E,0x0E,
                0x0E,0x0E,0x0E,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x84,0x50,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x10,0x06,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0xA0,0x04,0x00,0x02,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x80,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x04,0x04,0x04,0x04,0x04,0x08,0x10,
                0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x02,0x04,0x08,0x08,0x08,0x08,0x08,0x00,0x08,0x88,0x24,0x14,0x0C,0x02,0x03,
                0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x10,0x80,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x01,0x0A,0x14,0x28,0x40,0x90,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x08,0x00,0x04,
                0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x04,0x08,0x00,0x10,0x00,
                0x10,0x10,0x10,0x08,0x08,0x04,0x02,0x00,0x00,0x00,0x0F,0x10,0x20,0x00,0x40,0x00,
                0x40,0x40,0x00,0x00,0x20,0x10,0x0D,0x00,0x02,0x04,0x08,0x18,0x10,0x10,0x10,0x00,
                0x10,0x10,0x10,0x08,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,               
};

uchar code Hz_dian[]={//电
        0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xF8,0x00,0x00,0x00,
                0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0x3F,0x44,0x44,0x44,0x44,0x4F,0x40,0x70,0x00,
};

uchar code Hz_ya[]={//压
        0x00,0x00,0xFE,0x02,0x42,0x42,0x42,0x42,0xFA,0x42,0x42,0x42,0x62,0x42,0x02,0x00,
                0x20,0x18,0x27,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x21,0x2E,0x24,0x20,0x20,0x00,
};

uchar code Hz_liu[]={//流
        0x10,0x60,0x01,0x86,0x60,0x04,0x44,0x64,0x55,0x4E,0x44,0x64,0xC4,0x04,0x04,0x00,
                0x04,0x04,0xFC,0x03,0x40,0x30,0x0F,0x00,0x00,0x7F,0x00,0x3F,0x40,0x40,0x70,0x00,
};

uchar code Hz_ji[]={//计
        0x20,0x21,0x2E,0xE4,0x00,0x00,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0x00,
                0x00,0x00,0x00,0x7F,0x20,0x10,0x08,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,
};

uchar code Hz_shu[]={//数
        0x10,0x92,0x54,0x38,0xFF,0x38,0x54,0x52,0x80,0xF0,0x1F,0x12,0x10,0xF0,0x10,0x00,
                0x42,0x42,0x2A,0x2E,0x13,0x1A,0x26,0x02,0x40,0x20,0x13,0x0C,0x33,0x60,0x20,0x00,
};
uchar code Hz_wen[]={//温
        0x10,0x21,0x86,0x70,0x00,0x7E,0x4A,0x4A,0x4A,0x4A,0x4A,0x7E,0x00,0x00,0x00,0x00,
                0x02,0xFE,0x01,0x40,0x7F,0x41,0x41,0x7F,0x41,0x41,0x7F,0x41,0x41,0x7F,0x40,0x00,
};

uchar code Hz_du[]={//度
        0x00,0x00,0xFC,0x04,0x24,0x24,0xFC,0xA5,0xA6,0xA4,0xFC,0x24,0x24,0x24,0x04,0x00,
                0x80,0x60,0x1F,0x80,0x80,0x42,0x46,0x2A,0x12,0x12,0x2A,0x26,0x42,0xC0,0x40,0x00,
};


LCD12864仿真三位一体.rar (19.01 KB, 下载次数: 21)



评分

参与人数 4黑币 +82 收起 理由
areyouok + 12 共享资料的黑币奖励!
刀刀见红 + 10 赞一个!
#include51.h + 10 赞一个!
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
shuisheng60 发表于 2019-2-7 01:26 | 只看该作者
这个不错,收下了

评分

参与人数 8黑币 +240 收起 理由
站着说话不腰疼 + 15
sheng7533967 + 15
yoxi + 35
Sawardeakar + 35
areyouok + 35
刀刀见红 + 35
shuisheng + 35
Trump1438 + 35

查看全部评分

回复

使用道具 举报

板凳
Trump1438 发表于 2019-2-7 21:15 | 只看该作者
很不错,小星星也不错

评分

参与人数 1黑币 +10 收起 理由
春风十里吹死你 + 10

查看全部评分

回复

使用道具 举报

地板
还有谁? 发表于 2019-2-10 21:05 | 只看该作者
小星星好可爱!

评分

参与人数 1黑币 +10 收起 理由
就你?呸! + 10

查看全部评分

回复

使用道具 举报

5#
就你?呸! 发表于 2019-2-11 13:30 | 只看该作者
很不错,收下了咯!
回复

使用道具 举报

6#
春风十里吹死你 发表于 2019-2-19 19:18 | 只看该作者
好可爱的星星!

评分

参与人数 5黑币 +60 收起 理由
areyouok + 10
Trump1438 + 10
sheng7533967 + 15
zhengchong60 + 15
shuisheng60 + 10

查看全部评分

回复

使用道具 举报

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

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51黑电子论坛单片机.

Powered by 单片机教程网

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