Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
“Olá mundo”
Programação em C utilizando
o Mplab C18 e PIC´s da
família 18F
Luis Rafael 2010
http://www.lingtronic.com
1
•Facilidade de Aquisição
•Baixo consumo
•Entradas e Saídas
•Conversor ADC
•Fácil Interligação com outros dispositivos
•Interrupções externas e internas
Microchip Technology
Programar em C
#include <p18cxxx.h>
void main(void)
{
/* Coloca os registos a O e define o port B como saidas */
LATB = 0x00;
TRISB = 0x00;
/* Ligar um led B0 */
LATBbits.LATB0 = 1;
/* PORTDbits.RB0 =1 teria funcionado mas não é a maneira
correcta*/
while(1);
}
Luis Rafael 2010
http://www.lingtronic.com 4
Microcontrolador – PIC
Programar em C
.
.
.
int i; ...
while(1)
{
LATBbits.LATB0 = 1;
/* Liga LED, B0 */
for ( i = 0; i < 32768; i++);
LATBbits.LATB0 = 1;
nop;
LATBbits.LATB0 = 1;
/* Desliga LED, B0 */
for ( i = 0; i < 32768; i++);
LATBbits.LATB0 = 0;
nop;
}
Tempos e Delays
void main(void)
{
/* Config PORT D como saidas digitais */
LATD = 0x00;
TRISD = 0x00;
while(1)
{
/* Turn on LED, D1 */
LATDbits.LATD0 = 1;
/* Delay de 500 milissegundos */
Delay10KTCYx(200);
/* Turn off LED, D1 */
LATDbits.LATD0 = 0;
/* Delay de 500 milissegundos */
Delay10KTCYx(200);
Luis Rafael 2010
}
http://www.lingtronic.com } 7
Microcontrolador – Delays.h
Example Delay in
Function Functionality Provided Parameters
Usage Example
100
Delay10TC Delay in multiples of 10 unsigned char Delay10TCYx(10); Instruction
Yx instruction cycles. (8 bit value)
Cycles
1,000
Delay100T Delay in multiples of 100 unsigned char Delay100TCYx(10); Instruction
CYx instruction cycles. (8 bit value)
Cycles
10,000
Delay1KTC Delay in multiples of unsigned char Delay1KTCYx(10); Instruction
Yx 1,000 instruction cycles. (8 bit value)
Cycles
Delay in multiples of 100,000
Delay10KT unsigned char Delay10TCYx(10);
10,000 instruction Instruction
CYx (8 bit value)
cycles. Cycles
void main(void)
{
/* Set PORT D as digital outputs */
LATD = 0x00;
TRISD = 0x00;
/* Loop forever */
while(1)
{
/* Turn on LED, D1 */
LED0 = 1;
Luis Rafael 2010
http://www.lingtronic.com 9
MPLAB
Ficheiros a Adicionar
•Ficheiro com o código fonte
na pasta source files
•Ficheiro de configuração e
outras bibliotecas na pasta
header files
•Ficheiro .Lib do
microcontrolador a utilizar
na pasta Library Files
•Ficheiro *.lkr do
microcontrolador a utilizar
Luis Rafael 2010
http://www.lingtronic.com 13
Configuration Bits
http://www.lingtronic.com
15