hex-kode

I

intan

Guest
hei!
kan noen hjelpe meg til å konvertere denne koden til hex koden?
im bruker pic 16f876a og hitech c språk
i hv prøvd mange ganger, men fremdeles skrånende arbeid
takk på forhånd#
include <pic.h>

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

//=============== definere IO port =============================
# define LCD PORTC
# 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

//============== FUNCTION PTOTOTYPE =========================
void e_pulse (void);
void forsinkelse (unsigned kort i);
void send_char (unsigned char data);
void send_config (unsigned char data);
void lcd_goto (unsigned char data);
void lcd_clr (void);
void dis_num (unsigned lang data);
void økning (unsigned lang data);
void read_adc (void);
unsigned short read_temp (void);

//==================== MAIN =========================== =====
unsigned short resultat;
unsigned short temp, tempA, tempB;

void main (void)
(
ADRESH = 0; / / klart A / D resultat
ADRESL = 0; / / klart A / D resultat

/ / setting ADCON1 Registrer
ADCON1 = 0b11000101; / / A / D resultatet rett rettferdiggjøres,
/ /
Configure RA2 og RA5 som digital I / O

TRISA = 0b00011011; / /
configure Porta I/O- retning
TRISB = 0b00000000; / /
configure PORTB som utdata
TRISC = 0b00000000; / /
configure PORTC som utdata

Porta = 0;
PORTB = 0;

mens (1)
(
send_config (0b00000001); / / tømme displayet på LCD
send_config (0b00000010); / / LCD Returner til hjemmesiden
send_config (0b00000110); / / oppføring modus-markøren øke 1
send_config (0b00001100); / / diplay på markøren, og markøren blinker off
send_config (0b00111000); / / funksjon sett

lcd_goto (0); / / markøren starte fra begynnelsen

/ / vise tegn på 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); / / markøren gå til 2dre linje av LCD

/ / vise tegn på LCD
send_char ( '');
send_char ( 'T');
send_char ( 'E');
send_char ( 'M');
send_char ( "P");
send_char ('.');
send_char ( 'B');
send_char ('=');

mens (1) / / uendelig løkke
(
/ / sensor A
ADCON0 = CHANNEL0; / / CHANNEL1 = 0b10001001
lcd_goto (

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

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

lcd_goto (2

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Kjølig" 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)) / / ********************************** *******
(/ / * LED A og Fan A aktiveres bare for *
leda = 1; / / * temperatur større enn 40'C *
ledB = 0; / / * og temperatur B mindre enn 50'C *
Fana = 1; / / *****************************************
fanB = 0;

)

else if ((tempB> 400) & & (tempA <500)) / / ********************************* ********
(/ / * LED B og Fan B aktiveres bare for *
leda = 0; / / * temperatur En mindre enn 40'C og *
ledB = 1; / / * temperatur B større enn 50'C *
Fana = 0; / / *****************************************
fanB = 1;

)

else if ((tempB> 400) & & (tempA> 500)) / / ********************************* ********************
(/ / * Alle LED A & LED B, Fan A & Fan B *
ledB = 1; / / * aktivert for temperatur større enn 40'C *
leda = 1; / / * og temperatur B større enn 50'C *
Fana = 1; / / ******************************************** *********
fanB = 1;
;
)

else if ((tempB <400) & & (tempA <500)) / / ********************************* ********************
(/ / * Alle LED A & LED B, Fan A & Fan B *
ledB = 0; / / * disactivated for temperatur Et mindre enn 40'C *
leda = 0; / / * og temperatur B mindre enn 50'C *
Fana = 0; / / ******************************************** *********
fanB = 0;

)

forsinkelse (2000);

)

)

)//================== subroutine LCD innstillingen ==========================

void send_config (unsigned char data)
(
RS = 0;
LCD = data;
forsinkelse (500);
e_pulse ();
)

void e_pulse (void)
(
E = 1;
forsinkelse (500);
E = 0;
forsinkelse (500);
)

void send_char (unsigned char data)
(
RS = 1;
LCD = data;
forsinkelse (500);
e_pulse ();
)void lcd_goto (unsigned char data)
(
if (data <16)
(
send_config (0x80 data);
)
ellers
(
data = data-20;
send_config (0xC0 data);
)
)void lcd_clr (void)
(
RS = 0;
send_config (0x01);
forsinkelse (600);
)void dis_num (unsigned lang data)
(
unsigned char hundred_thousand;
unsigned char ten_thousand;
unsigned char tusen;
unsigned char hundre;
unsigned char tiende;

hundred_thousand = data/100000;
data = data% 100000;
ten_thousand = data/10000;
data = data% 10000;
tusen = data / 1000;
data = data% 1000;
hundre = data / 100;
data = data% 100;
tiende = data / 10;
data = data% 10;

if (hundred_thousand> 0)
(
send_char (hundred_thousand 0x30); / / 0x30 lagt til ASCII-kode
send_char (ten_thousand 0x30);
send_char (tusen 0x30);
send_char (hundre 0x30);
send_char (tiende 0x30);
send_char (data 0x30);
)

else if (ten_thousand> 0)
(
send_char (ten_thousand 0x30); / / 0x30 lagt til ASCII-kode
send_char (tusen 0x30);
send_char (hundre 0x30);
send_char (tiende 0x30);
send_char (data 0x30);
)
else if (tusen> 0)
(
send_char (tusen 0x30); / / 0x30 lagt til ASCII-kode
send_char (hundre 0x30);
send_char (tiende 0x30);
send_char (data 0x30);
)
else if (hundre> 0)
(
send_char (hundre 0x30); / / 0x30 lagt til ASCII-kode
send_char (tiende 0x30);
send_char (data 0x30);
)
else if (tiende> 0)
(
send_char (tiende 0x30); / / 0x30 lagt til ASCII-kode
send_char (data 0x30);
)
else send_char (data 0x30); / / 0x30 lagt til ASCII-kode
)

void økning (unsigned lang data)
(
unsigned short j;
for (j = 10; j> 0; j -)
(Lcd_goto (32);
data = data 1;
dis_num (data);
forsinkelse (10000);
)

)

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

void read_adc (void)
(
unsigned short i;
unsigned long result_temp = 0;
for (i = 2000; i> 0; i-= 1) / / looping 2000 ganger for å få gjennomsnittlig verdi
(
ADGO = 1; / / ADGO er bit 2 av ADCON0 register
while (ADGO == 1); / / ADC starten ADGO = 0 etter ferdig ADC fremgang
result = ADRESH;
resultat = resultat <<8; / / skifte til venstre for 8 bit
resultat = resultat | ADRESL; / / 10 bit Resultatet fra ADC

result_temp = resultat;
)
result = result_temp/2000; / / får gjennomsnittlig verdi

)

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

)

//================== subroutine FORSINKELSE ==========================
void forsinkelse (unsigned kort i)
(
for (; i> 0; i -);
)

 

Welcome to EDABoard.com

Sponsor

Back
Top