C kód pre PIC16F877

T

teongkia

Guest
Ahoj mám tento kód.Snažil som sa to v mikrokontroléru, ale nefungoval.V súčasnej dobe som s autom zabezpečenia projektu.Čo chcem, je, keď je niektorý z čidla úhrade (vysoké napätie vo vstupných pinov), bude mať vysoké napätie na výstupe sirény pin a volajte vopred vlastníka číslo.Môže niekto skontrolovať to a dajte mi vedieť, čo je problém? Vďaka.
Kód:

/ / Preprocesor

# Include <16F877.H>

Poistky # HS, NOWDT, NOLVP

# USE DELAY (hodiny = 12000000)

# USE RS232 (baud = 9600, parity = N, xmit = PIN_C6, HPM = PIN_C7, bitov = 8)/ / Definovanie pin

# Define SIREN PIN_B5

# Define CL1 PIN_B4

# Define CL2 PIN_B3

# Define ULTRA PIN_A0

# Define TOUCH PIN_A1

# Define LIGHT PIN_A2

# Define DOOR PIN_A3

# Define REMOTE PIN_A4/ / Globálne deklarácie

int A, B, C, D, RC, EN;

int RC1 [2];

char SENSOR1, SENSOR2, SENSOR3, SENSOR4, SENSOR5, TEMP;

char P [4];

char s [51];/ / Zvuk sirény

void SIREN_ON ()

(

OUTPUT_HIGH (siréna);

DISABLE_INTERRUPTS (INT_RTCC);

)

/ / Uvoľniť dvere

void Unlock ()

(

OUTPUT_HIGH (CL1);

OUTPUT_LOW (CL2);

)

/ / Lock dvere

void LOCK ()

(

OUTPUT_LOW (CL1);

OUTPUT_HIGH (CL2);

)/ / Ultrazvukový senzor spúšťa

void SEND_CALL1 ()

(

Printf ( "ATD0123456789; \ n \ r");

)

/ / Touch senzor spúšťa

void SEND_CALL2 ()

(

Printf ( "ATD0123456789; \ n \ r");

)

/ / Svetelný senzor spúšťa

void SEND_CALL3 ()

(

Printf ( "ATD0123456789; \ n \ r");

)

/ / Dverný senzor spúšťa

void SEND_cALL4 ()

(

Printf ( "ATD0123456789; \ n \ r");

)

/ / Centrální zámek spustená

void SEND_CALL5 ()

(

Printf ( "ATD0123456789; \ n \ r");

)

# INT_RTCC

T0 ()

(

SENSOR1 = INPUT (ULTRA);

SENSOR2 = INPUT (TOUCH);

SENSOR3 = INPUT (LIGHT);

SENSOR4 = INPUT (dvere);

SENSOR5 = INPUT (CL1);

if (SENSOR1)

(

SEND_CALL1 ();

SIREN_ON ();

)

else if (SENSOR2)

(

SEND_CALL2 ();

SIREN_ON ();

)

else if (SENSOR3)

(

SEND_CALL3 ();

SIREN_ON ();

)

else if (SENSOR4)

(

SEND_CALL4 ();

SIREN_ON ();

)

else if (SENSOR5)

(

SEND_CALL5 ();

SIREN_ON ();

)

)# INT_RDA

SERIAL ()

(

/ / Nepovinné

if (kbhit ())

(

TEMP = getc ();

if (<50)

(

S [] = temp;

;

)

iné

(

= 0;

S [] = temp;

;

)

)

DELAY_MS (100);

návrat, S;

)/ / Hlavné funkcie

void main ()

(SET_RTCC (0);

SETUP_COUNTERS (RTCC_INTERNAL, RTCC_DIV_64);

EXT_INT_EDGE (0, H_TO_L);

ENABLE_INTERRUPTS (INT_EXT);

ENABLE_INTERRUPTS (INT_RDA);

ENABLE_INTERRUPTS (GLOBAL);

ENABLE_INTERRUPTS (INT_RTCC);

SET_TRIS_A (0x3F);

SET_TRIS_B (0x01);

/ / SET_TRIS_C (0x0F);

SET_TRIS_D (0x00);DELAY_MS (5000);Printf ( "\ n \ Ratz \ n \ r");

DELAY_MS (500);

Printf ( "\ n \ RAT \ n \ r");

DELAY_MS (500);

Printf ( "\ n \ RAT CNMI = 2,3,0,0,0 \ n \ r");

DELAY_MS (500);SENSOR1 == 0;

SENSOR2 == 0;

SENSOR3 == 0;

SENSOR4 == 0;

SENSOR5 == 0;

= 0;

B = 0;

C = 0;

D = 0;

EN = 0;

RC = 0;

UNLOCK ();)

 
Pls uveďte prekladač, ktorý používate, a pokiaľ možno pls priložiť schému tak, že môžem skúsiť v Proteus.

 
I'm using CCS C Compiler.Vstupné zariadenia sú snímače, kým výstupné zariadenia sú pripojené na MAX232, ktoré má Sony Ericsson T630 a aj siréna.Hope you can help me out.Vďaka. [/ Img]

 

Welcome to EDABoard.com

Sponsor

Back
Top