TODOPIC
Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: Cockert en 20 de Octubre de 2004, 13:46:00
-
Hola soy nuevo en esto por saber no sé casi nada, me hace falta que un alma caritativa me hiciera un favor, tengo en proyecto, un aparatejo ,bueno no es difícil, para vuestro conocimiento ,pero para mí es un mundo, los programas que utilizo es el proteus microcode studio con MPLA.
El proyecto se trata de hacer un contador ò calculadora de precio de productos, con el fin se sumar hasta un total mínimo de ocho productos con diferentes precios y cada producto introducirlo las veces que haga falta , y del resultado final, se introduzca lo entregado y te dé el resultado del cambio a entrega. Esto parece tonto pues claro podríamos utilizar una calculadora normal y corriente, pero cuando se trata de vender producto a una velocidad grande y a una cantidad de personas muy elevada no te da tiempo a calcular tan rápido y te quedas bloqueado en un momento dado.
Lo que trato de hacer no es otra cosa que las cajas registradoras de los bares el cual con una pantalla táctil elige el producto dando una rapidez mas grande, pero claro en modelo muy reducido y mas rudimentario.
En este caso el proyecto seria de un dispositivo de ocho pulsadores mínimo el cual cada uno perteneciera a un producto, cada vez que pulsara diera la cantidad de dicho producto tantas veces pulse sumaria, por ejemplo.
Producto1> 1 €
Producto 2> 0,75 €
Producto3> 0,70 €
Producto4> 0,85 €
Producto5> 0,50 €
Producto6> 0,75 €
Producto7> 0,95
Producto8> 0,75
Si pulso tres veces producto 3 dos veces producto 1 y cuatro veces producto 4, me sume inmediatamente la cantidad ( 35,25 € ). Luego con un pulsador cambio e introduzco con un teclado la cantidad entregada y otro pulsador me daría la cantidad a devolver . Pues nada eso es todo si alguien me quisiera ayudar se lo agradecería mucho
Mi correo es tapi_tapi@hotmail.com .Gracias por vuestra atención, y espero no molestar con mi inexperiencia.
-
AUN NECESITAS AYUDA....
;*********************************************************
;***AQUI TAL VEZ UNA FORMA DE HACERLO .....
;*** OBTENER LA SUMA EN TRES REGISTROS
;*** 99 99. 99
;***
;*********************************************************
SUMA_BAJO EQU 0X20
SUMA_ALTO_1 EQU 0X21
SUMA_ALTO_2 EQU 0X22
;*********************************************************
;**** DECLARO LAS CONSTANTES
PRODUCTO_1 D´100´ ; PARA TENER ENCUENTA DECIMAS
PRODUCTO_2 D´75´
PRODUCTO_3 D´70´
PRODUCTO_4 D´85´
PRODUCTO_5 D´50´
PRODUCTO_6 D´75´
PRODUCTO_7 D´95´
PRODUCTO_8 D´75´
COMPARADOR D´100´
;*********************************************************
;DEFINO LOS PUERTOS
#DEFINE P_PRODUCTO_1 PORTC,0
#DEFINE P_PRODUCTO_2 PORTC,1
#DEFINE P_PRODUCTO_3 PORTC,2
#DEFINE P_PRODUCTO_4 PORTC,3
#DEFINE P_PRODUCTO_5 PORTC,4
#DEFINE P_PRODUCTO_6 PORTC,5
#DEFINE P_PRODUCTO_7 PORTC,6
#DEFINE P_PRODUCTO_8 PORTC,7
;*********************************************************
; CONFIGURO LOS PUERTOS
BSF STATUS,RP0
BSF P_PRODUCTO_1 ;CONFIGURO COMO ENTRADA
BSF P_PRODUCTO_2 ;CONFIGURO COMO ENTRADA
BSF P_PRODUCTO_3 ;CONFIGURO COMO ENTRADA
BSF P_PRODUCTO_4 ;CONFIGURO COMO ENTRADA
BSF P_PRODUCTO_5 ;CONFIGURO COMO ENTRADA
BSF P_PRODUCTO_6 ;CONFIGURO COMO ENTRADA
BSF P_PRODUCTO_7 ;CONFIGURO COMO ENTRADA
BSF P_PRODUCTO_8 ;CONFIGURO COMO ENTRADA
BSF STATUS,RP0
CLRF SUMA_ALTO
CLRF SUMA_BAJO
ORG 0X00
;*********************************************************
INICIO
CALL RETARDO_10MSEG ; PARA EVITAR REBOTES
btfsc P_PRODUCTO_1 ; OPRIMIO EL PULSADOR
CALL SUMAR_PRODUCTO_1 ;HACE LA RUTINA DE SUMA
CALL RETARDO_10MSEG ; PARA EVITAR REBOTES
btfsc P_PRODUCTO_2 ; OPRIMIO EL PULSADOR
CALL SUMAR_PRODUCTO_2 ;HACE LA RUTINA DE SUMA
CALL RETARDO_10MSEG ; PARA EVITAR REBOTES
btfsc P_PRODUCTO_3 ; OPRIMIO EL PULSADOR
CALL SUMAR_PRODUCTO_3 ;HACE LA RUTINA DE SUMA
CALL RETARDO_10MSEG ; PARA EVITAR REBOTES
btfsc P_PRODUCTO_4 ; OPRIMIO EL PULSADOR
CALL SUMAR_PRODUCTO_4 ;HACE LA RUTINA DE SUMA
CALL RETARDO_10MSEG ; PARA EVITAR REBOTES
btfsc P_PRODUCTO_5 ; OPRIMIO EL PULSADOR
CALL SUMAR_PRODUCTO_5 ;HACE LA RUTINA DE SUMA
CALL RETARDO_10MSEG ; PARA EVITAR REBOTES
btfsc P_PRODUCTO_6 ; OPRIMIO EL PULSADOR
CALL SUMAR_PRODUCTO_6 ;HACE LA RUTINA DE SUMA
CALL RETARDO_10MSEG ; PARA EVITAR REBOTES
btfsc P_PRODUCTO_7 ; OPRIMIO EL PULSADOR
CALL SUMAR_PRODUCTO_7 ;HACE LA RUTINA DE SUMA
CALL RETARDO_10MSEG ; PARA EVITAR REBOTES
btfsc P_PRODUCTO_8 ; OPRIMIO EL PULSADOR
CALL SUMAR_PRODUCTO_8 ;HACE LA RUTINA DE SUMA
GOTO INICIO
;*********************************************************
RETARDO_10MSEG
.
.
.
RETURN
;*********************************************************
SUMAR_PRODUCTO_1
MOVWF P_PRODUCTO_1
ADDWF SUMA_BAJO,F ;SUMA SUMA_BAJO CON P_PRODUCTO_1 Y EL RESULTADO QUEDA EN SUMA BAJO Y W
GOTO COMPROVAR_SUMAS
;*********************************************************
SUMAR_PRODUCTO_2
MOVWF P_PRODUCTO_2
ADDWF SUMA_BAJO,F ;SUMA SUMA_BAJO CON P_PRODUCTO_2 Y EL RESULTADO QUEDA EN SUMA BAJO Y W
GOTO COMPROVAR_SUMAS
;*********************************************************
SUMAR_PRODUCTO_3
MOVWF P_PRODUCTO_3
ADDWF SUMA_BAJO,F ;SUMA SUMA_BAJO CON P_PRODUCTO_3 Y EL RESULTADO QUEDA EN SUMA BAJO Y W
GOTO COMPROVAR_SUMAS
;*********************************************************
SUMAR_PRODUCTO_4
MOVWF P_PRODUCTO_4
ADDWF SUMA_BAJO,F ;SUMA SUMA_BAJO CON P_PRODUCTO_4 Y EL RESULTADO QUEDA EN SUMA BAJO Y W
GOTO COMPROVAR_SUMAS
;*********************************************************
SUMAR_PRODUCTO_5
MOVWF P_PRODUCTO_5
ADDWF SUMA_BAJO,F ;SUMA SUMA_BAJO CON P_PRODUCTO_5 Y EL RESULTADO QUEDA EN SUMA BAJO Y W
GOTO COMPROVAR_SUMAS
;*********************************************************
SUMAR_PRODUCTO_6
MOVWF P_PRODUCTO_6
ADDWF SUMA_BAJO,F ;SUMA SUMA_BAJO CON P_PRODUCTO_6 Y EL RESULTADO QUEDA EN SUMA BAJO Y W
GOTO COMPROVAR_SUMAS
;*********************************************************
SUMAR_PRODUCTO_7
MOVWF P_PRODUCTO_7
ADDWF SUMA_BAJO,F ;SUMA SUMA_BAJO CON P_PRODUCTO_7 Y EL RESULTADO QUEDA EN SUMA BAJO Y W
GOTO COMPROVAR_SUMAS
;*********************************************************
SUMAR_PRODUCTO_8
MOVWF P_PRODUCTO_8
ADDWF SUMA_BAJO,F ;SUMA SUMA_BAJO CON P_PRODUCTO_8 Y EL RESULTADO QUEDA EN SUMA BAJO Y W
GOTO COMPROVAR_SUMAS
;*********************************************************
COMPROVAR_SUMAS ;COMPRUEBO QUE LOS REGISTROS NO SUPEREN EL VALOR DE 100
SUBWF COMPARADOR,0
BTFSC STATUS,C
RETURN
CLRF SUMA_BAJO
ADDWF SUMA_ALTO_1,F ; EN W SE TIENE EL VALOR DE LA RESTA....Y SE LO SUMO AL REG SUMA_ALTO_1
SUBWF COMPARADOR,0
BTFSC STATUS,C
RETURN
CLRF SUMA_ALTO_1
ADDWF SUMA_ALTO_2,F ; EN W SE TIENE EL VALOR DE LA RESTA....Y SE LO SUMO AL REG SUMA_ALTO_2
RETURN ; FINALMENTE RETORNO CON LA SUMA
;*********************************************************
;*********************************************************
.
.
;*** BIEN FALTARIAN OTRAS RUTINAS SENCILLAS PARA LA INTERFASE GRAFICA
;*** O CAMBIOS EN EL MONTAGE DE LOS PULSADORES PARA NO OCUPAR TANTOS
;*** PINES....
;***
;***YA ES ALGO TARDE... SI NECESITAS ALGOMAS ME DICES
;*** SALUDOS
END
;*********************************************************
;*********************************************************