07 Interfacing FPGA to LCD
อุปกรณ์
บอร์ดทดลอง FPGA MOJO V3
โมดูลจอ LCD 2x16
เครื่องมือ
Xilinx ISE Webpack 14.7
ความสามารถ
สร้างสัญญาณ ควบคุมการสั่งงานโมดูลจอ :CD ได้
แยกข้อความแสดงผล กับชุดควบคุม
วัตถุประสงค์
ศึกษาการเขียนภาษา VHDL ให้ทำงานได้ตาม Timing Diagram
วงจร
โมดูล LCD แบบตัวอักษร
รายละเอียดเกี่ยวกับ โมดูล LCD สามารถค้นหาดูได้จากหลายๆแหล่ง ในที่นี้จะกล่าวถึงเฉพาะที่เกี่ยวข้องกับการนำมาใช้งานเท่านั้น
สัญญาณของ LCD
การสั่งงานโมดูล LCD ต้องส่งข้อมูลเข้าทาง DB0 - DB7 โดยข้อมูลที่ส่งเป็นได้ทั่ง คำสั่งควบคุม และตัวอักษรที่ต้องการให้แสดงออกทางจอ
การส่งคำสั่ง เป็นการกำหนดสถานะการทำงานของโมดูล LCD ที่จะใช้ ตัวอย่างคำสั่งที่สำคัญมีดังนี้
รหัสคำสั่ง (Hex)
0x01
0x02
0x04
0x05
0x06
0x07
0x08
0x0A
0x0C
0x0E
0x0F
0x10
0x14
0x18
0x1C
0x80
0xC0
0x38
ความหมาย
Clear display screen
Return Home
Decrement cursor (shift cursor to left)
Increment cursor (shift cursor to right)
shift display right
shift display left
Display off, cursor off
Display off, cursor on
Display on, cursor off
Display on, cursor blinking
Display on, cursor blinking
Shift cursor position to left
Shift cursor position to right
Shift the entire display to the left
Shift the entire display to the right
Force cursor to the beginning of 1st line
Force cursor to the beginning of 2nd line
2 lines and 5 x 7 matrix
** ในโค๊ด VHDL ใด้ใช้คำสั่งเหล่านี้
การส่งคำสั่ง ให้โมดูล LCD ต้องทำตามลำดับ ดังนี้
ให้สัญญาณ RS = 0
ให้สัญญาณ W = 0
ให้สัญญาณ E = 1
ป้อนคำสั่งเข้าที่ขา DB0-DB7
ให้สัญญาณ E = 0
ซึ่งเขียนเป็นไดอะแกรมเวลาดังนี้
ค่าเวลาที่สำคัญ
tcycle ต้องไม่น้อยกว่า 1000 ns
PWEH ต้องไม่น้อยกว่า 450 ns
ส่วนการส่งข้อมูลออกแสดงที่จอ ก็ทำเช่นเดียวกับการส่งคำสั่ง เพียงแต่ให้สัญญาณ RS = 1
** ลำดับขั้นการทำงานแบบนี้ดูได้จาก โค๊ด VHDL ในไฟล์ lcd_control.vhd
การต่อโมดูล LCD กับ FPGA
ตัวอย่างโค๊ด VHDL
lcd_ex1 เป็นโมดูลหลัก
divider เป็นโมดูลหารความถี่
message_rom เป็นโมดูล Rom เป็นโมดูลเก็บข้อความที่ต้องแสดงออกจอ
lcd_control เป็นโมดูลควบคุม lcd และจะดึงข้อมูลจาก message_rom ส่งให้โมดูล LCD
ตัวอย่างนี้จะแสดงข้อความ "Hello ePlearn" แสดงที่บรรทัดแรก
เมื่อ download config file ลง FPGA เสร็จแล้ว ให้กดสวิทช์ reset ชิพจะเริ่มทำงาน
ไฟล์ต่างๆอยู่ด้านล่างนี้
[home]