![สร้าง Debug Display สำหรับไมโครคอนโทรลเลอร์: 6 ขั้นตอน สร้าง Debug Display สำหรับไมโครคอนโทรลเลอร์: 6 ขั้นตอน](https://img.gwsigeps.com/img/circuits/make-a-debug-display-for-microcontrollers-7.jpg)
สารบัญ:
- วัสดุ:
- ขั้นตอนที่ 1: แผนผัง
- ขั้นตอนที่ 2: The Shift Register 75HC595
- ขั้นตอนที่ 3: สร้างจอแสดงผล
- ขั้นตอนที่ 4: ค้นหาคำสั่งของกลุ่ม
- ขั้นตอนที่ 5: เขียนรหัส
- ขั้นตอนที่ 6: ทดสอบ
จอแสดงผลนี้มีประโยชน์มากหากคุณทำงานกับฟังก์ชั่น ADC ของไมโครคอนโทรลเลอร์
ต้องการเพียงสองพินเท่านั้นในการควบคุมจอแสดงผล (สามถ้าคุณต้องการควบคุมสลักด้วย) ด้วยเซเว่นสองเซกเมนต์มันสามารถแสดงผลได้สูงสุด 0xFF เป็นฐานสิบหก นั่นคือช่วง 8 บิตทั้งหมดความกว้างของตัวแปรที่ใช้มากที่สุดสำหรับ uCs ขนาดเล็กคืออะไร
ฉันสร้างขึ้นเพราะแอปพลิเคชันสุดท้ายไม่มีจอแสดงผลและฉันต้องการที่จะรู้ว่าเกิดอะไรขึ้นก่อนที่ฉันจะเสร็จสิ้น
คุณต้องมีการลงทะเบียน shift 74HC959 สองตัวจอเจ็ดเซกเมนต์สองตัวและตัวต้านทาน 14 (16) ตัวคุณต้อง 16 ถ้าคุณต้องการใช้จุดที่ไม่ได้นำมาใช้ในซอฟต์แวร์ แต่การใช้จุดต่าง ๆ จะขยายค่าที่แสดงได้เป็น 10 บิตหรือ 0-1027 ฉันปล่อยให้คุณคิดออก
วัสดุ:
ขั้นตอนที่ 1: แผนผัง
เราใช้ 74HC595 shift-register สองตัวเพื่อเชื่อมต่อจอแสดงผลเจ็ดส่วน ไม่ว่าคุณจะใช้ขั้วบวกทั่วไปหรือแคโทดทั่วไป 7 ส่วนคุณต้องปรับวงจร ฉันใช้แคโทดทั่วไป หมายความว่าแต่ละเซ็กเมนต์คือ LED สีเขียวหนึ่งตัวและแคโทดของ LED ทั้งหมดเชื่อมต่อกัน (หมุด 3 และ 8 ของจอแสดงผล 7-seg.)
การลงทะเบียนกะทำงานด้วยวิธีนี้:
ทุกครั้งที่คุณใช้พัลส์ที่อินพุตกะสถานะปัจจุบันของพินอินพุตอนุกรมจะถูกเลื่อนในหน่วยความจำของ 74HC595 ทุกครั้งที่พัลส์ที่อินพุต latch มาถึงสถานะของหน่วยความจำภายในจะถูกใช้เพื่อขับเคลื่อนเอาต์พุต
หลังจาก 8 รอบการเปลี่ยนอินพุตแรกจะถูกเลื่อนออกที่ pin9 อีกครั้งและสามารถใช้เป็นอินพุตไปยังอีก 74HC595 นี่เรียกว่าโซ่เดซี่
74HC595 สามารถขับได้สูงสุด 70mA ดังนั้นเราต้องปรับตัวต้านทานในลักษณะที่กระแสผ่านแต่ละเซกเมนต์ LED จะอยู่ต่ำกว่า 9mA ซึ่งประมาณ 470 โอห์มสำหรับ 5V และการแสดงที่ใช้
ขั้นตอนที่ 2: The Shift Register 75HC595
การดูภาพจะบอกคุณว่าคุณต้องเชื่อมต่อหมุดใด
หมุดจะนับเวลาของนาฬิกาต่อต้านอย่างชาญฉลาดโดยเริ่มจากเครื่องหมายบน IC หากคุณดูจากด้านบน
เชื่อมต่อพิน 1 - 7 และพิน 15 เข้ากับพินของเซกเมนต์ 7 ส่วน
ต้องเชื่อมต่อ Pin 8 และ 13 กับกราวด์ (GND หรือขั้วลบของแบตเตอรี่)
Pin 9 เชื่อมต่อกับ pin 14 ของ IC ถัดไป
ต้องเชื่อมต่อขา 10 และขา 16 กับแรงดันไฟฟ้า (VCC หรือขั้วบวกของแบตเตอรี่)
Pin 11, 12 และ 14 เป็นอินเทอร์เฟซที่ขับเคลื่อนโดยไมโครคอนโทรลเลอร์เชื่อมต่อสิ่งเหล่านี้กับพินเฮดเดอร์สามพินสำหรับการเชื่อมต่อภายนอก
ขั้นตอนที่ 3: สร้างจอแสดงผล
แม้ว่ามันจะเป็นไปได้ที่จะกัดแผงวงจรที่กำหนดเอง แต่ฉันเลือกที่จะสร้างสิ่งทั้งหมดบนเขียงหั่นขนมด้วยลวดทองแดงบาง ๆ
ลวดทองแดงนี้ถูกเคลือบ แต่การเคลือบอาจถูกเผาด้วยดีบุกเหลวเล็กน้อย มันง่ายมากที่จะทำการเชื่อมต่อกับมัน เพียงดีบุกปลายด้านหนึ่งประสานเข้ากับขาแล้วเหยียดขาอีกข้างหนึ่งแล้วเผาแยกที่คุณต้องการบัดกรี จากนั้นประสานเข้ากับขาแล้วตัดส่วนที่เหลือ หัวแร้ง 30 วัตต์แบบนี้จากช่างฝีมือเกินพอสำหรับงาน
ฉันใช้ตัวต้านทาน SMD 1206 ขนาดเล็กเพราะสิ่งเหล่านี้พอดีกับหน้าจอเซกเมนต์เจ็ดส่วน
แต่สุดท้ายคุณต้องสร้างบอร์ดด้วยตัวเองและแน่นอนคุณสามารถใช้ตัวต้านทานที่คุณชอบได้
ขั้นตอนที่ 4: ค้นหาคำสั่งของกลุ่ม
ในที่สุดเราต้องเขียนฟังก์ชั่นเพื่อแสดงสิ่งที่มีความหมาย
ปัญหาหลักคือตอนนี้เพื่อหาส่วนที่เหมาะสม - ลำดับการควบคุม ในตอนแรกพยายามที่จะผลักดัน 1 เดียวผ่านการลงทะเบียนกะทั้งหมด
ใช้ความสูงกับอินพุตอนุกรมและชีพจรการเปลี่ยนแปลงครั้งเดียว ทีนี้ชีพจรสลักหนึ่งครั้งแล้วดูว่าส่วนใดสว่างขึ้น
หากคุณกดปุ่ม shift และ latch อีกครั้งส่วนถัดไปจะสว่างขึ้นเรื่อย ๆ
ในที่สุดคุณก็มีคำสั่งของกลุ่มทั้งหมดและคุณสามารถถ่ายโอนเป็นเลขฐานสอง
ขั้นตอนที่ 5: เขียนรหัส
หากคุณต่อบอร์ดต่างกันคุณอาจต้องปรับเซกเมนต์การควบคุมอาร์เรย์
ในการใช้งานคุณจะต้องปรับพินในไฟล์ debug.h (12 บรรทัดแรก)
ในแอปพลิเคชันหลักคุณต้องเพิ่มบรรทัดต่อไปนี้:
#include "debug.h"
initdebug (); // สิ่งนี้จะเริ่มต้นพอร์ตเอาต์พุตที่ระบุใน debug.h
จากนั้นคุณสามารถแสดงตัวแปร 8 บิตโดยเรียกฟังก์ชัน debug ด้วย พูดว่าตัวแปรที่เรียกว่าเคาน์เตอร์จากนั้นมูลค่าปัจจุบันของเคาน์เตอร์จะปรากฏขึ้นโดย:
การแก้ปัญหา (เคาน์เตอร์);
คำแนะนำ:
- เพิ่มเวลาหน่วงหลังจากการเรียก debug () เพื่อให้มีเวลาอ่านค่า
- เมื่อคุณเชื่อมต่อ shift และ latch ด้วยกันเพียงกำหนดสองพอร์ตสำหรับ pin เดียวกัน ทุกครั้งที่มีการเรียกการเปลี่ยนแปลงมันยังคงสถานะปัจจุบันออกมาซึ่งหมายความว่าจอแสดงผลจะกะพริบขณะที่โหลดกะทำงาน หากคุณทำสิ่งนี้อย่างรวดเร็วเมื่อเทียบกับเวลาที่คุณปล่อยให้จอภาพอยู่ในสถานะ o.k
- หากต้องการแสดงค่า 16 บิตให้หารด้วย 256 และแสดงผลลัพธ์หรือแยกไบต์สูงและไบต์ต่ำแล้วแสดงผลทีละเบรคด้วยเบรกขนาดเล็กในระหว่างนั้น
ขั้นตอนที่ 6: ทดสอบ
www.instructables.com/id/Make-a-breadboard-adapter-for-your-AVR-microcontroller
โปรแกรมของวิดีโอที่ฝังตัวเพียงแค่นับจาก 0 ถึง 0xFF และกลับมาอีกครั้ง
วีดีโอ: