|
เมื่อเริ่มจ่ายไฟให้กับ
LCD ที่ระดับแรงดันถึง 4.5 V แล้ว LCD จะ Reset ตัวเอง (Internal Reset)
และจะ set ค่าเริ่มต้น ต่างๆดังนี้ |
|
1).
Display Clear
|
|
|
|
2).
Function Set |
|
|
|
|
DL=1
8bit
N=0 1บรรทัด
F=0 5x7 dot |
|
|
|
3).
Display ON/OFF |
|
|
|
|
D=0 Display
OFF
C=0 Cursor OFF
B=0 Blink OFF |
|
|
|
|
|
|
|
|
4).Entry
Mode Set |
|
|
|
|
I/D=1 (เพิ่มค่า
Counter ขึ้น 1)
S=0 No Shit |
|
|
|
|
|
|
|
|
หลังจากนั้นเราต้อง
set ค่าต่างๆ (Initializing by Instruction) เพื่อให้ LCD เริ่มทำงานตามที่เราต้องการดังนี้
|
|
|
|
|
|
การใช้งาน
LCD แบบ 8bit |
|
|
|
|
|
|
|
1).หากเป็นการเริ่มจ่ายไฟให้
LCD |
เพื่อให้
LCD Internal Reset |
|
|
|
ให้รออย่างน้อย
15ms |
|
|
|
2).
กำหนดขาควบคุม |
|
|
|
|
ให้ขา E
= 0 |
|
|
|
|
ให้ขา RS=
0 |
กำหนดเป็นคำสั่ง |
|
|
|
ให้ขา R/W
= 0 |
เขียนข้อมูล |
|
|
3).ส่งข้อมูลค่ำสั่ง
Function Set 3 ครั้ง |
|
|
|
|
3.1) data
= 00110000 |
Function
Set DB5=1,DL=1(8bit) |
|
|
|
E=1,delay(450ns),E=0 |
E |
|
|
|
รออย่างน้อย
4.1ms |
|
|
|
|
3.2) data
= 00110000 |
Function
Set DB5=1,DL=1(8bit) |
|
|
|
E=1,delay(450ns),E=0 |
E |
|
|
|
รออย่างน้อย
100 us |
|
|
|
|
3.3) data
= 00110000 |
Function
Set DB5=1,DL=1(8bit) |
|
|
|
E=1,delay(450ns),E=0 |
E |
|
|
4).กำหนดการทำงานของ
LCD ตามที่ต้องการ เช่น |
|
|
|
|
Entry Mode
Set (BIT2=1) |
|
|
|
00000110 |
[000001MS]
, Cursor direction right (M=1);no
scroll (S=0) |
|
|
E=1,delay(450ns),E=0 |
E |
|
|
|
|
|
|
|
Display/Cursor
(BIT3=1) |
|
|
|
00001111 |
[00001DUB]
,Display On (D=1),Cursor
On (U=1) ,blinking block
cursor On (B=1) |
|
|
E=1,delay(450ns),E=0 |
E |
|
|
|
|
|
|
|
|
Function
Set (BIT5=1) |
[001DNF00
],Sets buss size 8bit (D=1),number of lines=2 (N=1),font
size =5x7(F=0) |
|
|
00111000 |
|
|
|
|
E=1,delay(450ns),E=0 |
E |
|
|
|
|
|
|
|
ตัวอย่างการเขียนโปรแกรมแสดงผล
LCD โมดูลแบบ 8bit |
|
การใช้งาน
LCD แบบ 4bit |
|
|
|
|
|
|
|
1).หากเป็นการเริ่มจ่ายไฟให้
LCD |
เพื่อให้
LCD Internal Reset |
|
|
|
ให้รออย่างน้อย
15ms |
|
|
|
2).
กำหนดขาควบคุม |
|
|
|
|
ให้ขา E
= 0 |
|
|
|
|
ให้ขา RS=
0 |
กำหนดเป็นคำสั่ง |
|
|
|
ให้ขา R/W
= 0 |
เขียนข้อมูล |
|
|
3).ส่งข้อมูลค่ำสั่ง
Function Set 3 ครั้ง |
ข้อมูล
D4-D7 จะถูกส่งไปที่ bus |
|
|
|
3.1) data
= 00110000 |
|
|
|
|
E=1,delay(450ns),E=0 |
E |
|
|
|
รออย่างน้อย
4.1ms |
|
|
|
|
3.2) data
= 00110000 |
|
|
|
|
E=1,delay(450ns),E=0 |
E |
|
|
|
รออย่างน้อย
100 us |
|
|
|
|
3.3) data
= 00110000 |
|
|
|
|
E=1,delay(450ns),E=0 |
E |
ตอนนี้ยังเป็น
8 bit อยู่ |
|
4).กำหนดการทำงานของ
LCD ให้เป็น 4 bit |
|
|
|
|
data=
00100000
|
Function
Set (BIT5=1) [001DNF00
],Sets buss size 4bit (D=0)ข้อมูลเฉพาะ
D4-D7 จะถูกส่งออกไปที่บัส |
|
|
E=1,delay(450ns),E=0 |
E
|
|
|
|
ตอนนี้เป็น
4 bit แล้ว |
|
|
เมื่อเป็น
4 bit ต้องส่งข้อมูลคำสั่งสองครั้งๆ ละ 4 bit |
|
|
5). |
Function
Set (BIT5=1) |
กำหนด
ขนาดข้อมูล,จำนวนบรรทัด, ขนาดตัวอักษร |
|
|
เตรียมข้อมูลค่ำสั่ง
00101000 |
[001DNF00
],Sets buss size 4bit (D=0),number of lines=2 (N=1),font
size =5x7(F=0) |
|
|
ส่งข้อมูลไบท์สูงออกไปก่อน
data =00101000 |
|
|
|
|
E=1,delay(450ns),E=0 |
E |
|
|
|
สลับไบท์สูง-ต่ำ
10000010
|
|
|
|
ส่งข้อมูลไบท์ต่ำ
data =10000010
|
|
|
|
E=1,delay(450ns),E=0 |
E |
|
|
|
|
|
|
6). |
Display/Cursor
(BIT3=1) |
กำหนดการแสดงผล,
เคอร์เซอร์ |
|
|
เตรียมข้อมูลค่ำสั่ง
00001100 |
[00001DUB]
,Display On (D=1),Cursor
Off (U=0) ,blinking
block cursor Off (B=0) |
|
|
ส่งข้อมูลไบท์สูงออกไปก่อน
data =00001100 |
|
|
|
|
E=1,delay(450ns),E=0 |
E |
|
|
|
สลับไบท์สูง-ต่ำ
11000000 |
|
|
|
ส่งข้อมูลไบท์ต่ำ
data =11000000 |
|
|
|
E=1,delay(450ns),E=0 |
E |
|
|
|
|
|
|
7). |
Entry Mode
Set (BIT2=1) |
โหมดการป้อนข้อมูล
|
|
|
ตรียมข้อมูลค่ำสั่ง
00000110
|
[000001MS]
, Cursor direction right (M=1);no
scroll (S=0) |
|
|
ส่งข้อมูลไบท์สูงออกไปก่อน
data =00000110 |
|
|
|
|
E=1,delay(450ns),E=0 |
E |
|
|
|
สลับไบท์สูง-ต่ำ
01100000 |
|
|
|
ส่งข้อมูลไบท์ต่ำ
data =01100000 |
|
|
|
E=1,delay(450ns),E=0 |
E |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|