Who's online

There are currently 0 users and 2 guests online.

Publicidade

Pinos

User login

PIC/dsPIC

PIC16: 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:

PIC16: 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.

PIC16: 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.
 

PIC16: 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?

PIC16: 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.

PIC16: 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.

PIC16: 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.

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