8051 Microcontrolador , Sequencial super maquina.
Autor: Silvio T.S. | Publicado: 2014-06-30T17:20:00-07:00




















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&nbsp; 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.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; "apaga os dados&nbsp; 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&nbsp; (MISO-MOSI-SCK).

* Quatro portas paralelas de I/O, ou seja, portas&nbsp; de entradas e saídas que são: P0 ,P1 , P2 e P4.


&nbsp;Arquitetura interna simplificada do microcontrolador.









O invólucro do microcontrolador&nbsp; é do tipo DIL "Dual In Line" com 40 pinos com suas funções identificadas na ilustração abaixo:





&nbsp; 








&nbsp;-- Porta P0 com 8 bits formada pelos pinos 32 a 39.
&nbsp;-- Porta P1 com 8 bits formada pelos pinos 1 a 8.
&nbsp;-- Porta P2 com 8 bits formada pelos pinos 21 a 28.
&nbsp;-- Porta P3 com 8 bits formada pelos pinos 10 a 17.







&nbsp;-- RST&nbsp; pino 9 botão reset forçado.







-- XTAL1 e XTAL2 cristal externo para o clock pinos 18 e 19.






&nbsp;&nbsp;&nbsp;&nbsp; Linhas do protocólo SPI ( Serial Peripheral Interface ).

&nbsp;-- MISO&nbsp; ( Master In Slave Out ).   
&nbsp;-- MOSI&nbsp; ( Master Out Slave In )
&nbsp;-- SCK&nbsp; &nbsp; ( Serial Clock ).  

&nbsp; 


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Funcionamento


&nbsp;Para que todas estas áreas internas do microcontrolador se comuniquem entre si&nbsp; e realizem as funções que queremos para nossos projetos ,devemos gravar um programa na memória Flash .
&nbsp;O microcontrolador tem de ser "programado" para que realize aquilo que se deseja conforme o projeto.
&nbsp;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:

&nbsp;//Sequencial super maquina//#include &lt;at89s8252.h&gt;void timer(char vezes){&nbsp;&nbsp;&nbsp; while(vezes)&nbsp;&nbsp;&nbsp; { TMOD=0x01;&nbsp;&nbsp;&nbsp; TH0=0x0f;&nbsp;&nbsp;&nbsp; TL0=0x00;&nbsp;&nbsp;&nbsp; TR0=1;&nbsp;&nbsp;&nbsp; TF0=0;&nbsp;&nbsp;&nbsp; while(!TF0);&nbsp;&nbsp;&nbsp; vezes--;&nbsp;&nbsp;&nbsp; }}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){&nbsp;&nbsp;&nbsp; for (vetor=0;vetor&lt;14;vetor++)&nbsp;&nbsp;&nbsp; {P1=dados[vetor];&nbsp;&nbsp;&nbsp; timer(1);&nbsp;&nbsp;&nbsp; }}}

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&nbsp; no link abaixo:



Download  JFE jens file editor&nbsp;



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.
&nbsp;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 :



Download  GRAVA software programador&nbsp;&nbsp;


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.




&nbsp;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&nbsp;
Download  lista de componentes


Aparencia do gravador

&nbsp;



&nbsp;No link abaixo vc pode baixar o lay-out da placa:

Download   layout placas C.I.&nbsp;

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&nbsp; é simples, veja no video abaixo como realizar este processo.