โปรแกรมนี้ออกแบบเป็นไฟ LED 3 สี แดง เหลือง และเขียว สำหรับ 4 แยก ทั่วไป การทำงานก็จะทำงานสลับกันไป เหมือนระบบสี่แยกนั้นละครับ ถ้าท่านใดกำลังมองหาก็ลองเอาไปประยุกต์ดัดแปลงกันได้เลย
#include <htc.h>
__CONFIG(FOSC_INTOSC &
WDTE_OFF &
PWRTE_ON &
MCLRE_ON &
CP_OFF &
CPD_OFF &
BOREN_OFF &
CLKOUTEN_OFF &
IESO_ON &
FCMEN_ON &
WRT_OFF &
//VCAPEN_OFF &
PLLEN_ON &
STVREN_ON &
BORV_HI &
LVP_OFF);
#define _XTAL_FREQ 32000000
#define LED1_RED0 LATCbits.LATC0
#define LED2_YEL0 LATCbits.LATC1
#define LED3_GRE0 LATCbits.LATC2
#define LED4_RED1 LATCbits.LATC3
#define LED5_YEL1 LATCbits.LATC4
#define LED6_GRE1 LATCbits.LATC5
#define LED7_RED2 LATDbits.LATD0
#define LED8_YEL2 LATDbits.LATD1
#define LED9_GRE2 LATDbits.LATD2
#define LED10_RED3 LATDbits.LATD3
#define LED11_YEL3 LATDbits.LATD4
#define LED12_GRE3 LATDbits.LATD5
#define ON 1;
#define OFF 0;
unsigned int i,j;
//////////// SET LED On,Off 1
#define LED1_RED0_On() LED1_RED0 = 1;
#define LED1_RED0_Off() LED1_RED0 = 0;
#define LED2_YEL0_On() LED2_YEL0 = 1;
#define LED2_YEL0_Off() LED2_YEL0 = 0;
#define LED3_GRE0_On() LED3_GRE0 = 1;
#define LED3_GRE0_Off() LED3_GRE0 = 0;
////////////// SET LED On,Off 2 ///////////////
#define LED4_RED1_On() LED4_RED1 = 1;
#define LED4_RED1_Off() LED4_RED1 = 0;
#define LED5_YEL1_On() LED5_YEL1 = 1;
#define LED5_YEL1_Off() LED5_YEL1 = 0;
#define LED6_GRE1_On() LED6_GRE1 = 1;
#define LED6_GRE1_Off() LED6_GRE1 = 0;
////////////// SET LED On,Off 3
#define LED7_RED2_On() LED7_RED2 = 1;
#define LED7_RED2_Off() LED7_RED2 = 0;
#define LED8_YEL2_On() LED8_YEL2 = 1;
#define LED8_YEL2_Off() LED8_YEL2 = 0;
#define LED9_GRE2_On() LED9_GRE2 = 1;
#define LED9_GRE2_Off() LED9_GRE2 = 0;
////////////// SET LED On,Off 4
#define LED10_RED3_On() LED10_RED3 = 1;
#define LED10_RED3_Off() LED10_RED3 = 0;
#define LED11_YEL3_On() LED11_YEL3 = 1;
#define LED11_YEL3_Off() LED11_YEL3 = 0;
#define LED12_GRE3_On() LED12_GRE3 = 1;
#define LED12_GRE3_Off() LED12_GRE3 = 0;
void main (void)
{
OSCCONbits.SPLLEN = 1;
OSCCONbits.IRCF = 14;
OSCCONbits.SCS = 0;
TRISD=0x00;
TRISC=0x00;
while(1)
{
////////////// SET 1
LED1_RED0_Off();
LED2_YEL0_Off();
LED3_GRE0_On();
LED4_RED1_On();
LED5_YEL1_Off();
LED6_GRE1_Off();
LED7_RED2_Off();
LED8_YEL2_Off();
LED9_GRE2_On();
LED10_RED3_On();
LED11_YEL3_Off();
LED12_GRE3_Off();
__delay_ms(800);
/////////////// SET 2
LED1_RED0_Off();
LED3_GRE0_Off();
LED2_YEL0_On();
LED4_RED1_Off();
LED5_YEL1_Off();
LED6_GRE1_Off();
LED7_RED2_Off();
LED9_GRE2_Off();
LED8_YEL2_On();
LED10_RED3_Off();
LED11_YEL3_Off();
LED12_GRE3_Off();
__delay_ms(350);
///////////////// SET 3
LED2_YEL0_Off();
LED1_RED0_On();
LED3_GRE0_Off();
LED4_RED1_Off();
LED5_YEL1_Off();
LED6_GRE1_On();
LED8_YEL2_Off();
LED7_RED2_On();
LED9_GRE2_Off();
LED12_GRE3_On();
LED10_RED3_Off();
LED11_YEL3_Off();
__delay_ms(800);
////////////// SET 4
LED1_RED0_Off();
LED2_YEL0_Off();
LED3_GRE0_Off();
LED6_GRE1_Off();
LED5_YEL1_On();
LED4_RED1_Off();
LED7_RED2_Off();
LED8_YEL2_Off();
LED9_GRE2_Off();
LED12_GRE3_Off();
LED11_YEL3_On();
LED10_RED3_Off();
__delay_ms(350);
}
}