找回密码
 立即注册

QQ登录

只需一步,快速开始

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

LCD_12864帮我看看哪个地方错了点不亮 ,谢谢啦!

[复制链接]
跳转到指定楼层
楼主
ID:96507 发表于 2015-11-26 12:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
#define LCD_BUS P2
#define uchar unsigned char
void LCD12864_state();
void LCD12864_cmd(uchar cmd);
void LCD12864_writedata(uchar dat);
void delay(uchar k);
void LCD12864_pos(uchar x,uchar y);
sbit LCD_RS=P1^0;
sbit LCD_RW=P1^1;
sbit LCD_E=P1^2;
sbit PSB =P3^6;               
uchar display1[]={"hello"};
uchar display2[]={"nihao"} ;
uchar display3[]={"hello"};
uchar display4[]={"nihao"};
void main()
{
        uchar i;
        LCD12864_state();
        LCD12864_pos(0,0);
        while(display1[i]!='\0')
        {
                LCD12864_writedata(display1[i]);
                i++;
        }
         i=0;
                 LCD12864_pos(1,0);
        while(display2[i]!='\0')
        {
                LCD12864_writedata(display2[i]);
                i++;
        }
         i=0;
                 LCD12864_pos(2,0);
        while(display3[i]!='\0')
        {
                LCD12864_writedata(display3[i])        ;
                i++;
        }
         i=0;
                 LCD12864_pos(3,0);
        while(display4[i]!='\0')
        {
                LCD12864_writedata(display4[i]);
                i++;
        }
        while(1);
}
void LCD12864_state()
{
        PSB=1;
        LCD12864_cmd(0X30);
        delay(5);
        LCD12864_cmd(0X0c);
        delay(5);
        LCD12864_cmd(0X01);
        delay(5 );
}
void LCD12864_cmd(uchar cmd)
{
        LCD_RS=0;
        LCD_RW=0;
        LCD_E=0;
        LCD_BUS=cmd;
        delay(5);
        LCD_E=1;
        delay(5);
        LCD_E=0;

}
void LCD12864_writedata(uchar dat)
{
        LCD_RS=1;
        LCD_RW=0;
        LCD_E=0;
        P2=dat;

        delay(5);
        LCD_E=1;
        delay(5);
        LCD_E=0;

}
void delay(uchar k)
{
        uchar j,t;
        for(j=0;j<k;j++)
                for(t=0;t<100;t++)
                ;

}
void LCD12864_pos(uchar x,uchar y)
{
        uchar pos;
        if(x==0)
                x=0x80;
                else if(x==1)
                        x=0x90;
                        else if(x==2)
                                x=0x88;
                                else if(x==3)
                                        x=0x98;
                pos=x+y;
                LCD12864_cmd(pos);                       
}


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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