cocoguojia 发表于 2010-9-7 21:26:50

发一个诺基亚5110屏的检测程序,有图片和程序,mcu AT89S51/52

http://cache.amobbs.com/bbs_upload782111/files_33/ourdev_581107ZGU11T.jpg
(原文件名:截图03.jpg)
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//          COCOGUOJIA NOKIA 5110                     //
//                PHILIPS PCD8544 48*48 LCD                  //
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//头文件
#include <AT89X51.H>
#define u8unsigned char
#define u16 unsigned int

u8 nop;
#define nop() nop++

u8 code character_table[]=
{
/*--文字:C--*/
/*--Trebuchet MS11;此字体下对应的点阵为:宽x高=8x14   --*/
/*--高度不是8的倍数,现调整为:宽度x高度=8x16--*/
0xE0,0xF0,0x18,0x08,0x08,0x38,0x38,0x00,0x03,0x07,0x0C,0x08,0x08,0x0C,0x04,0x00,

/*--文字:O--*/
/*--Trebuchet MS11;此字体下对应的点阵为:宽x高=8x14   --*/
/*--高度不是8的倍数,现调整为:宽度x高度=8x16--*/
0xE0,0xF0,0x18,0x08,0x18,0xF0,0xE0,0x00,0x03,0x07,0x0C,0x08,0x0C,0x07,0x03,0x00,

/*--文字:C--*/
/*--Trebuchet MS11;此字体下对应的点阵为:宽x高=8x14   --*/
/*--高度不是8的倍数,现调整为:宽度x高度=8x16--*/
0xE0,0xF0,0x18,0x08,0x08,0x38,0x38,0x00,0x03,0x07,0x0C,0x08,0x08,0x0C,0x04,0x00,

/*--文字:O--*/
/*--Trebuchet MS11;此字体下对应的点阵为:宽x高=8x14   --*/
/*--高度不是8的倍数,现调整为:宽度x高度=8x16--*/
0xE0,0xF0,0x18,0x08,0x18,0xF0,0xE0,0x00,0x03,0x07,0x0C,0x08,0x0C,0x07,0x03,0x00,

/*--文字:G--*/
/*--Trebuchet MS11;此字体下对应的点阵为:宽x高=8x14   --*/
/*--高度不是8的倍数,现调整为:宽度x高度=8x16--*/
0xE0,0xF0,0x18,0x08,0x08,0x38,0x38,0x00,0x03,0x07,0x0C,0x08,0x09,0x0F,0x07,0x01,

/*--文字:U--*/
/*--Trebuchet MS11;此字体下对应的点阵为:宽x高=8x14   --*/
/*--高度不是8的倍数,现调整为:宽度x高度=8x16--*/
0x08,0xF8,0xF8,0x08,0x08,0xF8,0xF8,0x08,0x00,0x07,0x0F,0x08,0x08,0x0F,0x07,0x00,

/*--文字:O--*/
/*--Trebuchet MS11;此字体下对应的点阵为:宽x高=8x14   --*/
/*--高度不是8的倍数,现调整为:宽度x高度=8x16--*/
0xE0,0xF0,0x18,0x08,0x18,0xF0,0xE0,0x00,0x03,0x07,0x0C,0x08,0x0C,0x07,0x03,0x00,

/*--文字:J--*/
/*--Trebuchet MS11;此字体下对应的点阵为:宽x高=8x14   --*/
/*--高度不是8的倍数,现调整为:宽度x高度=8x16--*/
0x00,0x08,0x08,0xF8,0xF8,0x08,0x08,0x00,0x30,0x30,0x20,0x3F,0x1F,0x00,0x00,0x00,

/*--文字:I--*/
/*--Trebuchet MS11;此字体下对应的点阵为:宽x高=8x14   --*/
/*--高度不是8的倍数,现调整为:宽度x高度=8x16--*/
0x00,0x08,0x08,0xF8,0xF8,0x08,0x08,0x00,0x00,0x08,0x08,0x0F,0x0F,0x08,0x08,0x00,

/*--文字:A--*/
/*--Trebuchet MS11;此字体下对应的点阵为:宽x高=8x14   --*/
/*--高度不是8的倍数,现调整为:宽度x高度=8x16--*/
0x00,0x00,0xE0,0xF8,0xF8,0xE0,0x00,0x00,0x08,0x0E,0x0F,0x09,0x09,0x0F,0x0E,0x08,



};

u8 code Chinese_table[]=
{
/*--文字:欢--*/
/*--Trebuchet MS12;此字体下对应的点阵为:宽x高=17x16   --*/
0x34,0x64,0xC4,0xE4,0x7C,0x3C,0x38,0x1F,0xEF,0xE8,0x08,0x28,0x38,0x18,0x08,
0x00,0x20,0x30,0x5C,0x4F,0x43,0x6F,0x2C,0x30,0x1C,0x0F,0x07,0x1E,0x38,0x70,0x60,
0x20

/*--文字:迎--*/
/*--Trebuchet MS12;此字体下对应的点阵为:宽x高=17x16   --*/
,0x41,0xCF,0xCE,0x04,0xFC,0xFC,0x06,0x02,0xFE,0xFC,0x04,0x04,0xFC,0xFC,0x00,
0x00,0x40,0x60,0x3F,0x3F,0x60,0x47,0x47,0x43,0x41,0x5F,0x5F,0x42,0x46,0x47,0x43,
0x40

/*--文字:光--*/
/*--Trebuchet MS12;此字体下对应的点阵为:宽x高=17x16   --*/
,0x40,0x42,0x46,0x5C,0xDC,0xC8,0x7F,0x7F,0xC0,0xD0,0x5E,0x4E,0x64,0x60,0x40,
0x00,0x00,0x80,0xC0,0x60,0x38,0x1F,0x07,0x00,0x00,0x3F,0x7F,0x40,0x40,0x40,0x78,
0x78

/*--文字:临--*/
/*--Trebuchet MS12;此字体下对应的点阵为:宽x高=17x16   --*/
,0xF8,0xF8,0x00,0xFE,0xFE,0x70,0xBF,0x8F,0x0A,0x18,0x78,0x68,0x88,0x88,0x08,
0x00,0x00,0x1F,0x1F,0x00,0x7F,0x7F,0x00,0x7F,0x7F,0x21,0x3F,0x3F,0x21,0x7F,0x7F,
0x01
};

/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//管脚定义(起个小名了~) lcd的内部驱动是PCD8544,一下的芯片即为PCD8544
sbit    RST = P0^1;//芯片复位   0有效
sbit    SCE = P0^0;//芯片使能                0有效
sbit    D_C = P3^4;//模式选择          1写数据   0写指令
sbit    DIN = P3^5;//串行数据线        数据类型---8位
sbit    SCK = P3^6;//串行时钟线   上升沿有效

/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//delay_1ms: 大约延时1ms
void delay_1ms(void)//1ms延时函数
{
        u16 i;
        for (i=0;i<500;i++)
        {
                ;
        }

}


/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//LCD_Write_Byte: 写数据或命令到LCD
//输入参数:u8 Data_or_Command:要写入的数据或命令;
//                        u8 D_or_C:1 写数据/ 0 写命令

void LCD_Write_Byte(u8 Data_or_Command,u8 D_or_C)
{
        u8 i;
        SCE=0;//选择芯片       
        D_C=D_or_C;// 数据? 命令?       
        for(i=0;i<8;i++)//写
        {
                if(0x80==(Data_or_Command&0x80))
                {
                        DIN=1;
                }
                else
                {
                        DIN=0;
                }

       
                Data_or_Command<<=1;//移位
               
                //造个上升沿       
                SCK=0;
                nop();
                nop();
                nop();
                nop();
                SCK=1;
        }
        //回复到安全状态 保险       
        D_C=1;       
        SCE=1;       
        DIN=1;
}


/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//LCD_init: LCD初始化
void LCD_init(void)
{
        RST=0;       
        delay_1ms();
        RST=1;
        delay_1ms();
        LCD_Write_Byte(0x21,0);//初始化Lcd,功能设定使用扩充指令
        LCD_Write_Byte(0xd0,0);//设定液晶偏置电压
        LCD_Write_Byte(0x20,0);//使用基本指令 水平寻址

        //LCD_Write_Byte(0x0C,0);//设定显示模式,正常显示
        LCD_Write_Byte(0x0D,0);//设定显示模式,反白显示
}

/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//LCD_Set_XY: 设置LCD坐标函数 用于准备显示高度是‘8个点’的汉字或字母
//输入参数:X:0-83Y:0-5
void LCD_Set_XY(u8 X, u8 Y)
{
        LCD_Write_Byte(0x40 | Y, 0);// 竖
        LCD_Write_Byte(0x80 | X, 0);// 横
}

/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//LCD_Clear: LCD清屏函数
void LCD_Clear(void)
{
        u8 x;
        u8 y;
        LCD_Set_XY(0,0);

        for(y=0;y<=5;y++)
        {
                for(x=0;x<=83;x++)
                {
                        LCD_Write_Byte(0x00,1);                               
                }
        }
}



/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//LCD_Write_ABC: 显示8(宽)*16(高)点阵列数字字母符号等半角类
//输入参数: x:
//                        y:
//                        ABC:显示的字符的序号

void LCD_Write_ABC(u8 x, u8 y,u8 ABC) //x:横 y:竖 ABC:字符的序号
{
        u8 i;       
       
        LCD_Set_XY(x*8, y);//横 ,竖
        for(i=0; i<8;i++)
        {
                LCD_Write_Byte(character_table,1);
        }
       
    LCD_Set_XY(x*8, y+1);//横 ,竖
        for(i=8; i<16;i++)
        {
                LCD_Write_Byte(character_table,1);
        }              
}


/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//LCD_Write_Chinese: 显示16(宽)*16(高)点阵列汉字等半角类
//输入参数:
//                        x:
//                        y:
//                        Chinese:显示的汉字的序号

void LCD_Write_Chinese(u8 x, u8 y,u8 Chinese)
{
        unsigned char i;       
       
        LCD_Set_XY(x*8, y);// 列,页
        for(i=0; i<16;i++)
        {
                LCD_Write_Byte(Chinese_table,1);
        }
       
           LCD_Set_XY(x*8, y+1);// 列,页
        for(i=16; i<32;i++)
        {
                LCD_Write_Byte(Chinese_table,1);
        }       
}

void main(void)
{
        unsigned char k;
        RST=0;
        for(k=0;k<250;k++);
        RST=1;                 

        LCD_init();
        LCD_Clear();

        LCD_Write_ABC(0,1,0);
        LCD_Write_ABC(1,1,1);       
        LCD_Write_ABC(2,1,2);
        LCD_Write_ABC(3,1,3);
        LCD_Write_ABC(4,1,4);
        LCD_Write_ABC(5,1,5);       
        LCD_Write_ABC(6,1,6);
        LCD_Write_ABC(7,1,7);
        LCD_Write_ABC(8,1,8);
        LCD_Write_ABC(9,1,9);

    LCD_Write_Chinese(1,3,0);
        LCD_Write_Chinese(3,3,1);
        LCD_Write_Chinese(5,3,2);
        LCD_Write_Chinese(7,3,3);

        while(1)
        {
            ;       
        }
}

Argee 发表于 2010-9-8 02:38:35

挺好,学习个。

gmolzc 发表于 2010-9-8 07:52:13

頂下!

jordonwu 发表于 2010-9-8 09:24:49

頂下!

simonpang 发表于 2010-9-8 09:32:32

支持一下~~

cocoguojia 发表于 2010-9-8 21:30:55

再续发个显示 Silicon Lab LOGO 的程序,5110的屏显示图片也很简便,就是像素限制(48*84),只能显示简单的图片

正常 or 反白 显示每隔大约3秒就交替一次


http://cache.amobbs.com/bbs_upload782111/files_33/ourdev_581437X8JH9O.jpg
(原文件名:截图01.jpg)

http://cache.amobbs.com/bbs_upload782111/files_33/ourdev_581436OP0MYC.jpg
(原文件名:截图00.jpg)

/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//                                COCOGUOJIA NOKIA 5110                                           //
//                PHILIPS PCD8544 48*48 LCD                  //
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//头文件
#include <AT89X51.H>
#define u8unsigned char
#define u16 unsigned int

u8 nop;
#define nop() nop++


u8 code pic_table[]=
{
/*--宽度x高度=80x40--*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x80,0x80,0xC0,0xC0,0xC0,0xE0,0xE0,0xE0,0x60,0x70,0x70,0x30,0x38,0x38,
0x18,0x18,0x1C,0x1C,0x0C,0x0C,0x8C,0x8E,0xCE,0xC6,0xE6,0xE6,0xE2,0xF2,0xF2,0xF0,
0xF0,0xF0,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF0,0xF0,
0xF0,0xF0,0xE0,0xE0,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x0C,0x0C,

0x80,0x80,0xC0,0xE0,0xF0,0xF0,0xF8,0xF8,0xFC,0xFC,
0xFE,0xFE,0xFF,0x3F,0x1F,0x0F,0x07,0x07,0x03,0x01,0x01,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x60,0xF8,0xFC,0xFE,0xFE,0xFF,0xFF,0x7F,0x7F,0x7F,0x3F,0x3F,0x3F,
0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x7F,0x7F,0x7B,0xF8,0xF8,0xF8,0xF0,0xF0,0xF0,
0xF8,0xF8,0xF8,0xFC,0xFC,0xFE,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xF8,0xF8,0xF0,0xF0,0xF0,0xE0,0xE0,0xE0,
0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC1,0xC3,0xC7,0xC7,0xC7,0xC7,0xC6,
0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xE6,0xEE,0xEE,0xFE,0xFC,0xFC,0xFC,
0xF8,0xF8,0xF0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x01,0x01,0x83,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xBF,0x0F,0x0F,0x07,0x03,0x01,0x01,0x00,0x00,0x00,0x01,0x01,
0x01,0x1D,0x3F,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0x3F,0x3F,0x3F,
0x1F,0x1F,0x0F,0x0F,0x07,0x03,0x01,0x80,0xC0,0xC0,0xC0,0xE0,0x60,0x60,0x70,0x30,
0x38,0x18,0x1C,0x1C,0x0E,0x0E,0x07,0x07,0x03,0x03,0x01,0x01,0x00,0x00,

0x00,0x00,0x01,0x01,0x03,0x03,0x03,0x07,0x06,0x06,0x04,0x04,0x04,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00


};

/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//管脚定义(起个小名了~) lcd的内部驱动是PCD8544,一下的芯片即为PCD8544
sbit    RST = P0^1;//芯片复位   0有效
sbit    SCE = P0^0;//芯片使能                0有效
sbit    D_C = P3^4;//模式选择          1写数据   0写指令
sbit    DIN = P3^5;//串行数据线        数据类型---8位
sbit    SCK = P3^6;//串行时钟线   上升沿有效

/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//delay_1ms: 大约延时1ms
void delay_1ms(void)//1ms延时函数
{
        u16 i;
        for (i=0;i<500;i++)
        {
                ;
        }

}




/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//delay_3s: 大约延时3s        里面的1ms的延时不太准
void delay_3s(void)
{
        u16 i;
        for(i=1;i<=1200;i++)
        {
                delay_1ms();
        }
}






/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//LCD_Write_Byte: 写数据或命令到LCD
//输入参数:u8 Data_or_Command:要写入的数据或命令;
//                        u8 D_or_C:1 写数据/ 0 写命令

void LCD_Write_Byte(u8 Data_or_Command,u8 D_or_C)
{
        u8 i;
        SCE=0;//选择芯片       
        D_C=D_or_C;// 数据? 命令?       
        for(i=0;i<8;i++)//写
        {
                if(0x80==(Data_or_Command&0x80))
                {
                        DIN=1;
                }
                else
                {
                        DIN=0;
                }

       
                Data_or_Command<<=1;//移位
               
                //造个上升沿       
                SCK=0;
                nop();
                nop();
                nop();
                nop();
                SCK=1;
        }
        //回复到安全状态 保险       
        D_C=1;       
        SCE=1;       
        DIN=1;
}


/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//LCD_init: LCD初始化
void LCD_init(void)
{
        RST=0;       
        delay_1ms();
        RST=1;
        delay_1ms();
        LCD_Write_Byte(0x21,0);//初始化Lcd,功能设定使用扩充指令
        LCD_Write_Byte(0xd0,0);//设定液晶偏置电压
        LCD_Write_Byte(0x20,0);//使用基本指令 水平寻址

        LCD_Write_Byte(0x0C,0);//设定显示模式,正常显示
        //LCD_Write_Byte(0x0D,0);//设定显示模式,反白显示
}

/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//LCD_Set_XY: 设置LCD坐标函数 用于准备显示高度是‘8个点’的汉字或字母
//输入参数:X:0-83Y:0-5
void LCD_Set_XY(u8 X, u8 Y)
{
        LCD_Write_Byte(0x40 | Y, 0);// 竖
        LCD_Write_Byte(0x80 | X, 0);// 横
}

/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//LCD_Clear: LCD清屏函数
void LCD_Clear(void)
{
        u8 x;
        u8 y;
        LCD_Set_XY(0,0);

        for(y=0;y<=5;y++)
        {
                for(x=0;x<=83;x++)
                {
                        LCD_Write_Byte(0x00,1);                               
                }
        }
}

/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//LCD_Clear: LCD清屏函数 从0开始计数的 第5行
void LCD_Clear5(void)
{
        u8 x;
        LCD_Set_XY(0,5);
        for(x=0;x<=83;x++)
        {
                LCD_Write_Byte(0xFF,1);                               
        }

}


/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//LCD_Write_pic: 显示 80(宽)* 8(高) 做图
//输入参数:
//                        x:
//                        y:
//                        pic: 图片 高8 宽80 的图片截图 序号

void LCD_Write_pic(u8 x, u8 y,u8 pic)
{
        unsigned char i;       
       
        LCD_Set_XY(x*8, y);// 列,页

        for(i=0; i<80;i++)
        {
                LCD_Write_Byte(pic_table,1);
        }
}


/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
void main(void)
{
        LCD_init();
        LCD_Clear();

        LCD_Write_Byte(0x0C,0);//设定显示模式,正常显示
       
        LCD_Write_pic(0,0,0);
        LCD_Write_pic(0,1,1);
        LCD_Write_pic(0,2,2);
        LCD_Write_pic(0,3,3);
        LCD_Write_pic(0,4,4);


        while(1)
        {
            delay_3s();
          LCD_Clear();
                LCD_Write_Byte(0x0D,0);//设定显示模式,反白显示
                LCD_Write_pic(0,0,0);
                LCD_Write_pic(0,1,1);
                LCD_Write_pic(0,2,2);
                LCD_Write_pic(0,3,3);
                LCD_Write_pic(0,4,4);
                LCD_Clear5();

                delay_3s();
          LCD_Clear();
          LCD_Write_Byte(0x0C,0);//设定显示模式,正常显示       
                LCD_Write_pic(0,0,0);
                LCD_Write_pic(0,1,1);
                LCD_Write_pic(0,2,2);
                LCD_Write_pic(0,3,3);
                LCD_Write_pic(0,4,4);
       
        }
}

我再上传我买5110时卖家送的5110完全资料,里面有程序范例、资料文档和字模软件,共大家学习,资料共享

点击此处下载 ourdev_581450RKGL1X.rar(文件大小:1.83M) (原文件名:nokia5110原始资料.rar)

wdwgroup 发表于 2010-9-14 22:14:50

谢谢,收下了

wkman 发表于 2010-9-14 22:55:19

cocoguojia 发表于 2010-9-16 10:26:27

回复【7楼】wkman 鱼片
-----------------------------------------------------------------------

无内容? 我试了试下载链接,可以下载下来。

无内容?何解?

arvidwen 发表于 2010-11-2 16:28:38

感谢分享

wjchao111 发表于 2010-11-16 15:52:41

我用STC89C52RC,unsigned char code 定义数组,只能放256个元素,多了就不行了,是ROM的问题吗?求解

wangshaosh 发表于 2010-11-17 10:16:39

楼上搞错了吧code是ROM区可以存放8K左右的数据

256估计是RAM吧使用的变量不能太多咾

eduhf_123 发表于 2010-11-17 10:31:13

楼主位的图片,貌似下面16行向右错位了一个像素。

msq-tc 发表于 2010-11-17 12:00:08

mark

cocoguojia 发表于 2010-11-19 11:25:07

回复【12楼】eduhf_123 经历
-----------------------------------------------------------------------

程序没有错,可能我的图片取模没取好,我用图片取模工具打开图片后,先是手动修改了下,呵呵

cocoguojia 发表于 2010-11-19 11:28:15

回复【10楼】wjchao111
-----------------------------------------------------------------------

编译软件的原因,即使写到flash区,没有超flash,如果数组太大,编译软件也会报错

编译软件不同对flash中存的数组元素也有限制

比如 CVAVR 对flash定义的数组元素数量也是有不一样的限制,有的也许没有限制,因 “IDE”而异了

解决办法:把大表格分成几个数组来写,即可,化整为零

yywd4 发表于 2010-12-8 09:46:27

非常感谢,顶。

tt88050643 发表于 2010-12-8 20:14:52

mark

muzheyun 发表于 2010-12-8 20:21:45

一直都没看懂5110的使用方法,

tonyone 发表于 2010-12-9 08:53:36

mark

muzheyun 发表于 2011-1-1 15:10:37

为什么我用上面程序测试的时候屏幕显示的全部都是黑色,看不到图片和文字,除非从很偏的侧面才能看到文字和图片,对比度很低,是不是我用的5V的原因?

ken_ly 发表于 2011-1-1 18:12:53

标记

xuhui798 发表于 2011-1-5 10:43:55

mark

shenrongze 发表于 2011-1-5 10:49:41

回复【10楼】wjchao111
我用stc89c52rc,unsigned char code 定义数组,只能放256个元素,多了就不行了,是rom的问题吗?求解

-----------------------------------------------------------------------

当然只能放256....你用unsigned int code就可以放65536

jetimchen 发表于 2011-4-5 21:23:09

楼主你电路图能不能发上来还有PCB文件想自己用裸屏做个LCD呢

www1519 发表于 2011-4-5 22:43:08

mark

522yt 发表于 2011-4-24 10:00:01

我想问下楼主你怎么把图片处理成84*48面不失真的。谢谢

palemoon1 发表于 2011-5-10 08:37:34

我想问下楼主你怎么把图片与程序联系起来

l09046162 发表于 2011-8-27 21:50:15

谢谢楼主分享!!!!!

runningwater 发表于 2012-2-26 22:13:27

mark

b60885262 发表于 2012-2-29 01:28:02

顶!!

yikuang 发表于 2012-2-29 21:46:06

顶一下

chenhua1991 发表于 2012-2-29 22:09:31

mark

xuyapple 发表于 2012-3-1 15:26:34

标记下~

jjj2012 发表于 2012-3-3 11:02:21

表示可能已经烧掉的路过

majay123 发表于 2012-4-21 22:49:52

请问有键盘控制代码吗?发一个谢谢

zhenglu891028 发表于 2012-4-22 17:10:38

挺好,学习

Making 发表于 2013-7-22 14:51:00

{:smile:}{:smile:}{:smile:}{:smile:}

qq1136029879 发表于 2013-7-22 23:39:48

我也有个诺基亚5110屏,改天玩玩

yy12651 发表于 2013-7-23 22:01:22

楼主有耐心

flotox 发表于 2013-8-6 19:07:45

MARKMARKMARK

xiefy21 发表于 2013-8-14 18:54:37

mark……
顶一个…

智慧星 发表于 2014-3-3 14:53:47

正在研究,拿来学习一下。谢谢楼主。
页: [1]
查看完整版本: 发一个诺基亚5110屏的检测程序,有图片和程序,mcu AT89S51/52