TRISA = %00000
TRISB = %00000000
PORTB = %00000000
PORTA = %00000
inicio:
High PORTA.0
WaitMs 500
Low PORTA.0
WaitMs 500
High PORTA.1
WaitMs 500
Low PORTA.1
WaitMs 500
High PORTA.2
WaitMs 500
Low PORTA.2
WaitMs 500
High PORTA.3
WaitMs 500
Low PORTA.3
WaitMs 500
High PORTA.4
WaitMs 500
Low PORTA.4
WaitMs 500
High PORTB.0
WaitMs 500
Low PORTB.0
WaitMs 500
High PORTB.1
WaitMs 500
Low PORTB.1
WaitMs 500
High PORTB.2
WaitMs 500
Low PORTB.2
WaitMs 500
High PORTB.3
WaitMs 500
Low PORTB.3
WaitMs 500
High PORTB.4
WaitMs 500
Low PORTB.4
WaitMs 500
High PORTB.5
WaitMs 500
Low PORTB.5
WaitMs 500
High PORTB.6
WaitMs 500
Low PORTB.6
WaitMs 500
High PORTB.7
WaitMs 500
Low PORTB.7
WaitMs 500
Goto inicio
End
'***** PIC16F84 *****
Define CONF_WORD = 0x3ff9 'Configuración de Bit
Define CLOCK_FREQUENCY = 20 'Frecuencia de trabajo 4Mhz
TRISA = %00000
TRISB = %00000000
PORTB = %00000000
PORTA = %00000
inicio:
High PORTA.0
WaitMs 500
Low PORTA.0
WaitMs 500
High PORTA.1
WaitMs 500
Low PORTA.1
WaitMs 500
High PORTA.2
WaitMs 500
Low PORTA.2
WaitMs 500
High PORTA.3
WaitMs 500
Low PORTA.3
WaitMs 500
Low PORTA.4
WaitMs 500
High PORTA.4
WaitMs 500
High PORTB.0
WaitMs 500
Low PORTB.0
WaitMs 500
High PORTB.1
WaitMs 500
Low PORTB.1
WaitMs 500
High PORTB.2
WaitMs 500
Low PORTB.2
WaitMs 500
High PORTB.3
WaitMs 500
Low PORTB.3
WaitMs 500
High PORTB.4
WaitMs 500
Low PORTB.4
WaitMs 500
High PORTB.5
WaitMs 500
Low PORTB.5
WaitMs 500
High PORTB.6
WaitMs 500
Low PORTB.6
WaitMs 500
High PORTB.7
WaitMs 500
Low PORTB.7
WaitMs 500
Goto inicio
End La gente que me conoce ya sabe que no soy partidario de los simuladores, y el esquema de tu ejemplo me reafirma en mi posición. El esquema que has posteado en la realidad tendría que echar humo por todos lados. Tendrían que estropearse los led o el microcontrolador o todo a la vez. Cómo ya me he referido en otras ocasiones los simuladores son buenas herramientas pero, cuando se utilizan por un novel se necesita la supervisión de un profesor o el seguimiento de los ejercicios de un buen libro, en el que en todo momento se informe al usuario o alumno, las simplificaciones que se realizan en el esquema que el simulador permite pero en la realidad no se pueden realizar (y las consecuencias que sucederían en el caso de realizar la practica en la realidad). En el esquema que expones necesitas resistencias limitadoras en todos los led y también necesitas poner un condensador de desacople lo más cercano posible a la patitas de alimentación del microcontrolador, y esto solo como aplicación básica.
Con respecto al programa, la reestructuración seria más compleja que lo ya has expuesto. ¿Y esto por qué?, pues porque si se sigue un buen libro lo primero que tiene que indicar son los comandos o funciones que no se deben de utilizar en la programación, aunque en los primeros ejercicios se utilicen ya que debido a su simplicidad engancha al usuario o alumno en el tema (crean malos hábitos), pero hay que hacer hincapié que no se utilizan normalmente ya que entran en conflicto con la verdadera programación avanzada, y que según se va profundizando en la programación hay que dejar de utilizar lo más rápido posible he ir derivando a otros métodos.
Para que te hagas una idea te expongo algunos de los comandos y funciones que no se deben de utilizar en un programa, como dicen en por mi tierra “tienes que respetar todas las señales de trafico hasta que tengas el permiso de conducir” porque una vez que tienes el permiso decides asumir los riesgo que conlleva saltarse las normas.
En una buena programación no se deben de utilizar los siguientes recurso porque con el tiempo generaran más mal que bien:
Goto (saltos)
Gosub/Return, menos dañino que los Gotos, pero si el lenguaje tiene otros recursos mejor prescindir de el (saltos).
Waitms (pausas absolutas).
Variables globales, se utilizan, pero no abusar de ellas.
En la rutina de interrupciones o vector de interrupciones siempre que se pueda no colocar códigos muy complejos y no refrescar nunca módulos de control de reset del microcontrolador cómo puede ser el módulo de Wachdog.
Entre algunas más. En el foro hay mucha información sobre este tema sobre supresión de parásitos por software, hardware y buenas costumbres en la programación.