12864显示出现乱码,帮忙看看那里错了

2019-07-15 20:48发布

本帖最后由 neuangel 于 2014-2-25 22:35 编辑

用的是89c51单片机液晶用的是12864,显示为乱码,帮忙看看
/* lcd12864液晶显示*/#include <reg52.h>#include<intrins.h>#define uint unsigned int #define uchar unsigned charuchar code table[]="I LIKE hhh! hello";uint num;sbit lcd_rs=P1^0;   //4    sbit lcd_rw=P1^1;  //5sbitlcd_en=P1^2;  //6sbit lcd_rst=P1^3;   //17sbit lcd_cs1=P1^6;   //15sbit lcd_cs2=P1^7;   //16
/*  函数声明 */void init();void delayms(uint);void write_com(uchar);void write_datas(uchar);void read_busy();
/*主函数*/void main(){       init();       lcd_cs1=1;       lcd_cs2=1;       for(num=0;num<18;num++)       {              write_datas(table[num]);        //      write_datas('o');       //     delayms(1000);       }}void read_busy(){       P0=0x00;       lcd_rs=1;       lcd_rw=0;       lcd_en=1;       while(P0&0x80);       lcd_en=0;
}void init()                     //初始化{        write_com(0x3f);//开显示        write_com(0xc0); //设置代码起始行为0        write_com(0xb8);//设置页地址 x地址        write_com(0x40); //设置y地址        write_com(0x80);//设置列地址
}void delayms(uint z)      //延时函数{       uintx,y;       for(x=z;x>0;x--)       {              for(y=100;y>0;y--);       }
}void write_com(uchar com)     //写指令{//     read_busy();       _nop_();       _nop_();       _nop_();       lcd_rs=0;       lcd_rw=0;//     delayms(4);       P0=com;//     delayms(5);       lcd_en=1;       delayms(5);       lcd_en=0;}void write_datas(uchar datas)  //写数据{//     read_busy();       _nop_();       _nop_();       _nop_();       lcd_rs=1;       lcd_rw=0;//     delayms(4);       P0=datas;//     delayms(5);       lcd_en=1;       delayms(5);       lcd_en=0;}









友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
woodmice
1楼-- · 2019-07-16 01:17
同学,12864有好多种,你用的是哪种控制器的?
z00
2楼-- · 2019-07-16 04:44
主函数中没有添加死循环 程序已经跑飞了
愤怒的企鹅
3楼-- · 2019-07-16 09:29
哥们,你的初始化好像有点问题,你直接去百度查一下,看一下别人的例程,如果检查初始化没有问题就看一下写的函数
愤怒的企鹅
4楼-- · 2019-07-16 15:17
你可以在主函数结束上加多一个while(1);
neuangel
5楼-- · 2019-07-16 21:04
 精彩回答 2  元偷偷看……
好人啊啊
6楼-- · 2019-07-16 22:12
你的lcdrs=0,错了

一周热门 更多>