El material que utilizé:
- 2 leds
- 2 resistencias de 330 ohms
- 3 displays 7 segmentos anodo común
- 1 decodificador 7447
- 1 pic16f628a
- muchos cables
- 1 protoboard
El circuito esta de la siguiente manera:
El código utilizado para el pic:
program reloj symbol display1 = PORTB.4 symbol display2 = PORTB.5 symbol display3 = PORTB.6 symbol led_par = PORTA.1 symbol led_prim = PORTA.0 const numeros as byte[10] = (%00000000, %00000001, %00000010, %00000011, %00000100, %00000101, %00000110, %00000111, %00001000, %00001001) dim centenas as byte dim decenas as byte dim unidad as byte dim i as integer dim j as integer dim auxi as integer dim prim2 as integer dim prim3 as integer dim prim5 as integer dim prim7 as integer dim par as integer sub procedure parprim if auxi = 0 then goto final end if if auxi = 1 then goto final end if if auxi = 2 then led_prim = 1 goto salto end if if auxi = 3 then led_prim = 1 goto salto end if if auxi = 5 then led_prim = 1 goto salto end if if auxi = 7 then led_prim = 1 goto salto end if led_prim = 0 led_par = 0 prim2 = auxi mod 2 prim3 = auxi mod 3 prim5 = auxi mod 5 prim7 = auxi mod 7 if prim2 <> 0 then if prim3 <> 0 then if prim5 <> 0 then if prim7 <> 0 then led_prim = 1 end if end if end if end if 'auxi2 = auxi-1 'while auxi2 > 1 ' prim = auxi mod auxi2 ' if prim <> 0 then ' auxi2 = auxi2-1 ' end if ' if prim = 0 then ' goto salto ' end if ' led_prim = 1 'wend salto: par = auxi mod 2 if par = 0 then led_par = 1 end if final: end sub sub procedure multiplexar PORTB = numeros[centenas] display1 = 1 delay_ms(2) PORTB = numeros[decenas] display1 = 0 display2 = 1 delay_ms(2) PORTB = numeros[unidad] display2 = 0 display3 = 1 delay_ms(2) INC(i) parprim end sub main: 'entrada CMCON = 0x07 TRISB = %00000000 TRISA = %00000000 centenas = 0 decenas = 0 unidad = 0 display1 = 0 display2 = 0 display3 = 0 i = 0 while True multiplexar if i = 200 then i=0 unidad = unidad + 1 auxi = auxi + 1 if unidad > 9 then unidad = 0 decenas = decenas + 1 if decenas > 9 then decenas = 0 centenas = centenas + 1 if centenas > 9 then auxi = 0 unidad = 0 decenas = 0 centenas = 0 end if end if end if end if wend end.
No hay comentarios.:
Publicar un comentario