Buscar

AulA 1,2,3 Piscando Led no MPLAB C18 e Proteus8 1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Continue navegando


Prévia do material em texto

ISUTIC - Instituto Superior para as Tecnologias de Informação e Comunicação 
Engenharia de Telecomunicações (2º Ano – 4º Semestre)
Disciplina de Microprocessadores
 ELABORADO POR:Prof: Adilson G. Domingos
 Luanda 2018
AulA 1: PIC18F4550 PISCANDO LED USANDO O MPLAB C18 E O PROTEUS 8.1 
#include<P18F4550.h>	// inclui os arquivos do PIC18F4550
#include<delays.h> 	// inclui a biblioteca delays(atrasos)
//// Configurções específicas do PIC18F4550 no MPLAB
#pragma config	PLLDIV = 5			// PLL para 20MHz	
#pragma config	CPUDIV = OSC1_PLL2		// PLL desligado
#pragma config	FOSC = HS			// Fosc = 20MHz -> Tcy = 200ns
#pragma config	WDT = OFF			// Watchdog desativado
#pragma config	PBADEN = OFF		// PORTB começa como digital
#pragma config	LVP = OFF			// Sem gravação em baixa tensão
#pragma config	XINST = OFF		// Desativa o modo de programação estendida
void main(void){		// funcao principal da linguagem C
	TRISD = 0x00;	// configura portal D como saída
	PORTD=0X00;	// inicializa todos os pinos do port D em zero
	for(;;){				// laço infinito com o for
	PORTD = 0XFF;	// coloca todo PORTD em alto
	Delay10KTCYx(10);	// deley de um segundo
	PORTD = 0X00;	// coloca todo PORTD em baixo
	Delay10KTCYx(10);	// delay de um segundo	
	}
}
AulA 2: PISCANDO LED USANDO O MPLAB C18 E O PROTEUS 8.1 
#include<P18F4550.h>	// inclui os arquivos do PIC18F4550
#include<stdlib.h>
#include<stdio.h>
#include<delays.h> 	// inclui a biblioteca delays(atrasos)
//// Configurções específicas do PIC18F4550 no MPLAB
#pragma config	PLLDIV = 5			// PLL para 20MHz	
#pragma config	CPUDIV = OSC1_PLL2		// PLL desligado
#pragma config	FOSC = HS			// Fosc = 20MHz -> Tcy = 200ns
#pragma config	WDT = OFF			// Watchdog desativado
#pragma config	PBADEN = OFF		// PORTB começa como digital
#pragma config	LVP = OFF			// Sem gravação em baixa tensão
#pragma config	XINST = OFF		// Desativa o modo de programação estendida
#define B1 PORTBbits.RB0
#define L1 LATEbits.LATE1
void main(void){		// funcao principal da linguagem C
// ADCON1=6;
TRISB = 0X01;	
TRISE = 0X00;
L1=0;
	for(;;){				// laço infinito com o for
	// inicializa o pino do port RD0 em zero
if(B1){
L1=0;
}
else{ 
L1=1;}		
	}
}
 AulA 3: Acendendo e apagando LED com o mesmo Botão USANDO O MPLAB C18 E O PROTEUS 8.1 
#include<P18F4550.h>	// inclui os arquivos do PIC18F4550
#include<stdlib.h>
#include<stdio.h>
#include<delays.h> 	// inclui a biblioteca delays(atrasos)
//// Configurções específicas do PIC18F4550 no MPLAB
#pragma config	PLLDIV = 5			// PLL para 20MHz	
#pragma config	CPUDIV = OSC1_PLL2		// PLL desligado
#pragma config	FOSC = HS			// Fosc = 20MHz -> Tcy = 200ns
#pragma config	WDT = OFF			// Watchdog desativado
#pragma config	PBADEN = OFF		// PORTB começa como digital
#pragma config	LVP = OFF			// Sem gravação em baixa tensão
#pragma config	XINST = OFF		// Desativa o modo de programação estendida
#define B1 PORTBbits.RB0
#define L1 LATEbits.LATE1
 
 short x=0;
void main(void){		// funcao principal da linguagem C
// ADCON1=6;
TRISB = 0X01;	
TRISE = 0X00;
L1=0;
 INTCON2bits.RBPU = 0;	// ativa pul-ups
	
	for(;;){				// laço infinito com o for
	// inicializa o pino do port RD0 em zero
if(B1==0){ if (x==0){Delay10KTCYx(1000); 
L1=1;x=1;}
}
else { 
if(B1==0){ if (x==1){Delay10KTCYx(1000); 
L1=0;x=0;}		
}	}
}
}
AulA 4: contador com Display de 7 Segmento USANDO O MPLAB C18 E O PROTEUS 8.1
#include<P18F4550.h>
//// Configurções
#pragma config	PLLDIV = 5			// PLL para 20MHz	
#pragma config	CPUDIV = OSC1_PLL2	// PLL desligado
#pragma config	FOSC = HS			// Fosc = 20MHz -> Tcy = 200ns
#pragma config	WDT = OFF			// Watchdog desativado
#pragma config	PBADEN = OFF		// PORTB começa como digital
#pragma config	LVP = OFF			// Sem gravação em baixa tensão
#pragma config	XINST = OFF	// Desativa o modo de programação estendida
// Definições de hardware
#define INC		PORTBbits.RB0		// DISP1
#define DEC		PORTBbits.RB1		// DISP1
#define DISP4	PORTAbits.RA5			// DISP4
#define DISP3	PORTAbits.RA2			// DISP3
#define DISP2	PORTEbits.RE0			// DISP2
#define DISP1	PORTEbits.RE2			// DISP1
#define DISPLAY	PORTD			// Segmentos do display ligados em PORTD
void main(void){
	// Declaração de variáveis
	int i = 0;
	// tabela de dígitos do display (matriz com 10 posições)
	char table[] = {			0b00111111,	// 0
					0b00000110,	// 1
					0b01011011, // 2
					0b01001111,	// 3
					0b01100110,	// 4
					0b01101101,	// 5
					0b01111100,	// 6
					0b00000111,	// 7
					0b01111111,	// 8
					0b01100111,	// 9
					0b01110111,	// A (10)
					0b01111100,	// B (11)
					0b01011000,	// C (12)
					0b01011110,	// D (13)
					0b01111001,	// E (14)
					0b01110001	// F (15)
};
	// *** Inicialização
	ADCON1 = 0x0F;
	DDRD = 0x00;		// configura port D como saída
	DDRAbits.RA5 = 0;		// DISP4 é saída
	DDRAbits.RA2 = 0;		// DISP3 é saída
	DDREbits.RE0 = 0;		// DISP2 é saída
	DDREbits.RE2 = 0;		// DISP1 é saída
	//****Seleciona o display em que vai ser apresentado o valor *****
//Podes ativar um outro display aplicando 1 e desabilitando os outros
	DISP1 = 0;		// DISP1 ligado se for catodo comum
	DISP2 = 1;		// DISP2 desligado
	DISP3 = 1;		// DISP3 desligado
	DISP4 = 1;		// DISP4 desligado
	INTCON2bits.RBPU = 0;	// ativa pul-ups
	
	while(1){
int i;
for ( i=0 ; i<=9 ; i++ ){	
		PORTD = table[i]; //Envia os dados para os pinos do DISPLAY
		Delay10KTCYx(10000); // delay de um segundo
			//****Seleciona o dado que será 	i=7; apresentado****
	}
	} }
AulA 5: 
#include<P18F4550.h>
//// Configurções
#pragma config	PLLDIV = 5			// PLL para 20MHz	
#pragma config	CPUDIV = OSC1_PLL2	// PLL desligado
#pragma config	FOSC = HS			// Fosc = 20MHz -> Tcy = 200ns
#pragma config	WDT = OFF			// Watchdog desativado
#pragma config	PBADEN = OFF		// PORTB começa como digital
#pragma config	LVP = OFF			// Sem gravação em baixa tensão
#pragma config	XINST = OFF	// Desativa o modo de programação estendida
// Definições de hardware
#define INC		PORTBbits.RB0		// DISP1
#define DEC		PORTBbits.RB1		// DISP1
#define DISP4	PORTAbits.RA5			// DISP4
#define DISP3	PORTAbits.RA2			// DISP3
#define DISP2	PORTEbits.RE0			// DISP2
#define DISP1	PORTEbits.RE2			// DISP1
#define DISPLAY	PORTD			// Segmentos do display ligados em PORTD
void main(void){
	// Declaração de variáveis
	int i = 0;
	// tabela de dígitos do display (matriz com 10 posições)
	char table[] = {			0b00111111,	// 0
					0b00000110,	// 1
					0b01011011, // 2
					0b01001111,	// 3
					0b01100110,	// 4
					0b01101101,	// 5
					0b01111100,	// 6
					0b00000111,	// 7
					0b01111111,	// 8
					0b01100111,	// 9
					0b01110111,	// A (10)
					0b01111100,	// B (11)
					0b01011000,	// C (12)
					0b01011110,	// D (13)
					0b01111001,	// E (14)
					0b01110001	// F (15)
};
	// *** Inicialização
	ADCON1 = 0x0F;
	DDRD = 0x00;		// configura port D como saída
	DDRAbits.RA5 = 0;		// DISP4 é saída
	DDRAbits.RA2 = 0;		// DISP3 é saída
	DDREbits.RE0 = 0;		// DISP2 é saída
	DDREbits.RE2 = 0;		// DISP1 é saída
	//****Seleciona o display em que vai ser apresentado o valor *****
//Podes ativar um outro display aplicando 1 e desabilitando os outros
	DISP1 = 0;		// DISP1 ligado se for catodo comum
	Delay10KTCYx(10000); // delay de um segundo
	DISP1 = 1;		// DISP1 ligado se for catodo comum
 Delay10KTCYx(10000); // delay de um segundo
	DISP2 = 0;		// DISP2 desligado
 Delay10KTCYx(10000); // delay de um segundo
 DISP2 = 1;		// DISP2 desligado
 Delay10KTCYx(10000); // delay de um segundo
	DISP3 = 1;		// DISP3 desligado
	DISP4 = 1;		// DISP4 desligado
	INTCON2bits.RBPU = 0;	// ativa pul-ups
	
	while(1){
int i;
int j;
for ( i=0 ; i<=9 ; i++ ){	
		PORTD = table[i]; //Envia os dados para os pinos do DISPLAY
	for ( j=0 ; j<=9 ; j++ ){	
		PORTD = table[j]; //Envia os dados para os pinos do DISPLAY
	Delay10KTCYx(10000); // delay de um segundo//****Seleciona o dado que será 	i=7; apresentado****
	}
	} }
}
#include<P18F4550.h>
//// Configurções
#pragma config	PLLDIV = 5			// PLL para 20MHz	
#pragma config	CPUDIV = OSC1_PLL2	// PLL desligado
#pragma config	FOSC = HS			// Fosc = 20MHz -> Tcy = 200ns
#pragma config	WDT = OFF			// Watchdog desativado
#pragma config	PBADEN = OFF		// PORTB começa como digital
#pragma config	LVP = OFF			// Sem gravação em baixa tensão
#pragma config	XINST = OFF	// Desativa o modo de programação estendida
// Definições de hardware
#define INC		PORTBbits.RB0		// DISP1
#define DEC		PORTBbits.RB1		// DISP1
#define DISP4	PORTAbits.RA5			// DISP4
#define DISP3	PORTAbits.RA2			// DISP3
#define DISP2	PORTEbits.RE0			// DISP2
#define DISP1	PORTEbits.RE2			// DISP1
#define DISPLAY	PORTD			// Segmentos do display ligados em PORTD
void main(void){
	// Declaração de variáveis
	int i = 0;
	// tabela de dígitos do display (matriz com 10 posições)
	char table[] = {			0b00111111,	// 0
					0b00000110,	// 1
					0b01011011, // 2
					0b01001111,	// 3
					0b01100110,	// 4
					0b01101101,	// 5
					0b01111100,	// 6
					0b00000111,	// 7
					0b01111111,	// 8
					0b01100111,	// 9
					0b01110111,	// A (10)
					0b01111100,	// B (11)
					0b01011000,	// C (12)
					0b01011110,	// D (13)
					0b01111001,	// E (14)
					0b01110001	// F (15)
};
	// *** Inicialização
	ADCON1 = 0x0F;
	DDRD = 0x00;		// configura port D como saída
	DDRAbits.RA5 = 0;		// DISP4 é saída
	DDRAbits.RA2 = 0;		// DISP3 é saída
	DDREbits.RE0 = 0;		// DISP2 é saída
	DDREbits.RE2 = 0;		// DISP1 é saída
	//****Seleciona o display em que vai ser apresentado o valor *****
//Podes ativar um outro display aplicando 1 e desabilitando os outros
 DISP1 = 1;		// DISP3 desligado
	DISP2 = 1;		// DISP4 desligado
	DISP3 = 1;		// DISP3 desligado
	DISP4 = 1;		// DISP4 desligado
	INTCON2bits.RBPU = 0;	// ativa pul-ups
	
	while(1){
int i;
int j=0;
for ( i=0 ; i<=9 ; i++ ){	
		PORTD = table[i]; //Envia os dados para os pinos do DISPLAY
 //Envia os dados para os pinos do DISPLAY
 
	for ( j=0 ; j<=9 ; j++ ){	
		PORTD = table[j]; //Envia os dados para os pinos do DISPLAY
	DISP1 = 0;		// DISP1 ligado se for catodo comum
	Delay10KTCYx(10000); // delay de um segundo
	DISP1 = 1;		// DISP2 desligado
	Delay10KTCYx(10000); // delay de um segundo
 DISP2 = 0;		// DISP1 ligado se for catodo comum
	Delay10KTCYx(10000); // delay de um segundo
	DISP2 = 1;		// DISP2 desligado
	Delay10KTCYx(10000); // delay de um segundo
}	 	
}
}
}