Want your
own Fotopage?






 
Arao's FotoPage
Eletrônica na bancada
By: Arao Hayashida Filho

[Recommend this Fotopage] | [Share this Fotopage] | [Track this Fotopage]
View complete fotopage

Thursday, 23-Oct-2008 02:35 Email | Share | Bookmark
8051 e SDCC

 

Ao receber uma pergunta, isso me fez lembrar o como foi difícil trabalhar no iníncio com 8051, onde ainda não tinha a série AT89xx da atmel, um tempo em que era necessário ou comprar um gravador para 8751 (difícil de achar até hoje) eprom, janelado ou então abrir mão da prom interna aos 8051 e utlizar um gravador de eprom, mais fácil de fazer ou conseguir.

Hoje em dia com esse comércio que sobe o preço ao invés de o diminuir com o aumento da demanda uma alternativa ao pic e com excelente custo comparado ao pic de 40 pinos, que não se compra por menos de 18 reais, é o AT89s52 chega na faixa dos 7~10.

Com todos esses problemas de complexidade de gravação, que pra quem tem um gravador de eprom é fácil de contornar, como eu fiz há uns anos atrás (grande gambi e ainda repeti o feito em 2003 se não me engano), o 8051 não seria o mais adequado, mas com esses micros da Atmel tudo isso fica pra trás porque agora o 8051 tem programação serial ISP!

Enfim, com isso você consegue ter em mãos o micro que feito no final da década de 70 ainda consegue adeptos e com certeza está em todos os lugares do ambiente industrial, e até dentro de algumas tv's com micros philips, que com certeza tem núcleo 8051.

Informações sobre o clássico no site da intel, que o colocou no mercado:
http://www.intel.com/design/mcs51/cf_51.htm

Outro dia quando recebi a pergunta peguei um 89s52 que estava mofando aqui na geveta e o coloquei na protoboard, comecei pelo programa clássico da atmel pra gravação serial, como tinha diversos cabos aqui pra diversos ci's, exceto o isp do 89s52 que já não mexia há muuitos anos e com certeza está (estará) perdido, passei a pesquisar aqui no google secreto.

Após muito andar por aí achei o site de um cara que fez um gravador da série AT89s incrível, ele simplesmente aceita qualquer cabo, com um sistema de configuração custom de interface.

Achei pré configurado o STK200 paralelo aqui que estava por perto, espetei no micro e gravou tranquilo, é incrível, pena que não tinha isso há alguns poucos anos atrás.

http://dybkowski.net/elka/ispprog.html

Esse é o tipo de programa que você que já mexeu com 8051 vai guardar com carinho em algum cd pq vc que já mexeu com isso procurando na internet sabe que muita coisa que estava naquela época simplesmente não existe mais (98...2001).

Agora vai a dica sobre o SDCC e o 8051, outros micros suportados pelo SDCC em breve...

http://sdcc.sourceforge.net/

O SDCC é um compilador em C pra quem não foi afortunado com o GCC, GPL etc e tal...

Suporta muitas arquiteturas clássicas como 0 Z80, 8051 além de PIC's, o que pode fazer a diferença pra você que como eu já programou em asm pq era obrigado e agora com C, basic e outras linguagens se libertou (infelizmente de vez em quando é necessário fazer asm inline...), a não ser que você tenha nas mãos um pic10f ou 12f5.. que não tem quase nada em flash e daí vc tem que fazer milagre com isso.

Enfim, já programei muito em asm de pic, depois com os compiladores basic e C deixei de ser detalhista e parei de mexer com isso em troca da minha saúde mental hehehehe

Na hora de compilar é sdcc com cpu default, daí você faz o /? e olha lá, sem erro, vai gerar um dos tipos de arquivo q o programador suporta e pronto (SDCC...), só gravar!

Olhe o software super idiota que eu fiz pra testar, ele pisca leds sem usar nenhum timer, idiota, não?

#include <at89x52.h>
#define Desativa_INT IE=0x0;

void delay_ms(unsigned char ms);
void main(void)
{
Desativa_INT
while(1)
{
P0=0;
delay_ms(200);
P0=0xFF;
delay_ms(200);
}
}

void delay_ms(unsigned char ms)
{
unsigned char i;

while (ms> 1)
{
ms--;
for (i=0; i < 111; i++)
{
_asm
nop // o DJNZ é 2 Machine Cycles (12x2 clocks) ,NOP é 1 Machine Cycle
_endasm; // cada machine cycle é 12 clocks!!! (que lerdeza)

}

}
}

Aí você vai ver esse DJNZ com um monte de coisa na frente e dizer: "De onde esse imbecil tirou isso?" não se desespere!!! fui no list em asm, dei uma olhada no que o compilador aprontou, peguei o datasheet lá e tirei q DJNZ é 2 machine cycles.

Espero que o meu 111 esteja certo (não conferi as contas mas piscou)...não esqueça que o meu cristal lá era de 4MHz, e você deve configurar isso no programador também!

Se vc é begginer não esqueça de colocar o EA em nível alto e fazer o reset funcionar na hora certa (ao ligar o sistema, use o velho sistema de capacitor, resistor diodo e chave).

Que lixo de blog agora que eu vi que ele tira minha identação!!!

Boa semana a todos!

Muito bom a parte "google secreto", rs...
Depois vou mandar para você uma matéria sobre o PIC com o SDCC.
Abraço
dfberquo
Sun 26-Oct-2008 14:16
Posted by:Daniel


Add your comment
Name
Email (optional)
Register for updates Register for this Fotopage update (requires email)
Register for entry comments update (requires email)

More...
Link URL (optional)
verification Code
fill in the below number in the box





View complete fotopage


© Pidgin Technologies Ltd. 2008.