Segnalatore luminoso ed acustico con 8051

Schema elettrico

Software

;Prova m.ro 1 su scheda 8051
;Accensione e spegnimento di un segnalatore luminoso e acustico
da due pulsanti
;-------------------------;definizione macro------------------------------------
paccen = P1.0 ;Pulsante accensione (attivo basso)
pspegn = P1.1 ;Pulsante spegnimento (attivo basso)
slumin = P1.2 ;LED (acceso con livello basso)
sacust = P1.3 ;Altoparlante per segnalazione acustica
       org 8200h
;-------------------------Inizializzazione hardware-----------------------------
mov P1,#11111111b ; Imposta come ingresso i due pins dove sono collega-
                  ; ti i pulsanti e spegne il LED
;----------------------corpo principale del programma --------------------------
main:

    jb
paccen,jmain1
    clr
slumin ;accende LED
jmain1:

    jb
pspegn,jmain2
    setb
slumin ;spegne LED
jmain2:

    jb
slumin,jmain3
    call
gsacust ;segnale acustico

jmain3:
jmp
main
;--------------------------------- subroutines ---------------------------------

;--------------------------------- Segnale acustico-----------------------------
gsacust:

    mov
nota,#100
    mov
durata,#4
    call
gennot
   
mov nota,#200
    mov
durata,#2
    call
gennot
    ret

;--------------------------------- Generazione nota ----------------------------
nota = 3
durata = 2
gennot:

      mov
1,#255
jgennot1:

        mov
0,nota
        djnz
0,$
        cpl
sacust
      djnz
1,jgennot1
    djnz
durata,gennot
   
ret
end