Advertisement
Salame1364

Codice programma

Dec 6th, 2020
586
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;DIRETTIVE
  2.     list        p = 16f84A
  3.     #include    <p16f84A.inc>   ;definizione variabili specifiche processore
  4.     errorlevel -302
  5. ;DEFINIZIONE DI COSTANTI E VARIABILI
  6.     #define TRISB_OUT       B'00000000' ;impostazione TRSIB per tutti i pin out
  7.     #define VERDE2          B'01000001'
  8.     #define VERDEGIALLO2    B'01100001'
  9.     #define VERDE1          B'00010100'
  10.     #define VERDEGIALLO1    B'00010110'
  11.     CBLOCK  0x20
  12.     IMPOSTA
  13.     CONTATORE           ;contatore per ritardo
  14.     ENDC
  15. ;INIZIALIZZAZIONE
  16.     BSF     STATUS,5    ;banco 1
  17.     MOVLW   TRISB_OUT
  18.     MOVWF   TRISB
  19.     MOVLW   B'10000100' ;clock timer interno, prescaler 1/32
  20.     MOVWF   OPTION_REG  ;overflow in 8.2ms
  21.     BCF     STATUS,5    ;banco 0
  22. ;PROGRAMMA
  23. inizio
  24.     MOVLW   VERDE1          ;pone VERDE1 in W
  25.     MOVWF   PORTB           ;pone W in PORTB
  26.     MOVLW   .244            ;pone il ritardo in W
  27.     MOVLW   IMPOSTA         ;pone W in IMPOSTA
  28.     CALL    ritardo         ;richiamo il sottoprogramma ritardo
  29.     MOVLW   VERDEGIALLO1    ;pone VERDEGIALLO1 in W
  30.     MOVWF   PORTB           ;pone W in PORTB
  31.     MOVLW   .61             ;pone il ritardo in W
  32.     MOVWF   IMPOSTA         ;pone W in IMPOSTA
  33.     CALL    ritardo         ;richiamo il sottoprogramma ritardo
  34.     MOVLW   VERDE2          ;pone VERDE2 in W
  35.     MOVWF   PORTB           ;pone W in PORTB
  36.     MOVLW   .244            ;pone il ritardo in W
  37.     MOVWF   IMPOSTA         ;pone W in IMPOSTA
  38.     CALL    ritardo         ;richiamo il sottoprogramma ritardo
  39.     MOVLW   VERDEGIALLO2    ;pone VERDEGIALLO2 in W
  40.     MOVWF   PORTB           ;pone W in PORTB
  41.     MOVLW   .61             ;pone il ritardo in W
  42.     MOVWF   IMPOSTA         ;pone W in IMPOSTA
  43.     CALL    ritardo         ;richiamo il sottoprogramma ritardo
  44.     GOTO    inizio          ;creo il loop per il programma rimandandolo ad inizio
  45.  
  46. ritardo    
  47.     MOVFW   IMPOSTA         ;ritardo variabile
  48.     MOVWF   CONTATORE
  49. loopesterno    
  50.     CLRF    TMR0            ;resetta registro timer    
  51.     BCF     INTCON,T0IF     ;resetta flag timer
  52.     GOTO    loopinterno
  53. loopinterno    
  54.     BTFSS   INTCON,T0IF     ;attendi se flag timer non settato          
  55.     DECFSZ  CONTATORE,1     ;decrementa contatore ritardo        
  56.     RETURN  
  57.    
  58. end
Advertisement
RAW Paste Data Copied
Advertisement