; cod sursa general valabil STATUS equ 03h; locatia din memorie a registrului STATUS TRISA equ 85h ; locatia din memorie a registrului TRISA PORTA equ 05h ; locatia din memorie a portului I/O PORTA COUNT1 equ 08h ;Primul counter folosit ca delay COUNT2 equ 09h ;Al doilea counter folosit ca delay ;Setarea portului bsf STATUS,5 ;trecem in bancul 1 de memorie movlw 00h movwf TRISA ;initializare cu 0, ceea ce inseamna ca toti bitii sunt de iesire bcf STATUS,5 ;trecem in bancul 0 de memorie clrf PORTA Start ;Aprinderea si stingerea ledului prin ultimul bit de la PORTA incf PORTA; simuleaza un intrerupator ;****Verificam daca intrerupatorul este inchis sau deschis BTFSC PORTA,0 ;verifica bitul 0 al PORTA call Delay ;daca este 1, apelam de doua ori delay pentru ca LED-ul sa stea aprins doua perioade call Delay ;daca este 0, apelam o intarziere pentru ca LED-ul sa stea aprins o perioada de timp goto Start ; inapoi la start si aprindem sau stingem LED-ul Delay movlw 02h movwf COUNT1 movlw 02h movwf COUNT2 Loop1 decfsz COUNT1 goto Loop1 Loop2 decfsz COUNT2 goto Loop2 return ;****Sfarsitul programului**** End