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
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
1.1 Microprocessadores: Arquitetura Interna Registradores Uso Geral Uso Específico PC,SP,IR ALU Controle 3
1.1 Microprocessadores: Arquitetura Microcomputador Teclado Vídeo Mem RAM Mem PROM Circuitos de Interface B. dados CPU B. endereço B. Controle Microprocessador 4
1.1 Microprocessadores: 5
1.1 Microprocessadores: 6
1.1 Microprocessadores: 7
1.1 Microprocessadores: 8
1.2 Microcontroladores Exemplos Microchip PIC 16F84/ 16F877 Motorola MC68HC908QT1 Intel 8031 / 8051 Aplicação Utilização como CPU em sistemas embutidos, embarcados - sistemas dedicados. 9
1.2 Microcontroladores Arquitetura Interna Controle A/D ALU D/A Mem. Programa Mem. Dados RAM I/O Digital Mem. Dados E 2 PROM Controle Interrupção Watch Dog Timer 10
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
1.2 Microcontroladores Arquitetura de Sistemas Circuito V/F Circuito Robô 12
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
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
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
4 Microchip Familia de microcontroladores PIC: PIC 16FXXX 16
5 Microcontrolador PIC 16F84 5.1 - principais caracteristicas 17
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
5 Microcontrolador PIC 16F84 5.3 - Arquitetura 19
5 Microcontrolador PIC 16F84 5.4 - Pinagem 20
5 Microcontrolador PIC 16F84 5.5 - Memoria PC de 13-bit porém memória de apenas 1K (0-3FF) RESET-PC = 0H INTERRUPÇÃO-PC = 04H 0H GO TO 100 ; Vá para 100 (end. Interrupção) 04H ;Início INT. 100H ;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
5 Microcontrolador PIC 16F84 5.5 - Memoria Memória de dados com SFR e RAM de uso geral no PIC16F84 22
5 Microcontrolador PIC 16F84 5.5 - Memoria Mapa de memória dos SFR do PIC16F84 23
5 Microcontrolador PIC 16F84 5.6 - Registradores Status 24
5 Microcontrolador PIC 16F84 5.6 - Registradores Option 25
5 Microcontrolador PIC 16F84 5.6 - Registradores Intcon 26
5 Microcontrolador PIC 16F84 5.6 - Registradores fusiveis 27
5 Microcontrolador PIC 16F84 5.7 Set de instruções 28
5 Microcontrolador PIC 16F84 5.7 Set de instruções 29
5.8 Exemplo de HARDWARE para teste 30
5.8 Exemplo de HARDWARE para teste 31
5.8 Exemplo de HARDWARE para teste 32
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 radix dec ;processador 16F84 ;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 equ 0CH ;variavel tempo RAM 0CH. (primeira posição) X equ 0DH Y equ 0EH ;----------------------Memoria de Programa--------------------------------- org 0 ;define inicio do trecho a seguir em 000 goto inicio ;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 nop retfie ;primeira instrucao da interrupcao ;retorna da interrupcao 33
5.9 Exemplo de SOFTWARE 5.9.1 Rotina de tempo (Cont.) ;...INICIO DO PROGRAMA... inicio: movlw B 00000000 ;W=0 movwf INTCON ;este endereco eh o primeiro apos a interrupcao ;INTCON=0. Nenhuma interr habilitada bsf STATUS,RP0 ;seleciona banco 1 para option e tris movlw B 11011111 ; movwf OPTION_REG ;Registro OPTION ajusta timer 0 clock interno e ;prescaler para watchdog (nao usamos) movlw B 11111111 ;W=255 movwf TRISA ;TRISA=ffH. PORTA toda entrada movlw B 00000000 ;W=0 movwf TRISB ;TRISB=0. PORTB toda saida bcf STATUS,RP0 ;volto ao banco 0. Padrao do reset ;... principal: ;inicio do programa principal bcf PORTB,Led7 ;fazendo PORTB pino 7 = 0 acendo o Led 7 call ms250 ;espera 250ms bsf PORTB,Led7 ;fazendo PORTB pino 7 = 1 apaga o Led 7 call ms250 ;espera 250ms goto principal 34
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
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 radix dec ;processador 16F84 ;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 0 ;define inicio do trecho a seguir em 000 goto inicio ;desvia para o programa principal. ;...INICIO DA ROTINA DE INTERRUPCAO... org 4 nop retfie ;primeira instrucao da interrupcao ;retorna da interrupcao 36
5.9 Exemplo de SOFTWARE 5.9.2 Rotina de deslocamento (Cont.) ;...INICIO DO PROGRAMA... inicio: movlw B 00000000 ;W=0 movwf INTCON ;este endereco eh o primeiro apos a interrupcao ;INTCON=0. Nenhuma interr habilitada clrf PORTA ;inicializa portas A e B. clrf PORTB bsf STATUS,RP0 ;seleciona banco 1 para option e tris movlw B 11011111 ; movwf OPTION_REG ;Registro OPTION ajusta timer 0 clock interno e ;prescaler para watchdog (nao usamos) movlw B 11111111 ;W=255 movwf TRISA ;TRISA=ffH. PORTA toda entrada movlw B 00000000 ;W=0 movwf TRISB ;TRISB=0. PORTB toda saida bcf STATUS,RP0 ;volto ao banco 0. Padrao do reset ;... principal: ;inicio do programa principal movlw 255 ;W=11111111 movwf X ;X = W = 11111111 bcf STATUS,C ;bit Carry = 0 repete: rrf X ;desloca o valor em X para a direita. ;o bit 0 vai ao Carry e o Carry vai ao bit 7. btfss STATUS,C ;se C = 1 pula prox inst. goto principal ;Quando Carry = 0 acabou de deslocar 8 vezes. ;reinicia 37
5.9 Exemplo de SOFTWARE 5.9.2 Rotina de deslocamento (Cont.) movf X,W ;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 escreve; movwf PORTB ;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
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
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
7 MC68HC908QT1 7.2 Diagrama em Blocos 41
7 MC68HC908QT1 7.3 Pinagem 42
7 MC68HC908QT1 7.4 Memória 43
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
7 MC68HC908QT1 7.6 Set de Instruções 45
7.6 Set de Instruções (cont.) 46
7.6 Set de Instruções (cont.) 47
7.6 Set de Instruções (cont.) 48
7.6 Set de Instruções (cont.) 49
7.6 Set de Instruções (cont.) 50
7 MC68HC908QT1 7.7 Projeto simples de Hardware 51
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 { PTA &= ~2; } } 52