微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 12864显示出现乱码,帮忙看看那里错了

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

时间:10-02 整理:3721RD 点击:

用的是89c51单片机液晶用的是12864,显示为乱码,帮忙看看

/*

lcd12864液晶显示

*/

#include <reg52.h>

#include<intrins.h>

#define uint unsigned int

#define uchar unsigned char

uchar code table[]="I LIKE hhh! hello";

uint num;

sbit lcd_rs=P1^0;   //4   

sbit lcd_rw=P1^1;  //5

sbitlcd_en=P1^2;  //6

sbit lcd_rst=P1^3;   //17

sbit lcd_cs1=P1^6;   //15

sbit 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;

}






同学,12864有好多种,你用的是哪种控制器的?

主函数中没有添加死循环 程序已经跑飞了

哥们,你的初始化好像有点问题,你直接去百度查一下,看一下别人的例程,如果检查初始化没有问题就看一下写的函数

你可以在主函数结束上加多一个while(1);

正解!...

你的lcdrs=0,错了

我的 程序第一天还能正常显示 第二天就乱码了  这是啥原因  要崩溃

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top