Relógio e contagem até 9999d
O código abaixo, para microcontroladores PIC, foi escrito com a inteção inicial de apenas exibir dígitos em 4 displays de sete segmentos multiplexados através de 4 transistores. Entretanto, o código foi expandido para ter as seguintes funcionalidades:
Instruções de movimentação de dados
Cada instrução da família mid-range tem 14 bits divididos entre um OPCODE, que especifica o tipo de instrução, e um ou mais operandos. Neste artigo, comentaremos as instruções relacionadas à movimentação de dados.
Power-Up Timer
Power-on reset é um pulso aplicado ao sinal /MCLR quando uma subida no sinal de alimentação Vdd é detectado (geralmente, Vdd é um sinal tipo rampa) para que o microcontrolador se inicie corretamente de maneira estável.
Sistemas de aterramento
O seguinte texto aborda alguns tópicos importantes de sistemas de aterramento de sistemas de potência e para equipamentos eletrônicos sensíveis.
diodo comum - capacitância de junção
Em circuitos gerais (baixas freqüências), implicitamente assumimos que a freqüência do sinal é tão pequena que os efeitos capacitivos de um diodo comum se tornavam negligenciáveis. Entretanto, quando a freqüência do sinal de entrada aumenta consideravelmente para além de alguns kHz, as capacitâncias de difusão (associada a altas correntes diretas) e de junção (variável com a tensão reversa aplicada ao diodo) se tornam relevantes. Nesses casos, o modelo do diodo para pequenos sinais torna-se uma resistência rd e as capacitâncias Cd e Cj em paralelos (modelo aproximado tendo em vista que Cd depende até do sentido da polarização). Devido a essas capacitâncias, o diodo passa a ser um curto-circuito em altas freqüências; ou seja, o ganho do sistema tende a um valor (em dB) negativo muito grande, conforme o gráfico da resposta em freqüência para o circuito em questão.
mostra4digitos - exibe quatro dígitos em displays multiplexados
A seguinte função para a família de microcontroladores PIC16 controla a exibição de 4 dígitos decimais em 4 displays de 7 segmentos multiplexados através de transistores e um decodificador BCD para 7 segmentos. O número a ser exibido deve estar contindo em digitos_low (dois dígitos BCD) e digitos_high (dois dígitos BCD mais significativos). Esta função utiliza a função mostra1digito.
cblock...endc
cblock...endc é um recurso do MPASM muito utilizado para a geração de blocos de constantes (símbolos seqüenciais com nome). Portanto, não é necessário utilizar várias diretivas equ para que o assembler gerar uma lista de símbolos (com endereços contínuos).
delay_us
A função abaixo demonstra uma maneira muito simples de obter atrasos de microsegundos com um microcontrolador da família PIC16 com cristal de 20Mhz. Devido à base de tempo muito pequena, utilizou-se apenas um loop que decrementa o variável delay invés de utilizar um timer. Para atrasos de microsegundos, veja a função delay_ms que também utiliza a variável delay e o TMR1.
Watchdog
Se você é novo no mundo dos microcontroladores em geral, você deve estar se questionando se o recurso Watchdog Timer dos microcontroladores PIC tem realmente alguma utilidade. Afinal, quem gostaria de ter o microcontrolador reiniciado, em determinadas circunstâncias, periodicamente?
mostra1digito - exibe um dígito em displays multiplexados
A seguinte função para a família de microcontroladores PIC16 exibe um dígito BCD em um dos 4 displays de sete segmentos multiplexados através de transistores. A posição do dígito é especificado pela variável mostra1_posicao_7seg. Os 4 bits menos significativos de PORT_DISPLAY_7SEGMENTOS referem-se aos dados e os 4 bits mais significativos, ao número (posição) do display em relação ao conjunto de 4 displays.
Code folding para Assembly
Code folding é um mecanismo do MPLAB IDE que permite expandir ou esconder um código aninhado. Esse recurso pode ser ativo em Edit->Properties, tab 'ASM/C' File Types, ativando-se "Enable Code Folding". Para assembly, o bloco de código deve estar entre ;{ e ;} e para código em C, entre {}.
Para utilizar o code folding, clique com o lado direito no texto direito e selecione uma das opções do submenu Code Folding.
toBCD16 - Hexadecimal para BCD 16 bits
A função toBCD16 funciona de maneira similar a função toBCD8. O algoritmo de conversão consiste na divisão sucessiva por 1000, por 100, por 10 e o número restante é o próprio dígito das unidades. O código abaixo é destinado a conversão de 4 dígitos (de 0000 até 9999). O código-fonte deve funcionar em qualquer PIC da família PIC16 sem nenhuma alteração.
toBCD8 - Hexadecimal para BCD 8 bits
A rotina de conversão de números hexadecimais para BCD de 8 bits em assembly é uma rotina simples que consiste em sucessivas subtrações por .10 (0xA) para contagem das dezenas. Após a obtenção do dígito das dezenas, tem-se o dígito das unidades (o número restante das subtrações). Essa rotina pode ser utilizada para a exibição de 2 números em displays de 7 segmentos.
WordPress
O WordPress é um software escrito em PHP muito utilizado no gerenciamento de blogs e que cumpre muito bem esse objetivo permitindo a administração de posts (conteúdo dinâmico e cronológico) ou pages (estático) e providenciando ao escritor um editor de texto html embutido.
Programming and customizing the PIC Microcontroller (terceira edição)
Programming and Customizing the PIC Microcontroller
Terceira edição
Autor: Myke Predko
Ano da publicação: 2008
1261 páginas
Comandos básicos do subversion
Licença pública GNU GPL versão 3
Infelizmente, por se tratar de um texto jurídico, a sua tradução por uma pessoa não especializada ao português brasileiro não é válida (não tem o mesmo efeito legal). Portanto, disponibilizamos apenas a íntegra da licença em inglês, disponível em http://www.gnu.org/licenses/gpl-3.0-standalone.html.