PIC16F684 Digital Termometrs

M

me_guitarist

Guest
Can Somebody pārvērst šo kodu montāža valodu?
Es nevaru saprast C valodai tā PLS help.Thanks!

Kods:# ietvert <pic.h># define DIGIT1 RA0

# define DIGIT2 RA1

# define DIGIT3 RA2

# define ON 0

# define OFF 1/ *

RA5 - Segment a

RC5 - Segment b

RC4 - Segment c

RC3 - Segment d

RC2 - Segment e

RC1 - Segment f

RC0 - Segment gRA4 - termorezistora

* /__CONFIG (INTIO & WDTDIS & PWRTEN & MCLRDIS & Unprotect \

& Unprotect & BORDIS & IESODIS & FCMDIS);const CHAR LEDDigit [10] = (

0b0000001, / / DIGIT Nulle

0b1001111, / / DIGIT Viens

0b0010010, / / DIGIT Divi

0b0000110, / / DIGIT Trīs

0b1001100, / / DIGIT Four

0b0100100, / / DIGIT Pieci

0b0100000, / / DIGIT Six

0b0001111, / / DIGIT Seven

0b0000000, / / DIGIT Astoņi

0b0000100); / / DIGIT Deviņiint Temperatūra, TempDigit, DisplayPos, D1, j;

int ADCState;int i, j, d, t, temp;

Galvenais ()

(

/////////// INIT ////////////Porta = 0;

PORTC = 0;

TRISA = 0b010000; / / Visi biti Porta ir Iznākumi izņemot RA4

TRISC = 0; / / Visi biti PORTC ir IznākumiCMCON0 = 7; / / Izslēgt salīdzinājumam

ANSEL = 1 <<4; / / RA4 ir ADC ievade

ADCON0 = 0b00001101; / / kreiso attaisnot, izmantošanu Vdd, Channel 4 (AN3), Nelietojiet sākuma Ieslēgt

ADCON1 = 0b00010000; / / palaist oscillatr kā 8 x prescalarDisplayPos = 0;

j = 0;

Temperatūra = 0;

ADCState = 0;/ / / / Main LOOP / / / /tajā pašā laikā (1)

(

/////////// DISPLAY nolasīšanas ///////////DIGIT1 = OFF;

DIGIT2 = OFF;

DIGIT3 = OFF;ja (DisplayPos == 0) / / Light 1. segments

(

TempDigit = Temperatūra% 10; / / Just get "1" s vieta

RA5 = LEDDigit [TempDigit]>> 6; / / Ieslēgt ciparu

PORTC = LEDDigit [TempDigit];

DIGIT3 = ON;

par (D1 = 0; D1 <414; D1 ); / / atlikt uz 7ms) cits ja (DisplayPos == 1) / / Light 2. segments

(

TempDigit = Temperatūra% 100; / / Just get "10" s vieta (lentes off "100" s vieta)

TempDigit = TempDigit / 10; / / un konvertēt uz "1" s vieta

RA5 = LEDDigit [TempDigit]>> 6; / / Ieslēgt ciparu

PORTC = LEDDigit [TempDigit];

DIGIT2 = ON;

par (D1 = 0; D1 <400; D1 ); / / atlikt uz 7ms

) cits / / Light 3. segments

(

TempDigit = Temperatūra / 100; / / Just get "100" s vieta

RA5 = LEDDigit [TempDigit]>> 6; / / Ieslēgt ciparu

PORTC = LEDDigit [TempDigit];

DIGIT1 = ON;

par (D1 = 0; D1 <400; D1 ); / / atlikt uz 7ms

)DisplayPos = (DisplayPos 1)% 3; / / Nākamā segmentsj ;

if (j == 50) / / Time atjaunināt temp?

(

j = 0;slēdzim (ADCState)

(

gadījumā 0: / / Sākums ADC darbība

GODONE = 1;

ADCState = 1;

break;

gadījumā 1:

ADCState = 0;

Temperatūra = ADRESH - 82;

break;

)

)

)

)
 

Welcome to EDABoard.com

Sponsor

Back
Top