S
sharilshukor
Guest
ive got kodu źródłowego, który znalazłem w Internecie.Próbowałem debugowania za pomocą MPLAB, ale jakoś im pokazać błędy.Nie wiem, co im doing wrong Dla Sądzę, że postępujesz zgodnie z prawem czynności.I nie spróbować innych kodów źródłowych ale same komunikaty o błędach wyświetlane.Oto przykład z kodami źródłowymi.2 różne ich kombinacje:
/ / Wyznacza do mikrokontrolera
/ / PIC Funkcje
# 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);
void FCD_LCDDisplay1_Command (char w);
void FCD_LCDDisplay1_RawSend (char w, char mask);
void FCD_LCDDisplay1_Cursor (char x, char y);
void FCD_LCDDisplay1_PrintNumber (char liczba);
void FCD_LCDDisplay7_Start ();
void FCD_LCDDisplay7_Clear ();
void FCD_LCDDisplay7_PrintASCII (char);
void FCD_LCDDisplay7_Command (char w);
void FCD_LCDDisplay7_RawSend (char w, char mask);
void FCD_LCDDisplay7_Cursor (char x, char y);
void FCD_LCDDisplay7_PrintNumber (char liczba);
void FCD_LCDDisplay1_Start ()
(
(status, Ep0) set_bit;
TRISB = TRISB & 0xC0;
(status, Ep0) clear_bit;
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)
(
FCD_LCDDisplay1_RawSend (Znak, 0x10);
)
void FCD_LCDDisplay1_Command (char w)
(
FCD_LCDDisplay1_RawSend (w, 0);
)
void FCD_LCDDisplay1_RawSend (char w, char mask)
(
unsigned char pt;
pt = ((w>> 4) & 0x0f) | maska;
PT = Portugalia | (PORTB & 0xC0);
PORTB = pt; delay_ms (1);
set_bit (PORTB, 0x05);
delay_ms (1);
clear_bit (PORTB, 0x05);
pt = (W & 0x0f) | maska;
PT = Portugalia | (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;
w przeciwnym razie
y = 0xC0;
FCD_LCDDisplay1_Command (y x);
)
void FCD_LCDDisplay1_PrintNumber (char liczba)
(
if (((Number/100)% 10) = 0)
(
FCD_LCDDisplay1_RawSend (0x30 ((Number/100)% 10), 0x10);
FCD_LCDDisplay1_RawSend (0x30 ((Number/10)% 10), 0x10);
)
w przeciwnym razie
(
if (((Number/10)% 10) = 0)
(
FCD_LCDDisplay1_RawSend (0x30 ((Number/10)% 10), 0x10);
)
)
FCD_LCDDisplay1_RawSend (0x30 (Number 10%), 0x10);
)
void FCD_LCDDisplay7_Start ()
(
(status, Ep0) set_bit;
TRISB = TRISB & 0xC0;
(status, Ep0) clear_bit;
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)
(
FCD_LCDDisplay7_RawSend (Znak, 0x10);
)
void FCD_LCDDisplay7_Command (char w)
(
FCD_LCDDisplay7_RawSend (w, 0);
)
void FCD_LCDDisplay7_RawSend (char w, char mask)
(
unsigned char pt;
pt = ((w>> 4) & 0x0f) | maska;
PT = Portugalia | (PORTB & 0xC0);
PORTB = pt; delay_ms (1);
set_bit (PORTB, 0x05);
delay_ms (1);
clear_bit (PORTB, 0x05);
pt = (W & 0x0f) | maska;
PT = Portugalia | (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;
w przeciwnym razie
y = 0xC0;
FCD_LCDDisplay7_Command (y x);
)
void FCD_LCDDisplay7_PrintNumber (char liczba)
(
if (((Number/100)% 10) = 0)
(
FCD_LCDDisplay7_RawSend (0x30 ((Number/100)% 10), 0x10);
FCD_LCDDisplay7_RawSend (0x30 ((Number/10)% 10), 0x10);
)
w przeciwnym razie
(
if (((Number/10)% 10) = 0)
(
FCD_LCDDisplay7_RawSend (0x30 ((Number/10)% 10), 0x10);
)
)
FCD_LCDDisplay7_RawSend (0x30 (Number 10%), 0x10);
)
/ / Deklaracje funkcji makro
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 ();
/ / Deklaracje zmiennych
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;
/ / Implementacji Makro
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 ( '');
FCD_LCDDisplay1_PrintASCII ( 'N');
FCD_LCDDisplay1_PrintASCII ( '');
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 ( '');
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 ( '');
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 ( '');
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 ( '');
FCD_LCDDisplay7_PrintASCII ( "R");
FCD_LCDDisplay7_PrintASCII ( '');
FCD_LCDDisplay7_PrintASCII ( '');
FCD_LCDDisplay7_PrintASCII ( "C");
FCD_LCDDisplay7_PrintASCII ( "T");
FCD_LCDDisplay7_PrintASCII ( 'I');
FCD_LCDDisplay7_PrintASCII ( 'V');
FCD_LCDDisplay7_PrintASCII ( '');
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 Inicjalizacja
/ / Kod inicjalizacji przerwań
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;
)
w przeciwnym razie
(
if (FCV_A == 2)
(
FCV_VIBRATOR = 64;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
PORTB = PORTB & 0xbf | 0x40;
w przeciwnym razie
PORTB = PORTB & 0xbf;
FCM_CHILD ();
TRISB = 0x00;
PORTB = 0;
)
w przeciwnym razie
(
if (FCV_A == 3)
(
FCV_VIBRATOR = 64;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
PORTB = PORTB & 0xbf | 0x40;
w przeciwnym razie
PORTB = PORTB & 0xbf;
FCM_SECURE ();
TRISB = 0x00;
PORTB = 0;
)
w przeciwnym razie
(
if (FCV_A == 4)
(
FCV_VIBRATOR = 64;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
PORTB = PORTB & 0xbf | 0x40;
w przeciwnym razie
PORTB = PORTB & 0xbf;
FCM_BELL ();
TRISB = 0x00;
PORTB = 0;
)
w przeciwnym razie
(
if (FCV_A == 5)
(
FCV_VIBRATOR = 64;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
PORTB = PORTB & 0xbf | 0x40;
w przeciwnym razie
PORTB = PORTB & 0xbf;
FCM_HUJAN ();
TRISB = 0x00;
PORTB = 0;
)
)
)
)
)
mainendloop: mainendloop goto;
)
void interrupt (void)
(
)
/ Określa dla mikrokontrolera
char PORTC (at) 0x07;
char TRISC (at) 0x87;
char PORTD (at) 0x08;
char TRISD (at) 0x88;
char PORTE (at) 0x09;
char TRISE (at) 0x89;
/ / PIC Funkcje
# 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
/ / Deklaracje funkcji makro
/ / Deklaracje zmiennych
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;
/ / Implementacji Makro
void main ()
(
/ / PIC Inicjalizacja
adcon1 = 0x07;
/ / Kod inicjalizacji przerwań
option_reg = 0xC0;
while (1)
(
Trisa = Trisa i 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;
)
w przeciwnym razie
(
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;
)
w przeciwnym razie
(
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;
)
w przeciwnym razie
(
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;
)
w przeciwnym razie
(
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: mainendloop goto;
)
nadzieję, że może pomóc.
/ / Wyznacza do mikrokontrolera
/ / PIC Funkcje
# 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);
void FCD_LCDDisplay1_Command (char w);
void FCD_LCDDisplay1_RawSend (char w, char mask);
void FCD_LCDDisplay1_Cursor (char x, char y);
void FCD_LCDDisplay1_PrintNumber (char liczba);
void FCD_LCDDisplay7_Start ();
void FCD_LCDDisplay7_Clear ();
void FCD_LCDDisplay7_PrintASCII (char);
void FCD_LCDDisplay7_Command (char w);
void FCD_LCDDisplay7_RawSend (char w, char mask);
void FCD_LCDDisplay7_Cursor (char x, char y);
void FCD_LCDDisplay7_PrintNumber (char liczba);
void FCD_LCDDisplay1_Start ()
(
(status, Ep0) set_bit;
TRISB = TRISB & 0xC0;
(status, Ep0) clear_bit;
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)
(
FCD_LCDDisplay1_RawSend (Znak, 0x10);
)
void FCD_LCDDisplay1_Command (char w)
(
FCD_LCDDisplay1_RawSend (w, 0);
)
void FCD_LCDDisplay1_RawSend (char w, char mask)
(
unsigned char pt;
pt = ((w>> 4) & 0x0f) | maska;
PT = Portugalia | (PORTB & 0xC0);
PORTB = pt; delay_ms (1);
set_bit (PORTB, 0x05);
delay_ms (1);
clear_bit (PORTB, 0x05);
pt = (W & 0x0f) | maska;
PT = Portugalia | (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;
w przeciwnym razie
y = 0xC0;
FCD_LCDDisplay1_Command (y x);
)
void FCD_LCDDisplay1_PrintNumber (char liczba)
(
if (((Number/100)% 10) = 0)
(
FCD_LCDDisplay1_RawSend (0x30 ((Number/100)% 10), 0x10);
FCD_LCDDisplay1_RawSend (0x30 ((Number/10)% 10), 0x10);
)
w przeciwnym razie
(
if (((Number/10)% 10) = 0)
(
FCD_LCDDisplay1_RawSend (0x30 ((Number/10)% 10), 0x10);
)
)
FCD_LCDDisplay1_RawSend (0x30 (Number 10%), 0x10);
)
void FCD_LCDDisplay7_Start ()
(
(status, Ep0) set_bit;
TRISB = TRISB & 0xC0;
(status, Ep0) clear_bit;
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)
(
FCD_LCDDisplay7_RawSend (Znak, 0x10);
)
void FCD_LCDDisplay7_Command (char w)
(
FCD_LCDDisplay7_RawSend (w, 0);
)
void FCD_LCDDisplay7_RawSend (char w, char mask)
(
unsigned char pt;
pt = ((w>> 4) & 0x0f) | maska;
PT = Portugalia | (PORTB & 0xC0);
PORTB = pt; delay_ms (1);
set_bit (PORTB, 0x05);
delay_ms (1);
clear_bit (PORTB, 0x05);
pt = (W & 0x0f) | maska;
PT = Portugalia | (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;
w przeciwnym razie
y = 0xC0;
FCD_LCDDisplay7_Command (y x);
)
void FCD_LCDDisplay7_PrintNumber (char liczba)
(
if (((Number/100)% 10) = 0)
(
FCD_LCDDisplay7_RawSend (0x30 ((Number/100)% 10), 0x10);
FCD_LCDDisplay7_RawSend (0x30 ((Number/10)% 10), 0x10);
)
w przeciwnym razie
(
if (((Number/10)% 10) = 0)
(
FCD_LCDDisplay7_RawSend (0x30 ((Number/10)% 10), 0x10);
)
)
FCD_LCDDisplay7_RawSend (0x30 (Number 10%), 0x10);
)
/ / Deklaracje funkcji makro
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 ();
/ / Deklaracje zmiennych
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;
/ / Implementacji Makro
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 ( '');
FCD_LCDDisplay1_PrintASCII ( 'N');
FCD_LCDDisplay1_PrintASCII ( '');
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 ( '');
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 ( '');
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 ( '');
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 ( '');
FCD_LCDDisplay7_PrintASCII ( "R");
FCD_LCDDisplay7_PrintASCII ( '');
FCD_LCDDisplay7_PrintASCII ( '');
FCD_LCDDisplay7_PrintASCII ( "C");
FCD_LCDDisplay7_PrintASCII ( "T");
FCD_LCDDisplay7_PrintASCII ( 'I');
FCD_LCDDisplay7_PrintASCII ( 'V');
FCD_LCDDisplay7_PrintASCII ( '');
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 Inicjalizacja
/ / Kod inicjalizacji przerwań
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;
)
w przeciwnym razie
(
if (FCV_A == 2)
(
FCV_VIBRATOR = 64;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
PORTB = PORTB & 0xbf | 0x40;
w przeciwnym razie
PORTB = PORTB & 0xbf;
FCM_CHILD ();
TRISB = 0x00;
PORTB = 0;
)
w przeciwnym razie
(
if (FCV_A == 3)
(
FCV_VIBRATOR = 64;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
PORTB = PORTB & 0xbf | 0x40;
w przeciwnym razie
PORTB = PORTB & 0xbf;
FCM_SECURE ();
TRISB = 0x00;
PORTB = 0;
)
w przeciwnym razie
(
if (FCV_A == 4)
(
FCV_VIBRATOR = 64;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
PORTB = PORTB & 0xbf | 0x40;
w przeciwnym razie
PORTB = PORTB & 0xbf;
FCM_BELL ();
TRISB = 0x00;
PORTB = 0;
)
w przeciwnym razie
(
if (FCV_A == 5)
(
FCV_VIBRATOR = 64;
TRISB = TRISB & 0xbf;
if (FCV_VIBRATOR)
PORTB = PORTB & 0xbf | 0x40;
w przeciwnym razie
PORTB = PORTB & 0xbf;
FCM_HUJAN ();
TRISB = 0x00;
PORTB = 0;
)
)
)
)
)
mainendloop: mainendloop goto;
)
void interrupt (void)
(
)
/ Określa dla mikrokontrolera
char PORTC (at) 0x07;
char TRISC (at) 0x87;
char PORTD (at) 0x08;
char TRISD (at) 0x88;
char PORTE (at) 0x09;
char TRISE (at) 0x89;
/ / PIC Funkcje
# 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
/ / Deklaracje funkcji makro
/ / Deklaracje zmiennych
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;
/ / Implementacji Makro
void main ()
(
/ / PIC Inicjalizacja
adcon1 = 0x07;
/ / Kod inicjalizacji przerwań
option_reg = 0xC0;
while (1)
(
Trisa = Trisa i 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;
)
w przeciwnym razie
(
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;
)
w przeciwnym razie
(
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;
)
w przeciwnym razie
(
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;
)
w przeciwnym razie
(
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: mainendloop goto;
)
nadzieję, że może pomóc.