Code:: #Pragma Config OSC HS #Pragma Config WDT OFF
Code:: #Pragma Config OSC HS #Pragma Config WDT OFF
#include<p18f452.h>
void delay1(void);
void delay2(void);
void delay8(void);
void chk_isr(void);
void INT0_ISR(void);
#pragma codeMy_HiPrio_Int=0X0008
void My_HiPrio_Int(void)
{
_asm
GOTO chk_isr
_endasm
#pragma code
#pragma interrupt
chk_isr void
chk_isr (void)
{
if(INTCONbits.INT0IF==1)
INT0_ISR();
}
void main(void)
TRISC=0x0;
TRISD=0x0;
TRISB=255;
INTCONbits.INT0IF=0;
INTCONbits.INT0IE=1;
INTCONbits.GIE=1;
while(1){
PORTCbits.RC0 =1;
PORTDbits.RD2 =1;
delay8();
PORTCbits.RC1=1;
delay2();
PORTCbits.RC0 =0;
PORTDbits.RD2 =0;
PORTCbits.RC1 =0;
PORTCbits.RC2 = 1;
PORTDbits.RD0=1;
delay8();
PORTDbits.RD1=1;
delay2();
PORTCbits.RC2 =0;
PORTDbits.RD0 =0;
PORTDbits.RD1 =0;
}
void INT0_ISR(void)
PORTCbits.RC0 =0;
PORTDbits.RD2 =0;
PORTCbits.RC1 =0;
PORTCbits.RC2 =0;
PORTDbits.RD0 =0;
PORTDbits.RD1 =0;
while(PORTBbits.RB0!=0)
{ PORTCbits.RC1=1;
PORTDbits.RD1=1;
delay1();
PORTCbits.RC1=0;
PORTDbits.RD1=0;
delay1();
INTCONbits.INT0IF=0;
_asm
GOTO main
_endasm
void delay1(void){
unsigned char i;
for(i=0;i<16;i++){
T0CON =
0x08;
TMR0L
= 0x00;
TMR0H
= 0x00;
T0CONbits.TMR0ON = 1;
while(INTCONbits.TMR0IF == 0);
T0CONbits.TMR0ON =0;
INTCONbits.TMR0IF =0;
void delay2(void){
unsigned char i;
for(i=0;i<31;i++){
T0CON = 0x08;
TMR0L = 0x00;
TMR0H = 0x00;
T0CONbits.TMR0ON = 1;
while(INTCONbits.TMR0IF == 0);
T0CONbits.TMR0ON =0;
INTCONbits.TMR0IF =0;
void delay8(void){
int i;
for (i=0;i<=123;i++){
T0CON = 0x08;
TMR0L = 0x00;
TMR0H = 0x00;
T0CONbits.TMR0ON = 1;
while(INTCONbits.TMR0IF == 0);
T0CONbits.TMR0ON =0;
INTCONbits.TMR0IF =0;