View
218
Download
0
Category
Preview:
Citation preview
ENG-1450Microcontroladores e Sistemas Embarcados
– Lab01 – Ambientação com o Proteus e mikroC
I/O Digital, LCD, A/D e PWM
http://www.inf.puc-rio.br/~abranco/eng1450/
ENG-1450Microcontroladores e Sistemas Embarcados
– Lab01 – Ambientação com o Proteus e mikroC
I/O Digital, LCD, A/D e PWM
http://www.inf.puc-rio.br/~abranco/eng1450/
Material
Roteiro
1. Apresentação: Proteus e MikroC
2. Exercício guiado: Chave+LED
3. Exercício: Adicionar Chave e LED
4. Apresentação: Display LCD – Componente + Lib;
5. Exercício: Delay no LOOP+Contador+LCD(4 regiões)
6. Apresentação: A/D & PWM
7. Exercício: A/D(Potenciômetro)->PWM / LCD / Osciloscópio
** Extra, se sobrar tempo
8. Apresentação da Interface Serial + Terminal
9. Exercício: Envio de comando para o PWM e consulta ao A/D (via terminal)
Entrada e SaídaDigital
Lab1-1
1. Criar novo projeto "Lab1-1" no mikroC.– Configurar Device=PIC18F452 e Clock=8MHz– Usar o código C apresentado em sala
2. Criar novo projeto no Proteus – Montar o circuito apresentado– Executar a simulação
Obs: Dentro da configuração do microcontrolador deve-se alterar o parâmetro de clock da CPU para 8MHz e indicar o arquivo Lab1-1.hex como executável.
Código C exemplo Lab1-1
void main() {
TRISB.RB0 = 1;
TRISD.RD0 = 0;
while(1)
{
if (!PORTB.RB0)
{
PORTD.RD0 = 1;
Delay_ms(100);
PORTD.RD0 = 0;
Delay_ms(100);
}
}
}
http://www.inf.puc-rio.br/~abranco/eng1450/Lab01/Lab1-1.c
Inicialização
Loop infinito
Código C exemplo Lab1-1
void main() {
TRISB.RB0 = 1;
TRISD.RD0 = 0;
while(1)
{
if (!PORTB.RB0)
{
PORTD.RD0 = 1;
Delay_ms(100);
PORTD.RD0 = 0;
Delay_ms(100);
}
}
}
http://www.inf.puc-rio.br/~abranco/eng1450/Lab01/Lab1-1.c
Código C exemplo Lab1-1
while(1)
{
Delay_ms(100);
PORTD.RD0 = 0;
}
}
}
http://www.inf.puc-rio.br/~abranco/eng1450/Lab01/Lab1-1.c
Display LCD
Display LCD
● Funções prontas na biblioteca do MikroC● Utiliza 4 bits do LCD + 2 pinos de controle● Usuário define os pinos utilizados
– sbit LCD_D4 at RPb_bit;
– sbit LCD_D4_Direction at TRISPb_bit;
– Exemplo: Pb = C4 => Porta C, bit 4
● Cuidado quando usar os pinos Anx– Devem estar configurados como digitais
– A configuração default é como Analógica.● Exemplo: ADCON1 = 6; // Tudo digital
Display LCDno MikroC
// LCD module connectionssbit LCD_RS at RE0_bit;sbit LCD_EN at RE1_bit;sbit LCD_D4 at RC4_bit;sbit LCD_D5 at RC5_bit;sbit LCD_D6 at RC6_bit;sbit LCD_D7 at RC7_bit;
sbit LCD_RS_Direction at TRISE0_bit;sbit LCD_EN_Direction at TRISE1_bit;sbit LCD_D4_Direction at TRISC4_bit;sbit LCD_D5_Direction at TRISC5_bit;sbit LCD_D6_Direction at TRISC6_bit;sbit LCD_D7_Direction at TRISC7_bit;…. ADCON1 = 0x6;
LM016L
POT-HG
Lab1-2Delay no LOOP+Contador+LCD
● Loop– Cont++;
– Escrever Cont no LCD em diferentes posições.● (Cont%4) == 0 → Linha 1, Coluna 1● (Cont%4) == 1 → Linha 1, Coluna 8● (Cont%4) == 2 → Linha 2, Coluna 0● (Cont%4) == 3 → Linha 2, Coluna 8
– Delay_ms(1000);
● Obs - Usar a função IntToStr() do MikroC
Manual PICConsulta obrigatória
A/D & PWM
Conversor A/DAnalógico para Digital
Conversor A/DFuncionamento
Contador10 bits
ConversorDigital/Analógico
Vin
Vref
clock
. . .D0 D9
Comparador
Vx
Port AAN pins
A/D pinsPort A [0,1,2,3, ,5] Port E [0,1,2]
PIC18F452 – PortA Functions
A/D pinsPort A [0,1,2,3, ,5] Port E [0,1,2]
PIC18F452 - RegistersPort A and A/D control
ADCON0
CHS → A/D Channel Selection
Obs: A biblioteca do MikroC funciona com configurações pré-definidas.
ADCS & ADFM
PIC18F452 – ADCON1:PCFG
RE2 RE1 RE0 RA5 RA3 RA2 RA1 RA0
RA4 → T0CKI
0x06
0x0E
0x04
PWMPulse Width Modulation
Freq = 1/TWx = Largura do pulso 0 → 0% 255 → 100%
T
Pulso A
Pulso B
Pulso C
W2
W1
W3
T
PWMPulse Width Modulation
Pulso A
Pulso B
Pulso C
W2
W1
W3
Energia = f(Área)
E=1/5
E=2/5
E=3/5
A/D e PWM no MikroC Pro v6.0
● A/D– Definir AN0 como entrada– ADC_Read(0);
● PWM– PWM1_Init(1000);– PWM1_Start();– PWM1_Set_Duty(128); // 50%
Obs: ● Verificar Library Manager na IDE do MikroC se as bibliotecas ADC e PWM estão selecionadas.
● No PIC18F452, PWM1=RC2/CCP1 e PWM2=RC1/CCP2
Lab1-3A/D(Potenciômetro)->PWM / LCD / Osciloscópio
Vcc
GND
0v .. 5v 0 .. 1023 0 .. 255
AN0 input ADC_Read() PWM1_Set_Duty()
Extra: Lab1-4Interface Serial & Terminal
Envio de comando para o PWM e consulta ao A/D● Interface serial da biblioteca do MikroC● Terminal no Proteus
– ícone de instrumentos
– Baudrate 9600
– Durante a simulação ativar “Echo Typed Characters”
● Interface Serial na vida real– Adaptador Bluetooth + Terminal/Aplicativo no Android
– NodeMCU WIFI + Serial PIC
– Debug - Terminal no PC (MikroC / tools / USART terminal)
Recommended