แผงวงจรพ่วง (Peripheral Board) ปฏิบัติการเกี่ยวกับวิศวกรรมคอมพิวเตอร์ (01204223) ผศ.ดร.ชัยพร ใจแก้ว ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเกษตรศาสตร์
แผงวงจรพ่วง จุดเชื่อมต่อกับเมนบอร์ด วงจรแสดงผล LED สามสี วงจรสวิตช์อินพุท วงจรวัดแสง
วงจรแสดงผล LED สามสี เชื่อมเข้ากับขา PC0..PC2 การใช้งาน: ตั้งค่ารีจีสเตอร์ DDRC ให้ขา PC0..PC2 เป็นเอาท์พุท เขียนลอจิก 1 ในบิตของรีจีสเตอร์ PORTC เพื่อให้ไฟติด เขียนลอจิก 0 ในบิตของรีจีสเตอร์ PORTC เพื่อให้ไฟดับ
แบบฝึกหัด เขียนเฟิร์มแวร์ให้ LED สีเหลืองและสีแดงบนบอร์ดพ่วงติดสว่าง ส่วน LED สีเขียวดับ
วงจรสวิตซ์อินพุท ต่อกับขา PC3 การใช้งาน: ตั้งค่ารีจีสเตอร์ DDRC ให้ขา PC3 เป็นอินพุท เขียนลอจิก 1 ลงที่บิต PC3 ของรีจีสเตอร์ PORTC เพื่อเปิดใช้งาน pull-up resistor อ่านค่าบิต PC3 ของรีจีสเตอร์ PINC เพื่อตรวจสอบสถานะของสวิตช์
กลไกของวงจร I/O ภายในชิป รูปจากหน้า 76 ของดาต้าชีต ATmega48/88/168 (doc8161.pdf)
แบบฝึกหัด เขียนเฟิร์มแวร์เพื่อรายงานสถานะการกดสวิตช์ออกมาทาง LED สีแดง
แบบฝึกหัด เขียนเฟิร์มแวร์เพื่อนับจำนวนครั้งการกดสวิตช์ โดยแสดงจำนวนครั้งในรูปเลขฐานสองบน LED สามดวง เริ่มต้น กดแล้วปล่อยสวิตช์ กดแล้วปล่อยสวิตช์ กดแล้วปล่อยสวิตช์ กดแล้วปล่อยสวิตช์ : :
Contact Bounce เกิดจากหน้าสัมผัสกระเพื่อมขณะกดหรือปล่อยสวิตซ์แบบกลไก 1 ลอจิก จังหวะที่สวิตช์ถูกกด (หรือปล่อย) 1 ที่มา: วิกิพีเดีย เวลา
วิธีแก้ไข Contact Bouncing แก้ไขทางฮาร์ดแวร์ ใช้วงจร RC กรองสัญญาณ ความถี่สูงออก แก้ไขทางซอฟต์แวร์ เพิ่มคำสั่งหน่วงเวลาสั้น ๆ เมื่อตรวจสอบได้ว่าสวิตช์มีการเปลี่ยนสถานะ
วงจรวัดแสง เชื่อมกับขา PC4 ใช้ตัวต้านทานแปรค่าตามแสง (Light Dependent Resistor หรือ LDR) ผสมกับวงจรแบ่งแรงดัน สัญญาณที่ขา PC4 เป็นสัญญาณประเภทแอนะล็อก การใช้งานต้องอ่านค่าแรงดันจาก PC4 แบบแอนะล็อก
สัญญาณดิจิทัลและสัญญาณแอนะล็อก 0V 5V 1 บันทึกข้อมูลแบบ ดิจิทัล 2 ระดับ (1 บิต) 1 สัญญาณแอนาล็อก 0V 5V 1023 บันทึกข้อมูลแบบ ดิจิทัล 1023 ระดับ (10 บิต)
แบบฝึกหัด อ่านความเข้มแสงจากขา PC4 ตีความผลลัพธ์เป็น 8 ระดับ (0-7) นำระดับที่ตีความได้มาแสดงผลบน LED ในรูปเลขฐานสอง (ไบนารี) 3 บิต แนวทาง: นำบิต 9..7 จากผลลัพธ์ ADC มาแสดงผล