Haz una pregunta
  Foros de Electrónica » Diseño digital » Interfaces y Programación
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

31/03/2008 #1


Problemas para terminar un programa
Hola a todos una vez mas solicito un poco de orientación esta vez con un programa.

La verdad soy nuevo en la programación en ensamblador, estoy usando el mplab de microchip y quiero programar el 18f2455. Esto es lo que necesito que haga el programa.

Usando ya sea el puerto A como entradas y que al momento de recibir un pulso en este caso un 1 en cualquier pin de este puerto se mande una señal de salida a cualquier pin de un puerto de salida B.

Aqui tengo una parte del codigo que estoy haciendo pero tengo probemas para hacer lo que quiero hacer.

ORG 0X000800 ;RESET VECTOR
BRA START

START ; SETUP I/O PORTS
CLRF PORTA ; HABILITAR PUERTO A
SETF TRISA ; PUERTO A COMO ENTRADAS
MOVWF ADCON1 ; PORT A TODO DIGITALES ENTRADAS
MOVLW 07h ; CONFIGURAR LOS COMPARADORES
MOVLW 0CFh ; INICIALIZAR DIRECCIONES DE DATOS
MOVF PORTA,W ; LEE EL VALOR DE LAS VARIABLES DE ENTRADA
GOTO COMPARA
COMPARA
CPFSGT F,W ; COMPARA REGISTROS
BSF STATUS,RP0 ; ACCESO AL BANCO 1
CLRF PORTB ; LIMPIAR EL PUERTO B COMO SALIDA
MOVLW B'00000000' ; CAMBIAR EN MODO DEBUGGER B6
MOVWF TRISB ; MOVER DATO DE W AL F

END

Cualquier orientación que me puedan dar para completar este programa es bienvenido. Puesto que me encuentro atorado con el desarrollo de este programa.

Saludos
22/04/2008 #2


En este ejemplo el PORTA se encuentra atraves de resistencia a un valor alto 5V
cuando aparece un nivel bajo en cualquier entrada A ,el PORTB cambia de estado
if PortA.0=0 Portb.0=1
;----------------------------------------------------------
; Code producido por Manny

Code original escrito en Proton
proyect name Inputoutput
;----------------------------------------------------------
NOLIST
#include "C:\PROGRAM FILES\PROTONIDELITE\INPUTOUPUT.PBP"
LIST

_A = 0
F2_SOF equ $ ; INPUTOUPUT.PRP
F2_EOF equ $ ; INPUTOUPUT.PRP
F1_SOF equ $ ; INPUTOUPUT.BAS
F1_000016 equ $ ; in [INPUTOUPUT.BAS] TRISA=%11111111 'convirte el porta entrada
Setf TRISA,0
F1_000017 equ $ ; in [INPUTOUPUT.BAS] TRISB=%00000000 'conviete el portb en salida
Clrf TRISB,0
F1_000019 equ $ ; in [INPUTOUPUT.BAS] ADCON1=%00001111 'convierte porta en entrada digital
Movlw 15
Movwf ADCON1,0
F1_000020 equ $ ; in [INPUTOUPUT.BAS] Input PORTA
Setf TRISA,0
F1_000021 equ $ ; in [INPUTOUPUT.BAS] Output PORTB
Clrf TRISB,0
F1_000022 equ $ ; in [INPUTOUPUT.BAS] PORTB=0
Clrf PORTB,0
F1_000023 equ $ ; in [INPUTOUPUT.BAS] PORTA=1
Movlw 1
Movwf PORTA,0
DETECTOR
F1_000026 equ $ ; in [INPUTOUPUT.BAS] Input PORTA
Setf TRISA,0
F1_000028 equ $ ; in [INPUTOUPUT.BAS] If PORTA.0=0 Then
Btfsc PORTA,0,0
Go@to bc@LL2
F1_000029 equ $ ; in [INPUTOUPUT.BAS] PORTB.0=0
Bcf PORTB,0,0
F@Jump bc@LL3
bc@LL2
F1_000030 equ $ ; in [INPUTOUPUT.BAS] Else
F1_000031 equ $ ; in [INPUTOUPUT.BAS] PORTB.0=1
Bsf PORTB,0,0
F1_000032 equ $ ; in [INPUTOUPUT.BAS] End If
bc@LL3
F1_000035 equ $ ; in [INPUTOUPUT.BAS] If PORTA.1=0 Then
Btfsc PORTA,1,0
Go@to bc@LL5
F1_000036 equ $ ; in [INPUTOUPUT.BAS] PORTB.1=1
Bsf PORTB,1,0
F@Jump bc@LL6
bc@LL5
F1_000037 equ $ ; in [INPUTOUPUT.BAS] Else
F1_000038 equ $ ; in [INPUTOUPUT.BAS] PORTB.1=0
Bcf PORTB,1,0
F1_000039 equ $ ; in [INPUTOUPUT.BAS] End If
bc@LL6
F1_000043 equ $ ; in [INPUTOUPUT.BAS] GoTo detector
F@Jump DETECTOR
F1_EOF equ $ ; INPUTOUPUT.BAS
LIST
End
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Interfaces y Programación

Lenguajes de programación, gestión y manejo de puertos

Cerrar
Foros de Electrónica » Diseño digital » Interfaces y Programación

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.