Microcontrolador 16F84A

Tamanho: px
Começar a partir da página:

Download "Microcontrolador 16F84A"

Transcrição

1 AUTOR Maurício Madeira Oliveira Página pessoal (fonte): Este curso pode ser usado e divulgado, sem fins comerciais, citar fonte e autor Microcontrolador 16F84A Os microcontroladores (uc) podem ser chamados de microcomputadores de um só chip, são usados, pelos mais diversos equipamentos eletrônicos, como: Videocassetes, celulares, dvd, alarmes, eletrônica embarcada, televisores, controle-remoto, agendas eletrônicas, etc. Possuem em uma única pastilha (ci), memória de dados, temporizadores, canal serial, vários canais de I/O, eeprom, pwm e etc. Arquiteturas usadas em microcontroladores: Existe a tradicional Von Newman, baseada em um único barramento por onde trafegam dados e instruções (8051) e Harvard que prevê varias vias de comunicação entre CPU e periféricos permitindo a realização de várias operações simultâneas, os microcontroladores PIC da Microchip se baseiam nesta arquitetura. No PIC 16F84 os dados são de 8 bits e as instruçôes são de 14 bits. Com esta facilidade em uma palavra de 14 bits podemos ter código de instrução (opcode), onde vai atuar e o eventual operando ou dado. Criou-se uma terminologia chamada RISC (reduced instruction set computer) que no PIC são aproximadamente 35 instruções. Pinagem do PIC 16F84A (18 pinos): RA0 entrada ou saída PORTA (P17). RA1 entrada ou saída PORTA (P18).

2 RA2 entrada ou saída PORTA (P01). RA3 entrada ou saída PORTA (P02). RA4 entrada ou saída PORTA (P03), também é entrada do Timer zero. RB0 entrada ou saída PORTB (P06), também é interrupção externa. RB1 entrada ou saída PORTB (P07). RB2 entrada ou saída PORTB (P08). RB3 entrada ou saída PORTB (P09). RB4 entrada ou saída PORTB (P10). RB5 entrada ou saída PORTB (P11). RB6 entrada ou saída PORTB (P12). RB7 entrada ou saída PORTB (P13). RB4 a RB7 também sinalizam interrupção por mudança de estado. VDD alimentação ( 2V a 6V, típico 5V) (P14). VSS referência de terra (P05). MCLR\ - entrada de reset (em nível 0) (P04). OSC1/CLKIN cristal ou entrada de clock externo (P16). OSC2/CLKOUT cristal ou saída do clock/4 quando usado sinal externo (P15). Principais características : 1 K (1024) palavras de 14 bits para programa. 68 bytes de uso geral. 64 bytes de EEPROM para dados. Stack com 8 níveis. 35 instruções. 15 registros especiais em RAM (SFR s) para controle do chip e periféricos. Timer 8 bits e prescaler. 13 pinos entrada/saída (cfe.config.) PORTA e PORTB. Alta capacidade de corrente nos pinos. Capacidade de gerenciar até 4 interrupções. Watch Dog para recuperação e reset em caso de travamento de software. Memória de programa protegida contra cópias. Modo sleep, economia de energia. Várias opções de osciladores. O microcontrolador 16F84A pode operar de DC até 20 Mhz ( ou até 10 MHz no 16F84). Vamos usar em nossos estudos um clock de 4 MHz (a cristal), o que nos proporciona um ciclo de máquina de 1 us. O PIC divide o sinal de clock por 4 internamente gerando as fase Q1, Q2, Q3 e Q4, que somadas formam 1 ciclo de máquina: Tc = 1/(Fosc/4) ou Tc = (1/Fosc) x 4 A característica de buscar a informação em um ciclo de e executa-la no ciclo seguinte chama-se PIPELINE, as instruções são executadas em 1uS, com exceção das instruções que alteram o PC (program counter), que usam dois ciclos. Os circuitos de CLOCK :

3 O PIC pode operar com 4 modos diferentes de osciladores, a saber: a) RC (resistor-capacitor) : modo simples e de baixo custo, mas que oferece instabilidade na frequência, com variação do VCC e da temperatura, recomendado em aplicações onde a precisão do clock não é importante. Nota: na saída osc2 colocar um ociloscópio ou frequencimetro, para ajustar a frequência de operação do sistema (por ex.: 4Mhz em osc1 terei 1Mhz em osc2). b) XT (modo cristal) : de 100Khz a 4Mhz.

4 Nota : as ligações entre os pinos do ci, cristal e capacitor, devem ser as mais curtas possíveis. c) HS (modo cristal) : acima de 4Mhz. Podemos usar cristal ou ressoador cerâmico. A ligação elétrica é idêntica a do modo XT. d) LP (modo cristal) : baixa potência < 200 Khz. OBS.: também podemos um circuito de clock externo, gerado por um oscilador qualquer que entrando por osc1 ira determinar a frequência de trabalho para um ou mais PIC. O circuito de Reset : a) O PIC pode ser resetado ao alimentar o mesmo, através do pino MCLR\ ligado em Vcc, esta seria a forma mais básica : OBS.: acima, temos o circuito mínimo de POR (power-on-reset). b) Um circuito mais elaborado, seria com uma chave para reset manual, quando necessário.

5 Nota : o pic possui ainda um sistema que gera 72 ms fixo, após o final do POR usado, ficando por mais este tempo em reset. Nota : quando utilizamos o modo XT, LP ou HS, o timer de partida do oscilador (OST) é automaticamente acionado por 1024 períodos do oscilador, para sair do reset; isto garante a estabilização do cristal ou resonador. As memórias do PIC : A família PIC possui em sua arquitetura, segmentos de memória separados para programas e dados, e inclusive com palavras de tamanho diferentes. O PC (programa counter) da família 16Cxxx tem 13 bits, permitindo memória de programa de até 8Kbytes (2 exp.13). O pic 16F84A possui apenas 1K (000 até 3FFh). Qualquer referência a outras posições de memória serão deslocadas para este bloco de 1K. No reset do PC ele aponta para o endereço 000 e ao atender uma interrupção o PC é carregado com o endereço 004h. a) Memória de programa devido a estrutura Havard ela pode ter palavras de 12,14ou 16 bits, no caso do 16F84 o tamanho da palavra manipulada na memória é de 14 bits; esta área reservada do microcontrolador é onde será gravado o programa de controle do mesmo,em alguns modelos temos uma eprom, no CI em estudo a memória é do tipo FLASH, o que nos permite gravar e apagar centenas de vezes esta memória, tornandose o ci mais indicado para desenvolvimento de sistemas. b) Stack (pilha) : local separado da memória de programa para salvar endereços do PC, para o qual o programa principal retornara após executar interrupções ou subrotinas que forem chamadas. O stack salva só o endereço de retorno, as condições do microcontrolador tem que serem tratadas pelo usuário. O stack do 16F84 tem 8 níveis, ou seja se passar deste número de interrupções ou subrotinas ele perdera a mais antiga.

6 c) Memória de dados : nada mais é do que uma área de RAM, utilizada para guardar as variáveis e registradores usados pelo sistema microcontrolado, no PIC esta área é separada em bancos de memória, no caso do 16F84 temos o banco 0 e banco 1, que são selecionados pelos bits RP1 e RP0 do registro STATUS que veremos adiante. d) SFR (special function registers registros especiais de controle) : são usados pela CPU e ou periféricos para controlar o funcionamento do chip conforme o desejado. Se dividem em 2 tipos, controle e uso da CPU e controle e uso dos periféricos. São lidos e escritos tanto pelo usuário como pelo hardware, ocupam espaço na RAM, e podem estar em um ou em ambos os bancos de memória, e são acessados através de seu endereço. e) Registradores de uso geral : área destinada ao armazenamento de variáveis definidas pelo usuário, para serem escritas ou lidas pelo programa. O tamanho desta área de RAM depende do PIC usado. f) EEPROM : alguns PIC possuem esta memória especial não volátil (o 16F84 possui uma de 64 bytes), que podemos usar para escrever ou ler dados. Memória de dados e RAM de uso geral: BANCO 0 BANCO 1

7 As interrupções do PIC : Uma interrupção, para a execução do programa que estiver em curso, é desviado para o endereço 0004h no caso do PIC, onde teremos uma rotina de interrupção que será executada pelo microcontrolador, e após voltara para a instrução seguinte a que foi atendida a interrupção (o PC guarda o último end.+1 para o retorno). No PIC 16F84 as interrupções podem acontecer por : Overflow do timer 0. Fim de escrita na EEPROM. Interrupção externa pelo pino RB0/INT. Mudança nos pinos RB4 a RB7. Como trata-las será descrito nos registradores e rotinas adiante. Os registros de controle da CPU : Estudaremos a seguir os registros STATUS, OPTION, INTCON, e registros de controle das portas. Com eles e que inicializamos nosso microcontrolador. a) STATUS : Configura a página de memória atual (banco 0 ou 1), flags da ULA e forma do ültimo reset. BIT 7 IRP Seleciona bancos - no 16F84 sempre em 0 BIT 6 RP1 No 16F84 manter em 0 BIT 5 RP0 Seleciona 0=banco 0 e 1=banco1 bancos BIT 4 TO\ Bit sinaliza time out/ 1=power-up,clrwdt,sleep, 0=time-out do watch dog BIT 3 PD\ Power Down/1=power-up,clrwdt, 0=inst.sleep BIT 2 Z Bit sinalizador 0,1 reg.estac/vlr.0 se =0 oreg.dif.de 0 BIT 1 DC Digit carry/borrow BIT 0 C Carry/borrow b) OPTION : Configura prescaler, timer, e outras opções. Na programação usa-se optionreg, pois em PICs mais antigos existia uma instrução option. BIT 7 RPBU\ Habilita os pull-up portb 1=desab. 0=hab. BIT 6 INTEDG Como aceitara int.externa (RB0) 1=borda de susbida 0=borda de descida BIT 5 TOCS Fonte do clock do timer 0 1=pino RA4/TOCKI 0=clock interno (f/4) BIT 4 TOSE Como o clock ext.inc.timer 0 1=borda descida 0=borda susbida BIT 3 PSA Atribuição do prescaler 1=Watch dog 0=timer 0 BIT 2 PS2 PS2 BIT 1 PS1 PS1 VER TABELA ABAIXO BIT 0 PS0 PS0

8 PS2 PS1 PS0 TIMER 0 WATCH DOG para 2 1 para para 4 1 para para 8 1 para para 16 1 para para 32 1 para para 64 1 para para para para para 128 Nota : para assegurar uma taxa de 1:1 na frequência de contagem do timer0 direcionar o prescaler para Watch dog. c) INTCON : serve para configurar e identificar as interrupções. BIT 7 GIE Habil.geral das int. 0=desab. 1=hab. BIT 6 EEIE Habil.da int.de final de escrita 0=int.não será tratada 1=int.será tratada BIT 5 TOIE Hab.de overflow timer 0=nào tratada 1=int.será tratada BIT 4 INTE Hab.da int.externa RB0 0=int.não será tratada 1=int.será tratada BIT 3 RBIE Hab.da int.mudança RB4 a RB7 0=int.não será tratada 1=int.será tratada BIT 2 TOIF Identificação de over.timer 0 0=não ocorreu 1=ocorreu BIT 1 INTF Identificação da int.externa RB0 0=não ocorreu 1=ocorreu BIT 0 RBIF Identificação da int.por mudança de estado 0=não ocorreu 1=ocorreu d) TRIS : registros de configuração das portas de IO (Port B e Port A), através do TRIS e que determinamos se determinado pino de uma porta será entrada ou saída. Para programar a porta A usamos o TRISA, e a porta B o TRISB, quando queremos que o pino seja entrada setamos (1) o bit correspondente ao pino no registro, se queremos que seja uma saída resetamos (0) o bit correspondente ao pino no registro TRIS. TRISA BIT 7 NC BIT 6 NC BIT 5 NC BIT 4 RA4 Pino 3 0=saída 1=entrada BIT 3 RA3 Pino 2 0=saída 1=entrada BIT 2 RA2 Pino 1 0=saída 1=entrada BIT 1 RA1 Pino 18 0=saída 1=entrada BIT 0 RA0 Pino 17 0=saída 1=entrada

9 TRISB BIT 7 RB7 Pino 13 0=saida 1=entrada BIT 6 RB6 Pino 12 0=saida 1=entrada BIT 5 RB5 Pino 11 0=saida 1=entrada BIT 4 RB4 Pino 10 0=saida 1=entrada BIT 3 RB3 Pino 9 0=saida 1=entrada BIT 2 RB2 Pino 8 0=saida 1=entrada BIT 1 RB1 Pino 7 0=saida 1=entrada BIT 0 RB0 Pino 6 0=saida 1=entrada e) PCL e PCLATH : O PCL é o registro que armazena os 8 bits menos significativos do PC e o PCLATH os 5 bits mais significativos, o programador pode acessar o PCL (mas com cuidado para não travar o uc). o PCLATH só é acessado pelo hardware do uc. PCL BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 Escrita e leitura Escrita e leitura Escrita e leitura Escrita e leitura Escrita e leitura Escrita e leitura Escrita e leitura Escrita e leitura f) Portas de I/O (PORTA e PORTB) : o estado destas portas é acessado diretamente em posições distintas da memória. E cada bit pode ser testado individualmente, se for entrada verificaremos qual o nível de tensão presente no mesmo, e se for saída poderemos determinar o valor que queremos para cada pino. PORTA BIT 4 I/O Schmidt trigger Open drain BIT 3 I/O TTL BIT 2 I/O TTL BIT 1 I/O TTL BIT 0 I/O TTL In timer0

10 PORTB BIT 7 I/O TTL Pode gerar int.ext.por mudança de estado BIT 6 I/O TTL Pode gerar int.ext.por mudança de estado BIT 5 I/O TTL Pode gerar int.ext.por mudança de estado BIT 4 I/O TTL Pode gerar int.ext.por mudança de estado BIT 3 I/O TTL BIT 2 I/O TTL BIT 1 I/O TTL BIT 0 I/O Schmidt trigger Int.externa Nota : todos os pinos do PORTB possuem Pull-up interno, e para ser habilitado globalmente o bit 7 (RPBU\) do OPTION deve ser zerado. Individualmente apenas os bits de entrada terão pull-ups habilitados.

11 g) TIMER 0 : contador de 8 bits na memória que pode ser acessado para escrita ou leitura. O seu incremento pode ser interno ( Fclock/4, logo T=1/(fclock/4)),o que em um clock de 4Mhz será um pulso a cada 1uS. Também pode ser incrementado externamente pelo pino RA4 (TOKI). Nosso TIMER 0 pode ser usado de duas formas, temporizador ou contador. BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 ESCRITA/LEITURA ESCRITA/LEITURA ESCRITA/LEITURA ESCRITA/LEITURA ESCRITA/LEITURA ESCRITA/LEITURA ESCRITA/LEITURA ESCRITA/LEITURA Modo timer (sinal interno): ao ajustar TOCS=0 no OPTION, o timer será incrementado a cada ciclo de máquina (4Mhz 1uS). E por lógica de programação, faremos o controle de transbordo do contador através da interrupção (T0IE) ou através T0IF que quando igual a 1 ocorreu overflow e se igual a 0 não ocorreu. Modo contador (sinal externo RA4) : o timer 0 incrementará sua contagem a cada pulso presente no pino TOCKI. Para ser incrementado na borda de subida fazer TOSE=0 e na borda de descida TOSE=1. h) WATCH DOG (cão de guarda): timer especial que funciona com um clock RC interno e independente do clock do uc. O tempo normal de transbordo do WDT é de 18 ms, mas pode variar com a temperatura e a tensão de alimentação. Ele resetara o uc sempre que ocorrer o overflow, isto impede que haja travamento no uso do uc em circuitos críticos, pois o programador devera implementar uma subrotina para dar clear no WDT, antes do transbordo de seu contador (instrução clrwdt) cujo o valor básico é FFh (pode assumir outros valores com o uso do prescaler). O WDT é selecionado durante a gravação do PIC para estar ativo ou não. i) PRESCALER : um registro de 8 bits que pode dividir o sinal de clock, tando do timer 0 como do WDT por 256, conforme tabela anexa ao registro OPTION. Nota : quando queremos uma contagem de 1:1 no timer 0 devemos atribuir o prescaler ao WDT que tem esta relação. J) INDF e FSR : registro para endereçamento indireto; onde o INDF e o registro onde eu darei os comandos, e no fsr o endereço que estes comandos irão atuar. Exemplo : clrf indf - se no FSR eu estiver com o valor 18h, o clear dado no registro indf ira zerar a posição 18h da RAM de uso geral.

12 k) EEPROM : já sabemos que o PIC 16F84 possui esta memória de 64 bytes, que pode ser usada como memória de dados. Sua vantagem é que não perde as informações, mesmo sem alimentação. Pode ser usado para gravar diversas informações em circuitos de controle remoto, telefones, alarmes e etc. Possui 4 registros importantes para seu funcionamento, são eles : EEADR, EEDATA, EECON1 e EECON2. EEADR registro do endereço para escrita ou leitura. EEDATA tem duas funções, escrevemos o dado a ser gravado, no endereço escolhido, ou teremos o dado lido da eeprom. EECON1 registro que controla as operações de escrita e leitura. BIT 4 EEIF Identificação da int.de fim de escita 0=não ocorreu 1=ocorreu BIT 3 WRERR Identificação de erro durante a escrita 0=não ocorreu 1=ocorreu BIT 2 WREN Habilitação de escrita na eeprom 0=não disponível 1=dispon. BIT 1 WR Inicio de escrita 0=escrita terminou/zerada pelo hardware 1=inicia BIT 0 RD Inicio da leitura 0=leitura teminou/zerada pelo hardware 1=inicia EECON2 é um registro que não sofre ajustes, é usado durante o processo de escrita da eeprom, será visto nos modelos de programas adiante. K) POWER-DOWN (modo sleep) : o uc entra em estado inerte de 7mA de consumo cai para 60uA. Para entrar neste modo basta usar a instrução sllep. Para sair deste estado basta um reset externo pelo MCLR\, time out no WDT, interrupção externa RB0, ou por fim de escrita na eeprom, ou por mudança de estado no PORTB (RB7 a RB4). Nota 1 : o PIC 16F84 possui no endereço 2007 da memória de programa, 14 bits que os gravadores preenchem, com informações determinadas pelo usuário. BIT 13 CP código de proteção a BIT 4 CP código de proteção BIT 3 PWRTE\ 1=Habilitado 0=desabilitado BIT 2 WDTE 1=WDT Habilitado 0=desabilitado BIT 1 FOSC1 Seleciona tipo de oscilador BIT 0 FOSC2 Seleciona tipo de oscilador Tabela de escolha do tipo de oscilador : FOSC1 FOSC2 TIPO 0 0 LP 0 1 XT 1 0 HS 1 1 RC

13 Nota 2 : nos endereços 2000h a 2003h, armazena-se 4 nibles (4 bits) sendo um em cada posição de memória, que servem como identificação, check-sum, ou outro código desejado pelo usuário. Estas informações só podem ser lidas durante a gravação ou verificação do uc. Estes valores são escritos pelo gravador. Ex.: ID (identificação) 2E7Fh = , teremos : 2000h xxxxxxxxxx h xxxxxxxxxx h xxxxxxxxxx h xxxxxxxxxx1111 Agora que já conhecemos nosso microcontrolador, vamos começar nosso aprendizado através de programas, que vão nos levar ao conhecimento das principais características de um uc, tais como : temporização, contador, sensoreamento, controle de display e cargas diversas. Mas as possibilidades de uso de um uc são quase ilimitadas e fascinantes, e com a prática e perseverança, seremos capazes de desenvolver sistemas de alto grau de complexidade. Vamos escrever programas e comentá-los, juntamente com o circuito que será controlado pelo uc, assim poderemos fixar as principais instruções e seu uso lógico. Em vários livros e data sheets, temos algumas convenções que nos facilitam o entendimento das instruções em linguagem de máquina de um uc. No PIC temos convenções que o compilador MPASM e MPASMWIN reconhecem. 1) O que for escrito após ; é considerado comentário. 2) Constante decimal D valor ou d valor, ex.: d 20 3) Constante binária B xxxx ex.: 0110 = B ) Constante hexadecimal 0x valor ou valorh, ex.: 0x 12 ou 12H, se a constante hexa for uma das letras A até F, terá que ser precedia de um 0 ; ex.: A = 0AH 5) A letra f será um registro entre 0 e 127 (0 a 7FH). 6) W ou w registro Work (ou acumulador no 8031). 7) A letra b será um bit entre 0 e 7 usado em uma operação. 8) A letra k representa uma constante ou um rótulo (label). 9) A letra d o destino da instrução. Se d = 0 o resultado é armazenado em W, se d = 1 o resultado é armazenado no próprio registro indicado (f). 10) Algumas dicas para entender como é formada as instruções: File = f, literal = l na instrução e k no argumento, destino = d, work = w, bit = b, teste = t, skip = s (pulo), set =s, clear = c, zero = z. Também temos as ações especificas como: Add =soma, and= lógica e, clr= limpar, com =complemento, dec= decrementar, inc = incrementar, ior= lógica ou, mov= mover, rl = rotacionar 1 bit a esquerda (left), rr = rotacionar um bit a direita (right), sub = subtração, swap = inversão entre os nibles de um byte, xor = lógica ou exclusivo. Agora podemos construir os nomes das instruções, vamos a uns exemplos: DECF = decrementar (dec) um registrador (f). DECFSZ = decrementar (dec) o registrador (F) e pula (Skip) se o resultado for zero (z). Após algum treino ficaremos campeões (retirado de Desbravando o PIC-editora Érica).

14 TABELA DE INSTRUÇÕES INSTRUÇÃO OPERANDO DESCRIÇÃO CICLOS ADDWF f,d Soma W e f 1 ANDWF f,d And entre W e f 1 CLRF f Zera f 1 CLRW Zera w 1 COMF f,d Complementa f 1 DECF f,d Decrementa f 1 DECFSZ f,d Decrem.f pula se f=0 1(2) INCF f,d Incrementa f 1 INCFSZ f,d Increm.f pula se f = 0 1(2) IORWF f,d OR entre W e f 1 MOVF f,d Move f 1 MOVWF f Move W para f 1 NOP Nenhuma operação 1 RLF f,d Roda esq.pelo carry 1 RRF f,d Roda dir. pelo carry 1 SUBWF f,d Subtrai W de f 1 SWAPF f,d Troca nibles em f 1 XORWF f,d XOR entre W e f 1 BCF f,b Zera bit b em f 1 BSF f,b Seta bit b em f 1 BTFSC f,b Se bit b=0 em f,pula 1(2) BTFSS f,b Se bit b=1 em f,pula 1(2) ADDLW k Soma W e k 1 ANDLW k And entre W e k 1 CALL k Chama sub-rotina 2 CLRWDT Zera timer Watch dog 1 GOTO k Desvia p/label k 1 IORLW k OR entre W e k 1 MOVLW k W=k 1 RETFIE Retorna de interrup. 2 RETLW k Retorna c/ w = k 2 RETURN Retorna de sub-rotina 2 SLEEP Entra em modo sleep 1 SUBLW k Subtrai k de W 1 XORLW k Xor entre W e k 1

15 PROGRAMAS EXEMPLOS Vamos ao nosso primeiro programa; ao lado de cada comando teremos o comentário do que o mesmo executa no funcionamento do projeto proposto. a) Sensoreamento e acionamento de LED. Neste projeto iremos testar uma chave normalmente aberta (nosso sensor), e se a mesma estiver aberta ligara o LED(D2) e fechada ligara o LED(D1). Vejamos o circuito abaixo: O mesmo é bem simples, mas aprenderemos conceitos importantes de programação do PIC através das instruções que usaremos. Iremos sugerir um modelo padrão de formulário para programação mais adiante, o que facilita e organiza o trabalho do projetista, pois poderá montar uma pasta com o diagrama lógico e o programa de seus projetos. Importante salientar que o programa deve ser digitado no bloco de notas (note pad) ou no editor do próprio MPLAB. Vamos ao programa: (foi digitado no bloco de notas) list p=16f84 radix dec include <P16F84A.INC> ;para qual o processador o código será gerado ;padrão decimal para vlrs.s/identificação ;anexa arquivo def.16f84a> l1 equ 2 ;nome do pino 2 da portb l2 equ 1 ;nome do pino 1 da portb s1 equ 1 ;nome do pino 1 da porta

16 org 0 ;define início do progrma no end.0 goto início ;desvia para o label(rótulo) início org 4 ;inicio das interrupções (reservada) retfie ;retorno da interrupção início: porta ;aqui neste label começa o programa movlw B' ' ;w=0h movwf INTCON ;registro intcon=0h,ou seja todas int.desab. bsf STATUS,RP0 ;seta bit RP0 no reg.status, sel.banco 1 movwf TRISB ;trisb=0h,todos pinos conf.saidas portb movlw B' ' ;w=ffh movwf TRISA ;TRISA=B'11111'os 5 pinos serão entradas movlw B' ' ;w=d8h movwf OPTION_REG ;usa-se este nome p/o registrador,estudar ;com as tabelas como configuramos o option bcf STATUS,RP0 ;clear bit RP0 volto para o banco 0 movlw B' ' ;w=0h movwf PORTB ;garanto zero nos pinos do portb no ;inicio/portb=w principal: ;aqui vou começar as rotinas de controle test1: desl1: desl2: btfss PORTA,s1 ;se pino 1 porta=1 salta próxima linha goto test1 bsf PORTB,l2 ;liga pino 2 portb goto desl1 ;vai p/label desl1 (desliga1) bsf PORTB,l1 ;liga pino 1 portb goto desl2 ;vai p/label desl2 (desliga2) bcf PORTB,l1 ;desliga pino 1 portb goto principal bcf PORTB,l2 ;desliga pino 2 portb goto principal end ;fim de programa Após a digitação do programa em assembler, iremos compilar o mesmo no MPLAB (solução completa da MICROCHIP), conforme explicações nos anexos. Se não tivermos nenhum erro de programação, iremos verificar o funcionamento do mesmo gravando o arquivo gerado em hexadecimal (código de máquina) no PIC16F84A, com um dos gravadores sugeridos. Se não funcionar conforme o esperado, analisar o circuito lógico e o

17 programa, pois só a solução de sistemas simples nos dará experiência e a base necessária para projetos mais complexos (todos circuitos e programas desta apostila foram testados). b) Seqüencial de 4 LEDS. Neste programa iremos aprender a fazer bases de tempo (temporização), usando ciclos de máquina para obtermos o tempo desejado entre o ligar e desligar de cada LED da seqüência. Usaremos o PORTB como saída, sendo definido em nosso programa o P0B até o P3B os pinos que usaremos para acionamento de LED1 (D1) até LED4 (D4) respectivamente. Vamos ao circuito : O programa : list p=16f84 ;para qual o processador o código será gerado radix dec ;padrão decimal para vlrs. s/ identificação include <P16F84A.INC> ;anexa arquivo def.16f84a> l1 equ 0 ;nome do pino 0 da portb l2 equ 1 ;nome do pino 1 da portb l3 equ 2 ;nome do pino 2 da portb l4 equ 3 ;nome do pino 3 da portb x equ 0CH ;define var.aux.x no end 0Ch da RAM y equ 0DH ;define var.aux.y no end 0Dh da RAM j equ 0EH ;define var.aux.j no end 0Eh da RAM org 0 ;define início do progrma no end.0 goto início ;desvia para o label(rótulo) início

18 org 4 ;inicio das interrupções (reservada) retfie ;retorno da interrupção início: ;aqui neste label começa o programa movlw B' ' ;w=0h movwf INTCON ;registro intcon=0h,ou seja todas int.desab. bsf STATUS,RP0 ;seta bit RP0 no reg.status,sel.banco 1 movwf TRISB ;trisb=0h,todos pinos conf.saidas portb movlw B' ' ;w=ffh movwf TRISA ;TRISA=B'11111'os 5 pinos serão entradas ; porta movlw B' ' ;w=d8h movwf OPTION_REG ;usa-se este nome p/o registrador,estudar ;com as tabelas como configuramos o option bcf STATUS,RP0 ;clear bit RP0 volto para o banco 0 movlw B' ' ;w=88h movwf PORTB ;garanto zero nos pinos do portb no ; inicio/portb=w principal: ;aqui vou começar as rotinas de controle rrf PORTB ;rotaciona a direita o registo portb call time goto principal time: ;inicio da rotina de tempo (aprox.500ms) movlw 2 ;w=2 decimal (1uS) movwf j ;j=w (1uS) time1: movlw 250 ;w=250 decimal (1uS) movwf x ;x=w (1uS) time2: movlw 248 ;w=248 decimal (1uS) movwf y ;y=w (1uS) time3: nop ; (1uS) decfsz y ; decrem.y se y=0 salta prox.inst.(2us se salta) ; (1us se não salta) goto time3 ; (2uS) decfsz x ; (1uS ou 2uS) goto time2 ; (2uS) decfsz j ; (1uS ou 2uS) goto time1 ; (2uS) return ; (2uS) end ;fim de programa

19 ; COMO FUNCIONA A ROTINA DE TEMPO ; Tempo usado por cada instrução da rotina: ; call=2us nop=1us ; movlw=1us decfsz=1us ; movwf=1us goto=2us ; total: x{250x[(248x4uS) ] }=0,499021uS==0,5 S ; note que os loops me garantem chegar ao tempo desejado, estude para entender ; o funcionamento deste método. Note que não usamos o timer do PIC. c) Contador de sinal externo (RA4/TOCKI). Neste exemplo iremos utilizar nosso uc para contar um determinado número de pulsos externos, em nosso caso serão 10, quando isto acontecer nosso timer 0 ira gerar uma interrupção no uc, a mesma será resolvida pelo software, que ligara um led (representando uma carga qualquer) por 250mS, e após desligara, voltando para rotina principal do uc como contador. Também aproveitaremos para ativar um display de 7 segmentos (de led) para fixarmos mais este conceito. O circuito : O programa deste circuito nos introduz a vários comandos importantes do uc em estudo, que também são usados em quase todos uc da MICROCHIP.

20 ; FORMULÁRIO PADRÃO PARA USO EM PROGRAMAÇÃO COM ; MICROCONTROLADORES ; DA LINHA PIC ( MICROCHIP ). COM USO DO COMPILADOR MPASWIN. ; ** Os registros da CPU serão escritas com letras maiúsculas, e a- ; pós " ; " os comentários não serão considerados pelo compilador. ; PROJETO : CONTADOR DE SINAL EXTERNO DATA : 08/10/2002 ; AUTOR :Maurício Madeira Oliveira list p=16f84 ;para qual processador o código será gerado radix dec ;padrão decimal para valores sem identificação include <p16f84a.inc> ;anexa arquivo def.16f84a ; TABELA DE DEFINIÇÕES DE RAM E CONSTANTES (defino nomes associados a ; valores) x equ 0CH ; define variável auxiliar x na ram 0Ch (hexadecimal) y equ 0DH ; define variável auxiliar y na ram 0Dh (hexadecimal) STEMP equ 0EH ; define variável p/colocar vlrs.temporarios do status l1 equ 7 ; define led1 ligado ao pino 7 do portb ; variáveis acima são exemplos do uso da diretriz EQU ; TABELA DE MONTAGEM DO DISPLAY ; ; a=rb0 define segmento do display ligado ao pino 0 do portb ; b=rb1 " " " " " " " 1 do portb ; c=rb2 " " " " " " " 2 do portb ; d=rb3 " " " " " " " 3 do portb ; e=rb4 " " " " " " " 4 do portb ; f=rb5 " " " " " " " 5 do portb ; g=rb6 " " " " " " " 6 do portb ; ; fica em binario: B'0gfedcba', para escrever n.7 ==> B' ' ou B'00000cba' ;, para escrever n.6 ==> B' ' ou B'0gfedc0a', etc. ;

21 ; a ; ******* ; f * * b ; * g * ; ******* DISPLAY ; e * * c ; * * ; ******* ; d ; MEMÓRIA DE PROGRAMA org 0 ; define inicio do programa a partir do end. 0h goto inicio ; desvia o progrma para o label (rótulo) início ; INÍCIO DA ROTINA DE INTERRUPÇÃO org 4 ; sempre inicia no end.4h as interrup.no PIC swapf STATUS,W movwf STEMP ; stemp=w=status (c/nibles invertidos) bsf PORTB,l1 ; ligo led1 pino 7 do portb movlw 0x0F6 ; w=f6h movwf TMR0 ; tmr0=w=f6h call tempo bcf PORTB,l1 ; desligo led1 swapf STEMP,W movwf STATUS ; move vlrs.stemp p/status (inv.nibles/fica correto) bcf INTCON,T0IF ; zera o indicador de overflow p/iniciar novam. retfie ; comando de retorno de interrupção ; INÍCIO DO PROGRAMA inicio: ; inicialização do uc movlw B' ' ; w= b movwf INTCON ; INTCON=w, GIE esta habilitada bsf STATUS,RP0 ; seleciono banco1 movlw B' ' ; w= b movwf OPTION_REG ; OPTION=w, T0CS=1 contagem por RA4, externa movlw B' ' ; w=ffh movwf TRISA ; trisa=w, porta entrada movlw B' ' ; w=0

22 movwf TRISB ; trisb=w, portb saídas bcf STATUS,RP0 ; seleciono banco0 movwf PORTA ; porta=w=0 movwf PORTB ; portb=w=0 principal: movlw 0x0F5 ; w=0f5h movwf TMR0 ; timer0=w bcf INTCON,T0IF ; reset no bit indicador de overflow bsf INTCON,T0IE ; seto o bit de interrupção do timer0 loop: certo: movf TMR0,0 ; w=tmr0 call certo ; sub-rotina de conversão p/7 segmentos movwf PORTB ; portb=w nop goto loop andlw B' ' ; and w p/limitar em 4 bits vlr.contador sublw 0x0E ; subtrai de 14 o vlr.w(vlr.do tmr0 acertado) addwf PCL ; soma valor de w com pcl, saltando p/ instrução ; necessária p/escrita do número correto ;'0gfedcba' sequência dos segmentos retlw B' ' ; retorna 9 retlw B' ' ; retorna 8 retlw B' ' ; retorna 7 retlw B' ' ; retorna 6 retlw B' ' ; retorna 5 retlw B' ' ; retorna 4 retlw B' ' ; retorna 3 retlw B' ' ; retorna 2 retlw B' ' ; retorna 1 retlw B' ' ; retorna 0 tempo: ; rotina de 250mS movlw 250 ; w=250d movwf x temp1: movlw 248 ; w=248d movwf y temp2: nop decfsz y goto temp2 decfsz x goto temp1

23 return end d) Escrevendo em um display de cristal liquido (LCD). Vamos aprender a usar um LCD para escrever a frase CURSO DE MICROCONTROLADOR. Vários conceitos importantes sobre o uso deste serão abordados. Vamos conhecer um pouco sobre o LCD : 1) Pinagem padrão. Comandos para inicialização do display (seguir a tabela abaixo): MÓDULO TIPO INST. TEMPO INST. TEMPO INST. TEMPO INST. TEMPO INST. TEMPO 1 LINHA 7X5 18X mS 30 15mS 6 40uS 0E 40uS 1 40uS 2 LINHAS 7X5 18X mS 38 15mS 6 40uS 0E 40uS 1 40uS

24 Existem outros módulos com mais linhas e mais colunas. Procurar outras bibliografias e referências técnicas. Em nosso projeto exemplo iremos usar os 8 bits de dados, mas é possível usarmos apenas 4 bits para enviarmos as informações para o LCD, usamos o nible mais significativo D7 a D4 (pinos 14 a 11) para a comunicação, por ex.: enviar a instrução 14, primeiro envio 1(0001) e após o 4 (0100) note que também envio primeiro o nible mais significativo, se estivesse usando os 8 bits enviaria direto 14 ( ). 3) Agora iremos descrever quais os pinos do uc iremos usar para gerar os sinais de controle e transferência de dados para o LCD. Usaremos a porta A para gerar os sinais de controle e a porta B para enviarmos dados e instruções. PINO Controla Comentários PA.0 RS 1=dado 0=inst. PA.1 CS 1=enable 0=disable PB.0 D0 bms PB.1 D1 PB.2 D2 PB.3 D3 PB.4 D4 PB.5 D5 PB.6 D6 PB.7 D7 BmS 4)Diagrama lógico do circuito com LCD.

25 5) Vamos ao programa que ira controlar o LCD e escrever a mensagem escolhida, vamos com isto aprender os conceitos necessários para o funcionamento correto do display. ; FORMULÁRIO PADRÃO PARA USO EM PROGRAMAÇÃO COM ; MICROCONTROLADORES ; DA LINHA PIC ( MICROCHIP ). COM USO DO COMPILADOR MPASWIN. ; ** Os registros da CPU serão escritas com letras maiúsculas, e a- ; pós " ; " os comentários não serão considerados pelo compilador. ; PROJETO : Display-LCD DATA : 29/10/2002 ; AUTOR :Mauricio Madeira Oliveira list p=16f84 ;para qual processador o código será gerado radix dec ;padrão decimal para valores sem identificação include <p16f84a.inc> ;anexa arquivo def.16f84a ; TABELA DE DEFINIÇÕES DE RAM E CONSTANTES (defino nomes associados a valores) x equ 0Ch ; define variável auxiliar x na ram 0Ch (hexadecimal) y equ 0Dh ; define variável auxiliar y na ram 0Dh (hexadecimal) con0 equ 0h ; controle do sinal RS (LCD) através do PA.0 con1 equ 1h ; controle do sinal CS (LCD) através do PA.1 ;Definição de caracteres que serão usados: M equ 0x4D I equ 0x49 ; C equ 0x43 R equ 0x52 O equ 0x4F N equ 0x4E T equ 0x54 L equ 0x4C A equ 0x41 D equ 0x44 U equ 0x55 S equ 0x53 E equ 0x45 # equ 0x23

26 ; MEMÓRIA DE PROGRAMA org 0 ; define inicio do programa a partir do end. 0h goto início ; desvia o progrma para o label (rótulo) início ; INÍCIO DA ROTINA DE INTERRUPÇÃO org 4 ; sempre inicia no end.4h as interrup.no PIC ; rotinas... retfie ; comando de retorno de interrupção ; INÍCIO DO PROGRAMA início: movlw B' ' ; w=0 movwf INTCON ; inticon=w int.desabilitadas bsf STATUS,RP0 ; sel.banco1 movwf TRISB ; portb def.para saída movlw B' ' ; w= movwf TRISA ; PA.0 e PA.1 def.saidas, demais input movlw B' ' ; w= b movwf OPTION_REG ; option=w (verif.naa tabela as atribuições) movlw B' ' ; w=o bcf STATUS,RP0 ; sel.banco0 movwf PORTA ; porta=w movwf PORTB ; portb=w principal: ;inicialização do display LCD bcf PORTA,con0 ; porta P0=0, RS=0,LCD recebe instrução movlw 0x38 ; w=38h movwf PORTB ; portb=instrução 38 p/ o LCD call tempo ; rotina de 20mS movlw 0x38 ; movwf PORTB ; Verificar tabela de configuração LCD call tempo ; movlw 0x06 ; w=o6h movwf PORTB ; portb=inst. 06 p/ o LCD call tempo movlw 0x0E ; w=0eh movwf PORTB ; portb=inst. 0E p/ o LCD call tempo

27 movlw 0x01 ; w=01h movwf PORTB ; portb=inst. 01 p/ o LCD call tempo movlw 0x80 ; w=80h movwf PORTB ; portb=inst. 80 p/ o LCD, iniciar na 1.linha ; e 1.coluna do LCD call time ; rotina de 40uS (pode ter tempo menor p/esta ; inst.) esc1: ; rotina de escrita na primeira linha do LCD bcf PORTA,con0 movlw 0x80 movw f PORTB call time bsf PORTA,con0 ; porta P0=1, RS=1, LCD recebe dados movlw 0x43 ; letra C movwf PORTB call time movlw U movwf PORTB call time movlw R movwf PORTB call time movlw S movwf PORTB call time movlw O movwf PORTB call time movlw # movwf PORTB call time movlw D movwf PORTB call time movlw E movwf PORTB call time movlw # movwf PORTB call time bcf PORTA,con0 ; porta P0=0, RS=0, LCD recebe inst. Movlw 0x0C0 ; w=c0h Movwf PORTB ; cursor vai p/2.linha, 1.coluna do LCD call time

28 bsf PORTA,con0 movlw M movwf PORTB call time movlw I movwf PORTB call time movlw 0x43 movwf PORTB call time movlw R movwf PORTB call time movlw O movwf PORTB call time movlw 0x43 movwf PORTB call time movlw O movwf PORTB call time movlw N movwf PORTB call time movlw T movwf PORTB call time movlw R movwf PORTB call time movlw O movwf PORTB call time movlw L movwf PORTB call time movlw A movwf PORTB call time movlw D movwf PORTB call time movlw O movwf PORTB call time movlw R

29 movwf PORTB call time aqui: goto aqui tempo: ; rotina de 20mS bsf PORTA,con1 ; gera sinal (alto) p/ CS do LCD bcf PORTA,con1 ; gera sinal (low ) p/ CS do LCD movlw 250 ; w=250d, 1uS movwf x ; x=w, 1uS temp1: movlw 18 ; 1uS movwf y ; 1uS temp2: nop ; 1uS decfsz y ; decrementa y de 1,se>0 exec.prox.inst. goto temp2 ; se=0 salta prox.inst. decfsz x ; 1uS goto temp1 ; 1uS return ; 1uS time: tim1: ; rontina de 4uS bsf PORTA,con1 ; gera sinal (alto) p/ CS do LCD bcf PORTA,con1 ; gera sinal (low ) p/ CS do LCD movlw 38 ; w=38d movwf x nop decfsz goto return end x tim1

30 e) Acionando um motor de passo (stepper motor). Vamos controlar através do microcontrolador um motor de passo com 5 terminações, sendo um dos fios terminais o comum (ligaremos a +Vcc) e os demais fios terminais correspondem aos 4 enrolamentos do motor, cada um será ligado ao coletor de um transistor NPN (BC548). Assim iremos controlar o sentido de rotação (horário ou antihorário) e a velocidade do mesmo. Com esta aplicação poderemos explorar mais algumas das possibilidades de uso do microcontrolador, robótica, aplicações industriais, e etc. O diagrama lógico abaixo, mostra o circuito, e sua simplicidade, pois iremos controlar o sentido e velocidade de rotação através de um programa. O programa para este circuito é de fácil entendimento, basta analisar as instruções usadas e os comentários ao lado de cada uma, note que usamos apenas 4 portas de I/O, sobrando recursos para circuitos bem mais complexos. ; FORMULÁRIO PADRÃO PARA USO EM PROGRAMAÇÃO COM ; MICROCONTROLADORES ; DA LINHA PIC ( MICROCHIP ). COM USO DO COMPILADOR MPASWIN. ; ** Os registros da CPU serão escritas com letras maiúsculas, e a- ; pós " ; " os comentários não serão considerados pelo compilador. ; PROJETO : Controle de motor de passo DATA : 09/11/2002 ; AUTOR :Mauricio Madeira Oliveira list p=16f84 ;para qual processador o código será gerado

31 radix dec ;padrão decimal para valores sem identificação include <p16f84a.inc> ;anexa arquivo def.16f84a ; TABELA DE DEFINIÇÕES DE RAM E CONSTANTES (defino nomes associados a valores) x equ 0Ch ; define variável auxiliar x na ram 0Ch (hexadecimal) y equ 0Dh ; define variável auxiliar y na ram 0Dh (hexadecimal) n equ 0Eh ; define variável auxiliar n na ram 0Eh (hexadecimal) ; variáveis acima são exemplos do uso da diretriz EQU ; MEMÓRIA DE PROGRAMA org 0 ; define inicio do programa a partir do end. 0h goto início ; desvia o progrma para o label (rótulo) início ; INÍCIO DA ROTINA DE INTERRUPÇÃO org 4 ; sempre inicia no end.4h as interrup.no PIC ; rotinas... retfie ; comando de retorno de interrupção ; INÍCIO DO PROGRAMA início : movlw B' ' ; w=0d movwf INTCON ; desabilito todas as interrupções movlw B' ' ; w=88h movwf OPTION_REG ; option=w, verificar tabela bsf STATUS,RP0 ; seleciono banco1 movlw B' ' ; w=0d movwf TRISB ; portb=saida movlw B' ' ; w=ffh movwf TRISA ; porta=entrada bcf STATUS,RP0 ; seleciono banco0 movlw B' ' ; w=0d movwf PORTB ; portb=0d movwf PORTA ; porta=0d HORARIO: Movlw 100 ; w=100d

32 Movwf n ; n=100d HORA1: Movlw B' ' ; w=8h movwf PORTB call TIME ; chama rotina de tempo call CON1 ; chama rotina de controle1 movlw B' ' ; w=4d movwf PORTB call TIME call CON1 movlw B' ' ; w=2d movwf PORTB call TIME call CON1 movlw B' ' ; w=1d movwf PORTB call TIME call CON1 goto HORA1 ANTIHORA: movlw 100 movwf n ANTI1: Movlw B' ' ; w=1h Movwf PORTB call TIME ; chama rotina de tempo call CON2 ; chama rotina de controle2 movlw B' ' ; w=2d movwf PORTB call TIME call CON2 movlw B' ' ; w=4d movwf PORTB call TIME call CON2 movlw B' ' ; w=8d movwf PORTB call TIME call CON2 goto ANTI1 TIME: movlw 100 ; w=100d movwf x ; x=w TIM1: movlw 248 ; w=248d movwf y ; y=w

33 TIM2: nop decfsz y ;dec.y,pula prox.inst.se =0 goto TIM2 decfsz x goto TIM1 return CON1: decfsz n return goto ANTIHORA CON2: decfsz n return goto HORARIO end Memória EEPROM. Agora vamos ao estudo dos registros de escrita e leitura da EEPROM do PIC em estudo. O 16F84 possui 64 Bytes que posso usar como memória de dados, e que diferente da RAM não perco as informações com a falta de alimentação. Esta memória facilita o projeto de circuitos, tais como : discadores telefônicos, códigos para sistemas de alarmes, ajustes em controle remoto, coletor de dados, etc. Iremos descrever o uso básico para leitura e escrita de dados. Temos 4 registros especiais para esta finalidade, são eles : EEADR endereço desejado para leitura ou escrita na EEPROM. EEDATA dado a escrever ou dado lido da EEPROM. EECON1 registro de controle 1. EECON2 registro de controle 2. 1) Escrevendo na EEPROM. - Coloco o endereço de escrita no EEADR ( 0 a 63 ou 0 a 3Fh). - O dado a ser escrito coloco em EEDATA. - Desabilito as interrupções (GIE = 0). - Habilito a escrita setando o bit WREN no registro EECON1. - Carrego o registro EECON2 com os valores 0x55 e 0xAA nesta seqüência(obrigatório). - A escrita deve ser iniciada setando o bit WR no registro EECON2. - Devo resetar o bit WREN no registro EECON1 (isto ira proteger o processo de escrita). - Agora aguardamos o bit WR ir para 0, e após continuamos nossas rotinas ou usamos a interrupção de escrita (bit EEIE no registro INTCON, associado ao bit EEIF do EECON1), para controle do final de escrita. - Caso algum erro de escrita ocorra no processo o bit WRERR do registro EECON1 será setado.

34 Nota : o registro EECON1 e descrito em Registros de controle da CPU em páginas anteriores. Vamos a um trecho de programa de escrita, iremos escrever no endereço 01h da EEPROM o valor 1Ch ( ). escrita: bcf STATUS,RP0 ; seleciono banco0 movlw 0x1 ; w=1h movwf EEADR ; EEADR=w=1h movlw 0x1C ; w=1ch movwf EEDATA ; EEDATA=w=1Ch bsf STATUS,RP0 ; seleciono banco1 para EECON1 bcf INTCON,GIE ; desabilito as int. bsf EECON1,WREN ; hab. escrita na EEPROM movlw 55H ; w=55h movwf EECON2 ; EECON2=55h movlw 0AAH ; w0=aah movwf EECON2 ; EECON2=AAh bsf EECON1,WR ; inicia processo de escrita bcf EECON1,WREN ; desab. esc. EEPROM, não interfere na ; escrita(agora) controle: ; escolho uma rotina de controle de fim de ; escrita, vamos implementar uma bem simples ; (como exemplo) btfss EECON1,EEIF ; se bit EEIF=1 pula próxima instrução goto controle bcf EECON1,EEIF ; zero o bit EEIF (para novo controle de ; escrita) bsf INTCON,GIE ; habilito novamente as interrupções return Nota : este exemplo não tem o controle de erros, o ideal e fazer uma rotina usando a interrupção de fim de escrita e de erros. 2) Lendo na EEPROM. Podemos ler os dados a qualquer momento, bastando seguir os passos abaixo. - O endereço a ser lido deve ser colocado em EEADR. - A leitura deve ser habilitada setando o bit RD no registro EECON1. - O dado lido será colocado em EEDATA. Vamos a um trecho de programa onde iremos ler o dado contido no endereço 01h, o qual escrevemos no trecho anterior (escrita), e colocar a informação lida (1C, no caso) no endereço 10h na RAM de uso geral.

35 leitura: bcf STATUS,RP0 ; seleciono banco0, onde esta EEADR movlw 0x1C ; w=1ch movwf EEADR ; EEADR= w bsf STATUS,RPO ; sel.banco1 onde esta EECON1 bsf EECON1,RD ; hab. leitura bcf STATUS,RP0 ; volto ao banco0 onde esta EEDATA movf EEDATA,0 ; w= EEDATA que é o dado lido movwf 0x10 ; disponibilizo o dado no end.10h da ; RAM de uso geral, para uso qualquer return Não esgotamos de forma alguma, neste curso inicial a gama de recursos e aplicações de um MICROCONTROLADOR, mas esperamos ter conseguido iniciar nossos alunos neste campo maravilhoso da eletrônica atual, onde software e hardware andam juntos, onde o limite praticamente é criatividade e perseverança do projetista.

36 AUTOR Maurício Madeira Oliveira Página pessoal (fonte): Este curso pode ser usado e divulgado, sem fins comerciais, citar fonte e autor. BIBLIOGRAFIA Microcontroladores PIC, Engenheiro Vidal Pereira da Silva Jr., edição independ Desbravando o PIC, David José de Souza, Editora Érica Microchip Data Sheet, Microchip Technology Inc Circuito Digitais, Herbert Taub, Editora McGRAW-HILL Display LCM Motor de Passo, Polígrafos diversos (colhidos na Internet)., Polígrafos diversos (colhidos na Internet). Sites : ( site com vários modelos de programadores e software gratuito).

Arquitetura de Computadores. Prof. João Bosco Jr.

Arquitetura de Computadores. Prof. João Bosco Jr. Arquitetura de Computadores Prof. João Bosco Jr. Aula 4 (nivel ISA Arquitetura PIC) Características do Controlador 16F628A 18 Pinos Até 20 Mhz (5M instruções por segundo) PortA e PortB 10 Interrupções

Leia mais

Introdução aos Microcontroladores PIC

Introdução aos Microcontroladores PIC Introdução aos Microcontroladores PIC 1ª parte João M. P. Cardoso Universidade do Algarve Microcontroladores PIC Empresa: Microchip Technology Inc. Várias famílias PIC12XX, PIC16XX, PIC17XX, PIC18XX Linha

Leia mais

V1 5V +V. (14)Vdd (6)RB0 PIC 16F628A. (16) Clk-out. C1 33pF. C2 33pF. Figura 1 Circuito pisca-pisca.

V1 5V +V. (14)Vdd (6)RB0 PIC 16F628A. (16) Clk-out. C1 33pF. C2 33pF. Figura 1 Circuito pisca-pisca. AUTOR Maurício Madeira Oliveira Página pessoal (fonte): www.seguidorsolar.com.br Este curso pode ser usado e divulgado, sem fins comerciais, citar fonte e autor Prévia: Curso de Microcontroladores PIC

Leia mais

Curso de Microcontroladores PIC 16F84A

Curso de Microcontroladores PIC 16F84A Curso de Microcontroladores PIC 16F84A João Neto Caetano Jnetcaetano@hotmail.com Marciel Gonçalves Azevedo Marcielgazevedo@hotmail.com Célio Rodrigues Pinto Treinamentos em geral, suporte a alunos universitários

Leia mais

Sistemas Microcontrolados. Período Aula 4. 1 Saulo O. D. Luiz

Sistemas Microcontrolados. Período Aula 4. 1 Saulo O. D. Luiz Sistemas Microcontrolados Período 2009.2 Aula 4 1 Saulo O. D. Luiz Roteiro Introdução ao microcontrolador PIC 16F877 Arquitetura do PIC 16F877 Conjunto de instruções Registradores de configuração 2 Saulo

Leia mais

1.1 Noções básicas sobre interrupções em Microcontroladores

1.1 Noções básicas sobre interrupções em Microcontroladores Capítulo 1 Interrupções 1.1 Noções básicas sobre interrupções em Microcontroladores PIC Interrupções é obrigação em uma programação profissional. Quando um evento ocorrer, uma bandeira de interrupção será

Leia mais

Microcontroladores PIC

Microcontroladores PIC Microcontroladores PIC Prof. Adilson Gonzaga 1 Arquitetura de Microcomputadores Arquitetura von Neumann: Há apenas um barramento (duto) de dados e um de endereço. As Instruções e os dados ocupam o mesmo

Leia mais

Introdução ao PIC. Guilherme Luiz Moritz 1. 6 de novembro de DAELT - Universidade Tecnológica Federal do Paraná

Introdução ao PIC. Guilherme Luiz Moritz 1. 6 de novembro de DAELT - Universidade Tecnológica Federal do Paraná Guilherme Luiz Moritz 1 1 DAELT - Universidade Tecnológica Federal do Paraná 6 de novembro de 2013 Características do PIC Arquitetura Harvard RISC, 35 instruções 8 a 84 pinos Mais de 180 modelos Vários

Leia mais

ARQUITETURA DE PROCESSAMENTO

ARQUITETURA DE PROCESSAMENTO ARQUITETURA DE PROCESSAMENTO Os subsistemas digitais codificadores, decodificadores, multiplexadores, demultiplexadores, registradores e contadores, possibilitam a criação de um sistema digital mais complexo

Leia mais

1.1. Microprocessadores e microcontroladores Sistemas genéricos e sistemas dedicados. 2. Microcontrolador PIC:

1.1. Microprocessadores e microcontroladores Sistemas genéricos e sistemas dedicados. 2. Microcontrolador PIC: PLANO DE ENSINO Curso: Engenharia mecânica com habilitação em controle e automação Disciplina: Eletiva I Carga Horária Semanal: 04 Carga Horária Total 80 EMENTA Introdução à linguagem Assembly, microcomputador

Leia mais

Interrupção Externa. Capítulo 1. Noções básicas sobre interrupções em Microcontroladores PIC

Interrupção Externa. Capítulo 1. Noções básicas sobre interrupções em Microcontroladores PIC Capítulo 1 Interrupção Externa Noções básicas sobre interrupções em Microcontroladores PIC Seção 1.1 Interrupções é obrigação em uma programação profissional. Quando um evento ocorrer, uma bandeira de

Leia mais

PIC. PeripheralInterface Controller. Prof. EngºespLuiz Antonio Vargas Pinto www.vargasp.com. Prof. Vargas

PIC. PeripheralInterface Controller. Prof. EngºespLuiz Antonio Vargas Pinto www.vargasp.com. Prof. Vargas PIC PeripheralInterface Controller Prof. EngºespLuiz Antonio Vargas Pinto www.vargasp.com Histórico Em 1965 a General Instruments criou a divisão de microeletrônica Nos anos 80 foi dividida e vendida a

Leia mais

5. Conjunto de Instruções do MCU PIC

5. Conjunto de Instruções do MCU PIC 5. do MCU PIC Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP 5.1 Arquitetura interna Ciclo de Busca e Execução da Instrução O clock externo é internamente dividido por 4, gerando

Leia mais

PIC16F628a. Pinagem do PIC16F628a:

PIC16F628a. Pinagem do PIC16F628a: PIC16F628a O PIC16F628a é um microcontrolador fabricado pela Microchip Technology (www.microchip.com), com as seguintes características: - composto de 18 pinos; - possui somente 35 instruções no seu microcódigo;

Leia mais

1.2 Registradores relacionados as Interrupções. 3. TOSE Sentido da transição da borda do sinal aplicado am TMR0

1.2 Registradores relacionados as Interrupções. 3. TOSE Sentido da transição da borda do sinal aplicado am TMR0 Capítulo 1 Interrupções 1.1 O que são interrupções? Como o nome sugere interrompe a execução normal e exige atenção urgente da CPU. São eventos não previsíveis e assim não pode ser oferecido tempo de CPU

Leia mais

Eder Terceiro. Programação C com o PIC16F628a. Eder Terceiro. 31 de Outubro de 2016

Eder Terceiro. Programação C com o PIC16F628a. Eder Terceiro. 31 de Outubro de 2016 Programação C com o PIC16F628a 31 de Outubro de 2016 2016-2 2 Conteúdo 3 2016-2 4 Capítulo 1 Interrupções Timer0 1.1 Registradores relacionados as Interrupcoes 1.1.1 Registrador OP T ION R EG Configura

Leia mais

Registros do 16F628A. Prof. Luiz Antonio Vargas Pinto Prof. Vargas

Registros do 16F628A. Prof. Luiz Antonio Vargas Pinto   Prof. Vargas Registros do 16F628A www.mikroe.com Prof. Luiz Antonio Vargas Pinto www.vargasp.com STATUS (03) STATUS (03) Após RESET Chave dos bancos STATUS (03) Bit 7: IRP - Seleção de banco de registradores 0 - seleciona

Leia mais

Placa McLab1 Upgrade PIC16F84A p/ PIC16F62x

Placa McLab1 Upgrade PIC16F84A p/ PIC16F62x Placa Upgrade PIC16F84A p/ PIC16F62x Sumário 1. UTILIZANDO OS PICS 16F62X...3 1.1. INTRODUÇÃO...3 2. ATUALIZAÇÃO DO HARDWARE...4 2.1. UPGRADE DA PLACA MCLAB1 PARA TRABALHAR COM PIC16F627 / PIC16F628...4

Leia mais

BANKSEL ADCON1 clrf ADCON1 bsf ADCON1,ADFM ; seta AD para VCC, GND e entradas analogicas, setando o bit ADFM configura como justificado a direita

BANKSEL ADCON1 clrf ADCON1 bsf ADCON1,ADFM ; seta AD para VCC, GND e entradas analogicas, setando o bit ADFM configura como justificado a direita include CONFIG 3F33 ;; configura automaticamente os bits do ocilador, watchdog timer, etc ;VARIÁVEIS CBLOCK 0x20 ; iniciando registradores que vão ser usados no programa ENDC tempo EQU 0x21

Leia mais

Microcontrolador PIC 16F877

Microcontrolador PIC 16F877 Microcontrolador PIC 16F877 Parte 1 Instruções de MOV, e PORT Microcontrolador PIC 16F877 Termos utilizados nas instruções: Campo f w ou W b k d Descrição registro entre 0 e 127 registro Work bit utilizado

Leia mais

Sistemas Microcontrolados

Sistemas Microcontrolados Sistemas Microcontrolados Aula 3: Microcontroladores PIC e Programação Assembly Marco Jose da Silva mdasilva@utfpr.edu.br Especificação de um uc Qual escolher? Capacidade de processamento 8 bits (16 bits

Leia mais

Sequencial Supermáquina (TEMPORIZAÇÃO SIMPLES)

Sequencial Supermáquina (TEMPORIZAÇÃO SIMPLES) Sequencial Supermáquina (TEMPORIZAÇÃO SIMPLES) Roteiro Sequencial Supermáquina Materiais Pinos do PIC Fluxograma Temporização Circuito no protoboard Melhoramentos Sugestão de Atividades Sequencial Um sequencial

Leia mais

Sistemas Digitais e Microcontrolados

Sistemas Digitais e Microcontrolados UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE ELETROTÉCNICA CURSO DE ENGENHARIA INDUSTRIAL ELÉTRICA TECNOLOGIA EM AUTOMAÇÃO INDUSTRIAL Sistemas Digitais e Microcontrolados Contador/Temporizador

Leia mais

6. Estrutura do Programa em Assembly

6. Estrutura do Programa em Assembly 6. Estrutura do Programa em Assembly Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP A estrutura se baseia em um formato sugerido pela própria Microchip para programação da família

Leia mais

SEL0338 Tópicos Especiais em Sistemas Digitais

SEL0338 Tópicos Especiais em Sistemas Digitais 1 Formato das Instruções Instruções Orientadas a Byte: instrução f,d Designador do Registrador do arquivo (endereço Hexa ou Label) a ser usado pela instrução Exemplo: MOVF f,d ; move o conteúdo do registrador

Leia mais

Microcontroladores. Prof. Nivaldo T. Schiefler Jr. M.Eng Homepage: www.joinville.ifsc.edu.br/~nivaldo Email: nivaldo@ifsc.edu.br

Microcontroladores. Prof. Nivaldo T. Schiefler Jr. M.Eng Homepage: www.joinville.ifsc.edu.br/~nivaldo Email: nivaldo@ifsc.edu.br Prof. Nivaldo T. Schiefler Jr. M.Eng Homepage: www.joinville.ifsc.edu.br/~nivaldo Email: nivaldo@ifsc.edu.br Conceito final será constituído de duas avaliações: 1ª Conceito avaliação teórica 2ª Conceito

Leia mais

Sistemas Digitais e Microcontrolados

Sistemas Digitais e Microcontrolados UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE ELETROTÉCNICA CURSO DE ENGENHARIA INDUSTRIAL ELÉTRICA TECNOLOGIA EM AUTOMAÇÃO INDUSTRIAL Sistemas Digitais e Microcontrolados Contador/Temporizador

Leia mais

01. Identifique o conjunto de portas de entrada A e o conjunto de portas B na figura abaixo.

01. Identifique o conjunto de portas de entrada A e o conjunto de portas B na figura abaixo. MICROPROCESSADORES 4 BIMESTRE LISTA 01 - REGISTRADORES E INTERRUPÇÃO - PARTE 1 (EXERCÍCIO INDIVIDUAL EM SALA DE AULA) NOME: 01. Identifique o conjunto de portas de entrada A e o conjunto de portas B na

Leia mais

Conjunto de Instruções e Modelos de Arquiteturas

Conjunto de Instruções e Modelos de Arquiteturas Departamento de Engenharia Elétrica e de Computação EESC-USP SEL-0415 Introdução à Organização de Computadores Conjunto de Instruções e Modelos de Arquiteturas Aula 7 Prof. Marcelo Andrade da Costa Vieira

Leia mais

Microcontrolador PIC 16F877

Microcontrolador PIC 16F877 Microcontrolador PIC 16F877 Parte 2 Instruções de ADD, SUB e DECF Instruções Aritméticas (ADD) : ADDLW k Descrição: Soma uma constante k é somada com W Operação: w = w + k Limites: 0 a 255 Nro de Ciclos:

Leia mais

Prof. Adilson Gonzaga

Prof. Adilson Gonzaga Prof. Adilson Gonzaga Temporização da CPU Todos os Microcontroladores da família MCS-51 têm um oscilador interno. Para uso deste oscilador deve-se conectar um cristal entre os pinos Xtal1 e Xtal2 da CPU.

Leia mais

Curso PIC 1 Desbravando o PIC. Eng. Diego Camilo Fernandes Labtools Mosaico Didactic Division

Curso PIC 1 Desbravando o PIC. Eng. Diego Camilo Fernandes Labtools Mosaico Didactic Division Curso PIC 1 Desbravando o PIC Eng. Diego Camilo Fernandes Labtools Mosaico Didactic Division O que fazemos... Desenvolvimento de projetos (hardware e software); Consultoria em engenharia eletrônica e

Leia mais

Interrupção. Prof. Adilson Gonzaga

Interrupção. Prof. Adilson Gonzaga Interrupção Prof. Adilson Gonzaga Estrutura de Programação Assembly Programa Principal Chamada de Sub-rotina1 Programa Principal Chamada de Sub-rotina2 Sub-rotina1 Subrotina2 Programa Principal Chamada

Leia mais

PIC16F84 Profº MSc.Engº Getúlio Teruo Tateoki

PIC16F84 Profº MSc.Engº Getúlio Teruo Tateoki PIC16F84 Profº MSc.Engº Getúlio Teruo Tateoki Introdução O PIC 16F84 pertence a uma classe de microcontroladores de 8 bits, com uma arquitetura RISC (Reduced Instruction Set Computer ou Computador com

Leia mais

SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES

SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES SEL 0415 Aula 11 Microcontrolador 8051 Parte 3 SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Marcelo A. C. Vieira SEL 415 INTERRUPÇÃO Estrutura de Interrupção do 8051 n 5 Fontes [ 2 Externas

Leia mais

Temporização Interrupções. Prof: Evandro L. L. Rodrigues. Rotinas de Atraso

Temporização Interrupções. Prof: Evandro L. L. Rodrigues. Rotinas de Atraso Temporização Interrupções Prof: Evandro L. L. Rodrigues Rotinas de Atraso Temporização da CPU Todos os Microcontroladores da família MCS-51 têm um oscilador interno. Para uso deste oscilador deve-se conectar

Leia mais

Estrutura Básica de um Computador

Estrutura Básica de um Computador SEL-0415 Introdução à Organização de Computadores Estrutura Básica de um Computador Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira INTRODUÇÃO n Organização Æ implementação do hardware, componentes, construção

Leia mais

Introdução à Organização de Computadores. Aula 8

Introdução à Organização de Computadores. Aula 8 SEL-0415 Introdução à Organização de Computadores Set de Instruções Modelos de Arquiteturas Aula 8 Prof. Dr. Marcelo Andrade da Costa Vieira INSTRUÇÕES n Padrão de código binário armazenado em um dispositivo

Leia mais

Hardware Parte I. Fábio Rodrigues de la Rocha

Hardware Parte I. Fábio Rodrigues de la Rocha Hardware Parte I Fábio Rodrigues de la Rocha PIC16F877 40 pinos Freqüência máxima 20MHz. Vias de programação 14 bits 33 portas configuráveis como entradas/saídas 15 interrupções diferentes Memória EEPROM

Leia mais

MICROCONTROLADORES PIC PRIMEIROS PASSOS

MICROCONTROLADORES PIC PRIMEIROS PASSOS MICROCONTROLADORES PIC PRIMEIROS PASSOS Os microcontroladores são chips inteligentes, que tem um processador, pinos de entradas/saídas e memória. Através da programação dos microcontroladores podemos controlar

Leia mais

DOUGLAS DAL POZZO DIEGO VITTI

DOUGLAS DAL POZZO DIEGO VITTI DOUGLAS DAL POO DIEGO VITTI O que são MicroControladores Microcontralor é um componente cujo núcleo possui os mesmos blocos funcionais de um microprocessador. No entanto, sua aplicação é um pouco mais

Leia mais

Microcontrolador 8051

Microcontrolador 8051 Microcontrolador 8051 Inicialmente fabricado pela INTEL, atualmente fabricado por várias empresas; Possui uma grande variedade de dispositivos, com diversas características, porém compatíveis em software;

Leia mais

Conjunto de Instruções e Modelos de Arquiteturas

Conjunto de Instruções e Modelos de Arquiteturas Departamento de Engenharia Elétrica e de Computação EESC-USP SEL-0415 Introdução à Organização de Computadores Conjunto de Instruções e Modelos de Arquiteturas Aula 7 Prof. Marcelo Andrade da Costa Vieira

Leia mais

MICROCONTROLADORES - PIC 16F84/16F84A/16F628/16F628A

MICROCONTROLADORES - PIC 16F84/16F84A/16F628/16F628A MICROCONTROLADORES - PIC 16F84/16F84A/16F628/16F628A Apresentação: Eng. Antonio Carlos Lemos Júnior acjunior@facthus.edu.br FACTHUS Uberaba 02/2008 Qual a diferença entre Microcontrolador e Microprocessador?

Leia mais

14/3/2016. Prof. Evandro L. L. Rodrigues

14/3/2016. Prof. Evandro L. L. Rodrigues SEL 433 APLICAÇÕES DE MICROPROCESSADORES I SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Prof. Evandro L. L. Rodrigues Tópicos do curso Conceitos básicos - Aplicações e utilizações dos microcontroladores

Leia mais

Prof. Adilson Gonzaga

Prof. Adilson Gonzaga Exemplo de Projeto com Microcontrolador MCS-51 Prof. Adilson Gonzaga Definições Iniciais: Microcontrolador Tamanho da Memória de Programa Interna define o tamanho da Memória de Programa Externa a ser utilizada.

Leia mais

MICROCONTROLADORES. PIC16F87x

MICROCONTROLADORES. PIC16F87x Universidade Católica de Goiás Departamento de Engenharia Curso de Engenharia Elétrica MICROCONTROLADORES PIC16F87x Prof. Eider Lúcio de Oliveira Prof. Éderson Lacerda Fideles Microcontrolador PIC16F87x

Leia mais

Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina. Temporização Interrupções Rotinas de Atraso

Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina. Temporização Interrupções Rotinas de Atraso SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Temporização da CPU Todos os Microcontroladores da família MCS-51 têm um oscilador interno. Para uso deste oscilador deve-se conectar um cristal entre os pinos

Leia mais

INTRODUÇÃO: MICROCONTROLADORES

INTRODUÇÃO: MICROCONTROLADORES INTRODUÇÃO: MICROCONTROLADORES MICROCONTROLADOR X MICROPROCESSADOR Baixa capacidade de processamento Freq. Operação em MHz Custo de R$ 7,00 a 30,00 Aplicações mais restrita Alta capacidade de processamento

Leia mais

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I SEL 433 APLICAÇÕES DE MICROPROCESSADORES I SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Apresentação do curso Critério de avaliação Média final = 0.8 * MP + 0.2 * ME onde MP = (P1 + P2) / 2 e ME = Notas

Leia mais

OMicrocontrolador PIC16F877A implementa um conversor

OMicrocontrolador PIC16F877A implementa um conversor Conversor A/D com PIC Roteiro N o 04 Fundação Universidade Federal de Rondônia, Núcleo de Ciência e Tecnologia, Departamento de Engenharia - DEE Curso de Bacharelado em Engenharia Elétrica - Disciplina

Leia mais

29/03/2017. Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina

29/03/2017. Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Temporização da CPU Todos os Microcontroladores da família MCS-5 têm um oscilador interno. Para uso deste oscilador deve-se conectar um cristal entre os pinos

Leia mais

Índice. Dia 05 de fevereiro de Apresentação Dia 12 de fevereiro de

Índice. Dia 05 de fevereiro de Apresentação Dia 12 de fevereiro de Índice Dia 05 de fevereiro de 2014....2 Apresentação... 2 Dia 12 de fevereiro de 2013....3 -Processador... 3 -Von Neumann... 3 -Harvard... 4 -Von Neumann x Harvard... 4 -Equipamentos que utilizam a arquitetura

Leia mais

1. Microcontrolador PIC. 1.1 Introdução

1. Microcontrolador PIC. 1.1 Introdução João M P Cardoso Universidade do Algarve Faculdade de Ciências e Tecnologia Campus de Gambelas 8000-117 - Faro - Portugal E-mail: jmcardo@ualg.pt V0.1: 1996 V0.2: Outubro de 2003 1. Microcontrolador PIC

Leia mais

CURSO DE MICROCONTROLADORES Prof. Fábio Renato Elias Boaventura

CURSO DE MICROCONTROLADORES Prof. Fábio Renato Elias Boaventura 1 O curso todo é baseado no PIC 16F84, devido as suas facilidades de desenvolvimento, por não necessitar de apagadores de EPROM, mas outros modelos (16C711 com conversores A/D e 12C508 com apenas 8 pinos)

Leia mais

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga SEL-614 MICROPROCESSADORES E APLICAÇÕES Prof: Adilson Gonzaga HISTÓRICO Microprocessador Circuito integrado ( chip ) capaz de executar instruções. 1971 Intel Corporation lançou no mercado o microprocessador

Leia mais

Microcontroladores: Programação em C

Microcontroladores: Programação em C Aula 06 Microcontroladores: Programação em C Prof. Tecgº Flávio Murilo 02/04/2013 1 Microcontroladores PIC São fabricados pela Microchip Technology. PIC significa Programmabile Intelligent Computer, ou

Leia mais

Aula 10 Microcontrolador Intel 8051 Parte 2

Aula 10 Microcontrolador Intel 8051 Parte 2 SEL 0415 Aula 10 Microcontrolador Intel 8051 Parte 2 SEL 0415 INTROD À ORGANIZAÇÃO DE COMPUTADORES Prof Dr Marcelo A C Vieira SEL 415 Mapeamento das memórias internas Memória de dados interna (RAM) n 8051

Leia mais

OMódulo Comparador Analógico consiste em um conjunto

OMódulo Comparador Analógico consiste em um conjunto Módulo Comparador Analógico Roteiro N o 05 Fundação Universidade Federal de Rondônia, Núcleo de Ciência e Tecnologia, Departamento de Engenharia - DEE Curso de Bacharelado em Engenharia Elétrica - Disciplina

Leia mais

Jadsonlee da Silva Sá

Jadsonlee da Silva Sá Introdução aos Sistemas Microcontrolados Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br www.univasf.edu.br/~jadsonlee.sa Introdução aos Sistemas Microcontrolados Assembly, C, java,... Circuito Reset

Leia mais

Plano de Trabalho Docente 2017 Ensino Técnico

Plano de Trabalho Docente 2017 Ensino Técnico Plano de Trabalho Docente 2017 Ensino Técnico Plano de Curso nº 95 aprovado pela portaria Cetec nº 38 de 30/10/2009 Etec Sylvio de Mattos Carvalho Código: 103 Município: Matão Eixo Tecnológico: Controle

Leia mais

9/3/2009. Aula 4. Engenharia de Sistemas Embarcados. Cenário: Sistema de Controle de LEDs

9/3/2009. Aula 4. Engenharia de Sistemas Embarcados. Cenário: Sistema de Controle de LEDs Cenário: Sistema de Controle de LEDs Sistema Embarcado Aula 4 Sistema Engenharia de Sistemas Embarcados Prof. Abel Guilhermino Tópico: Arquitetura de um microcontrolador 851 Engenharia de Sistemas Embarcados

Leia mais

Sistemas Embarcados:

Sistemas Embarcados: Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Sistemas Embarcados: Interfaces de Entradas e Saídas DCA0119 Sistemas Digitais Heitor Medeiros Florencio

Leia mais

Temporizadores e Contadores (Timer/Counter)

Temporizadores e Contadores (Timer/Counter) SEL-433 APLICAÇÕES DE MICROPROCESSADORES I O 8051 possui 2 (ou 3) T/C internos de 16 Bits programáveis e com capacidade de operação independente da CPU. Contadores crescentes (up-counter) que geram sinal

Leia mais

Microcontroladores. Rafael Silva de Lima https://sites.google.com/site/pensante91/

Microcontroladores. Rafael Silva de Lima https://sites.google.com/site/pensante91/ Microcontroladores Rafael Silva de Lima rafael_silvadelima@yahoo.com.br https://sites.google.com/site/pensante91/ CETTPS Centro de Ensino Técnico e Profissionalizante Curso Técnico em Automação/ Eletrotécnica

Leia mais

SEMINÁRIO ASSEMBLY: Arquitetura PIC

SEMINÁRIO ASSEMBLY: Arquitetura PIC UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO TECNOLÓGICO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA Curso de Ciências da Computação SEMINÁRIO ASSEMBLY: Arquitetura PIC DOUGLAS DAL POZZO DIEGO VITTI Florianópolis

Leia mais

Sistemas Microcontrolados. Período Aula 6. 1 Saulo O. D. Luiz

Sistemas Microcontrolados. Período Aula 6. 1 Saulo O. D. Luiz Sistemas Microcontrolados Período 2009.2 Aula 6 1 Saulo O. D. Luiz Roteiro Entrada e saída Portas 2 Saulo O. D. Luiz Porta Porta um registrador conectado aos pinos do microcontrolador 3 Saulo O. D. Luiz

Leia mais

Construção de Robôs Jogadores de Futebol (2ª Parte)

Construção de Robôs Jogadores de Futebol (2ª Parte) Construção de Robôs Jogadores de Futebol (2ª Parte) Wânderson de Oliveira Assis, Alessandra Dutra Coelho, Marcelo Marques Gomes, Cláudio Guércio Labate, Daniel Franklin Calasso, João Carlos Gonçalves Conde

Leia mais

Índice. Dia 05 de fevereiro de Apresentação Dia 12 de fevereiro de

Índice. Dia 05 de fevereiro de Apresentação Dia 12 de fevereiro de Índice Dia 05 de fevereiro de 2014....2 Apresentação... 2 Dia 12 de fevereiro de 2013....3 -Processador... 3 -Von Neumann... 3 -Harvard... 4 -Von Neumann x Harvard... 4 -Equipamentos que utilizam a arquitetura

Leia mais

Aula 4. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Arquitetura de um microcontrolador 8051

Aula 4. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Arquitetura de um microcontrolador 8051 Aula 4 Engenharia de Sistemas Embarcados Prof. Abel Guilhermino Tópico: Arquitetura de um microcontrolador 8051 Cenário: Sistema de Controle de LEDs Sistema Embarcado Sistema Engenharia de Sistemas Embarcados

Leia mais

Aplicações Avançadas de Microprocessadores. Professor: Marco Shawn Meireles Machado

Aplicações Avançadas de Microprocessadores. Professor: Marco Shawn Meireles Machado Aplicações Avançadas de Microprocessadores Professor: Marco Shawn Meireles Machado Iniciação aos sistemas microcontrolados Objetivos da Aula: Descrever os itens que compõem uma CPU; Detalhar a estrutura

Leia mais

Circuito Eletrônico. Entendendo o circuito eletrônico na robótica. domingo, 28 de agosto de 11

Circuito Eletrônico. Entendendo o circuito eletrônico na robótica. domingo, 28 de agosto de 11 Circuito Eletrônico Entendendo o circuito eletrônico na robótica Circuito Integrado Um circuito integrado híbrido é um circuito eletrônico miniaturizado constituído de dispositivos semicondutores individuais,

Leia mais

Faculdade de Tecnologia SENAI Pernambuco - Unidade Santo Amaro Curso de Tecnologia em Mecatrônica Industrial

Faculdade de Tecnologia SENAI Pernambuco - Unidade Santo Amaro Curso de Tecnologia em Mecatrônica Industrial Serviço Nacional de Aprendizagem Industrial Departamento Regional de Pernambuco Faculdade de Tecnologia SENAI Pernambuco - Unidade Santo Amaro Curso de Tecnologia em Mecatrônica Industrial Disciplina:

Leia mais

Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP. Memórias de Dados e de Programa

Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP. Memórias de Dados e de Programa 4. Memórias de Dados e de Programa Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP 4.1 Memórias Semicondutoras Algumas definições Célula: Dispositivo de armazenamento de 1 bit. Palavra:

Leia mais

AAAA AAAA SEL Aplicação de Microprocessadores I. Aula 5 Temporização e Interrupção. Marcelo Andrade da Costa Vieira

AAAA AAAA SEL Aplicação de Microprocessadores I. Aula 5 Temporização e Interrupção. Marcelo Andrade da Costa Vieira SEL 0629 Aplicação de Microprocessadores I Aula 5 Temporização e Interrupção Marcelo Andrade da Costa Vieira Contagem de Tempo Contando tempo Existem 3 maneiras de contarmos tempo com os microcontroladores

Leia mais

CAPÍTULO 2 MICROCONTROLADOR PIC16F84 CAPÍTULO INTRODUÇÃO CISC, RISC APLICAÇÕES

CAPÍTULO 2 MICROCONTROLADOR PIC16F84 CAPÍTULO INTRODUÇÃO CISC, RISC APLICAÇÕES MICROCONTROLADOR PIC16F84 CAPÍTULO 2... 2-1 1 - INTRODUÇÃO... 2-3 2 - CISC, RISC... 2-5 3 - APLICAÇÕES... 2-6 4 - RELÓGIO / CICLO DE INSTRUÇÃO... 2-6 5 - PIPELINING... 2-7 6 - SIGNIFICADO DOS PINOS...

Leia mais

SEL-433 Aplicação de Microprocessadores I. Prof: Adilson Gonzaga

SEL-433 Aplicação de Microprocessadores I. Prof: Adilson Gonzaga SEL-433 Aplicação de Microprocessadores I Prof: Adilson Gonzaga HISTÓRICO Microprocessador Circuito integrado ( chip ) capaz de executar instruções. 1971 Intel Corporation lançou no mercado o microprocessador

Leia mais

Interrupções e Timers

Interrupções e Timers Interrupções e timers Guilherme Luiz Moritz 1 1 DAELT - Universidade Tecnológica Federal do Paraná 4 de dezembro de 2013 Objetivos Compreender o funcionamento de um display de sete segmentos Compreender

Leia mais

Programação Daniel Corteletti Aula 3 Parte III Página 1/7

Programação Daniel Corteletti Aula 3 Parte III Página 1/7 Programação Daniel Corteletti Aula 3 Parte III Página /7 LINGUAGEM DE PROGRAMAÇÃO - ASSEMLY - PARTE I Assembly - o que é "Assembly" significa montagem. "Assembler" significa montador. Montagem é o ato

Leia mais

Acetatos de apoio às aulas teóricas

Acetatos de apoio às aulas teóricas Microprocessadores e Aplicações Acetatos de apoio às aulas teóricas Ana Cristina Lopes Dep. Engenharia Electrotécnica http://orion.ipt.pt anacris@ipt.pt Ana Cristina Lopes, 25 de Novembro de 2004 Microprocessadores

Leia mais

Objetivos MICROCONTROLADORES HARDWARE. Aula 03: Periféricos. Prof. Mauricio. MICRO I Prof. Mauricio 1. Arquitetura de um Microcontrolador

Objetivos MICROCONTROLADORES HARDWARE. Aula 03: Periféricos. Prof. Mauricio. MICRO I Prof. Mauricio 1. Arquitetura de um Microcontrolador MICROCONTROLADORES HARDWARE 1 Prof. Mauricio Aula 03: Objetivos 2 Arquitetura de um Microcontrolador Unidade Central de Processamento Portas de Entrada e Saída Porta Serial Temporizador / Contador Conversor

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 2: Interrupções Externas e Relés Alunos: Matrícula:

Leia mais

DEPARTAMENTO DE ELECTROTECNIA. João Paulo Baptista. Curso de Engenharia Electrotécnica Electrónica e Computadores

DEPARTAMENTO DE ELECTROTECNIA. João Paulo Baptista. Curso de Engenharia Electrotécnica Electrónica e Computadores DEPARTAMENTO DE ELECTROTECNIA MICROCONTROLADORES João Paulo Baptista Curso de Engenharia Electrotécnica Electrónica e Computadores Sistemas Digitais / 2001 1 MICROCONTROLADORES 1 Arquitectura Base de

Leia mais

Microcontrolador 8051:

Microcontrolador 8051: Microcontrolador 8051: Fonte: CORRADI 2009 O Microcontrolador 8051: Começou a ser produzido no início da década de 80, pela Intel; Hoje é fabricado por várias empresas e com muitas variações; Atualmente,

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 4: Motor de Passo e Display LCD Alunos: Matrícula:

Leia mais

Lista de Exercícios 1

Lista de Exercícios 1 Conceitos envolvidos: a) Contadores e Temporizadores b) Interface serial RS2322 c) Interrupções Lista de Exercícios 1 1. Fazer um contador hexadecimal que coloque o valor de contagem na porta P1 em intervalos

Leia mais

Sistemas Embarcados:

Sistemas Embarcados: Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Sistemas Embarcados: Microcontroladores DCA0119 Sistemas Digitais Heitor Medeiros Florencio Sistemas Embarcados

Leia mais

Microcontroladores. 1 Microprocessadores x Microcontroladores Microprocessadores: Microcontroladores: 2 Microcontrolador x DSP

Microcontroladores. 1 Microprocessadores x Microcontroladores Microprocessadores: Microcontroladores: 2 Microcontrolador x DSP 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

Leia mais

Microprocessadores I. Aula 6 Arquitetura do Microprocessador Pinagem e Diagrama de Temporização

Microprocessadores I. Aula 6 Arquitetura do Microprocessador Pinagem e Diagrama de Temporização Microprocessadores I Aula 6 Arquitetura do Microprocessador 8085 - Pinagem e Diagrama de Temporização 1 O 8085 contém em seu CI circuitos para executar operações de cálculos e comunicação com periféricos.

Leia mais

Projeto Instrumentação Eletrônica Conversor A/D para Tensões 3φ

Projeto Instrumentação Eletrônica Conversor A/D para Tensões 3φ UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE TECNOLOGIA DEPARTAMENTO DE ENGENHARIA ELÉTRICA Projeto Instrumentação Eletrônica Conversor A/D para Tensões 3φ Ana Carolina Salvador Ourique 200437526

Leia mais

OMPLAB é um programa para PC, que roda sobre a

OMPLAB é um programa para PC, que roda sobre a Ambiente de Programação MPLAB Roteiro N o 02 Fundação Universidade Federal de Rondônia, Núcleo de Ciência e Tecnologia, Departamento de Engenharia - DEE Curso de Bacharelado em Engenharia Elétrica - Disciplina

Leia mais

C:\seminario\guiao_aluno\trab6\trab6.asm

C:\seminario\guiao_aluno\trab6\trab6.asm Trabalho nº 6 Semáforo Rodoviário (automóveis & peões) ******************************************************************** NomeFicheiro: trab6.asm * Data: 3/Junho/2005 * Versão: 1.0 * Autores: José Miguel

Leia mais

Sistemas Microcontrolados

Sistemas Microcontrolados Ciência da Computação Sistemas Microcontrolados Função dos Registradores no PIC Prof. Sergio F. Ribeiro Os Registradores Especiais que Controlam Tudo Vimos que configurações podem ser feitas para definir

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 3: Temporizadores e Display LCD Alunos: Matrícula:

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 2: Interrupções Externas e Relés Alunos: Matrícula:

Leia mais

Família 8051 (introdução) 2011/1

Família 8051 (introdução) 2011/1 Família 8051 (introdução) 2011/1 Refresh Microprocessador vs. microcontrolador. Periféricos built-in. Single-chip computer 2 Objetivos Histórico Modelos da família original Principais características Diagrama

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 3: Temporizadores e Display LCD Alunos: Matrícula:

Leia mais

Microprocessadores. Cap. 4 Assembly

Microprocessadores. Cap. 4 Assembly Microprocessadores Cap. 4 Assembly Parte 1: Entendendo o hardware do 18F4550 e precursores 2 Apresentando o hardware do 18F4550 x 16F877A 3 O 16F877A: 4 O 18F4550: 5 Divisão clock interno: 6 Osciladores

Leia mais

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUCAO POSSÍVEL

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUCAO POSSÍVEL MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUCAO POSSÍVEL Aluno: Matrícula: 1. Escreva as instruções necessárias para atender a cada uma das configurações solicitadas. Valor: 2,0 (a) Interrupção

Leia mais

UTFPR Departamento Acadêmico de Eletrônica Curso Técnico em Eletrônica Microcontroladores 1 - Prof. Cion nov/2010 (atualizado em jul 2015)

UTFPR Departamento Acadêmico de Eletrônica Curso Técnico em Eletrônica Microcontroladores 1 - Prof. Cion nov/2010 (atualizado em jul 2015) UTFPR Departamento Acadêmico de Eletrônica Curso Técnico em Eletrônica Microcontroladores 1 - Prof. Cion nov/2010 (atualizado em jul 2015) Interrupção e Contadores/Temporizadores Este texto apresenta uma

Leia mais