2016年12月26日 星期一

DIY - PIC24:PIC24FJ64GA008 NOKIA 5110 LCD 模塊 I/O 電路(五十六)

DIY - PIC24PIC24FJ64GA008 NOKIA 5110 LCD 模塊 I/O 電路(五十六): 

由於 NOKIA (諾基亞) 5110 LCD 液晶屏模塊是使用介面為串列外設介面(SPISerial Peripheral Interface),所以理所當然是使用串列介面連接,但也可以使用一般的 I/O 介面連接。筆者在設計電路時,也考慮到 NOKIA 5110 LCD 液晶屏連接,可以使用串列外設介面(SPI)或一般的 I/O 介面編程是最好,所以 DINSerial Data Input) 和 CLKSerial Clock Input) 會連接到 SDO1/RF8 SCLK1/RF6,而 CEChip Enable) 和 DCData/Command Selection) 便連接到一般的 RE1/RE2 I/O 接口。

PIC24FJ64GA008 NOKIA 5110 LCD 模塊 I/O 電路圖
NOKIA 5110 1.6 LCD 液晶屏模塊(Liquid Crystal Display Module)是使用 Philips (飛利浦)PCD8544 控制器芯片,NOKIA 5110 1.6 LCD 液晶屏模塊是使用採用 SPI 通信介面,資料線和控制線都連接到 8腳(1×8腳)的連接器上。

Microchip PIC24FJ64GA008 1.6 NOKIA 5110 LCD 液晶屏連接:
LCD
Signal
Description
I/O Bus
MCU
Signal
1
RST
Reset (Active Low)
11
76
RE0
2
CE
Chip Enable (Active Low)
12
77
RE1
3
DC
Data/Command Selection
Low – Write Commnad
High – Write Data
13
78
RE2
4
DIN
Serial Data Input
19
43
SDO1/RF8
5
CLK
Serial Clock Input
23
45
SCK1/RF6
6
VCC
2.7 ~ 3.3V
1

+3.3V
7
BL
Backlight
15
79
RE3
8
GND
Ground
6

GND

工作原理: 
Philips (飛利浦)PCD8544 控制器芯片與 Microchip PIC24FJ64GA008 是採用串列外設介面(SPISerial Peripheral Interface Bus)連接,而 PCD8544 I/O 控制已經連接到 8腳的連接器,DINData Input Line - Pin 4)接至 MCU SDO1/RF8SPI Data Input 1 / RF8 - Pin 43),CLKSPI Clock Input Line - Pin 5)接至 MCU SCK1/RF6SPI Clock Output 1 /RF6 - Pin 45),RSTReset - Pin 1)接至 MCU PMD0/RE0RE0 - Pin 76),CEChip Enable - Pin 2)接至 MCU PMD1/RE1RE1 - Pin 77),D/CData / Command - Pin 3)接至 MCU PMD2/RE2RE2 - Pin 78),和 BLBacklight Control - Pin 7)接至 MCU PMD3/RE3RE3 - Pin 79)。由於 SPI 是引腳是可以作 SPI 和一般 I/O使用,所以可試驗簡單的 I/O 操作。

Microchip PIC24FJ64GA008 PCD8544 LCD屏接腳 I/O 程式定義:
// Definitions for Reset pin
#define RST_TRIS_BIT       TRISEbits.TRISE0
#define RST_LAT_BIT        LATEbits.LATE0

// Definitions for CS pin
#define CS_TRIS_BIT        TRISEbits.TRISE1
#define CS_LAT_BIT         LATEbits.LATE1

// Definitions for RS pin
#define RS_TRIS_BIT        TRISEbits.TRISE2
#define RS_LAT_BIT         LATEbits.LATE2

// Definitions for Backlight enable pin
#define LED_TRIS_BIT       TRISEbits.TRISE3 // Output
#define LED_LAT_BIT        LATEbits.LATE3

// Definitions for CLK pin
#define CLK_TRIS_BIT        TRISFbits.TRISF6
#define CLK_LAT_BIT         LATFbits.LATF6

//Definition for data BUS
#define DAT_TRIS_BIT        TRISFbits.TRISF8
#define DAT_LAT_BIT         LATFbits.LATF8
#define DAT_PORT_BIT        PORTFbits.RF8

Microchip PIC24FJ64GA008 PCD8544 LCD屏初始化程式:
void nokia_init(void)
{
AD1PCFG = 0xFFFF;
_PMPEN = 0;

// Start Reset Device
// Set I/O as Input=1/Output=0
RST_TRIS_BIT = 0;  // Reset = Output = 0
CS_TRIS_BIT  = 0;  // Chip Select = Output = 0    
RS_TRIS_BIT  = 0;  // Command/Data = Output = 0
DAT_TRIS_BIT = 0;  // Data D0~D7 = Output = 0
CLK_TRIS_BIT = 0;  // SCLK = Output = 0
LED_TRIS_BIT = 0;  // Backlight LED = Output = 0

// Backlight LED ON
LED_LAT_BIT = 1;  // Backlight LED On = 1
RS_LAT_BIT  = 1;  // Data/-Command
CS_LAT_BIT  = 0;  // Chip Select ON = 0  

// Hardward Reset LCD Device
RST_LAT_BIT = 0;  // Reset LCD On = 0 >100ms
delayms(250);
CS_LAT_BIT = 1;   // Chip Select Off = 1
RST_LAT_BIT = 1;  // Reset LCD Off = 1
delayms(200);

nokia_write_command(0x21);   // set extended instruction set
nokia_write_command(0xB1);   // 0x90 was 0xc2  LCD=;3.06+162*0.06=4.02
nokia_write_command(0x04);
nokia_write_command(0x14);   //0x13   bias   1:48 -> n=4
nokia_write_command(0x0C);   //0x13   bias   1:48 -> n=4
nokia_write_command(0x20);   // horiz mode Droite, X autoincremente
delayms(150);
nokia_write_command(0x0C);   // mod control normal change
delayms(50);
CS_LAT_BIT = 1;   // Chip Select Off = 1
}

PIC24FJ64GA008 NOKIA 5110 LCD 模塊 I/O 電路試驗
2016年 12月 26日 天氣報告
氣溫:20.8@ 20:30
相對濕度:百分之 75%
天氣:大致多雲

沒有留言:

張貼留言