Výukový program: Mechanik - elektrotechnik Název programu: Číslicová technika - mikroprocesory III. ročník Mikrořadiče Vypracoval : Vlastimil Vlček Projekt Anglicky v odborných předmětech, CZ.1.07/1.3.09/ je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.
Práce s podprogramy Proč používat podprogramy? Zvyšují přehlednost celého programu Šetří místo v paměti (nahrazují opakující se části programu) Podporují systematičnost práce (vytvářením knihoven podprogramů) Šetří čas programátora (využitím knihoven podprogramů) Umožňují využití knihoven podprogramů jinými programátory (internet)
Práce s podprogramy Princip podprogramu
Práce s podprogramy Příklad využití podprogramu start1 bcf LED1;rozsvit LED1 call cekej ;pockej 80ms bsf LED1 ; zhasni LED1 call cekej ; pockej 80ms bcf LED2 ;rozsvit LED2 call cekej ;pockej 80ms bsf LED2 ; zhasni LED call cekej ; pockej 80ms cekejmovlw.255;zacatek podprogramu movwf citac_1;vnejsi smycka cekej_A movlw.255 movwf citac_2;vnitrni smycka decfsz citac_2,f;odecet citace vnitrnismycky, test na nulu goto $-1 ;neni nulovy- zpet decfsz citac_1,f ;odecet citace vnejsi smycky, ;test na nulu goto cekej_A;neni nulovy - zpet nop return ;obe smycky vynulovany - navrat
Práce s podprogramy Instrukce pro práci s podprogramy CALLVolání podprogramu RETURNNávrat z podprogramu (Využití: běžné podprogramy) RETLWNávrat z podprogramu s konstantou v registru W (Využití: práce s tabulkami) RETFIENávrat z podprogramu přerušení (Využití: systém přerušení) Každé instrukci CALL musí odpovídat instrukce RETURN (RETLW, RETFIE). Nedodržení této podmínky vede k porušení systému registru návratových adres a ke zhroucení programu!
Práce s podprogramy Registr návratových adres (STACK)
Práce s podprogramy Vnořené podprogramy
Shrnutí učiva - cvičení Kdy je výhodné použít podprogramy? Jaké jsou zásady psaní podprogramů? Jaké jsou výhody tvorby knihoven podprogramů? Jsou podprogramy přenositelné mezi různými typy mikrořadičů? Na čem přenositelnost závisí?
Shrnutí učiva - cvičení Jaký vztah má instrukce CALL k instrukci RETURN? Co jsou „vnořené“ podprogramy? Jakou funkci v mikrořadiči má registr návratových adres? Jak vzniká tzv. „přetečení“ zásobníku návratových adres a jaké má následky?
Datasheet Microchip PIC16F882/883/884/886/887 DS41291E ( Microchip.com: Getting Started with PICmicro MCUs Microchip.com: MPLAB IDE User’s Guide Microchip.com: Quick Guide to Microchip Development Tools