打印

lpc2131+TFT。。急!!!

[复制链接]
1286|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
不懂ARM|  楼主 | 2010-5-11 14:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
若用LPC的GPIO口模拟其总线时序,点不亮TFT屏....
其中:数据输出端口为:P0.2~P0.17

#define LCD_CS_1     {IO0SET |= (1<<18);}// rPDATD |=(1<<2)
#define LCD_CS_0     {IO0CLR |= (1<<18);}// rPDATD &=~(1<<2)

#define LCD_RS_1     {IO0SET |= (1<<19);}//rPDATD |=(1<<1)
#define LCD_RS_0     {IO0CLR |= (1<<19);}//rPDATD &=~(1<<1)

#define LCD_WR_1     {IO0SET |= (1<<20);}// rPDATD |=(1<<5)
#define LCD_WR_0     {IO0CLR |= (1<<20);}// rPDATD&=~(1<<5)

#define LCD_RD_1     {IO0SET |= (1<<21);}//rPDATD |=(1<<3)
#define LCD_RD_0     {IO0CLR |= (1<<21);}// rPDATD&=~(1<<3)

#define LCD_RESET_1  {IO0SET |= (1<<22);}//rPDATD |= 1
#define LCD_RESET_0  {IO0CLR |= (1<<22);}//rPDATD &=~1


/**************************************************************************************
* 名    称:
* 功    能:
* 参    数:
* 返 回 值:
**************************************************************************************/
void WriData(uint16 ch)
{
   
   uint32 dat = ch;
   uint32 dat2;
   
   dat =(dat<<2)&0x0003FFFC;
   dat2 = (~dat)&0x0003FFFC;
   
    LCD_RS_1;
    LCD_WR_0;
    LCD_CS_0;

//    rPDATC=ch;//LCD_DATA(ch);
   // PORT_DATA(ch);
  // temp1 = IO0SET&0x0000FFFF;
  // temp2 = IO0CLR&0x0000FFFF;
   
   //IO0SET |= dat;
  // IO0CLR |= dat2;
   IO0PIN |= dat;
    LCD_WR_1;
    LCD_CS_1;
   
}
/**************************************************************************************
* 名    称:
* 功    能:
* 参    数:
* 返 回 值:
**************************************************************************************/

void WriCom(uint16  ch)
{
   uint32 dat = ch;
   uint32 dat2;
                                                                                                                                                                        
   dat = (dat<<2)&0x0003FFFC;
   dat2 = (~dat)&0x0003FFFC;
   
    LCD_RS_0;
    LCD_WR_0;
    LCD_CS_0;

   // rPDATC=ch;//LCD_DATA(ch);
  // PORT_DATA(ch);
   // IO0SET |= dat;
  // IO0CLR |= dat2;
    IO0PIN |= dat;
    LCD_WR_1;
    LCD_CS_1;
   
}

int main (void)
{
    uint16 i;
    PINSEL0 = 0;
    PINSEL1 = 0;
    PINSEL2 = 0;
    IO0DIR  = 0xFFFFFFFF;
    .......
}

具体程序如附件.....

TFT_LCD.rar

1.64 MB

相关帖子

沙发
不懂ARM|  楼主 | 2010-5-11 14:26 | 只看该作者
不好单思,第一次发贴,紧张....发错了.....

其中:数据输出端口为:P0.2~P0.17

#define LCD_CS_1     {IO0SET |= (1<<18);}// rPDATD |=(1<<2)
#define LCD_CS_0     {IO0CLR |= (1<<18);}// rPDATD &=~(1<<2)

#define LCD_RS_1     {IO0SET |= (1<<19);}//rPDATD |=(1<<1)
#define LCD_RS_0     {IO0CLR |= (1<<19);}//rPDATD &=~(1<<1)

#define LCD_WR_1     {IO0SET |= (1<<20);}// rPDATD |=(1<<5)
#define LCD_WR_0     {IO0CLR |= (1<<20);}// rPDATD&=~(1<<5)

#define LCD_RD_1     {IO0SET |= (1<<21);}//rPDATD |=(1<<3)
#define LCD_RD_0     {IO0CLR |= (1<<21);}// rPDATD&=~(1<<3)

#define LCD_RESET_1  {IO0SET |= (1<<22);}//rPDATD |= 1
#define LCD_RESET_0  {IO0CLR |= (1<<22);}//rPDATD &=~1


/**************************************************************************************
* 名    称:
* 功    能:
* 参    数:
* 返 回 值:
**************************************************************************************/
void WriData(uint16 ch)
{
   
   uint32 dat = ch;
   uint32 dat2;
   
   dat =(dat<<2)&0x0003FFFC;
   dat2 = (~dat)&0x0003FFFC;
   
    LCD_RS_1;
    LCD_WR_0;
    LCD_CS_0;

//    rPDATC=ch;//LCD_DATA(ch);
   // PORT_DATA(ch);
  // temp1 = IO0SET&0x0000FFFF;
  // temp2 = IO0CLR&0x0000FFFF;
   
   IO0SET |= dat;
   IO0CLR |= dat2;
   //IO0PIN |= dat;//仿一下周立功的,直接端口输出
    LCD_WR_1;
    LCD_CS_1;
   
}
/**************************************************************************************
* 名    称:
* 功    能:
* 参    数:
* 返 回 值:
**************************************************************************************/

void WriCom(uint16  ch)
{
   uint32 dat = ch;
   uint32 dat2;
                                                                                                                                                                        
   dat = (dat<<2)&0x0003FFFC;
   dat2 = (~dat)&0x0003FFFC;
   
    LCD_RS_0;
    LCD_WR_0;
    LCD_CS_0;

   // rPDATC=ch;//LCD_DATA(ch);
  // PORT_DATA(ch);
   IO0SET |= dat;
   IO0CLR |= dat2;
    //IO0PIN |= dat;//仿一下周立功的,直接端口输出
    LCD_WR_1;
    LCD_CS_1;
   
}

int main (void)
{
    uint16 i;
    PINSEL0 = 0;
    PINSEL1 = 0;
    PINSEL2 = 0;
    IO0DIR  = 0xFFFFFFFF;
    .......
}

具体程序如附件.....

使用特权

评论回复
板凳
不懂ARM|  楼主 | 2010-6-5 12:56 | 只看该作者
问题已解决。。。。 有一个端口出现问题,无论怎么设置,都没变化....:(

使用特权

评论回复
地板
arm86| | 2010-6-5 20:05 | 只看该作者
P0.3为I2C的端口,开漏输出,内部无上拉电阻,是不是这个地方有问题呢?呵呵

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

21

帖子

1

粉丝