M
me_guitarist
Guest
Kan iemand deze code omzetten naar assembleertaal?
Ik kan niet begrijpen van de C taal dus pls help.Thanks!
Code:# include <pic.h># define DIGIT1 RA0
# define DIGIT2 RA1
# define DIGIT3 RA2
# define OP 0
# define OFF 1/ *
RA5 - Gesegmenteerde een
RC5 - het B-segment
RC4 - C-segment
RC3 - Gesegmenteerde d
RC2 - Gesegmenteerde e
RC1 - Gesegmenteerde f
RC0 - Gesegmenteerde gRA4 - Thermistor
* /__CONFIG (INTIO & WDTDIS & PWRTEN & MCLRDIS & opheffen \
& Opheffen & BORDIS & IESODIS & FCMDIS);const char LEDDigit [10] = (
0b0000001, / / Digit Zero
0b1001111, / / Digit Een
0b0010010, / / Digit Twee
0b0000110, / / Digit Drie
0b1001100, / / Digit Vier
0b0100100, / / Digit Vijf
0b0100000, / / Digit Zes
0b0001111, / / Digit Zeven
0b0000000, / / Digit Acht
0b0000100); / / Digit Negenint Temperatuur, TempDigit, DisplayPos, D1, j;
int ADCState;int i, j, d, t, temp;
main ()
(
/////////// INIT ////////////PORTA = 0;
PORTC = 0;
TRISA = 0b010000; / / Alle stukjes PORTA zijn Outputs behalve RA4
TRISC = 0; / / Alle stukjes PORTC zijn OutputsCMCON0 = 7 / / Zet comparatoren
Ansel = 1 <<4 / / RA4 is ADC input
ADCON0 = 0b00001101 / / Links rechtvaardigen, Gebruik Vdd, Channel 4 (AN3), Don't start, Schakel
ADCON1 = 0b00010000; / / run oscillatr als 8 x prescalarDisplayPos = 0;
j = 0;
Temperatuur = 0;
ADCState = 0;/ / / / MAIN LOOP / / / /while (1)
(
/////////// DISPLAY afleestoestand ///////////DIGIT1 = UIT;
DIGIT2 = UIT;
DIGIT3 = UIT;if (DisplayPos == 0) / / Lichte 1e segment
(
TempDigit = Temperatuur% 10 / / Just get "1" s plaats
RA5 = LEDDigit [TempDigit]>> 6 / / Zet de cijfers
PORTC = LEDDigit [TempDigit];
DIGIT3 = ON;
voor (D1 = 0; D1 <414; D1 ); / / Delay voor 7ms) anders als (DisplayPos == 1) / / Lichte 2e segment
(
TempDigit = Temperatuur% 100 / / Just get "10" s plaats (strip off "100" s plaats)
TempDigit = TempDigit / 10 / / en zet in op "1" s plaats
RA5 = LEDDigit [TempDigit]>> 6 / / Zet de cijfers
PORTC = LEDDigit [TempDigit];
DIGIT2 = ON;
voor (D1 = 0; D1 <400; D1 ); / / Delay voor 7ms
) else / / Lichte 3e segment
(
TempDigit = Temperatuur / 100 / / Just get "100" s plaats
RA5 = LEDDigit [TempDigit]>> 6 / / Zet de cijfers
PORTC = LEDDigit [TempDigit];
DIGIT1 = ON;
voor (D1 = 0; D1 <400; D1 ); / / Delay voor 7ms
)DisplayPos = (DisplayPos 1)% 3 / / Volgende segmentj ;
if (j == 50) / / Time to update temp?
(
j = 0;schakelaar (ADCState)
(
geval 0: / / Start ADC operatie
GODONE = 1;
ADCState = 1;
break;
Geval 1:
ADCState = 0;
Temperatuur = ADRESH - 82;
break;
)
)
)
)
Ik kan niet begrijpen van de C taal dus pls help.Thanks!
Code:# include <pic.h># define DIGIT1 RA0
# define DIGIT2 RA1
# define DIGIT3 RA2
# define OP 0
# define OFF 1/ *
RA5 - Gesegmenteerde een
RC5 - het B-segment
RC4 - C-segment
RC3 - Gesegmenteerde d
RC2 - Gesegmenteerde e
RC1 - Gesegmenteerde f
RC0 - Gesegmenteerde gRA4 - Thermistor
* /__CONFIG (INTIO & WDTDIS & PWRTEN & MCLRDIS & opheffen \
& Opheffen & BORDIS & IESODIS & FCMDIS);const char LEDDigit [10] = (
0b0000001, / / Digit Zero
0b1001111, / / Digit Een
0b0010010, / / Digit Twee
0b0000110, / / Digit Drie
0b1001100, / / Digit Vier
0b0100100, / / Digit Vijf
0b0100000, / / Digit Zes
0b0001111, / / Digit Zeven
0b0000000, / / Digit Acht
0b0000100); / / Digit Negenint Temperatuur, TempDigit, DisplayPos, D1, j;
int ADCState;int i, j, d, t, temp;
main ()
(
/////////// INIT ////////////PORTA = 0;
PORTC = 0;
TRISA = 0b010000; / / Alle stukjes PORTA zijn Outputs behalve RA4
TRISC = 0; / / Alle stukjes PORTC zijn OutputsCMCON0 = 7 / / Zet comparatoren
Ansel = 1 <<4 / / RA4 is ADC input
ADCON0 = 0b00001101 / / Links rechtvaardigen, Gebruik Vdd, Channel 4 (AN3), Don't start, Schakel
ADCON1 = 0b00010000; / / run oscillatr als 8 x prescalarDisplayPos = 0;
j = 0;
Temperatuur = 0;
ADCState = 0;/ / / / MAIN LOOP / / / /while (1)
(
/////////// DISPLAY afleestoestand ///////////DIGIT1 = UIT;
DIGIT2 = UIT;
DIGIT3 = UIT;if (DisplayPos == 0) / / Lichte 1e segment
(
TempDigit = Temperatuur% 10 / / Just get "1" s plaats
RA5 = LEDDigit [TempDigit]>> 6 / / Zet de cijfers
PORTC = LEDDigit [TempDigit];
DIGIT3 = ON;
voor (D1 = 0; D1 <414; D1 ); / / Delay voor 7ms) anders als (DisplayPos == 1) / / Lichte 2e segment
(
TempDigit = Temperatuur% 100 / / Just get "10" s plaats (strip off "100" s plaats)
TempDigit = TempDigit / 10 / / en zet in op "1" s plaats
RA5 = LEDDigit [TempDigit]>> 6 / / Zet de cijfers
PORTC = LEDDigit [TempDigit];
DIGIT2 = ON;
voor (D1 = 0; D1 <400; D1 ); / / Delay voor 7ms
) else / / Lichte 3e segment
(
TempDigit = Temperatuur / 100 / / Just get "100" s plaats
RA5 = LEDDigit [TempDigit]>> 6 / / Zet de cijfers
PORTC = LEDDigit [TempDigit];
DIGIT1 = ON;
voor (D1 = 0; D1 <400; D1 ); / / Delay voor 7ms
)DisplayPos = (DisplayPos 1)% 3 / / Volgende segmentj ;
if (j == 50) / / Time to update temp?
(
j = 0;schakelaar (ADCState)
(
geval 0: / / Start ADC operatie
GODONE = 1;
ADCState = 1;
break;
Geval 1:
ADCState = 0;
Temperatuur = ADRESH - 82;
break;
)
)
)
)