【LPC54100】GPIO驱动TFT LCD

所使用的LCD为1.8寸128*160的TFT,采用SPI接口驱动,主要引脚有:

RESET:复位,高电平有效

CS:片选,低电平有效

A0:寄存器选择

SDA:数据接收

SCL:SPI总线时钟

LED+,LED-:背光电源

驱动芯片为ILI9163,控制模式为:4线8bit串行总线方式。如下图所示:

每次传输的8bit可以是命令,也可以是数据,通过A0线来选择:A0为低电平,则TB代表命令;A0为高电平,则TB代表数据。

这里用LPC54102的GPIO口模拟出上述SPI时序,驱动TFT屏,硬件接线为:

CS——P0.3

A0——P0.4

SDA——P0.10

SCL——P0.9

主要是改写MCU发送命令和数据的2个基本函数:

void write_command(uint_least8_t addr1)

{

         uint_least8_tbit8;

         TFT_A0_L;

         TFT_CS_L;

         for(bit8=0;bit8<8;bit8++)

         {

                   TFT_SCL_L;

                   if((addr1&0x80)==0x80)

                   TFT_SDI_H;

                   else           

                   TFT_SDI_L;

                   TFT_SCL_H;

                   addr1=(addr1<<1);

 

         }

   TFT_CS_H;

}

 

void write_para(uint_least8_t para1)

{  

         uint_least8_tbit8;

         TFT_A0_H;

         TFT_CS_L;                                    

 

         for(bit8=0;bit8<8;bit8++)

         {

                   TFT_SCL_L;

                   if((para1&0x80)==0x80)

                   TFT_SDI_H;

                   else

                   TFT_SDI_L;

                   TFT_SCL_H;

                   para1=(para1<<1);

 

         }

         TFT_CS_H;

 

}

由于Board_Init()中已经使能了时钟、用Chip_GPIO_Init(LPC_GPIO)初始化了GPIO,所以接下来需要设定IO模式,并控制IO口的输出电平。

void Board_Init(void)

{

         /*INMUX and IOCON are used by many apps, enable both INMUX and IOCON clock bitshere. */

         Chip_Clock_EnablePeriphClock(SYSCON_CLOCK_INPUTMUX);

         Chip_Clock_EnablePeriphClock(SYSCON_CLOCK_IOCON);

 

         /*Sets up DEBUG UART */

         DEBUGINIT();

 

         /*Initialize GPIO */

         Chip_GPIO_Init(LPC_GPIO);

 

         /*Initialize the LEDs. Be careful with below routine, once it's called some ofthe I/O will be set to output. */

         Board_LED_Init();

}

用到下面2个函数:

通过如下的宏定义实现:

在TFT LCD上显示出的彩虹条:

 

 

原文地址 http://bbs.eeworld.com.cn/thread-461864-1-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值