Lun Mar 07, 2011 8:12 pm
Linkgl escribió:Bueno para los que no conozcan de electrónica este ASM es un poco
diferente al que conocemos común mente como FASM, NASM, MASM y TASM,
este ASM esta hecho para procesadores de la compañía microchip que nos
provee este microcontrolador PIC, el código esta hecho para el 16F84A
pero podría funcionar perfectamente en otros microcontroladores de gama
media.
Lo que hace el código siguiente es mostrar un numero en la
pantalla de 7 segmentos dependiendo de el swich que se levante, para
esto se necesitan 3 switch conectados a tierra y unas resistencias (yo
las puse de 10k) que van a VCC usando la inversa es decir cuando se
levante el switch habrá corriente y cuando este abajo no habrá
corriente, ustedes pueden modificarlo y hacerlo de forma directa lo
interesante es el código...
Agradecimientos especiales a Konanxp
- Código:
LISTP=16F84A
#INCLUDE <P16F84A.INC>
RADIX HEX
AUXILIAR EQU 0X0C
CONTADOR EQU 0X0D
ORG 0
GOTO INICIO
ORG 5
INICIO BSF STATUS,RP0 ;NOS PASAMOS AL BANCO 1
MOVLW B'00000010'
MOVWF TRISB
MOVLW B'00111' ;CONFIGURAMOS 3 PUERTOSA ENTRADA
MOVWF TRISA ;APLICAMOS LA CONFIGURACION AL PUERTO A
BCF STATUS,RP0 ;NOS PASAMOS AL BANCO 0
BORRAR MOVLW B'11111111'
MOVWF PORTB
SEGUIR MOVLW B'00001' ;CARGAMOS EL PUERTO A EN W
XORWF PORTA ;COMPARAMOS W CON EL PUERTOA (IF W == PUERTOA)
BTFSS STATUS,Z ;RESULTADO DEL FLAG Z (IF W==PUERTOA THEN Z=0 ELSE Z=1)
GOTO PROBAR2 ;SI Z ES IGUAL A 1 ENTONCES VAMOS A SEGUIR
MOVLW B'11110010';DIBUJAMOS EL 1
MOVWF PORTB ;CARGAMOS W AL PUERTO B
GOTO SEGUIR
PROBAR2 MOVLW B'00010'
XORWF PORTA ;COMPARAMOS W CON EL PUERTOA (IF W == PUERTOA)
BTFSS STATUS,Z ;RESULTADO DEL FLAG Z (IF W==PUERTOA THEN Z=0 ELSE Z=1)
GOTO PROBAR3 ;SI Z ES IGUAL A 1 ENTONCES VAMOS A SEGUIR
MOVLW B'01001000';DIBUJAMOS EL 2
MOVWF PORTB
GOTO SEGUIR
PROBAR3 MOVLW B'00100'
XORWF PORTA ;COMPARAMOS W CON EL PUERTOA (IF W == PUERTOA)
BTFSS STATUS,Z ;RESULTADO DEL FLAG Z (IF W==PUERTOA THEN Z=0 ELSE Z=1)
GOTO BORRAR ;SI Z ES IGUAL A 1 ENTONCES VAMOS A SEGUIR
MOVLW B'01100000';DIBUJAMOS EL 3
MOVWF PORTB ;CARGAMOS W AL PUERTO B
GOTO SEGUIR ;NOTA 0=ENCENDIDO 1=APAGADO
END