M
me_guitarist
Guest
Ar Kažkas paversti šį kodą į Asemblerio kalba?
Negaliu suprasti C kalbą taip pls help.Thanks!
Kodas:# include <pic.h># define DIGIT1 RA0
# define DIGIT2 RA1
# define DIGIT3 RA2
# define APIE 0
# define OFF 1/ *
RA5 - segmentas yra
RC5 - Segmentas b
RC4 - Segmentas c
RC3 - Segmentas d
RC2 - segmentas E
RC1 - Segmentas f
RC0 - Segmentas gRA4 - termistoriai
* /__CONFIG (INTIO & WDTDIS & PWRTEN & MCLRDIS & Unprotect \
& Unprotect & BORDIS & IESODIS & FCMDIS);const char LEDDigit [10] = (
0b0000001 / / Digit nulis
0b1001111 / / Digit Vienas
0b0010010 / / Digit Du
0b0000110 / / Digit Trys
0b1001100 / / Digit Keturi
0b0100100 / / Digit Penki
0b0100000 / / Digit Šeši
0b0001111 / / Digit Septyni
0b0000000 / / Digit Aštuoni
0b0000100) / / Digit Devyniint temperatūros, TempDigit, DisplayPos, D1, j;
int ADCState;int i, j, d, t, temp;
main ()
(
/////////// INIT ////////////PORTA = 0;
PORTC = 0;
TRISA = 0b010000 / / Visos Bits Porta yra išvaduose, išskyrus RA4
TRISC = 0; / / Visos Bits of PORTC yra išvaduoseCMCON0 = 7 / / Išjungti komponentow
Ansel = 1 <<4 / / RA4 yra ADC įvedimas
ADCON0 = 0b00001101 / / kairieji pateisinti, naudokite VDD, Channel 4 (AN3) Negalima paleisti, Įjungti
ADCON1 = 0b00010000 / / paleisti oscillatr kaip 8 x prescalarDisplayPos = 0;
j = 0;
Temperatūra = 0;
ADCState = 0;/ / / / MAIN LOOP / / / /o (1)
(
/////////// DISPLAY Readout ///////////DIGIT1 = off;
DIGIT2 = off;
DIGIT3 = off;jei (DisplayPos == 0) / / Šviesos 1. segmentas
(
TempDigit = temperatūra% 10 / / Just get "1"-os vietos
RA5 = LEDDigit [TempDigit]>> 6 / / Įjungti skaitmenų
PORTC = LEDDigit [TempDigit];
DIGIT3 = ON;
už (D1 = 0; D1 <414; D1 ); / / Delay for 7ms) else if (DisplayPos == 1) / / Šviesos 2. segmentas
(
TempDigit = temperatūra% 100 / / Just get "10"-os vietos (nurengti "100" s tikslumu)
TempDigit = TempDigit / 10 / / ir konvertuoti į "1"-os vietos
RA5 = LEDDigit [TempDigit]>> 6 / / Įjungti skaitmenų
PORTC = LEDDigit [TempDigit];
DIGIT2 = ON;
už (D1 = 0; D1 <400; D1 ); / / Delay for 7ms
) else / / Šviesa 3. segmentas
(
TempDigit = temperatūra / 100 / / Just get "100" s vietos
RA5 = LEDDigit [TempDigit]>> 6 / / Įjungti skaitmenų
PORTC = LEDDigit [TempDigit];
DIGIT1 = ON;
už (D1 = 0; D1 <400; D1 ); / / Delay for 7ms
)DisplayPos = (DisplayPos 1)% 3; / / Kitas segmentasj ;
if (j == 50) / / laikas atnaujinti temp?
(
j = 0;switch (ADCState)
(
case 0: / / Pradėti ADC operacija
GODONE = 1;
ADCState = 1;
break;
case 1:
ADCState = 0;
Temperatūra = ADRESH - 82;
break;
)
)
)
)
Negaliu suprasti C kalbą taip pls help.Thanks!
Kodas:# include <pic.h># define DIGIT1 RA0
# define DIGIT2 RA1
# define DIGIT3 RA2
# define APIE 0
# define OFF 1/ *
RA5 - segmentas yra
RC5 - Segmentas b
RC4 - Segmentas c
RC3 - Segmentas d
RC2 - segmentas E
RC1 - Segmentas f
RC0 - Segmentas gRA4 - termistoriai
* /__CONFIG (INTIO & WDTDIS & PWRTEN & MCLRDIS & Unprotect \
& Unprotect & BORDIS & IESODIS & FCMDIS);const char LEDDigit [10] = (
0b0000001 / / Digit nulis
0b1001111 / / Digit Vienas
0b0010010 / / Digit Du
0b0000110 / / Digit Trys
0b1001100 / / Digit Keturi
0b0100100 / / Digit Penki
0b0100000 / / Digit Šeši
0b0001111 / / Digit Septyni
0b0000000 / / Digit Aštuoni
0b0000100) / / Digit Devyniint temperatūros, TempDigit, DisplayPos, D1, j;
int ADCState;int i, j, d, t, temp;
main ()
(
/////////// INIT ////////////PORTA = 0;
PORTC = 0;
TRISA = 0b010000 / / Visos Bits Porta yra išvaduose, išskyrus RA4
TRISC = 0; / / Visos Bits of PORTC yra išvaduoseCMCON0 = 7 / / Išjungti komponentow
Ansel = 1 <<4 / / RA4 yra ADC įvedimas
ADCON0 = 0b00001101 / / kairieji pateisinti, naudokite VDD, Channel 4 (AN3) Negalima paleisti, Įjungti
ADCON1 = 0b00010000 / / paleisti oscillatr kaip 8 x prescalarDisplayPos = 0;
j = 0;
Temperatūra = 0;
ADCState = 0;/ / / / MAIN LOOP / / / /o (1)
(
/////////// DISPLAY Readout ///////////DIGIT1 = off;
DIGIT2 = off;
DIGIT3 = off;jei (DisplayPos == 0) / / Šviesos 1. segmentas
(
TempDigit = temperatūra% 10 / / Just get "1"-os vietos
RA5 = LEDDigit [TempDigit]>> 6 / / Įjungti skaitmenų
PORTC = LEDDigit [TempDigit];
DIGIT3 = ON;
už (D1 = 0; D1 <414; D1 ); / / Delay for 7ms) else if (DisplayPos == 1) / / Šviesos 2. segmentas
(
TempDigit = temperatūra% 100 / / Just get "10"-os vietos (nurengti "100" s tikslumu)
TempDigit = TempDigit / 10 / / ir konvertuoti į "1"-os vietos
RA5 = LEDDigit [TempDigit]>> 6 / / Įjungti skaitmenų
PORTC = LEDDigit [TempDigit];
DIGIT2 = ON;
už (D1 = 0; D1 <400; D1 ); / / Delay for 7ms
) else / / Šviesa 3. segmentas
(
TempDigit = temperatūra / 100 / / Just get "100" s vietos
RA5 = LEDDigit [TempDigit]>> 6 / / Įjungti skaitmenų
PORTC = LEDDigit [TempDigit];
DIGIT1 = ON;
už (D1 = 0; D1 <400; D1 ); / / Delay for 7ms
)DisplayPos = (DisplayPos 1)% 3; / / Kitas segmentasj ;
if (j == 50) / / laikas atnaujinti temp?
(
j = 0;switch (ADCState)
(
case 0: / / Pradėti ADC operacija
GODONE = 1;
ADCState = 1;
break;
case 1:
ADCState = 0;
Temperatūra = ADRESH - 82;
break;
)
)
)
)