Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ezquerra_makina

#1
Hola, tengo que pasar varias practicas de ensamblador a C y estoy lleno de dudas. el codigo en ensamblador si que lo tengo pero no sé muy bien como pasarlo...si me pudieseis ayudar, os dejo aquí el programa...

;*************************************************************************
;      TEMA_2.ASM
; Lector de datos digitales. El sistema visualizar  en el PORTD los datos
; digitales que se presenten mediante 8 interruptores en el PORTB. Estos
; datos se visualizar n si el bit menos significativo del PortA
; se encuentra activado, en caso contrario se apagar n todos los LEDs. 
;*************************************************************************

   LIST   P=16F877A   ; PIC16F877A microcontrolador utilizado

   INCLUDE   "P16F877A.INC"   


; Registros particulares del programa
TMP1   equ   0x20

; Constantes
W   equ      0
F   equ      1

;*************************************************************************
;      INICIO DEL PROGRAMA
;*************************************************************************
   org   00
   GOTO   START       ; Posición comienzo programa para                       simulador
   org      04
   GOTO   INT      ; Posici n comienzo interrupciones
   GOTO   START      ; Posici n comienzo programa para grabar

;*************************************************************************
;      INTERRUPCIONES
;*************************************************************************
INT:
   RETFIE            ; Fin de la interrupci n

;*************************************************************************
;      PROGRAMA PRINCIPAL
;*************************************************************************

START
   CLRF   INTCON      ; Eliminar posibles interrupciones
   BCF      STATUS,RP0   ; Banco 0 (asegurar)
   BCF      STATUS,RP1   ;
   
; Inicializaci n de puertos
   BSF      STATUS,RP0   ; Banco 1
   MOVLW   B'00111111'
   MOVWF   TRISA&7F   ; A5-A0 entrada
   MOVLW   B'00000111'
   MOVWF   ADCON1&7F   ; Puerto A digital
   MOVLW   B'11111111'
   MOVWF   TRISB&7F   ; B7-B0 entrada
   MOVLW   B'10111111'
   MOVWF   TRISC&7F   ; C5-C0 entrada, C7 y C6 reservados l nea serie
   MOVLW   B'00000000'
   MOVWF   TRISD&7F   ; D7-D0 salida
   MOVLW   B'00000000'
   MOVWF   TRISE&7F   ; E2-E0 salida
   BCF      STATUS,RP0   ; Banco 0

;*************************************************************************
;      BUCLE DEL PROGRAMA
;*************************************************************************

BUCLE

   MOVF   PORTA,W      ; Leer PORTA al acumulador
   MOVF   PORTC,W      ; Leer PORTB al acumulador
   MOVLW   B'10101100'

   BTFSS   PORTA,2      ; Test PORTA2
   GOTO    LEER_PORTC
   MOVLW   B'10101010'   ; Cargar dato inmediato al acumulador
   GOTO    ESCRIBIR_PORTC


LEER_PORTC:
   MOVF   PORTC,W      ; Leer PORTC al acumulador

ESCRIBIR_PORTC:
   MOVWF   PORTD      ; Escribir en PORTD

   GOTO   BUCLE
   
   NOP
   NOP
   NOP
   end