จุดประสงค์ของ D0-D3 บน LCD คืออะไร?


10

ห้องสมุด Arduino LiquidCrystalมี 4 การก่อสร้างที่มีการขัดแย้งแตกต่างกัน:

LiquidCrystal(rs, enable, d4, d5, d6, d7) 
LiquidCrystal(rs, rw, enable, d4, d5, d6, d7) 
LiquidCrystal(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7) 
LiquidCrystal(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7)

ความคิดเห็นต่อไปนี้ระบุไว้สำหรับอาร์กิวเมนต์ตัวสร้าง:

[... ] d0, d1, d2 และ d3 เป็นตัวเลือก หากไม่ใช้งานจอ LCD จะถูกควบคุมโดยใช้เพียงสายข้อมูลสี่เส้นเท่านั้น (d4, d5, d6, d7)

จุดคืออะไรd0-d3ถ้าพวกเขาจะไม่จำเป็นต้อง? พวกเขาจะลดเวลาตอบสนองหรือไม่

คำตอบ:


12

LCD ชนิดนั้นมีโหมดการทำงานหลักสองโหมด: โหมด 4 บิตซึ่งใช้ดาต้า 4 ตัว (d4-d7) และโหมด 8 บิตซึ่งใช้ 8 ดาต้าทั้งหมด (d0-d7)

โหมด 4 บิตมีข้อได้เปรียบในการใช้หมุดเอาต์พุตน้อยลงบน Arduino ของคุณ อย่างไรก็ตามมันหมายถึงร่างของคุณจำเป็นต้องส่งคำสั่ง / ตัวอักษรแต่ละตัวเป็นสองชุดแยกต่างหากจาก 4 บิต (หนึ่งหลังจากที่อื่น ๆ ) ระบบ LiquidCrystal นี้จะจัดการให้คุณโดยอัตโนมัติดังนั้นคุณไม่จำเป็นต้องมีความซับซ้อนเพิ่มเติมในรหัสของคุณ อย่างไรก็ตามมันหมายความว่าร่างของคุณต้องการประมาณสองเท่าของจำนวนรอบของตัวประมวลผลเพื่อส่งข้อมูลใด ๆ ไปยัง LCD

ในทางตรงกันข้ามโหมด 8 บิตจะส่งคำสั่ง / ตัวอักษรแต่ละตัวเป็นชุดเดียว 8 บิต นั่นหมายความว่าในทางเทคนิคมันจะทำงานได้เร็วขึ้นเล็กน้อย

ด้วยที่กล่าวไว้ว่าคนที่ดูหน้าจออาจจะไม่เห็นความแตกต่างของความเร็วอย่างมีนัยสำคัญส่วนใหญ่เวลาที่มันยังคงไปอย่างรวดเร็ว ผลกระทบหลักจะอยู่ที่ไมโครคอนโทรลเลอร์ (Arduino ในกรณีนี้) หากสามารถใช้โหมด 8 บิตที่เร็วขึ้นก็สามารถใช้เวลาในการประมวลผลกับสิ่งอื่น ๆ ได้อีกเล็กน้อย ซึ่งจะเป็นประโยชน์อย่างยิ่งสำหรับแอปพลิเคชั่นที่มีความสำคัญต่อเวลา


With that said, a person looking at the display probably won't see a significant speed difference most of the time, as it still goes very quickly.ซึ่งมักจะไม่เป็นปัญหาเนื่องจากโมดูลจำนวนมาก (โดยเฉพาะอย่างยิ่งภาษาจีนราคาถูกเช่นเดียวกับบนอีเบย์) มีแนวโน้มที่จะมีอัตราการรีเฟรชต่ำดังนั้นคุณจึงไม่สามารถอัปเดตได้เร็วเกินไปหากพวกเขาเปลี่ยนเป็นระเบียบ
Synetech

3

คำตอบอยู่ในหน้าเดียวกับคำพูดที่คุณพูดถึง (ฉันได้เน้นข้อความสำคัญ):

สร้างตัวแปรประเภท LiquidCrystal จอแสดงผลสามารถควบคุมการใช้ 4 หรือ 8 สายข้อมูล หากหมายเลขเดิมให้ละเว้นหมายเลขพินสำหรับ d0 ถึง d3 และปล่อยให้ไม่มีการเชื่อมต่อสายเหล่านั้น RW pin สามารถเชื่อมโยงกับกราวด์แทนที่จะเชื่อมต่อกับพินบน Arduino; ถ้าเป็นเช่นนั้นให้ละเว้นจากพารามิเตอร์ของฟังก์ชันนี้

ปรากฎว่าจอแสดงผล LCD Hitachi HD44780 สามารถทำงานในโหมด 4 บิตหรือ 8 บิต


1
ใช่มันบอกว่ามันสามารถควบคุมได้โดยใช้สายข้อมูลทั้ง 4 และ 8 แต่อะไรคือจุดใช้ 8 ถ้าคุณต้องการเพียง 4? ฉันหมายถึงไม่มีประโยชน์ใด ๆ จากการใช้ 8 ส่วนเกิน 4 ใช่ไหม? ทำไมต้องเสียสายข้อมูล 4 สายหากไม่ได้ใช้งาน?
เพื่อนของ Kim

1
การใช้โหมด 8 bits นั้นเร็วกว่าเล็กน้อยในฝั่ง Arduino และง่ายขึ้น (โค้ดน้อยกว่า) แต่โดยทั่วไปแล้วมันไม่คุ้มค่าเลยเมื่อเทียบกับการจ่ายเอาต์พุต 4 พิน
jfpoilpret

@jfpoilpret มันคุ้มค่าถ้าคุณมีขาเพิ่มพิเศษสี่ขา ...
Anonymous Penguin

@ ไม่สามารถเป็นรูปธรรมมากขึ้นเกี่ยวกับวิธีการใช้โหมด 8 พินได้อย่างไร ค่าการทดสอบคอนกรีต?
jfpoilpret

1
@jfpoilpret ตามที่ระบุไว้ในคำตอบของปีเตอร์มันให้เวลาประมวลผลเพิ่มเติมเล็กน้อยกับชิป หากคุณมีพินพิเศษสี่ขาให้ไปข้างหน้าแล้วเพิ่มเข้าไป ถ้ามันจะต้องให้มันใหญ่กว่า / แพงกว่ามันก็ไม่คุ้ม
Penguin Penguin ไม่ระบุชื่อ

1

การมีพินเหล่านั้นเป็นข้อกำหนดของเทคนิคที่จะต้องใช้ในการเชื่อมต่อจอแอลซีดีกับไมโครโปรเซสเซอร์ที่พร้อมใช้งานเมื่อมีการพัฒนาชิปคอนโทรลเลอร์ HD44780U

ไมโครคอนโทรลเลอร์ชิปตัวเดียวที่เรารู้ว่าพวกเขายังอยู่ในอนาคตและ LCD ต้องเชื่อมต่อกับชิปไมโครโปรเซสเซอร์ 8 บิตครั้งโดยใช้เทคนิคเดียวกันกับ 8 บิต I / O หรืออุปกรณ์หน่วยความจำอื่น ๆ ซึ่งเป็น 8- รถบัสบิต

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.