เฮ้ ในฐานะซัพพลายเออร์ของการแสดงตัวละคร LCD ฉันได้มีส่วนร่วมอย่างยุติธรรมในการจัดการกับปัญหาและการกำหนดค่าที่เกี่ยวข้องกับการแสดงผลทุกประเภท วันนี้ฉันจะแนะนำคุณถึงวิธีกำหนดค่าการตั้งค่าการแสดงผลของการแสดงตัวอักษร LCD
สิ่งแรกก่อนที่จะพูดคุยเกี่ยวกับประเภทของตัวละคร LCD ที่แสดงออกมาที่นั่น เรามีไฟล์จอแสดงผล LCD 1602Aซึ่งเป็นที่นิยมอย่างมาก มันสามารถแสดงอักขระ 16 ตัวต่อบรรทัดและมี 2 บรรทัด แล้วก็มีLCD Display 16x1ซึ่งเป็นสิ่งที่ดีถ้าคุณต้องการการแสดงผลสายเดียว และสำหรับผู้ที่ต้องการพื้นที่มากขึ้นจอแสดงผล LCD 20x4เสนอ 20 อักขระต่อบรรทัดและ 4 บรรทัด
ทำความเข้าใจพื้นฐาน
ก่อนที่เราจะเริ่มกำหนดค่าสิ่งสำคัญคือต้องเข้าใจส่วนประกอบพื้นฐานของการแสดงอักขระ LCD จอแสดงผลเหล่านี้ส่วนใหญ่มีคอนโทรลเลอร์มักจะเป็น HD44780 หรือที่เข้ากันได้ คอนโทรลเลอร์นี้เป็นเหมือนสมองของจอแสดงผลจัดการวิธีการแสดงตัวละครบนหน้าจอ
จอแสดงผลยังมีหมุด พินเหล่านี้ใช้เพื่อเชื่อมต่อจอแสดงผลกับไมโครคอนโทรลเลอร์หรืออุปกรณ์ควบคุมอื่น ๆ มีพินพลังงาน (โดยปกติจะเป็น VSS, VDD และ V0), พินข้อมูล (D0 - D7) และพินควบคุม (RS, RW, E)
การเพิ่มพลัง
ขั้นตอนแรกในการกำหนดค่าการแสดงผลคือการเพิ่มพลังงานอย่างถูกต้อง เชื่อมต่อพิน VSS เข้ากับกราวด์ (GND), พิน VDD กับแหล่งจ่ายไฟ 5V พิน V0 ใช้เพื่อควบคุมความคมชัดของจอแสดงผล คุณสามารถเชื่อมต่อกับโพเทนชิออมิเตอร์เพื่อให้คุณสามารถปรับความคมชัดได้อย่างง่ายดาย


เมื่อคุณเชื่อมต่อกำลังแล้วให้การแสดงผลไม่กี่วินาทีเพื่อเริ่มต้น คุณอาจเห็นอักขระสุ่มบนหน้าจอ ณ จุดนี้ แต่นั่นเป็นเรื่องปกติ
การเริ่มต้นการแสดงผล
ตอนนี้เราต้องเริ่มต้นการแสดงผลโดยใช้หมุดควบคุม พิน RS (ลงทะเบียนเลือก) ใช้เพื่อบอกการแสดงผลว่าเรากำลังส่งคำสั่งหรือข้อมูล เมื่อ RS ต่ำ (0) เรากำลังส่งคำสั่ง เมื่อสูง (1) เรากำลังส่งข้อมูล
พิน RW (อ่าน/เขียน) ใช้เพื่อระบุว่าเรากำลังอ่านจากหรือเขียนไปยังจอแสดงผล โดยปกติแล้วเราจะเขียนลงในจอแสดงผลดังนั้นเราจะเก็บพินไว้ต่ำ (0)
พิน E (เปิดใช้งาน) ใช้เพื่อล็อคข้อมูลหรือคำสั่งลงในจอแสดงผล เมื่อเราส่งคำสั่งหรือข้อมูลเราจะตั้งค่าที่เหมาะสมบนพินข้อมูลก่อนจากนั้นเราจะชีพจร E pin สูงและต่ำ
ในการเริ่มต้นการแสดงผลเราต้องส่งชุดคำสั่ง นี่คือลำดับง่าย ๆ ใน Pseudocode:
// รอให้จอแสดงผลต้องรอ (15 มิลลิวินาที); // ฟังก์ชั่นชุดคำสั่ง: 8 - โหมดบิต, 2 - แสดงบรรทัด, 5x8 dot matrix send_command (0x38); รอ (5 มิลลิวินาที); // ฟังก์ชั่นชุดคำสั่ง SEND_COMMAND อีกครั้ง (0x38); รอ (1 มิลลิวินาที); // ฟังก์ชันชุดคำสั่งอีกครั้ง send_command (0x38); // แสดงการเปิด/ปิดการควบคุม: เปิด, เคอร์เซอร์ปิด, กระพริบปิด send_command (0x0c); // ล้างหน้าจอ Send_Command (0x01); รอ (2 ms); // ชุดโหมดรายการ: เคอร์เซอร์ที่เพิ่มขึ้นไม่มีการเลื่อน send_command (0x06);
ลำดับนี้ตั้งค่าการแสดงผลในโหมด 8 - บิตเปิดหน้าจอล้างหน้าจอและตั้งค่าพฤติกรรมเคอร์เซอร์
การส่งข้อมูล
เมื่อจอแสดงผลเริ่มต้นแล้วเราสามารถเริ่มส่งข้อมูลไปได้ ในการส่งอักขระเราตั้งค่า RS Pin High ก่อนเพื่อระบุว่าเรากำลังส่งข้อมูล จากนั้นเราใส่รหัส ASCII ของอักขระลงบนหมุดข้อมูลและพัลส์พิน E
นี่คือตัวอย่างใน pseudocode เพื่อแสดงคำว่า "สวัสดี":
// ตั้งค่า RS สูงสำหรับ data set_rs (1); // ส่งอักขระแต่ละตัวของ "สวัสดี" send_data ('h'); send_data ('e'); send_data ('l'); send_data ('l'); send_data ('o');
วางตำแหน่งเคอร์เซอร์
คุณอาจต้องการแสดงข้อความที่ตำแหน่งต่าง ๆ บนหน้าจอ ในการทำเช่นนี้เราใช้ที่อยู่ DDRAM (Display Data RAM) แต่ละตำแหน่งบนหน้าจอสอดคล้องกับที่อยู่ DDRAM เฉพาะ
สำหรับจอแสดงผล 16x2 บรรทัดแรกเริ่มต้นที่ที่อยู่ 0x80 และบรรทัดที่สองเริ่มต้นที่ที่อยู่ 0xc0 ในการย้ายเคอร์เซอร์ไปยังตำแหน่งที่เฉพาะเจาะจงเราส่งคำสั่งพร้อมที่อยู่ DDRAM ที่เหมาะสม ตัวอย่างเช่นในการย้ายเคอร์เซอร์ไปยังจุดเริ่มต้นของบรรทัดที่สองบนหน้าจอ 16x2 เราส่งคำสั่ง 0xc0
// เลื่อนเคอร์เซอร์ไปที่จุดเริ่มต้นของบรรทัดที่สอง send_command (0xc0); // ส่งข้อความ send_data ('w'); send_data ('o'); send_data ('r'); send_data ('l'); send_data ('d');
การปรับจอแสดงผล
มีคำสั่งอื่น ๆ ที่คุณสามารถใช้เพื่อปรับจอแสดงผล ตัวอย่างเช่นคุณสามารถเปิดหรือปิดเคอร์เซอร์ทำให้มันกระพริบหรือเปลี่ยนจอแสดงผลทั้งหมดซ้ายหรือขวา
ในการเปิดเคอร์เซอร์คุณส่งคำสั่ง 0x0e เพื่อให้มันกระพริบคุณส่งคำสั่ง 0x0f ในการเลื่อนจอแสดงผลซ้ายคุณจะส่งคำสั่ง 0x18 และเพื่อเลื่อนไปทางขวาคุณส่งคำสั่ง 0x1c
การแก้ไขปัญหา
หากคุณมีปัญหาในการทำให้หน้าจอทำงานต่อไปนี้เป็นปัญหาและวิธีแก้ปัญหาทั่วไป:
- ไม่มีการแสดงผลเลย: ตรวจสอบการเชื่อมต่อพลังงาน ตรวจสอบให้แน่ใจว่า VDD ได้รับ 5V และ VSS เชื่อมต่อกับพื้น นอกจากนี้ตรวจสอบการปรับความคมชัด คุณอาจต้องหมุนโพเทนชิออมิเตอร์เพื่อให้ได้ความคมชัดที่เหมาะสม
- อักขระสุ่มบนหน้าจอ: นี่อาจเป็นเพราะการเริ่มต้นที่ไม่ถูกต้อง ตรวจสอบให้แน่ใจว่าคุณกำลังส่งคำสั่งที่ถูกต้องในลำดับที่ถูกต้อง
- อักขระไม่แสดงอย่างถูกต้อง: ตรวจสอบการเชื่อมต่อข้อมูล ตรวจสอบให้แน่ใจว่าหมุดข้อมูลเชื่อมต่ออย่างถูกต้องและคุณกำลังส่งรหัส ASCII ที่ถูกต้อง
บทสรุป
การกำหนดค่าการตั้งค่าการแสดงผลของการแสดงอักขระ LCD อาจดูซับซ้อนเล็กน้อยในตอนแรก แต่เมื่อคุณเข้าใจพื้นฐานมันก็ไม่ยาก เพียงจำไว้ว่าให้เปิดจอแสดงผลอย่างถูกต้องเริ่มต้นด้วยคำสั่งที่ถูกต้องและส่งข้อมูลและคำสั่งโดยใช้หมุดควบคุม
หากคุณสนใจที่จะซื้อตัวละคร LCD แสดงสำหรับโครงการของคุณเราอยู่ที่นี่เพื่อช่วยเหลือ ไม่ว่าคุณจะต้องการหน้าจอ 16x1 ขนาดเล็กหรือหน้าจอ 20x4 ที่ใหญ่กว่าเรามีคุณครอบคลุม อย่าลังเลที่จะติดต่อเราสำหรับข้อมูลเพิ่มเติมและเริ่มการเจรจาการซื้อ
การอ้างอิง
- แผ่นข้อมูล HD44780
- ไมโครคอนโทรลเลอร์และ LCD หลายบทช่วยสอนออนไลน์
