微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > LCD12864显示问题。

LCD12864显示问题。

时间:10-02 整理:3721RD 点击:
void Busy()
{  
DataPort=0xFF;
RS=0;  
RW=1;  
while (1)     
{  
E =1;   
if (P0^7==0)
break;  
}
E=0;
}  
/***********写指令子程序****************/
void Write_Com(uchar command)
{  
Busy();        //检测忙标志位
RS=0;
RW=0;         
DataPort=command; //写入指令
E=1;  
delay(1);        
E=0;                                   
}           
/***********写数据子程序***************/  
void Write_Data(uchar Data)
{  
Busy();  
RS=1;                  
RW=0;  
DataPort=Data;
E=1;
delay(1);
E=0;   
}  
/***********LCD初始化*******************/  
void Init_LCD(void)  
{     
     PSB=0;  
     delay(1);  
     PSB=1;           //将PSB置1,通信方式为8位数据并口
     delay(1);   
       Write_Com(0x30); //30H--基本指令操作   
       Write_Com(0x0c); //开显示,关光标,不闪烁。
       Write_Com(0x01); //清除显示   
       Write_Com(0x02);     
       Write_Com(0x06); //指定在资料写入或读取时,光标的移动方向,DDRAM的地址计数器(AC)加1。   
       Write_Com(0x04); //显示状态 全关
}   
/*****************清屏***********************/  
void Clear_LCD(void)  
{  
       Write_Com(0x01);  
       Write_Com(0x34);  
       Write_Com(0x30);  
   }

void setPosition(uchar x, uchar y)
{   
uchar p;     
switch(x)   
{         
    case 0: p = 0x80; break; //第一行开始地址         
    case 1: p = 0x90; break; //第二行        
    case 2: p = 0x88; break; //第三行         
    case 3: p = 0x98; break; //第四行   
    }     
         p += y;     
         Write_Com(p);
         }
         void writeString(uchar * str)
         {   
         uchar i = 0;      
         while(str[i] != 0)   
          {         
           Write_Data(str[i++]);     
           }
           }             
  程序如上,我在显示特殊符号如★★__▲▲ ,~o~的时候就会出现乱码,并且两者交替出现?

比如显示☆就会和 爱  字交替出现。

6666666666666666666666666666666666666

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

网站地图

Top