fizmati.lv forums

Pilnā versija: Assambler programmēšanas valoda
Jūs pašlaik aplūkojat satura saīsināto versiju. Skatīt pilno versiju ar atbilstošu noformējumu.
Labdien!

Nezinu, vai varu šeit tā jautāt, bet varbūt varat kaut ko ieteikt...
Ir viens uzdevums, kur man diemžēl nav zināšanu, lai to atrisinātu... Meklēju "zāles" palīdzību...

Mikrokontrollers ir mazs vienas integrētas shēmas dators, kas satur procesora kodolu, atmiņu un programmējamās ieejas/izejas.
PIC 12F629 ir mazs Microchip ražots mikrokontrollers. Programma tam var sastāvēt tikai no 35 komandām. Katras komandas izpildīšana var prasīt vienu vai divus izpildes ciklus.

Būtu nepieciešams izanalizēt zemāk esošo programmas tekstu un atrast sekojošo:
A – ciklu skaits, kas nepieciešams bloka EastLoop izpildei
B – ciklu skaits, kas nepieciešams bloka NordLoop izpildei
C – cik reizes iedegsies diode, kura tiek pieslēgta pie 6. mikrokontrollera kājiņas.

#include
__config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_OFF)

cblock 0x20
Delay1
Delay2
Delay3
endc

org 0
Start:
bsf STATUS,RP0
clrf TRISIO
bcf STATUS,RP0
clrf Delay1
clrf Delay2
clrf Delay3
movlw 0xD0
movwf B'100000'
movlw .7
movwf CMCON
MainLoop:
bsf GPIO,GP1
bsf 0x21,5
EastLoop:
nop
decfsz Delay1,f
goto EastLoop
decfsz Delay2,f
goto EastLoop
movwf Delay3
bcf 0x05,1
bsf 0x05,4
decf Delay3,0
bsf 0x20,7
bsf 0x20,3
bsf O'40',1
comf .32,1
NordLoop:
decfsz Delay1,f
goto NordLoop
btfsc GPIO,GP1
goto SetStep
bsf GPIO,GP1
goto SetSStep
SetStep:
bcf GPIO,GP1
SetSStep:
decfsz Delay3,f
goto NordLoop
bcf 0x05,1
bcf 0x05,4
end

Vai šeit ir kaut kas saprotams? Paldies jau iepriekš un atvainojos par traucēšanu.

Ar cieņu, Anrijs.
(08.06.2018 09:31 )APACIS_90 rakstīja: [ -> ]Labdien!

Nezinu, vai varu šeit tā jautāt, bet varbūt varat kaut ko ieteikt...
Ir viens uzdevums, kur man diemžēl nav zināšanu, lai to atrisinātu... Meklēju "zāles" palīdzību...

Mikrokontrollers ir mazs vienas integrētas shēmas dators, kas satur procesora kodolu, atmiņu un programmējamās ieejas/izejas.
PIC 12F629 ir mazs Microchip ražots mikrokontrollers. Programma tam var sastāvēt tikai no 35 komandām. Katras komandas izpildīšana var prasīt vienu vai divus izpildes ciklus.

Būtu nepieciešams izanalizēt zemāk esošo programmas tekstu un atrast sekojošo:
A – ciklu skaits, kas nepieciešams bloka EastLoop izpildei
B – ciklu skaits, kas nepieciešams bloka NordLoop izpildei
C – cik reizes iedegsies diode, kura tiek pieslēgta pie 6. mikrokontrollera kājiņas.

#include
__config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_OFF)

cblock 0x20
Delay1
Delay2
Delay3
endc

org 0
Start:
bsf STATUS,RP0
clrf TRISIO
bcf STATUS,RP0
clrf Delay1
clrf Delay2
clrf Delay3
movlw 0xD0
movwf B'100000'
movlw .7
movwf CMCON
MainLoop:
bsf GPIO,GP1
bsf 0x21,5
EastLoop:
nop
decfsz Delay1,f
goto EastLoop
decfsz Delay2,f
goto EastLoop
movwf Delay3
bcf 0x05,1
bsf 0x05,4
decf Delay3,0
bsf 0x20,7
bsf 0x20,3
bsf O'40',1
comf .32,1
NordLoop:
decfsz Delay1,f
goto NordLoop
btfsc GPIO,GP1
goto SetStep
bsf GPIO,GP1
goto SetSStep
SetStep:
bcf GPIO,GP1
SetSStep:
decfsz Delay3,f
goto NordLoop
bcf 0x05,1
bcf 0x05,4
end

Vai šeit ir kaut kas saprotams? Paldies jau iepriekš un atvainojos par traucēšanu.

Ar cieņu, Anrijs.

Nav īstā vieta, kur šito jautāt. Aizej uz php.lv vai seo.lv tur būs vairāk info.
Atsauces saites