AT89S8253 ( 8051 )
Muitos hobbystas e até mesmo estudantes de eletrônica desejam aprender a usar microcontroladores em seus projetos, porém não querem desprender muito tempo para o estudo teórico destes componentes e acabam desanimados.
Pensando nisso decidi elaborar um artigo aqui no blog com o objetivo de tornar o uso deste componente simples e direto .
Nada melhor que iniciar pelo mais famoso dos microcontroladores o 8051, alguns podem estar se perguntando, este 8051 não é muito antigo e ultrapassado?
É verdade , a família 8051 começou a ser produzida em 1981 pela Intel, mas ele é fabricado até hoje por vários fabricantes em versões atúalizadas como por exemplo o AT89S8253, e serve perfeitamente para iniciar-se no uso destes componentes.
Então vamos lá.
Para os primeiros projetos basta entender que internamente o microcontrolador possui :
* Uma CPU (Central Processing Unit) ou Unidade central de Processamento.
* Um oscilador que vai gerar o Clock para o sincronizar o sistema.
* Um banco de memória RAM (Random Access Memory) ou Memória de acesso aleatório.
"apaga os dados quando se retira a alimentação."
* Um banco de memória Flash EEPROM (Electrically-Erasable Programmable Read-Only Memory) ou Memória Somente de Leitura Programável Apagável Eletricamente.
* Uma interface de comunicação ISP (MISO-MOSI-SCK).
* Quatro portas paralelas de I/O, ou seja, portas de entradas e saídas que são: P0 ,P1 , P2 e P4.
Arquitetura interna simplificada do microcontrolador.
O invólucro do microcontrolador é do tipo DIL "Dual In Line" com 40 pinos com suas funções identificadas na ilustração abaixo:
-- Porta P1 com 8 bits formada pelos pinos 1 a 8.
-- Porta P2 com 8 bits formada pelos pinos 21 a 28.
-- Porta P3 com 8 bits formada pelos pinos 10 a 17.
-- RST pino 9 botão reset forçado.
-- XTAL1 e XTAL2 cristal externo para o clock pinos 18 e 19.
Linhas do protocólo SPI ( Serial Peripheral Interface ).
-- MISO ( Master In Slave Out ).
-- MOSI ( Master Out Slave In )
-- SCK ( Serial Clock ).
Funcionamento
Para que todas estas áreas internas do microcontrolador se comuniquem entre si e realizem as funções que queremos para nossos projetos ,devemos gravar um programa na memória Flash .
O microcontrolador tem de ser "programado" para que realize aquilo que se deseja conforme o projeto.
Em nosso caso vamos fazer com que os 8bits da porta P1 realizem o acendimento sequencial de 8 leds ligados nessa porta ,vamos ter que usar uma linguagem de programação para escrever o código do programa e depois enviar esse para a memória flash do AT89S8253 para que ele execute conforme o projeto.
A
linguagem que vamos usar é a famosa linguagem C, poderiamos escolher
outra como por exemplo o assembly, não tenho nada contra o assembly,mas
na minha opnião a linguagem C por ser uma linguagem de alto nível tem um aprendizado mais fácil.
//Sequencial super maquina//
#include <at89s8252.h>
void timer(char vezes)
{
while(vezes)
{ TMOD=0x01;
TH0=0x0f;
TL0=0x00;
TR0=1;
TF0=0;
while(!TF0);
vezes--;
}
}
void main()
{ char vetor;
code char dados[14]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,};
P1=0;
while(1)
{
for (vetor=0;vetor<14;vetor++)
{P1=dados[vetor];
timer(1);
}
}
}
Não se preocupe em enterder o código agora, isso nós veremos em breve com detalhes.
Veja o código do nosso projeto:
//Sequencial super maquina//
#include <at89s8252.h>
void timer(char vezes)
{
while(vezes)
{ TMOD=0x01;
TH0=0x0f;
TL0=0x00;
TR0=1;
TF0=0;
while(!TF0);
vezes--;
}
}
void main()
{ char vetor;
code char dados[14]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,};
P1=0;
while(1)
{
for (vetor=0;vetor<14;vetor++)
{P1=dados[vetor];
timer(1);
}
}
}
Não se preocupe em enterder o código agora, isso nós veremos em breve com detalhes.
O software para desenvolver em C que escolhi para nosso exemplo foi o JFE "Jens' File Editor" que roda em windows XP, faça o download no link abaixo:
O arquivo ( jens.rar ) está compactado, após descompactar clique no icone JFE "Jens' File Editor"e abra a tela inicial do software.
No canto esquerdo superior em file ,clique e escolha new, uma nova tela em branco aparecerá, copie o código acima e cole no JFE.
Assista o video abaixo para melhor entendimento.
Agora já temos o código compilado pelo JFE no arquivo .BIN ou .HEX.O arquivo ( jens.rar ) está compactado, após descompactar clique no icone JFE "Jens' File Editor"e abra a tela inicial do software.
No canto esquerdo superior em file ,clique e escolha new, uma nova tela em branco aparecerá, copie o código acima e cole no JFE.
Assista o video abaixo para melhor entendimento.
Vamos precisar de um gravador para transferir o arquivo .BIN para dentro da memória Flash do microcontrolador , o gravador é formado pelo software "GRAVA" que funciona em protocólo ISP e o arquivo compactado pode ser baixado no link :
Gravador , cabo de comunicação e fonte.
O GRAVADOR
Aparencia do gravador
No link abaixo vc pode baixar o lay-out da placa:
A gravação do arquivo .BIN na memória flash do microntrolador é simples, veja no video abaixo como realizar este processo.