Professional Documents
Culture Documents
New Text Document
New Text Document
New Text Document
h>
#include <delays.h>
#pragma udata
extern void _startup (void);
#pragma code _RESET_INTERRUPT_VECTOR = 0x000800
void _reset (void)
{
_asm goto _startup _endasm
}
#pragma code
#pragma code _HIGH_INTERRUPT_VECTOR = 0x000808
void _high_ISR (void)
{
;
}
#pragma code _LOW_INTERRUPT_VECTOR = 0x000818
void _low_ISR (void)
{
;
}
#pragma code
#pragma code
/*****************************************************/
void main()
{
#define
#define
#define
#define
pd1
pd2
pd3
ldr
PORTAbits.RA0
PORTAbits.RA1
PORTAbits.RA2
PORTAbits.RA3
TRISB=0x00;
TRISA=0x3f;
PORTB=0x00;
ADCON1=0x0f;
while(1)
{
if(ldr==1)
{
if((pd1==1 && pd2==0 && pd3==1) || (pd1==0 && pd2==0 &&
pd3==0) )
{LATB= 0x09;}
else if (pd1==1 && pd2==1 && pd3==1)
{LATB= 0x05;}
else if ((pd1==0 && pd2==1 && pd3==1)||(pd1==0 && pd2==0
&& pd3==1))
{LATB= 0x08;}
else if ((pd1==1 && pd2==1 && pd3==0)||(pd1==1 && pd2==0
&& pd3==0))
{LATB= 0x01;}
}
else if ((ldr==0)&&((pd1==1 && pd2==0 && pd3==1) || (pd1==0 && p
d2==0 && pd3==0)))
{
while(pd1==0 || pd2==0 || pd3==0)
{LATB= 0x10;}
}
else if ((ldr==0)&&((pd1==0 && pd2==1 && pd3==1)||(pd1==0 && pd2
==0 && pd3==1)))
{LATB= 0x08;}
else if ((ldr==0)&&((pd1==1 && pd2==1 && pd3==0)||(pd1==1 && pd2
==0 && pd3==0)))
{LATB= 0x01;}
}