εξαψήφιο κωδικό

I

intan

Guest
γεια!
μπορεί κάποιος να με βοηθήσει να μετατρέψει αυτόν τον κώδικα σε hex κώδικα;
im χρησιμοποιώντας pic 16f876a και γ HITECH γλώσσα
i HV Προσπάθησα πολλές φορές, αλλά ακόμη σημαντική εργασία
ευχαριστώ εκ των προτέρων# περιλαμβάνουν <pic.h>

//=============== διαμόρφωση ==============================
__CONFIG (0x3F32)?

//=============== καθορίσει IO λιμάνι =============================
# καθορίσει lcd PORTC
# καθορίσει RS RA2
# E RA5 καθορίσουν
# καθορίσει CHANNEL0 0b10000001 / / AN0
# καθορίσει CHANNEL1 0b10001001 / / AN1

# καθορίσει Φανά RB4
# καθορίσει fanB RB3
# καθορίσει Λήδα RB2
# καθορίσει ledB RB1

//============== FUNCTION PTOTOTYPE =========================
άκυρη e_pulse (κενή)?
άκυρη καθυστέρηση (unsigned σύντομο i)?
άκυρη send_char (unsigned char δεδομένων)?
άκυρη send_config (unsigned char δεδομένων)?
άκυρη lcd_goto (unsigned char δεδομένων)?
άκυρη lcd_clr (κενή)?
άκυρη dis_num (unsigned καιρό δεδομένων)?
άκυρη increment (unsigned καιρό δεδομένων)?
άκυρη read_adc (κενή)?
ανυπόγραφα σύντομο read_temp (κενή)?

//==================== MAIN =========================== =====
ανυπόγραφα σύντομο αποτέλεσμα?
ανυπόγραφα σύντομο temp, tempA, tempB?

άκυρη κύρια (κενό)
(
ADRESH = 0? / / Σαφές A / D έχει ως αποτέλεσμα
ADRESL = 0? / / Σαφές A / D έχει ως αποτέλεσμα

/ / καθορισμός ADCON1 Εγγραφή
ADCON1 = 0b11000101? / / Α / Δ δικαιολογείται λόγω δικαίωμα,
/ / Configure RA2 και RA5 όπως ψηφιακές I / O

TRISA = 0b00011011? / / Configure PORTA I / O κατεύθυνση
TRISB = 0b00000000? / / Configure PORTB ως παραγωγή
TRISC = 0b00000000? / / Configure PORTC ως παραγωγή

PORTA = 0?
PORTB = 0?

ενώ (1)
(
send_config (0b00000001)? / / σαφή απεικόνιση σε lcd
send_config (0b00000010)? / / Lcd Επιστροφή στο σπίτι
send_config (0b00000110)? / / Τρόπος εισόδου-δρομέα αύξηση 1
send_config (0b00001100)? / / diplay μετά, εκτός και δρομέας δρομέας αναβοσβήνει εκτός
send_config (0b00111000)? / / λειτουργία που

lcd_goto (0)? / / δρομέα ξεκινήσει από την αρχή

/ / χαρακτήρα για LCD οθόνη
send_char ( '')?
send_char ( «Τ»)?
send_char ( «Ε»)?
send_char ( «Μ»)?
send_char ( «Ρ»)?
send_char ('.');
send_char ( 'Α')?
send_char ('=');

lcd_goto (20)? / / δρομέα πηγαίνετε στο 2ο γραμμή της οθόνης LCD

/ / χαρακτήρα για LCD οθόνη
send_char ( '')?
send_char ( «Τ»)?
send_char ( «Ε»)?
send_char ( «Μ»)?
send_char ( «Ρ»)?
send_char ('.');
send_char ( «Β»)?
send_char ('=');

ενώ (1) / / άπειρο βρόχο
(
/ / Ένας αισθητήρας
ADCON0 = CHANNEL0? / / CHANNEL1 = 0b10001001
lcd_goto (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Ψυχρός" border="0" />

?

read_adc ()?

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

tempA = temp?

/ / αισθητήρα B
ADCON0 = CHANNEL1? / / CHANNEL0 = 0b10000001

lcd_goto (2

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Ψυχρός" border="0" />

?

read_adc ()?

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

tempB = temp?

if ((tempA> 400) & & (tempB <500)) / / ********************************** *******
(/ / * LED Fan Α Α και ενεργοποιείται μόνο για *
Λήδα = 1? / / A * θερμοκρασία μεγαλύτερη από 40'C *
ledB = 0? / / B * και θερμοκρασία μικρότερη από 50'C *
Φανά = 1? / / *****************************************
fanB = 0?

)

else if ((tempB> 400) & & (tempA <500)) / / ********************************* ********
(/ / * LED Fan Β Β και ενεργοποιείται μόνο για *
Λήδα = 0? / / A * θερμοκρασία μικρότερη από 40'C και *
ledB = 1? / / B * θερμοκρασία μεγαλύτερη από 50'C *
Φανά = 0? / / *****************************************
fanB = 1?

)

else if ((tempB> 400) & & (tempA> 500)) / / ********************************* ********************
(/ / * Όλα LED LED Α & Β, Fan Α & Β Fan *
ledB = 1? / / * ενεργοποιηθεί για θερμοκρασία μεγαλύτερη από 40'C A *
Λήδα = 1? / / B * και θερμοκρασία μεγαλύτερη από 50'C *
Φανά = 1? / / ******************************************** *********
fanB = 1?
?
)

else if ((tempB <400) & & (tempA <500)) / / ********************************* ********************
(/ / * Όλα LED LED Α & Β, Fan Α & Β Fan *
ledB = 0? / / * disactivated για θερμοκρασία μικρότερη από 40'C A *
Λήδα = 0? / / B * και θερμοκρασία μικρότερη από 50'C *
Φανά = 0? / / ******************************************** *********
fanB = 0?

)

καθυστέρηση (2000)?

)

)

)//================== υπορουτίνα LCD καθορισμό ==========================

άκυρη send_config (unsigned char data)
(
RS = 0?
lcd = δεδομένα?
καθυστέρηση (500)?
e_pulse ()?
)

άκυρη e_pulse (κενή)
(
E = 1?
καθυστέρηση (500)?
E = 0?
καθυστέρηση (500)?
)

άκυρη send_char (unsigned char data)
(
RS = 1?
lcd = δεδομένα?
καθυστέρηση (500)?
e_pulse ()?
)άκυρη lcd_goto (unsigned char data)
(
εάν (δεδομένα <16)
(
send_config (0x80 δεδομένων)?
)
άλλος
(
δεδομένα = δεδομένα-20?
send_config (0xc0 δεδομένων)?
)
)άκυρη lcd_clr (κενή)
(
RS = 0?
send_config (0x01)?
καθυστέρηση (600)?
)άκυρη dis_num (unsigned καιρό δεδομένων)
(
unsigned char hundred_thousand?
unsigned char ten_thousand?
unsigned char χιλ.?
unsigned char εκατό?
unsigned char δέκατη?

hundred_thousand = data/100000?
στοιχεία δεδομένων% = 100.000?
ten_thousand = data/10000?
στοιχεία δεδομένων% = 10.000?
= χιλιάδες δεδομένων / 1000?
στοιχεία δεδομένων% = 1.000?
= εκατό δεδομένα / 100?
στοιχεία δεδομένων = 100%?
δέκατοι = δεδομένα / 10?
στοιχεία δεδομένων = 10%?

εάν (hundred_thousand> 0)
(
send_char (hundred_thousand 0x30)? / / 0x30 προστεθούν να γίνει κώδικα ASCII
send_char (ten_thousand 0x30)?
send_char (χιλιάδες 0x30)?
send_char (εκατό 0x30)?
send_char (δέκατη 0x30)?
send_char (δεδομένα 0x30)?
)

else if (ten_thousand> 0)
(
send_char (ten_thousand 0x30)? / / 0x30 προστεθούν να γίνει κώδικα ASCII
send_char (χιλιάδες 0x30)?
send_char (εκατό 0x30)?
send_char (δέκατη 0x30)?
send_char (δεδομένα 0x30)?
)
else if (χιλ.> 0)
(
send_char (χιλιάδες 0x30)? / / 0x30 προστεθούν να γίνει κώδικα ASCII
send_char (εκατό 0x30)?
send_char (δέκατη 0x30)?
send_char (δεδομένα 0x30)?
)
else if (εκατό> 0)
(
send_char (εκατό 0x30)? / / 0x30 προστεθούν να γίνει κώδικα ASCII
send_char (δέκατη 0x30)?
send_char (δεδομένα 0x30)?
)
else if (δέκατη> 0)
(
send_char (δέκατη 0x30)? / / 0x30 προστεθούν να γίνει κώδικα ASCII
send_char (δεδομένα 0x30)?
)
άλλο send_char (δεδομένα 0x30)? / / 0x30 προστεθούν να γίνει κώδικα ASCII
)

άκυρη increment (unsigned καιρό δεδομένων)
(
ανυπόγραφα σύντομο ι?
για (ι = 10? ι> 0? ι -)
(Lcd_goto (32)?
στοιχεία δεδομένων
1 =?
dis_num (δεδομένα)?
καθυστέρηση (10000)?
)

)

//================== υπορουτίνα ADC =========================

άκυρη read_adc (κενή)
(
ανυπόγραφα σύντομο i?
unsigned καιρό result_temp = 0?
(i = 2000? i> 0? = i-1) / / looping 2000 φορές για να επιτευχθεί μέση τιμή
(
ADGO = 1? / / ADGO είναι το bit 2 του μητρώου ADCON0
ενώ (ADGO == 1)? / / ADC ξεκινούν, ADGO = 0 αφού τελειώσει ADC πρόοδο
αποτέλεσμα = ADRESH?
αποτέλεσμα = αποτέλεσμα <<8? / / στροφή προς τα αριστερά για 8 bit
αποτέλεσμα = αποτέλεσμα | ADRESL? / / 10 bit αποτέλεσμα από ADC

= result_temp αποτέλεσμα?
)
αποτέλεσμα = result_temp/2000? / / επίτευξη μέσης τιμής

)

ανυπόγραφα σύντομο read_temp (κενή)
(
ανυπόγραφα σύντομο temp?
temp = αποτέλεσμα?
επιστροφή temp?

)

//================== υπορουτίνα DELAY ==========================
άκυρη καθυστέρηση (unsigned σύντομο i)
(
για (? i> 0? i -)?
)

 

Welcome to EDABoard.com

Sponsor

Back
Top