2016年6月26日 星期日

DIY - PIC24:PIC24FJ64GA008 ILI9341 LCD 讀寫方式(二十一)

DIY - PIC24PIC24FJ64GA008 ILI9341 LCD 讀寫方式(二十一): 

LCD 液晶屏的驅動蕊片的讀寫方式各異,所以要特別注意,否則便無法將指令和資料讀寫到驅動蕊片。筆者在 ILITEK ILI9341 選擇了 8080-II 系列並行雙向接口(8080- Series Parallel Interface)的數據連接,所以也是要根據 ILI9341 的讀寫方式, 這接口方式是由 IM0 ~ IM3 的引腳作設定,但 LCD 的模塊已經簡化了設定,可以選擇 8080-II 系列並行雙向接口 8-bit 16-bit 數據通訊。
ILI9341 LCD 的數據通訊選擇
ILI9341 寫入時間序列(Write Cycle Sequence):
寫入時間序列是由 WRX 信號從高後低開始,當信號由低昇上高位時(Rising Edge)便會作寫入操作,在這時 MCU 處理器已提供穩定的指令 / 數據信息,在 WRX 的上升沿(Rising EdgeLCD 顯示模塊會捕捉信息。當 D / CX 信號是低電平(Low),信息是指令(Command), LCD 顯示模塊接收指令後D / CX 信號是高電平(High),MCU 會發出信息便是數據(Data),LCD 顯示模塊便會繼續接收數據。

ILI9341 寫入時間序列(Write Cycle Sequence
詳盡的 ILI9341 寫入時間序列(Write Cycle Sequence
Microchip PIC24FJ64GA008 2.8TFT LCD 液晶屏寫入時間序列(Write Cycle Sequence):
unsigned char ILI9341_RD_DATA()
{
unsigned char data;

        // Read Data Operation Ready RS=1
        RS_LAT_BIT = 1;         // Select Data On = 1
        CS_LAT_BIT = 0;         // Chip Set On = 0
        DAT_TRIS_BIT |= 0x00FF; // Data D0~D7 = Input = 1

        // Read Data = data
        RD_LAT_BIT = 0;         // Read Data from LCD
        Nop();Nop();            // Delay
        data = DAT_PORT_BIT;    // data = Data
        RD_LAT_BIT = 1;         // Read Data off = 1
       
return data;                    // Return data
}

ILI9341 讀入時間序列(Read Cycle Sequence):
讀入時間序列是由 RDX 信號從 MCU 從高後低開始,當信號由低昇上高時(Rising Edge)便會作讀入操作。首先當 D / CX 信號是低電平(Low)和 WRX 是低電平(Low),MCU 會發出信息是指令Command),等 LCD 顯示模塊接收指令後D / CX 信號是高電平(High)和 WRX 是高電平(High),但 RDX 會變成低電平(Low),LCD 顯示模塊會發出信息是數據(Data),MCU 便會讀入數據處理。

ILI9341 讀入時間序列(Read Cycle Sequence
詳盡的 ILI9341 讀入時間序列(Read Cycle Sequence
Microchip PIC24FJ64GA008 2.8 TFT LCD 液晶屏讀入時間序列(Read Cycle Sequence):
void ILI9341_WR_DATA(unsigned char data)
{
       
        // Write Data Operation Ready RS=1
        RS_LAT_BIT = 1;     // Select Data On = 1
        CS_LAT_BIT = 0;     // Chip Set On = 0
        RD_LAT_BIT = 1;     // Read Device Off = 1
        DAT_TRIS_BIT &= 0xFF00; // Data D0~D7 = Output = 0       
      
        // Write Data = data
        DAT_LAT_BIT = data; // Data D0~D7 = data
        WR_LAT_BIT = 0;     // Write data to LCD On = 0

        // Finished Write Data 8bits
        WR_LAT_BIT = 1;     // Write Command Off = 1
        CS_LAT_BIT = 1;     // Chip Selet Off = 1
}

20166 26日 天氣報告
氣溫:30.9@ 19:30
相對濕度:百分之 75%
天氣:天色大致良好
※ 酷熱天氣警告現正生效 

沒有留言:

張貼留言