一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 4432|回复: 8

[其他综合] NOKIA 3110C液晶并行模式测试成功,上传资料。

[复制链接]
发表于 2012-7-10 22:36 | 显示全部楼层 |阅读模式
本帖最后由 STMFans 于 2012-7-11 22:32 编辑

分辨率128X160这个液晶控制器兼容HX8533或者SPFD54124B,看手册,两个IC指令基本相同。NOKIA很多手机使用这个液晶屏,淘宝搜索3110C 液晶,或者7070液晶,就出来一堆手机型号。价格便宜,可以串行也可以并行。以前都是串行驱动,速度有点慢,这次顺便做了板子,试了下速度还错,VET6,72M,IO驱动,清屏刷整屏字没有觉得迟钝。唯一的缺点:座子不好焊。
连接器参考: ljq.pdf (135.28 KB, 下载次数: 1284)
1.jpg
ourdev_628817XE818R.jpg
3110C.jpg

液晶驱动。有些词不达意的注释忽略就行,修改别的工程得来的。

#ifndef __LCD_H
#define __LCD_H  
  
#include "MySystem.h"
#define LCD_RES  11
#define LCD_CS   12
#define LCD_RS   13
#define LCD_WR   14
#define LCD_RD   15
#define LCD_BL   10
#define LCD_Data_Out     GPIOE->ODR
#define LCD_Data_In      GPIOE->IDR   
#define LCD_RES_High()  {GPIOD->BSRR=1<<LCD_RES;}
#define LCD_RES_Low()   {GPIOD->BRR=1<<LCD_RES; }
#define LCD_CS_High()   {GPIOD->BSRR=1<<LCD_CS; }  
#define LCD_CS_Low()    {GPIOD->BRR=1<<LCD_CS;  }
#define LCD_RS_High()   {GPIOD->BSRR=1<<LCD_RS; }
#define LCD_RS_Low()    {GPIOD->BRR=1<<LCD_RS;  }
#define LCD_WR_High()   {GPIOD->BSRR=1<<LCD_WR; }
#define LCD_WR_Low()    {GPIOD->BRR=1<<LCD_WR;  }
#define LCD_RD_High()   {GPIOD->BSRR=1<<LCD_RD; }
#define LCD_RD_Low()    {GPIOD->BRR=1<<LCD_RD;  }
#define LCD_BL_ON()     {GPIOD->BSRR=1<<LCD_BL; }
#define LCD_BL_OFF()    {GPIOD->BRR=1<<LCD_BL;  }
void LCD_Init(void);
void LCD_Clear(void);
void LCD_Show_Char8(unsigned char c,unsigned char x, unsigned char y);
void LCD_Show_String8 (unsigned char *String,unsigned char x,unsigned int y);
void LCD_SET_XY(unsigned char xsta, unsigned char xend,unsigned char ysta,unsigned char yend);
void LCD_Write_Cmd (unsigned char Cmd);
void LCD_Write_Data (unsigned char Data);
#endif


#include "LCD.h"
#include "font8x16.h"
#include "STM32f10x.h"
#include "Myusart.h"
//====================================================================================
void LCD_Write_Sdata (unsigned char Data)
{
    LCD_Data_Out=Data;
    LCD_WR_High();
    LCD_WR_Low();
}
void LCD_Write_Cmd (unsigned char Cmd)
{
    LCD_CS_Low();
    LCD_RS_Low();
    LCD_RD_High();
    LCD_Data_Out=Cmd;
    LCD_WR_High();
    LCD_WR_Low();
}
void LCD_Write_Data (unsigned char Data)
{
    LCD_CS_Low();
    LCD_RS_High();
    LCD_RD_High();
    LCD_Data_Out=Data;
    LCD_WR_High();
    LCD_WR_Low();
}
//====================================================================================
void LCD_SET_XY(unsigned char xsta, unsigned char xend,unsigned char ysta,unsigned char yend)
{
     LCD_Write_Cmd(0x2a);    //设置X坐标
  LCD_Write_Data(0x00);     //X方向开始坐标
  LCD_Write_Data(xsta+2);     //X方向开始坐标
  LCD_Write_Data(0x00);     //X方向开始坐标
  LCD_Write_Data(xend);     //X方向开始坐标

  LCD_Write_Cmd(0x2b);   //设置Y坐标
  LCD_Write_Data(0x00);     //X方向开始坐标
  LCD_Write_Data(ysta+1);     //X方向开始坐标
  LCD_Write_Data(0x00);     //X方向开始坐标
  LCD_Write_Data(yend);     //X方向开始坐标
}
//====================================================================================
void LCD_Show_Char8(unsigned char c,unsigned char x, unsigned char y)
{
    unsigned char k,line,Ctemp;
    LCD_SET_XY(x,x+9,y,y+16);     //设置X,Y坐标
LCD_Write_Cmd(0x2c);             //发送写LCD内部RAM指令,写屏前都要发这个指令
    c-=0x20;                                        //字库从空格开始,前面省略32个字符,要减去0X20
    for (line=0; line<16; line++)       //字库是8X16的,16行,每行1字节8BIT。
    {
        Ctemp=font8x16[c][line];        //C是ASCII编码,数值与字库里地址一一对应,
        for(k=0;k<8;k++)                     //比如数字1ASCII为0X31减去0x20=0x11,十进制17,对应字库的索引17
        {
            if(Ctemp&0x01)                    //字库编码是低位在前,所以先从低位比较
            {
                LCD_Write_Data(0x07);     //是1的话显示亮点
    LCD_Write_Data(0xe0);
    }
            else
            {
                LCD_Write_Data(0x00);    //是1的话显示暗点
    LCD_Write_Data(0x00);
    }
           Ctemp=Ctemp>>1;                   //右移一位,比较下一个BIT
        }
    }
LCD_CS_High();                            //释放LCD
}
//====================================================================================
void LCD_Show_String8 (unsigned char *String,unsigned char x,unsigned int y)
{
while ( * String )
{
  LCD_Show_Char8( *String++,x,y);
        x+=8;     
}
}
//====================================================================================
void LCD_Clear(void)
{
    unsigned char i,j;
LCD_SET_XY(0,129,0,160);       //设置X,Y坐标
LCD_Write_Cmd(0x2c);        //发送写RAM指令,写屏前都要发这个指令
for(i=0;i<160;i++)   
{
     for(j=0;j<128;j++)   
     {
      LCD_Write_Data (0x00);    //写前8BIT,当前接口是16BIT格式的话要发送2次
   LCD_Write_Data (0x00);   //写后8BIT
  }
}
LCD_CS_High();

}
//====================================================================================  
void LCD_Init(void)
{
    LCD_RES_Low();
Delay_ms(20);                             
LCD_RES_High();
Delay_ms(20);
LCD_Write_Cmd(0x01);         //Software Reset软件复位
Delay_ms(20);

LCD_Write_Cmd(0x11);         //Sleep Out,0x10=Sleep In.退出睡眠模式
LCD_Write_Cmd(0x38);         //Idle Mode Off
LCD_Write_Cmd(0x20);         //Display Inversion Off
LCD_Write_Cmd(0x13);         //Normal Display Mode On .正常显示模式开启
LCD_Write_Cmd(0x3a);        //interface pixel format,default 18bit接口数据格式,默认18BIT
LCD_Write_Data(0x55);        //16bit pixel format 0X55=16BIT.
LCD_Clear();
LCD_Write_Cmd(0x29);        //Display  On ,0x28=Display Off.显示开启
}
//====================================================================================

评分

参与人数 2一乐金币 +60 收起 理由
无锡风 + 40 支持开源
fat + 20 感谢分享,支持开源

查看全部评分

发表于 2012-7-10 22:51 | 显示全部楼层
这屏啥时候变成绿色的啦!很像EL屏或是OLED,要是黄色的就赞了
回复

使用道具 举报

 楼主| 发表于 2012-7-10 23:05 | 显示全部楼层
这屏啥时候变成绿色的啦!很像EL屏或是OLED,要是黄色的就赞了
lsnes 发表于 2012-7-10 22:51 https://www.yleee.com.cn/images/common/back.gif


看错了吧,这个不是单色屏。彩色TFT要是不能出绿色,那还是彩屏吗?
回复

使用道具 举报

发表于 2012-7-10 23:16 | 显示全部楼层
3110是彩屏机?
回复

使用道具 举报

 楼主| 发表于 2012-7-11 03:07 | 显示全部楼层
3110C是彩屏的,3310是单色屏。
回复

使用道具 举报

发表于 2012-7-11 08:14 | 显示全部楼层
那个连接器是多大间距的?0.4 0.5 还是1.0
回复

使用道具 举报

发表于 2012-7-11 08:22 | 显示全部楼层
很漂亮,期待更多实际应用作品!
回复

使用道具 举报

 楼主| 发表于 2012-7-11 22:31 | 显示全部楼层
那个连接器是多大间距的?0.4 0.5 还是1.0
zhangjianhu 发表于 2012-7-11 08:14 https://www.yleee.com.cn/images/common/back.gif



    0.4
回复

使用道具 举报

发表于 2012-7-26 16:28 | 显示全部楼层
漂亮!!加油!!
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-8-20 17:48 , Processed in 0.066424 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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