codice esadecimale

I

Intan

Guest
salve!
qualcuno mi può aiutare a convertire il codice al codice esadecimale?
im utilizzando pic 16f876a e HiTech linguaggio C
i hv provato molte volte, ma ancora cant lavoro
grazie in anticipo# include <pic.h>

//=============== configurazione ==============================
__CONFIG (0x3F32);

//=============== definire IO porto =============================
# define PORTC lcd
# define RS RA2
# define E RA5
# define CHANNEL0 0b10000001 / / AN0
# define CHANNEL1 0b10001001 / / AN1

# define Fana RB4
# define fanB Rb3
# define Leda RB2
# define ledB RB1

//============== FUNZIONE PTOTOTYPE =========================
e_pulse nullo (void);
void ritardo (unsigned short i);
void send_char (unsigned char dati);
void send_config (unsigned char dati);
void lcd_goto (unsigned char dati);
lcd_clr nullo (void);
void dis_num (unsigned long dati);
void increment (unsigned long dati);
read_adc nullo (void);
unsigned short read_temp (void);

PRINCIPALI //==================== =========================== =====
unsigned short risultato;
unsigned short temp, Tempa, tempB;

void main (void)
(
ADRESH = 0; / /
eliminiamo A / D risultato
ADRESL = 0; / /
eliminiamo A / D risultato

/ / impostazione ADCON1 Registrati
ADCON1 = 0b11000101; / / A / D risultato giustificato a destra,
/ / Configure RA2 e RA5 come I / O digitali

Trisa = 0b00011011; / / configure PORTA I / O direzione
TRISB = 0b00000000; / / PORTB configurare come produzione
TRISC = 0b00000000; / / configure PORTC come produzione

PORTA = 0;
PORTB = 0;

while (1)
(
send_config (0b00000001); / / chiaro display a LCD
send_config (0b00000010); / / Lcd Torna alla home
send_config (0b00000110); / / modalità di immissione del cursore aumento-1
send_config (0b00001100); / / sul diplay, cursore fuori e cursore lampeggiante off
send_config (0b00111000); / / set di funzioni

lcd_goto (0); / / cursore iniziare
dall'inizio
/ / display LCD sul carattere
send_char ( '');
send_char ( 'T');
send_char ( 'E');
send_char ( 'M');
send_char ( 'P');
send_char ('.');
send_char ( 'A');
send_char ('=');

lcd_goto (20); / / cursore vai alla 2a riga del display LCD

/ / display LCD sul carattere
send_char ( '');
send_char ( 'T');
send_char ( 'E');
send_char ( 'M');
send_char ( 'P');
send_char ('.');
send_char ( 'B');
send_char ('=');

while (1) / / loop infinito
(
/ / Un sensore
ADCON0 = CHANNEL0; / / CHANNEL1 = 0b10001001
lcd_goto (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Fresco" 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;

/ / sensore B
ADCON0 = CHANNEL1; / / CHANNEL0 = 0b10000001

lcd_goto (2

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Fresco" 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 <500)) / / ********************************** *******
(/ / * A e LED Fan A attivato solo per *
Leda = 1; / / * Una temperatura superiore a 40'C *
ledB = 0; / / B * e temperatura inferiore a 50'C *
Fana = 1; / / *****************************************
fanB = 0;

)

else if ((tempB> 400) & & (Tempa <500)) / / ********************************* ********
(/ / * LED Fan B e B attivato solo per *
Leda = 0; / / * Una temperatura inferiore a 40'C e *
ledB = 1; / / B * temperatura superiore a 50'C *
Fana = 0; / / *****************************************
fanB = 1;

)

else if ((tempB> 400) & & (Tempa> 500)) / / ********************************* ********************
(/ / *
I LED LED A & B, Fan Fan A & B *
ledB = 1; / / * per attivare una temperatura superiore a 40'C *
Leda = 1; / / B * e temperatura superiore a 50'C *
Fana = 1; / / ******************************************** *********
fanB = 1;
;
)

else if ((tempB <400) & & (Tempa <500)) / / ********************************* ********************
(/ / *
I LED LED A & B, Fan Fan A & B *
ledB = 0; / / * disattivata per una temperatura inferiore a 40'C *
Leda = 0; / / B * e temperatura inferiore a 50'C *
Fana = 0; / / ******************************************** *********
fanB = 0;

)

ritardo (2000);

)

)

)//================== subroutine LCD impostazione ==========================

void send_config (unsigned char dati)
(
RS = 0;
lcd = dati;
ritardo (500);
e_pulse ();
)

e_pulse nullo (void)
(
E = 1;
ritardo (500);
E = 0;
ritardo (500);
)

void send_char (unsigned char dati)
(
RS = 1;
lcd = dati;
ritardo (500);
e_pulse ();
)void lcd_goto (unsigned char dati)
(
if (dati <16)
(
send_config (0x80 dati);
)
altro
(
dati = dati-20;
send_config (0xC0 dati);
)
)lcd_clr nullo (void)
(
RS = 0;
send_config (0x01);
ritardo (600);
)void dis_num (unsigned long dati)
(
unsigned char hundred_thousand;
unsigned char ten_thousand;
unsigned char migliaia di euro;
unsigned char cento;
unsigned char decimo;

hundred_thousand = data/100000;
dati = dati% 100000;
ten_thousand = data/10000;
dati = dati% 10000;
migliaia di dati = / 1000;
dati = dati 1000%;
centinaia = dati / 100;
dati = 100% dei dati;
decimo = dati / 10;
dati = 10% dei dati;

if (hundred_thousand> 0)
(
send_char (hundred_thousand 0x30); / / 0x30 aggiunto a diventare codice ASCII
send_char (ten_thousand 0x30);
send_char (in migliaia di 0x30);
send_char (cento 0x30);
send_char (decima 0x30);
send_char (dati 0x30);
)

else if (ten_thousand> 0)
(
send_char (ten_thousand 0x30); / / 0x30 aggiunto a diventare codice ASCII
send_char (in migliaia di 0x30);
send_char (cento 0x30);
send_char (decima 0x30);
send_char (dati 0x30);
)
else if (in migliaia di> 0)
(
send_char (in migliaia di 0x30); / / 0x30 aggiunto a diventare codice ASCII
send_char (cento 0x30);
send_char (decima 0x30);
send_char (dati 0x30);
)
else if (cento> 0)
(
send_char (cento 0x30); / / 0x30 aggiunto a diventare codice ASCII
send_char (decima 0x30);
send_char (dati 0x30);
)
else if (decimo> 0)
(
send_char (decima 0x30); / / 0x30 aggiunto a diventare codice ASCII
send_char (dati 0x30);
)
altro send_char (dati 0x30); / / 0x30 aggiunto a diventare codice ASCII
)

void increment (unsigned long dati)
(
unsigned short j;
for (j = 10; j> 0; j -)
(Lcd_goto (32);
dati
1 = dati;
dis_num (dati);
ritardo (10000);
)

)

//================== subroutine ADC =========================

read_adc nullo (void)
(
unsigned short i;
unsigned long result_temp = 0;
for (i = 2000; i> 0; i-= 1) / / loop 2000 volte per ottenere il valore medio
(
ADGO = 1; / / ADGO è il bit 2 del registro ADCON0
while (ADGO == 1) / / inizio ADC, ADGO = 0 finale dopo ADC progressi
risultato = ADRESH;
risultato = risultato <<8 / / spostamento a sinistra di 8 bit
risultato = risultato | ADRESL; / / risultato da 10 bit ADC

result_temp = risultato;
)
risultato = result_temp/2000; / / ottenere il valore medio

)

unsigned short read_temp (void)
(
unsigned short temp;
temp = risultato;
return temp;

)

//================== subroutine DELAY ==========================
void ritardo (unsigned short i)
(
for (; i> 0; i -);
)

 
W ciągu ostatnich dwóch lat astronomowie odkryli ponad 1900 egzoplanet, jednak do tej pory nie dowodów, potwierdzających istnienie pozaziemskiego życia w naszym układzie słonecznym. Przemawiając we wtorek w Waszyngtonie naukowcy NASA omówili prawdopodobieństwo znalezienia życia organicznego w Układzie Słonecznym. Szef naukowców NASA Ellen Stofan p...

Read more...
 

Welcome to EDABoard.com

Sponsor

Back
Top