LCD Character

LCD Character

2004A ส่วนใหญ่จะเป็นไอซีเบอร์ HD44780

20 characters(Column)

4 line (Row)

5X8 DOT

RS (Register Select)สำหรับรับ-ส่ง คำสั่ง หรือข้อมูล
– 0 รับ-ส่ง คำสั่ง ต้องการติดต่อกับรีจิสเตอร์ควบคุม command
– 1 รับ-ส่ง ข้อมูล ต้องการติดต่อรีจิสเตอร์แสดงผล

RW เลือกว่าจะเขียนหรืออ่านข้อมูล จะทดลองต่อลง GND ตลอดเพราะเราจะเขียนอย่างเดียว
– 0  เขียน
– 1  อ่าน

EN สัญญาณพัลล์ เมื่อเขียนหรืออ่านข้อมูล Clock Enable (falling-edge triggered)
–  1 แจ้งให้ทราบว่าภายนอกต้องการติดต่ออ่านหรือเขียนข้อมูล การรับส่งจะเริ่มเมื่อมีการเปลี่ยนจาก 1 และ ขอบขาลง
–  0 ปิดการรับข้อมูลหรือคำสั่งจาก RS , RW  , DB7-DB0

DB0-DB7 สำหรับอ่านหรือเขียนข้อมูล

ขั้นตอนการทำงาน

    1. กำหนดขาสำหรับรับส่งข้อมูล RS , EN , D4 , D5 , D6 , D7  กำหนดให้เป็น OUTPUT ส่วน RW ต่อลง GND แล้วรอประมาณ 15mS หลังป้อนไฟ
    2. กำหนดค่าเริ่มต้น การติดต่อแบบ 4-bit mode โดยการส่ง command
      – ให้ RS เป็น 0 เพื่อเริ่มส่ง command และ RW=0
      – ในการส่ง command จะส่ง ที่ละ 4 bit โดยเริ่มจาก 4 bit บนก่อน
      – เมื่อส่ง 4 bit บน แล้ว ให้ทำการล็อกข้อมูลใว้ใน LCD  Toggle EN latch the data โดยการกำหนดให้

      EN เป็น 1 และหน่วงเวลาประมาณ 1uS แล้วให้ EN เป็น 0 จึงเริ่มเขียนข้อมูล 4 bit ล่าง
      – เมื่อส่ง 4 bit ล่าง แล้ว ให้ทำการล็อกข้อมูล 4 bit ล่างใว้ใน LCD  Toggle EN latch the data อีกครั้ง
      – เมื่อส่ง 4 bit บน และ 4 bit ล่าง จนครบ 8 bit แล้ว ให้หน่วงเวลาประมาณ 50uS เป็นการเสร็จสิ้นเพื่อรอรับ command ต่อไป
      – command  0x33   กำหนดให้ทำงานในโหมด 8 บิต
      – command  0x32   กำหนดให้ทำงานในโหมด 4 บิต
      – command  0x28   กำหนด 2 Line, 5×7 matrix
      – command  0x0C   Display on, cursor off //0x0E เปิดจอแสดงผลและเคอร์เซอร์ เปลี่ยนค่านี้เป็น 0x0C หากคุณไม่ต้องการเคอร์เซอร์
      –  command  0x06   Increment cursor (shift cursor to right)
      –  command  0x01   Clear display screen
      – หน่วงเวลาประมาณ 15 mS เคยไม่หน่วงมันขึ้นแปลกๆ

 

command ที่อาจใช้งาน

  • 0x01 Clear display ล้างการแสดงผล
  • 0x02 และ 0x03 เคอร์เซอร์ กลับไปที่ตำแหน่งแรก ไม่ว่าเคอร์เซอร์จะอยู่ตำแหน่งไหน Return cursor to home, and un-shift display
  • คำสั่ง โหมดรายการ: ส่วนควบคุมต่อไปนี้จะควบคุมลักษณะการทำงานของเคอร์เซอร์หลังจากป้อนอักขระแต่ละตัว
  • 0x04 เลื่อนตัวอักษรไปทางซ้ายโดยไม่ลบอักษรตำแหน่งเดิม move cursor right, don’t shift display
  • 0x05 เลื่อนตัวอักษรไปทางขวาโดยเลื่อนตัวอักษรไปตำแหน่งขวาด้วย  move cursor right, don’t shift display
  • 0x06 เลื่อนตัวอักษรไปทางขวา และเคอร์เซอร์ไปขวาสุด move cursor right, don’t shift display (this is the most common)
  • 0x07 เลื่อนตัวอักษรไปทางซ้าย และเคอร์เซอร์ไปขวาสุด move cursor right, do shift display (left)
  • การควบคุมการแสดงผล: คุณสมบัติการแสดงผลการควบคุมต่อไปนี้
  • 0x08 Display off, cursor off
  • 0x0A Display off, cursor on
  • 0x0C ปิดเคอร์เซอร์ Display ON, cursor OFF
  • 0x0E เปิดเคอร์เซอร์ Display on, cursor blinking
  • 0x0F Display on, cursor blinking
  • คำสั่งต่อไปนี้จะเลื่อนเคอร์เซอร์และเลื่อนการแสดงผล
  • 0x10 เลื่อนเคอร์เซอร์ไปทางซ้าย Shift cursor position to left
  • 0x14 เลื่อนเคอร์เซอร์ไปทางขวา Shift the cursor position to the right
  • 0x18 เลื่อนจอแสดงผลไปทางซ้าย Shift the entire display to the left
  • 0x1C เลื่อนจอแสดงผลไปทางขวา Shift the entire display to the right
  • ตำแหน่งเคอร์เซอร์ 0x80 + ตำแหน่ง
  • 0x80 เลื่อนเคอร์เซอร์ไปที่จุดเริ่มต้นของบรรทัดที่ 0 orce cursor to the beginning ( 1st line)
  • 0x83 Cursor line 1 position 3
  • 0xC0 เลื่อนเคอร์เซอร์ไปที่จุดเริ่มต้นของบรรทัดที่ 1 Force cursor to the beginning ( 2nd line)
  • 0xC1 Jump to second line, position 1
  • 0xC2 Jump to second line, position 2
  • 0x80 เลื่อนเคอร์เซอร์ไปที่จุดเริ่มต้นของบรรทัดที่ 0 ROW 1
  • 0xC0 เลื่อนเคอร์เซอร์ไปที่จุดเริ่มต้นของบรรทัดที่ 1 ROW 2
  • 0x94 เลื่อนเคอร์เซอร์ไปที่จุดเริ่มต้นของบรรทัดที่ 2 ROW 3
  • 0xD4 เลื่อนเคอร์เซอร์ไปที่จุดเริ่มต้นของบรรทัดที่ 3 ROW 4
  • 0x38 2 lines and 5×7 matrix