一乐电子

一乐电子百科

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

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 3326|回复: 19
收起左侧

公布24脚2.4彩屏资料,此屏大约销售四百多片出去了

[复制链接]
发表于 2015-4-5 18:02 | 显示全部楼层 |阅读模式
本帖最后由 iamusb 于 2015-4-5 18:08 编辑

公布24脚2.4彩屏资料,此屏大约销售四百多片出去了

经过高手一天的时间,全部搞定,成功驱动

现公布所有资料

欢迎手上有屏的坛友,进一步完善资料,让大家玩得开心

第一部分:

font.h

#ifndef __FONT_H
#define __FONT_H               
#define u16 unsigned int
#define u8 unsigned char

u8 const asc2_1608[1520]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x18,0x18,0x00,0x00,
0x00,0x48,0x6C,0x24,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x24,0x24,0x24,0x7F,0x12,0x12,0x12,0x7F,0x12,0x12,0x12,0x00,0x00,
0x00,0x00,0x08,0x1C,0x2A,0x2A,0x0A,0x0C,0x18,0x28,0x28,0x2A,0x2A,0x1C,0x08,0x08,
0x00,0x00,0x00,0x22,0x25,0x15,0x15,0x15,0x2A,0x58,0x54,0x54,0x54,0x22,0x00,0x00,
0x00,0x00,0x00,0x0C,0x12,0x12,0x12,0x0A,0x76,0x25,0x29,0x11,0x91,0x6E,0x00,0x00,
0x00,0x06,0x06,0x04,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x40,0x20,0x10,0x10,0x08,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x20,0x40,0x00,
0x00,0x02,0x04,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x08,0x08,0x04,0x02,0x00,
0x00,0x00,0x00,0x00,0x08,0x08,0x6B,0x1C,0x1C,0x6B,0x08,0x08,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x7F,0x08,0x08,0x08,0x08,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x04,0x03,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x00,0x00,
0x00,0x00,0x80,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x04,0x04,0x02,0x02,0x00,
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,
0x00,0x00,0x00,0x08,0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00,
0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x20,0x20,0x10,0x08,0x04,0x42,0x7E,0x00,0x00,
0x00,0x00,0x00,0x3C,0x42,0x42,0x20,0x18,0x20,0x40,0x40,0x42,0x22,0x1C,0x00,0x00,
0x00,0x00,0x00,0x20,0x30,0x28,0x24,0x24,0x22,0x22,0x7E,0x20,0x20,0x78,0x00,0x00,
0x00,0x00,0x00,0x7E,0x02,0x02,0x02,0x1A,0x26,0x40,0x40,0x42,0x22,0x1C,0x00,0x00,
0x00,0x00,0x00,0x38,0x24,0x02,0x02,0x1A,0x26,0x42,0x42,0x42,0x24,0x18,0x00,0x00,
0x00,0x00,0x00,0x7E,0x22,0x22,0x10,0x10,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,
0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x24,0x18,0x24,0x42,0x42,0x42,0x3C,0x00,0x00,
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x64,0x58,0x40,0x40,0x24,0x1C,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x04,
0x00,0x00,0x00,0x40,0x20,0x10,0x08,0x04,0x02,0x04,0x08,0x10,0x20,0x40,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x02,0x04,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x04,0x02,0x00,0x00,
0x00,0x00,0x00,0x3C,0x42,0x42,0x46,0x40,0x20,0x10,0x10,0x00,0x18,0x18,0x00,0x00,
0x00,0x00,0x00,0x1C,0x22,0x5A,0x55,0x55,0x55,0x55,0x2D,0x42,0x22,0x1C,0x00,0x00,
0x00,0x00,0x00,0x08,0x08,0x18,0x14,0x14,0x24,0x3C,0x22,0x42,0x42,0xE7,0x00,0x00,
0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x1E,0x22,0x42,0x42,0x42,0x22,0x1F,0x00,0x00,
0x00,0x00,0x00,0x7C,0x42,0x42,0x01,0x01,0x01,0x01,0x01,0x42,0x22,0x1C,0x00,0x00,
0x00,0x00,0x00,0x1F,0x22,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x22,0x1F,0x00,0x00,
0x00,0x00,0x00,0x3F,0x42,0x12,0x12,0x1E,0x12,0x12,0x02,0x42,0x42,0x3F,0x00,0x00,
0x00,0x00,0x00,0x3F,0x42,0x12,0x12,0x1E,0x12,0x12,0x02,0x02,0x02,0x07,0x00,0x00,
0x00,0x00,0x00,0x3C,0x22,0x22,0x01,0x01,0x01,0x71,0x21,0x22,0x22,0x1C,0x00,0x00,
0x00,0x00,0x00,0xE7,0x42,0x42,0x42,0x42,0x7E,0x42,0x42,0x42,0x42,0xE7,0x00,0x00,
0x00,0x00,0x00,0x3E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00,
0x00,0x00,0x00,0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x11,0x0F,
0x00,0x00,0x00,0x77,0x22,0x12,0x0A,0x0E,0x0A,0x12,0x12,0x22,0x22,0x77,0x00,0x00,
0x00,0x00,0x00,0x07,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x42,0x7F,0x00,0x00,
0x00,0x00,0x00,0x77,0x36,0x36,0x36,0x36,0x2A,0x2A,0x2A,0x2A,0x2A,0x6B,0x00,0x00,
0x00,0x00,0x00,0xE3,0x46,0x46,0x4A,0x4A,0x52,0x52,0x52,0x62,0x62,0x47,0x00,0x00,
0x00,0x00,0x00,0x1C,0x22,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x22,0x1C,0x00,0x00,
0x00,0x00,0x00,0x3F,0x42,0x42,0x42,0x42,0x3E,0x02,0x02,0x02,0x02,0x07,0x00,0x00,
0x00,0x00,0x00,0x1C,0x22,0x41,0x41,0x41,0x41,0x41,0x4D,0x53,0x32,0x1C,0x60,0x00,
0x00,0x00,0x00,0x3F,0x42,0x42,0x42,0x3E,0x12,0x12,0x22,0x22,0x42,0xC7,0x00,0x00,
0x00,0x00,0x00,0x7C,0x42,0x42,0x02,0x04,0x18,0x20,0x40,0x42,0x42,0x3E,0x00,0x00,
0x00,0x00,0x00,0x7F,0x49,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x1C,0x00,0x00,
0x00,0x00,0x00,0xE7,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x3C,0x00,0x00,
0x00,0x00,0x00,0xE7,0x42,0x42,0x22,0x24,0x24,0x14,0x14,0x18,0x08,0x08,0x00,0x00,
0x00,0x00,0x00,0x6B,0x49,0x49,0x49,0x49,0x55,0x55,0x36,0x22,0x22,0x22,0x00,0x00,
0x00,0x00,0x00,0xE7,0x42,0x24,0x24,0x18,0x18,0x18,0x24,0x24,0x42,0xE7,0x00,0x00,
0x00,0x00,0x00,0x77,0x22,0x22,0x14,0x14,0x08,0x08,0x08,0x08,0x08,0x1C,0x00,0x00,
0x00,0x00,0x00,0x7E,0x21,0x20,0x10,0x10,0x08,0x04,0x04,0x42,0x42,0x3F,0x00,0x00,
0x00,0x78,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x78,0x00,
0x00,0x00,0x02,0x02,0x04,0x04,0x08,0x08,0x08,0x10,0x10,0x20,0x20,0x20,0x40,0x40,
0x00,0x1E,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1E,0x00,
0x00,0x38,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0x00,0x06,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x42,0x78,0x44,0x42,0x42,0xFC,0x00,0x00,
0x00,0x00,0x00,0x03,0x02,0x02,0x02,0x1A,0x26,0x42,0x42,0x42,0x26,0x1A,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x44,0x02,0x02,0x02,0x44,0x38,0x00,0x00,
0x00,0x00,0x00,0x60,0x40,0x40,0x40,0x78,0x44,0x42,0x42,0x42,0x64,0xD8,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x42,0x7E,0x02,0x02,0x42,0x3C,0x00,0x00,
0x00,0x00,0x00,0xF0,0x88,0x08,0x08,0x7E,0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x22,0x22,0x1C,0x02,0x3C,0x42,0x42,0x3C,
0x00,0x00,0x00,0x03,0x02,0x02,0x02,0x3A,0x46,0x42,0x42,0x42,0x42,0xE7,0x00,0x00,
0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x0E,0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00,
0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x1E,
0x00,0x00,0x00,0x03,0x02,0x02,0x02,0x72,0x12,0x0A,0x16,0x12,0x22,0x77,0x00,0x00,
0x00,0x00,0x00,0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x92,0x92,0x92,0x92,0x92,0xB7,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3B,0x46,0x42,0x42,0x42,0x42,0xE7,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x42,0x42,0x3C,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1B,0x26,0x42,0x42,0x42,0x22,0x1E,0x02,0x07,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x44,0x42,0x42,0x42,0x44,0x78,0x40,0xE0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x4C,0x04,0x04,0x04,0x04,0x1F,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x42,0x02,0x3C,0x40,0x42,0x3E,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x3E,0x08,0x08,0x08,0x08,0x08,0x30,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x42,0x42,0x42,0x42,0x62,0xDC,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE7,0x42,0x24,0x24,0x14,0x08,0x08,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xEB,0x49,0x49,0x55,0x55,0x22,0x22,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0x24,0x18,0x18,0x18,0x24,0x6E,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE7,0x42,0x24,0x24,0x14,0x18,0x08,0x08,0x07,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x22,0x10,0x08,0x08,0x44,0x7E,0x00,0x00,
0x00,0xC0,0x20,0x20,0x20,0x20,0x20,0x10,0x20,0x20,0x20,0x20,0x20,0x20,0xC0,0x00,
0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
0x00,0x06,0x08,0x08,0x08,0x08,0x08,0x10,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x00,
0x0C,0x32,0xC2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};                                                            
#endif  
        


第二部分:
main.c
#include "io430x13x.h"        
#include "font.h"

//程序默认IO连接方式:
#define LCD_CS     P4OUT_bit.P5   //片选
#define LCD_REST   P4OUT_bit.P4          //复位         
#define LCD_DC     P4OUT_bit.P3          //数据/命令切换
#define LCD_WR     P4OUT_bit.P2          //写时钟
#define LCD_RD     P4OUT_bit.P1          //读时钟
#define LCD_DATA   P3OUT          //数据

//定义LCD的尺寸        
#define LCD_W 240
#define LCD_H 320

#define u32 unsigned long
#define u16 unsigned int
#define u8 unsigned char

//画笔颜色
#define WHITE                  0xFFFF
#define BLACK                  0x0000         
#define BLUE                  0x001F  
#define BRED             0XF81F
#define GRED                          0XFFE0
#define GBLUE                         0X07FF
#define RED                    0xF800
#define MAGENTA                0xF81F
#define GREEN                  0x07E0
#define CYAN                   0x7FFF
#define YELLOW                 0xFFE0
#define BROWN                          0XBC40 //棕色
#define BRRED                          0XFC07 //棕红色
#define GRAY                           0X8430 //灰色
//GUI颜色

#define DARKBLUE               0X01CF        //深蓝色
#define LIGHTBLUE               0X7D7C        //浅蓝色  
#define GRAYBLUE                0X5458 //灰蓝色
//以上三色为PANEL的颜色

#define LIGHTGREEN              0X841F //浅绿色
#define LGRAY                          0XC618 //浅灰色(PANNEL),窗体背景色

#define LGRAYBLUE        0XA651 //浅灰蓝色(中间层颜色)
#define LBBLUE           0X2B12 //浅棕蓝色(选择条目的反色)

u8 const string1[]={"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*()_+-=[]{}|;:'<,>.?/"};

u16 BACK_COLOR, POINT_COLOR;   //背景色,画笔色         


void delayms(unsigned int a)
{
unsigned int i;
while (--a!=0)
for(i=4;i>0;i--);   
}

void LCD_WR_DATA8(u8 da) //发送数据-8位参数
{
    LCD_DC=1;
    LCD_DATA = da;
    LCD_WR=0;
    LCD_WR=1;
}  
void LCD_WR_DATA(u16 da)
{
    LCD_DC=1;
    LCD_DATA = da;
    LCD_WR=0;
    LCD_WR=1;
    LCD_DATA = da>>8;
    LCD_WR=0;
    LCD_WR=1;
}         
void LCD_WR_REG(u8 da)         
{
    LCD_DC=0;
    LCD_DATA = da;
    LCD_WR=0;
    LCD_WR=1;
}
void LCD_WR_REG_DATA(u8 reg,u16 da)
{
    LCD_WR_REG(reg);
    LCD_WR_DATA(da);
}
void Address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2)
{  
   LCD_WR_REG(0x2a);
   LCD_WR_DATA8(x1>>8);
   LCD_WR_DATA8(x1);
   LCD_WR_DATA8(x2>>8);
   LCD_WR_DATA8(x2);

   LCD_WR_REG(0x2b);
   LCD_WR_DATA8(y1>>8);
   LCD_WR_DATA8(y1);
   LCD_WR_DATA8(y2>>8);
   LCD_WR_DATA8(y2);

   LCD_WR_REG(0x2C);

}
void Lcd_Init(void)
{

    LCD_REST=0;
    delayms(20);
    LCD_REST=1;
    delayms(200);
    LCD_CS =0;  //打开片选使能

    LCD_WR_REG(0xCB);  
    LCD_WR_DATA8(0x39);
    LCD_WR_DATA8(0x2C);
    LCD_WR_DATA8(0x00);
    LCD_WR_DATA8(0x34);
    LCD_WR_DATA8(0x02);

    LCD_WR_REG(0xCF);  
    LCD_WR_DATA8(0x00);
    LCD_WR_DATA8(0XC1);
    LCD_WR_DATA8(0X30);
         
    LCD_WR_REG(0xE8);  
    LCD_WR_DATA8(0x85);
    LCD_WR_DATA8(0x00);
    LCD_WR_DATA8(0x78);
         
    LCD_WR_REG(0xEA);  
    LCD_WR_DATA8(0x00);
    LCD_WR_DATA8(0x00);
         
    LCD_WR_REG(0xED);  
    LCD_WR_DATA8(0x64);
    LCD_WR_DATA8(0x03);
    LCD_WR_DATA8(0X12);
    LCD_WR_DATA8(0X81);

    LCD_WR_REG(0xF7);  
    LCD_WR_DATA8(0x20);

    LCD_WR_REG(0xC0);    //Power control
    LCD_WR_DATA8(0x23);   //VRH[5:0]

    LCD_WR_REG(0xC1);    //Power control
    LCD_WR_DATA8(0x10);   //SAP[2:0];BT[3:0]

    LCD_WR_REG(0xC5);    //VCM control
    LCD_WR_DATA8(0x3e); //对比度调节
    LCD_WR_DATA8(0x28);

    LCD_WR_REG(0xC7);    //VCM control2
    LCD_WR_DATA8(0x86);  //--

    LCD_WR_REG(0x36);    // Memory Access Control
    LCD_WR_DATA8(0x48); //           //48 68竖屏//28 E8 横屏

    LCD_WR_REG(0x3A);   
    LCD_WR_DATA8(0x55);

    LCD_WR_REG(0xB1);   
    LCD_WR_DATA8(0x00);  
    LCD_WR_DATA8(0x18);

    LCD_WR_REG(0xB6);    // Display Function Control
    LCD_WR_DATA8(0x08);
    LCD_WR_DATA8(0x82);
    LCD_WR_DATA8(0x27);  
         
    LCD_WR_REG(0xF2);    // 3Gamma Function Disable
    LCD_WR_DATA8(0x00);

    LCD_WR_REG(0x26);    //Gamma curve selected
    LCD_WR_DATA8(0x01);

    LCD_WR_REG(0xE0);    //Set Gamma
    LCD_WR_DATA8(0x0F);
    LCD_WR_DATA8(0x31);
    LCD_WR_DATA8(0x2B);
    LCD_WR_DATA8(0x0C);
    LCD_WR_DATA8(0x0E);
    LCD_WR_DATA8(0x08);
    LCD_WR_DATA8(0x4E);
    LCD_WR_DATA8(0xF1);
    LCD_WR_DATA8(0x37);
    LCD_WR_DATA8(0x07);
    LCD_WR_DATA8(0x10);
    LCD_WR_DATA8(0x03);
    LCD_WR_DATA8(0x0E);
    LCD_WR_DATA8(0x09);
    LCD_WR_DATA8(0x00);

    LCD_WR_REG(0XE1);    //Set Gamma
    LCD_WR_DATA8(0x00);
    LCD_WR_DATA8(0x0E);
    LCD_WR_DATA8(0x14);
    LCD_WR_DATA8(0x03);
    LCD_WR_DATA8(0x11);
    LCD_WR_DATA8(0x07);
    LCD_WR_DATA8(0x31);
    LCD_WR_DATA8(0xC1);
    LCD_WR_DATA8(0x48);
    LCD_WR_DATA8(0x08);
    LCD_WR_DATA8(0x0F);
    LCD_WR_DATA8(0x0C);
    LCD_WR_DATA8(0x31);
    LCD_WR_DATA8(0x36);
    LCD_WR_DATA8(0x0F);

    LCD_WR_REG(0x2A);
    LCD_WR_DATA8(0x00);
    LCD_WR_DATA8(0x00);
    LCD_WR_DATA8(0x00);
    LCD_WR_DATA8(0xEF);

    LCD_WR_REG(0x2B);
    LCD_WR_DATA8(0x00);
    LCD_WR_DATA8(0x00);
    LCD_WR_DATA8(0x01);
    LCD_WR_DATA8(0x3F);
    LCD_WR_REG(0x11);    //Exit Sleep
    delayms(200);
                        
     LCD_WR_REG(0x29);    //Display on
     LCD_WR_REG(0x2c);

}
//清屏函数
//Color:要清屏的填充色
void LCD_Clear(u16 Color)
{
        u8 VH,VL;
        u16 i,j;
        VH=Color>>8;
        VL=Color;        
        Address_set(0,0,LCD_W-1,LCD_H-1);
    for(i=0;i<LCD_W;i++)
         {
          for (j=0;j<LCD_H;j++)
                   {
                 LCD_WR_DATA8(VH);
                         LCD_WR_DATA8(VL);        

            }

          }
}
//画点
//POINT_COLOR:此点的颜色
void LCD_DrawPoint(u16 x,u16 y)
{
        Address_set(x,y,x,y);//设置光标位置
        LCD_WR_DATA(POINT_COLOR);            
}         

//在指定区域内填充指定颜色
//区域大小:
//  (xend-xsta)*(yend-ysta)
void LCD_Fill(u16 xsta,u16 ysta,u16 xend,u16 yend,u16 color)
{         
        u16 i,j;
        Address_set(xsta,ysta,xend,yend);      //设置光标位置
        for(i=ysta;i<=yend;i++)
        {                                                                                                                           
                for(j=xsta;j<=xend;j++)LCD_WR_DATA(color);//设置光标位置            
        }                                                      
}
//画一个大点
//POINT_COLOR:此点的颜色
void LCD_DrawPoint_big(u16 x,u16 y)
{
        LCD_Fill(x-1,y-1,x+1,y+1,POINT_COLOR);
}   
//画线
//x1,y1:起点坐标
//x2,y2:终点坐标  
void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2)
{
        u16 t;
        int xerr=0,yerr=0,delta_x,delta_y,distance;
        int incx,incy,uRow,uCol;

        delta_x=x2-x1; //计算坐标增量
        delta_y=y2-y1;
        uRow=x1;
        uCol=y1;
        if(delta_x>0)incx=1; //设置单步方向
        else if(delta_x==0)incx=0;//垂直线
        else {incx=-1;delta_x=-delta_x;}
        if(delta_y>0)incy=1;
        else if(delta_y==0)incy=0;//水平线
        else{incy=-1;delta_y=-delta_y;}
        if( delta_x>delta_y)distance=delta_x; //选取基本增量坐标轴
        else distance=delta_y;
        for(t=0;t<=distance+1;t++ )//画线输出
        {  
                LCD_DrawPoint(uRow,uCol);//画点
                xerr+=delta_x ;
                yerr+=delta_y ;
                if(xerr>distance)
                {
                        xerr-=distance;
                        uRow+=incx;
                }
                if(yerr>distance)
                {
                        yerr-=distance;
                        uCol+=incy;
                }
        }  
}   
//画矩形
void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2)
{
        LCD_DrawLine(x1,y1,x2,y1);
        LCD_DrawLine(x1,y1,x1,y2);
        LCD_DrawLine(x1,y2,x2,y2);
        LCD_DrawLine(x2,y1,x2,y2);
}
//在指定位置画一个指定大小的圆
//(x,y):中心点
//r    :半径
void Draw_Circle(u16 x0,u16 y0,u8 r)
{
        int a,b;
        int di;
        a=0;b=r;         
        di=3-(r<<1);             //判断下个点位置的标志
        while(a<=b)
        {
                LCD_DrawPoint(x0-b,y0-a);             //3           
                LCD_DrawPoint(x0+b,y0-a);             //0           
                LCD_DrawPoint(x0-a,y0+b);             //1      
                LCD_DrawPoint(x0-b,y0-a);             //7           
                LCD_DrawPoint(x0-a,y0-b);             //2            
                LCD_DrawPoint(x0+b,y0+a);             //4               
                LCD_DrawPoint(x0+a,y0-b);             //5
                LCD_DrawPoint(x0+a,y0+b);             //6
                LCD_DrawPoint(x0-b,y0+a);            
                a++;
                //使用Bresenham算法画圆     
                if(di<0)di +=4*a+6;         
                else
                {
                        di+=10+4*(a-b);   
                        b--;
                }
                LCD_DrawPoint(x0+a,y0+b);
        }
}
//在指定位置显示一个字符

//num:要显示的字符:" "--->"~"
//mode:叠加方式(1)还是非叠加方式(0)
//在指定位置显示一个字符

//num:要显示的字符:" "--->"~"

//mode:叠加方式(1)还是非叠加方式(0)
void LCD_ShowChar(u16 x,u16 y,u8 num,u8 mode)
{
    u8 temp;
    u8 pos,t;
        u16 x0=x;
        u16 colortemp=POINT_COLOR;      
    if(x>LCD_W-16||y>LCD_H-16)return;            
        //设置窗口                  
        num=num-' ';//得到偏移后的值
        Address_set(x,y,x+8-1,y+16-1);      //设置光标位置
        if(!mode) //非叠加方式
        {
                for(pos=0;pos<16;pos++)
                {
                        temp=asc2_1608[(u16)num*16+pos];                 //调用1608字体
                        for(t=0;t<8;t++)
                    {                 
                        if(temp&0x01)POINT_COLOR=colortemp;
                                else POINT_COLOR=BACK_COLOR;
                                LCD_WR_DATA(POINT_COLOR);        
                                temp>>=1;
                                x++;
                    }
                        x=x0;
                        y++;
                }        
        }else//叠加方式
        {
                for(pos=0;pos<16;pos++)
                {
                    temp=asc2_1608[(u16)num*16+pos];                 //调用1608字体
                        for(t=0;t<8;t++)
                    {                 
                        if(temp&0x01)LCD_DrawPoint(x+t,y+pos);//画一个点     
                        temp>>=1;
                    }
                }
        }
        POINT_COLOR=colortemp;                                          
}   
//m^n函数
u32 mypow(u8 m,u8 n)
{
        u32 result=1;         
        while(n--)result*=m;   
        return result;
}                        
//显示2个数字
//x,y :起点坐标         
//len :数字的位数
//color:颜色
//num:数值(0~4294967295);        
void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len)
{                 
        u8 t,temp;
        u8 enshow=0;
        num=(u16)num;
        for(t=0;t<len;t++)
        {
                temp=(num/mypow(10,len-t-1))%10;
                if(enshow==0&&t<(len-1))
                {
                        if(temp==0)
                        {
                                LCD_ShowChar(x+8*t,y,' ',0);
                                continue;
                        }else enshow=1;
                          
                }
                 LCD_ShowChar(x+8*t,y,temp+48,0);
        }
}
//显示2个数字
//x,y:起点坐标
//num:数值(0~99);         
void LCD_Show2Num(u16 x,u16 y,u16 num,u8 len)
{                 
        u8 t,temp;                                                   
        for(t=0;t<len;t++)
        {
                temp=(num/mypow(10,len-t-1))%10;
                 LCD_ShowChar(x+8*t,y,temp+'0',0);
        }
}
//显示字符串
//x,y:起点坐标  
//*p:字符串起始地址
//用16字体
void LCD_ShowString(u16 x,u16 y,const u8 *p)
{         
    while(*p!='\0')
    {      
        if(x>LCD_W-16){x=0;y+=16;}
        if(y>LCD_H-16){y=x=0;}
        LCD_ShowChar(x,y,*p,0);
        x+=8;
        p++;
    }  
}

int main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  P4DIR = 0XFF;
  P4OUT = 0Xff;
  P3DIR = 0XFF;
  P3OUT = 0Xff;
  BACK_COLOR  = WHITE;
  POINT_COLOR = BLACK;
  Lcd_Init();   //tft初始化
  while(1)
  {
     LCD_Clear(RED);
     delayms(3000);
     LCD_Clear(GREEN);
     delayms(3000);
     LCD_Clear(BLUE);
     delayms(3000);
     LCD_Clear(WHITE);
     delayms(3000);
     LCD_DrawLine(56,78,110,270);
     Draw_Circle(128,128,64);
     LCD_DrawRectangle(34,55,230,300);
     delayms(3000);
     LCD_Clear(WHITE);
     delayms(3000);
     LCD_ShowString(0,0,string1);
     delayms(3000);
  }
  //return 0;
}



第三部分,引脚信息

引脚信息
1、LED-
2、LED+(3.3V)
3、VSS
4、VCC
5、VDD
6、NC
7、CS
8、RESET
9、DC
10、WR
11、RD
12、D17
13、D16
14、D15
15、D14
16、D13
17、D12
18、D11
19、D10
20、VSS
21、NC
22、NC
23、NC
24、NC
VDD&VCC接3.3V
驱动IC型号 NV3029C 兼容ILI9341


第四部分,兼容芯片资料

芯嵌出品-ILI9341中文翻译资料(版本V1.0).pdf (3.31 MB, 下载次数: 392)




点亮效果图

IMG_20150405_112532.jpg


IMG_20150405_112750.jpg


IMG_20150405_112859.jpg


IMG_20150405_113107.jpg


此屏上家还有几百片,正在联系高价购回。


https://www.yleee.com.cn/data/attachment/forum/201503/19/131717sfz4etwzzk7u7eft.jpg.thumb.jpg



https://www.yleee.com.cn/data/attachment/forum/201503/19/131734x0li4gtj9lg4i0ia.jpg

https://www.yleee.com.cn/data/attachment/forum/201503/19/131745t06663f67500s5ro.jpg

https://www.yleee.com.cn/data/attachment/forum/201503/19/131749pg3t2godbs420gth.jpg.thumb.jpg

https://www.yleee.com.cn/data/attachment/forum/201503/19/131720b2fzwd2ye69ey95u.jpg



 楼主| 发表于 2015-4-5 18:06 | 显示全部楼层
主芯片PDF资料
NV3029C_v0.3.pdf (3.65 MB, 下载次数: 251)



发表于 2015-4-5 18:27 | 显示全部楼层
第一个跳出来支持! 盼望楼主以后多组织点这种货源,而且尽量让更多人买到,活跃气氛,也培养市场
发表于 2015-4-5 20:44 | 显示全部楼层
支持,线序找个了类似封装的早就接好了(实际线序倒是对了),驱动芯片找了个ili9230的手册,然后放了一个星期。。。太懒了。。。
发表于 2015-4-5 20:53 | 显示全部楼层
这个彩屏跟12864的黑白液晶用的管脚差不多,但是点阵数就大多了, 51单片机驱动当作静态显示没问题,
发表于 2015-4-5 21:02 | 显示全部楼层
不错,  还有没有优惠, 也搞点玩玩
发表于 2015-4-5 21:08 | 显示全部楼层
驱动是 战舰的驱动啊。。。
发表于 2015-4-5 21:10 | 显示全部楼层
并口屏的读写函数几乎可以通用.
像写命令,写数据.

难的是找对 控制IC,
以及了解屏的初始化.

LZ回收价不要太高啊,像上次出的2元价格很好,若是上了十元就没意思了.
最好是对每个人设置限购数量,免得其它人望洋兴叹.


个人DIY,有个二三十片足够玩很长一段时间了.我也是这段时间才开始玩这类屏的,
这类"高分"屏 ,普通单片机驱动稍有吃力,对于刷新速度,大家要有心理准备.

发表于 2015-4-5 21:32 | 显示全部楼层
虽说TFT屏我用的很少,不过多备几片也不错,强烈支持楼主~
发表于 2015-4-5 21:40 | 显示全部楼层
看了帖子,立马去楼主那订了10片,以后慢慢用

本版积分规则

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

GMT+8, 2024-5-10 03:44 , Processed in 0.085632 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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