Electronica

Solo disponible en BuenasTareas
  • Páginas : 5 (1140 palabras )
  • Descarga(s) : 0
  • Publicado : 16 de agosto de 2012
Leer documento completo
Vista previa del texto
PIC 16F628A + Matriz led 7×5 = dado electronico

Es un dado electronico, controlado con un uControlador PIC 16F628A y una matriz de leds de 7×5 como display. fue un proyecto improvisado para la materia de arquitectura de dispositivos programables.
Dejo un video del funcionamiento, simulacion en proteus y archivo hex listo para cargarlo al pic.
dado_electronico.DSN
dado_electronico.hex
viewsourceprint?
001.Define CONF_WORD = 0x3f50
002. 
003.AllDigital
004. 
005.TRISA = %00000100
006.TRISB = %00000000
007. 
008.Dim numero As Byte
009.Dim fila As Byte
010.Dim datos As Byte
011.Dim x As Byte
012.Dim velocidad As Byte
013. 
014.velocidad = 40
015.datos = 0
016.numero = 0
017. 
018.Symbol boton = RA2
019. 
020.Symbol col1 = RA1
021.Symbol col2 = RA0
022.Symbol col3= RA7
023.Symbol col4 = RA6
024.Symbol col5 = RA3
025. 
026.Symbol fila1 = RB1
027.Symbol fila2 = RB2
028.Symbol fila3 = RB3
029.Symbol fila4 = RB4
030.Symbol fila5 = RB5
031.Symbol fila6 = RB6
032.Symbol fila7 = RB7
033. 
034.inicio:
035. 
036.If boton = 1 Then
037. 
038.Gosub lanzar_dado
039. 
040.Endif
041. 
042.Gosub mostrar_numero
043. 
044.Goto inicio
045. 046.End                                              
047. 
048.lanzar_dado:
049. 
050.While boton = 1
051. 
052.datos = %00001
053. 
054.'-------------------------animacion hacia la izkierda
055.While datos  %00000 And boton = 1
056.Gosub escribir_dato
057.Gosub sumar
058.For x = 1 To velocidad
059.fila = 7
060.Gosub encender_fila
061.Next x
062.datos = ShiftRight(datos, 1)
063.Wend
064. 065.'-------------------------animacion hacia arriba
066.For fila = 7 To 1 Step -1
067.datos = %00001
068.If datos = %00001 And boton = 1 Then
069.Gosub escribir_dato
070.For x = 1 To velocidad
071.Gosub encender_fila
072.Next x
073.Gosub sumar
074.Endif
075.Next fila
076. 
077.Wend
078. 
079.Return                                           
080. 
081.sumar:
082. 
083.numero =numero + 1
084.If numero > 6 Then
085.numero = 1
086.Endif
087. 
088.Return                                           
089. 
090.mostrar_numero:
091. 
092.Select Case numero
093. 
094.Case 0
095. 
096.datos = %00000000
097.Gosub escribir_dato
098.fila = 1
099.Gosub encender_fila
100.datos = %00000000
101.Gosub escribir_dato
102.fila = 2
103.Gosub encender_fila
104.datos =%00000000
105.Gosub escribir_dato
106.fila = 3
107.Gosub encender_fila
108.datos = %00000000
109.Gosub escribir_dato
110.fila = 4
111.Gosub encender_fila
112.datos = %00000000
113.Gosub escribir_dato
114.fila = 5
115.Gosub encender_fila
116.datos = %00000000
117.Gosub escribir_dato
118.fila = 6
119.Gosub encender_fila
120.datos = %00000000
121.Gosub escribir_dato
122.fila = 7123.Gosub encender_fila
124. 
125.Case 1
126. 
127.datos = %00100
128.Gosub escribir_dato
129.fila = 1
130.Gosub encender_fila
131.datos = %01100
132.Gosub escribir_dato
133.fila = 2
134.Gosub encender_fila
135.datos = %10100
136.Gosub escribir_dato
137.fila = 3
138.Gosub encender_fila
139.datos = %00100
140.Gosub escribir_dato
141.fila = 4
142.Gosub encender_fila
143.datos = %00100144.Gosub escribir_dato
145.fila = 5
146.Gosub encender_fila
147.datos = %00100
148.Gosub escribir_dato
149.fila = 6
150.Gosub encender_fila
151.datos = %11111
152.Gosub escribir_dato
153.fila = 7
154.Gosub encender_fila
155. 
156.Case 2
157. 
158.datos = %01110
159.Gosub escribir_dato
160.fila = 1
161.Gosub encender_fila
162.datos = %10001
163.Gosub escribir_dato
164.fila =2
165.Gosub encender_fila
166.datos = %10001
167.Gosub escribir_dato
168.fila = 3
169.Gosub encender_fila
170.datos = %00010
171.Gosub escribir_dato
172.fila = 4
173.Gosub encender_fila
174.datos = %00100
175.Gosub escribir_dato
176.fila = 5
177.Gosub encender_fila
178.datos = %01000
179.Gosub escribir_dato
180.fila = 6
181.Gosub encender_fila
182.datos = %11111
183.Gosub...
tracking img