xylch101 发表于 2008-6-27 12:51:26

3310/5110 LCD 驱动,一个函数实现任意位置放中英文字符,图片

才写好的3310/5110 LCD 驱动,可以在x=0-84,y=0-48的任意坐标上放字符,图片。可以图文混排,想怎么排就怎么排。

修正过的文件ourdev_329422.rar(文件大小:8K) (原文件名:Atmega16L_Nokia_5100_LCD_Driver.rar)

(另外:有地方不懂,程序数据过大会有什么后果,我在点阵数组里加入过多的点阵数据的话程序就不能运行或运行不正常,删掉一部分点阵数据后就正常了,是超出flash大小了吗?怎么判断程序是否超出大小了?我现在做法就是运行正常了就加数据,不正常就减数据,减到正常为止。)

上午传的main.c里用于演示的几个字符位置设置有问题,有几个字符重叠了,修正了一下,顺便上两张图。

hn_ny_dxs 发表于 2008-6-27 14:41:04

发点图看看效果嘛.

xylch101 发表于 2008-6-27 14:49:35

等晚上回家传。

xylch101 发表于 2008-6-27 20:45:07

http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_328923.jpg
图1 (原文件名:1.jpg)
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_328942.jpg
图片2 (原文件名:2.jpg)
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_329002.jpg
图片3 (原文件名:3.jpg)

wangguanfu 发表于 2008-6-27 21:20:51

标记,应该穿KU子

wangguanfu 发表于 2008-6-27 23:16:47

""(另外:有地方不懂,程序数据过大会有什么后果,我在点阵数组里加入过多的点阵数据的话程序就不能运行或运行不正常,删掉一部分点阵数据后就正常了,是超出flash大小了吗?怎么判断程序是否超出大小了?我现在做法就是运行正常了就加数据,不正常就减数据,减到正常为止。)""

原因M16的SRAM溢出了!!!
更改1:
void BufferPixelStuff( unsigned char type, unsigned char index, unsigned char x, unsigned char y, unsigned char width, unsigned char height)
{
        unsigned char i, j, tmpRow;
        unsigned char row = y / 8;
        unsigned char offset = y % 8;
        unsigned char level = ( height % 8 ==0?height/8:(height/8+ 1 ) );
       
        unsigned char bytes[ 2 ] = { 0 };
        unsigned char byteTmp;
        //pgm_read_byte(&write_chinese_string)
        for( j=0; j < width; j++ )
        {
                tmpRow = row;
                byteTmp = UnClear( LcdPixelBuffer[ tmpRow ][ x + j ], 8 - offset );
               
                for( i=0; i < level; i++ )
                {
                        if( type == 1 )
                        {
                                SplitByte( pgm_read_byte( &PIXEL_BMP[ index ][ i * width + j ] ), offset, bytes);
                        }
                        else if( type == 2 )
                        {
                                SplitByte( pgm_read_byte( &PIXEL_ENGLISH_CHAR[ index - 32 ][ i * width + j ]), offset, bytes);
                        }
                        else if( type == 3 )
                        {
                                SplitByte( pgm_read_byte( &PIXEL_CHINESE_CHAR[ index ][ i * width + j ] ), offset, bytes);
                        }
                        else
                        {
                                return;
                        }
       
                        LcdPixelBuffer[ tmpRow++ ][ x + j ] = byteTmp | bytes[ 0 ];
                        byteTmp = bytes[ 1 ];
                }               
                LcdPixelBuffer[ tmpRow ][ x + j ] = byteTmp | LnClear( LcdPixelBuffer[ tmpRow ] , ( offset + height ) % 8 );
        }
}
///////////////////////////////////////////////////////////////////////////////////////////////
更改2:
/*******************************************************
文件名        :        PixelStuff.h
描述                :        点阵数据
作者                :        xylch101
编辑器        :        Notepad 2
日期                :        2008年06月27日
*******************************************************/

#ifndef PIXEL_STUFF_H
#define PIXEL_STUFF_H

#include <avr/pgmspace.h>

/*********************************************
数组名        :        PIXEL_ENGLISH_CHAR
功能                :        5X7ASCII点阵数据
编辑器        :        Notepad 2
*********************************************/
const prog_char PIXEL_ENGLISH_CHAR[ ][ 5 ] =
{
    { 0x00, 0x00, 0x00, 0x00, 0x00 },// sp
    { 0x00, 0x00, 0x2f, 0x00, 0x00 },   // !
    { 0x00, 0x07, 0x00, 0x07, 0x00 },   // "
    { 0x14, 0x7f, 0x14, 0x7f, 0x14 },   // #
    { 0x24, 0x2a, 0x7f, 0x2a, 0x12 },   // $
    { 0xc4, 0xc8, 0x10, 0x26, 0x46 },   // %
    { 0x36, 0x49, 0x55, 0x22, 0x50 },   // &
    { 0x00, 0x05, 0x03, 0x00, 0x00 },   // '
    { 0x00, 0x1c, 0x22, 0x41, 0x00 },   // (
    { 0x00, 0x41, 0x22, 0x1c, 0x00 },   // )
    { 0x14, 0x08, 0x3E, 0x08, 0x14 },   // *
    { 0x08, 0x08, 0x3E, 0x08, 0x08 },   // +
    { 0x00, 0x00, 0x50, 0x30, 0x00 },   // ,
    { 0x10, 0x10, 0x10, 0x10, 0x10 },   // -
    { 0x00, 0x60, 0x60, 0x00, 0x00 },   // .
    { 0x20, 0x10, 0x08, 0x04, 0x02 },   // /
    { 0x3E, 0x51, 0x49, 0x45, 0x3E },   // 0
    { 0x00, 0x42, 0x7F, 0x40, 0x00 },   // 1
    { 0x42, 0x61, 0x51, 0x49, 0x46 },   // 2
    { 0x21, 0x41, 0x45, 0x4B, 0x31 },   // 3
    { 0x18, 0x14, 0x12, 0x7F, 0x10 },   // 4
    { 0x27, 0x45, 0x45, 0x45, 0x39 },   // 5
    { 0x3C, 0x4A, 0x49, 0x49, 0x30 },   // 6
    { 0x01, 0x71, 0x09, 0x05, 0x03 },   // 7
    { 0x36, 0x49, 0x49, 0x49, 0x36 },   // 8
    { 0x06, 0x49, 0x49, 0x29, 0x1E },   // 9
    { 0x00, 0x36, 0x36, 0x00, 0x00 },   // :
    { 0x00, 0x56, 0x36, 0x00, 0x00 },   // ;
    { 0x08, 0x14, 0x22, 0x41, 0x00 },   // <
    { 0x14, 0x14, 0x14, 0x14, 0x14 },   // =
    { 0x00, 0x41, 0x22, 0x14, 0x08 },   // >
    { 0x02, 0x01, 0x51, 0x09, 0x06 },   // ?
    { 0x32, 0x49, 0x59, 0x51, 0x3E },   // @
    { 0x7E, 0x11, 0x11, 0x11, 0x7E },   // A
    { 0x7F, 0x49, 0x49, 0x49, 0x36 },   // B
    { 0x3E, 0x41, 0x41, 0x41, 0x22 },   // C
    { 0x7F, 0x41, 0x41, 0x22, 0x1C },   // D
    { 0x7F, 0x49, 0x49, 0x49, 0x41 },   // E
    { 0x7F, 0x09, 0x09, 0x09, 0x01 },   // F
    { 0x3E, 0x41, 0x49, 0x49, 0x7A },   // G
    { 0x7F, 0x08, 0x08, 0x08, 0x7F },   // H
    { 0x00, 0x41, 0x7F, 0x41, 0x00 },   // I
    { 0x20, 0x40, 0x41, 0x3F, 0x01 },   // J
    { 0x7F, 0x08, 0x14, 0x22, 0x41 },   // K
    { 0x7F, 0x40, 0x40, 0x40, 0x40 },   // L
    { 0x7F, 0x02, 0x0C, 0x02, 0x7F },   // M
    { 0x7F, 0x04, 0x08, 0x10, 0x7F },   // N
    { 0x3E, 0x41, 0x41, 0x41, 0x3E },   // O
    { 0x7F, 0x09, 0x09, 0x09, 0x06 },   // P
    { 0x3E, 0x41, 0x51, 0x21, 0x5E },   // Q
    { 0x7F, 0x09, 0x19, 0x29, 0x46 },   // R
    { 0x46, 0x49, 0x49, 0x49, 0x31 },   // S
    { 0x01, 0x01, 0x7F, 0x01, 0x01 },   // T
    { 0x3F, 0x40, 0x40, 0x40, 0x3F },   // U
    { 0x1F, 0x20, 0x40, 0x20, 0x1F },   // V
    { 0x3F, 0x40, 0x38, 0x40, 0x3F },   // W
    { 0x63, 0x14, 0x08, 0x14, 0x63 },   // X
    { 0x07, 0x08, 0x70, 0x08, 0x07 },   // Y
    { 0x61, 0x51, 0x49, 0x45, 0x43 },   // Z
    { 0x00, 0x7F, 0x41, 0x41, 0x00 },   // [
    { 0x55, 0x2A, 0x55, 0x2A, 0x55 },   // 55
    { 0x00, 0x41, 0x41, 0x7F, 0x00 },   // ]
    { 0x04, 0x02, 0x01, 0x02, 0x04 },   // ^
    { 0x40, 0x40, 0x40, 0x40, 0x40 },   // _
    { 0x00, 0x01, 0x02, 0x04, 0x00 },   // '
    { 0x20, 0x54, 0x54, 0x54, 0x78 },   // a
    { 0x7F, 0x48, 0x44, 0x44, 0x38 },   // b
    { 0x38, 0x44, 0x44, 0x44, 0x20 },   // c
    { 0x38, 0x44, 0x44, 0x48, 0x7F },   // d
    { 0x38, 0x54, 0x54, 0x54, 0x18 },   // e
    { 0x08, 0x7E, 0x09, 0x01, 0x02 },   // f
    { 0x0C, 0x52, 0x52, 0x52, 0x3E },   // g
    { 0x7F, 0x08, 0x04, 0x04, 0x78 },   // h
    { 0x00, 0x44, 0x7D, 0x40, 0x00 },   // i
    { 0x20, 0x40, 0x44, 0x3D, 0x00 },   // j
    { 0x7F, 0x10, 0x28, 0x44, 0x00 },   // k
    { 0x00, 0x41, 0x7F, 0x40, 0x00 },   // l
    { 0x7C, 0x04, 0x18, 0x04, 0x78 },   // m
    { 0x7C, 0x08, 0x04, 0x04, 0x78 },   // n
    { 0x38, 0x44, 0x44, 0x44, 0x38 },   // o
    { 0x7C, 0x14, 0x14, 0x14, 0x08 },   // p
    { 0x08, 0x14, 0x14, 0x18, 0x7C },   // q
    { 0x7C, 0x08, 0x04, 0x04, 0x08 },   // r
    { 0x48, 0x54, 0x54, 0x54, 0x20 },   // s
    { 0x04, 0x3F, 0x44, 0x40, 0x20 },   // t
    { 0x3C, 0x40, 0x40, 0x20, 0x7C },   // u
    { 0x1C, 0x20, 0x40, 0x20, 0x1C },   // v
    { 0x3C, 0x40, 0x30, 0x40, 0x3C },   // w
    { 0x44, 0x28, 0x10, 0x28, 0x44 },   // x
    { 0x0C, 0x50, 0x50, 0x50, 0x3C },   // y
    { 0x44, 0x64, 0x54, 0x4C, 0x44 }    // z
};

/*********************************************
数组名        :        PIXEL_CHINESE_CHAR
功能                :        12X12中文点阵数据
编辑器        :        Notepad 2
*********************************************/
const prog_char PIXEL_CHINESE_CHAR[ ][ 24 ] PROGMEM =
{
        //我
        {
        0x8a, 0x8a, 0x4a, 0xfe, 0x49, 0x28, 0x7f, 0x88, 0x49, 0x2a, 0x08, 0x00, 0x00, 0x04, 0x04, 0x07,
        0x02, 0x02, 0x01, 0x01, 0x02, 0x04, 0x07, 0x00},

        //们
        {
        0x10, 0xfc, 0x03, 0x00, 0xfd, 0x02, 0x04, 0x02, 0x02, 0x02, 0xfe, 0x00, 0x00, 0x07, 0x00, 0x00,
        0x07, 0x00, 0x00, 0x00, 0x04, 0x04, 0x07, 0x00}
       
};

/*********************************************
数组名        :        PIXEL_BMP
功能                :        48X24图片点阵数据
编辑器        :        Notepad 2
*********************************************/
const prog_char PIXEL_BMP[ ][ 144 ] PROGMEM =
{
        {
                0x00,0x00,0x00,0x00,0x80,0xE0,0xFC,0xFF,0xFF,0xFF,0x7F,0xFF,0xFE,0xFC,0xF0,0xC1,
                0x0F,0x7F,0xFF,0xFF,0xFE,0xF0,0xC0,0x00,0x00,0x00,0xC0,0xF8,0xFE,0xFF,0xFF,0x3F,
                0x07,0xC1,0xF0,0xFE,0xFF,0xFF,0xFF,0x1F,0x07,0x8F,0xCF,0xFF,0xFF,0xFF,0xFE,0xFC,
                0x00,0x80,0xF0,0xFC,0xFF,0xFF,0xFF,0x7F,0x7F,0x78,0x78,0x79,0x7F,0x7F,0xFF,0xFF,
                0xFC,0xF0,0xC1,0x07,0x1F,0xFF,0xFF,0xFE,0xFC,0xFF,0xFF,0xFF,0x1F,0x07,0xC1,0xF0,
                0xFE,0xFF,0xFF,0x3F,0x0F,0x0F,0x7F,0xFF,0xFF,0xFF,0xFF,0xE7,0x07,0x03,0x01,0x00,
                0x02,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
                0x03,0x03,0x03,0x03,0x00,0x00,0x03,0x1F,0x3F,0x1F,0x07,0x00,0x00,0x02,0x03,0x03,
                0x03,0x03,0x01,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x00
        }
};

#endif

xylch101 发表于 2008-6-28 09:10:06

非常感谢楼上的!我是avr初学者,只是有一点儿c基础,对avr lib不是很了解。刚刚查了下,知道了 SRAM 内变量的使用,FLASH 内变量的使用,EEPROM 内变量的使用,再次感谢!下面是我查到的一点资料。




AVR 系列单片机内部有三种类型的被独立编址的存储器,它们分别为:Flash 程序存储器、内部SRAM 数据存储器和EEPROM 数据存储器。
    Flash 存储器为1K~128K 字节,支持并行编程和串行下载,下载寿命通常可达10,000 次。由于AVR 指令都为16 位或32 位,程序计数器对它按字进行寻址,因此FLASH 存储器按字组织的,但在程序中访问 FLASH 存储区时专用指令LPM 可分别读取指定地址的高低字节。
    寄存器堆(R0~R31)、I/O 寄存器和SRAM 被统一编址。所以对寄存器和I/O 口的操作使用与访问内部SRAM 同样的指令。32 个通用寄存器被编址到最前,I/O 寄存器占用接下来的64 个地址。从0X0060 开始为内部SRAM。外部SRAM 被编址到内部SRAM 后。
    AVR 单片机的内部有64~4K 的EEPROM 数据存储器,它们被独立编址,按字节组织。擦写寿命可达100,000 次。

1. I/O 寄存器操作
    I/O 专用寄存器(SFR)被编址到与内部SRAM 同一个地址空间,为此对它的操作和SRAM 变量操作类似。
    SFR 定义文件的包含:
    #include <avr/io.h>
    io.h 文件在编译器包含路径下的avr 目录下,由于AVR 各器件间存在同名寄存器地址有不同的问题,io.h 文件不直接定义SFR 寄存器宏,它根据在命令行给出的 –mmcu 选项再包含合适的 ioxxxx.h 文件。在器件对应的ioxxxx.h 文件中定义了器件SFR 的预处理宏,在程序中直接对它赋值或引用的方式读写SFR,如:
    PORTB=0XFF;
    Val=PINB;
    从io.h 和其总包含的头文件sfr_defs.h 可以追溯宏PORTB 的原型在io2313.h 中定义:
    #define PORTB _SFR_IO8(0x18)
    在sfr_defs.h 中定义:
    #define _SFR_IO8(io_addr) _MMIO_BYTE((io_addr) + 0x20)
    #define _MMIO_BYTE(mem_addr) (*(volatile uint8_t *)(mem_addr))
    这样PORTB=0XFF; 就等同于 *(volatile unsigned char *)(0x38)=0xff;
0x38 在器件AT90S2313 中PORTB 的地址对SFR 的定义宏进一步说明了SFR 与SRAM 操作的相同点。
    关键字volatile 确保本条指令不会因C 编译器的优化而被省略。

2. SRAM 内变量的使用
    一个没有其它属性修饰的 C 变量定义将被指定到内部SRAM,avr-libc 提供一个整数类型定义文件inttype.h,其中定义了常用的整数类型如下表:
    定义值长度(字节) 值范围
    int8_t 1 -128~127
    uint8_t 1 0~255
    int16_t 2 -32768~32767
    uint16_t 2 0~65535
    int32_t 4 -2147483648~2147483647
    uint32_t 4 0~4294967295
    int64_t 8 -9.22*10^18~-9.22*10^18
    uint64_t 8 0~1.844*10^19
    根据习惯,在程序中可使用以上的整数定义。定义、初始化和引用
如下示例:
    uint8_t val=8; 定义了一个SRAM 变量并初始化成8
    val=10; 改变变量值
    const uint8_t val=8; 定义SRAM 区常量
    register uint8_t val=10; 定义寄存器变量
3. 在程序中访问FLASH 程序存储器
    avr-libc 支持头文件:pgmspace.h
    #include < avr/pgmspace.h >
    在程序存储器内的数据定义使用关键字 __attribute__((__progmem__))。在pgmspace.h
中它被定义成符号 PROGMEM。
(1). FLASH 区整数常量应用
定义格式:
数据类型 常量名 PROGMEM = 值 ;
如:
char val8 PROGMEM = 1 ;
int val16 PROGMEM = 1 ;
long val32 PROGMEM =1 ;
对于不同长度的整数类型 avr-libc 提供对应的读取函数:
pgm_read_byte(prog_void * addr)
pgm_read-word(prg_void *addr)
pgm_read_dword(prg_void* addr)
    另外在pgmspace.h 中定义的8 位整数类型 prog_char prog_uchar 分别指定在FLASH 内的8 位有符号整数和8 位无符号整数。应用方式如下:
char ram_val; //ram 内的变量
const prog_char flash_val = 1; //flash 内常量
ram_val=pgm_read_byte(&flash_val); //读flash 常量值到RAM 变量
    对于应用程序FLASH 常量是不可改变的,因此定义时加关键字const 是个好的习惯。
(2). FLASH 区数组应用:
定义:
const prog_uchar flash_array[] = {0,1,2,3,4,5,6,7,8,9}; //定义
另外一种形式
const unsigned char flash_array[] RROGMEM = {0,1,2,3,4,5,6,7,8,9};
读取示例:
unsigend char I, ram_val;
for(I=0 ; I<10 ;I ++) // 循环读取每一字节
{
ram_val = pgm_read_byte(flash_array + I);
… … //处理
}
(3).FLASH 区字符串常量的应用
全局定义形式:
const char flash_str[] PROGMEM = “Hello, world!”;
函数内定义形式:
const char *flash_str = PSTR(“Hello, world!”);
以下为一个FLASH 字符串应用示例
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <stdio.h>
const char flash_str1[] PROGMEM = “全局定义字符串”;
int main(void)
int I;
char *flash_str2=PSTR(“函数内定义字符串”);
while(1)
{
scanf(“%d”,&I);
printf_P(flash_str1);
printf(“\n”);
printf_P(flash_str2);
printf(“\n”);
}
}
4. EEPROM 数据存储器操作
    #include <avr/eeprom.h>
    头文件声明了avr-libc 提供的操作EEPROM 存储器的API 函数。
    这些函数有:
eeprom_is_ready() //EEPROM 忙检测(返回EEWE 位)
eeprom_busy_wait() //查询等待EEPROM 准备就绪
uint8_t eeprom_read_byte (const uint8_t *addr) //从指定地址读一字节
uint16_t eeprom_read_word (const uint16_t *addr) //从指定地址一字
void eeprom_read_block (void *buf, const void *addr, size_t n) //读块
void eeprom_write_byte (uint8_t *addr, uint8_t val) //写一字节至指定地址
void eeprom_write_word (uint16_t *addr, uint16_t val) //写一字到指定地址
void eeprom_write_block (const void *buf, void *addr, size_t n)//写块
在程序中对EEPROM 操作有两种方式
方式一:直接指定EERPOM 地址
示例:

#include <avr/io.h>
#include <avr/eeprom.h>
int main(void)
{
unsigned char val;
eeprom_busy_wait(); //等待EEPROM 读写就绪
eeprom_write_byte(0,0xaa); //将0xaa 写入到EEPORM 0 地址处
eeprom_busy_wait();
val=eeprom_read_byte(0); //从EEPROM 0 地址处读取一字节赋给RAM 变量val
while(1);
}
方式二:先定义EEPROM 区变量法
示例:
#include <avr/io.h>
#include <avr/eeprom.h>
unsigned char val1 __attribute__((section(".eeprom")));//EEPROM 变量定义方式
int main(void)
{
unsigned char val2;
eeprom_busy_wait();
eeprom_write_byte (&val1, 0xAA);
eeprom_busy_wait();
val2 = eeprom_read_byte(&val1);
while(1);
}
    在这种方式下变量在EEPROM 存储器内的具体地址由编译器自动分配。相对方式一,数据在EEPROM 中的具体位置是不透明的。为EEPROM 变量赋的初始值,编译时被分配到.eeprom 段中,可用avr-objcopy 工具从.elf 文件中提取并产生ihex 或binary 等格式的文件。

xylch101 发表于 2008-6-28 09:45:27

按照您的修改后,程序完全好了,右下角的几个杂点也没了。以前总是存不了4句诗,现在好了。上面文件已经修改过了。再次感谢 wangguanfu!!!

armok 发表于 2008-6-28 10:25:32

COOL !

xylch101 发表于 2008-6-28 11:16:23

哈哈!修改之后全屏图片都能存放好几张了。(感谢站长加酷)

http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_329564.jpg
(原文件名:0628_105203.jpg)
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_329566.jpg
(原文件名:0628_104941.jpg)

aleyn 发表于 2008-6-28 11:22:56

楼主的LCD在哪里买的?

xylch101 发表于 2008-6-28 11:35:49

类似这种经过简单封装的LCD好像也不少吧?这个网站上就有,淘宝上也有,不难找到的,我知道3310和5110的程序是完全兼容的。

xylch101 发表于 2008-7-4 16:29:05

http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_338804.gif
(原文件名:S004.gif)

我靠!!这个网站流量这么大!!这才几天不见,这个帖子就被“顶”到第5页去了,好不容易被我找到了。

fu2008 发表于 2008-9-13 16:52:54

好东东.

feixue 发表于 2008-9-14 11:12:57

标记,以后过来下载

caplsc 发表于 2008-9-14 14:57:25

图文混排还是比较实用的

xingzhang 发表于 2008-9-14 16:20:07

曾经对这个屏很迷恋

Notonly 发表于 2008-9-15 16:46:03

谢谢,学习了。

mdj-fish 发表于 2008-9-15 21:19:29

yyldsp 发表于 2009-1-9 14:47:39

顶,标记一下

zl0801 发表于 2009-1-9 16:32:55

看屏好像是我这里出售的&nbsp;:-)

litchiate 发表于 2009-1-9 16:47:42

手机标记回家看

mfkqqw 发表于 2009-1-9 17:00:48

""(另外:有地方不懂,程序数据过大会有什么后果,我在点阵数组里加入过多的点阵数据的话程序就不能运行或运行不正常,删掉一部分点阵数据后就正常了,是超出flash大小了吗?怎么判断程序是否超出大小了?我现在做法就是运行正常了就加数据,不正常就减数据,减到正常为止。)""&nbsp;





上次一个朋友还问我用ADS调试时调用一个很大有数组就复位,想了想就是启动代码时设计SRAM少了点,



也想搞一个屏玩玩,可没有什么实用价值利益有点不想花时间,呵呵

mph2004 发表于 2009-1-16 11:12:35

学习了,原来3310和5110LCD是完全兼容的/

zaixian 发表于 2009-1-16 11:22:30

那个淘宝超值8元的液晶,是否也兼容这个程序???



那好像是nokia1110的

hjjun 发表于 2009-1-17 13:42:21

标记!

nicksean 发表于 2009-1-19 17:27:04

mark

zhuwei123 发表于 2009-1-19 21:17:49

谢谢!!

15387150 发表于 2009-1-20 01:14:49

标记一下

tianfenjames 发表于 2009-2-20 20:49:47

问两个问题啊!
1、LCD5110的屏固定的很不好啊,很容易松动,导致屏幕显示有问题啊。有没有什么办法使屏固定的更牢靠啊!

2、屏怎么能固定刷新呢,这样就可以重新连上后继续显示啊!

robinyuan 发表于 2009-2-20 21:14:38

每看到原始的LCD,我就好恨
就是没有封装成DIP脚的LCD来给爱好者

junson 发表于 2009-4-28 11:15:50

我想用这个函数数显示从SD卡中读出的信息。可读出的并不是字符串怎么办?
CacheEnglishString(7,0,5,7,2,"USB/SD CARD");

wisebaby 发表于 2009-4-28 20:25:07

【楼主位】 xylch101

请问:您的"图片"是用的什么软件取模的.是否可以共享一下.谢谢.

wisebaby 发表于 2009-4-29 13:09:53

问问大家.有知道他的"图片"是用的什么软件取模的?

是否可以共享一下.谢谢.

xicanlin 发表于 2009-4-29 14:07:40

不知道为什么我得3310 就是不能显示小字~~只能显示很大的字~~

sange 发表于 2009-4-29 14:14:52

帅气啊

sunliezhi 发表于 2009-4-29 14:39:50

根据汉字内码来查表更灵活

wisebaby 发表于 2009-4-29 14:45:29

谁能回答我在【33楼】的问题.

----------------------------
问问大家.有知道他的"图片"是用的什么软件取模的?

是否可以共享一下.谢谢.

lvlu2008 发表于 2009-5-22 22:51:26

请问一下楼主,你的汉字点阵怎么弄的!!

jeoge 发表于 2009-5-23 12:06:34

不錯,向你學習。

crazier 发表于 2009-5-27 16:46:05

图像怎么取模,取模之后的数据是按照什么样子的规则放置的?又该按什么顺序向lcd里写呢?迷惑中!!!!!!!!!!!!!!!!!!!!!!!!!!

tangqianqian 发表于 2009-5-27 17:00:51

强烈标记一下。

feiyang007 发表于 2009-6-5 00:04:24

请问,51上能用否?

mslmcu 发表于 2009-6-6 14:16:16

mark

zhaojun_xf 发表于 2009-6-6 15:38:14

学习

bnn1044 发表于 2009-7-24 14:34:42

mark一下。回头用着再看

echooy 发表于 2009-7-28 19:40:40

做个标记呀

yu_studio 发表于 2009-7-28 19:58:13

标记

topzjm 发表于 2009-7-30 23:11:56

不错,刚好用到

meijun_80 发表于 2009-7-31 09:04:31

很好!

yanjian 发表于 2009-7-31 09:21:29

论坛怎么没法收藏呀!看到好的就得回复

weekend20 发表于 2009-8-9 01:24:13

有没有引脚信息,我有一个拆机的,不知道引脚!!

kongzizhishi 发表于 2009-8-9 09:01:08

MARK!

ygtqkuang 发表于 2009-8-16 10:01:59

顶了。。。

yuliguo 发表于 2009-8-20 13:21:59

TING

fy024 发表于 2009-8-20 14:17:55

mark

avrallenhu 发表于 2009-8-23 01:33:05

cool!

Nuist_Gwgj 发表于 2009-9-1 11:37:03

COOLCOOL COOLCOOL

kinoko 发表于 2009-9-1 15:46:56

sign

zchenj 发表于 2009-9-1 21:16:41

记号下

iisi 发表于 2009-9-14 16:49:52

mark

51hubao 发表于 2009-9-20 15:43:53

m

yxlcarter 发表于 2009-9-29 10:32:56

好文章,楼主强人啊!!!

huanhuan 发表于 2009-9-29 12:37:23

学习了……

aohuahua 发表于 2009-10-10 01:29:19

cool

alexmayer 发表于 2009-10-10 11:41:36

收藏

yanxiao1227 发表于 2009-10-19 20:42:03

楼主,你的程序我下载下来,好乱啊,中文注释都不能正常显示

sange 发表于 2009-11-5 16:19:50

jihao

baggio18 发表于 2009-11-5 16:28:24

最近搞lcd脑袋都肿了。。。

lvhaian 发表于 2009-11-5 16:42:56

我也收藏下 ^_^

adszmc 发表于 2009-11-5 21:35:43

毕业设计就这个屏整的。。还搞过FLASH。。。。
这屏真的不错,,,,,

li460135301 发表于 2009-11-12 17:59:21

楼主强人!!!研究研究!!!!

wuxinping 发表于 2010-2-9 12:51:41

COOL

lin2266286 发表于 2010-2-10 12:19:46

顶,标记

mslei 发表于 2010-2-10 12:25:00

标记

wangxiaoacc 发表于 2010-2-10 15:02:13

这个屏确实好用

wjc1956 发表于 2010-2-10 19:23:34

mark

moon0213 发表于 2010-3-13 01:15:04

mark

tear086 发表于 2010-3-13 07:53:15

mark

wxfhw 发表于 2010-3-13 08:25:28

顶,标记一下

zhuhong 发表于 2010-3-13 21:05:52

顶 !!!

ringan865 发表于 2010-3-13 21:18:14

mark

Al_xin 发表于 2010-3-13 23:40:55

mark

shouqiang_zhang 发表于 2010-3-15 07:10:34

mark,thanks a lot/

xgl_1982 发表于 2010-3-15 09:18:05

mark,以后好找

tota2004 发表于 2010-3-26 13:46:02

thanks a lot

cain.lee 发表于 2010-4-26 22:36:58

标记一下···马上就可以用啦··哈哈··

1181zjf 发表于 2010-5-11 16:41:43

mark

1181zjf 发表于 2010-5-12 11:52:00

发现一个问题,在while中更新显示,点阵就会整体向右移动,应该是不动的在原位置,有人遇到过吗?

LynFam 发表于 2010-6-27 21:29:18

研究一下3310哈~

code_asf 发表于 2010-6-28 10:08:40

回复【楼主位】xylch101
-----------------------------------------------------------------------

好东西,感谢分享

guhenggao 发表于 2010-6-28 13:44:59

mark

xhdzwzj 发表于 2010-8-6 23:00:44

mark

wbanng 发表于 2010-8-7 08:46:21

mark

xfloveyou886 发表于 2010-8-7 09:10:39

mark

heyking 发表于 2010-8-7 09:29:17

回复【楼主位】xylch101
-----------------------------------------------------------------------

mark

dianzifanfan 发表于 2010-8-10 20:46:13

mark

lpgyf 发表于 2010-8-20 14:35:05

mark

ufo2007 发表于 2010-9-13 18:38:30

脚印

worldly_guest 发表于 2010-9-13 19:55:00

支持!
页: [1] 2
查看完整版本: 3310/5110 LCD 驱动,一个函数实现任意位置放中英文字符,图片