Mostrando postagens com marcador Microcontroladores. Mostrar todas as postagens
Mostrando postagens com marcador Microcontroladores. Mostrar todas as postagens
segunda-feira, 17 de setembro de 2012
Teste Rápido da Placa de Entradas
- Comunicação USB - Perfeita, inclusive na máquina virtual funcionou perfeitamente;
- Testes de Software - Perfeito, com acionamento dos pontos por negativo e identificação dos pontos com delay previsto;
- Testes de Hardware - Alguns acertos são necessários, mas funcionou melhor que o esperado.
quarta-feira, 25 de julho de 2012
Flowcode - Sequêncial de Led´s Controlado por Chaves
Na imagem é possível ver a programação, o fluxograma de funcionamento, é bem básico, sendo até mais simples que o anterior.
A imagem abaixo mostra a simulação e o correto funcionamento do fluxograma.
Veja como o programa gerou o código em C:
//Declarações da variável
char FCV_VERIFICA;
char FCV_TESTE;
//Implementações Macro
void main()
{
//Iniciação
adcon1 = 0x07;
//Código de iniciação de interrupção
option_reg = 0xC0;
//Comentário:
//Programa Sequêncial de Led´s Acionados Por Chaves
//Ciclo eterno...
//Ciclo
//Ciclo: Enquanto1
while (1)
{
//Comentário:
//Como determinei que toda Porta C seriam minhas as Chaves,
//a variavel VERIFICA recebe o estado atual do Porta C...
//Entrada
//Entrada: PORTO C -> VERIFICA
trisc = trisc | 0xff;
FCV_VERIFICA = portc;
//Comentário:
//Verifico a Porta C continua no mesmo estado, testo se a variável
//VERIFICA(estado atual) está igual a variável TESTE(estado anterior).
//Se for igual o programa pula os próximos dois passos...
//Decisão
//Decisão: VERIFICA = TESTE?
if (FCV_VERIFICA == FCV_TESTE)
{
} else {
//Comentário:
//Como não são iguais, coloco na variável TESTE o valor da variável VERIFICA...
//Cálculo
//Cálculo:
// TESTE = VERIFICA
FCV_TESTE = FCV_VERIFICA;
//Comentário:
//Como os Led´s estão relacionados a toda Porta B,
//basta apenas direcionar o valor da variável TESTE
//para a Porta B que os led´s serão acionados ou desligados
//conforme o estado da Porta C...
//Saída
//Saída: TESTE -> PORTO B
trisb = 0x00;
portb = FCV_TESTE;
}
//Comentário:
//Um atraso só para evitar problemas...
//Atraso
//Atraso: 300 ms
delay_ms(255);
delay_ms(45);
}
mainendloop: goto mainendloop;
}
Para baixe o fluxograma aqui.
terça-feira, 24 de julho de 2012
Flowcode - Sequêncial Automático de Led´s
Achei muito interessante, principalmente para quem está iniciando no mundo da programação e para quem também entende a lógica, mas não tem tanta intimidade assim com programação, consegue otimizar muito o tempo de um programa. Utilizando o Flowcode v4.2.3.58 da Matrix Multimedia fiz um pequeno programa sequencial automático para 10 leds, utilizei o microcontolador PIC 16f877A e determinei que toda a Porta D fossem os Leds de 1 a 8 e os pinos 1 e 2 da Porta B fossem os Leds 9 e 10.
Na imagem é possível ver a programação, o fluxograma de funcionamento, é um básico fluxograma lógico, dos mesmos que encontramos nas aulas de lógica de programação. A única dificuldade é definir as portas correspondentes ao que deseja fazer, acionar Leds, botões,..., mas o programa trata isso de forma fácil e prática, além de ser possível simular o funcionamento de toda programação. No final do post tem o link para download do fluxograma que está bem comentado.
Mas como seria em c?... é possível ver o código que o programa gera, inclusive em Assembler e com os comentários que foram feitos...
void main()
{
//Iniciação
adcon1 = 0x07;
//Código de iniciação de interrupção
option_reg = 0xC0;
//Cálculo
//Cálculo:
// contador = 1
FCV_CONTADOR = 1;
//Comentário:
//Coloca o valor 1 na variável contador...
//Ciclo
//Ciclo: Enquanto1
while (1)
{
//Comentário:
//loop infinito
//Saída
//Saída: contador -> PORTO D
trisd = 0x00;
portd = FCV_CONTADOR;
//Comentário:
//PortD recebe o valor da variável contador
//Atraso
//Atraso: 3 s
delay_s(3);
//Decisão
//Decisão: contador = 128?
if (FCV_CONTADOR == 128)
{
//Comentário:
//Vem para esta condição quando a variável contador chega a 128
//atingindo o ultimo Led do PortD e sendo necessário acionar os
//dois leds do PORTB
//Comentário:
//Esta condição só é acionada para ativar os dois ultimos leds da sequência
//Saída
//Saída: 0 -> PORTO D
trisd = 0x00;
portd = 0;
//Comentário:
//Zera o PortD para mudar o valor dos ultimos dois Leds
//Saída
//Saída: 1 -> PORTO B
trisb = 0x00;
portb = 1;
//Comentário:
//Aciono o Led 9
//Atraso
//Atraso: 3 s
delay_s(3);
//Saída
//Saída: 2 -> PORTO B
trisb = 0x00;
portb = 2;
//Comentário:
//Desligo o Led 9 e aciono o led 10
//Atraso
//Atraso: 3 s
delay_s(3);
//Saída
//Saída: 0 -> PORTO B
trisb = 0x00;
portb = 0;
//Cálculo
//Cálculo:
// contador = 1
FCV_CONTADOR = 1;
//Comentário:
//Mudo o valor da variavel contador para 1
} else {
//Cálculo
//Cálculo:
// contador = contador*2
FCV_CONTADOR = FCV_CONTADOR*2;
//Comentário:
//O contador tem seu valor multiplicado por 2(2, 4, 8, 16, 32, 64, 128)
//é utilizada a lógica de números binários com a variável contador,
//assim, quando mandar o valor para o portD será mostrado o valor da variável
//2(01000000)
//4(00100000)
//8(00010000)
//16(00001000)
//32(00000100)
//64(00000010)
//128(00000001)
}
}
mainendloop: goto mainendloop;
}
void MX_INTERRUPT_MACRO(void)
{
}
Mais um programa simples e muito funcional para auxiliar o programador...já gravei PIC's para testar e funcionaram perfeitamente... Quem quiser pode baixar o fluxograma aqui...e por hoje é só pessoal...
sábado, 15 de agosto de 2009
DICAS PARA O MPLAB
INTRODUÇÂOO MPLAB é um pacote de programas que facilita escrever ou desenvolver um programa. Pode descrever-se ainda melhor como sendo um software que integra diversos ambientes de trabalho necessários para a realização de projetos, programação, simulação e gravação de microcontroladores da família PIC. Anteriormente, as operações incidiam sobre uma linha de instrução e contemplavam um grande número de parâmetros, até que se introduziu o IDE "Integrated Development Environment" (Ambiente Integrado de Desenvolvimento) e as operações tornaram-se mais fáceis, usando o MPLAB.
O AMBIENTE

Afim de cria um código hexadecimal (.hex), necessário para programar o microcontrolador, os arquivos fontes devem ser associados a um projeto, que controla todo processo.
Passos necessórios para se trabalhar no MPLAB:
1. Selecionar o Dispositivo;
2. Criar o projeto;
3. Selecionar as Ferramentas de Linguagem(Toolsuite);
4. Criar o Código Fonte (.asm);
5. Agregar os Arquivos ao Projeto;
6. Construir o Projeto.
1 - SELECIONAR O DISPOSITIVO
Ir ao menu principal e selecionar: Configure>Select Device.
Em seguida aparecerá a janela para seleção do dispositivo a ser usado. Os dispositivos podem ser facilmente separados pelo campo Device Family que permite separar os dispositivos por família.
Após a seleção, haverá a indicação na janela do dispositivo selecionado, informando por quais programadores e linguagem ele suporta.

A cor verde indica que é suportado e testado para o dispositivo.
A cor amarela indica que não foi testado para esse dispositivo.
A cor Vermelha indica que não é suportado por esse dispositivo.
DICAS:
I - Problema de Compilação 1;
I - Problema de Compilação 1;
Caso ao compilar um programa apareça a seguinte mensagem:
"The format of the file .cof can not be read or written because its extension was not recognized."
Para resolver este problema, basta executar os seguintes passos:
1 - Fechar o MPLAB;
2 - Ir em Iniciar -> Executar;
3 - No campo digitar o comando ( regsvr32 "C:\Arquivos de Programas\Microchip\MPLAB IDE\core\MPProgram.dll";
4 - Clique no botão OK;
5 - Agora é só abrir o MPLAB e tentar compilar o projeto novamente.
II - Problema de Compilação 2
Caso ao compilar um programa apareça a seguinte mensagem:
Release build of project `C:\Documents and Settings\Leonardo\Meus documentos\projeto facil.mcp' started.
Mon Feb 04 20:43:33 2008
----------------------------------------------------------------------
Build aborted. The project contains no source files.
---------------------------------------- ------------------------------
Release build of project `C:\Documents and Settings\Leonardo\Meus documentos\projeto facil.mcp' failed.
Mon Feb 04 20:43:33 2008
FAILED
---------------------------------------- ------------------------------
Mon Feb 04 20:43:33 2008
----------------------------------------
Build aborted. The project contains no source files.
----------------------------------------
Release build of project `C:\Documents and Settings\Leonardo\Meus documentos\projeto facil.mcp' failed.
Mon Feb 04 20:43:33 2008
FAILED
----------------------------------------
Levando em consideração que ao criar um código fonte em um novo projeto o programador apenas clicou em novo arquivo, salvou e depois tentou compilar....
Sempre que se cria um projeto no MPLAB é gerada sua Área de Trabalho(Workspace) que é a configuração dos formulários da tela do MPLAB. Assim, o novo arquivo foi salvo mas não foi adicionado ao projeto.
Para resolver, basta clicar em "Project->Add File to Project" e selecionar o arquivo do código fonte. Basta compilar agora.
BIBLIOGRAFIA:
Assinar:
Postagens (Atom)

