segunda-feira, 30 de junho de 2014

8051 Microcontrolador , Sequencial super maquina.



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 P0 com 8 bits formada pelos pinos 32 a 39.
 -- 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.

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.
 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 :



E vamos necessitar também do " hardware " programador, que podemos montar conforme esquema a seguir , mas se você preferir, na internet existem vários projetos de gravadores e até mesmo gravadores comerciais que podem ser adquiridos em lojas do ramo eletrônico.

 Gravador , cabo de comunicação e fonte.
Se deseja montar como eu o gravador veja o esquema eletrônico na figura abaixo:



O GRAVADOR


No link abaixo a lista de materiais 
Download lista de componentes

Aparencia do gravador

 No link abaixo vc pode baixar o lay-out da placa:
Download layout placas C.I. 

Desenho das ligações do cabo de comunicação entre o PC e o programador.



A gravação do arquivo .BIN na memória flash do microntrolador  é simples, veja no video abaixo como realizar este processo.