Thaimicrotron.com : Home
 
 
Page2
 
 
การใช้งาน LCD โมดูล
คำสั่งควบคุมการแสดงผลของ LCD โมดูล
 
   
  คำสั่งควบคุมการแสดงผลของ LCD โมดูล  
 
 Instruction RS R/W Command Code (binary) Description
7 6 5 4 3 2 1 0
1
Clear Display
0
0
0 0 0 0 0 0 0 1 Clear entire display and move cursor home (address 0)
2
Home Display
0
0
0 0 0 0 0 0 1 0 Move cursor home and return display to home position.
3
Entry Mode Set
0
0
0 0 0 0 0 1 M S Sets cursor direction (M: 0=left, 1=right) and display scrolling (S: 0=no scroll, 1=scroll)
4
Display/Cursor
0
0
0 0 0 0 1 D C B Sets display on/off (D), cursor on/off (C) and blinking cursor (B). (0=off, 1=on)
5
Cursor or Display Shift
0
0
0 0 0 1 C M 0 0 Cursor or Display Shift (C: 0=cursor, 1=display) left or right (M: 0=left, 1=right).
6
Function Set
0
0
0 0 1 D N F 0 0 Data bus size (D: 0=4-bits, 1=8-bits), lines No.(N: 0=1-line, 1=2-lines) and font size (F: 0=5x7, 1=5x10)
7
Set CG-RAM Address
0
0
0 1 CGRAM ADDRESS Move pointer to Character Generator RAM location specified by address (ADDRESS)
8
Set DD-RAM Address
0
0
1 DDRAM ADDRESS Move cursor to Display Data RAM location specified by address (ADDRESS)
9
Busy, ADD.Read
0
1
BF ADDRESS Read Busy flag, And Address Read
10
CGRAM,DDRAM WR
1
0
WRITE DATA Write Data to DDRAM or CGRAM
11
CGRAM,DDRAM RD
1
1
READ DATA Read Data to DDRAM or CGRAM
 
 
ตารางที่1 คำสั่งควบคุมการแสดงผล LCD
 
     
  รายละเอียดคำสั่ง  
  1). เคลียร์การแสดงผล (Clear Display)  
 
7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 1
 
bit0=1 เคลียร์การแสดงผล  
เคอร์เซอร์กลับไปอยู่ที่มุมซ้ายมือสุด  
RS=0, R/W=0    
 
     
  2).Home Display  
 
7 6 5 4 3 2 1 0
0 0 0 0 0 0 1 -
 
bit1=1 เคอร์เซอร์กลับไปอยู่ที่มุมซ้ายมือสุด  
ข้อมูลไม่มีการเปลี่ยนแปลง  
RS=0, R/W=0    
 
     
  3).โหมดการป้อนข้อมูล (Entry Mode Set )  
 
7 6 5 4 3 2 1 0
0 0 0 0 0 1 M S
 
bit2=1  
M (Address Increase/Decrase) , M=0 ลดตำแหน่งแอดเดรส,M=1 เพิ่มตำแหน่งแอดเดรส  
RS=0, R/W=0   S (Shift bit) การเลื่อนข้อมูล,S=0 เคอร์เซอร์จะเลื่อนไปทางขวา ,S=1เคอร์เซอร์จะอยู่กับที่
 
     
     
  4).การควบคุมการแสดงผล (Display/Cursor )  
 
7 6 5 4 3 2 1 0
0 0 0 0 1 D C  B
 
bit3=1  
D (Display ON/OFF) D=0 OFF, D=1 ON,  
RS=0, R/W=0   C (Cursor ON/OFF) C=0 OFF, C=1 ON,
    B   (Blinking Cursor ON/OFF ) B=0 OFF, B=1 ON,
 
     
  5).การควบคุมการเลื่อนเคอร์เซอร์ ( Cursor or Display Shift )  
 
7 6 5 4 3 2 1 0
0 0 0 1 C M   - -
 
bit4=1  
C (Cursor or Display Shift) C=0 shift cursor ,C=1 shift display  
RS=0, R/W=0   M (Move left/right) M=0 left, M=1 right,
 
     
  6).ฟังก์ชั่นเซ็ท ( Function Set )  
 
7 6 5 4 3 2 1 0
0 0 1 D N   F   -  -
 
bit5=1  
D (Data bus size ) D= 0 is 4-bits,D= 1 is 8-bits,  
RS=0, R/W=0   N ( lines No.)N= 0 is 1-line,N= 1 is 2-lines
    F ( font size) F= 0 is 5x7,F= 1 is 5x10
 
   
  7).เซ็ทต่ำแหน่งใน CG-RAM ( Set CG-RAM Address)  
 
7 6 5 4 3 2 1 0
0 1 A5 A4 A3 A2 A1 A0
 
bit6=1  
หน่วยความจำชั่วคราว เก็บข้อมูลตัวอักษร CG-RAM (Character Generator RAM)  
RS=0, R/W=0   A0-A5 เป็นต่ำแหน่งแอดเดรสใน CG-RAM
 
 
  8).เซ็ทต่ำแหน่งใน DD-RAM ( Set DD-RAM Address)  
 
7 6 5 4 3 2 1 0
1 A6 A5 A4 A3 A2 A1 A0
 
bit7=1  
หน่วยความจำชั่วคราว เก็บข้อมูลการแสดง DD-RAM (Display Data RAM)  
RS=0, R/W=0   A0-A6 เป็นต่ำแหน่งแอดเดรสใน DD-RAM ซึ่งจะถูกคัดลอกไปยัง Address Counter (AC)
 
   
  DD-RAM คือหน่วยความจำที่เก็บข้อมูลการแสดงผล หากเขียนรหัส ASCII ลงในหน่วยความจำนี้ก็จะปรากฏที่จอ LCD ทันที  
  ต่ำแหน่ง Address ของ LCD แต่ละแบบ  
     
  1 x 16 Display  
 
Line 1 0 1 2 3 4 5 6 7 64 65 66 67 68 69 79 71
 
     
  2 x 16 Display  
 
Line 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Line 2 64 65 66 67 68 69 79 71 72 73 74 75 76 77 78 79
 
     
  4 x 20 Display  
 
Line 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Line 2 64 65 66 67 68 69 79 71 72 73 74 75 76 77 78 79 80 81 82 83
Line 3 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
Line 4 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
 
 
  เช่นกรณีใช้งาน LCD โมดูลแบบ 2x16 ต้องการให้แสดงผลที่บรรทัดที่ 2 ใน column แรก  
  จะมีค่า address = 64(dec)  
  โดยการนำคำสั่งนี้คือ 10000000 หรือ 0x80 มา OR กับ address  
  0x80 OR 64(dec) = 0xC0 จะเป็นชุดคำสั่งที่ใช้เขียนไปยังโมดู LCD  
     
  9). การอ่าน BUSY Flag And Address Counter (BF and AC)  
 
7 6 5 4 3 2 1 0
BF A6 A5 A4 A3 A2 A1 A0
 
BF=bit7 เป็นตัวบอกสถานะของ LCD
R/W=1 กำหนดให้เป็น Read mode
RS=0, R/W=1   BF=0 ว่าง, BF=1 ไม่ว่าง
    A0-A6 = Address Counter (AC)
 
     
  10). การเขียนข้อมูลใน CG or DD-RAM  
 
7 6 5 4 3 2 1 0
D7 D6 D5 D4 D3 D2 D1 D0
 
RS=1 กำหนดให้เป็นข้อมูล
R/W=0 กำหนดให้เป็น Wrire mode
D0-D7 =ข้อมูลที่ต้องการเขียน  
RS=1, R/W=0  
     
หากต้องการเขียนข้อมูลใน CG-RAM ให้เซ็ทต่ำแหน่ง CG-RAM ในคำสั่งที่ 7 ก่อน
หากต้องการเขียนข้อมูลใน DD-RAM ให้เซ็ทต่ำแหน่ง DD-RAM ในคำสั่งที่ 8 ก่อน
     
 
     
  11). การอ่านข้อมูลจาก CG or DD-RAM  
 
7 6 5 4 3 2 1 0
D7 D6 D5 D4 D3 D2 D1 D0
 
RS=1 กำหนดให้เป็นข้อมูล
R/W=1 กำหนดให้เป็น Readmode
D0-D7 =ข้อมูลที่อ่านได้  
RS=1, R/W=0  
     
หากต้องการอ่านข้อมูลใน CG-RAM ให้เซ็ทต่ำแหน่ง CG-RAM ในคำสั่งที่ 7 ก่อน
หากต้องการเอ่านข้อมูลใน DD-RAM ให้เซ็ทต่ำแหน่ง DD-RAM ในคำสั่งที่ 8 ก่อน
 
     
     
 
SMITDH EMSOMBAT
 
 
ศมิทธิ์ เอมสมบัติ