C-02.I/O Port

1. เปิดโปรเจคใหม ดูตัวอย่างจาก C-01 การเขียนโปรแกรมภาษา C

2. เขียนโปรแกรมใหม่ ให้ใช้ชื่อว่า c-02.c

*** อย่าลืมเพิ่ม Library util/delay.h

#include <avr\io.h> // Most basic include files

#include <avr\interrupt.h> // Add the necessary ones

#include <avr\signal.h> // here

#include <util/delay.h>

int a;

// ***********************************************************

// Main program

int main(void) {

DDRD = 0xff; //Port D as output

while(1) { // Infinite loop; define here the

a = 1;

for(int i = 0;i<8;i++){

PORTD = a;

_delay_ms(300);

a<<=1;

}

}

}

3. แปลโปรแกรม

4. แสดงค่า I/O Port

View -> I/O Port จะได้หน้าต่าง I/O Port ให้ติกเลือกแสดงรายละเอียดพอร์ท D

5. Run โปรแกรม ดูตัวอย่างจาก C-01 การเขียนโปรแกรมภาษา C

หมายเหตุ ถ้าไม่ต้องการสร้างโปรเจคใหม่สามารถใช้โปรเจคเดิม แล้วแก้ไขไฟล์โปรเจคในบรรทัด .SOURCE “c-02.c” เพื่อให้ทำงานกับโปรกรมใหม่ c-02.c ได้

การจำลองการทำงานของ LED ด้วย Control Panel

1. ที่ ไฟล์โปรเจคให้เพิมคำสั่งต่อไปนี้

D1 VDD D1_NODE

D2 VDD D2_NODE

D3 VDD D3_NODE

D4 VDD D4_NODE

D5 VDD D5_NODE

D6 VDD D6_NODE

D7 VDD D7_NODE

D8 VDD D8_NODE

R1 D1_NODE PD0 0.62K

R2 D2_NODE PD1 0.62K

R3 D3_NODE PD2 0.62K

R4 D4_NODE PD3 0.62K

R5 D5_NODE PD4 0.62K

R6 D6_NODE PD5 0.62K

R7 D7_NODE PD6 0.62K

R8 D8_NODE PD7 0.62K

หรือเข้าไปคลิกที่ไฟล์โปรเจค แล้วใช้ menu -> Component เลือก LED diode

จะปราฏบรรทัด

Dx VDD node ; x: Panel LEDs 1 - 8

ซึ่งเป็นรูปแบบการเขียนคำสั่งให้จำลอง LED ขึ้นใน Control Panel

2. แก้ไขไฟล์ c-02.c ที่ PORTD = a; เป็น PORTD = ~a; (เนื่องจาก LED ต่อขา แคโทดเข้าพอร์ท ดังนั้นต้องให้โลจิก 0 จึง LED จึงจะติด)

3. แปลโปรแกรม

4. แสดงอุปกรณ์ LED

View -> Control Panel

5. Run โปรแกรม ตรวจสอบการทำงาน โดยดูจาก LED D1 ถึง D8