Diseño De Turno De Un Banco Con Ticket Para Clientes Con PIC 16F877A
Diseño De Turno De Un Banco Con Ticket Para Clientes Con PIC 16F877A
Este Es El Codigo Realizado En Proton. Ud Le Puden Diseñar Como Quieran Ya Que Se Los Pongo Para Darles Unas Ideas En Sus Diseños.
Device 16F877
XTAL 20
HSERIAL_BAUD=9600
ALL_DIGITAL= true
TRISA=000000
TRISB=000000
TRISD=000000
TRISC=000000
PORTC=000000
PORTB=000000
PORTD=000000
PORTA=000000
pulso var PORTA.4
pulso1 var PORTA.5
pulso2 var PORTC.5
pulso3 var PORTD.4
pulso4 var PORTD.5
pulso5 var PORTD.7
pulso6 var PORTB.4
pulso7 var PORTC.4
pulso8 var PORTD.6
pulso9 var PORTB.7
HRSOut " Universidad ",13
HRSOut " Integrantes: NOMBRES ",13
HRSOut " Practica # 2 ",13
HRSOut " Sistema De Apartado De Turnos En Un Banco X ",13
HRSOut " ",13
HRSOut "-------------------- Bienvenidos A Su Banco Sisco Y Asociados --------------------",13
HRSOut " ",13
HRSOut "----------------- PorFavor Elija Su Turno De lo Que Va A Realizar ----------------",13
HRSOut " ",13
HRSOut " ",13
HRSOut "1.- Depositos Turnos Del 00 al 33",10,13
HRSOut " ",13
HRSOut "2.- Chequeras Turnos Del 33 al 66",10,13
HRSOut " ",13
HRSOut "3.- Promotor Turnos Del 67 al 99",10,13
HRSOut " ",13
High PORTE.2
Dim x As Byte
Dim y As Byte
Dim m As Byte
Dim n As Byte
Dim a As Byte
Dim b As Byte
Dim p As Byte
Dim l As Byte
Dim e As Byte
Dim f As Byte
Dim aa As Byte
Dim ee As Byte
Dim pe As Byte
Dim ca As Byte
Dim ce As Byte
Dim dirx As Byte
Dim diry As Byte
Dim dirm As Byte
Dim dirn As Byte
Dim dira As Byte
Dim dirb As Byte
Dim dire As Byte
Dim dirf As Byte
Dim dirp As Byte
Dim con1 As Byte
Dim con2 As Byte
Dim fe As Byte
Dim fa As Byte
Dim ta As Byte
Dim ta1 As Byte
Dim ta2 As Byte
dirx=$00
diry=$01
dirm=$02
dirn=$03
dira=$04
dirb=$05
dire=$06
dirf=$07
dirp=$08
ta = 1
ta1 = 2
ta2 = 3
aa=0
ee=32
con1=33
con2=67
pe=66
e = 1
f = 3
p = 1
comienzo:
If pulso =1 Then pulsar
If pulso1=1 Then yene
If pulso2=1 Then luye
If pulso6=1 Then uno
If pulso7=1 Then dos
If pulso8=1 Then tres
If pulso9=1 Then cuatro
If pulso3=1 Then
aa=aa+1
pause 300
ca= aa - ce
pause 300
If ca < 0 Then
ca=00
EndIf
If aa>32 Then
aa=1
EndIf
HRSOut " ",10,13
HRSOut " ticke ",13
HRSOut "Su Turno Es : "
HRSOut SDEC2 aa,10,13
HRSOut "Turnos En Espera : "
HRSOut SDEC2 ca,10,13
HRSOut "Cajero : "
HRSOut SDEC2 ta,13
HRSOut " ",10,13
EndIf
If pulso4=1 Then
ee=ee + 1
pause 300
fa = ee - con1
pause 300
If fa < 0 Then
fa = 0
EndIf
pause 300
If ee>66 Then
ee=32
EndIf
HRSOut " ",10,13
HRSOut " ticke ",13
HRSOut "Su Turno Es : "
HRSOut SDEC2 ee,13
HRSOut "Turnos En Espera : "
HRSOut SDEC2 fa,13
HRSOut "Cajero : "
HRSOut SDEC2 ta1,13
HRSOut " ",10,13
EndIf
If pulso5=1 Then
pe = pe + 1
pause 300
fe = pe - con2
pause 300
If fe < 0 Then
fe=00
EndIf
If pe>99 Then
pe=67
EndIf
HRSOut " ",10,13
HRSOut " ticke ",13
HRSOut "Su Turno Es : "
HRSOut SDEC2 pe,13
HRSOut "Turnos En Espera : "
HRSOut SDEC2 fe,13
HRSOut "Cajero : "
HRSOut SDEC2 ta2,13
HRSOut " ",10,13
EndIf
GoTo comienzo
mago:
If pulso6=1 Then mago
x = ERead dirx
PORTB=x
y = ERead diry
PORTD=y
p = ERead dirp
PORTA=p
pause 1000
m = ERead dirm
PORTB=m
n = ERead dirn
PORTD=n
PORTC=l
e = ERead dire
PORTA=e
PORTC=l
pause 1000
a = ERead dira
PORTB=a
b = ERead dirb
PORTD=b
PORTC=l
f = ERead dirf
PORTA=f
pause 1000
x = ERead dirx
PORTB=x
y = ERead diry
PORTD=y
p = ERead dirp
PORTA=p
pause 1000
x = x +1
pause 500
If x>9 Then
x=0
y=y+1
EndIf
If y>3 Then
y=0
EndIf
If x=3 And y=3 Then
x=1
y=0
EndIf
m = m + 1
pause 300
a = a + 1
pause 300
GoTo comienzo
mago1:
If pulso7=1 Then mago
x = ERead dirx
PORTB=x
y = ERead diry
PORTD=y
p = ERead dirp
PORTA=p
pause 1000
m = ERead dirm
PORTB=m
n = ERead dirn
PORTD=n
PORTC=l
e = ERead dire
PORTA=e
PORTC=l
pause 1000
a = ERead dira
PORTB=a
b = ERead dirb
PORTD=b
PORTC=l
f = ERead dirf
PORTA=f
pause 1000
m = ERead dirm
PORTB=m
n = ERead dirn
PORTD=n
PORTC=l
e = ERead dire
PORTA=e
PORTC=l
pause 1000
x = x + 1
pause 300
m = m + 1
pause 300
If m>9 Then
m=0
n=n+1
pause 300
EndIf
If n=6 And m=7 Then
m=3
n=3
EndIf
a = a + 1
pause 300
GoTo comienzo
mago2:
If pulso8=1 Then mago
x = ERead dirx
PORTB=x
y = ERead diry
PORTD=y
p = ERead dirp
PORTA=p
pause 1000
m = ERead dirm
PORTB=m
n = ERead dirn
PORTD=n
PORTC=l
e = ERead dire
PORTA=e
PORTC=l
pause 1000
a = ERead dira
PORTB=a
b = ERead dirb
PORTD=b
PORTC=l
f = ERead dirf
PORTA=f
pause 1000
x = x + 1
pause 300
m = m + 1
pause 300
a = a + 1
pause 300
If a>9 Then
a=0
b=b+1
pause 300
EndIf
If b>9 Then
a=7
b=6
EndIf
GoTo comienzo
cuatro:
If pulso9=1 Then cuatro
e=2
f=3
l=10
p=1
m=0
n=0
x=0
y=0
a=0
b=0
ce=1
EWrite dira,[a]
EWrite dirb,[b]
EWrite dirm,[m]
EWrite dirn,[n]
EWrite dirx,[x]
EWrite diry,[y]
EWrite dire,[e]
EWrite dirf,[f]
e=2
f=3
l=10
p=1
m=0
n=0
x=0
y=0
a=0
b=0
ce=1
GoTo comienzo
tres:
e=2
f=3
l=10
p=1
a=7
b=6
ce=1
EWrite dira,[a]
EWrite dirb,[b]
EWrite dire,[e]
EWrite dirf,[f]
e=2
f=3
l=10
p=1
a=7
b=6
ce=1
GoTo comienzo
dos:
e=2
f=3
l=10
p=1
m=3
n=3
ce=1
EWrite dirn,[n]
EWrite dirm,[m]
EWrite dire,[e]
EWrite dirf,[f]
e=2
f=3
l=10
p=1
m=3
n=3
ce=1
GoTo comienzo
uno:
e=2
f=3
l=10
p=1
x=1
y=0
ce=1
EWrite dirx,[x]
EWrite diry,[y]
EWrite dire,[e]
EWrite dirf,[f]
e=2
f=3
l=10
p=1
a=0
b=0
x=1
y=0
ce=1
GoTo comienzo
pulsar:
PORTB=x
PORTD=y
PORTA=p
PORTC=l
If pulso=1 Then contar
GoTo comienzo
luye:
PORTB=a
PORTD=b
PORTC=l
PORTA=f
If pulso2=1 Then fer
GoTo comienzo
yene:
PORTB=m
PORTD=n
PORTC=l
PORTA=e
If pulso1=1 Then luis
GoTo comienzo
fer:
EWrite dira,[a]
EWrite dirb,[b]
EWrite dirf,[f]
If pulso2=1 Then fer
con2 = con2 + 1
pause 300
fe= pe - con2
pause 300
Low PORTE.2
pause 200
High PORTE.2
pause 200
Low PORTE.2
pause 200
High PORTE.2
pause 200
Low PORTE.2
pause 200
High PORTE.2
pause 200
l=10
f=3
a=a + 1
pause 200
If a>9 Then
a=0
b=b+1
pause 300
EndIf
If b>9 Then
a=7
b=6
EndIf
GoTo mago2
luis:
EWrite dirn,[n]
EWrite dirm,[m]
EWrite dire,[e]
If pulso1=1 Then luis
con1 = con1 + 1
pause 300
fa= ee - con1
pause 300
If ca=0 Then
ca=0
EndIf
Low PORTE.2
pause 200
High PORTE.2
pause 200
Low PORTE.2
pause 200
High PORTE.2
pause 200
Low PORTE.2
pause 200
High PORTE.2
pause 200
l=10
e=2
m=m + 1
pause 200
If m>9 Then
m=0
n=n+1
pause 300
EndIf
If n=6 And m=7 Then
m=3
n=3
EndIf
GoTo mago1
End
contar:
EWrite dirx,[x]
EWrite diry,[y]
EWrite dirp,[p]
If pulso=1 Then contar
ce=ce + 1
pause 300
ca=aa-ce
pause 300
If ca=0 Then
ca=0
EndIf
Low PORTE.2
pause 200
High PORTE.2
pause 200
Low PORTE.2
pause 200
High PORTE.2
pause 200
Low PORTE.2
pause 200
High PORTE.2
pause 200
l=10
p=1
x = x +1
pause 500
If x>9 Then
x=0
y=y+1
EndIf
If y>3 Then
y=0
EndIf
If x=3 And y=3 Then
x=1
y=0
EndIf
GoTo mago
End
Simulaciones En Proteus 7.4
Disculpen por los cables pero bueno explico.
- Para Dar Inicio a los Turnos De Los Cajeros.- Para que una persona que esta en taquilla para comenzar a llamar por turnos a los clientes primero debe presionar ese boton luego los que estan donde dice TURNOS PARA CAJEROS. las Taquillas corresponden al orden 1,2,3 de arriba hacia abajo. asi mismo si la taquilla o cajero numero 2 quiere comenzar a llamar por turnos a sus clientes primero tiene que precionar su boton de inicio que corresponde al boton dos y asi con la tercera taquilla.
- Turnos Para Cajeros.- Esos seran los botones que utilizaran las personas que atenderan en las taquillas para llamar a los clientes.
- Pantalla Virtual.- Aqui mostrara a los clientes el su ticket, es decir el turno que le toca, cuantas personas tienen en espera y en que caja le toca.
- Reiniciar.- Para Reiniciar el contador.
Los Botones que estan alado de los numeros son sus corespondientes ejemplo. Si va hacer depositos presiona el boton que esta alado osea el boton uno, si quiere la segunda preciona el segundo boton y asi con el tercero
Descargar El Programa Proton
Descargar El Programa Proteus 7.4 Portable
Descargar Código
Cual es la clave para descomprimir el libro de electronica practica microcontroladores
ResponderEliminarno la sabra ni el cuando no contesta, jejejeje
ResponderEliminarcomo se haría
ResponderEliminaresto en lenguaje c?