Como Hacer Un Robot Casero
Enviado por ibuky • 21 de Enero de 2013 • 3.358 Palabras (14 Páginas) • 827 Visitas
2
[pic]
Fig1. Diagrama esquemático de la práctica 2.
8. Implementación del experimento o sistema
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _RC_OSC & _LVP_OFF
include
List P=16f877a ;Tipo de procesador
cont equ 0x20 ;contador rutina retardo
index equ 0x21 ;índice de la tabla de codigos de 7 segmentos
nido equ 0x22 ;indice para el contador anidado
org 0 ;vector de reset
bsf STATUS,RP0 ;Banco 1
movlw 0x03
movwf TRISB ;RB1, RB0 entradas
movlw 0x00
movwf PORTD ;Puerto d salida
bcf STATUS,RP0 ;Banco 0
clrf index ;inicializamos registro en cero
rulo movf index,W
call tabla ;llama subrutina tabla
movwf PORTD ;envía código de 7 segmentos por el ;Puerto D
call retardo2s ;retardo de tiempo de 2 segundos
;algoritmo antirrebotes********************************************
btfss PORTB, 1
call ascendente
movlw 0x05
movwf cont
pollito nop
decfsz cont,1
goto pollito
btfss PORTB, 1
call ascendente
call descendente
;subrutinas*********************************************************
ascendente incf index,F ;incrementa conteo
movf index,W
xorlw 0x0A ;conteo =10?
btfsc STATUS,Z
clrf index ;si conteo es 10, reinicia la cuenta
goto rulo
descendente movf index,W
xorlw 0x00
movlw 0x0A
btfsc STATUS,Z
movwf index
decf index,F ;decrementa conteo
goto rulo
;******************************************************************
tabla
addwf PCL,F
retlw h'c0' ;código 0
retlw h'f9' ;código 1
retlw h'a4' ;código 2
retlw h'b0' ;código 3
retlw h'99' ;código 4
retlw h'92' ;código 5
retlw h'82' ;código 6
retlw h'f8' ;código 7
retlw h'00' ;código 8
retlw h'18' ;código 9
;******************************************************************
retardo2s movlw 0x02
movwf nido
retardo movlw 0xFF
movwf cont
nada nop
decfsz cont,1
goto nada
decfsz nido
goto retardo
return
End
-Encabezado-------------
LIST P=16F84
#include <P16F84luis.INC>
;-------Configuración de puertos-------
ORG 0x00
GOTO inicio
ORG 0x04
...