Pensando em alguns projetos onde precisaremos usar o Timer2, memórias externas paralelas, displays de 7 segmentos e outros, decidi criar também esta placa para experimentos com o AT89S52. Seu custo é praticamente o mesmo da placa AT89(C)S2051, com a vantagem de ter as 4 portas e até 8Kbytes de memória de programa. Um gravador ISP para esta placa também é muito fácil de ser construido e tem vários exemplos na rede.
Então você diz: mas eu posso fazer esse efeito com um CD4017...
Tem razão! Mas e se quiser que os LEDs só mudem numa velocidade de 1 por dia ou até por mês ou ano? Já pensou no número de divisores auxiliares que teria de usar?
É onde entra a versatilidade de um microcontrolador porque só é preciso alterar o programa não sendo necessário qualquer circuito divisor adicional, além de podemos fazer qualquer efeito sem alterar o hardware.
Acima você vê o código fonte. A parte relevante do programa está destacada. Ao lado, imagem no ponyprog onde ficará esses códigos em HEX na memória de programa do MC. Este mesmo programa é totalmente compatível com o AT89C2051.
Para uma efeito sequencial à esquerda basta trocar a intrução RR A por RL A.
Para alterar o tempo basta trocar o valor 10 na instrução mov r7,#10d. Cada incremento ou decremento neste valor será de 10 milisegundos.
Gostaria que prestassem atenção no fato de que a letra 'L' minúscula é quase indêntica ao número '1', portanto, se ao compilar, o programa apresentar algum erro, vejam se não foi invertido um desses caracteres.
Exemplo: lcall del_100ms