กลับไปหน้ารวมไฟล์
8-bit-binary-counter-829132.md

แกนหลักของไมโครโปรเซสเซอร์: ตัวนับแบบ 8 บิต

ก่อนจะมี seven-segment display หรือหน้าจอ LCD คอมพิวเตอร์สื่อสารกันด้วยโค้ด Binary อย่างแท้จริง โปรเจกต์ 8-Bit Binary Counter นี้ใช้ LED ธรรมดา 8 ตัวเรียงกัน เพื่อแสดงให้เห็นภาพว่าชิป ATmega328P (Arduino Uno) แบบ 8-bit คิดและประมวลผลตัวเลขของมันอย่างไร

joystick_controller_setup_1772682035221.png

การจัดการ Register

ผู้เริ่มต้นจะเขียนโค้ด digitalWrite() ถึง 8 บรรทัดเพื่อเปิดและปิด LED

  • ผู้เชี่ยวชาญใช้ Direct Port Manipulation
  • แทนที่จะจัดการแต่ละ pin แยกกัน คุณจะจัดการกลุ่มของ pin ทั้งหมดเป็น "Port" แบบ 8-bit ตัวเดียว เช่น PORTD (pin 0 ถึง 7)
  • คุณสร้างตัวแปร integer: int counter = 0;
  • ภายใน loop คุณจะเขียน: PORTD = counter; และ counter++;
  • Arduino จะแปลงตัวเลขเป็นรูปแบบ Binary ทันที (เช่น ถ้า counter คือ 5 จะกลายเป็น 0b00000101 และเปิด LED ดวงที่ 1 และ 3 พร้อมกัน)

เกิน 255 (การ Overflow)

Register แบบ 8-bit มีแค่ 8 ช่อง

  • ตัวเลขสูงสุดที่สามารถเก็บได้คือ 11111111 ในรูปแบบ Binary ซึ่งเท่ากับ 255 ในฐานสิบ
  • เมื่อตัวแปร counter ถึง 255 และ loop() ทำงาน counter++ อีกครั้ง พื้นที่หน่วยความจำกายภาพก็จะหมดลง
  • Register จะเกิดการ Overflow กลับไปที่ 00000000 (ทำให้ LED ทั้ง 8 ดวงดับลงทันที) และเริ่มนับใหม่จากศูนย์ นี่คือแนวคิดที่สำคัญในการจัดการหน่วยความจำ

การจัดหาส่วนประกอบ

  • Arduino Uno/Nano
  • LED 8 ตัว (สีใดก็ได้) และ Resistor 8 ตัว (220-Ohm)
  • Breadboard และสาย jumper wiring จำนวนมาก
  • (การอัปเกรดเสริม): 74HC595 Shift Register เพื่อควบคุม LED ทั้ง 8 ตัวโดยใช้เพียง 3 data pin แทนที่จะกินพื้นที่ 8 pin บนบอร์ด!

ข้อมูล Frontmatter ดั้งเดิม

title: "8 Bit Binary Counter"
description: "Count to 255 with logic! Use shift registers and basic bitwise programming to build a 8-LED line that visually demonstrates binary mathematics."
category: "Basic Electronics"
difficulty: "Easy"