4113|1

27

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

12864 串行cog液晶屏 不亮 黑色没有反应 (排除屏幕坏掉了) [复制链接]

谁用过力先 10脚的12864cog液晶屏,一直点不亮是什么原因,上电不亮,
程序如下
#define CS     LATBbits.LATB5
#define RS     LATBbits.LATB8
#define SCL    LATAbits.LATA4
#define SDI    LATAbits.LATA7
#define key1   LATAbits.LATA0
#define key2   LATAbits.LATA1
#define pause  LATBbits.LATB3
#define RES     LATBbits.LATB15

#define  uchar  unsigned char
#define  uint   unsigned int
void writec (uchar );
void stop(void);
void writed(uchar );
//void writed(uchar dat);
void flash(unsigned int t);
void init ( );
void display(uchar dat1,uchar dat2);
void displaychar(uchar *p);

const uchar chara1[] = {"www.txmcu.com"};
uchar vop=0x29;

void delay1(unsigned int t)
{
  while(t>0)
  {
    t--;             //TT-                                           `
    pause=1;
    if(pause==0)stop();
  }
}
int main(void)
{  



   delay1(1000);
writec(0xaf);
    vop=0x29;         //vop=9.1V
        //vop=0x15;         //vop=7.1V
   init();
  while (1)
  {
      display(0xff,0xff);
      display(0x00,0x00);
      display(0x55,0xaa);
      display(0xaa,0x55);
    displaychar(chara1);
    // displaychar(chara2);//vop_test();
  }
}



void flash(unsigned int t)
{
  while(t>0)
  {
    t--;             //TT-                                           `


  }
}
//-----------------------------
        void stop()
        {
         flash(100);
         while(pause==0)
         {
          pause=1;
          key1=1;
          key2=1;
          if(key1==0)
          {
          flash(200);
          if(key1==0)
          {

          while(key1==0);
          flash(100);
            if(vop<63)
            {
            vop++;
                        writec(0x81);
            writec(vop);}
            }
                 }
          else if(key2==0)
          {
           flash(100);
                   if(key2==0)
          {

           while(key2==0);
           flash(100);
           if(vop>0)
           {
            vop--;
                        writec(0x81);
            writec(vop);
                        }
           }
          }
         }
           }

void writec(uchar com)
{ unsigned char i ;
        CS=0;
        RS=0;

   for(i=0;i<8;i++)
    { com=com<<1;
         // SDI=SR.C;
          SCL=1;
          SCL=0;
          }

    CS=1;
        RS=1;
}

void writed(uchar dat)
{  unsigned char i;
        CS=0;
    RS=1;

  for(i=0;i<8;i++)
    {

          dat=dat<<1;
        //  SDI=SR.C;
          SCL=1;
          SCL=0;
          }

    CS=1;
        RS=1;
}

void init ( )
{   LATA=0;
    LATB = 0;
    CNPU2bits.CN22PUE = 1;
    CNPU2bits.CN21PUE = 1;
    ANSA = 1;
    ANSB = 0;

          uchar col;
   RES=1;
   flash(1000);
   RES=0;
   flash(2000);
   RES=1;
   flash(1000);

writec(0xe3);  // reset signal
writec(0xa3);  //(0xa2 1/9 bias,1/65 duty )
writec(0xa0);  // ADC select
writec(0xc8);  // command output select
writec(0x2f);  // power control
writec(0x24);  // select resistor ratio Rb/Ra
writec(0x81);  // select volume
writec(vop);   // vop
writec(0xf8);  // x4
writec(0x08);  // x4
  writec(0xb0);//set page address
      writec(0x10);//set column address
      writec(0x00);
      for(col=0;col<128;col++)
      {
         writed(0x00);

      }
writec(0xaf);  //display on
}
void display(uchar dat1,uchar dat2)
{
   uchar row,col;

   for (row=0xb0; row<0xb8; row++)    //0XB0    0XB8
   {
      writec(row);//set page address
      writec(0x10);//set column address
      writec(0x00);
      for(col=0;col<128;col++)
      {
         writed(dat1);
         writed(dat2);
      }
   }

   delay1(50000);

}

void displaychar(uchar *p)
{
   uchar row,col;

   for (row=0xb0; row<0xb8; row++)
   {
      writec(row);//set page address
      writec(0x10);//set column address
      writec(0x00);
      for(col=0;col<128;col++)
      writed(*p++);
   }

   delay1(500);

}



最新回复

简单的程序,看不清楚具体问题,应该将LCD的资料,硬件连接情况一并展示,才好分析问题原因   详情 回复 发表于 2018-7-28 11:48
点赞 关注
 

回复
举报

637

帖子

2

TA的资源

版主

沙发
 
简单的程序,看不清楚具体问题,应该将LCD的资料,硬件连接情况一并展示,才好分析问题原因
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表