kodavimo padėti

N

nema

Guest
labas!gali kas nors patikrinti šiuos kodus?ir kad tai iš google#
include <pic.h>

//=============== konfigūracijos ==============================
__CONFIG (0x3F32);

//=============== apibrėžti IO uosto =============================
# define lcd PORTC
# define RS RA2
# define E RA5
# define CHANNEL0 0b10000001 / / AN0
# define CHANNEL1 0b10001001 / / AN1
# define Brzęczyk RB5
# define Vane RB4
# define fanB RB3
# define Leda RB2
# define ledB Rb1

//============== FUNKCIJOS PTOTOTYPE =========================
tuščia e_pulse (void);
tuščia vėlavimas (nepasiraðyta trumpas i);
tuščia send_char (unsigned char duomenys);
tuščia send_config (unsigned char duomenys);
tuščia lcd_goto (unsigned char duomenys);
tuščia lcd_clr (void);
tuščia dis_num (nepasiraðyta ilgio duomenys);
tuščia nepadidinimas (nepasiraðyta ilgio duomenys);
tuščia read_adc (void);
Nepasirašytos trumpą read_temp (void);

//==================== PAGRINDINIS =========================== =====
Nepasirašytos trumpą rezultatas;
Nepasirašytos trumpą temp, tempA, tempB;

void main (void)
(
ADRESH = 0; / / aišku, A / D rezultatas
ADRESL = 0; / / aišku, A / D rezultatas

/ / nustatyti ADCON1 Registruotis
ADCON1 = 0b11000101 / / A / D rezultatas pagrįstas,
/ / Configure RA2 ir RA5 kaip skaitmeniniai I / O

TRISA = 0b11011011 / / Configure PORTA I / O kryptis
TRISB = 0b00000000 / / Configure PORTB kaip produkcija
TRISC = 0b00000000 / / Configure PORTC kaip produkcija

PORTA = 0;
PORTB = 0;

o (1)
(
send_config (0b00000001); / / aišku ekrano LCD
send_config (0b00000010); / / Lcd Grįžti į pagrindinį puslapį
send_config (0b00000110); / / įvežimo būdas-cursor padidinti 1
send_config (0b00001100); / / diplay dėl kursorių išjungti ir žymeklio mirksìti off
send_config (0b00111000) / / funkcija nustatyti

lcd_goto (0) / / žymeklį pradėti nuo pradžios

/ / rodyti simbolių LCD
send_char ( '');
send_char ( "T");
send_char ( "E");
send_char ( "M");
send_char ( "P");
send_char ('.');
send_char ( "A");
send_char ('=');

lcd_goto (20) / / žymeklį pasirinkite 2nd linijos LCD

/ / rodyti simbolių LCD
send_char ( '');
send_char ( "T");
send_char ( "E");
send_char ( "M");
send_char ( "P");
send_char ('.');
send_char ( "B");
send_char ('=');

o (1) / / begalinis ciklas
(
/ / jutiklio A
ADCON0 = CHANNEL0 / / CHANNEL1 = 0b10001001
lcd_goto (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Vėsus" border="0" />

;

read_adc ();

temp = read_temp ();
dis_num (temp/10);
send_char ('.');
dis_num (temp% 10);
send_char (0b11011111);
send_char ( "C");
send_char ( '');
send_char ( '');

tempA = temp;

/ / jutiklio B
ADCON0 = CHANNEL1 / / CHANNEL0 = 0b10000001

lcd_goto (2

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Vėsus" border="0" />

;

read_adc ();

temp = read_temp ();
dis_num (temp/10);
send_char ('.');
dis_num (temp% 10);
send_char (0b11011111);
send_char ( "C");
send_char ( '');
send_char ( '');

tempB = temp;

if ((tempA> 400) & & (tempB <350)) / / ********************************** *******
(/ / * LED A ir Fan A aktyvuota tik *
Leda = 1 / / * temperatūra Didesnis nei 40'C *
ledB = 0; / / * ir temperatūros B mažiau nei 35'C *
Vane = 1 / / *****************************************
fanB = 0;
Brzęczyk = 0;
)

else if ((tempB> 350) & & (tempA <400)) / / ********************************* ********
(/ / * LED B ir Fan B aktyvuota tik *
Leda = 0; / / * temperatūrą Mažiau nei 40'C ir *
ledB = 1; / / * temperatūra B didesnis nei 35'C *
Vane = 0; / / *****************************************
fanB = 1;
Brzęczyk = 0;
)

else if ((tempB> 350) & & (tempA> 400)) / / ********************************* ********************
(/ / * Visos LED A & LED B Fan A & Fan B ir buzzer *
ledB = 1; / / * aktyvuota temperatūra Didesnis nei 40'C *
Leda = 1 / / * ir temperatūros B didesnis nei 35'C *
Vane = 1 / / ******************************************** *********
fanB = 1;
Brzęczyk = 1;
)

else if ((tempB <350) & & (tempA <400)) / / ********************************* ********************
(/ / * Visos LED A & LED B Fan A & Fan B ir buzzer *
ledB = 0; / / * disactivated temperatūros Mažiau nei 40'C *
Leda = 0; / / * ir temperatūros B mažiau nei 35'C *
Vane = 0; / / ******************************************** *********
fanB = 0;
Brzęczyk = 0;
)

vėlavimą (2000);

)

)

)//================== Daiktavardis LCD nustatymo ==========================

tuščia send_config (unsigned char duomenys)
(
RS = 0;
lcd = duomenys;
uždelsimas (500);
e_pulse ();
)

tuščia e_pulse (tuščia)
(
E = 1;
uždelsimas (500);
E = 0;
uždelsimas (500);
)

tuščia send_char (unsigned char duomenys)
(
RS = 1;
lcd = duomenys;
uždelsimas (500);
e_pulse ();
)tuščia lcd_goto (unsigned char duomenys)
(
jei (duomenų <16)
(
send_config (0x80 duomenų);
)
kitas
(
Duomenų = duomenys-20;
send_config (0xc0 duomenų);
)
)tuščia lcd_clr (tuščia)
(
RS = 0;
send_config (0x01);
uždelsimas (600);
)tuščia dis_num (nepasiraðyta ilgio duomenys)
(
unsigned char hundred_thousand;
unsigned char ten_thousand;
unsigned char tūkstančių;
unsigned char šimtai;
unsigned char dešimties;

hundred_thousand = data/100000;
Duomenų = duomenų% 100000;
ten_thousand = data/10000;
Duomenų = duomenų% 10000;
tūkst = duomenų / 1000;
Duomenų = duomenų% 1000;
šimtas = duomenų / 100;
Duomenų = duomenų% 100;
dešimties = duomenų / 10;
Duomenų = duomenų% 10;

jei (hundred_thousand> 0)
(
send_char (hundred_thousand 0x30); / / 0x30 papildomas tapti ASCII kodu
send_char (ten_thousand 0x30);
send_char (tūkst. 0x30);
send_char (šimtas 0x30);
send_char (dešimtoji 0x30);
send_char (duomenys 0x30);
)

else if (ten_thousand> 0)
(
send_char (ten_thousand 0x30); / / 0x30 papildomas tapti ASCII kodu
send_char (tūkst. 0x30);
send_char (šimtas 0x30);
send_char (dešimtoji 0x30);
send_char (duomenys 0x30);
)
else if (tūkst.> 0)
(
send_char (tūkst. 0x30); / / 0x30 papildomas tapti ASCII kodu
send_char (šimtas 0x30);
send_char (dešimtoji 0x30);
send_char (duomenys 0x30);
)
else if (šimtas> 0)
(
send_char (šimtas 0x30); / / 0x30 papildomas tapti ASCII kodu
send_char (dešimtoji 0x30);
send_char (duomenys 0x30);
)
else if (dešimtoji> 0)
(
send_char (dešimtoji 0x30); / / 0x30 papildomas tapti ASCII kodu
send_char (duomenys 0x30);
)
dar send_char (duomenys 0x30); / / 0x30 papildomas tapti ASCII kodu
)

tuščia nepadidinimas (nepasiraðyta ilgio duomenys)
(
Nepasirašytos trumpą j;
for (j = 10; j> 0; j -)
(Lcd_goto (32);
Duomenų = Duomenų 1;
dis_num (duomenys);
uždelsimas (10000);
)

)

//================== Daiktavardis ADC =========================

tuščia read_adc (tuščia)
(
Nepasirašytos trumpas i;
Nepasirašytos ilgai result_temp = 0;
for (i = 2000; i> 0; i-= 1) / / vyrių 2000 kartų gauti vidutinė vertė
(
ADGO = 1; / / ADGO yra bitų 2 iš ADCON0 registre
while (ADGO == 1); / / ADC pradžioje, ADGO = 0 po apdaila ADC pažanga
Rezultatas = ADRESH;
Rezultatas = rezultatas <8 / / poslinkis į kairę, 8 bitų
Rezultatas = Rezultatas | ADRESL / / 10 bitų rezultatas ADC

result_temp = result;
)
Rezultatas = result_temp/2000 / / gauti vidutinę vertę

)

Nepasirašytos trumpą read_temp (tuščia)
(
Nepasirašytos trumpą temperatūros;
temp = result;
return temp;

)

//================== Daiktavardis ATIDĖJIMAS ==========================
tuščia vėlavimas (nepasiraðyta trumpas i)
(
for (i> 0, i -);
)i hV statyti sėkmingai, tačiau kai mėginu išbandyti savo komponentas, jis negali dirbti
turėtų būti i įjungti antraštė su "pic16f876a.h" like that?
ar nieko blogo, kad kodas?

 

Welcome to EDABoard.com

Sponsor

Back
Top