CONTADOR CON DISPLAY Y MOTOR DE PASOS

 diagrama del contador de personas

           Este es un contador simple con dos pulsadores que incrementan y decrementan un display por el puerto 0 del microcontrolador at89c51 o at89c52 es indiferente, también gira un motor paso a paso a la izquierda y a la derecha.

           La lógica es la siguiente por ejemplo para un garaje si una persona presiona el pulsador ENTRADA (que puede ser reemplazado por un pulsador de peso para vehículos) el motor paso gira en un sentido  y luego en el otro simulando abrir una barda y el display se incrementa , cuando llega a presionar el pulsador (puede cambiarse por un sensor de peso) “SALIDA”  se decrementa el motor se gira el motor de pasos

           Para el correcto funcionamiento de este circuito debe de conectar un decodificador de 7 segmentos entre el puerto 0 y el display, ya que no existe display de cuatro pines 

            Este circuito es muy útil pues sirve para presentar varios proyectos como ser teleférico ascensor, control de estacionamiento, garaje, etc

CÓDIGO FUENTE

;----------------------------------------------------------------------------------------

; programa : contador de objetos o de personas

; descripccion : simple programa que cuenta atraves de un display la cantidad de veces

; que se ha pulsado el pulsador "entrada" incrementando dicho display

; decrementa en caso de que el pulsador presionado sea "salida"

; ya sea en el caso de que se haya entrado o salida el motor de pasos gira para simular

; talves que se ha abieto una puerta o un garaje o bueno... lo que se le ocurra en realidad

; habre y cierra con el motor de pasos

;

;Email:

;       [email protected]

;       [email protected]

;

;Paginas:

;http://es.geocities.com/raulalejandroql

;

; Cel 72097633 Dom 72039662

;

;----------------------------------------------------------------------------------------

contador    equ   p0

entrada           equ   p1.0

salida            equ   p1.1

motorpp           equ   p2

veces       equ   20h

 

            org   000h

 

            mov   contador,#0

 

bucle:            nop

 

in:         JB    entrada,out       ; se ha precionado en la entrada

            acall rebotes                 ; eliminador de rebotes

            acall rebotes

            inc   contador          ; incremento el puerto del display

            acall abremotorpp       ; gira el motor

            acall retardo                 ; cuanto tiempo vaha estar abierdo???

            acall retardo

            acall retardo

            acall retardo

            acall cierramotorpp

 

out:        JB    salida,in         ; preciono en la salida

            acall rebotes

            acall rebotes

            dec   contador          ; decrementa contador

            acall abremotorpp       ; gira el motor

            acall retardo                   ; cuanto tiempo vaha estar abierdo???

            acall retardo

            acall retardo

            acall retardo

            acall cierramotorpp

            ajmp  bucle

;-----------------------------------------------------------------------------

; Gira el motor paso a paso la cantidad de veces q diga "veces" 

;-----------------------------------------------------------------------------   

abremotorpp:

            mov   veces,#10h

abrir:

            mov   p2,#00000001b

            acall retardo

            mov   p2,#00000010b

            acall retardo

            mov   p2,#00000100b

            acall retardo

            mov   p2,#00001000b

            acall retardo

            djnz  veces,abrir

            ret

;-----------------------------------------------------------------------------

; Gira el motor paso a paso la cantidad de veces q diga "veces" 

;-----------------------------------------------------------------------------   

cierramotorpp:

            mov   veces,#10h

cerrar:

            mov   p2,#00001000b

            acall retardo

            mov   p2,#00000100b

            acall retardo

            mov   p2,#00000010b

            acall retardo

            mov   p2,#00000001b

            acall retardo

            djnz  veces,cerrar

            ret

;-----------------------------------------------------------------------------

; Eliminador de rebotes

;-----------------------------------------------------------------------------

REBOTES:

       mov R4,#0ffh          ;eFH

buc2: mov r2,#0ffh          ;50H

buc1: djnz r2,buc1

       djnz       R4,buc2

       ret

;-----------------------------------------------------------------------------

; retardo para gira del motor

;-----------------------------------------------------------------------------

retardo:

            mov   r5,#0a0h#0a0h

bucle3:          mov   R6,#0a0h         

bucle2:          mov   r7,#022h         

bucle1:          djnz r7,bucle1

            djnz r6,bucle2

            djnz  r5,bucle3

            ret

end

             Descarga el programa completo para el Micro...

Principal   Descargar   Enviar Correo

 


    Bueno cualquier comentario a mi pagina estaré gustoso de responder tus preguntas o dudas, puedes enviarme  un correo electrónico a [email protected] y si eres de La Paz Bolivia puedes llamarme por teléfono al 72097633 , será un gusto atenderte, te recomiendo también accedas a la pagina principal donde encontraras un listado de programas que apuesto serán de tu agrado, recuerda que puedes publicar anuncios o proyectos con todos tus datos totalmente GRATIS!!! , será para mi un gusto serte de utilidad...


1