Lab2. Switch & LED


#include <p30f2010.h>                   //เปิดใช้งานไลบรารี dspic30F2010                  

_FOSC(CSW_FSCM_OFF & XT);      // โหมดการทำงาน แบบ XT คริสตอล 4 - 10 MHz ไม่มี PLL
_FWDT(WDT_OFF);                            //ปิดการทำงาน  watchdog Timer

#define TRUE                      1              //กำหนดค่าตัวแปรชื่อ TRUE เป็น 1
#define TRIS_LED              TRISE     //กำหนดค่าตัวแปรชื่อ TRIS_LED เป็นการใช้งานพอร์ต E
#define LED_1                     _LATE0  //กำหนดค่าตัวแปรชื่อ LED_1 เป็นการใช้งานพอร์ตเอาท์พุต E0
#define LED_2                     _LATE1  //กำหนดค่าตัวแปรชื่อ LED_2 เป็นการใช้งานพอร์ตเอาท์พุต E1
#define LED_3                     _LATE2  //กำหนดค่าตัวแปรชื่อ LED_3 เป็นการใช้งานพอร์ตเอาท์พุต E2

#define TRIS_SW                                TRISB     //กำหนดค่าตัวแปรชื่อ TRIS_SW เป็นการใช้งานพอร์ต B
#define SW_1                      _RB0      //กำหนดค่าตัวแปรชื่อ SW_1 เป็นการใช้งานพอร์ตอินพุต B0
#define SW_2                      _RB1      //กำหนดค่าตัวแปรชื่อ SW_2 เป็นการใช้งานพอร์ตอินพุต B1
#define SW_3                      _RB2      //กำหนดค่าตัวแปรชื่อ SW_3 เป็นการใช้งานพอร์ตอินพุต B2

int main(void)
{
                ADPCFG = 0XFF;                                //ปิดการใช้งานโมดูล A to D
                TRIS_LED = 0;                     // ปิด LED

                while(1)                                
                {              
                if(SW_1 == 0){                      //ถ้ากด switch1 (ต่อแบบ active low)
                                LED_1 = 1;            // LED1 ON
                                LED_2 = 0;            // LED2 OFF
                                LED_3 = 0;            // LED3 OFF
                                }
                if(SW_2 == 0){                      //ถ้ากด switch2 (ต่อแบบ active low)
                                LED_1 = 0;            // LED1 OFF
                                LED_2 = 1;            // LED2 ON
                                LED_3 = 0;            // LED3 OFF
                                }              
                if(SW_3 == 0){                      //ถ้ากด switch2 (ต่อแบบ active low)
                                LED_1 = 0;            // LED1 OFF
                                LED_2 = 0;            // LED2 OFF
                                LED_3 = 1;            // LED3 ON
                                }              
                }
return 0;                 //Reset ค่าเริ่มต้น
}
โปรแกรมนี้ใช้เพื่อการกด switch เพื่อสั่งให้อุปการณ์ต่างๆ ทำงาน หรือไม่ทำงาน