📄 dadoelek.asm
字号:
list p=16f877A; declaracion del procesador
include p16f877a.inc;
cblock 0x20
NUMERO
NUMERO1
NUMERO2
MEMORIA1
MEMORIA2
CONFIRMAR
BOTON
CONT1
CONT2
CONT3
endc
org 0x00 ;vector de inicio
goto INICIO ;ir a la etiqueta de inicio
org 0x05
INICIO
bsf STATUS,RP0 ;seleccionar banco de memoria 1
clrf PORTB ;puerto B como salida
clrf PORTC ;puerto C como salida
bcf STATUS,RP0 ;seleccion del banco 0
clrf NUMERO
clrf NUMERO1
clrf NUMERO2
clrf MEMORIA1
clrf MEMORIA2
clrf CONFIRMAR
clrf BOTON
MAIN
btfsc PORTD,0 ;boton inicio
bsf BOTON,0
btfsc PORTD,1 ;boton detener1
bsf BOTON,1
btfsc PORTD,2 ;boton detener2
bsf BOTON,2
btfsc PORTD,3 ;boton memoria
bsf BOTON,3
btfss PORTD,3
bcf CONFIRMAR,5
btfss BOTON,0
call APAGADO
btfsc BOTON,0
call ENCENDIDO
btfsc PORTD,3
call CAMBIO
btfsc BOTON,3
call MEMORIA
call TIERRA1 ;detiene o no el display 1
call TIERRA2 ;detiene o no el display 2
btfsc BOTON,1
call TABLA1
btfss BOTON,1
call TABLA ;muestra de 1 a 6 en display 1
movwf PORTB
bsf PORTC,1
bcf PORTC,0
call RETARDO
btfsc BOTON,2
call TABLA2
btfss BOTON,2
call TABLA ;muestra de 1 a 6 en display 2
movwf PORTB
bsf PORTC,0
bcf PORTC,1
call RETARDO
incf NUMERO,1
movf NUMERO,0
xorlw .7
btfsc STATUS,Z
clrf NUMERO
btfsc STATUS,Z
bsf NUMERO,0
btfss BOTON,1
goto MAIN
btfss BOTON,2
goto MAIN
bsf CONFIRMAR,6
bsf CONFIRMAR,0
bcf CONFIRMAR,4
bcf BOTON,0
goto MAIN
CAMBIO
btfsc CONFIRMAR,5
return
bsf CONFIRMAR,5
btfsc CONFIRMAR,3
goto CERO
bsf CONFIRMAR,3
goto MAIN
CERO
bcf CONFIRMAR,3
goto MAIN
MEMORIA
btfss CONFIRMAR,6
return
bcf CONFIRMAR,4
bcf BOTON,0
btfsc CONFIRMAR,3
movf NUMERO1,0
btfss CONFIRMAR,3
movf MEMORIA1,0
movwf NUMERO
call TABLA
movwf PORTB
bsf PORTC,1
bcf PORTC,0
call RETARDO
btfsc CONFIRMAR,3
movf NUMERO2,0
btfss CONFIRMAR,3
movf MEMORIA2,0
movwf NUMERO
call TABLA
movwf PORTB
bsf PORTC,0
bcf PORTC,1
call RETARDO
goto MAIN
APAGADO
btfss CONFIRMAR,0
clrf PORTB
btfss CONFIRMAR,0
goto MAIN
return
ENCENDIDO
btfsc CONFIRMAR,4
return
btfss BOTON,0
return
bsf CONFIRMAR,6
bsf CONFIRMAR,4
bcf CONFIRMAR,1
bcf CONFIRMAR,2
bcf BOTON,1
bcf BOTON,2
bcf BOTON,3
clrf NUMERO
return
TIERRA1
btfsc CONFIRMAR,1
return
btfss BOTON,1
return
bcf CONFIRMAR,6
bsf CONFIRMAR,1
movf NUMERO1,0
movwf MEMORIA1
movf NUMERO,0
movwf NUMERO1
return
TIERRA2
btfsc CONFIRMAR,2
return
btfss BOTON,2
return
bcf CONFIRMAR,6
bsf CONFIRMAR,2
movf NUMERO2,0
movwf MEMORIA2
movf NUMERO,0
movwf NUMERO2
return
TABLA
movf NUMERO,0
addwf PCL,1
retlw b'01000000'
retlw b'00000110'
retlw b'01011011'
retlw b'01001111'
retlw b'01100110'
retlw b'01101101'
retlw b'01111101'
TABLA1
movf NUMERO1,0
addwf PCL,1
retlw b'00000000'
retlw b'00000110'
retlw b'01011011'
retlw b'01001111'
retlw b'01100110'
retlw b'01101101'
retlw b'01111101'
TABLA2
movf NUMERO2,0
addwf PCL,1
retlw b'00000000'
retlw b'00000110'
retlw b'01011011'
retlw b'01001111'
retlw b'01100110'
retlw b'01101101'
retlw b'01111101'
RETARDO
movlw .255
movwf CONT3
CICLO3 movlw .255
movwf CONT2
CICLO2 movlw .255
movwf CONT1
CICLO1
decfsz CONT1,f
goto CICLO1
decfsz CONT2,f
goto CICLO2
decfsz CONT3,f
goto CICLO3
return
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -