การทดลองที่ 2 Input Port and Output Port
ทฤษฏีและหลักการ
ไมโครคอนโทรลเลอร์ตระกูล AVR มีหลากหลายเบอร์มีจำนวนพอร์ตและความสามารถไม่เท่ากันโดยเบอร์ ATmega16 ที่ใช้ในการทดลองนั้นมีพอร์ตทั้งหมด 32 ขา ทั้งหมด 4 พอร์ต พอร์ตละ 8 บิตซึ่งประกอบไปด้วย PORTA ,PORTB, PORTC และ PORTD โดยแต่ละพอร์ตจะทำหน้าที่แตกต่างกันออกไปโดยลางขาสมารถทำได้หลากหลายหน้าที่ แต่ในการทดลองนี้เราจะพูดถึง Input Port and Output Port เท่านั้น เราจะมาทำความรู้จักกับรีจิสเตอร์และตัวแปรในคำสั่งภาษาซีที่สำคัญในการทดลองนี้ดังนี้
- #include <avr/io.h>
- DDRx register
- PORTx register
- PINx register
#include <avr/io.h>
เป็นคำสั่งพรีโพรเซสเซอร์ที่ใช้ในการเขียนโปรแกรมติดต่อไมโครคอนโทรลเลอร์ จะต้องมีการ Include แฟ้ม Header ที่เกี่ยวข้องมาใช้งาน กรณีนี้ถ้าต้องการควบคุมการใช้งานพอร์ทขาต่าง ๆ ของไมโครคอลโทรลเลอร์ AVR จะต้อง include ไฟล์ Header “avr/io.h” ซึ่งมีการนิยามตัวแปร ฟังก์ชั่น และแมโครเกี่ยวกับไมโครคอลโทรลเลอร์ AVR รุ่นต่างๆไว้
DDRx register
DDRx register (Data Direct Register) เป็นรีจิสเตอร์ที่ทำหน้าที่กำหนดทิศทางของพอร์ตต่างๆโดยตั้งค่าเป็น อินพุต พอร์ท หรือ เอาท์พุต พอร์ต จะมีข้อกำหนดว่าถ้าตั้งค่าเป็น “1” จะมีค่าเป็น เอาท์พุต แต่ถ้าตั้งค่าเป็น “0” จะมีค่าเป็น อินพุต โดยค่า x แทนชื่อพอร์ต A, B, C และ D ที่ต้องการตั้งค่า เช่น DDRA จะเป็นการตั้งค่าของพอร์ต A เป็นต้น
***Download ไฟล์ได้จาก***
http://cid-c0a6064779796550.skydrive.live.com/browse.aspx/.Public
Download คู่มือไม่ได้โปรดแจ้ง electronicpro-1@hotmail.com
ขอบคุณครับ
ความคิดเห็น