OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11152|回复: 8

TFT-LCD液晶显示

[复制链接]

8

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2012-2-3
在线时间
0 小时
发表于 2012-2-8 21:41:05 | 显示全部楼层 |阅读模式
关于液晶显示实验有以下几个问题:
1、ILI9320跟LCD在原子大哥的开发板中是怎么连接的?
2、else if(DeviceCode==0x9320||DeviceCode==0x9300)
 {
  LCD_WriteReg(0x00,0x0000);
  LCD_WriteReg(0x01,0x0100); //Driver Output Contral.
  LCD_WriteReg(0x02,0x0700); //LCD Driver Waveform Contral.
  LCD_WriteReg(0x03,0x1030);//Entry Mode Set.
  //LCD_WriteReg(0x03,0x1018); //Entry Mode Set.
 
  LCD_WriteReg(0x04,0x0000); //Scalling Contral.
  LCD_WriteReg(0x08,0x0202); //Display Contral 2.(0x0207)
  LCD_WriteReg(0x09,0x0000); //Display Contral 3.(0x0000)
  LCD_WriteReg(0x0a,0x0000); //Frame Cycle Contal.(0x0000)
  LCD_WriteReg(0x0c,(1<<0)); //Extern Display Interface Contral 1.(0x0000)
  LCD_WriteReg(0x0d,0x0000); //Frame Maker Position.
  LCD_WriteReg(0x0f,0x0000); //Extern Display Interface Contral 2.    
  delay_ms(50);
  LCD_WriteReg(0x07,0x0101); //Display Contral.
  delay_ms(50);          
  LCD_WriteReg(0x10,(1<<12)|(0<<8)|(1<<7)|(1<<6)|(0<<4)); //Power Control 1.(0x16b0)
  LCD_WriteReg(0x11,0x0007);        //Power Control 2.(0x0001)
  LCD_WriteReg(0x12,(1<<8)|(1<<4)|(0<<0));    //Power Control 3.(0x0138)
  LCD_WriteReg(0x13,0x0b00);        //Power Control 4.
  LCD_WriteReg(0x29,0x0000);        //Power Control 7.
 
  LCD_WriteReg(0x2b,(1<<14)|(1<<4));    
  LCD_WriteReg(0x50,0); //Set X Star
  //水平GRAM终止位置Set X End.
  LCD_WriteReg(0x51,239); //Set Y Star
  LCD_WriteReg(0x52,0); //Set Y End.t.
  LCD_WriteReg(0x53,319); //
 
  LCD_WriteReg(0x60,0x2700); //Driver Output Control.
  LCD_WriteReg(0x61,0x0001); //Driver Output Control.
  LCD_WriteReg(0x6a,0x0000); //Vertical Srcoll Control.
 
  LCD_WriteReg(0x80,0x0000); //Display Position? Partial Display 1.
  LCD_WriteReg(0x81,0x0000); //RAM Address Start? Partial Display 1.
  LCD_WriteReg(0x82,0x0000); //RAM Address End-Partial Display 1.
  LCD_WriteReg(0x83,0x0000); //Displsy Position? Partial Display 2.
  LCD_WriteReg(0x84,0x0000); //RAM Address Start? Partial Display 2.
  LCD_WriteReg(0x85,0x0000); //RAM Address End? Partial Display 2.
 
  LCD_WriteReg(0x90,(0<<7)|(16<<0)); //Frame Cycle Contral.(0x0013)
  LCD_WriteReg(0x92,0x0000); //Panel Interface Contral 2.(0x0000)
  LCD_WriteReg(0x93,0x0001); //Panel Interface Contral 3.
  LCD_WriteReg(0x95,0x0110); //Frame Cycle Contral.(0x0110)
  LCD_WriteReg(0x97,(0<<8)); //
  LCD_WriteReg(0x98,0x0000); //Frame Cycle Contral.   
  LCD_WriteReg(0x07,0x0173); //(0x0173)
 }关于这一大堆关于LCD的初使化函数,原子大哥是看着数据手册写出来的,还是这些芯片有这部分的程序给我们的??
3、#define MAX_CHAR_POSX 232
#define MAX_CHAR_POSY 312
这两个不是最大值分别是240,320吗?这里为什么要设置成这些值呢??
4、void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode)

#if USE_HORIZONTAL==1
#define MAX_CHAR_POSX 312
#define MAX_CHAR_POSY 232
#else    
#define MAX_CHAR_POSX 232
#define MAX_CHAR_POSY 312
#endif
    u8 temp;
    u8 pos,t;
 u16 x0=x;
 u16 colortemp=POINT_COLOR;     
    if(x>MAX_CHAR_POSX||y>MAX_CHAR_POSY)return;    
 //设置窗口    
 num=num-' ';//得到偏移后的值     这里是什么意思??
 if(!mode) //非叠加方式
 {
  for(pos=0;pos<size;pos++)         
  {
   if(size==12)temp=asc2_1206[num][pos];//调用1206字体
   else temp=asc2_1608[num][pos];   //调用1608字体
   for(t=0;t<size/2;t++)          这里为什么是1/2呢??
      {                
          if(temp&0x01)POINT_COLOR=colortemp;
    else POINT_COLOR=BACK_COLOR;
    LCD_DrawPoint(x,y); 
    temp>>=1;
    x++;
      }
   x=x0;
   y++;
  } 
 }else//叠加方式
 {
  for(pos=0;pos<size;pos++)
  {
   if(size==12)temp=asc2_1206[num][pos];//调用1206字体
   else temp=asc2_1608[num][pos];   //调用1608字体
   for(t=0;t<size/2;t++)
      {                
          if(temp&0x01)LCD_DrawPoint(x+t,y+pos);//画一个点    
          temp>>=1;
      }
  }
 }
 OINT_COLOR=colortemp;             
}  
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-2-8 22:09:18 | 显示全部楼层
按你自己的方法去试试,你就知道为什么了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2012-2-3
在线时间
0 小时
 楼主| 发表于 2012-2-8 22:37:17 | 显示全部楼层
原子大哥,那第一个问题呢??
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-2-9 00:54:56 | 显示全部楼层
你先搞清楚ASCII的内码是怎么回事,然后看看我们的ASCII点阵数组的编排规律,你就知道为什么了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

21

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2012-2-22
在线时间
0 小时
发表于 2012-2-27 11:11:57 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
原子哥,//设置窗口   这句注释  和   num=num-' ';//得到偏移后的值  这之间是不是缺少程序?并没有设置窗口的语句
每天都要有进步
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-2-27 12:45:27 | 显示全部楼层
注释多余,去掉吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

21

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2012-2-22
在线时间
0 小时
发表于 2012-2-27 13:47:07 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
原子哥,程序中没有采用开辟窗口的形式来做是吗?
每天都要有进步
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-2-27 14:04:58 | 显示全部楼层
回复【7楼】roma:
---------------------------------
最开始是用这个方法,后面去掉了.改用画点.
画点比较好做的通用一些.开窗的方式不太好做.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

21

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2012-2-22
在线时间
0 小时
发表于 2012-2-27 14:22:30 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
谢谢原子哥
每天都要有进步
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 23:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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