Você está na página 1de 3

Olá

Se vc pegar um datasheet de um microcontrolador, vai encontrar lá tudo o que vc está


pesquizando.

O ideal é vc escolher um microcontrolador, imprimir o manual inteirinho e LER DO COMEÇO AO


FIM.

Não adianta chorar,,, eu sei que está em inglês,,,, que tem 300 páginas,,,, mas se quer entrar para
o clube, vai ter que ler rsrsrsrs

Para facilitar a sua vida, pegue um livro da editora Érica desvendando alguns microcontroladores.

Eu aconselho vc a começar pelo 80C51. Ele é muito antigo, um dos primeiros, já em 1990 ele era
bem utilizado.

Uma opção é o PIC, que tem como complicação ter dezenas a centenas de modelos diferentes.
Mas uma facilidade, a Microchip fornece os compiladores gratis, no site, para download.

Eu uso o AT89F51 da Atmel, versão moderna do 80C51.

Uso também o PIC12F683 de 8 pinos, compro na Farnell.

Não tenha pressa, leia uns livros em português, mas depois leia o manual completo em Inglês, é
indispensável.

Quanto a linguagem vc pode usar o "C", o Assembler, e se quizer pode programar em


binário/hexadecimal. O "C" é compilado em Assembler. O Assembler é compilado em Hexa/Binário.
Na verdade não dá para ir direto ao hexa/binário, forçosamente vc terá que escrever em
Assembler. Agora, se vc não quizer usar o complilador Assembler para Hexa/binário, vc pode
compilar na mão, utilizando os dados do datasheet do processador/microcontrolador, na parte de
INSTRUÇÕES, cada instrucão em assembler pode ser montada em binário/hexa. Faça uma vez
para vc ver, tipo um programinha de 10 instruções. Vai funcionar, mas eu te garanto que vc vai
abandonar rapidinho esta prática rsrsrsrs No caso o complilador assembler para binario/hexa faz o
trabalho sujo para nós.

Qualquer dificuldade me escreva


Rubão
Source:
Editora Érica, Atmel, Microchip

Olá DIOOGNEI,
Como você sabe, um micro controlador geralmente é constituído de uma memória RAM
interna, algumas portas de Entradas/Saídas, uma central de processamento que inclui
registros, barras de endereçamento e de dados, clock externo, algumas linhas de controle e
uma porta de comunicação ******. Como você, eu gostava de programar sistemas em
linguagem de máquina. Cada comando é distinguido dos outros pelo valor hexadecimal,
bem como seus operandos. A notação hexadecimal é utilizado porquê todo sistema opera
por intermédio de valores em Bytes, (oito Bits) e múltiplos deste. Na verdade, não acho de
muita importância tentar lembrar os valores hex de comandos, basta obter o manual de
usuário de determinado microcontrolador, mesmo porquê não possuem a mesma
organização interna, portanto os comandos podem variar bastante.
Quanto a linguagem binária, é somente esta linguagem que estes sistemas entendem. O
programa compilador é que dá valores decimais e hexadecimais á constantes, instruções,
comandos e operandos. Em todo caso vai as conversões decimais/binária e decimais/hx:

Considere o número decimal 2010:

2010 | 2 = 1005; sobra 0; Bit menos significativo


1005 | 2 = 502; sobra 1;
502 | 2 = 251; sobra 0;
251 | 2 = 125; sobra 1;
125 | 2 = 62; sobra 1;
62 | 2 = 31; sobra 0;
31 | 2 = 15; sobra 1;
15 | 2 = 7; sobra 1;
7 | 2 = 3; sobra 1;
3 | 2 = 1; sobra 1;
1 | 2 = 0; sobra 1; Bit mais significativo

Portanto o número decimal 2010 convertido em binário = 11111011010;


1024 512 256 128 64 32 16 8 4 2 1 decimal
1 1 1 1 1 0 1 1 0 1 0 binário

E para converter binário em decimal somar os números decimais marcados com "1". Se for
um número binário maior, escrever 2048, 4096, 8192 e etc. a esquerda na fileira "decimal";

Da mesma forma: (2^0 x 0) + (2^1 x 1) + (2^2 x 0) + (2^3 x 1) + (2^4 x 1) + (2^5 x 0) +


(2^6 x 1) + (2^7 x 1) + (2^8 x 1) + (2^9 x 1) + (2^10 x 1) = 2010 decimais;

A numeração hexadecimal começa com 1 e até 9, depois A e até F. Portanto o número


decimal 2010 em hex:

2010 | 16 = 125; sobra 10 = A;


125 | 16 = 7 sobra 13 = D;
7 | 16 = 0 sobra 7 = 7;

Portanto o número decimal 2010 em hex = 7DA;

Convertendo 7DA em decimal: (16^0 x 10) + (16^1 x 13) + (16^2 x 7) = 10 + 208 + 1792 =
2010;

Quanto a comunicação ******, cada código ASCII (código hexadecimal das letras e
símbolos) é composto de "pacotes" de 10 bits cada letra.
Start bit bit1 bit2 bit3 bit4 bit5 bit6 bit7 bit de paridade Stop bit

Nível 1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0

Estes 10 bits são transmitidos seqüencialmente começando com Start bit e terminando com
Stop bit. Bits 1 a 7 são formados pelo código ASCII (American Standard Code for
Information Interchange) Paridade é um bit para verificar a existência de um êrro de
transmissão. O Stop bit significa o envio de um pacote. A velocidade de transmissão em
bits por segundo é uma medida de taxa Baud;

Você também pode gostar