Introduo Microprocessadores: 4 bits, 8 bits, 16... um chip: com alta integrao de componentes RAM externa memria EEPROM externa HD para armazenamento de programas outros diversos perifricos.
Ou seja, voc usa um microprocessador dentro de um microcomputador e ele, em conjunto com um monte de outros CIs, trabalham direitinho. MICROPROCESSADORES E MICROCONTROLADORES
Introduo Microcontrolador um componente completo por si s. Basta um programa e ele executa uma funo especfica. Dentro do microcontrolador temos memria RAM, FLASH, EEPROM ou E2PROM. MICROPROCESSADORES E MICROCONTROLADORES
Introduo Vamos simplificar resumindo a lgica em dois nmeros ou como falamos muito, em dois dgitos: O 0 (zero) e o 1 (um). Quando falamos em 0 (zero), estamos nos referindo a zero Volt DC e quando falamos em 1 (um) estamos falando em + Vcc. No caso dos microcontroladores PIC, geralmente, estaremos falando que:
0 = GND e 1 = 5Vcc Lgica Digital
Introduo Memria ROM Memria RAM Memria EPROM Memria EEPROM ou E2PROM Memria FLASH TIPOS DE MEMORIAS
Introduo um endereo na memria Formados por 8 nmeros, ou melhor, 8 bits. Estes bits podem ser 0 (zero) ou 1 (um). Muitas vezes chamamos estes bits de Flags. Flag ento um bit dentro de um registrador. REGISTRADORES Introduo Imaginemos 8 posies: Cada posio pode ter um valor de 0 (zero) ou 1 (um). Esta posio com um valor um bit, ou melhor, bit o valor que h dentro da posio.
Quando juntamos 8 bits, como no exemplo a seguir:
00110011 Chamamos isto de byte. Um byte ento um conjunto de 8 bits. BITs e BYTES
Introduo s vezes os bits podem ser agrupados em nmeros de 4, veja: 0101 Damos a isto o nome de nibble. Outras vezes os bits podem se agrupar com nmeros maiores que 8, veja: 001100110011 Chamamos isto de Word: 16 bits ou 2 bytes NIBBLES e WORDS
Introduo Curiosidade importante
Nos PICS existem registradores especiais Podemos atravs dos bits ou flags destes registradores ajustar o funcionamento do PIC ou saber como ele est operando, para isto basta escrever ou ler os flags destes registradores.
Introduo Os primeiros microcontroladores usavam uma estrutura interna que tinha apenas um caminho para trafegar os dados e endereos. Lembre-se, dados so informaes e endereos so os locais onde sero armazenados os dados. O nome mais correto para este caminho Bus. Com apenas um bus tnhamos que trafegar hora endereos, hora dados. Esta arquitetura de construo recebe o nome de Von Neumann. Arquitetura de construo Von Neumann
Introduo
Hoje em dia, os PICs particularmente, trabalham com dois bus. Um para dados e outro para endereos. Este tipo de arquitetura recebe o nome de Harvard. Os PICs possuem ainda um outro recurso, chamado de Pipeline. Arquitetura de construo Harvard
Introduo CISC : possua mais de 100 instrues, o que dificultava a memorizao do programador. RISC: Este set tem entre 33 a 35 instrues dependendo do PIC. Isto ajuda na memorizao, mas, exige mais do programador. como falar fluentemente um outro idioma, conhecendo poucas palavras, all right? Arquitetura de construo CISC e RISC
Complex Instruction Set Computer
Reduced Instruction Set Computer Introduo arquitetura interna e suas configuraes Conhecendo o PIC Fabricado pela Microchip (www.microchip.com) Possui 18 pinos Possui 35 instrues Clock at 20MHz Memoria de programa tipo Flash de 2k words 224 bytes de memoria RAM de dados Caractersticas do PIC 16F628A
Conhecendo o PIC 128 bytes de memoria EEPROM para dados Instrues de 14 bits com 200ns de execuo Dados de 8 bits 15 registradores especiais 16 pinos de entrada/saida (I/O) ICPS, timer interno, watchdog, CPP, USART, etc... Caractersticas do PIC 16F628A
Arquitetura interna PINAGEM
Arquitetura interna RETIRANDO OS PERIFRICOS
Conhecendo o PIC PINAGEM
Conhecendo o PIC
PINAGEM: Funo dos pinos
Conhecendo o PIC PINAGEM: Funo dos pinos
Conhecendo o PIC Ports de Entrada e Sada
Conhecendo o PIC Ports de Entrada e Sada
0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 Conhecendo o PIC Com 8 nveis (imagine que voc quer guardar 8 caixas iguais uma sobre a outra, cada caixa contm algumas coisas. Pois bem, cada caixa um nvel). H de se ter cuidado para no derrubar esta pilha ou como se diz em programao, estourar a pilha (vai que dentro de uma pilha voc colocou dinamite.). Outras caractersticas: Pilha ou Stack
Conhecendo o PIC O Watch dog um contador independente de tudo dentro do PIC, que reseta o mesmo, aps um certo perodo. Para que serve isto? Digamos que voc fez um projeto com um PIC para controlar um elevador, de repente um pico de tenso o PIC trava- o fazendo com que o elevador pare. Depois de um curto perodo o Watch dog reseta o PIC, o programa volta a funcionar e o elevador volta a funcionar tambm. H de saber como se travar bem este co, mas isto , literalmente, outro captulo... Outras caractersticas: Watch Dog ( Co de Guarda)
Conhecendo o PIC Uma USART serial, mas o que isto?
um recurso que permitir que voc converse com outros equipamentos, como uma porta serial de um microcomputador.
USART significa Universal Synchronous Asynchrous Receiver transmiter ou Transmissor Universal Sncrono ou Assncrono. Outras caractersticas: USART
Conhecendo o PIC S para lembrar PWM quer dizer modulao por largura de pulso, com este recurso voc conseguir variar o brilho de uma lmpada, a velocidade de um motor DC ou at fazer uma fonte chaveada. Outras caractersticas: PWM Pulse Wide Modulation
Conhecendo o PIC 2 comparadores analgicos com referncia interna, programvel, de tenso. Quem gosta de amplificadores operacionais prepare-se para se divertir, e quem no os conhece vamos ler um livro sobre AOPs. Outras caractersticas: Comparadores
Conhecendo o PIC um sinal de onda quadrada que serve para fazer um circuito lgico funcionar ou para sincronizar diversos dispositivos ou circuitos. O nvel alto do clock =+Vcc O nvel baixo = zero volt. O perodo alto (+Vcc) chamado de Ton e o perodo baixo de Toff. Ton = Toff. melhor que sejam iguais
T = Ton + ToFF ( a soma resulta no periodo)
T = 1 F Osciladores: O que Clock?
Conhecendo o PIC Ao usarmos um cristal de 4MHz teremos uma freqncia de 4MHz e o perodo de:
T = 1 = 1 = 250ns ou 250 nano segundos F 4.000,000
Ou 0,000. 000.25 segundos. Osciladores: O que Clock?
Conhecendo o PIC Divide-se clock por quatro, formando as fases Q1, Q2, Q3 e Q4 PIPELINE: Busca a informao em um ciclo e a executa no prximo Para um clock de 4MHz, cada instruo executada 1s, desde que no afete o Program Counter
Osciladores: O que Ciclo de mquina?
Conhecendo o PIC RC_CLKOUT = oscilador RC externo que deve estar ligado no pino 16. No pino 15 teremos este sinal dividido por 4. RC_I/O = Oscilador externo mais que usa o pino 15 como I/O. Osciladores: tipos aceitos pelo PIC16f628
Conhecendo o PIC XT = cristal de 200kHz at 4MHz HS = cristal acima de 4MHz LS = cristal abaixo de 200kHz INTOSC_I/O = oscilador interno com o pino 15 operando como I/O. INTOSC_CLKOUT = o pino 15 teremos este sinal dividido por 4
Osciladores: tipos aceitos pelo PIC16f628
Conhecendo o PIC OS REGISTRADORES
Conhecendo o PIC O REGISTRADOR W
Conhecendo o PIC O nome registrador W vem de Registrador Work, que traduzindo, quer dizer trabalho. atravs dele que carregamos os outros registradores com valores diversos e corretos para um perfeito funcionamento de nosso projeto. Caso desejamos colocar um determinado valor em um registrador de uso geral (GPR), primeiro temos que carregar o registrador W e depois passar para o outro registrador. O REGISTRADOR W
O incio de tudo... Programando em Assembly Fique atento! CONFIGURAES INICIAIS: Desenhando o Circuito no Proteus Programando em Assembly CONFIGURAES INICIAIS: A lgica do nosso primeiro programa Programando em Assembly LIST p=16f628a #INCLUDE "P16F628.INC" CONFIGURAES INICIAIS: Incluso de cabealhos Programando em Assembly
#DEFINE LED PORTB, 0 CONFIGURAES INICIAIS: DEFINIES Programando em Assembly ORG 0X00 ; inicio do programa GOTO INICIO ; pula para o label INICIO
ORG 0X04 ; inicio da interrupo RETFIE ; retorna da interrupo CONFIGURAES INICIAIS: VETORES DE INICIALIZAO Programando em Assembly INICIO CLRF PORTA CLRF PORTB BANK1 MOVLW B00000000' MOVWF TRISA MOVLW B'00110000' MOVWF TRISB CONFIGURAES INICIAIS: INICIALIZAO DOS REGISTRADORES Programando em Assembly MOVLW B'10000011' MOVWF OPTION_REG MOVLW B'00000000' MOVWF INTCON BANK0 MOVLW B'00000111' MOVWF CMCON CLRF PORTA CLRF PORTB CONFIGURAES INICIAIS: INICIALIZAO DOS REGISTRADORES Programando em Assembly MAIN BTFSS BOTAO GOTO BOTAO_LIB GOTO BOTAO_PRES BOTAO_LIB BCF LED GOTO MAIN BOTAO_PRES BSF LED GOTO MAIN END AGORA SIM TEMOS O PROGRAMA EM ASSEMBLY Programando em Assembly 1 passo: Abra o proteus Isis 2 passo: Monte o circuito (fique atento!) 3 passo: Adicione um source. 4 passo: Edite o source.asm que voc criou com o cdigo apresentado 5 passo: Compile o programa pelo comando BUILD 6 passo: Carregue o programa para a memria do microcontrolador 7 passo: Execute o programa. TEMOS O PROGRAMA, ENTO VAMOS EXECUT-LO Agora sim pra valer... Cuidado ao errar, pois pode ser que voc erre somente uma vez, pois o PIC frgil... Gravando no PIC 1 passo: Abra o IC-PROG 2 passo: Mude o idioma para portugues. 3 passo: Ative o driver para windows XP 4 passo: Utilize a API do Windows 5 passo: Selecione o PIC 6 passo: Carregue o programa em HEX para a memria do IC-PROG 7 passo: Configure os Fuses, caso necessrio 8 passo: Apague a memoria do PIC e faa a gravao do novo programa. MAIS UM PASSO A PASSO Agora chega de baixaria... Somos de alto nvel... Sero apresentados 3 programas:
CONFIGURAES INICIAIS: Incluso de cabealhos e utilidades Programando em C Void main (){ SET_TRIS_A(255); SET_TRIS_B(0); while(true) { output_bit( PIN_B0, input(PIN_A0)); } } Programa por completo Programando em C
CONFIGURAES INICIAIS: Incluso de cabealhos e utilidades Programando em C void main() { byte i=1; SET_TRIS_A(255); SET_TRIS_B(0); while(true){ OUTPUT_LOW(PIN_B0); delay_ms(1000); OUTPUT_HIGH(PIN_B0); delay_ms(1000); } }
O PROGRAMA POR COMPLETO Programando em C #include "16f628a.h" #fuses INTRC_IO, NOMCLR, NOWDT void main() { static boolean led=0; SET_TRIS_A(255); SET_TRIS_B(0); OUTPUT_B(0); while(true) { if(input(PIN_A0)) { output_bit(PIN_B0, led); //Quando pressiona A0, manda o bit da varivel led para o B0 led=!led; //inverte o bit da varivel led while(input(PIN_A0)) //Este lao deixa o microcontrolador sem fazer nada enquanto {// o boto A0 ainda estiver pressionado, s voltando a rodar o programa quando soltar }// o boto A0. Isto evita totalmente que o programa pense que o boto foi }// pressionado sem querer... } }
Outro exemplo Programando em C Com o cdigo compilado, voc pode carreg-lo para a memria do microcontrolodor tanto do Proteus quanto o real.
E agora? Aumentando o nvel ainda mais... Temos tempo ainda? SIM NO Programando em Ladder
Abra o programa Ldmicro Escolha no menu configuraes o modelo do microcontrolador
CONFIGURAES INICIAIS Programando em Ladder
Insira um contato em srie com uma sada. Xbotao YLamp |----] [---------------------------( )----|
D um nome ao contato e um nome sada. Determine um pino (bit de um port) para corresponder quela instruo Compile e carregue para a memria do uC (Proteus ou real).
PROGAMANDO Onde pesquisar... Site da Microchip www.microchip.com Livros: Desbravando o PIC (Davi Jos) Microcontroladores PIC: Tcnicas avanadas ( Fbio Pereira) PIC: Programao em C (Fbio Pereira) Buscar no google... Esta foi a ponta do Iceberg... Agora cabe a cada um buscar/aprofundar mais no assunto...
Danilo Pagano Departamento de Mecanica Computacional Faculdade de Engenharia Mecanica Universidade Estadual de Campinas - UNICAMP