สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
ในบทช่วยสอนนี้ เราจะบอกคุณเกี่ยวกับวิธีที่เราสามารถเชื่อมต่อ LCD กับ 8051 ในโหมด 4 บิต
ขั้นตอนที่ 1: ซอฟต์แวร์ที่ใช้:
ในขณะที่เรากำลังแสดงการจำลองโพรทูส ดังนั้นสำหรับโค้ดและการจำลอง คุณต้องการ:
1 Keil uvision: เป็นผลิตภัณฑ์จาก keil จำนวนมาก ดังนั้นคุณจะต้องใช้คอมไพเลอร์ c51 คุณสามารถดาวน์โหลดซอฟต์แวร์นั้นได้จากที่นี่
2 Proteus Software สำหรับการจำลอง: เป็นซอฟต์แวร์สำหรับแสดงการจำลอง คุณจะได้รับข้อมูลมากมายในการดาวน์โหลดซอฟต์แวร์นี้
หากคุณกำลังทำในฮาร์ดแวร์ คุณจะต้องใช้ซอฟต์แวร์หนึ่งตัวที่เป็นแฟลชเวทย์มนตร์เพื่ออัปโหลดรหัสในฮาร์ดแวร์ของคุณ โปรดจำไว้ว่าแฟลชเวทย์มนตร์ได้รับการพัฒนาโดย nxp ดังนั้นคุณจึงไม่สามารถอัปโหลดไมโครคอนโทรลเลอร์ตระกูล 8051 ทั้งหมดผ่านซอฟต์แวร์นี้ได้ ดังนั้นคุณเท่านั้นที่สามารถอัปโหลดตัวควบคุมที่ใช้ Philips ได้
ขั้นตอนที่ 2: ส่วนประกอบที่จำเป็น:
ในวิดีโอสาธิตของเรา เราใช้การจำลองโพรทูส แต่แน่นอนว่าถ้าคุณทำในฮาร์ดแวร์ คุณจะต้องใช้ส่วนประกอบเหล่านี้สำหรับโปรเจ็กต์นี้:
บอร์ดพัฒนา 8051: ดังนั้นถ้าคุณมีบอร์ดนี้ มันจะดีกว่าเพื่อให้คุณสามารถอัปโหลดโค้ดได้ด้วยตัวเองอย่างง่ายดาย
LCD 16*2: นี่คือ LCD 16*2 ในจอ LCD นี้ เรามี 16 พิน
ตัวแปลง USB เป็น UART: นี่คือตัวเชื่อมต่อตัวผู้ชนิด 9Pin D สำหรับสายจัมเปอร์ Rs232 O / p
ขั้นตอนที่ 3: แผนภาพวงจร:
ขั้นตอนที่ 4: หลักการทำงานของโครงการนี้:
เช่นเดียวกับใน 8 บิต เราจำเป็นต้องเชื่อมต่อหมุดข้อมูลทั้ง 8 ตัวของ LCD กับไมโครคอนโทรลเลอร์ ดังนั้น microcntroller ทั้งหมด 11 พินที่เราจำเป็นต้องใช้เนื่องจากเรามีพินควบคุม 3 อัน (rs, rw, e) ในจอแอลซีดีเช่นกัน ข้อดีของ LCD แบบ 4 บิตก็คือ เราสามารถประหยัดไมโครคอนโทรลเลอร์ได้ 4 พิน เพื่อที่เราจะได้ใช้พินเหล่านี้สำหรับงานอื่นๆ
ตอนนี้หลักการทำงานของโค้ดนั้นง่ายมาก ขั้นแรกคุณเพียงแค่ดาวน์โหลดรหัส
ตกลง ตอนนี้ฉันจะใช้หนึ่งฟังก์ชันจากโค้ด และจะบอกว่าคำสั่งหรือข้อมูล LCD ได้รับอย่างไร ในโค้ดของเราคำสั่งคำสั่งแรกคือ
ซม.(0x28);
ตอนนี้ก็จะไปถึงนิยามแล้ว
เป็นโมฆะ cmd (อักขระที่ไม่ได้ลงชื่อ a) {
ถ่านที่ไม่ได้ลงชื่อ x;
x=a&0xf0;
cmd1(x);
x=(a<<4)&0xf0;
cmd1(x);
}
ดังนั้นในฟังก์ชันข้างต้น คุณจะเห็นว่า a ไม่มีอะไรเลยนอกจาก 0x28 ตอนนี้ผ่าน x=a&0xf0 ตอดที่ต่ำกว่าจะกลายเป็น 0 เนื่องจากเราใช้ตัวดำเนินการ AND กับ 0xf0 ดังนั้นในตอดที่สูงขึ้นมีเพียงข้อมูลเท่านั้น ผ่าน cmd1(x) เรากำลังส่ง 0x20 ไปยังพอร์ต 2 และ LCD เชื่อมต่อกับบิตที่สูงกว่าของพอร์ต 2 ดังนั้นมันจะได้รับ 2 ตอนนี้เราต้องส่ง nibble ถัดไปทันทีซึ่งไม่มีอะไร แต่ 0x8 เพื่อให้คุณเห็นได้ในฟังก์ชัน x=(a<<4)&0xf0 เรากำลังเปลี่ยนค่า 4 ครั้ง จากนั้นเราจะใช้และดำเนินการกับ 0xf0
เข้าใจแค่นี้
a<<4 ไม่มีอะไรเลยนอกจาก 0x28<<4 ซึ่งหมายถึง 00101000<<4 เราจะได้
10000000 และเรากำลังใช้ 0xf0 และเราจะได้รับ 0b10000000 ซึ่งเป็น 0x80 และจากฟังก์ชันถัดไป cmd1(x) เรากำลังส่งข้อมูลนั้นไปยัง LCD และตอนนี้จะได้รับ 0x80 ด้วยวิธีนี้ เราจึงส่งข้อมูลทั้งหมด 0x28
ดังนั้นทุกคำสั่งและข้อมูล LCD จะได้รับเช่นเดียวกัน
ฉันหวังว่าคุณจะเข้าใจสิ่งนี้ คุณยังสามารถชำระเงินวิดีโอซึ่งอยู่ในขั้นตอนต่อไป คำอธิบายโครงการทั้งหมดอยู่ในวิดีโอนั้น
ขั้นตอนที่ 5: รหัสและวิดีโอ
คุณสามารถรับซอร์สโค้ดจาก GitHub Link. ของเรา
คำอธิบายโครงการทั้งหมดอยู่ในวิดีโอด้านบน
หากคุณมีข้อสงสัยเกี่ยวกับโครงการนี้โปรดแสดงความคิดเห็นด้านล่าง และหากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับระบบฝังตัว คุณสามารถไปที่ช่อง youtube ของเราได้
กรุณาเยี่ยมชมและชอบหน้า Facebook ของเราสำหรับการปรับปรุงบ่อยๆ
เราเพิ่งเริ่มต้นช่องนี้ แต่คุณจะได้รับวิดีโอเกี่ยวกับระบบฝังตัวและ IoT ทุกวัน
ขอขอบคุณและขอแสดงความนับถือ,