Buenas noches, disculpen las molestias estimados colegas, pero desde hace año y medio que no agarro un pic pero ahora tengo que hacer un proyectio para mañana jaj mmm bueno ya hice el programa pero no recuerdo para nada como pasarlo al mplab, abri un wizard project, pero al build all me sale un error, yo recuerdo que hace tiempo me salia algo diferente si me equivocaba me salia el error cual era hoy se me hace que no lo estoy haciendo correctamente, el programa lo hice en notepad pero no me acuerdo como pasarlo al hex, espero que puedan ayudarme aqui esta el programa, este programa es usado para controlar la apertura de una caja fuerte, m1 es el motor DC de la puerta, m2 es un candadito, y m3 es un teclado rotacional, arranque es un boton secreto que iniciara todo el business, los leds pues van por el teclado y los teclados son los push bottons pero creo que el programa esta bien creo :s mmm mi duda es en el mplab si alguien pudiese decirme que diferencia hay de la v7.21 a la 8 se lo agradeceria que solo pude instalar la 7.21 :S
Estare esperando su respuesta con agrado gracias
Estare esperando su respuesta con agrado gracias
Código:
List p=16f84a
INCLUDE <P16F84A.INC>
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC
status equ 0x03
porta equ 0x05
trisa equ 0x05
timer1 equ 0x0c
timer2 equ 0x0d
timer3 equ 0x0e
timer4 equ 0x0f
reset1 equ 0x1c
reset2 equ 0x1d
reset3 equ 0x1e
reset4 equ 0x1f
motor1a equ PORTA,0
motor1b equ PORTA,1
motor2a equ PORTA,2
motor2b equ PORTA,3
motor3a equ PORTA,4
arranque equ PORTB,0
tecla3 equ PORTB,1
teclas equ PORTB,2
sensor equ PORTB,3
buzz equ PORTB,4
motor3b equ PORTB,5
ledrojo equ PORTB,6
ledverde equ PORTB,7
org 0x0000 ; Al prender el micro viene aca primero.
goto encendido ; Primera línea del programa.
org 0x0004 ; Ubicación del único vector de interrupción. No usado.
nop
encendido
bsf STATUS, RP0
movlw b'00000000'
movwf TRISA
movlw b'00001111'
movwf TRISB
bcf STATUS, RP0
clrf PORTA
clrf PORTB
menu
call tono ;al encender el circuito se escuchara un tono.
submenu
bcf ledrojo
btfss arranque
goto submenu
call tono ;rotacion del teclado
call motor3a
bsf ledverde
bsf ledrojo
call demoraled
bcf ledverde
bcf ledrojo
submenu1
movlw d'25' ;se carga un temporizador de desuso
movwf reset1
submenu2
movlw d'25'
movwf reset2
submenu3
movlw d'60'
movwf reset3
submenu4
bftsc tecla3
goto submenu10
btfsc teclas
goto submenu5
decfsz reset3
goto submenu4
decfsz reset2
goto submenu3
decfsz reset1
goto submenu2
call tono ;el temporizador ha terminado, se produce un tono y el teclado se oculta, se regresa a submenu
call motor3b
goto submenu
submenu5
call tono ;ciclo de error, falta una tecla mas pero dara error.
call antirrebotes
bcf reset1
bcf reset2
bcf reset3
movlw d'25'
movwf reset1
submenu6
movlw d'25'
movwf reset2
submenu7
movlw d'60'
movwf reset3
submenu8
bftsc tecla3
goto submenu9
btfsc teclas
goto submenu9
decfsz reset3
goto submenu8
decfsz reset2
goto submenu7
decfsz reset1
goto submenu6
call tono
call motor3b
goto submenu
submenu9
call tono ;error, quedan menos intentos
call antirrebotes
bsf ledrojo
call tono
call demoraled
bcf ledrojo
goto submenu1
submenu10
call tono ;ciclo de tecla aceptada, falta una mas
call antirrebotes
bcf reset1
bcf reset2
bcf reset3
movlw d'25'
movwf reset1
submenu11
movlw d'25'
movwf reset2
submenu12
movlw d'60'
movwf reset3
submenu13
bftsc tecla3
goto apertura
btfsc teclas
goto submenu9
decfsz reset3
goto submenu13
decfsz reset2
goto submenu12
decfsz reset1
goto submenu11
call tono
call motor3b
goto submenu
submenu9
call tono
call antirrebotes
bsf ledrojo
call tono
call demoraled
bcf ledrojo
goto submenu1
apertura
call tono ;sistema de destrabo y apertura automatica
call antirrebotes
bsf ledverde
call tono
call demoram2a
call demoram1a
cerrado
bcf reset1 ;se inicia un temporizador para cerrado automatico si se a olvidado la puerta abierta
bcf reset2
bcf reset3
movlw d'25'
movwf reset1
cerrado1
movlw d'50'
movwf reset2
cerrado2
movlw d'50'
movwf reset3
cerrado3
btfsc arranque
goto sellar
decfsz reset3
goto cerrado3
decfsz reset2
goto cerrado2
decfsz reset1
goto cerrado1
call tono ;alarma al usuario que esta por cerrarse la puerta, presionar arranque para cancelar accion
call antirrebotes
btfsc arranque
goto cerrado4
call tono
call antirrebotes
btfsc arranque
goto cerrado4
call tono
call antirrebotes
btfss arranque
goto sellar
cerrado4
call antirrebotes
call antirrebotes
bcf arranque
goto cerrado
sellar
bcf ledrojo ;cerrado automatico
bcf ledverde
bcf arranque
bcf tecla3
bcf teclas
call motor3b
call demoram1b
call demoram2b
goto submenu
end
tono
movlw d'5'
movwf timer4
tono2
movlw d'50'
movwf timer3
tono3
movlw d'4'
movwf timer1
movwf timer2
bsf buzz
tono4
decfsz timer1
goto tono4
bcf buzz
tono5
decfsz timer2
goto tono5
decfsz timer3
goto tono3
decfsz timer4
goto tono2
return
demoraled
movlw d'80'
movwf timer1
demoraled2
movlw d'80'
movwf timer2
demoraled3
decfsz timer2
goto demoraled3
decfsz timer1
goto demoraled2
return
antirrebotes
movlw d'80'
movwf timer1
antirrebotes2
movlw d'40'
movwf timer2
antirrebotes3
decfsz timer2
goto antirrebotes3
decfsz timer1
goto antirrebotes2
return
demoram1a
movlw d'80'
movwf timer1
demoram12a
movlw d'40'
movwf timer2
movwf timer3
bsf motor1a
demoram13a
decfsz timer2
goto demoram13a
bcf motor1a
demoram14a
decfsz timer3
goto demoram14a
decfsz timer1
goto demoram12a
return
demoram1b
movlw d'80'
movwf timer1
demoram12b
movlw d'40'
movwf timer2
movwf timer3
bsf motor1b
demoram13b
decfsz timer2
goto demoram13b
bcf motor1b
demoram14b
decfsz timer3
goto demoram14b
decfsz timer1
goto demoram12b
return
demoram2a
movlw d'25'
movwf timer1
demoram22a
movlw d'40'
movwf timer2
movwf timer3
bsf motor2a
demoram23a
decfsz timer2
goto demoram23a
bcf motor2a
demoram24a
decfsz timer3
goto demoram24a
decfsz timer1
goto demoram22a
return
demoram2b
movlw d'25'
movwf timer1
demoram22b
movlw d'40'
movwf timer2
movwf timer3
bsf motor2b
demoram23b
decfsz timer2
goto demoram23b
bcf motor2b
demoram24b
decfsz timer3
goto demoram24b
decfsz timer1
goto demoram22b
return
motor3a
movlw d'50'
movwf timer1
motor3a2
movlw d'20'
movwf timer2
movwf timer3
bsf motor3a
motor3a3
decfsz timer2
goto motor3a3
bcf motor3a
motor3a4
decfsz timer3
goto motor3a4
decfsz timer1
goto motor3a2
return
motor3b
movlw d'50'
movwf timer1
motor3b2
movlw d'20'
movwf timer2
movwf timer3
bsf motor3b
motor3b3
decfsz timer2
goto motor3b3
bcf motor3b
motor3b4
decfsz timer3
goto motor3b4
decfsz timer1
goto motor3b2
return
Última edición por un moderador: