搜索
bottom↓
回复: 56

2.8"TFT LCD 驱动和序 小北在这里献丑了!

[复制链接]

出0入0汤圆

发表于 2008-5-28 10:10:16 | 显示全部楼层 |阅读模式
2.8"TFT LCD 驱动和序 小北在这里献丑了!
点击此处下载 ourdev_294994.rar(文件大小:54K) (原文件名:lil9200.rar)

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2008-5-28 10:16:37 | 显示全部楼层
有照片就好了,仅仅程序相信没有几个人会有兴趣看的

出0入0汤圆

 楼主| 发表于 2008-5-28 11:43:52 | 显示全部楼层
效果是很好的,不过我们办公室没有相机。要不我一定让大家瞧瞧效果。

出0入0汤圆

 楼主| 发表于 2008-5-28 12:12:05 | 显示全部楼层

(原文件名:图像028.jpg)


(原文件名:图像074.jpg)


(原文件名:图像080.jpg)


(原文件名:图像093.jpg)


(原文件名:图像094.jpg)


(原文件名:图像095.jpg)


(原文件名:图像096.jpg)


(原文件名:图像097.jpg)


(原文件名:图像098.jpg)


(原文件名:图像099.jpg)


(原文件名:图像100.jpg)


(原文件名:图像101.jpg)

出0入0汤圆

 楼主| 发表于 2008-5-28 12:14:11 | 显示全部楼层

(原文件名:图像102.jpg)


(原文件名:图像103.jpg)


(原文件名:图像104.jpg)


(原文件名:图像105.jpg)


(原文件名:图像106.jpg)


(原文件名:图像107.jpg)


(原文件名:图像108.jpg)


(原文件名:图像110.jpg)


(原文件名:图像109.jpg)

出0入0汤圆

 楼主| 发表于 2008-5-28 12:17:46 | 显示全部楼层
首先我要感谢http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=831085&bbs_page_no=1&bbs_id=9999 的《bozai 章其波》我是在他的程序基础上将十六位数据总线改成八位。也谢谢大家的共享资料。这个程序在GCC下完全通过。
我又该了一些函数现在将我改后的文件传上来。
点击此处下载 ourdev_295314.rar(文件大小:54K) (原文件名:lil9200.rar)

出0入0汤圆

发表于 2008-5-28 12:22:12 | 显示全部楼层
不错

出0入0汤圆

 楼主| 发表于 2008-5-28 12:22:50 | 显示全部楼层
驱动IC是 MEG32

出0入0汤圆

发表于 2008-5-28 14:07:27 | 显示全部楼层
楼主屏从哪里买的?
看着不错!

出0入0汤圆

 楼主| 发表于 2008-5-28 18:20:49 | 显示全部楼层
http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=823134&bbs_page_no=1&bbs_id=1011
从这个上边可以找到线索。

出0入0汤圆

发表于 2008-5-28 19:30:06 | 显示全部楼层
谢了!!

出0入10汤圆

发表于 2008-5-28 19:58:01 | 显示全部楼层
鼓励一下,LZ花了很多时间来做, 但要批评一下,照片质量不高,这个屏的将来销售是个重大影响

出0入0汤圆

 楼主| 发表于 2008-5-28 20:25:25 | 显示全部楼层
呵呵,我今天终于搞出来了,只是传上来庆贺一下,没想到网友说要照片,我就从我同事那里借了手机拍了几张。不过在程序中关于图片显示的那部分,我用作者的原贴中的方法显示出来的图像很不清楚,后来在我做汉字显示时用到那个pgm_read_word()函数是发现这个函数取出来的一个字是高低颠倒的。unsigned char LCD_DrawPicture2(unsigned char startX, unsigned char startY, unsigned int *pic, unsigned char sizeX, unsigned char sizeY)
  {
        unsigned int i,j,k ,l;

        if((startX+sizeX)>240 || (startY+sizeY)>320)return 1;

        for (j = 0; j<sizeY; j++)
        {
            LCD_Set_XY(startX,startY);
                LCD_Write_Start();
            for(i = 0; i<sizeX; i++)
            {   



                    k = pgm_read_word(pic++)  ;
            l= k  ;
            k = k<<8;
                        l =  l>>8;
                        k= k+l ;   
                        LCD_Write_Data(k);




            }
            startY++;//换行
          }
        LCD_Write_End();
        return 0;
  }
我做了如下修改总算功夫不负有心人,图片正常显示了。还是个美女。
可惜没有相机要不也让大家看看。

出0入0汤圆

 楼主| 发表于 2008-5-28 20:26:22 | 显示全部楼层
#include<avr/io.h>
#include<avr/pgmspace.h>
#include<util/delay.h>
#include "pic_temp.h"
#define NOP() asm("nop")

#define DATA_DDR  DDRB
#define DATA_PORT PORTB
#define DATA_PIN  PINB

#define LCD_CS_DDR  DDRA
#define LCD_CS_PORT PORTA
#define LCD_CS_PIN  PINA
#define LCD_CS_BIT  0


#define LCD_RS_DDR  DDRA
#define LCD_RS_PORT PORTA
#define LCD_RS_PIN  PINA
#define LCD_RS_BIT  5


#define LCD_WR_DDR  DDRA
#define LCD_WR_PORT PORTA
#define LCD_WR_PIN  PINA
#define LCD_WR_BIT  1


#define LCD_RD_DDR  DDRA
#define LCD_RD_PORT PORTA
#define LCD_RD_PIN  PINA
#define LCD_RD_BIT  6

#define LCD_RST_DDR  DDRA
#define LCD_RST_PORT PORTA
#define LCD_RST_PIN  PINA
#define LCD_RST_BIT  2

#define LCD_CON_DDR  DDRD
#define LCD_CON_PORT PORTD
#define DATA_INPUT() {\
                                                DATA_DDR = 0x00;\
                                                }
#define DATA_OUTPUT() {\
                                                DATA_DDR = 0xff;\
                                                }
#define LCD_CS_H() LCD_CS_PORT |= 1<<LCD_CS_BIT
#define LCD_CS_L() LCD_CS_PORT &= ~(1<<LCD_CS_BIT)

#define LCD_RS_H() LCD_RS_PORT |= 1<<LCD_RS_BIT
#define LCD_RS_L() LCD_RS_PORT &= ~(1<<LCD_RS_BIT)

#define LCD_WR_H() LCD_WR_PORT |= 1<<LCD_WR_BIT
#define LCD_WR_L() LCD_WR_PORT &= ~(1<<LCD_WR_BIT)

#define LCD_RD_H() LCD_RD_PORT |= 1<<LCD_RD_BIT
#define LCD_RD_L() LCD_RD_PORT &= ~(1<<LCD_RD_BIT)

#define LCD_RST_H()LCD_RST_PORT |= 1<<LCD_RST_BIT
#define LCD_RST_L()LCD_RD_PORT &= ~(1<<LCD_RST_BIT)


#define PORT_INI() {\
                                                DATA_INPUT();\
                                                LCD_CS_H();\
                                                LCD_RS_H();\
                                                LCD_WR_H();\
                                                LCD_RD_H();\
                                                LCD_RST_L();\
                                                LCD_CS_DDR |= 1<<LCD_CS_BIT;\
                                                LCD_RS_DDR |= 1<<LCD_RS_BIT;\
                                                LCD_WR_DDR |= 1<<LCD_WR_BIT;\
                                                LCD_RD_DDR |= 1<<LCD_RD_BIT;\
                                                LCD_RST_DDR |= 1<<LCD_RST_BIT;\
                                                }
const   char  flash_array[]    PROGMEM = {"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};

void LCD_WR_REG(unsigned char index,unsigned int val)
{
        LCD_CS_L();
        LCD_RS_L();
        DATA_OUTPUT();
        DATA_PORT = 0;
        LCD_WR_L();
        NOP();
        NOP();
        LCD_WR_H();
        DATA_PORT = (unsigned char)index;
        LCD_WR_L();
        NOP();
        NOP();
        LCD_WR_H();
        LCD_RS_H();
        DATA_PORT = (unsigned char)(val>>8);
        LCD_WR_L();
        NOP();
        NOP();
        LCD_WR_H();
        DATA_PORT = (unsigned char)val;
        LCD_WR_L();
        NOP();
        NOP();
        LCD_WR_H();
        LCD_CS_H();
}

unsigned int LCD_RD_REG(unsigned char index)
{
        unsigned int ret;
        LCD_CS_L();
        LCD_RS_L();
        DATA_OUTPUT();
        DATA_PORT = 0;
        LCD_WR_L();
        NOP();
        NOP();
        LCD_WR_H();
        DATA_PORT = (unsigned char)index;
        LCD_WR_L();
        NOP();
        NOP();
        LCD_WR_H();
        LCD_RS_H();
        DATA_INPUT();
        LCD_RD_L();
        NOP();
        NOP();
        ret = DATA_PIN;
        LCD_RD_H();
        ret <<= 8;
        LCD_RD_L();
        NOP();
        NOP();
        ret += DATA_PIN;
        LCD_RD_H();
        LCD_CS_H();
        return ret;
}

void LCD_Write_Start()
{
        LCD_CS_L();
        LCD_RS_L();
        DATA_OUTPUT();
        DATA_PORT = 0x00;
        LCD_WR_L();
        NOP();
        NOP();
        LCD_WR_H();
        DATA_PORT = 0x22;
        LCD_WR_L();
        NOP();
        NOP();
        LCD_WR_H();
        LCD_RS_H();
}

void LCD_Write_Data(unsigned int val)
{
        DATA_PORT = (unsigned char)val;
        LCD_WR_L();
        NOP();
        NOP();
        LCD_WR_H();
        DATA_PORT = (unsigned char)(val>>8);
        LCD_WR_L();
        NOP();
        NOP();
        LCD_WR_H();
}

void LCD_Write_End()
{
        LCD_CS_H();
}

void LCD_Read_Start()
{
        LCD_CS_L();
        LCD_RS_L();
        DATA_OUTPUT();
        DATA_PORT = 0x00;
        LCD_WR_L();
        NOP();
        NOP();
        LCD_WR_H();
        DATA_PORT = 0x22;
        LCD_WR_L();
        NOP();
        NOP();
        LCD_WR_H();
        LCD_RS_H();
        DATA_INPUT();
        LCD_RD_L();//dummy read
        NOP();
        LCD_RD_H();
        NOP();
        NOP();
}

unsigned int LCD_RD_DATA()
{
        unsigned int ret;
        LCD_RD_L();
        NOP();
        NOP();
        NOP();
        ret = DATA_PIN;
        LCD_RD_H();
        ret <<= 8;
        LCD_RD_L();
        NOP();
        NOP();
        ret += DATA_PIN;
        LCD_RD_H();
        NOP();
        NOP();
        return ret;       
}

void LCD_Read_End()
{
        LCD_CS_H();
}
void delay_Nms(unsigned int n)
{
        while(n--)_delay_ms(1);
}

#define Display_ON() LCD_WR_REG(0x07,0x0173)
#define Display_OFF() LCD_WR_REG(0x07,0x0000)

void LCD_Init()
{  
        PORT_INI();

        LCD_RST_L();
        delay_Nms(10);
        LCD_RST_H();

        //delay 10ms
        delay_Nms(10);

        //initializing funciton 1
        LCD_WR_REG(0xe5,0x8000);
        LCD_WR_REG(0x00,0x0001);
        LCD_WR_REG(0x2b,0x0010);
        LCD_WR_REG(0x01,0x0100);
        LCD_WR_REG(0x02,0x0700);
        LCD_WR_REG(0x03,0x1230);
        LCD_WR_REG(0x04,0x0000);
        LCD_WR_REG(0x08,0x0202);
        LCD_WR_REG(0x09,0x0000);
        LCD_WR_REG(0x0a,0x0000);
        LCD_WR_REG(0x0c,0x0000);
        LCD_WR_REG(0x0d,0x0000);
        LCD_WR_REG(0x0f,0x0000);
        LCD_WR_REG(0x50,0x0000);
        LCD_WR_REG(0x51,0x00ef);
        LCD_WR_REG(0x52,0x0000);
        LCD_WR_REG(0x53,0x013f);
        LCD_WR_REG(0x60,0x2700);
        LCD_WR_REG(0x61,0x0001);
        LCD_WR_REG(0x6a,0x0000);
        LCD_WR_REG(0x80,0x0000);
        LCD_WR_REG(0x81,0x0000);
        LCD_WR_REG(0x82,0x0000);
        LCD_WR_REG(0x83,0x0000);
        LCD_WR_REG(0x84,0x0000);
        LCD_WR_REG(0x85,0x0000);
        LCD_WR_REG(0x90,0x0010);
        LCD_WR_REG(0x92,0x0000);
        LCD_WR_REG(0x93,0x0003);
        LCD_WR_REG(0x95,0x0110);
        LCD_WR_REG(0x97,0x0000);
        LCD_WR_REG(0x98,0x0000);

        //power setting function
        LCD_WR_REG(0x10,0x0000);
        LCD_WR_REG(0x11,0x0000);
        LCD_WR_REG(0x12,0x0000);
        LCD_WR_REG(0x13,0x0000);
        delay_Nms(200);
        LCD_WR_REG(0x10,0x17b0);
        LCD_WR_REG(0x11,0x0004);
        delay_Nms(50);
        LCD_WR_REG(0x12,0x013e);
        delay_Nms(50);
        LCD_WR_REG(0x13,0x1f00);
        LCD_WR_REG(0x29,0x000f);
        delay_Nms(50);
        LCD_WR_REG(0x20,0x0000);
        LCD_WR_REG(0x21,0x0000);

        //initializing function 2

        LCD_WR_REG(0x30,0x0204);
        LCD_WR_REG(0x31,0x0001);
        LCD_WR_REG(0x32,0x0000);
        LCD_WR_REG(0x35,0x0206);
        LCD_WR_REG(0x36,0x0600);
        LCD_WR_REG(0x37,0x0500);
        LCD_WR_REG(0x38,0x0505);
        LCD_WR_REG(0x39,0x0407);
        LCD_WR_REG(0x3c,0x0500);
        LCD_WR_REG(0x3d,0x0503);

        //display on
        LCD_WR_REG(0x07,0x0173);
        //Display_ON();
}


void LCD_Set_XY(unsigned int x, unsigned int y)
{
        LCD_WR_REG(0x20,x);
        LCD_WR_REG(0x21,y);
}

void LCD_Set_Window(unsigned int startX,unsigned int startY,unsigned int endX,unsigned int endY)
{
        LCD_Set_XY(startX,startY);
        LCD_WR_REG(0x50,startX);
        LCD_WR_REG(0x52,startY);
        LCD_WR_REG(0x51,endX);
        LCD_WR_REG(0x53,endY);       
}
//*************************************************************************************************************//
//***********该程序将一BYTE的数据写到LCD缓存中,有两个输入参数LINE_DATA为要显示的数据,COLOR为要显示的颜色*******//
void Write_Line (unsigned char Byte,unsigned int Color)
     {     
          unsigned char l,k;
      l = 0x80 ;
          LCD_Write_Start();
          for(k=0;k<8;k++)
                 {
                   if (Byte & l) LCD_Write_Data(Color);
                   else  LCD_Write_Data(0xffff);
                   l = l >> 1   ;
                 }
      }
//*************************************************************************************************************//
//***********该程序将一Word的数据写到LCD缓存中,有两个输入参数Word为要显示的数据,COLOR为要显示的颜色***********//
void Write_Word (unsigned int Word ,unsigned int Color)
     {
          unsigned int l;
          unsigned char k;
      l = 0x8000 ;
          LCD_Write_Start();
          for(k=0;k<16;k++)
                 {
                   if (Word & l) LCD_Write_Data(Color);
                   else  LCD_Write_Data(0xffff);
                   l = l >> 1   ;
                 }
      }
//*************************************************************************************************************//
//********************************//显示ASCII标准字符程序,颜色,X,Y 坐标  //*******************************//
/*void Write_ASIIC (unsigned int Color ,unsigned char ASIIC_X ,unsigned char ASIIC_Y , unsigned char ASIIC )
     {
          unsigned char j;
      for(j=0;j<16;j++)
             { LCD_Set_XY( ASIIC_X*8, ASIIC_Y*16+j );
                   Write_Line (pgm_read_byte ( ASIIC_TEXT + ASIIC*16 + j),Color);
              }
      }
//*************************************************************************************************************/
//********************************//显示ASCII标准字符程序,颜色,X,Y 坐标  //*******************************//
/*void Write_Hanzi (unsigned int Color ,unsigned char Hanzi_X ,unsigned char Hanzi_Y , unsigned int Hanzi )
     {
          unsigned char j;
      for(j=0;j<16;j++)
             { LCD_Set_XY( Hanzi_X*16, Hanzi_Y*16+j );
                   Write_Word (pgm_read_word ( GB_TEXT + Hanzi*32+j*2),Color);
              }
      }
//*************************************************************************************************************/
//***********************//在屏幕上Star_X,Star_Y开始的地方显示Size个Color颜色的ASCII字符//********************//
/*void Write_Text (unsigned int Color,unsigned char Star_X,unsigned char Star_Y , char *Text_Tab,unsigned int Size)
     {
           unsigned int i ;
           unsigned char j = 0;
           for(i=0;i<Size;i++)
           {
             Write_ASIIC (Color,Star_X,Star_Y,j);
                 Star_X = Star_X + 1  ;
                 if (Star_X > 29)
                    {
                         Star_X  = 0 ;
             Star_Y  = Star_Y + 1;
                         if (Star_Y > 19)
                            {
                                 Star_Y = 0;
                                  }
                         }
          j = j+1;
                  if( j > 128) j = 0;
            }
          
          }
//************************************************************************************************************/
/*void Write_Wenben (unsigned int Color,unsigned char Star_X,unsigned char Star_Y , char *Text_Tab,unsigned int Size)
     {
           unsigned int i ;
           unsigned int j = 0;
           for(i=0;i<Size;i++)
           {
             Write_Hanzi (Color,Star_X,Star_Y,j);
                 Star_X = Star_X + 1  ;
                 if (Star_X > 14)
                    {
                         Star_X  = 0 ;
             Star_Y  = Star_Y + 1;
                         if (Star_Y > 19)
                            {
                                 Star_Y = 0;
                                  }
                         }
          j = j+1;
                  if( j > 128) j = 0;
            }
          }
//*************************************************************************************************************/

//***********************************//人内存中读一片字模数据显示到屏幕上//************************************//
/*void ASIIC_Test (unsigned char *Table ,unsigned int Color)
{
  unsigned char k,l,m;
     for ( k=0;k<20;k++ )
     {
         for ( l=0;l<30;l++ )
             {
              for ( m=0;m<16;m++ )
                  {
                  LCD_Set_XY( l*8, k*16+m );  
                  Write_Line (pgm_read_word(Table++ ),Color);
                   }
                   }
         }
}
//************************************************************************************************************/
//***************************////***************************//
void Write_Test (unsigned int Color ,unsigned char ASIIC_X ,unsigned char ASIIC_Y )
     {
          unsigned char j,k,l,ASIIC;
          ASIIC = 0Xc0  ;
          for (j=0;j<8;j++)
              {
                LCD_Set_XY( ASIIC_X*8, ASIIC_Y*16+j);
            l = 0x80 ;
                        LCD_Write_Start();
                for(k=0;k<8;k++)
                       { if (ASIIC & l) LCD_Write_Data(Color);
                            else  LCD_Write_Data(0xffff);
                                l = l >> 1   ;
                            }
            ASIIC =  ASIIC>>1   ;
               }
          ASIIC = 0X03  ;
                   for (j=8;j<16;j++)
              {
                LCD_Set_XY( ASIIC_X*8, ASIIC_Y*16+j);
            l = 0x80 ;
                        LCD_Write_Start();
                for(k=0;k<8;k++)
                       { if (ASIIC & l) LCD_Write_Data(Color);
                            else  LCD_Write_Data(0xffff);
                                l = l >> 1   ;
                            }
            ASIIC =  ASIIC<<1   ;
               }
      }

//LCD测试程序//*********************************************************************************
void LCD_test()
{
        unsigned int i,j,k;
        LCD_Set_XY (0x0000,0x0000);
        LCD_Write_Start();
        k = 0x0000  ;
        for(i=0;i<320;i++)
        {  
                for(j=0;j<240;j++)
                {
                 k = k+ 0x0001 ;
         LCD_Write_Data(k);
                 
                 }
        }
        LCD_Write_End();
}
void LCD_test1()
{
        unsigned int i,j,k;
        LCD_Set_XY (0x0000,0x0000);
        LCD_Write_Start();
        k = 0x0000  ;
        for(i=0;i<320;i++)
        {  
                for(j=0;j<240;j++)
                {
         LCD_Write_Data(k);
                 }
     k = k+0x000f  ;
        }
        LCD_Write_End();
}
void LCD_test2()
     {
         unsigned int k, i;
         unsigned  char j,l;
         LCD_Set_XY (0x0000,0x0000);
     LCD_Write_Start();
         k = 0;
        for(i=0;i<320;i++)
           {
                for(j=0;j<30;j++)
                   {
                      for(l=0;l<8;l++)
                         {
                      LCD_Write_Data(k);
                          }
              k = k+0X000f ;
                         }
             }
         }

void LCD_Test3 (void)
{
  unsigned int Color = 0x0000 ;
  unsigned char k,l,m;
  for ( k=0;k<20;k++ )
     {
         for ( l=0;l<30;l++ )
             {
              for ( m=0;m<16;m++ )
                  {
                  LCD_Set_XY( l*8, k*16+m );  
                  Write_Line (0XFF ,Color);
                   }
          Color = Color + 0x00f  ;
                   }
         }
}  
void LCD_Test4 (void)
{
  unsigned int Color = 0x0000 ;
  unsigned int  l;
  unsigned char k;
  for ( k=0;k<30;k++ )
     {
         for ( l=0;l<320;l++ )
             {
                  LCD_Set_XY( k*8, l );  
                  Write_Line (0XFF ,Color);
              }
          Color = Color + 0x00f  ;
         }
}
void LCD_Test5 (void)
{
  unsigned int Color = 0x0000 ;
  unsigned char k,l,m;
  for ( k=0;k<20;k++ )
     {
         for ( l=0;l<15;l++ )
             {
              for ( m=0;m<16;m++ )
                    {
                          LCD_Set_XY (l*16,k*16+m);
                  Write_Word (0Xffff ,Color);
                     }
                   Color = Color + 0x00f  ;
              }
      }
}  
void LCD_test6(void)
{   unsigned char i,j,l ;
        unsigned int k;
        LCD_Set_XY (0x0000,0x0000);
        LCD_Write_Start();
        k = 0x0000  ;
        for(i=0;i<40;i++)
           {  
            for( l=0;l<8;l++)
                   {
                    for(j=0;j<240;j++)
                       {
                 LCD_Write_Data(k);
                       }
                    }
     k = k+0x000f  ;
        }
        LCD_Write_End();
}
void LCD_Test7 (void)
{
  unsigned int Color = 0x0000 ;
  unsigned char k,l,m;
  for ( k=0;k<20;k++ )
     {
         for ( l=0;l<15;l++ )
             {
              for ( m=0;m<16;m++ )
               Write_Word (0Xffff ,Color);
                  }
     Color = Color + 0x00f  ;
         }
}  
//*****************************************************************************************************************************************
/*
unsigned char LCD_DrawPicture(unsigned char startX, unsigned char startY, unsigned int *pic, unsigned char sizeX, unsigned char sizeY)
{
        unsigned int endX,endY;
        unsigned long totalPixels = (unsigned long)sizeX * (unsigned long)sizeY;
        endX = startX+sizeX-1;
        endY = startY+sizeY-1;
        if(endX>239 || endY>319)return 1;
        LCD_Set_Window(startX,startY,endX,endY);
        LCD_Write_Start();
        while(totalPixels--)LCD_Write_Data(pgm_read_word(pic++));
        LCD_Write_End();
        return 0;
}
*/
unsigned char LCD_DrawPicture2(unsigned char startX, unsigned char startY, unsigned int *pic, unsigned char sizeX, unsigned char sizeY)
  {
        unsigned int i,j,k ,l;

        if((startX+sizeX)>240 || (startY+sizeY)>320)return 1;

        for (j = 0; j<sizeY; j++)
        {
            LCD_Set_XY(startX,startY);
                LCD_Write_Start();
            for(i = 0; i<sizeX; i++)
            {   
                    k = pgm_read_word(pic++)  ;
            l= k  ;
            k = k<<8;
                        l =  l>>8;
                        k= k+l ;   
                        LCD_Write_Data(k);
            }
            startY++;//换行
          }
        LCD_Write_End();
        return 0;
  }

int main()
{   
    unsigned char  LCD_X ,LCD_Y ,Again;
        unsigned int   Color = 0x000f ;
        Again = 200 ;
    LCD_CON_DDR  = 0xff;
        LCD_CON_PORT = 0xfe ;
        LCD_Init();
while (1)
{
        LCD_test();
        delay_Nms(2000);
        delay_Nms(2000);
    LCD_test1();
        delay_Nms(2000);
        delay_Nms(2000);
        LCD_test2();
    delay_Nms(2000);
        delay_Nms(2000);
        LCD_Test3();
        delay_Nms(2000);
        delay_Nms(2000);
        LCD_Test4();
        delay_Nms(2000);
        delay_Nms(2000);
        Color = 0x0001 ;
        LCD_Test5();
        delay_Nms(2000);
        delay_Nms(2000);
        LCD_test6 () ;
        delay_Nms(2000);
        delay_Nms(2000);
        LCD_Test7();
        delay_Nms(2000);
        delay_Nms(2000);
        Color = 0x0001 ;
        for (LCD_Y = 0 ; LCD_Y<20 ; LCD_Y ++ )
             {
             for (LCD_X = 0 ; LCD_X<30 ; LCD_X ++ )
                     {
                  Write_Test (Color,LCD_X,LCD_Y)   ;
                          Color = Color + 0x001f           ;   
                           }
                  }
    delay_Nms(2000);
        delay_Nms(2000);
    LCD_DrawPicture2(55,111,(unsigned int *)yemin,136,102);
    delay_Nms(2000);
        delay_Nms(2000);
        delay_Nms(2000);
        delay_Nms(2000);
    delay_Nms(2000);
        delay_Nms(2000);
        delay_Nms(2000);
        delay_Nms(2000);
         }
}

出0入0汤圆

发表于 2008-6-13 16:24:26 | 显示全部楼层
牛 

出0入0汤圆

发表于 2008-6-13 17:57:01 | 显示全部楼层
呵呵,顶顶,用得着的人看到了都流口水哈,但是我不流哈

出0入0汤圆

发表于 2008-6-14 13:39:36 | 显示全部楼层
不错不错。支持啦。我顶。。。。。。。。。。。

出0入0汤圆

发表于 2008-6-15 21:00:42 | 显示全部楼层
借着打下广告噢,屏只剩8块了!!! http://shop35653190.taobao.com/

出0入0汤圆

发表于 2008-9-6 16:33:38 | 显示全部楼层
【13楼】 XUEPENGBIN 薛鹏斌
不知道是不是我眼睛有点毛病,每次你一发图片,我就晕图....

出0入0汤圆

 楼主| 发表于 2008-9-6 17:43:47 | 显示全部楼层
太对不住大家了,没有相机,用手机照的!效果不是很好,还望大家见谅@!

出0入0汤圆

发表于 2008-9-6 21:57:25 | 显示全部楼层
up

出0入0汤圆

发表于 2008-9-11 21:13:14 | 显示全部楼层
.

出0入0汤圆

发表于 2008-9-12 13:17:21 | 显示全部楼层

出0入0汤圆

发表于 2010-2-9 14:49:40 | 显示全部楼层
很好   谢谢LZ共享

出0入0汤圆

发表于 2010-2-9 14:57:35 | 显示全部楼层
顶一下,多谢分享

出0入0汤圆

发表于 2010-2-9 14:58:46 | 显示全部楼层
回复【楼主位】XUEPENGBIN 薛鹏斌
-----------------------------------------------------------------------

出0入0汤圆

发表于 2010-2-9 15:01:14 | 显示全部楼层
多谢楼主分享

出0入0汤圆

发表于 2010-2-9 15:05:21 | 显示全部楼层
刷新一屏要多少时间?

出0入0汤圆

发表于 2010-2-9 17:52:53 | 显示全部楼层
好 非常好

出0入0汤圆

发表于 2010-2-10 12:50:06 | 显示全部楼层
好东西,顶一下~
顺便问下楼主,刷屏是不是很慢?

出0入0汤圆

发表于 2010-2-10 13:26:34 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-14 04:14:19 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-14 08:01:34 | 显示全部楼层
mark

出0入4汤圆

发表于 2010-3-14 08:06:09 | 显示全部楼层
严重记号

出0入0汤圆

发表于 2010-3-22 19:41:35 | 显示全部楼层
123

出0入0汤圆

发表于 2010-3-23 14:33:43 | 显示全部楼层
屏有字库?程序中不见码表?

出0入0汤圆

发表于 2010-4-17 09:08:45 | 显示全部楼层
楼主能 说一下你的 汉字的字模是怎么取的吗

出0入0汤圆

发表于 2010-4-17 09:11:50 | 显示全部楼层
回复【3楼】XUEPENGBIN 薛鹏斌
-----------------------------------------------------------------------

ddddddddddd

出0入0汤圆

发表于 2010-4-17 09:17:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-27 16:05:06 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-27 16:10:52 | 显示全部楼层
楼主用的是五笔,呵呵

出0入0汤圆

发表于 2010-5-7 18:53:57 | 显示全部楼层

(原文件名:未命名.jpg)
请问下,用了楼主的程序,为什么数据为0%?
请高手指教下

出0入18汤圆

发表于 2010-6-9 17:30:55 | 显示全部楼层
支持楼主!!!!

出0入0汤圆

 楼主| 发表于 2010-6-11 07:56:50 | 显示全部楼层
回复【29楼】vincent101
好东西,顶一下~
顺便问下楼主,刷屏是不是很慢?
-----------------------------------------------------------------------

是很慢!回复【36楼】armot
楼主能 说一下你的 汉字的字模是怎么取的吗
-----------------------------------------------------------------------

就是用论坛上的取模软件。回复【35楼】li252547281
屏有字库?程序中不见码表?
-----------------------------------------------------------------------

字码放上来太占地方了。找个取模软件搞一下就行了。

出0入0汤圆

发表于 2010-7-1 21:39:24 | 显示全部楼层
留名

出0入0汤圆

发表于 2010-7-4 19:18:29 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-9-27 10:36:57 | 显示全部楼层
你的程序不是8BIT的嘛?请问下面的语句用来干什么?
#define LCD_CON_DDR  DDRD
#define LCD_CON_PORT PORTD

出0入0汤圆

发表于 2010-9-27 12:27:01 | 显示全部楼层
正准备做TFT显示,谢谢楼主了

出0入0汤圆

发表于 2010-9-27 13:00:57 | 显示全部楼层
收藏

出0入0汤圆

发表于 2010-10-2 13:39:46 | 显示全部楼层
很不错

出0入0汤圆

发表于 2011-4-19 10:05:12 | 显示全部楼层
谢楼主分享

出0入0汤圆

发表于 2011-7-8 07:11:27 | 显示全部楼层
感谢~~~

出0入0汤圆

发表于 2011-11-15 00:25:58 | 显示全部楼层
现在在做TFT屏,先谢谢楼主了

出0入0汤圆

发表于 2012-8-29 17:14:03 | 显示全部楼层
请问楼主,tft显示的汉字是从字库做里读出来的吗

出0入0汤圆

发表于 2012-11-14 23:23:04 | 显示全部楼层
TFT   lil9200

出0入0汤圆

发表于 2013-1-7 10:24:35 | 显示全部楼层
mark            

出0入0汤圆

发表于 2013-4-11 14:59:54 来自手机 | 显示全部楼层
谢谢楼主......
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 03:29

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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