Autor | Mensaje |
---|
| Asunto: Micro 16F84A Publicado: 09 Dic, 2008 - 07:49 |
|
Nuevo en el Foro

Registrado: 09 Dic, 2008
Mensajes: 1
|
| Hola todos
Alguien me puede ayudar a decifrar que hace este codigo?
Gracias de antemano
********************************************************
LIST P=16F84A
INCLUDE "P16F84A.INC"
CBLOCK OXOC
CONT LOOP, LOOP1, LOOP2
ENDC
ORG 00
GOTO INICIO
ORG 05
; SECCION PARA LAS SUBRUTINAS
RETARDO MOVLW D'70'
MOVWF LOOP
CICLO2 MOVLW D'50'
MOVWF LOOP1
CICLO1 MOVLW D'70'
MOVWF LOOP2
DECFSZ LOOP2
GOTO $-1
DECFSZ LOOP1
GOTO CICLO1
DECFSZ LOOP
GOTO CICLO2
RETURN
INTERM MOVLW OXFF
MOVWF PORTB
CALL RETARDO
GOTO LEER
APAGUE CLRF PORTB
GOTO LEER
; CONFIGURACION DE PUERTOS
INICIO BANKSEL TRISA
CLRF TRISB
MOVLW B'1111'
MOVWF TRISA
BANSKSEL PORTB
******************************************************** |
PIC.rar | Descripción: | |  Descargar | Nombre del archivo: | PIC.rar | Tamaño: | 417 Bytes | Descargado: | 633 veces |
| |
|
|
|
 |
| Asunto: Re: Micro 16F84A Publicado: 30 Ene, 2009 - 12:39 |
|
Nuevo en el Foro


Registrado: 29 Ene, 2009
Mensajes: 17
Ubicación: Santa Fe, Argentina
|
| Hola, no abrí el archivo comprimido, pero te cuento lo que veo en el listado que mostras:
Primero va a INICIO( org 00 goto INICIO ):
Pone puerto B como salidas ( todo en 1 en TRISB)
Puerto A: A0A1A2A3= entradas A4A5A6A7= Salidas
Y ahí supuestamente queda varado el programa.
La Etiqueta INTERM hace lo siguiente:
PtoB todo en 1.
hace un Retardo
va a la etiq. LEER
La Etiqueta APAGUE hace lo siguiente:
Pto.B todo en 0. va a la etiq. LEER
La Etiqueta RETARDO es la que ocupa casi todo el listado. Son tres bucles anidados que efectúan el retardo esperado. Yo no lo calculé.
El retardo se calcula teniendo en cuenta por cuantas instrucciones pasan los ciclos anidados ( hay instrucciones que demoran 1 ciclo de instrucción y las instrucciones de salto demoran 2 ciclos en gral.). Teniéndo la cantidad de instrucciones que pasaron y conociendo el ciclo del reloj del PIC ( si tengo un cristal de 4 MHz su período sería de 0.25 microsegundos, pero el pic realiza una instrucción cada 4 ciclos de reloj, por lo que el ciclo de instrucción será de 1 microsegundo )se multiplican la cantidad de instrucciones por un microsegundo y se obtiene el retardo programado.
Es lo único que te puedo decir.
Saludos. |
| |
|
|
|
 |
|