Programando Microcontroladores 8052 no Linux
Passei um bom tempo procurando como programar microcontroladores da família 8051 no Linux, as opções para M$ Win são várias(infelizmente) mas consegui encontrar as soluções para Linux a contento.
Software
Uso os seguintes programas para programar o 8052 no linux:
SDCC - http://sdcc.sourceforge.net/ - Compilador C ANSI - Open Source.
UISP - http://savannah.nongnu.org/projects/uisp - Universal In System Programmable.
S.O. que usei os programas: Ubuntu Linux 7.10(Gusty) - http://www.ubuntu.com.
Hardware
Estou usando o Kit8051LS, da Microgenios. A programação é feita via porta paralela do PC, é um kit que é muito bom tanto para quem está aprendendo(como eu) quanto para quem já é profissional.
Exemplo
Este programa de exemplo é bem simples, funciona como se fosse um semáforo, acendendo três LED’s em seqüencia.
//Projeto Semaforo - exemplo
#include "8052.h"
// Protótipos de funções
void fun_temp(char);
void main (void)
{
P2=0xFF; // Apaga todos os leds pares
while (1) // Rotina principal do programa
{
// Luz verde
P2_0=0; // Acende a luz verde
fun_temp(2); // Chama função de tempo com parâmetro 2
// Luz amarela
P2_0=1; // Apaga a luz verde
P2_1=0; // Acende a luz amarela
fun_temp(1); // Chama função de atraso
// Luz vermelha
P2_1=1; // Apaga a luz amarela
P2_2=0; // Acende a luz vermelha
fun_temp(3); // Chama função de atraso
P2_2=1; // Apaga a luz vermelha
}
}
void fun_temp(char cont)// Função de tempo com recebimento de
//parâmetro: variável "cont"
{
unsigned char contador1;
unsigned int contador2;
while (cont)
{
for (contador1 = 0 ; contador1<=50 ; contador1++)
for (contador2 = 0 ; contador2<=1000 ; contador2++);
cont--;
}
}
Compilação > Programação
Depois de escrever o programa em seu editor de texto preferido(uso o GEdit) e salvá-lo abra o Terminal(ou Konsole se você usa o KDE):
cd diretorio_onde_seu_programa_esta #exemplo cd /home/felipe/programas/semaforo
sdcc semaforo.c #compila seu programa e gera o arquivo .ihx
packihx semaforo.ihx > semaforo.hex #transforma seu arquivo .ihx para .hex e deixa pronto pra ser enviado ao seu microcontrolador
uisp -dlpt=/dev/parport0 -dprog=paravrisp -d89 –erase –upload if=semaforo.hex #talvez voce precise de privilegios de superusuario para acessar a porta paralela do pc
Vou explicar o que está escrito nessa linha de comando:
-dlpt: Aqui você digita o endereço de sua porta paralela. Se estiver usando a porta serial para o seu programador, use o parâmetro -dserial no lugar de -dlpt e coloque o endereço da porta serial que você está usando.
-dprog: É o tipo de programador. Já que eu não sabia qual era o tipo do meu, só sabia que era pela porta paralela(claro), então fui testando as opções para porta paralela.
-d89: É para indicar ao programador que você está usando microcontroladores baseados na família 8051.
erase: Apaga algum programa que estiver gravado na memória FLASH do microcontrolador.
upload: Depois de apagar a memória, já se pode inserir o arquivo .hex que você deseja.
Pronto! Agora é só desconectar o cabo de programação do Kit e ver o exemplo funcionando.
Parabéns pela iniciativa do post Felipe. Vc deve saber como é difícil achar material de microcontroladores e Linux (ainda mais em português).
Nessas férias de julho vou começar a testar o SDCC para compilar programas para PIC. Parece que esse compilador SDCC é uma das poucas alternativas para o microcontrolador que vou usar.
Até mais e abraços
tenho curso de programação, mas ttrabalho de eletricista pela prefeitura de pirassununga, e tenho, a até o programador de pic para ele.
Pois gostei do trabalho.
voce sabe como obter uma placa de hardwere paraa este programa.
POSSO FAZER ESTE TESTE?
Você pode testar o sdcc(compilador) junto com o uisp(programador) na placa que você tem, você só tem que definir se a programação é pela porta paralela ou serial, isso vai depender da sua placa.
Parabéns pelo site. Uma pergunta, vocês como colocar uma rotina nesse programa semarforo para programar o tempo de cada led pelo teclado e incluir um LCD?