S
sharilshukor
Guest
He aconseguir un codi font que he trobat en línia.Vaig tractar de depuració usant MPLAB, però d'alguna manera mostra errors.No estic segur del que sóc fent malament perquè crec que he seguit els passos correctes.He intentat alguns codis font, però altres missatges d'error encara mateixa mostra.aquí està l'exemple dels codis font.2 unitats diferents:
/ / Defineix per microcontrolador
/ / Funcions de PIC
# Pragma CLOCK_FREQ 3276800
# Define P16F84A
# Include <system.h>
# Define MX_EE
# Define MX_EE_TYPE1
const char MX_EE_SIZE = 64;
FCD_LCDDisplay1_Start void ();
FCD_LCDDisplay1_Clear void ();
void FCD_LCDDisplay1_PrintASCII (caràcters char);
void FCD_LCDDisplay1_Command (char in);
void FCD_LCDDisplay1_RawSend (char a, la màscara de char);
void FCD_LCDDisplay1_Cursor (char x, char);
void FCD_LCDDisplay1_PrintNumber (char Número);
FCD_LCDDisplay7_Start void ();
FCD_LCDDisplay7_Clear void ();
void FCD_LCDDisplay7_PrintASCII (caràcters char);
void FCD_LCDDisplay7_Command (char in);
void FCD_LCDDisplay7_RawSend (char a, la màscara de char);
void FCD_LCDDisplay7_Cursor (char x, char);
void FCD_LCDDisplay7_PrintNumber (char Número);
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 (caràcters char)
(
FCD_LCDDisplay1_RawSend (caràcters, 0x10);
)
void FCD_LCDDisplay1_Command (char en)
(
FCD_LCDDisplay1_RawSend (a, 0);
)
void FCD_LCDDisplay1_RawSend (char a, la màscara de char)
(
pt unsigned char;
pt = ((a>> 4) & 0x0F) | màscara;
PT = PT | (Portbo & 0xC0);
Portbo = PT; delay_ms (1);
(set_bit Portbo, 0x05);
delay_ms (1);
(clear_bit Portbo, 0x05);
pt = (in & 0x0F) | màscara;
PT = PT | (Portbo & 0xC0);
Portbo = PT;
delay_ms (1);
(set_bit Portbo, 0x05);
delay_ms (1);
(clear_bit Portbo, 0x05);
delay_ms (1);
)
void FCD_LCDDisplay1_Cursor (char x, char)
(
if (i == 0)
i = 0x80;
una mica més
i = 0xC0;
FCD_LCDDisplay1_Command (y x);
)
void FCD_LCDDisplay1_PrintNumber (char Número)
(
if (((número/100)% 10)! = 0)
(
FCD_LCDDisplay1_RawSend (0x30 ((número/100)% 10), 0x10);
FCD_LCDDisplay1_RawSend (0x30 ((Number/10)% 10), 0x10);
)
una mica més
(
if (((Number/10)% 10)! = 0)
(
FCD_LCDDisplay1_RawSend (0x30 ((Number/10)% 10), 0x10);
)
)
FCD_LCDDisplay1_RawSend (0x30 (% N º 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 (caràcters char)
(
FCD_LCDDisplay7_RawSend (caràcters, 0x10);
)
void FCD_LCDDisplay7_Command (char en)
(
FCD_LCDDisplay7_RawSend (a, 0);
)
void FCD_LCDDisplay7_RawSend (char a, la màscara de char)
(
pt unsigned char;
pt = ((al>> 4) & 0x0F) | máscara;
PT = PT | (Portbo & 0xC0);
Portbo = PT; delay_ms (1);
(set_bit Portbo, 0x05);
delay_ms (1);
(clear_bit Portbo, 0x05);
pt = (in & 0x0F) | màscara;
PT = PT | (Portbo & 0xC0);
Portbo = PT;
delay_ms (1);
(set_bit Portbo, 0x05);
delay_ms (1);
(clear_bit Portbo, 0x05);
delay_ms (1);
)
void FCD_LCDDisplay7_Cursor (char x, char)
(
if (i == 0)
i = 0x80;
una mica més
i = 0xC0;
FCD_LCDDisplay7_Command (y x);
)
void FCD_LCDDisplay7_PrintNumber (char Número)
(
if (((número/100)% 10)! = 0)
(
FCD_LCDDisplay7_RawSend (0x30 ((número/100)% 10), 0x10);
FCD_LCDDisplay7_RawSend (0x30 ((Number/10)% 10), 0x10);
)
una mica més
(
if (((Number/10)% 10)! = 0)
(
FCD_LCDDisplay7_RawSend (0x30 ((Number/10)% 10), 0x10);
)
)
FCD_LCDDisplay7_RawSend (0x30 (% N º 10), 0x10);
)
/ / Declaracions de funció Macro
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 void ();
/ / La declaració de variables
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 char;
/ / Implementacions Macro
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;
Anar 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;
Anar 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;
Anar 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;
Anar 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 ( 'I');
FCD_LCDDisplay7_PrintASCII ('');
FCD_LCDDisplay7_PrintASCII ( 'C');
FCD_LCDDisplay7_PrintASCII ( 'R');
FCD_LCDDisplay7_PrintASCII ( 'I');
delay_ms (200);
FCD_LCDDisplay7_Clear ();
= FCV_INDEX FCV_INDEX 1;
Anar 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;
Anar FCC_Main_A;
)
)
void main ()
(
/ / Inicialització PIC
/ / Codi d'inicialització d'interrupció
OPTION_REG = 0xC0;
while (1)
(
TRIS TRIS = | 0xff;
FCV_A = PORTA;
if (FCV_A == 1)
(
FCV_VIBRATOR = 64;
TRISB = 0x00;
Portbo = FCV_VIBRATOR;
FCM_API ();
TRISB = 0x00;
Portbo = 0;
)
una mica més
(
if (FCV_A == 2)
(
FCV_VIBRATOR = 64;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
Portbo = Portbo & 0xbf | 0x40;
una mica més
Portbo = Portbo & 0xbf;
FCM_CHILD ();
TRISB = 0x00;
Portbo = 0;
)
una mica més
(
if (FCV_A == 3)
(
FCV_VIBRATOR = 64;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
Portbo = Portbo & 0xbf | 0x40;
una mica més
Portbo = Portbo & 0xbf;
FCM_SECURE ();
TRISB = 0x00;
Portbo = 0;
)
una mica més
(
if (FCV_A == 4)
(
FCV_VIBRATOR = 64;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
Portbo = Portbo & 0xbf | 0x40;
una mica més
Portbo = Portbo & 0xbf;
FCM_BELL ();
TRISB = 0x00;
Portbo = 0;
)
una mica més
(
if (FCV_A == 5)
(
FCV_VIBRATOR = 64;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
Portbo = Portbo & 0xbf | 0x40;
una mica més
Portbo = Portbo & 0xbf;
FCM_HUJAN ();
TRISB = 0x00;
Portbo = 0;
)
)
)
)
)
mainendloop: mainendloop goto;
)
void interrupt (void)
(
)
/ Defineix per microcontrolador
PORTC char (a) 0x07;
Trisca char (a) 0x87;
PORTD char (a) 0x08;
TRISD char (a) 0x88;
PORT char (a) 0x09;
char tris (a) 0x89;
/ / Funcions de PIC
# 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
/ / Declaracions de funció Macro
/ / La declaració de variables
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 char;
/ / Implementacions Macro
void main ()
(
/ / Inicialització PIC
ADCON1 = 0x07;
/ / Codi d'inicialització d'interrupció
OPTION_REG = 0xC0;
while (1)
(
TRIS TRIS = & 0xfe;
PORTA PORTA = & 0xFE | 0;
TRIS TRIS = | 0xff;
FCV_SENSOR = PORTA;
FCV_DATA = 1;
FCV_DATA2 = FCV_SENSOR & FCV_DATA;
if (FCV_DATA2 == 1)
(
FCV_HEAT = 9;
TRISB = 0x00;
Portbo = FCV_HEAT;
delay_s (1);
TRISB = 0x00;
Portbo = 0;
)
una mica més
(
FCV_DATA3 = 2;
FCV_DATA4 = FCV_SENSOR & FCV_DATA3;
if (FCV_DATA4 == 2)
(
FCV_CHILD = 10;
TRISB = 0x00;
Portbo = FCV_CHILD;
delay_s (1);
TRISB = 0x00;
Portbo = 0;
)
una mica més
(
FCV_DATA5 = 4;
FCV_DATA6 = FCV_SENSOR & FCV_DATA5;
)
if (FCV_DATA6 == 4)
(
FCV_SECURE = 11;
TRISB = 0x00;
Portbo = FCV_SECURE;
delay_s (1);
TRISB = 0x00;
Portbo = 0;
)
una mica més
(
FCV_DATA7 = 8;
FCV_DATA9 = FCV_SENSOR & FCV_DATA7;
if (FCV_DATA9 == 8)
(
FCV_BELL = 12;
TRISB = 0x00;
Portbo = FCV_BELL;
delay_s (1);
TRISB = 0x00;
Portbo = 0;
)
una mica més
(
FCV_DATA10 = 16;
FCV_DATA11 = FCV_SENSOR & FCV_DATA10;
)
if (FCV_DATA11 == 16)
(
FCV_RAIN = 13;
TRISB = 0x00;
Portbo = FCV_RAIN;
delay_s (1);
TRISB = 0x00;
Portbo = 0;
)
)
)
)
mainendloop: mainendloop goto;
)
Esperem que podria ajudar.
/ / Defineix per microcontrolador
/ / Funcions de PIC
# Pragma CLOCK_FREQ 3276800
# Define P16F84A
# Include <system.h>
# Define MX_EE
# Define MX_EE_TYPE1
const char MX_EE_SIZE = 64;
FCD_LCDDisplay1_Start void ();
FCD_LCDDisplay1_Clear void ();
void FCD_LCDDisplay1_PrintASCII (caràcters char);
void FCD_LCDDisplay1_Command (char in);
void FCD_LCDDisplay1_RawSend (char a, la màscara de char);
void FCD_LCDDisplay1_Cursor (char x, char);
void FCD_LCDDisplay1_PrintNumber (char Número);
FCD_LCDDisplay7_Start void ();
FCD_LCDDisplay7_Clear void ();
void FCD_LCDDisplay7_PrintASCII (caràcters char);
void FCD_LCDDisplay7_Command (char in);
void FCD_LCDDisplay7_RawSend (char a, la màscara de char);
void FCD_LCDDisplay7_Cursor (char x, char);
void FCD_LCDDisplay7_PrintNumber (char Número);
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 (caràcters char)
(
FCD_LCDDisplay1_RawSend (caràcters, 0x10);
)
void FCD_LCDDisplay1_Command (char en)
(
FCD_LCDDisplay1_RawSend (a, 0);
)
void FCD_LCDDisplay1_RawSend (char a, la màscara de char)
(
pt unsigned char;
pt = ((a>> 4) & 0x0F) | màscara;
PT = PT | (Portbo & 0xC0);
Portbo = PT; delay_ms (1);
(set_bit Portbo, 0x05);
delay_ms (1);
(clear_bit Portbo, 0x05);
pt = (in & 0x0F) | màscara;
PT = PT | (Portbo & 0xC0);
Portbo = PT;
delay_ms (1);
(set_bit Portbo, 0x05);
delay_ms (1);
(clear_bit Portbo, 0x05);
delay_ms (1);
)
void FCD_LCDDisplay1_Cursor (char x, char)
(
if (i == 0)
i = 0x80;
una mica més
i = 0xC0;
FCD_LCDDisplay1_Command (y x);
)
void FCD_LCDDisplay1_PrintNumber (char Número)
(
if (((número/100)% 10)! = 0)
(
FCD_LCDDisplay1_RawSend (0x30 ((número/100)% 10), 0x10);
FCD_LCDDisplay1_RawSend (0x30 ((Number/10)% 10), 0x10);
)
una mica més
(
if (((Number/10)% 10)! = 0)
(
FCD_LCDDisplay1_RawSend (0x30 ((Number/10)% 10), 0x10);
)
)
FCD_LCDDisplay1_RawSend (0x30 (% N º 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 (caràcters char)
(
FCD_LCDDisplay7_RawSend (caràcters, 0x10);
)
void FCD_LCDDisplay7_Command (char en)
(
FCD_LCDDisplay7_RawSend (a, 0);
)
void FCD_LCDDisplay7_RawSend (char a, la màscara de char)
(
pt unsigned char;
pt = ((al>> 4) & 0x0F) | máscara;
PT = PT | (Portbo & 0xC0);
Portbo = PT; delay_ms (1);
(set_bit Portbo, 0x05);
delay_ms (1);
(clear_bit Portbo, 0x05);
pt = (in & 0x0F) | màscara;
PT = PT | (Portbo & 0xC0);
Portbo = PT;
delay_ms (1);
(set_bit Portbo, 0x05);
delay_ms (1);
(clear_bit Portbo, 0x05);
delay_ms (1);
)
void FCD_LCDDisplay7_Cursor (char x, char)
(
if (i == 0)
i = 0x80;
una mica més
i = 0xC0;
FCD_LCDDisplay7_Command (y x);
)
void FCD_LCDDisplay7_PrintNumber (char Número)
(
if (((número/100)% 10)! = 0)
(
FCD_LCDDisplay7_RawSend (0x30 ((número/100)% 10), 0x10);
FCD_LCDDisplay7_RawSend (0x30 ((Number/10)% 10), 0x10);
)
una mica més
(
if (((Number/10)% 10)! = 0)
(
FCD_LCDDisplay7_RawSend (0x30 ((Number/10)% 10), 0x10);
)
)
FCD_LCDDisplay7_RawSend (0x30 (% N º 10), 0x10);
)
/ / Declaracions de funció Macro
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 void ();
/ / La declaració de variables
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 char;
/ / Implementacions Macro
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;
Anar 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;
Anar 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;
Anar 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;
Anar 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 ( 'I');
FCD_LCDDisplay7_PrintASCII ('');
FCD_LCDDisplay7_PrintASCII ( 'C');
FCD_LCDDisplay7_PrintASCII ( 'R');
FCD_LCDDisplay7_PrintASCII ( 'I');
delay_ms (200);
FCD_LCDDisplay7_Clear ();
= FCV_INDEX FCV_INDEX 1;
Anar 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;
Anar FCC_Main_A;
)
)
void main ()
(
/ / Inicialització PIC
/ / Codi d'inicialització d'interrupció
OPTION_REG = 0xC0;
while (1)
(
TRIS TRIS = | 0xff;
FCV_A = PORTA;
if (FCV_A == 1)
(
FCV_VIBRATOR = 64;
TRISB = 0x00;
Portbo = FCV_VIBRATOR;
FCM_API ();
TRISB = 0x00;
Portbo = 0;
)
una mica més
(
if (FCV_A == 2)
(
FCV_VIBRATOR = 64;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
Portbo = Portbo & 0xbf | 0x40;
una mica més
Portbo = Portbo & 0xbf;
FCM_CHILD ();
TRISB = 0x00;
Portbo = 0;
)
una mica més
(
if (FCV_A == 3)
(
FCV_VIBRATOR = 64;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
Portbo = Portbo & 0xbf | 0x40;
una mica més
Portbo = Portbo & 0xbf;
FCM_SECURE ();
TRISB = 0x00;
Portbo = 0;
)
una mica més
(
if (FCV_A == 4)
(
FCV_VIBRATOR = 64;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
Portbo = Portbo & 0xbf | 0x40;
una mica més
Portbo = Portbo & 0xbf;
FCM_BELL ();
TRISB = 0x00;
Portbo = 0;
)
una mica més
(
if (FCV_A == 5)
(
FCV_VIBRATOR = 64;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
Portbo = Portbo & 0xbf | 0x40;
una mica més
Portbo = Portbo & 0xbf;
FCM_HUJAN ();
TRISB = 0x00;
Portbo = 0;
)
)
)
)
)
mainendloop: mainendloop goto;
)
void interrupt (void)
(
)
/ Defineix per microcontrolador
PORTC char (a) 0x07;
Trisca char (a) 0x87;
PORTD char (a) 0x08;
TRISD char (a) 0x88;
PORT char (a) 0x09;
char tris (a) 0x89;
/ / Funcions de PIC
# 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
/ / Declaracions de funció Macro
/ / La declaració de variables
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 char;
/ / Implementacions Macro
void main ()
(
/ / Inicialització PIC
ADCON1 = 0x07;
/ / Codi d'inicialització d'interrupció
OPTION_REG = 0xC0;
while (1)
(
TRIS TRIS = & 0xfe;
PORTA PORTA = & 0xFE | 0;
TRIS TRIS = | 0xff;
FCV_SENSOR = PORTA;
FCV_DATA = 1;
FCV_DATA2 = FCV_SENSOR & FCV_DATA;
if (FCV_DATA2 == 1)
(
FCV_HEAT = 9;
TRISB = 0x00;
Portbo = FCV_HEAT;
delay_s (1);
TRISB = 0x00;
Portbo = 0;
)
una mica més
(
FCV_DATA3 = 2;
FCV_DATA4 = FCV_SENSOR & FCV_DATA3;
if (FCV_DATA4 == 2)
(
FCV_CHILD = 10;
TRISB = 0x00;
Portbo = FCV_CHILD;
delay_s (1);
TRISB = 0x00;
Portbo = 0;
)
una mica més
(
FCV_DATA5 = 4;
FCV_DATA6 = FCV_SENSOR & FCV_DATA5;
)
if (FCV_DATA6 == 4)
(
FCV_SECURE = 11;
TRISB = 0x00;
Portbo = FCV_SECURE;
delay_s (1);
TRISB = 0x00;
Portbo = 0;
)
una mica més
(
FCV_DATA7 = 8;
FCV_DATA9 = FCV_SENSOR & FCV_DATA7;
if (FCV_DATA9 == 8)
(
FCV_BELL = 12;
TRISB = 0x00;
Portbo = FCV_BELL;
delay_s (1);
TRISB = 0x00;
Portbo = 0;
)
una mica més
(
FCV_DATA10 = 16;
FCV_DATA11 = FCV_SENSOR & FCV_DATA10;
)
if (FCV_DATA11 == 16)
(
FCV_RAIN = 13;
TRISB = 0x00;
Portbo = FCV_RAIN;
delay_s (1);
TRISB = 0x00;
Portbo = 0;
)
)
)
)
mainendloop: mainendloop goto;
)
Esperem que podria ajudar.