estoy haciendo un cubo de leds de 5x5x5 utilizo el micro atmel 89S52 y transistores 2N2222 para el control de los niveles como de las columnas, programo en ensamblador usando el keil uvision y el proteus 8
he checado en ambas simulaciones y no hay errores con la programación o conexiones
si puse resistencias pull up al puero 0,no sobrepase la memoria del micro, ni la distancia de llamada ya que utilice llamada larga LCALL
y lo cargo al micro con la interfas usb a traves del progisp.exe el cual tampoco me marca algun error
en la programacion formo varias figuras individuales pero el micro solo hace la primera y las demas no
no continua con el programa
alguna solucion para que aga todo el programa
MOV P0,#00H
MOV P1,#00H
MOV P2,#00H
MOV P3,#00H
SJMP INICIO
MOV SP,#0X07
INICIO: SETB P2.0
LCALL NIVEL1
CLR P2.0
SETB P2.1
LCALL NIVEL1
CLR P2.1
MOV A,#02H
LCALL TIEMPO
DESPLASA: MOV P2,A
LCALL TIEMPO
RL A
JNB P2.4,DESPLASA
SJMP GUSANO
GUSANO: SETB P2.4
MOV A,#20H
LCALL TIEMPO
PISTOLA: MOV P1,A
LCALL TIEMPO
RL A
JNB P1.7,PISTOLA
LCALL OBJETIVO
LCALL LIMPIA
LCALL FIGURA2
LCALL BASUCA
LCALL CUBO
CLR P1.7
LCALL MOVE
LCALL LIMPIA
SJMP GUSANITO
GUSANITO: MOV R2,#10H
SETB P1.2
LCALL TIEMPO
MOV A,#01H
LCALL TIEMPO
GUSANO1: MOV P1,A
LCALL TIEMPO
RL A
JNB P1.1,GUSANO1
CLR A
MOV A,#06H
LCALL TIEMPO
GUSANO2: MOV P1,A
LCALL TIEMPO
RL A
JNB P1.4,GUSANO2
CLR P1.2
MOV SP,#0X07
MOVE: MOV P2,R0
LCALL TIEMPO
MOV P3,#0C3H
LCALL TIEMPO
MOV P2,#03H
LCALL TIEMPO
MOV P3,#0C0H
LCALL TIEMPO
MOV P0,#18H
LCALL TIEMPO
MOV P2,R0
RET
CUBO: MOV R0,#00H
MOV R4,#03H
LCALL TIEMPO
MOV P1,R4
LCALL TIEMPO
MOV P0,R4
LCALL TIEMPO
MOV P2,#18H
LCALL TIEMPO
MOV P2,R0
LCALL TIEMPO
MOV P0,#06H
LCALL TIEMPO
MOV P3,#30H
LCALL TIEMPO
MOV P2,#0CH
LCALL TIEMPO
MOV P2,R0
LCALL TIEMPO
MOV P3,#61H
LCALL TIEMPO
MOV P1,#80H
LCALL TIEMPO
MOV P2,#06H
LCALL TIEMPO
MOV P2,R0
LCALL TIEMPO
MOV P3,#07H
LCALL TIEMPO
MOV P2,#83H
RET
BASUCA: SETB P3.5
LCALL TIEMPO
MOV A,#01H
LCALL TIEMPO
CIELO: MOV P2,A
LCALL TIEMPO
RL A
JNB P2.4,CIELO
LCALL TIEMPO
CLR P3.5
LCALL TIEMPO
SETB P1.0
LCALL TIEMPO
CIELO2: MOV P2,A
LCALL TIEMPO
RL A
JNB P2.4,CIELO2
LCALL TIEMPO
CLR P1.0
LCALL TIEMPO
SETB P1.4
LCALL TIEMPO
CIELO3: MOV P2,A
LCALL TIEMPO
RL A
JNB P2.4,CIELO3
LCALL TIEMPO
CLR P1.4
LCALL TIEMPO
SETB P3.2
MOV A,#01H
LCALL TIEMPO
CIELO4: MOV P2,A
LCALL TIEMPO
RL A
JNB P3.2,CIELO4
LCALL TIEMPO
CLR P3.2
LCALL TIEMPO
SETB P0.5
LCALL TIEMPO
CIELO5: MOV P2,A
LCALL TIEMPO
RL A
JNB P2.4,CIELO5
LCALL TIEMPO
CLR P0.5
CLR A
RET
FIGURA2: MOV P2,#1FH
LCALL TIEMPO
MOV P1,#01H
LCALL TIEMPO
JB P1.0,ESCUADRA1
LCALL TIEMPO
ESCUADRA1: INC P1
LCALL TIEMPO
MOV P0,#03H
LCALL TIEMPO
ESCUADRA2: INC P1
INC P0
LCALL TIEMPO
MOV P3,#38H
LCALL TIEMPO
ESCUADRA3: MOV P3,#79H
LCALL TIEMPO
MOV R5,#08H
MOV P0,R5
LCALL TIEMPO
MOV P1,#0E8H
LCALL TIEMPO
ESCUADRA4: SETB P1.4
LCALL TIEMPO
MOV P0,#30H
LCALL TIEMPO
MOV P3,#86H
LCALL TIEMPO
MOV P2,#0FFH
LCALL TIEMPO
LCALL LIMPIA
RET
OBJETIVO: CLR A
CLR P2.4
LCALL TIEMPO
MOV R1,#00H
MOV R2,#00H
MOV P2,R1
LCALL TIEMPO
MOV P0,R2
LCALL TIEMPO
SETB P2.4
LCALL TIEMPO
MOV A,#20H
CORRE1: MOV P1,A
LCALL TIEMPO
RL A
JNB P1.7,CORRE1
CLR A
MOV A,#01H
LCALL TIEMPO
CORRE: MOV P3,A
LCALL TIEMPO
RL A
JNB P3.2,CORRE
CLR A
MOV A,#80H
CORRE2: MOV P2,A
LCALL TIEMPO
SETB P2.4
LCALL TIEMPO
RR A
JNB P2.5,CORRE2
LCALL TIEMPO
SETB P0.5
LCALL TIEMPO
RET
NIVEL1: MOV R1,#1FH
MOV A,R1
LCALL TIEMPO
MOV P1,A
LCALL TIEMPO
CLR A
MOV A,R1
LCALL TIEMPO
MOV P0,A
LCALL TIEMPO
CLR A
MOV R2,#0F8H
MOV A,R2
MOV P3,A
LCALL TIEMPO
CLR A
RET
LIMPIA: MOV R1,#00H
MOV P0,R1
LCALL TIEMPO
MOV R2,#00H
MOV P1,R2
LCALL TIEMPO
MOV R3,#00H
MOV P2,R3
LCALL TIEMPO
MOV R4,#00H
MOV P3,R4
LCALL TIEMPO
RET
TIEMPO: MOV R7,#20
SASUKE: MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
DJNZ R7,SASUKE
RET ...
he checado en ambas simulaciones y no hay errores con la programación o conexiones
si puse resistencias pull up al puero 0,no sobrepase la memoria del micro, ni la distancia de llamada ya que utilice llamada larga LCALL
y lo cargo al micro con la interfas usb a traves del progisp.exe el cual tampoco me marca algun error
en la programacion formo varias figuras individuales pero el micro solo hace la primera y las demas no
no continua con el programa
alguna solucion para que aga todo el programa
MOV P0,#00H
MOV P1,#00H
MOV P2,#00H
MOV P3,#00H
SJMP INICIO
MOV SP,#0X07
INICIO: SETB P2.0
LCALL NIVEL1
CLR P2.0
SETB P2.1
LCALL NIVEL1
CLR P2.1
MOV A,#02H
LCALL TIEMPO
DESPLASA: MOV P2,A
LCALL TIEMPO
RL A
JNB P2.4,DESPLASA
SJMP GUSANO
GUSANO: SETB P2.4
MOV A,#20H
LCALL TIEMPO
PISTOLA: MOV P1,A
LCALL TIEMPO
RL A
JNB P1.7,PISTOLA
LCALL OBJETIVO
LCALL LIMPIA
LCALL FIGURA2
LCALL BASUCA
LCALL CUBO
CLR P1.7
LCALL MOVE
LCALL LIMPIA
SJMP GUSANITO
GUSANITO: MOV R2,#10H
SETB P1.2
LCALL TIEMPO
MOV A,#01H
LCALL TIEMPO
GUSANO1: MOV P1,A
LCALL TIEMPO
RL A
JNB P1.1,GUSANO1
CLR A
MOV A,#06H
LCALL TIEMPO
GUSANO2: MOV P1,A
LCALL TIEMPO
RL A
JNB P1.4,GUSANO2
CLR P1.2
MOV SP,#0X07
MOVE: MOV P2,R0
LCALL TIEMPO
MOV P3,#0C3H
LCALL TIEMPO
MOV P2,#03H
LCALL TIEMPO
MOV P3,#0C0H
LCALL TIEMPO
MOV P0,#18H
LCALL TIEMPO
MOV P2,R0
RET
CUBO: MOV R0,#00H
MOV R4,#03H
LCALL TIEMPO
MOV P1,R4
LCALL TIEMPO
MOV P0,R4
LCALL TIEMPO
MOV P2,#18H
LCALL TIEMPO
MOV P2,R0
LCALL TIEMPO
MOV P0,#06H
LCALL TIEMPO
MOV P3,#30H
LCALL TIEMPO
MOV P2,#0CH
LCALL TIEMPO
MOV P2,R0
LCALL TIEMPO
MOV P3,#61H
LCALL TIEMPO
MOV P1,#80H
LCALL TIEMPO
MOV P2,#06H
LCALL TIEMPO
MOV P2,R0
LCALL TIEMPO
MOV P3,#07H
LCALL TIEMPO
MOV P2,#83H
RET
BASUCA: SETB P3.5
LCALL TIEMPO
MOV A,#01H
LCALL TIEMPO
CIELO: MOV P2,A
LCALL TIEMPO
RL A
JNB P2.4,CIELO
LCALL TIEMPO
CLR P3.5
LCALL TIEMPO
SETB P1.0
LCALL TIEMPO
CIELO2: MOV P2,A
LCALL TIEMPO
RL A
JNB P2.4,CIELO2
LCALL TIEMPO
CLR P1.0
LCALL TIEMPO
SETB P1.4
LCALL TIEMPO
CIELO3: MOV P2,A
LCALL TIEMPO
RL A
JNB P2.4,CIELO3
LCALL TIEMPO
CLR P1.4
LCALL TIEMPO
SETB P3.2
MOV A,#01H
LCALL TIEMPO
CIELO4: MOV P2,A
LCALL TIEMPO
RL A
JNB P3.2,CIELO4
LCALL TIEMPO
CLR P3.2
LCALL TIEMPO
SETB P0.5
LCALL TIEMPO
CIELO5: MOV P2,A
LCALL TIEMPO
RL A
JNB P2.4,CIELO5
LCALL TIEMPO
CLR P0.5
CLR A
RET
FIGURA2: MOV P2,#1FH
LCALL TIEMPO
MOV P1,#01H
LCALL TIEMPO
JB P1.0,ESCUADRA1
LCALL TIEMPO
ESCUADRA1: INC P1
LCALL TIEMPO
MOV P0,#03H
LCALL TIEMPO
ESCUADRA2: INC P1
INC P0
LCALL TIEMPO
MOV P3,#38H
LCALL TIEMPO
ESCUADRA3: MOV P3,#79H
LCALL TIEMPO
MOV R5,#08H
MOV P0,R5
LCALL TIEMPO
MOV P1,#0E8H
LCALL TIEMPO
ESCUADRA4: SETB P1.4
LCALL TIEMPO
MOV P0,#30H
LCALL TIEMPO
MOV P3,#86H
LCALL TIEMPO
MOV P2,#0FFH
LCALL TIEMPO
LCALL LIMPIA
RET
OBJETIVO: CLR A
CLR P2.4
LCALL TIEMPO
MOV R1,#00H
MOV R2,#00H
MOV P2,R1
LCALL TIEMPO
MOV P0,R2
LCALL TIEMPO
SETB P2.4
LCALL TIEMPO
MOV A,#20H
CORRE1: MOV P1,A
LCALL TIEMPO
RL A
JNB P1.7,CORRE1
CLR A
MOV A,#01H
LCALL TIEMPO
CORRE: MOV P3,A
LCALL TIEMPO
RL A
JNB P3.2,CORRE
CLR A
MOV A,#80H
CORRE2: MOV P2,A
LCALL TIEMPO
SETB P2.4
LCALL TIEMPO
RR A
JNB P2.5,CORRE2
LCALL TIEMPO
SETB P0.5
LCALL TIEMPO
RET
NIVEL1: MOV R1,#1FH
MOV A,R1
LCALL TIEMPO
MOV P1,A
LCALL TIEMPO
CLR A
MOV A,R1
LCALL TIEMPO
MOV P0,A
LCALL TIEMPO
CLR A
MOV R2,#0F8H
MOV A,R2
MOV P3,A
LCALL TIEMPO
CLR A
RET
LIMPIA: MOV R1,#00H
MOV P0,R1
LCALL TIEMPO
MOV R2,#00H
MOV P1,R2
LCALL TIEMPO
MOV R3,#00H
MOV P2,R3
LCALL TIEMPO
MOV R4,#00H
MOV P3,R4
LCALL TIEMPO
RET
TIEMPO: MOV R7,#20
SASUKE: MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
DJNZ R7,SASUKE
RET ...