Me interesa mucho el tema de la electronica digital, he conseguido un programador de PIC's y un PIC 18f4550. Tengo conocimiento sobre programacion en C por lo que opte por usar miKroC. El proyecto con el que decidi comenzar es el de un encendido y apagado de un LED.
Aca esta mi codigo en miKroC:
(uso el oscilador interno)
El codigo en ASM generado por miKroC:
Esta es la vista desde el programador:
(El programador estaba descontecado, es solo como muestra)
Las pruebas en proteus fueron satisfactorias, pero a la hora de ponerlo en practica, el controlador no funciona y se calienta. Tengo un transformador de 220v a 9v CC de 500 mA para el proyecto y es regulado con un 7805A (conecto el positivo en la pata de entrada del 7805 y directamente saco la conexion positiva a las 2 patas positivas de este controlador y las negativas van directamente al negativo).
Me gustaria saber que podria estar haciendo mal, desde ya, muchas gracias.
Aca esta mi codigo en miKroC:
(uso el oscilador interno)
Código:
void main() {
TRISB.F1 = 0;
while(1) {
PORTB.F1 = 1;
Delay_ms(800);
PORTB.F1 = 0;
Delay_ms(800);
}
}
Código:
; ADDRESS OPCODE ASM
; ----------------------------------------------
$0000 $EF04 F000 GOTO _main
$0008 $ _main:
;LEDS.c,2 :: void main() {
;LEDS.c,3 :: TRISB.F1 = 0;
$0008 $9293 BCF TRISB, 1, 0
;LEDS.c,4 :: while(1) {
$000A $ L_main_0:
;LEDS.c,5 :: PORTB.F1 = 1;
$000A $8281 BSF PORTB, 1, 0
;LEDS.c,6 :: Delay_ms(800);
$000C $0E09 MOVLW 9
$000E $6E0C MOVWF STACK_12, 0
$0010 $0EFF MOVLW 255
$0012 $6E0B MOVWF STACK_11, 0
$0014 $0EFF MOVLW 255
$0016 $6E0A MOVWF STACK_10, 0
$0018 $2E0C DECFSZ STACK_12, F, 0
$001A $D001 BRA $+2
$001C $D007 BRA $+8
$001E $2E0B DECFSZ STACK_11, F, 0
$0020 $D001 BRA $+2
$0022 $D003 BRA $+4
$0024 $2E0A DECFSZ STACK_10, F, 0
$0026 $D7FE BRA $-1
$0028 $D7FA BRA $-5
$002A $D7F6 BRA $-9
$002C $0E29 MOVLW 41
$002E $6E0B MOVWF STACK_11, 0
$0030 $0EFF MOVLW 255
$0032 $6E0A MOVWF STACK_10, 0
$0034 $2E0B DECFSZ STACK_11, F, 0
$0036 $D001 BRA $+2
$0038 $D003 BRA $+4
$003A $2E0A DECFSZ STACK_10, F, 0
$003C $D7FE BRA $-1
$003E $D7FA BRA $-5
$0040 $0E6C MOVLW 108
$0042 $6E0A MOVWF STACK_10, 0
$0044 $2E0A DECFSZ STACK_10, F, 0
$0046 $D7FE BRA $-1
;LEDS.c,7 :: PORTB.F1 = 0;
$0048 $9281 BCF PORTB, 1, 0
;LEDS.c,8 :: Delay_ms(800);
$004A $0E09 MOVLW 9
$004C $6E0C MOVWF STACK_12, 0
$004E $0EFF MOVLW 255
$0050 $6E0B MOVWF STACK_11, 0
$0052 $0EFF MOVLW 255
$0054 $6E0A MOVWF STACK_10, 0
$0056 $2E0C DECFSZ STACK_12, F, 0
$0058 $D001 BRA $+2
$005A $D007 BRA $+8
$005C $2E0B DECFSZ STACK_11, F, 0
$005E $D001 BRA $+2
$0060 $D003 BRA $+4
$0062 $2E0A DECFSZ STACK_10, F, 0
$0064 $D7FE BRA $-1
$0066 $D7FA BRA $-5
$0068 $D7F6 BRA $-9
$006A $0E29 MOVLW 41
$006C $6E0B MOVWF STACK_11, 0
$006E $0EFF MOVLW 255
$0070 $6E0A MOVWF STACK_10, 0
$0072 $2E0B DECFSZ STACK_11, F, 0
$0074 $D001 BRA $+2
$0076 $D003 BRA $+4
$0078 $2E0A DECFSZ STACK_10, F, 0
$007A $D7FE BRA $-1
$007C $D7FA BRA $-5
$007E $0E6C MOVLW 108
$0080 $6E0A MOVWF STACK_10, 0
$0082 $2E0A DECFSZ STACK_10, F, 0
$0084 $D7FE BRA $-1
;LEDS.c,9 :: }
$0086 $D7C1 BRA L_main_0
;LEDS.c,10 :: }
$0088 $D7FF BRA $
Esta es la vista desde el programador:
(El programador estaba descontecado, es solo como muestra)
Las pruebas en proteus fueron satisfactorias, pero a la hora de ponerlo en practica, el controlador no funciona y se calienta. Tengo un transformador de 220v a 9v CC de 500 mA para el proyecto y es regulado con un 7805A (conecto el positivo en la pata de entrada del 7805 y directamente saco la conexion positiva a las 2 patas positivas de este controlador y las negativas van directamente al negativo).
Me gustaria saber que podria estar haciendo mal, desde ya, muchas gracias.