สารบัญ:

นาฬิกาจับเวลาใช้ Pic18f4520 ใน Proteus ด้วย 7 ส่วน: 6 ขั้นตอน
นาฬิกาจับเวลาใช้ Pic18f4520 ใน Proteus ด้วย 7 ส่วน: 6 ขั้นตอน

วีดีโอ: นาฬิกาจับเวลาใช้ Pic18f4520 ใน Proteus ด้วย 7 ส่วน: 6 ขั้นตอน

วีดีโอ: นาฬิกาจับเวลาใช้ Pic18f4520 ใน Proteus ด้วย 7 ส่วน: 6 ขั้นตอน
วีดีโอ: Arduino 4 Digit 7 Segment Display Clock With RTC || 7 Segment Clock Project 2024, พฤศจิกายน
Anonim
นาฬิกาจับเวลาใช้ Pic18f4520 ใน Proteus พร้อม 7 Segment
นาฬิกาจับเวลาใช้ Pic18f4520 ใน Proteus พร้อม 7 Segment

ฉันเพิ่งเริ่มทำงานกับตัวควบคุม pic เพื่อนคนหนึ่งของฉันขอให้ฉันสร้างนาฬิกาจับเวลาจากมัน ดังนั้นฉันจึงไม่มีอิมเมจฮาร์ดแวร์ที่จะแชร์ ฉันเขียนโค้ดและจำลองมันบนซอฟต์แวร์ Proteus

ที่นี่ฉันได้แบ่งปันแผนผังสำหรับสิ่งเดียวกัน

สามมิลลิวินาทีตัวแปร, วินาที, นาทีถูกกำหนด

ที่นี่เราใช้ตัวจับเวลาขัดจังหวะ 10 ms ทุกๆ 1,000 มิลลิวินาที ตัวแปรวินาทีจะเพิ่มขึ้น ตัวแปรทุกๆ 60 วินาทีจะเพิ่มขึ้น

ขั้นตอนที่ 1: สิ่งที่จำเป็น

1 pic18f4520 คอนโทรลเลอร์

2 เจ็ดส่วนแสดง

3 bc547 ทรานซิสเตอร์

4 สวิตช์สำหรับเริ่ม/หยุด/รีเซ็ต

ตัวต้านทาน 5 ตัว 330E, 10K, 1K

6 ดาวน์โหลด mikroC ลงรูป

7 ดาวน์โหลด โพรทูส

ขั้นตอนที่ 2: รหัสลอจิกและการแสดงผล

รหัสลอจิกและจอแสดงผล
รหัสลอจิกและจอแสดงผล
รหัสลอจิกและจอแสดงผล
รหัสลอจิกและจอแสดงผล

Seven Segment Display คืออะไร? Seven Segment Display (SSD) เป็นหนึ่งในจอแสดงผลที่ใช้กันทั่วไป ราคาถูก และใช้งานง่าย ดูเหมือนว่าด้านบน

ที่นี่เราต้องใช้ประเภทแคโทดทั่วไปของจอแสดงผล 7 ส่วน - ใน SSD ประเภทแคโทดทั่วไปขั้ว –ve ของไฟ LED ทั้งหมดจะเชื่อมต่อกับพิน 'COM' ส่วนต่างๆ สามารถสว่างขึ้นได้เมื่อกำหนด '1' ให้กับส่วน LED ตามลำดับ และกราวด์เชื่อมต่อกับส่วนร่วม ภายในได้รับใน รูปที่ 2

ขั้นตอนที่ 3: ขับเคลื่อนจอแสดงผลด้วยไมโครคอนโทรลเลอร์

จอแสดงผลการขับขี่ด้วยไมโครคอนโทรลเลอร์
จอแสดงผลการขับขี่ด้วยไมโครคอนโทรลเลอร์

ในวงจรของฉัน ฉันใช้ทรานซิสเตอร์ NPN BC547

สำหรับการใช้งานอย่างง่ายของ BJT เป็นสวิตช์ ทางแยกอีซีแอล-คอลเลคเตอร์จะลัดวงจรเมื่อมีสัญญาณอินพุตที่เทอร์มินัลฐาน มิฉะนั้น จะยังคงถูกตัดการเชื่อมต่อ ควรให้อินพุตผ่านตัวต้านทานที่เหมาะสม

ขั้นตอนที่ 4: ทำไมต้องมัลติเพล็กซ์

บ่อยครั้งที่เราจำเป็นต้องใช้ SSD สอง สามตัวขึ้นไป และนั่นก็เช่นกันโดยใช้ MCU เดียว แต่ปัญหาหนึ่งที่เราเผชิญคือการขาดพิน I/O ใน MCU เนื่องจาก SSD หนึ่งตัวจะใช้ 8 พิน และ SSD สามตัว จะใช้เวลา 24 พิน ในรูปที่ 18 เรามีพิน I/O เพียง 48 พิน แล้วทางแก้คืออะไร?

ความเป็นไปได้อย่างหนึ่งคือเราใช้ MCU ที่ใหญ่กว่าพร้อมพิน I/O มากกว่า แต่เรายังคงจำกัดการใช้งาน SSD ได้สูงสุด 3 ตัวเท่านั้น วิธีแก้ปัญหาที่ดีและแนะนำอีกวิธีหนึ่งสำหรับปัญหานี้คือการมัลติเพล็กซ์ของ Seven Segment Displays

Wikipedia กล่าวว่า 'ในเครือข่ายโทรคมนาคมและคอมพิวเตอร์ มัลติเพล็กซ์ (หรือที่เรียกว่า muxing) เป็นวิธีการที่สัญญาณข้อความแอนะล็อกหรือสตรีมข้อมูลดิจิทัลหลายรายการรวมกันเป็นสัญญาณเดียวบนสื่อที่ใช้ร่วมกัน จุดมุ่งหมายคือการแบ่งปันทรัพยากรที่มีราคาแพง 'สิ่งที่เราหมายถึงโดยมัลติเพล็กซ์ของจอแสดงผลเจ็ดส่วนคือเราจะใช้พอร์ตเอาต์พุตเพียง 7 พอร์ตเพื่อให้แสดงผลบน SSD ทั้งหมด

ขั้นตอนที่ 5: ทำอย่างไรจึงจะบรรลุเป้าหมายนี้

ที่นี่ เราจะใช้ 'ความคงอยู่ของวิสัยทัศน์' ตอนนี้คุณต้องมีข้ามเทอมนี้มาก่อน ใช่ นี่เป็นเทคนิคเดียวกับที่ใช้ในการถ่ายทำภาพยนตร์ (แสดงภาพได้เร็วจนสมองของเราไม่สามารถแยกแยะความแตกต่างระหว่างภาพสองภาพที่ต่อเนื่องกันได้) ในทำนองเดียวกัน เมื่อเรา mux SSD มากกว่าหนึ่งตัว เราจะแสดง SSD ตัวเดียวในแต่ละครั้ง และสลับไปมาอย่างรวดเร็วจนสมองของเราไม่สามารถแยกแยะระหว่าง SSD เหล่านี้ได้

สมมติว่าจอแสดงผลแต่ละจอทำงานครั้งละ 5 มิลลิวินาที กล่าวคือ หน้าจอสว่าง 1/0.0045 ครั้งต่อวินาที ซึ่งเท่ากับ 222 ครั้ง/วินาทีโดยประมาณ ดวงตาของเราไม่สามารถรับรู้ถึงการเปลี่ยนแปลงได้เร็วขนาดนี้ ดังนั้นสิ่งที่เราเห็นก็คือจอแสดงผลทั้งหมดทำงานพร้อมกัน สิ่งที่เกิดขึ้นจริงในฮาร์ดแวร์คือ MCU ให้ '1' กับพิน (จำไว้ว่าให้ '1' กับฐานของกางเกงขาสั้น BJT ที่ทางแยก Collector และ emitter) ซึ่งเชื่อมต่อกับฐานของทรานซิสเตอร์ของ จอแสดงผลที่เกี่ยวข้อง เก็บพอร์ต 'เปิด' ไว้ 5 มิลลิวินาที แล้วปิดอีกครั้ง ขั้นตอนนี้จะวนซ้ำไม่รู้จบ เพื่อให้เราเห็นการแสดงผลอย่างต่อเนื่อง

ขั้นตอนที่ 6: อัลกอริธึมมัลติเพล็กซ์

อัลกอริธึมมัลติเพล็กซ์
อัลกอริธึมมัลติเพล็กซ์

กำหนดพอร์ตสองพอร์ตในโค้ด หนึ่งพอร์ตสำหรับพอร์ตข้อมูลเซ็กเมนต์และพอร์ตควบคุมเซ็กเมนต์

เคล็ดลับนี่คือคุณแสดงข้อมูลทั้ง 7 ส่วน และเปิดใช้งานพินควบคุมหนึ่งอันที่คุณต้องแสดงข้อมูลนั้น เปลี่ยนข้อมูลและพินควบคุมกะ

ที่นี่ในคำแนะนำนี้เราใช้มัลติเพล็กซ์ 6 หลักเพียงผ่านไฟล์ c ที่แนบมาและคุณจะได้รับการล้าง

แนะนำ: