sábado, 29 de septiembre de 2007

CONTADOR ASCENDENTE DESCENDENTE

El programa posee cuatro opciones controladas por dos switch, cada una de estas opciones controla el estado del puerto 2, ya sea poniéndolo a cero a uno o convirtiéndolo en un contador ascendente o descendente. Es muy útil para la aplicación de proyectos diversos con selección de opciones con varios pines.


DIAGRAMA DEL CIRCUITO


El circuito fue diseño en PROTEUS, así que el armarlo físicamente debes de colocar el cristal en el micro además de colocar el reset y el EA pin 31 a Vcc, no lo olvides.




CÓDIGO FUENTE DEL PROGRAMA

; - - - - - - - - - - - - - - - - - - - - - - - -
; Contador Ascendente Descendente
; - - - - - - - - - - - - - - - - - - - - - - - -
;p1 .1.0 Acccion
; 0 0 p2 todo cero
; 0 1 p2 contador ascendente
; 1 0 p2 contador descendente
; 1 1 p2 todo uno
; - - - - - - - - - - - - - - - - - - - - - - - -
; Raul Alejandro Quispe Larico
; Cel 72097633
; raulalejandroql@yahoo.es
; - - - - - - - - - - - - - - - - - - - - - - - -
contador equ 30h
org 0000h
inicio:
mov contador,#00h
mov dptr,#tabla ; carga el menu de opciones
leer:
mov a,p1 ; cargar del puerto
anl a,#00000011b ; limpiar los bits no necesarios
rl a ; multiplicar por 2
jmp @a+dptr

tabla:
ajmp todocero
ajmp ascendente
ajmp descendente
ajmp todouno
;--------------------------------------------------------------
todocero:
;--------------------------------------------------------------
mov contador,#00h
mov p2,contador
ajmp leer
;--------------------------------------------------------------
ascendente:
;--------------------------------------------------------------
inc contador
mov p2,contador
acall retardo
ajmp leer
;--------------------------------------------------------------
descendente:
;--------------------------------------------------------------
dec contador
mov p2,contador
acall retardo
ajmp leer
;--------------------------------------------------------------
todouno:
;--------------------------------------------------------------
mov contador,#0ffh
mov p2,contador
ajmp leer
;--------------------------------------------------------------
retardo:
;--------------------------------------------------------------
MOV R3,#0aeH
Sal0: MOV R4,#0aeH
Sal1: MOV R5,#07H
Sal2: DJNZ R5,Sal2
DJNZ R4,SAL1
DJNZ R3,SAL0
RET
end

Para cualquier consulta escriba a raualejandroql@gmail.com y visite nuestro FORO-Microcontroladores para poder intercambiar opiniones y dudas al respecto.

No hay comentarios: