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 ele foi expandido para ter as seguintes funcionalidades:
A função toBCD16 funciona de maneira similar a função toBCD8. O algoritmo de conversão consiste na divisão sucessiva por 1000, 100 e 10. O número restante é o próprio dígito das unidades.
O código abaixo é destinado à conversão de 4 dígitos (de 0000 até 9999). Ele é compatível com todos os dispositivos da família PIC16.
Esta função demonstra uma maneira muito simples de obter atrasos de microsegundos com um microcontrolador da família PIC16 e um cristal de 20MHz. Devido à base de tempo muito pequena, utilizou-se apenas um loop que decrementa o variável delay, em vez de utilizar um timer.
Para atrasos de microsegundos, procure pela função delay_ms que também utiliza a variável delay e o temporizador TMR1.
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.
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 é mais necessário utilizar várias diretivas equ para que o assembler gerar uma lista de símbolos (com endereços contínuos).