sharilshukor
Newbie level 3
pic microcontroller set_bit
ive got a source code which i have Found online. i tried debugging it using mplab but somehow they show errors. i'm not sure what im doing wrong For i believe i have Followed the right steps. i did try some other source codes but still same error messages displayed. here is the example oF the source codes. 2 diFFerent ones:
//Defines for microcontroller
//PIC Functions
#pragma CLOCK_FREQ 3276800
#define P16F84A
#include <system.h>
#define MX_EE
#define MX_EE_TYPE1
const char MX_EE_SIZE = 64;
void FCD_LCDDisplay1_Start();
void FCD_LCDDisplay1_Clear();
void FCD_LCDDisplay1_PrintASCII(char Character);
void FCD_LCDDisplay1_Command(char in);
void FCD_LCDDisplay1_RawSend(char in, char mask);
void FCD_LCDDisplay1_Cursor(char x, char y);
void FCD_LCDDisplay1_PrintNumber(char Number);
void FCD_LCDDisplay7_Start();
void FCD_LCDDisplay7_Clear();
void FCD_LCDDisplay7_PrintASCII(char Character);
void FCD_LCDDisplay7_Command(char in);
void FCD_LCDDisplay7_RawSend(char in, char mask);
void FCD_LCDDisplay7_Cursor(char x, char y);
void FCD_LCDDisplay7_PrintNumber(char Number);
void FCD_LCDDisplay1_Start()
{
set_bit(STATUS, RP0);
TRISB = TRISB & 0xC0;
clear_bit(STATUS, RP0);
delay_ms(2);
FCD_LCDDisplay1_Command(0x33);
FCD_LCDDisplay1_Command(0x32);
FCD_LCDDisplay1_Command(0x2c);
FCD_LCDDisplay1_Command(0x06);
FCD_LCDDisplay1_Command(0x0c);
FCD_LCDDisplay1_Clear();
}
void FCD_LCDDisplay1_Clear()
{
FCD_LCDDisplay1_Command (0x01);
delay_ms(1);
FCD_LCDDisplay1_Command (0x02);
delay_ms(1);
}
void FCD_LCDDisplay1_PrintASCII(char Character)
{
FCD_LCDDisplay1_RawSend(Character, 0x10);
}
void FCD_LCDDisplay1_Command(char in)
{
FCD_LCDDisplay1_RawSend(in, 0);
}
void FCD_LCDDisplay1_RawSend(char in, char mask)
{
unsigned char pt ;
pt = ((in >> 4) & 0x0f ) | mask ;
pt = pt | (PORTB & 0xc0) ;
PORTB = pt ;delay_ms(1);
set_bit (PORTB, 0x05 ) ;
delay_ms(1);
clear_bit ( PORTB, 0x05 ) ;
pt = (in & 0x0f ) | mask ;
pt = pt | (PORTB & 0xc0) ;
PORTB = pt ;
delay_ms(1);
set_bit (PORTB, 0x05 ) ;
delay_ms(1);
clear_bit ( PORTB, 0x05 ) ;
delay_ms(1);
}
void FCD_LCDDisplay1_Cursor(char x, char y)
{
if (y==0)
y=0x80;
else
y=0xc0;
FCD_LCDDisplay1_Command(y+x);
}
void FCD_LCDDisplay1_PrintNumber(char Number)
{
if (((Number/100) % 10) != 0)
{
FCD_LCDDisplay1_RawSend(0x30 + ((Number/100) % 10), 0x10);
FCD_LCDDisplay1_RawSend(0x30 + ((Number/10) % 10), 0x10);
}
else
{
if (((Number/10) % 10) != 0)
{
FCD_LCDDisplay1_RawSend(0x30 + ((Number/10) % 10), 0x10);
}
}
FCD_LCDDisplay1_RawSend(0x30 + (Number % 10), 0x10);
}
void FCD_LCDDisplay7_Start()
{
set_bit(STATUS, RP0);
TRISB = TRISB & 0xC0;
clear_bit(STATUS, RP0);
delay_ms(2);
FCD_LCDDisplay7_Command(0x33);
FCD_LCDDisplay7_Command(0x32);
FCD_LCDDisplay7_Command(0x2c);
FCD_LCDDisplay7_Command(0x06);
FCD_LCDDisplay7_Command(0x0c);
FCD_LCDDisplay7_Clear();
}
void FCD_LCDDisplay7_Clear()
{
FCD_LCDDisplay7_Command (0x01);
delay_ms(1);
FCD_LCDDisplay7_Command (0x02);
delay_ms(1);
}
void FCD_LCDDisplay7_PrintASCII(char Character)
{
FCD_LCDDisplay7_RawSend(Character, 0x10);
}
void FCD_LCDDisplay7_Command(char in)
{
FCD_LCDDisplay7_RawSend(in, 0);
}
void FCD_LCDDisplay7_RawSend(char in, char mask)
{
unsigned char pt ;
pt = ((in >> 4) & 0x0f ) | mask ;
pt = pt | (PORTB & 0xc0) ;
PORTB = pt ;delay_ms(1);
set_bit (PORTB, 0x05 ) ;
delay_ms(1);
clear_bit ( PORTB, 0x05 ) ;
pt = (in & 0x0f ) | mask ;
pt = pt | (PORTB & 0xc0) ;
PORTB = pt ;
delay_ms(1);
set_bit (PORTB, 0x05 ) ;
delay_ms(1);
clear_bit ( PORTB, 0x05 ) ;
delay_ms(1);
}
void FCD_LCDDisplay7_Cursor(char x, char y)
{
if (y==0)
y=0x80;
else
y=0xc0;
FCD_LCDDisplay7_Command(y+x);
}
void FCD_LCDDisplay7_PrintNumber(char Number)
{
if (((Number/100) % 10) != 0)
{
FCD_LCDDisplay7_RawSend(0x30 + ((Number/100) % 10), 0x10);
FCD_LCDDisplay7_RawSend(0x30 + ((Number/10) % 10), 0x10);
}
else
{
if (((Number/10) % 10) != 0)
{
FCD_LCDDisplay7_RawSend(0x30 + ((Number/10) % 10), 0x10);
}
}
FCD_LCDDisplay7_RawSend(0x30 + (Number % 10), 0x10);
}
//Macro function declarations
void FCM_HELLO();
void FCM_ANAK();
void FCM_HUJAN();
void FCM_API();
void FCM_BELL();
void FCM_RAIN();
void FCM_CHILD();
void FCM_TEMP();
void FCM_SECURE();
//Variable declarations
char FCV_LC_W; char FCV_LC_F;
char FCV_VIBRATOR;
char FCV_LC_G;
char FCV_LC_X;
char FCV_LC_H;
char FCV_LC_Y;
char FCV_LC_I;
char FCV_LC_Z;
char FCV_LC_J;
char FCV_LC_K;
char FCV_LC_L;
char FCV_LC_M;
char FCV_LC_N;
char FCV_LC_O;
char FCV_LC_P;
char FCV_LC_Q;
char FCV_LC_R;
char FCV_LC_A;
char FCV_LC_B;
char FCV_LC_S;
char FCV_LC_C;
char FCV_LC_T;
char FCV_A;
char FCV_INDEX;
char FCV_LC_D;
char FCV_LC_U;
char FCV_LC_E;
char FCV_LC_V;
//Macro implementations
void FCM_HELLO()
{
FCV_INDEX = 0 ;
FCC_HELLO_A:
if( FCV_INDEX < 15 )
{
FCD_LCDDisplay0_Cursor(FCV_INDEX, 0);
FCD_LCDDisplay1_PrintASCII('B');
FCD_LCDDisplay1_PrintASCII('E');
FCD_LCDDisplay1_PrintASCII('L');
FCD_LCDDisplay1_PrintASCII('L');
delay_ms(200);
FCD_LCDDisplay0_Clear();
FCV_INDEX = FCV_INDEX + 1 ;
goto FCC_Main_A;
}
}
void FCM_ANAK()
{
FCD_LCDDisplay1_PrintASCII('A');
FCD_LCDDisplay1_PrintASCII('N');
FCD_LCDDisplay1_PrintASCII('A');
FCD_LCDDisplay1_PrintASCII('K');
}
void FCM_HUJAN()
{
FCV_INDEX = 0 ;
FCC_HUJAN_A:
if( FCV_INDEX < 15 )
{
FCD_LCDDisplay7_Cursor(FCV_INDEX, 0);
FCD_LCDDisplay7_PrintASCII('R');
FCD_LCDDisplay7_PrintASCII('A');
FCD_LCDDisplay7_PrintASCII('I');
FCD_LCDDisplay7_PrintASCII('N');
FCD_LCDDisplay7_PrintASCII('I');
FCD_LCDDisplay7_PrintASCII('N');
FCD_LCDDisplay7_PrintASCII('G');
delay_ms(200);
FCD_LCDDisplay7_Clear();
FCV_INDEX = FCV_INDEX + 1 ;
goto FCC_Main_A;
}
}
void FCM_API()
{
FCV_INDEX = 0 ;
FCC_API_A:
if( FCV_INDEX < 15 )
{
FCD_LCDDisplay7_Cursor(FCV_INDEX, 0);
FCD_LCDDisplay7_PrintASCII('H');
FCD_LCDDisplay7_PrintASCII('O');
FCD_LCDDisplay7_PrintASCII('U');
FCD_LCDDisplay7_PrintASCII('S');
FCD_LCDDisplay7_PrintASCII('E');
FCD_LCDDisplay7_PrintASCII(' ');
FCD_LCDDisplay7_PrintASCII('O');
FCD_LCDDisplay7_PrintASCII('N');
FCD_LCDDisplay7_PrintASCII(' ');
FCD_LCDDisplay7_PrintASCII('F');
FCD_LCDDisplay7_PrintASCII('I');
FCD_LCDDisplay7_PrintASCII('R');
FCD_LCDDisplay7_PrintASCII('E');
delay_ms(200);
FCD_LCDDisplay7_Clear();
FCV_INDEX = FCV_INDEX + 1 ;
goto FCC_Main_A;
}
}
void FCM_BELL()
{
FCV_INDEX = 0 ;
FCC_BELL_A:
if( FCV_INDEX < 15 )
{
FCD_LCDDisplay7_Cursor(FCV_INDEX, 0);
FCD_LCDDisplay7_PrintASCII('B');
FCD_LCDDisplay7_PrintASCII('E');
FCD_LCDDisplay7_PrintASCII('L');
FCD_LCDDisplay7_PrintASCII('L');
FCD_LCDDisplay7_PrintASCII(' ');
FCD_LCDDisplay7_PrintASCII('R');
FCD_LCDDisplay7_PrintASCII('I');
FCD_LCDDisplay7_PrintASCII('N');
FCD_LCDDisplay7_PrintASCII('G');
FCD_LCDDisplay7_PrintASCII('I');
FCD_LCDDisplay7_PrintASCII('N');
FCD_LCDDisplay7_PrintASCII('G');
delay_ms(200);
FCD_LCDDisplay7_Clear();
FCV_INDEX = FCV_INDEX + 1 ;
goto FCC_Main_A;
}
}
void FCM_RAIN()
{
FCD_LCDDisplay1_PrintASCII('R');
FCD_LCDDisplay1_PrintASCII('A');
FCD_LCDDisplay1_PrintASCII('I');
FCD_LCDDisplay1_PrintASCII('N');
}
void FCM_CHILD()
{
FCV_INDEX = 0 ;
FCC_CHILD_A:
if( FCV_INDEX < 15 )
{
FCD_LCDDisplay7_Cursor(FCV_INDEX, 0);
FCD_LCDDisplay7_PrintASCII('B');
FCD_LCDDisplay7_PrintASCII('A');
FCD_LCDDisplay7_PrintASCII('B');
FCD_LCDDisplay7_PrintASCII('Y');
FCD_LCDDisplay7_PrintASCII(' ');
FCD_LCDDisplay7_PrintASCII('C');
FCD_LCDDisplay7_PrintASCII('R');
FCD_LCDDisplay7_PrintASCII('Y');
delay_ms(200);
FCD_LCDDisplay7_Clear();
FCV_INDEX = FCV_INDEX + 1 ;
goto FCC_Main_A;
}
}
void FCM_TEMP()
{
FCD_LCDDisplay1_PrintASCII('H');
FCD_LCDDisplay1_PrintASCII('O');
FCD_LCDDisplay1_PrintASCII('T');
}
void FCM_SECURE()
{
FCV_INDEX = 0 ;
FCC_SECURE_A:
if( FCV_INDEX < 15 )
{
FCD_LCDDisplay7_Cursor(FCV_INDEX, 0);
FCD_LCDDisplay7_PrintASCII('B');
FCD_LCDDisplay7_PrintASCII('U');
FCD_LCDDisplay7_PrintASCII('G');
FCD_LCDDisplay7_PrintASCII('L');
FCD_LCDDisplay7_PrintASCII('A');
FCD_LCDDisplay7_PrintASCII('R');
FCD_LCDDisplay7_PrintASCII(' ');
FCD_LCDDisplay7_PrintASCII('A');
FCD_LCDDisplay7_PrintASCII('C');
FCD_LCDDisplay7_PrintASCII('T');
FCD_LCDDisplay7_PrintASCII('I');
FCD_LCDDisplay7_PrintASCII('V');
FCD_LCDDisplay7_PrintASCII('A');
FCD_LCDDisplay7_PrintASCII('T');
FCD_LCDDisplay7_PrintASCII('E');
delay_ms(200);
FCD_LCDDisplay7_Clear();
FCV_INDEX = FCV_INDEX + 1 ;
goto FCC_Main_A;
}
}
void main()
{
//PIC Initialisation
//Interrupt initialisation code
option_reg = 0xC0;
while( 1 )
{
TRISA = TRISA | 0xff;
FCV_A = PORTA;
if( FCV_A == 1 )
{
FCV_VIBRATOR = 64 ;
TRISB = 0x00;
PORTB = FCV_VIBRATOR;
FCM_API();
TRISB = 0x00;
PORTB = 0;
}
else
{
if( FCV_A == 2 )
{
FCV_VIBRATOR = 64 ;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
PORTB = PORTB & 0xbf | 0x40;
else
PORTB = PORTB & 0xbf;
FCM_CHILD();
TRISB = 0x00;
PORTB = 0;
}
else
{
if( FCV_A == 3 )
{
FCV_VIBRATOR = 64 ;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
PORTB = PORTB & 0xbf | 0x40;
else
PORTB = PORTB & 0xbf;
FCM_SECURE();
TRISB = 0x00;
PORTB = 0;
}
else
{
if( FCV_A == 4 )
{
FCV_VIBRATOR = 64 ;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
PORTB = PORTB & 0xbf | 0x40;
else
PORTB = PORTB & 0xbf;
FCM_BELL();
TRISB = 0x00;
PORTB = 0;
}
else
{
if( FCV_A == 5 )
{
FCV_VIBRATOR = 64 ;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
PORTB = PORTB & 0xbf | 0x40;
else
PORTB = PORTB & 0xbf;
FCM_HUJAN();
TRISB = 0x00;
PORTB = 0;
}
}
}
}
}
mainendloop: goto mainendloop;
}
void interrupt(void)
{
}
/Defines for microcontroller
char PORTC@0x07;
char TRISC@0x87;
char PORTD@0x08;
char TRISD@0x88;
char PORTE@0x09;
char TRISE@0x89;
//PIC Functions
#pragma CLOCK_FREQ 4000000
#define P16F874A
#include <system.h>
#define MX_EE
#define MX_EE_TYPE2
const char MX_EE_SIZE = 128;
#define MX_SPI
#define MX_SPI_C
#define MX_SPI_SDI 4
#define MX_SPI_SDO 5
#define MX_SPI_SCK 3
#define MX_UART
#define MX_UART_C
#define MX_UART_TX 6
#define MX_UART_RX 7
//Macro function declarations
//Variable declarations
char FCV_BAHAYA;
char FCV_BELL;
char FCV_DATA2;
char FCV_RAIN;
char FCV_DATA3;
char FCV_DATA4;
char FCV_DATA5;
char FCV_DATA6;
char FCV_SECURE;
char FCV_CHILD;
char FCV_HOT;
char FCV_DATA7;
char FCV_DATA8;
char FCV_DATA10;
char FCV_DATA9;
char FCV_SENSOR;
char FCV_DATA11;
char FCV_DATA;
char FCV_DATA12;
char FCV_HEAT;
//Macro implementations
void main()
{
//PIC Initialisation
adcon1 = 0x07;
//Interrupt initialisation code
option_reg = 0xC0;
while( 1 )
{
TRISA = TRISA & 0xfe;
PORTA = PORTA & 0xfe | 0;
TRISA = TRISA | 0xff;
FCV_SENSOR = PORTA;
FCV_DATA = 1 ;
FCV_DATA2 = FCV_SENSOR & FCV_DATA ;
if( FCV_DATA2 == 1 )
{
FCV_HEAT = 9 ;
TRISB = 0x00;
PORTB = FCV_HEAT;
delay_s(1);
TRISB = 0x00;
PORTB = 0;
}
else
{
FCV_DATA3 = 2 ;
FCV_DATA4 = FCV_SENSOR & FCV_DATA3 ;
if( FCV_DATA4 == 2 )
{
FCV_CHILD = 10 ;
TRISB = 0x00;
PORTB = FCV_CHILD;
delay_s(1);
TRISB = 0x00;
PORTB = 0;
}
else
{
FCV_DATA5 = 4 ;
FCV_DATA6 = FCV_SENSOR & FCV_DATA5 ;
}
if( FCV_DATA6 == 4 )
{
FCV_SECURE = 11 ;
TRISB = 0x00;
PORTB = FCV_SECURE;
delay_s(1);
TRISB = 0x00;
PORTB = 0;
}
else
{
FCV_DATA7 = 8 ;
FCV_DATA9 = FCV_SENSOR & FCV_DATA7 ;
if( FCV_DATA9 == 8 )
{
FCV_BELL = 12 ;
TRISB = 0x00;
PORTB = FCV_BELL;
delay_s(1);
TRISB = 0x00;
PORTB = 0;
}
else
{
FCV_DATA10 = 16 ;
FCV_DATA11 = FCV_SENSOR & FCV_DATA10 ;
}
if( FCV_DATA11 == 16 )
{
FCV_RAIN = 13 ;
TRISB = 0x00;
PORTB = FCV_RAIN;
delay_s(1);
TRISB = 0x00;
PORTB = 0;
}
}
}
}
mainendloop: goto mainendloop;
}
hope you could help.
ive got a source code which i have Found online. i tried debugging it using mplab but somehow they show errors. i'm not sure what im doing wrong For i believe i have Followed the right steps. i did try some other source codes but still same error messages displayed. here is the example oF the source codes. 2 diFFerent ones:
//Defines for microcontroller
//PIC Functions
#pragma CLOCK_FREQ 3276800
#define P16F84A
#include <system.h>
#define MX_EE
#define MX_EE_TYPE1
const char MX_EE_SIZE = 64;
void FCD_LCDDisplay1_Start();
void FCD_LCDDisplay1_Clear();
void FCD_LCDDisplay1_PrintASCII(char Character);
void FCD_LCDDisplay1_Command(char in);
void FCD_LCDDisplay1_RawSend(char in, char mask);
void FCD_LCDDisplay1_Cursor(char x, char y);
void FCD_LCDDisplay1_PrintNumber(char Number);
void FCD_LCDDisplay7_Start();
void FCD_LCDDisplay7_Clear();
void FCD_LCDDisplay7_PrintASCII(char Character);
void FCD_LCDDisplay7_Command(char in);
void FCD_LCDDisplay7_RawSend(char in, char mask);
void FCD_LCDDisplay7_Cursor(char x, char y);
void FCD_LCDDisplay7_PrintNumber(char Number);
void FCD_LCDDisplay1_Start()
{
set_bit(STATUS, RP0);
TRISB = TRISB & 0xC0;
clear_bit(STATUS, RP0);
delay_ms(2);
FCD_LCDDisplay1_Command(0x33);
FCD_LCDDisplay1_Command(0x32);
FCD_LCDDisplay1_Command(0x2c);
FCD_LCDDisplay1_Command(0x06);
FCD_LCDDisplay1_Command(0x0c);
FCD_LCDDisplay1_Clear();
}
void FCD_LCDDisplay1_Clear()
{
FCD_LCDDisplay1_Command (0x01);
delay_ms(1);
FCD_LCDDisplay1_Command (0x02);
delay_ms(1);
}
void FCD_LCDDisplay1_PrintASCII(char Character)
{
FCD_LCDDisplay1_RawSend(Character, 0x10);
}
void FCD_LCDDisplay1_Command(char in)
{
FCD_LCDDisplay1_RawSend(in, 0);
}
void FCD_LCDDisplay1_RawSend(char in, char mask)
{
unsigned char pt ;
pt = ((in >> 4) & 0x0f ) | mask ;
pt = pt | (PORTB & 0xc0) ;
PORTB = pt ;delay_ms(1);
set_bit (PORTB, 0x05 ) ;
delay_ms(1);
clear_bit ( PORTB, 0x05 ) ;
pt = (in & 0x0f ) | mask ;
pt = pt | (PORTB & 0xc0) ;
PORTB = pt ;
delay_ms(1);
set_bit (PORTB, 0x05 ) ;
delay_ms(1);
clear_bit ( PORTB, 0x05 ) ;
delay_ms(1);
}
void FCD_LCDDisplay1_Cursor(char x, char y)
{
if (y==0)
y=0x80;
else
y=0xc0;
FCD_LCDDisplay1_Command(y+x);
}
void FCD_LCDDisplay1_PrintNumber(char Number)
{
if (((Number/100) % 10) != 0)
{
FCD_LCDDisplay1_RawSend(0x30 + ((Number/100) % 10), 0x10);
FCD_LCDDisplay1_RawSend(0x30 + ((Number/10) % 10), 0x10);
}
else
{
if (((Number/10) % 10) != 0)
{
FCD_LCDDisplay1_RawSend(0x30 + ((Number/10) % 10), 0x10);
}
}
FCD_LCDDisplay1_RawSend(0x30 + (Number % 10), 0x10);
}
void FCD_LCDDisplay7_Start()
{
set_bit(STATUS, RP0);
TRISB = TRISB & 0xC0;
clear_bit(STATUS, RP0);
delay_ms(2);
FCD_LCDDisplay7_Command(0x33);
FCD_LCDDisplay7_Command(0x32);
FCD_LCDDisplay7_Command(0x2c);
FCD_LCDDisplay7_Command(0x06);
FCD_LCDDisplay7_Command(0x0c);
FCD_LCDDisplay7_Clear();
}
void FCD_LCDDisplay7_Clear()
{
FCD_LCDDisplay7_Command (0x01);
delay_ms(1);
FCD_LCDDisplay7_Command (0x02);
delay_ms(1);
}
void FCD_LCDDisplay7_PrintASCII(char Character)
{
FCD_LCDDisplay7_RawSend(Character, 0x10);
}
void FCD_LCDDisplay7_Command(char in)
{
FCD_LCDDisplay7_RawSend(in, 0);
}
void FCD_LCDDisplay7_RawSend(char in, char mask)
{
unsigned char pt ;
pt = ((in >> 4) & 0x0f ) | mask ;
pt = pt | (PORTB & 0xc0) ;
PORTB = pt ;delay_ms(1);
set_bit (PORTB, 0x05 ) ;
delay_ms(1);
clear_bit ( PORTB, 0x05 ) ;
pt = (in & 0x0f ) | mask ;
pt = pt | (PORTB & 0xc0) ;
PORTB = pt ;
delay_ms(1);
set_bit (PORTB, 0x05 ) ;
delay_ms(1);
clear_bit ( PORTB, 0x05 ) ;
delay_ms(1);
}
void FCD_LCDDisplay7_Cursor(char x, char y)
{
if (y==0)
y=0x80;
else
y=0xc0;
FCD_LCDDisplay7_Command(y+x);
}
void FCD_LCDDisplay7_PrintNumber(char Number)
{
if (((Number/100) % 10) != 0)
{
FCD_LCDDisplay7_RawSend(0x30 + ((Number/100) % 10), 0x10);
FCD_LCDDisplay7_RawSend(0x30 + ((Number/10) % 10), 0x10);
}
else
{
if (((Number/10) % 10) != 0)
{
FCD_LCDDisplay7_RawSend(0x30 + ((Number/10) % 10), 0x10);
}
}
FCD_LCDDisplay7_RawSend(0x30 + (Number % 10), 0x10);
}
//Macro function declarations
void FCM_HELLO();
void FCM_ANAK();
void FCM_HUJAN();
void FCM_API();
void FCM_BELL();
void FCM_RAIN();
void FCM_CHILD();
void FCM_TEMP();
void FCM_SECURE();
//Variable declarations
char FCV_LC_W; char FCV_LC_F;
char FCV_VIBRATOR;
char FCV_LC_G;
char FCV_LC_X;
char FCV_LC_H;
char FCV_LC_Y;
char FCV_LC_I;
char FCV_LC_Z;
char FCV_LC_J;
char FCV_LC_K;
char FCV_LC_L;
char FCV_LC_M;
char FCV_LC_N;
char FCV_LC_O;
char FCV_LC_P;
char FCV_LC_Q;
char FCV_LC_R;
char FCV_LC_A;
char FCV_LC_B;
char FCV_LC_S;
char FCV_LC_C;
char FCV_LC_T;
char FCV_A;
char FCV_INDEX;
char FCV_LC_D;
char FCV_LC_U;
char FCV_LC_E;
char FCV_LC_V;
//Macro implementations
void FCM_HELLO()
{
FCV_INDEX = 0 ;
FCC_HELLO_A:
if( FCV_INDEX < 15 )
{
FCD_LCDDisplay0_Cursor(FCV_INDEX, 0);
FCD_LCDDisplay1_PrintASCII('B');
FCD_LCDDisplay1_PrintASCII('E');
FCD_LCDDisplay1_PrintASCII('L');
FCD_LCDDisplay1_PrintASCII('L');
delay_ms(200);
FCD_LCDDisplay0_Clear();
FCV_INDEX = FCV_INDEX + 1 ;
goto FCC_Main_A;
}
}
void FCM_ANAK()
{
FCD_LCDDisplay1_PrintASCII('A');
FCD_LCDDisplay1_PrintASCII('N');
FCD_LCDDisplay1_PrintASCII('A');
FCD_LCDDisplay1_PrintASCII('K');
}
void FCM_HUJAN()
{
FCV_INDEX = 0 ;
FCC_HUJAN_A:
if( FCV_INDEX < 15 )
{
FCD_LCDDisplay7_Cursor(FCV_INDEX, 0);
FCD_LCDDisplay7_PrintASCII('R');
FCD_LCDDisplay7_PrintASCII('A');
FCD_LCDDisplay7_PrintASCII('I');
FCD_LCDDisplay7_PrintASCII('N');
FCD_LCDDisplay7_PrintASCII('I');
FCD_LCDDisplay7_PrintASCII('N');
FCD_LCDDisplay7_PrintASCII('G');
delay_ms(200);
FCD_LCDDisplay7_Clear();
FCV_INDEX = FCV_INDEX + 1 ;
goto FCC_Main_A;
}
}
void FCM_API()
{
FCV_INDEX = 0 ;
FCC_API_A:
if( FCV_INDEX < 15 )
{
FCD_LCDDisplay7_Cursor(FCV_INDEX, 0);
FCD_LCDDisplay7_PrintASCII('H');
FCD_LCDDisplay7_PrintASCII('O');
FCD_LCDDisplay7_PrintASCII('U');
FCD_LCDDisplay7_PrintASCII('S');
FCD_LCDDisplay7_PrintASCII('E');
FCD_LCDDisplay7_PrintASCII(' ');
FCD_LCDDisplay7_PrintASCII('O');
FCD_LCDDisplay7_PrintASCII('N');
FCD_LCDDisplay7_PrintASCII(' ');
FCD_LCDDisplay7_PrintASCII('F');
FCD_LCDDisplay7_PrintASCII('I');
FCD_LCDDisplay7_PrintASCII('R');
FCD_LCDDisplay7_PrintASCII('E');
delay_ms(200);
FCD_LCDDisplay7_Clear();
FCV_INDEX = FCV_INDEX + 1 ;
goto FCC_Main_A;
}
}
void FCM_BELL()
{
FCV_INDEX = 0 ;
FCC_BELL_A:
if( FCV_INDEX < 15 )
{
FCD_LCDDisplay7_Cursor(FCV_INDEX, 0);
FCD_LCDDisplay7_PrintASCII('B');
FCD_LCDDisplay7_PrintASCII('E');
FCD_LCDDisplay7_PrintASCII('L');
FCD_LCDDisplay7_PrintASCII('L');
FCD_LCDDisplay7_PrintASCII(' ');
FCD_LCDDisplay7_PrintASCII('R');
FCD_LCDDisplay7_PrintASCII('I');
FCD_LCDDisplay7_PrintASCII('N');
FCD_LCDDisplay7_PrintASCII('G');
FCD_LCDDisplay7_PrintASCII('I');
FCD_LCDDisplay7_PrintASCII('N');
FCD_LCDDisplay7_PrintASCII('G');
delay_ms(200);
FCD_LCDDisplay7_Clear();
FCV_INDEX = FCV_INDEX + 1 ;
goto FCC_Main_A;
}
}
void FCM_RAIN()
{
FCD_LCDDisplay1_PrintASCII('R');
FCD_LCDDisplay1_PrintASCII('A');
FCD_LCDDisplay1_PrintASCII('I');
FCD_LCDDisplay1_PrintASCII('N');
}
void FCM_CHILD()
{
FCV_INDEX = 0 ;
FCC_CHILD_A:
if( FCV_INDEX < 15 )
{
FCD_LCDDisplay7_Cursor(FCV_INDEX, 0);
FCD_LCDDisplay7_PrintASCII('B');
FCD_LCDDisplay7_PrintASCII('A');
FCD_LCDDisplay7_PrintASCII('B');
FCD_LCDDisplay7_PrintASCII('Y');
FCD_LCDDisplay7_PrintASCII(' ');
FCD_LCDDisplay7_PrintASCII('C');
FCD_LCDDisplay7_PrintASCII('R');
FCD_LCDDisplay7_PrintASCII('Y');
delay_ms(200);
FCD_LCDDisplay7_Clear();
FCV_INDEX = FCV_INDEX + 1 ;
goto FCC_Main_A;
}
}
void FCM_TEMP()
{
FCD_LCDDisplay1_PrintASCII('H');
FCD_LCDDisplay1_PrintASCII('O');
FCD_LCDDisplay1_PrintASCII('T');
}
void FCM_SECURE()
{
FCV_INDEX = 0 ;
FCC_SECURE_A:
if( FCV_INDEX < 15 )
{
FCD_LCDDisplay7_Cursor(FCV_INDEX, 0);
FCD_LCDDisplay7_PrintASCII('B');
FCD_LCDDisplay7_PrintASCII('U');
FCD_LCDDisplay7_PrintASCII('G');
FCD_LCDDisplay7_PrintASCII('L');
FCD_LCDDisplay7_PrintASCII('A');
FCD_LCDDisplay7_PrintASCII('R');
FCD_LCDDisplay7_PrintASCII(' ');
FCD_LCDDisplay7_PrintASCII('A');
FCD_LCDDisplay7_PrintASCII('C');
FCD_LCDDisplay7_PrintASCII('T');
FCD_LCDDisplay7_PrintASCII('I');
FCD_LCDDisplay7_PrintASCII('V');
FCD_LCDDisplay7_PrintASCII('A');
FCD_LCDDisplay7_PrintASCII('T');
FCD_LCDDisplay7_PrintASCII('E');
delay_ms(200);
FCD_LCDDisplay7_Clear();
FCV_INDEX = FCV_INDEX + 1 ;
goto FCC_Main_A;
}
}
void main()
{
//PIC Initialisation
//Interrupt initialisation code
option_reg = 0xC0;
while( 1 )
{
TRISA = TRISA | 0xff;
FCV_A = PORTA;
if( FCV_A == 1 )
{
FCV_VIBRATOR = 64 ;
TRISB = 0x00;
PORTB = FCV_VIBRATOR;
FCM_API();
TRISB = 0x00;
PORTB = 0;
}
else
{
if( FCV_A == 2 )
{
FCV_VIBRATOR = 64 ;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
PORTB = PORTB & 0xbf | 0x40;
else
PORTB = PORTB & 0xbf;
FCM_CHILD();
TRISB = 0x00;
PORTB = 0;
}
else
{
if( FCV_A == 3 )
{
FCV_VIBRATOR = 64 ;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
PORTB = PORTB & 0xbf | 0x40;
else
PORTB = PORTB & 0xbf;
FCM_SECURE();
TRISB = 0x00;
PORTB = 0;
}
else
{
if( FCV_A == 4 )
{
FCV_VIBRATOR = 64 ;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
PORTB = PORTB & 0xbf | 0x40;
else
PORTB = PORTB & 0xbf;
FCM_BELL();
TRISB = 0x00;
PORTB = 0;
}
else
{
if( FCV_A == 5 )
{
FCV_VIBRATOR = 64 ;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
PORTB = PORTB & 0xbf | 0x40;
else
PORTB = PORTB & 0xbf;
FCM_HUJAN();
TRISB = 0x00;
PORTB = 0;
}
}
}
}
}
mainendloop: goto mainendloop;
}
void interrupt(void)
{
}
/Defines for microcontroller
char PORTC@0x07;
char TRISC@0x87;
char PORTD@0x08;
char TRISD@0x88;
char PORTE@0x09;
char TRISE@0x89;
//PIC Functions
#pragma CLOCK_FREQ 4000000
#define P16F874A
#include <system.h>
#define MX_EE
#define MX_EE_TYPE2
const char MX_EE_SIZE = 128;
#define MX_SPI
#define MX_SPI_C
#define MX_SPI_SDI 4
#define MX_SPI_SDO 5
#define MX_SPI_SCK 3
#define MX_UART
#define MX_UART_C
#define MX_UART_TX 6
#define MX_UART_RX 7
//Macro function declarations
//Variable declarations
char FCV_BAHAYA;
char FCV_BELL;
char FCV_DATA2;
char FCV_RAIN;
char FCV_DATA3;
char FCV_DATA4;
char FCV_DATA5;
char FCV_DATA6;
char FCV_SECURE;
char FCV_CHILD;
char FCV_HOT;
char FCV_DATA7;
char FCV_DATA8;
char FCV_DATA10;
char FCV_DATA9;
char FCV_SENSOR;
char FCV_DATA11;
char FCV_DATA;
char FCV_DATA12;
char FCV_HEAT;
//Macro implementations
void main()
{
//PIC Initialisation
adcon1 = 0x07;
//Interrupt initialisation code
option_reg = 0xC0;
while( 1 )
{
TRISA = TRISA & 0xfe;
PORTA = PORTA & 0xfe | 0;
TRISA = TRISA | 0xff;
FCV_SENSOR = PORTA;
FCV_DATA = 1 ;
FCV_DATA2 = FCV_SENSOR & FCV_DATA ;
if( FCV_DATA2 == 1 )
{
FCV_HEAT = 9 ;
TRISB = 0x00;
PORTB = FCV_HEAT;
delay_s(1);
TRISB = 0x00;
PORTB = 0;
}
else
{
FCV_DATA3 = 2 ;
FCV_DATA4 = FCV_SENSOR & FCV_DATA3 ;
if( FCV_DATA4 == 2 )
{
FCV_CHILD = 10 ;
TRISB = 0x00;
PORTB = FCV_CHILD;
delay_s(1);
TRISB = 0x00;
PORTB = 0;
}
else
{
FCV_DATA5 = 4 ;
FCV_DATA6 = FCV_SENSOR & FCV_DATA5 ;
}
if( FCV_DATA6 == 4 )
{
FCV_SECURE = 11 ;
TRISB = 0x00;
PORTB = FCV_SECURE;
delay_s(1);
TRISB = 0x00;
PORTB = 0;
}
else
{
FCV_DATA7 = 8 ;
FCV_DATA9 = FCV_SENSOR & FCV_DATA7 ;
if( FCV_DATA9 == 8 )
{
FCV_BELL = 12 ;
TRISB = 0x00;
PORTB = FCV_BELL;
delay_s(1);
TRISB = 0x00;
PORTB = 0;
}
else
{
FCV_DATA10 = 16 ;
FCV_DATA11 = FCV_SENSOR & FCV_DATA10 ;
}
if( FCV_DATA11 == 16 )
{
FCV_RAIN = 13 ;
TRISB = 0x00;
PORTB = FCV_RAIN;
delay_s(1);
TRISB = 0x00;
PORTB = 0;
}
}
}
}
mainendloop: goto mainendloop;
}
hope you could help.