สร้าง Debug Display สำหรับไมโครคอนโทรลเลอร์: 6 ขั้นตอน

สร้าง Debug Display สำหรับไมโครคอนโทรลเลอร์: 6 ขั้นตอน

สารบัญ:

Anonim

จอแสดงผลนี้มีประโยชน์มากหากคุณทำงานกับฟังก์ชั่น 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: เขียนรหัส

ฉันต้องการใช้จอแสดงผลกับไมโครคอนโทรลเลอร์ AVR ของฉัน ดังนั้นฉันจึงเขียนไฟล์ *.h ที่สามารถรวมอยู่ในโครงการใด ๆ

หากคุณต่อบอร์ดต่างกันคุณอาจต้องปรับเซกเมนต์การควบคุมอาร์เรย์

ในการใช้งานคุณจะต้องปรับพินในไฟล์ debug.h (12 บรรทัดแรก)

ในแอปพลิเคชันหลักคุณต้องเพิ่มบรรทัดต่อไปนี้:

#include "debug.h"

initdebug (); // สิ่งนี้จะเริ่มต้นพอร์ตเอาต์พุตที่ระบุใน debug.h

จากนั้นคุณสามารถแสดงตัวแปร 8 บิตโดยเรียกฟังก์ชัน debug ด้วย พูดว่าตัวแปรที่เรียกว่าเคาน์เตอร์จากนั้นมูลค่าปัจจุบันของเคาน์เตอร์จะปรากฏขึ้นโดย:

การแก้ปัญหา (เคาน์เตอร์);

คำแนะนำ:

  • เพิ่มเวลาหน่วงหลังจากการเรียก debug () เพื่อให้มีเวลาอ่านค่า
  • เมื่อคุณเชื่อมต่อ shift และ latch ด้วยกันเพียงกำหนดสองพอร์ตสำหรับ pin เดียวกัน ทุกครั้งที่มีการเรียกการเปลี่ยนแปลงมันยังคงสถานะปัจจุบันออกมาซึ่งหมายความว่าจอแสดงผลจะกะพริบขณะที่โหลดกะทำงาน หากคุณทำสิ่งนี้อย่างรวดเร็วเมื่อเทียบกับเวลาที่คุณปล่อยให้จอภาพอยู่ในสถานะ o.k
  • หากต้องการแสดงค่า 16 บิตให้หารด้วย 256 และแสดงผลลัพธ์หรือแยกไบต์สูงและไบต์ต่ำแล้วแสดงผลทีละเบรคด้วยเบรกขนาดเล็กในระหว่างนั้น

ขั้นตอนที่ 6: ทดสอบ

เพื่อทดสอบการแสดงผลมันดูเหมือนจะเหมาะที่จะใช้อะแดปเตอร์เขียงหั่นขนม attiny2313 ที่ฉันตีพิมพ์ในคำแนะนำนี้:

www.instructables.com/id/Make-a-breadboard-adapter-for-your-AVR-microcontroller

โปรแกรมของวิดีโอที่ฝังตัวเพียงแค่นับจาก 0 ถึง 0xFF และกลับมาอีกครั้ง

วีดีโอ: