Microcontroladores
Transcrição
Microcontroladores
Microcontroladores 1 – Microprocessadores x Microcontroladores 1.1 - Microprocessadores: 1.2 - Microcontroladores: 2 – Microcontrolador x DSP 3 – Fabricantes e Famílias 4 – Microchip 5 – Microcontrolador PIC 16F84 5.1 – Principais Características 5.2 – Descrição Geral 5.3 – Arquitetura 5.4 – Pinagem 5.5 – Memória 5.6 – Registradores 5.7 – Set de Instruções 5.8 – Projeto de Hardware simples para teste 5.9 – Exemplo de Programação 6 –Motorola/Freescale 7 – MC68HC908QT1 7.1 – Descrição Geral 7.2 – Diagrama em Blocos 7.3 – Pinagem 7.4 – Memória 7.5 – Registradores 7.6 – Set de Instruções 7.7 – Projeto de Hardware simples para teste 7.8 – Exemplo de Programação 1 Microcontroladores 1 - Microprocessadores x Microcontroladores 1.1 – Microprocessadores: • Exemplo Z-80 – 8 bits 8086 – 16 bits Pentium – 32 bits • Aplicação Utilização como CPU em microcomputadores de uso geral ou específicos. 2 Microcontroladores 1.1 – Microprocessadores: • Arquitetura Interna Registradores Uso Geral Uso Específico PC,SP,IR ALU Controle 3 Microcontroladores 1.1 – Microprocessadores: • Arquitetura Microcomputador Teclado Mem RAM Mem PROM Vídeo Circuitos de Interface B. dados B. endereço CPU B. Controle Microprocessador 4 Microcontroladores 1.1 – Microprocessadores: 5 Microcontroladores 1.1 – Microprocessadores: 6 Microcontroladores 1.1 – Microprocessadores: 7 Microcontroladores 1.1 – Microprocessadores: 8 Microcontroladores 1.2 – Microcontroladores • Exemplos Microchip – Motorola – Intel – • PIC – 16F84/ 16F877 MC68HC908QT1 8031 / 8051 Aplicação Utilização como CPU em sistemas embutidos, embarcados - sistemas dedicados. 9 Microcontroladores 1.2 – Microcontroladores • Arquitetura Interna Controle A/D ALU D/A Mem. Programa Mem. Dados RAM I/O Digital Mem. Dados E2PROM Controle Interrupção Watch Dog Timer 10 Microcontroladores 1.2 – Microcontroladores - Características: • • • • • • • • • A/D D/A I/O serial USB Ambiente de Programação Linguagens disponíveis Emulador Gravador / Programador Possibilidade de gravação na placa aplicativa 11 Microcontroladores 1.2 – Microcontroladores • Arquitetura de Sistemas Circuito V/F Circuito Robô 12 Microcontroladores 2 – Microcontrolador x DSP 2.1 – Principais Características dos Microcontroladores • • • • • • • • • • Memória de programa – Flash / EPROM / E2PROM Memória de dados volátil – RAM Memória de dados não volátil – E2PROM RISC e CISC – set de instruções Timers / Contadores Interrupções PWM I/O Digital A/D D/A 2.2 – Principais Características dos DSP´s • Características similares aos microcontroladores porem com arquitetura voltada para processamento de sinais tipicamente implementação de filtros ativos e implementação de algoritmos de controles em poucas instruções. 13 Microcontroladores 3 - Fabricantes e Principais Famílias • Intel 8051, MCS 51, MCS 96 • Phillips LPC700, LPC900, LPC2000 • Texas TMS370, MSP430 • Motorola 68HCXX, 683XX, MPC500 • Microchip PIC12CXXX, PIC16FXXX 14 Microcontroladores 4 – Microchip • Empresa Empresa dedicada a desenvolver microcontroladores MCU de 8-bit e memórias. As PICs combinam alta performance, baixo custo e reduzido tamanho, acarretando em ótima relação custo benefício. A Microchip fabrica mais de 100 milhões de PICs por ano, especialmente para periféricos de computadores, automação de escritórios, sistema de controle de automóveis, sistemas de segurança e aplicações em telecomunicações. • Produtos - PICmicro® Microcontrollers - dsPIC® Digital Signal Controllers - Analog & Interface Products - Serial EEPROMS - Pb-Free Information - Battery Management - Radio Frequency Devices - KEELOQ® Authentication Products 15 Microcontroladores 4 – Microchip • Familia de microcontroladores PIC: PIC 16FXXX 16 Microcontroladores 5 – Microcontrolador PIC 16F84 5.1 - principais caracteristicas 17 Microcontroladores 5 – Microcontrolador PIC 16F84 5.2 - Descrição geral – Arquitetura RISC – 8 níveis de STACK – Barras de instrução e dados separados. • Instrução – 14-bit, Dados – 8-bit – A família PIC16CXX utiliza a arquitetura Harvard, onde programa e dados são acessados de memórias diferentes por barramentos diferentes. – Utiliza PIPELINE (FETCH junto com execução) → um ciclo de máquina para cada instrução. – 16F84 → Memória para Programa – 1K x 14-bit Memória RAM – 68 Bytes Memória EEPROM – 64 Bytes – Acesso direto e indireto a memória. – Todos os registradores (incluindo PC) são mapeados na RAM. – 4 formas de CLOCK, RC, LP, XTAL, HS HICH SPEED CRISTAL. – Memória FLASH → permite que o dispositivo seja usado para protótipo e produção. É possível programar sem remover da aplicação. (?) – Baixo custo, baixo consumo, alta performance, flexibilidade de I/O → Aplicável em controle de velocidade de motores, transmissor e receptor de freqüências, códigos de segurança, etc. – Software → MACRO-ASSEMBLER, C E FUZZY LOGIC 18 Microcontroladores 5 – Microcontrolador 5.3 - Arquitetura PIC 16F84 19 Microcontroladores 5 – Microcontrolador 5.4 - Pinagem PIC 16F84 20 Microcontroladores 5 – Microcontrolador PIC 16F84 5.5 - Memoria – PC de 13-bit porém memória de apenas 1K (0-3FF) • • • • RESET-PC = 0H 0H GO TO 100 04H 100H INTERRUPÇÃO-PC = 04H ; Vá para 100 (end. Interrupção) ;Início INT. ;Início do programa. – O PIC16CXX não possui STACK POINTER e sim um stack de 8 níveis. O operador deve “gerenciar” um máximo de 8 CALL´s ou INT´s. – Memória de Dados: • 2 Bancos selecionados por RP1 (sempre em 0) e RP0 • Memória RAM – 0CH e 4FH. 21 Microcontroladores 5 – Microcontrolador PIC 16F84 5.5 - Memoria Memória de dados com SFR e RAM de uso geral no PIC16F84 22 Microcontroladores 5 – Microcontrolador PIC 16F84 5.5 - Memoria Mapa de memória dos SFR do PIC16F84 23 Microcontroladores 5 – Microcontrolador PIC 16F84 5.6 - Registradores • Status 24 Microcontroladores 5 – Microcontrolador PIC 16F84 5.6 - Registradores • Option 25 Microcontroladores 5 – Microcontrolador PIC 16F84 5.6 - Registradores • Intcon 26 Microcontroladores 5 – Microcontrolador PIC 16F84 5.6 - Registradores • fusiveis 27 Microcontroladores 5 – Microcontrolador PIC 16F84 5.7 – Set de instruções 28 Microcontroladores 5 – Microcontrolador PIC 16F84 5.7 – Set de instruções 29 Microcontroladores 5.8 – Exemplo de HARDWARE para teste 30 Microcontroladores 5.8 – Exemplo de HARDWARE para teste 31 Microcontroladores 5.8 – Exemplo de HARDWARE para teste 32 Microcontroladores 5.9 – Exemplo de SOFTWARE 5.9.1 Rotina de tempo ;======================================================================== ; Progrma exemplo 1 para o livro "Microntroladores PIC" ; ; Objetivo: Estudar rotina de tempo baseada em software ; Funcionamento: Pisca o led 7 a cada 250ms ; Agosto/97 ;======================================================================== __16F84 list p=16F84 ;processador 16F84 radix dec ;define padrao DECIMAL para valores sem ;identificação include <P16F84.INC> 16F84 ;Anexa o arquivo que contem as definições do ;.......................................................................... ; Tabela de definições de RAM e constantes. W equ 0 ;referencia a W Led7 equ 7 ;led 7 esta em RB7 tempo X equ Y equ equ 0DH 0EH 0CH ;variavel tempo RAM 0CH. (primeira posição) ;----------------------Memoria de Programa--------------------------------org goto 0 inicio ;define inicio do trecho a seguir em 000 ;desvia para o programa principal onde inicia pelo ;ajuste dos registros de controle. ;Este desvio tem por objetivo deixar o endereço ;004 para a rotina de interrupção. ;...................INICIO DA ROTINA DE INTERRUPCAO........................ org 4 33 nop retfie ;primeira instrucao da interrupcao ;retorna da interrupcao Microcontroladores 5.9 – Exemplo de SOFTWARE 5.9.1 Rotina de tempo (Cont.) ;..........................................INICIO DO PROGRAMA..................................... inicio: ;este endereco eh o primeiro apos a interrupcao movlw B’00000000’ ;W=0 movwf INTCON ;INTCON=0. Nenhuma interr habilitada bsf ;seleciona banco 1 para option e tris STATUS,RP0 movlw B’11011111’ ; movwf OPTION_REG movlw movwf movlw movwf bcf B’11111111’ ;W=255 TRISA B’00000000’ ;W=0 TRISB STATUS,RP0 ;Registro OPTION ajusta timer 0 clock interno e ;prescaler para watchdog (nao usamos) ;TRISA=ffH. PORTA toda entrada ;TRISB=0. PORTB toda saida ;volto ao banco 0. Padrao do reset ;......................................................................................................................... principal: ;inicio do programa principal bcf call bsf call PORTB,Led7 ms250 PORTB,Led7 ms250 goto principal ;fazendo PORTB pino 7 = 0 acendo o Led 7 ;espera 250ms ;fazendo PORTB pino 7 = 1 apaga o Led 7 ;espera 250ms 34 Microcontroladores 5.9 – Exemplo de SOFTWARE 5.9.1 Rotina de tempo (Cont.) ;.......................Rotina de tempo de 250ms............................. ms250: ; -0 CALL para a rotina leva 2us. movlw 250 ; +1 movwf tempo ; +1 total 1 = 4us ms250a: movlw 248 ; +1 movwf X ; +1 total 2 = 2us ms250b: nop ;1 decfsz X ;1 248x4us + (1us nop + 2us quando decfsz da 0) goto ms250b ;2 da um tempo total 3 = 995us decfsz tempo ;1 1us pq tempo > 0 + 2us goto da um total 4 = 3us goto ms250a ;2 250x(total 2 + total 3 + total 4) + 2us quando ; tempo = 0 = total 5 = 250.002us return ;delay = total 1 + total 5 + 2us return = 250.008us END ;fim do program fonte Sobre a rotina de tempo: 4 + 250*(2 + 248*4 + 1 + 2 + 1 + 2) + 2 + 2 = 250.0008us 35 Microcontroladores 5.9 – Exemplo de SOFTWARE 5.9.2 Rotina de deslocamento ;========================================================================= ; Progrma exemplo 2 para o livro "Microntroladores PIC" ; ; Objetivo: Estudar instrucoes de deslocamento ; Funcionamento: Pisca os leds 7 a 0, neta ordem, e repete. ; OS LEDS ASCENDEM EM 0. VER ESQUEMA ; Agosto/97 ;========================================================================= __16F84 list p=16F84 ;processador 16F84 radix dec ;define padrao DECIMAL para valores sem ;identificação include <P16F84.INC> ;Anexa o arquivo que contem as definições do 16F84 ;.......................................................................... ; Tabela de definições de RAM e constantes. W equ 0 ;referencia a W tempo equ 0CH ;variavel tempo RAM 0CH. (primeira posição) DT1 equ 0DH ;variavel auxiliar para tempo X equ 0EH Y equ 0FH ;----------------------Memoria de Programa--------------------------------org goto 0 inicio ;define inicio do trecho a seguir em 000 ;desvia para o programa principal. ;...................INICIO DA ROTINA DE INTERRUPCAO........................ org 4 nop retfie ;primeira instrucao da interrupcao ;retorna da interrupcao 36 Microcontroladores 5.9 – Exemplo de SOFTWARE 5.9.2 Rotina de deslocamento (Cont.) ;...................INICIO DO PROGRAMA..................................... inicio: ;este endereco eh o primeiro apos a interrupcao movlw B’00000000’ ;W=0 movwf INTCON clrf clrf bsf PORTA PORTB STATUS,RP0 movlw B’11011111’ ; movwf OPTION_REG movlw movwf movlw movwf bcf B’11111111’ ;W=255 TRISA B’00000000’ ;W=0 TRISB STATUS,RP0 ;INTCON=0. Nenhuma interr habilitada ;inicializa portas A e B. ;seleciona banco 1 para option e tris ;Registro OPTION ajusta timer 0 clock interno e ;prescaler para watchdog (nao usamos) ;TRISA=ffH. PORTA toda entrada ;TRISB=0. PORTB toda saida ;volto ao banco 0. Padrao do reset ;............................................................................ principal: ;inicio do programa principal movlw 255 movwf X bcf STATUS,C repete: rrf btfss goto X STATUS,C principal ;W=11111111 ;X = W = 11111111 ;bit Carry = 0 ;desloca o valor em X para a direita. ;o bit 0 vai ao Carry e o Carry vai ao bit 7. ;se C = 1 pula prox inst. ;Quando Carry = 0 acabou de deslocar 8 vezes. ;reinicia 37 Microcontroladores 5.9 – Exemplo de SOFTWARE 5.9.2 Rotina de deslocamento (Cont.) movf X,W escreve; movwf PORTB ;W = valor em X que sera escrito no PortB. ;ver instrucao MOVF f,d. Se d=0 escreve em W. ;Como atribuimos a W o valor 0, o compilador ;enxerga a instrucao como MOVF X,0 ;PORTB = W = X call ms250 ;espera 250 ms goto repete ;Se Carry = 1 ainda não deslocou 8 vezes ;efetua novo deslocamento ;.......................Rotina de tempo de 250ms............................. ms250: ; -0 CALL para a rotina leva 2us. movlw 250 ; +1 movwf tempo ; +1 total 1 = 4us ms250a: movlw 248 ; +1 movwf Y ; +1 total 2 = 2us ms250b: nop ;1 decfsz Y ;1 248x4us + (1us nop + 2us quando decfsz da 0) goto ms250b ;2 da um tempo total 3 = 995us decfsz tempo ;1 1us pq tempo > 0 + 2us goto da um total 4 = 3us goto ms250a ;2 250x(total 2 + total 3 + total 4) + 2us quando ; tempo = 0 = total 5 = 250.002us return ;delay = total 1 + total 5 + 2us return = 250.008us END ;fim do program fonte 38 Microcontroladores 6 – Motorola / Freescale A Freescale, empresa a qual pertence a Motorola, é uma uma gigante do mercado de semicondutores cuja a produção tem o foco em produtos que atendam as indústrias automotivas e de comunicação. A empresa produz uma enorme gama de famílias de chips, que incluem microcontroladores de 8 e 16-bit, microprocessadores, DSPs, memórias, sensores e muitos outros. • Algumas Famílias de produtos: - HC08; - HCS12; - ColdFire; - PowerPC; - ARM; 39 Microcontroladores 7 – MC68HC908QT1 7.1 – Descrição Geral • Tensões de operação: 5-V and 3-V (VDD) • Oscilador interno ajustável • In-system FLASH programming • 128 bytes de RAM interna • 48 bytes of user-defined vectors, located in FLASH • 416 bytes of monitor read-only memory (ROM) • 1536 bytes of FLASH program and erase routines, located in ROM • TIM (timer interface module) de 2 canais de 16-bit • 5 linhas bidirecionais de I/O e uma de apenas entrada: – Duas compartilhadas com os canais do Timer – Uma compartilhada com IRQ externo – Alta capacidade de fornecimento de corrente em todos os pinos das portas – Todas os pinos das portas podem ir para Three-state • Power-on reset • Pullups internos em IRQ e RST para reduzir o número de componente externos • Registradores de I/O mapeados em memória • MC68HC908QT1 está disponível nos seguintes pacotes: – 8-pin PDIP – 8-pin SOIC – 8-pin dual flat no lead (DFN) package 40 Microcontroladores 7 – MC68HC908QT1 7.2 – Diagrama em Blocos 41 Microcontroladores 7 – MC68HC908QT1 7.3 – Pinagem 42 Microcontroladores 7 – MC68HC908QT1 7.4 – Memória 43 Microcontroladores 7 – MC68HC908QT1 7.5 – Registradores de Configuração Os Registradores podem habilitar ou desabilitar as seguintes opções: • Stop mode recovery time (32 × BUSCLKX4 cycles or 4096 × BUSCLKX4 cycles) • STOP instruction • Computer operating properly module (COP) • COP reset period (COPRS): 8176 × BUSCLKX4 or 262,128 × BUSCLKX4 • Low-voltage inhibit (LVI) enable and trip voltage selection • OSC option selection • IRQ pin • RST pin • Auto wakeup timeout period 44 Microcontroladores 7 – MC68HC908QT1 7.6 – Set de Instruções 45 Microcontroladores 7.6 – Set de Instruções (cont.) 46 Microcontroladores 7.6 – Set de Instruções (cont.) 47 Microcontroladores 7.6 – Set de Instruções (cont.) 48 Microcontroladores 7.6 – Set de Instruções (cont.) 49 Microcontroladores 7.6 – Set de Instruções (cont.) 50 Microcontroladores 7 – MC68HC908QT1 7.7 – Projeto simples de Hardware 51 Microcontroladores 7 – MC68HC908QT1 7.8 – Exemplo de Programa /*Arquivo Events.C*/ /*Including used modules for compilling procedure*/ #include "Cpu.h" #include "Events.h" #include "LED.h" #include "Timer.h" /*Include shared modules, which are used for whole project*/ #include "PE_Types.h" #include "PE_Error.h" #include "PE_Const.h" #include "IO_Map.h" /* ** =================================================================== ** Event : Timer_OnInterrupt (module Events) ** ** From bean : Timer [TimerInt] ** Description : ** When a timer interrupt occurs this event is called (only ** when the bean is enabled - "Enable" and the events are ** enabled - "EnableEvent"). ** Parameters : None ** Returns : Nothing ** =================================================================== */ void Timer_OnInterrupt(void) { if (PTA == 0) { PTA |= 2; } else { 52 PTA &= ~2; } }
Documentos relacionados
microcontroladores o que é o pic?
preparada para entender. Para facilitar a compreensão ao programador, se recorre a um instrumento e convenção para tornar a instrução mais compreensível. A primeira convenção é a que associa o opco...
Leia mais