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

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

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

Transcrição

1 MICROCONTROLADORES - PIC 16F84/16F84A/16F628/16F628A Apresentação: Eng. Antonio Carlos Lemos Júnior acjunior@facthus.edu.br FACTHUS Uberaba 02/2008

2 Qual a diferença entre Microcontrolador e Microprocessador? Microcontrolador: É um componente eletrônico, dotado de uma inteligência programável internamente, utilizado no controle de processos lógicos. Possui internamente recursos como memória de programa (ROM/EEPROM), memória de dados (RAM), comunicação serial (USART) e temporizadores (TIMER S). Tudo isto em uma única pastilha. Microprocessador: É um componente eletrônico, dotado de uma inteligência não programável internamente. Depende de hardware externo tais como: memória RAM, ROM, EEPROM, USART. 2

3 Diagrama de Blocos do Microcontrolador e Microprocessador a) Microcontrolador b) Microprocessador 3

4 Para que servem os Microcontroladores? São utilizados em controle de processos controlando periféricos tais como: led s, botões, display de sete segmentos, display de cristal liquido (LCD), resistências, relês, sensores diversos (pressão, temperatura, etc.) 4

5 Arquitetura HARVARD e Filosofia RISC Os microcontroladores PIC apresentam arquitetura interna tipo HARVARD enquanto que grande parte dos outros microcontroladores apresentam arquitetura do tipo VONNEUMANN. Na arquitetura tipo VON-NEUMANN existe apenas um barramento(bus 8 Bits) tanto para dados quanto para instruções. Na arquitetura HARVARD existem dois barramentos internos. Um para dados (BUS 8 Bits) e outro para instruções (BUS 12, 14 ou 16 Bits) Devido o barramento de instrução ser maior do que 8 Bits este inclui o dado e o local onde ele vai atuar. Desta maneira sobrando apenas em média 35 instruções (RISC). 5

6 Estrutura interna PIC-16F84/F84A 6

7 Estrutura interna PIC-16F628/F628A 7

8 Ciclos de Máquina O clock interno de um microcontrolador é divido por quatro. Portanto um clock externo de 4 Mhz será de 1 Mhz internamente e por isso cada ciclo de máquina dura 1 μs. Portanto teremos quatro fases Q1, Q2, Q3 e Q4. No primeiro ciclo ocorre automaticamente o incremento do contador de programa. No quarto ciclo ocorre a busca na memória da próxima instrução sendo armazenada no registrador de instruções. A execução da instrução ocorre nos ciclos de Q1 até Q4. 8

9 Introdução ás Memórias A memória de programa dos PICs 16F84/F84A/F628/F628A são do tipo Flash. Este tipo de memória permite que o microcontrolador seja regravado. Vetor de RESET Primeiro endereço de memória que será executado quando o PIC começar a rodar (Após alimentação ou RESET). O endereço é na forma hexadecimal 0x00. Vetor de INTERRUPÇÃO As rotinas de interrupção são armazenadas juntamente com o resto do programa. No entanto existe um endereço para tratamento destas. O endereço é na forma hexadecimal 0x04. 9

10 Introdução ás Memórias Pilha (Stack) Local totalmente separado da memória de programação, em que serão armazenados os endereços de retorno quando utilizarmos instruções de chamadas de rotinas. O tamanho da pilha varia de acordo com o modelo de PIC e isto irá determinar a quantidade de rotinas que poderão ser chamadas ao mesmo tempo. 10

11 Introdução ás Memórias Memória de Dados Memória RAM utilizada para guardar todas as variáveis e registradores utilizados nos programas. Armazena dados de 8 bits e é volátil, ou seja, quando o PIC é desligado os dados contidos nesta memória serão perdidos. São agrupadas em bancos de memórias: BANK0, BANK1... Ainda podemos dividí-las em dois grupos: Registradores especiais e Registradores de uso geral. 11

12 Introdução ás Memórias Registradores Especiais Os registradores especiais (SFR s) são utilizados pelo processador para execução do programa e processamento na Unidade Lógica Aritmética (ULA). Ocupam espaço na RAM e podem ser acessados como se fossem variáveis. Podem ser lidos ou escritos tanto pelo usuário quanto pelo HARDWARE. Registradores de Uso Geral Área destinada ao armazenamento de variáveis criadas pelo usuário. 12

13 Introdução ás Memórias EEPROM Encontrada em alguns modelos de PIC está memória ao contrário da memória RAM não perde a informação mesmo que o PIC seja desligado. Este tipo de memória é ideal para armazenar senhas ou qualquer outro tipo de dado que deva ser utilizado no momento em que o PIC seja ligado. Nos modelos de PIC que não possuam memória EEPROM interna podese acrescentar uma memória EEPROM externa. 13

14 Introdução ás Interrupções O que são e como funcionam? São ações tratadas imediatamente pelo hardware. Desta maneira tornandoas muito rápidas. Servem para interromper imediatamente o programa e atendê-lo em outras tarefas que sejam de importâncias imediata. Após o tratamento da interrupção o programa voltará ao ponto onde estava quando a interrupção ocorreu. Interrupções existentes no PIC As interrupções do PIC são: estouro de tempo, externa, mudança de estado, fim da escrita na EEPROM, USART etc... 14

15 Introdução ás Interrupções Interrupção por estouro de tempo Normalmente utilizada para contagem de tempo. Toda vez que o contador passar da contagem 255 (8 bits TIMER0) ocorrerá esta interrupção e o contador será zerado e iniciado nova contagem. Interrupção externa Esta interrupção é gerada por um sinal externo ligado ao pino RB0. Pode ser utilizada para realizar sincronismo entre periféricos, comunicação entre micros, reconhecimento de botão ou outro sinal sistema. Interrupção por mudança de estado Esta interrupção está relacionada diretamente às portas RB4, RB5, RB6 e RB7. Este tipo de interrupção pode ser utilizado para sincronizar o PIC com a rede elétrica. 15

16 Introdução ás Interrupções Interrupção por fim de escrita na EEPROM Serve para informar quando a escrita na memória EEPROM já terminou. Isto deve-se ao fato de que a memória EEPROM é lenta para ser escrita desta maneira utilizamos esta interrupção para não termos que ficar aguardando a escrita da EEPROM. Interrupção por USART Utilizado para informar quando os dados estão prontos para enviar e quando os dados chegaram ao PIC. Também conhecida como comunicação serial. 16

17 O PIC 16F84/F84A Microcontrolador de 18 pinos 13 portas configuráveis como entrada ou saída 4 interrupções (TMR0, Externa, Mudança de estado e EEPROM) 1 Temporizador (8 Bits) Memória tipo FLASH Memória tipo EEPROM Via de programação com 14 bits Apenas 35 instruções 17

18 O PIC 16F628/F628A Microcontrolador de 18 pinos 16 portas configuráveis como entrada ou saída 10 Interrupções (TMR0, TMR1, TMR2, Externa, Mudança de estado, EEPROM, USART Transmissão e Recepção, Comparador, e Captura) 3 Temporizador (TMR0 de 8 Bits, TMR1 de 16 Bits, TMR2 de 8 Bits) 2 comparadores analógicos Memória tipo FLASH Memória tipo EEPROM Via de programação com 14 bits Apenas 35 instruções USART Transmissão serial 18

19 Nomenclaturas Utilizadas 2 Conjuntos de portas: PORTA: RA0, RA1, RA2, RA3, RA4 p/ 16F84/84A mais RA5, RA6 e RA7 p/ 16F628/628A. PORTB: RB0, RB1, RB2, RB3, RB4, RB5, RB6 e RB7 O pino RA4 pode ser utilizado para incrementar o TMR0 O pino RB0 pode ser utilizado para gerar uma interrupção externa Os pinos RB4, RB5, RB6 e RB7 são utilizados para gerar interrupções de mudança de estado. Os pinos VDD (+5V) e VSS (GND) são os pinos de alimentação. O oscilador externo deve ser ligado em OSC1 e OSC2 O pino /MCLR dever ser deixado em nível alto para que o PIC possa prosseguir o seu funcionamento. 19

20 Memória de Programa a) PIC16F84/F84A b) PIC16F628/F628A 20

21 Memória de Dados 16F84/F84A 21

22 Memória de Dados 16F628/F628A 22

23 Registradores 16F84/F84A 23

24 Registradores 16F628/F628A 24

25 Registradores 16F628/F628A 25

26 Registradores 16F628/F628A 26

27 Registradores 16F628/F628A 27

28 Conhecendo os Registradores Registrador STATUS Este registrador serve para mostrar o estado da ULA. IRP: Seletor de banco de memória para endereçamento indireto: 0 = Banco 0 e 1 (00 h FF h) 1 = Banco 2 e 3 (100 h 1FF h) Nos PIC s 16F84/F84A é mantido sempre em zero. RP1 e RP0: Seletor de banco de memória usado para endereçamento direto: 00 = Banco 0 (00 h 7F h) 01 = Banco 1 (80 h FF h) 10 = Banco 2 (100 h 17F h) 11 = Banco 3 (180 h 1FF h) 28

29 Conhecendo os Registradores Registrador STATUS Este registrador serve para mostrar o estado da ULA. /TO: Indicação de Time-Out 0 = Indica que ocorreu um estouro de Watch Dog (WDT) 1 = Indica que ocorreu um power-up ou foram executadas as intruções CLRWDT ou SLEEP /PD: Indicação de Power-Down 0 = Indica que a instrução SLEEP foi executada. 1 = Indica que ocorreu um power-up ou foi executada a instrução CLRWDT Z: Indicação de Zero 0 = Indicando que o resultado da última operação (lógica ou aritmética) não foi zero 1 = Indica que a última operação (lógica ou aritmética) resultou em zero. 29

30 Conhecendo os Registradores Registrador STATUS Este registrador serve para mostrar o estado da ULA. DC: Digit Carry/Borrow 0 = A última operação da ULA não ocasionou um estou de digito. 1 = A última operação da ULA ocasionou um estouro (carry) entre o bit 3 e 4, isto é o resultado ultrapassou os 4 bits menos significativos. Utilizando quando se trabalha com números de 4 bits. C: Carry/Borrow 0 = A última operação da ULA não ocasionou um estouro (carry). 1 = A última operação da ULA ocasionou um estouro (carry) no bit mais significativo, isto é, o resultado ultrapassou os 8 bits disponíveis. 30

31 Conhecendo os Registradores Registrador OPTION Acessado como OPTION_REG Este registrador serve para configuração opções de funcionamento do microcontrolador /RBPU: Habilitação dos pull-ups internos do PORTB 0 = Pull-ups habilitados para todos os pinos do PORTB configurados para entrada. 1 = Pull-ups desabilitados. INTEDG: Configuração da borda que gerará a interrupção externa no RB0 0 = A interrupção ocorrerá na borda de descida. 1 = A interrupção ocorrerá na borda de subida. T0CS: Configuração do incremento para o TMR0 0 = TMR0 será incrementado internamente pelo clock da máquina. 1 = TMR0 será incrementado externamente pela mudança no pino RA4/T0CKI. 31

32 Conhecendo os Registradores Registrador OPTION Acessado como OPTION_REG Este registrador serve para configuração opções de funcionamento do microcontrolador T0SE: Configuração da borda que incrementará o TMR0 no pino RA4/T0CKI, quando T0CS = 1 0 = O incremento ocorrerá na borda de subida. 1 = O incremento ocorrerá na borda de descida. PSA: Configuração de aplicação do prescaler: 0 = O prescaler será aplicado ao TMR0. 1 = O prescaler será aplicado ao WDT. 32

33 Conhecendo os Registradores Registrador OPTION Acessado como OPTION_REG Este registrador serve para configuração opções de funcionamento do microcontrolador PS2, PS1 e PS0 Configuração de valor de prescaler: Bits 2, 1, TMR0 1:2 1:4 1:8 1:16 1:32 1:64 1:128 1:256 WDT 1:1 1:2 1:4 1:8 1:16 1:32 1:64 1:128 33

34 Conhecendo os Registradores Registrador INTCON Este registrador serve para configurar e identificar as interrupções. GIE: Habilitação geral das interrupções (Chave Geral) 0 = Nenhuma interrupção será tratada. 1 = As interrupções habilitadas serão tratadas individualmente. EEIE: Habilitação da interrupção de final de escrita na EEPROM 0 = A interrupção não será tratada. 1 = A interrupção será tratada. T0IE: Habilitação da interrupção de estouro do TMR0 0 = A interrupção não será tratada. 1 = A interrupção será tratada. INTE: Habilitação da interrupção externa no pino RB0 0 = A interrupção não será tratada 1 = A interrupção será tratada 34

35 Conhecendo os Registradores Registrador INTCON Este registrador serve para configurar e identificar as interrupções. RBIE: Habilitação da interrupção por mudança de estado nos pinos RB4 a RB7 0 = A interrupção não será tratada. 1 = A interrupção será tratada. T0IF: Identificação da interrupção de estouro do TMR0 0 = Esta interrupção não ocorreu. 1 = Esta interrupção ocorreu. INTF: Identificação da interrupção externa no pino RB0 0 = Esta interrupção não ocorreu. 1 = Esta interrupção ocorreu. RBIF: Identificação da interrupção por mudança de estado nos pinos RB4 a RB7 0 = Esta interrupção não ocorreu. 1 = Esta interrupção ocorreu. 35

36 Conhecendo os Registradores Registrador TRISA e TRISB Estes registradores servem para configurar o PORTA e o PORTB como entrada ou saída PIC16F84/F84A PIC16F628/F628A Quando os bits estiverem setados com o valor 1 o pino da porta comportará como uma entrada (1 INPUT) e quando estiver setado o valor 0 o pino da porta comportará como saída (0 - OUTPUT) 36

37 Conhecendo os Registradores Registrador PORTA e PORTB Estes registradores servem para acessar as portas A e B PIC16F84/F84A PIC16F628/F628A Os pic s 16F84/F84A possuem a porta A e B. Na porta A somente 5 pinos estão disponíveis. Na porta B estão disponíveis os 8 pinos. Os pic s 16F628/F628A possuem a porta A e B. Na porta A estão disponíveis os 8 pinos assim como na porta B estão disponíveis os 8 pinos. 37

38 Conhecendo os Registradores Registrador TMR0, TMR1 e TMR2 Estes registradores servem para fazer contagem PIC16F84/F84A PIC16F628/F628A Os pic s 16F84/84A possuem somente 1 contador. Este contador é de 8 bits, ou seja, pode contar até 255. Este contador pode ser incrementado automaticamente ou a partir da mudança no pino RA4. Os pic s 16F628/F628A possuem três contadores: TMR0, TMR1, TMR2. Os contadores são de: 8, 16 e 8 bits respectivamente. O contador TMR1 pode contar até

39 Conhecendo os Registradores Registrador WDT Watchdog Timer Este registrador serve para ressetar o PIC caso este trave. O pic possui um RC interno somente para a operação do WDT. Seu tempo de incremento é automático e constante. O seu tempo padrão de estouro é de 18 ms O programador só pode zerá-lo utilizando o comando CLRWDT. Caso o WDT não for zerado e este estourar o PIC será resetado. Pode ser desligado, porém não pode ser ligado em tempo de execução 39

40 Conhecendo os Registradores PRESCALER É um divisor configurável que aplica-se tanto no WDT ou no TMR0. É configurado através do registrador OPTION através dos bits PS2, PS1 e PS0 O bit PSA do registrador OPTION é utilizado para indicar em quem será aplicado o divisor: WDT ou TMR0 Um exemplo prático: Caso utilizemos um clock externo de 4 Mhz internamente o clock é de 1 Mhz e terá instruções sendo rodadas a cada 1 μs. Desta forma se aplicarmos um divisor 1:4 o TMR0 será incrementado a cada 4 ciclos de máquina desta forma o seu estouro deixa de ocorrer em 256 μs e passa a ocorrer a cada 1024 μs. A mesma análise pode ser aplicada ao WDT. Caso seja aplicada um divisor de 1:4 ele deixa de estourar em 18 ms e passa a estourar em 72 ms O prescaler deve ser aplicado ao WDT para que o TMR0 utilize o divisor em 1:1 40

41 Conhecendo os Registradores EEPROM - EEADR Registrador onde será especificado o endereço fazer a leitura ou escrita na EEPROM. EEPROM - EEDATA Este registrador possui duas funções: Na operação de escrita ele guarda o dado a ser gravado na EEPROM. Na operação de leitura ele guarda o dado lido da EEPROM. Para os PICs 16F628/F628A estes registradores são acessados pelos endereços: EEADR = 9B h e o EEDATA = 9A h. 41

42 Conhecendo os Registradores EECONS EECON1 e EECON2 São os registradores utilizados para configurar a EEPROM EECON1 Este registrador é responsável pela leitura e escrita na EEPROM Para os PICs 16F628/F628A este registrador é acessado pelo endereço: EEADR = 9B h e o EEDATA = 9C h. O bit EEIF é acessado no registrador PIE1 para verificar o fim de escrita na EEPROM. EEIF: Identificação de final da escrita na EEPROM 0 = Esta interrupção não ocorreu 1 = Esta interrupção ocorreu 42

43 Conhecendo os Registradores WRERR: Identificação de erro durante a escrita na EEPROM 0 = Não ocorreu erro, a escrita ocorreu sem problemas 1 = Um erro ocorreu por uma escrita não terminada. WREM: Habilitação de escrita na EEPROM (Bit de segurança) 0 = Não disponibilizar escrita na EEPROM 1 = Disponibilizar escrita na EEPROM WR: Ciclo de escrita na EEPROM 0 = Este bit só pode ser zerado pelo hardware, quando o ciclo de escrita termina. 1 = Inicia o ciclo de escrita. RD: Ciclo de escrita da EEPROM: 0 = Este bit só pode ser zerado pelo hardware, quando o ciclo de leitura termina. 1 = Inicia ciclo de leitura. 43

44 Resumo das Condições Após Reset 44

45 Conhecendo o Set de Instruções Work: Registrador temporário para operações da ULA. Conhecido no Assembler do PIC como W. File: Referência a um registrador. Será adotado a letra F para sua representação. Literal: Um número qualquer que pode ser escrito na forma decimal, binário ou hexadecimal. Utiliza-se a letra L para representação de instruções e a letra k para seus argumentos. Destino: Local onde deve ser armazenado o resultado da operação. São possíveis dois locais para serem guardados os resultados: O próprio registrador passado como argumento ou no registrado W. Bit: Refere-se a um bit específico de um Byte. Utiliza-se a letra B para sua representação nos nomes de instruções e a letra b para seus argumentos. Skip: Significa pulo, é utilizado para criar desvios pulando a próxima linha. 45

46 Conhecendo o Set de Instruções Set: Refere-se ao ato de setar um bit, ou seja, torná-lo igual a 1 (um). Clear: Refere-se ao ato de ressetar um bit, ou seja, torná-lo igual a 0 (zero). Zero: Algumas instruções podem gerar desvio caso o resultado da operação seja igual a zero. ADD: Soma AND: Lógica E CLR: Limpar, zerar(clear) COM: Complemento DEC: Decremento de uma unidade. INC: Incremento de uma unidade. IOR: Lógica OU. MOV: Mover, transferir para algum lugar. RL: Rotacionar 1 bit para a esquerda. RR: Rotacionar 1 bit para a direita. 46

47 Conhecendo o Set de Instruções SUB: Subtração. SWAP: Inversão entre as partes alta e baixa de um registrador. XOR: Lógica Ou exclusivo. Construção dos nomes das Instruções: Os nomes das instruções são feitas fazendo a junção dos termos vistos anteriormente. Por exemplo: Realizar a função de decrementar um registrador F. Decrementar (DEC) um registrador(f) = DECF A partir do nome de uma instrução saber o que será feito: DECFSZ = Decrementa (DEC) um registrador (F) pula (S) se o resultado for zero (Z). 47

48 Resumo das Instruções 48

49 Considerações do Hardware Alimentação: O pic deve ser alimentado com uma fonte bem estabilizada, ou seja, que não tenha tantos ruídos e nem ripples. O GND deve ser ligado ao pino 5 enquanto que o o VCC deve ser ligado ao pino 14. A tensão nominal do PIC é de 5 VCC. Recomenda-se a ligação de um capacitor cerâmico de desacoplamento entre os estes pinos no valor de 100 pf a 100 nf. Osciladores externos: Basicamente existem quatro tipos de osciladores: RC, RESSOADOR, CRISTAL e Híbrido ou Circuitos de Oscilação. 49

50 Considerações do Hardware RC: Este tipo de oscilador é o mais simples e portanto o menos preciso, variando muito com a tolerância dos componentes e a temperatura. Neste caso somente será utilizado o pic OSC1. Se verificarmos o pino OSC2 terá freqüência quatro vezes menor que OSC1. 50

51 Considerações do Hardware RESSOADOR: O ressoador cerâmico é outra opção. É bem mais estável que o RC porém não é tão barato quanto o anterior. Existe dois tipos de ressoadores, com 3 e 2 pinos, que devem ser montados conforme o esquema: 51

52 Considerações do Hardware CRISTAIS: Os cristais são os osciladores mais precisos porém os mais caros. Deve ser utilizado sempre que a precisão do sistema for requerida. 52

53 Considerações do Hardware HÍBRIDO OU CIRCUITOS DE OSCILAÇÃO: Podem ser utilizados cristais híbridos ou circuitos próprios para oscilação os quais devem ser ligados diretamente ao pino OSC1, como no esquema mostrado para o RC. POWER-ON RESET (POR) BÁSICO: Além da alimentação e do oscilador, o PIC precisa de um POR. O sistema básico para isto é a ligação do VCC diretamente ao pino 4 (/MCLR). 53

54 Programando o PIC Antes de começar a programar o PIC devemos ter em mente a organização do programa. Isto facilitará futuras revisões ou alterações no mesmo. A utilização de comentário é outro ponto forte na ajuda de possíveis reestruturações. Deve ser feita ao mesmo tempo em que for sendo feita a programação Os comentários são feitos utilizando um ; antes das frases que serão comentadas. Caso necessite de dar espaços entre código e variáveis utilize tabulação (TAB). Ex.: ; Isto é um comentário MOVLW B' ' ; Move o número binário para o ; acumulador 54

55 Programando o PIC As constantes e definições são declararadas da seguinte maneira: nome_da_variável EQU endereço_de_memória EQU valor_da_constante ou nome_da_constate Para informarmos um número para o assembler do PIC usamos as seguintes nomenclaturas: Decimal: Hexadecimal: Binário: ASCII: D'número' ou H'número' ou B'número' A'caracter'.número 0Xnúmero 55

56 Programando o PIC Alguns exemplos de declaração: STATUS FSR PORTA PORTB EQU EQU EQU EQU H'0003' H'0004' H'0005' H'0006' Além do EQU existe a diretriz #DEFINE que é muito mais poderosa pois ela é utilizada para substituir uma expressão inteira. EX.: #DEFINE LED PORTB,1 56

57 Estruturação do Programa ; Programa...: ACILED ; Programador.: Eng. Antonio Carlos Lemos Júnior ; Versão...: 1.0 ; Objetivo...: O programa em questão deverá acionar um LED toda vez que o pino RB1 estiver em alto. ; Arquivos e definições #INCLUDE <P16F84.INC> ; Página de memória ; Definição de comandos de usuário para alterar página de memória #DEFINE BANK0 BCF STATUS,RP0 ; Seta banco zero de memória #DEFINE BANK1 BSF STATUS,RP0 ; Seta banco um de memória ; Definição de variáveis CBLOCK 0X0C ; Endereço inicial da memória de usuário W_TEMP ; Registradores temporários para usar junto às interrupções STATUS_TEMP FLAG ; Novas variáveis ENDC ; Definição de flags internos, constantes #DEFINE ESTOURO_TEMPO FLAG,0 TEMPO_LED EQU.30 57

58 Estruturação do Programa ; Definição das entradas #DEFINE ACENDE_APAGA_LED PORTB,0 ; 0 => O LED não será acesso ; 1=> O LED será acesso ; Definição das saídas #DEFINE LED PORTB,1 ; 0 => O LED ficará apagado ; 1 => O LED ficará acesso ; Vetor de RESET ORG 0X00 CONFIGURACAO ; Endereço inicial de processamento ; Inicio das interrupções O primeiro procedimento é salvar o acumulador W e o registrador STATUS. ORG 0X04 W_TEMP SWAPF STATUS, W STATUS_TEMP ; Comando de verificação de qual interrupção foi acionada ; Saída das interrupções Os valores de W e STATUS devem ser recuperados. SAI_INTERRUPCAO SWAPF STATUS_TEMP,W STATUS SWAPF W_TEMP, F 58

59 Estruturação do Programa SWAPF RETIFIE W_TEMP,W ; Início das rotinas e sub-rotinas SUB-ROTINA1 ; CORPO DA ROTINA RETURN ; Início da configuração CONFIGURACAO BANK1 MOVLW B' ' TRISA MOVLW B' ' TRISB MOVLW ' ' OPTION_REG MOVLW ' ' INTCON BANK0 ; Altera para banco 1 de memória ; Define as entradas e saídas da porta A ; Define as entradas e saídas da porta B ; Define as opções de operação ; Define as opções de interrupção ; Retorna ao banco principal de memória ; Inicialização das variáveis 59

60 Estruturação do Programa ; Rotina Principal INICIO ; Corpo da rotina principal INICIO ; Fim do Programa END Diretriz ORG Utilizada para indicar a posição da memória de início do programa e de início do tratamento de interrupção. Diretriz END Utilizada para indicar o final do programa Diretriz CBLOCK e ENDC Utilizada para reservar espaço para as variáveis de forma seqüencial no mapa de memória. O endereço inicial para os PICs 16F84/84A/628/628A são 0x0C 60

61 Trabalhando com Memória Conhecendo os Bancos de Memória (BANK0 e BANK1): Para trabalharmos com os bancos de memória devemos setar ou ressetar os bits RP0 e RP1 do registrador STATUS. Lembrando que para o PIC 16F84 só é necessário alterar o bit RP0. Ex.: #DEFINE #DEFINE BANK0 BANK1 BCF BSF STATUS, RP0 STATUS, RP0 Lidando com Dados: Basicamente os comandos utilizados no PIC para manipulação de dados são os seguintes: MOVLW MOVF k Move um literal para o registrador W (Acumulador) f Move o valor de work (W) para um registrador (F) f,d Move o valor de um registro (F) para um local de destino (F ou W) Para guardarmos um número em uma posição de memória primeiramente movemos para o registrador W e depois para a posição de memória desejada. 61

62 Trabalhando com Memória Existem também os comandos CLRF CLRW que são usados da seguinte maneira: CLRF CLRW f Limpa o registrador Limpa o acumulador, mais afeta o registrador STATUS Pode-se limpar o acumulador sem afetar o registrador STATUS a maneira para se fazer isso é: MOVLW 0x00 Limpa o acumulador sem afetar o STATUS. 62

63 Vetor de Reset Toda vez que o PIC é iniciado ou resetado este é o endereço inicial de programa. Este endereço é 0x00. Este endereço pode mudar em dispositivos mais antigos. A diretriz que identifica o vetor de reset é a seguinte: ORG 0x00 INICIO INICIO BANK1 MOVLW B' ' TRISB MOVLW B' ' TRISA BANK0 63

64 Inicializando Variáveis É muito importante que as variáveis sejam inicializadas, mesmo que o seu valor seja igualado a zero(0). ; ;- Inicialização das variáveis ; CLRF PORTA CLRF PORTB MOVLW.10 CONTADOR 64

65 Trabalhando com Rotinas No PIC existem dois tipos de rotinas: rotinas de desvios e rotinas de chamadas. As rotinas de desvio são feitas utilizando o comando juntamente com um label que identificará para onde o programa deverá ser desviado. As rotinas de chamadas são acessadas através do comando CALL. Ao charmar este comando o endereço do programa PC+1 é guardado na pilha STACK, para que o sistema possa retornar a ele mais tarde utilizando o comando RETURN. 65

66 Trabalhando com Rotinas Rotinas de Desvio As rotinas de desvio são utilizadas para realizar desvios dentro do programa. A sintaxe do comando segui abaixo: nome ; onde nome é o identificador do local onde se deseja pular O identificador deve estar na primeira coluna do programa como segue abaixo: INICIO MOVLW.20 TRISB MODIFICA MOVLW.10 TRISA INICIO 66

67 Trabalhando com Rotinas Rotinas de Desvio Além disto existe a possibilidade de pularmos algumas linha utilizando o comando. A sintaxe do comando segue abaixo: $+3 $-2 ;Pula três linha para baixo ;Pula duas linhas para cima OBS.: Não utilizar o comando para pulos muito grandes. Rotinas de Chamada As rotinas de chamadas são simplesmente funções que devem ser executadas várias vezes dentro do programa. Desta maneira quando criamos uma função iremos economizar espaço em memória, pois guardamos apenas uma vez aquela rotina. 67

68 Trabalhando com Rotinas Rotinas de chamada A sintaxe do comando segue abaixo: CALL funcao ;onde nome é a identificação da rotina Quando chamamos uma função o endereço de programa posterior a linha onde a função foi chamada é guardada na pilha STACK. Devemos ficar atentos a quantidade de endereços, no STACK é de apenas 8 para os PIC's 16F84/84A, 16F628/628A. Portanto esta função deve ser utilizada com o devido cuidado. As sintaxes de retorno são: RETURN ;finaliza a rotina voltando ao último endereço da pilha. RETLW k ;finaliza a rotina voltando ao último endereço da pilha com o ;valor k (literal) em W. 68

69 Tomando Decisões e Fazendo Desvios A filosofia RISC tem a vantagem de ter poucas instruções a serem guardadas no entanto esta vantagem torna-se uma desvantagem principalmente quando é necessária algum comando que não esteja no set de instruções do ASSEMBLER do PIC. Desta maneira torna-se necessária a elaboração de alguns comandos utilizando os comandos básicos. Testando BITS e FLAGS (BTFSC e BTFSS) Os comandos utilizados para testar bits de portas ou de flags são: BTFSS e BTFSC. A sintaxe do comando segue abaixo: BTFSC f,b Linha1 Linha2 ;em que f é o registrador e b o bit a ser testado ;passa por esta linha se o bit testado for 1 ;pula para esta linha se o bit testado for 0 BTFSS f,b Linha1 Linha2 ;em que f é o registrador e b o bit a ser testado ;passa por esta linha se o bit testado for 0 ;pula para esta linha se o bit testado for 1 69

70 Tomando Decisões e Fazendo Desvios Além das portas, registrador, flags pode-se utilizar a diretiva DEFINE para substituir diretamente um bit, como segue abaixo: #DEFINE BOTAO BTFSS BOTAO BT_LIB BT_PRES PORTA,0 ;Define o botão no pino RA0 ;0-> Liberado ;1->Pressionado ;O botão está pressionado ;Não, vai tratar botão liberado ;Sim, vai trata botão pressionado Mudando BITS e FLAGS (BSF e BCF) As instruções BSF e BCF são utilizadas para alterar o valor de um bit. A sintaxe de comando segue abaixo: BSF BCF f,b ;em que f é o registrador e b é o bit que será setado f,b ;em que f é o registrador e b é o bit que será ressetado 70

71 Trabalhando com as Portas É através das portas que iremos ser informados ou iremos informar as condições de trabalho do microcontrolador. Desta maneira a leitura e a escrita nas portas torna-se fundamental. Lendo uma Porta Caso tenhamos ligado um barramento de dados paralelo a porta B do microcontrolador e queiramos fazer a leitura completa dos dados que chegam a esta porta devemos proceder da seguinte maneira: MOVF PORTB,W DADOS ;Move o conteúdo do portb para o acumulador ;Escreve o valor do acumulador para o registrador ;DADOS 71

72 Trabalhando com as Portas Escrevendo em uma Porta Da mesma forma que a leitura a escrita é um processo fundamental no trabalho com o PIC. É através da escrita que podemos comunicar com o mundo exterior. A escrita é feita utilizando a seguinte sintaxe: BANK1 BSF BANK0 ;Muda para banco 1 TRISB,0 ;Transforma RB0 em entrada ;Retorna para banco 0 ;Outros comandos BSF BANK1 BCF BANK0 PORTB,0 ;Escreve 1 no Latch do RB0 (Que ainda é entrada) ;Muda para banco 1 TRISB,0 ;Transforma RB0 em saída. Neste momento o pino ;será inicializado em 1 devido ao Latch ;retorna para banco 0 72

73 Trabalhando com as Portas Escrevendo em uma Porta Devido a esta estrutura interna não é recomendado a escrita e posteriormente a leitura em instruções seguintes. Desta maneira utiliza-se a instrução NOP. A instrução NOP desperdiça um ciclo de máquina sem fazer nada. A sintaxe utilizando o NOP fica da seguinte maneira: MOVLW NOP MOVF.10 PORTB PORTB,W DADO ;Escreve 10 em W ;Transfere o valor de W (10) para o PORTB ;Perde um ciclo de máquina sem fazer nada ;Lê o valor do PORTB e coloca em W ;Transfere o valor de W (PORTB) para DADO 73

74 PRIMEIRO PROGRAMA BOTÃO E LED O hardware proposta acima deve funcionar da seguinte maneira: O led será usado para representar o estado do botão, isto é, aceso para botão pressionado e apagado para o botão liberado. 74

75 PRIMEIRO PROGRAMA BOTÃO E LED - FLUXOGRAMA 75

76 PRIMEIRO PROGRAMA BOTÃO E LED ;Programa...: Aciona_LED ;Objetivo...: O software em questão será utilizado para demonstrar se um botão está ou não pressionado. #INCLUDE <P16F84.INC> #DEFINE #DEFINE BANK0 BANK1 BCF STATUS,RP0 BSF STATUS,RP0 CBLOCK 0X0C W_TEMP STATUS_TEMP ENDC #DEFINE #DEFINE BOTAO LED ORG ORG RETFIE INICIO BANK1 MOVLW MOVLW PORTA,2 PORTB,0 0X00 INICIO 0X04 B' ' TRISA B' ' TRISB 76

77 PRIMEIRO PROGRAMA BOTÃO E LED MOVLW MOVLW B' ' OPTION_REG B' ' INTCON BANK0 CLRF CLRF PORTA PORTB MAIN BTFSS BOTAO_LIB BCF BOTAO_PRES BSF END BOTAO BOTAO_LIB BOTAO_PRES LED MAIN LED MAIN 77

78 FAZENDO OPERAÇÕES ARITMÉTICAS BÁSICAS Todos os programas implementados microcontroladores necessitam de algum tipo de conta para que sua lógica funcione adequadamente. O PIC 16F84/84A/628/628A não tem instruções com pontos fortes em matemática. No entanto veremos que ele possui os recursos necessários para que possamos implementar nossas próprias funções para cálculo bem mais avançados. SOMANDO (INCF, INCFSZ, ADDWF e ADDLW) O PIC possui dois grupos de instruções para operação de adição sendo um usado para adições unitárias e o outro para adições diversas. Dentro desses grupos, possuímos as instruções que seguem abaixo: INCF INCFZ ADDWF ADDLW f,d ; em que f é o registrador e d o destino onde será guardado o resultado ; da conta (f + 1 -> d). f,d ; em que f é o registrador e d o destino onde será guardado o resultado ; da conta (f + 1 -> d). f,d ; em que f é o registrador e d o destino onde será guardado o resultado ; da conta (f + k -> d). k ; em que k é o número que será somado ao W o resultado é mantido ; em W (W + k -> W). 78

79 FAZENDO OPERAÇÕES ARITMÉTICAS BÁSICAS Exemplo da utilização das instruções: INCF CLRF LOOP CALL INCF BTFSS CONTA ; zera o contador BIP ; chama a rotina BIP que emitirá um SOM CONTA,F ; incrementa o contador (CONTA = CONTA + 1) CONTA,3 ; testa o BIT número 3 do contador. Quando este BIT for ; igual a 1, significa que contador = 8. LOOP ; contador ainda não é 8, retorna para LOOP. END ; contador igual 8, acabou o exemplo. 79

80 FAZENDO OPERAÇÕES ARITMÉTICAS BÁSICAS Exemplo da utilização das instruções: INCFSZ MOVLW LOOP CALL INCFSZ END.246 CONTA ; move 246 para o acumulador ; inicia o contador com 246 (256-10). BIP ; chama a rotina BIP que emitirá um som. CONTA,F ; incrementa o contador (CONTA = CONTA + 1). ; resultado = 0 (estourou?). LOOP ; não, retorna para LOOP pois não passou 10 vezes. ; sim, acabou o exemplo pois já passou 10 vezes. 80

81 FAZENDO OPERAÇÕES ARITMÉTICAS BÁSICAS Exemplo da utilização das instruções: ADD MOVLW MOLW CLRF SOMA1 MOVF ADDLW SOMA2 MOVF ADDWF END.10 NUM_1 ; inicia NUM_1 com valor NUM_2 ; inicia NUM_1 com valor 20 RESULTADO ; inicia RESULTADO com zero ; resposta = NUM_1 + 5 NUM_1,W ; coloca o NUM_1 dentro do acumulador(w).5 ; soma 5 ao acumulador (W) RESULTADO ; coloca a resposta em resultado ; resposta = NUM_1 + NUM_2 NUM_1,W ; coloca o valor NUM_1 no acumulador (W) NUM_2,W ; soma o valor NUM_2 ao acumulador(w) e guarda o ; resultado no acumulador RESULTADO ; coloca o valor da resposta no RESULTADO ; término do programa. 81

82 FAZENDO OPERAÇÕES ARITMÉTICAS BÁSICAS As instruções anteriores afetam diretamente os flags relacionados a ULA. Os flags são: STATUS: C, DC e Z. Se desejarmos somar dois números quaisquer de 8 bits necessitaríamos de pelo menos 10 bits para guardarmos estes valores. Para sabermos que o resultado da soma necessita de pelo menos 10 bits utilizamos o bit de CARRY (STATUS, C) para verificarmos esta necessidade. O exemplo abaixo mostra a soma de três números guardando a resposta em dois bytes. Suponha que NUM_1, NUM_2 e NUM_3 tenha valores quaisquer: END CLRF CLRF BYTE_BAIXO ;Inicia BYTE_BAIXO com zero BYTE_ALTO ;Inicia BYTE_ALTO com zero MOVF ADDWF BTFSC INCF NUM_1,W NUM_2,W STATUS,C BYTE_ALTO ADDWF BYTE_BAIXO ;Move o acumulador para o BYTE_BAIXO NUM_3,W ;Soma NUM_3 ao acumulador BTFSC INCF STATUS,C ;Verifica se houve estouro? BYTE_ALTO,F ;Se sim incrementa o BYTE_ALTO BYTE_BAIXO ;Move o acumulador para o BYTE_BAIXO ;Move NUM_1 para dentro do acumulador ;Soma NUM_2 com o NUM_1 que está no acumulador ;Verifica se houve um estouro? ;Se sim incrementa o BYTE_ALTO 82

83 FAZENDO OPERAÇÕES ARITMÉTICAS BÁSICAS SUBTRAINDO (DECF, DECFSZ, SUBWF e SUBLW) As instruções de subtração do PIC seguem a mesma idéia das instruções de adição. DECF f,d ; em que f é o registrador e d o destino onde será guardado o resultado da ; conta (f 1 -> d). DECFSZ f,d ; em que f é o registrador e d o destino onde será guardado o resultado ; da conta (f - 1 -> d). SUBWF f,d ; em que f é o registrador e d o destino onde será guardado o resultado ; da conta (f - k -> d). SUBLW k ; em que k é o número que será somado ao W o resultado é mantido ; em W (k - W -> W). 83

84 FAZENDO OPERAÇÕES ARITMÉTICAS BÁSICAS UTILIZANDO A INSTRUÇÃO DECFSZ MOVLW.10 CONTA ; Inicia o contador com 10 ; Move o valor 10 para a variável CONTA LOOP CALL DECFSZ END BIP ; Chama rotina de emissão de som CONTA,F ; Decrementa a variável conta (CONTA = CONTA -1) ; Resultado é igual a zero (Acabou?) LOOP ; Não, continua até zerar ; Sim, termina o programa 84

85 FAZENDO OPERAÇÕES ARITMÉTICAS BÁSICAS UTILIZANDO A SUBWF SUBLW MOVLW MOVLW CLRF SUB1 MOVF SUBLW SUB2 MOVF SUBWF END.10 NUM_1 ; Inicia NUM_1 com NUM_2 ; Inicia NUM_2 com 20 RESULTADO ; Inicia RESULTADO com zero NUM_1,W ; Move o valor de NUM_1 para o acumulador.30 ; Subtrai de 30 o valor de W RESULTADO ; Guarda a resposta em RESULTADO NUM_1,W ; Move o valor de NUM_1 para W NUM_2,W ; Subtrai de NUM_2 o valor de W RESULTADO 85

86 FAZENDO OPERAÇÕES ARITMÉTICAS BÁSICAS Diferentemente da adição a ordem da subtração afeta diretamente o resultado. Em somas o resultado pode ser zero ou positivo. Na subtração ele pode ser zero, positivo ou negativo. Por meio da análise do flag de carry podemos concluir qual o resultado correto da subtração: Negativo: Sempre que o resultado da subtração for um número negativo, o carry será zero (0). Neste caso, o valor da resposta não será diretamente o número negativo, e sim sua diferença para 256. Positivo: Sempre que o resultado for positivo o carry será 1 Zero: Sempre que o resultado for zero, o carry será 1. 86

87 FAZENDO OPERAÇÕES ARITMÉTICAS BÁSICAS Supondo dois números NUM_1 e NUM_2 CLRF SUB1 MOVF SUBWF BTFSS BCF RESP NUM_1,W NUM_2,W STATUS,C TRATA_NE RESP NEG FIM TRATA_NEG SUBLW.0 BSF END RESP NEG ; Limpa registrador RESP ; Subtrai NUM_2 NUM_1 = RESP ; Move NUM_1 para W ; Subtrai NUM_2 - W ; Testa carry. Resultado negativo? ; Sim, pula para tratar número negativo ; Não, resultado positivo ou zero ; Move diretamente para RESP ; Limpa flag de número negativo ; Finaliza ; Como resultado foi negativo, então RESP = W ; Como o número máximo para 8 bits é 255, então ; 256 -> 0 ;0-W ; Coloca o resultado em RESP ; Seta o flag de número negativo ; Fim do programa 87

88 FAZENDO OPERAÇÕES ARITMÉTICAS BÁSICAS AS COMPARAÇÕES MAIOR QUE, MENOR QUE E IGUAL As instruções SUB afetam diretamente o flag de carry, e desta forma podemos verificar se um número é positivo, negativo ou zero. Partindo deste principio podemos identificar também se um número é maior, menor ou igual a outro. COMPARA1 MOVF SUBWF BTFSS END NUM_1,W NUM_2,W STATUS,C RESP1 RESP2 88

89 FAZENDO OPERAÇÕES ARITMÉTICAS BÁSICAS MULTIPLICANDO A instrução RLF, (Rotate Left File) é utilizada para fazer multiplicação utilizando potência de 2, ou seja somente podemos multiplicar o número por 2. REGISTRADOR F BYTE INICIAL => BYTE FINAL => REGISTRADOR F Deslocamento de apenas um bit. 89

90 FAZENDO OPERAÇÕES ARITMÉTICAS BÁSICAS MULTIPLICANDO E se quisermos multiplicarmos fatores que sejam diferentes das potências de 2? Para isto devemos utilizar o método de somas sucessivas. CLRF CLRF MULT ADDWF BTFSC INCF DECFSZ BYTE_BAIXO BYTE_ALTO NUM_2,W BYTE_BAIXO,F STATUS,C BYTE_ALTO,F NUM_1,F MULT ; Limpa o registrador BYTE_BAIXO ; Limpa o registrador BYTE_ALTO ; NUM_1 X NUM_2 ; Move o valor de NUM_2 para W ; Soma NUM_2 ao valor já existente ; Houve estouro? ; Sim, incrementa o BYTE_ALTO ; Não ; Decrementa NUM_1. Acabou? ; Não, continua somando ; Sim, soma sucessiva terminada END 90

91 FAZENDO OPERAÇÕES ARITMÉTICAS BÁSICAS DIVIDINDO A instrução RRF, (Rotate Right File) é utilizada para fazer divisão utilizando potência de 2, ou seja somente podemos dividir o número por 2. REGISTRADOR F BYTE INICIAL => BYTE FINAL => REGISTRADOR F Deslocamento de apenas um bit. No caso da divisão, a parte inteira caberá em um único registrador de 8 bits, mas o resto da divisão poderá ser perdido por meio de carry. DIV4 BCF RRF RRF END STATUS,C ; Limpa o carry NUM_1,F ; Divide por 2 (NUM_1 = NUM_1 / 2) NUM_1,F ; Divide por 2 (Num_1 = Num_1 / 4) 91

92 SEGUNDO PROGRAMA CONTADOR SIMPLIFICADO O código que se segue é um contador simplificado onde a contagem deve ser feita de um valor mínimo até um valor máximo. Estes valores são duas constantes (MIN e MAX) as quais são utilizadas para fazermos a checagem dos valores. Será necessário a utilização das técnicas de comparação para verificarmos se chegamos ao valor máximo. Além disso utilizaremos um filtro para fazer a análise quando o botão foi pressionado. A constante chama-se T_FILTRO e é ajustada para verificar a quantidade de vezes em que o botão ficou pressionado. Quando a contagem chegar ao valor máximo devemos fazer a contagem regressiva até chegar ao valor mínimo. O pino RA2 é responsável em fazer o incremento ou decremento do contador. Além disto a contagem depende de um flag dentro do sistema que diz se estamos subtraindo ou somando. 92

93 SEGUNDO PROGRAMA - CONTADOR CRESCENTE-DECRESCENTE - FLUXOGRAMA 93

94 SEGUNDO PROGRAMA - CONTADOR CRESCENTE-DECRESCENTE - PROGRAMA ;Programa...: Contador Crescente Decrescente ;Objetivo...: O software em questão será utilizado para fazer um contador que conte até um valor máximo e decremente este valor até um valor mínimo quando este chegar ao valor máximo. O funcionamento depende de RA2 e do flag de sentido. #INCLUDE <P16F84.INC> #DEFINE #DEFINE BANK0 BANK1 BCF STATUS,RP0 BSF STATUS,RP0 CBLOCK W_TEMP STATUS_TEMP CONTATOR FLAGS FILTRO ENDC #DEFINE #DEFINE SENTIDO FLAGS,0 BOTAO PORTA,2 MIN EQU.10 MAX EQU.30 T_FILTRO EQU.230 ORG 0X00 INICIO 94

95 SEGUNDO PROGRAMA - CONTADOR CRESCENTE-DECRESCENTE - PROGRAMA ORG RETFIE INICIO BANK1 MOVLW 0X04 B' ' TRISA MOVLW MOVLW B'' ' TRISB B' ' OPTION_REG MOVLW BANK0 B' ' INTCON CLRF CLRF MOVLW PORTA PORTB MIN CONTADOR MAIN MOVLW T_FILTRO FILTRO CHEGA_BT BTFSC BOTAO MAIN 95

96 SEGUNDO PROGRAMA - CONTADOR CRESCENTE-DECRESCENTE - PROGRAMA DECFSZ TRATA_BT BTFSS FILTRO,F CHECA_BT SENTIDO SOMA SUBTRAI DECFCONTADOR,F MOVLW MIN SUBWF CONTADOR,W BTFSC STATUS,C ATUALIZA INCF CONTADOR,F BCF SENTIDO MAIN SOMA INCF MOVLW SUBWF BTFSS BSF CONTADOR,F MAX CONTADOR,W STATUS,C ATUALIZA SENTIDO MAIN ATUALIZA MOVF CONTADOR,W PORTB 96

97 SEGUNDO PROGRAMA - CONTADOR CRESCENTE-DECRESCENTE - PROGRAMA BTFSC END BOTAO $-1 MAIIN 97

98 TRABALHANDO DIRETAMENTE COM BYTES AND (ANDWF e ANDLW) A operação AND é uma operação lógica entre dois bytes. Cada bit da seqüência de um número é comparado a seqüência de bits do segundo. Esta operação ira resultar em um terceiro byte contendo a operação lógica AND entre os dois primeiros. ANDWF e ANDLW A operação ANDWF faz uma operação AND entre o acumulador (W) e o registrador informado. ANDWF f,d ; f é o registrador e d é o destino onde será guardado o resultado da operação A operação ANDLW faz uma operação AND entre o literal (L) e o acumulador (W). ANDLW K ; K é um número literal e o resultado é guardado no prório acumulador. OR (IORWF e IORLW) A operação OR é uma operação lógica entre dois bytes. Cada bit da seqüência de um número é comparado a seqüência de bits do segundo. Esta operação ira resultar em um terceiro byte contendo a operação lógica OR entre os dois primeiros. IORWF e IORLW A operação IORWF faz uma operação OR entre o acumulador (W) e o registrador informado. IORWF f,d ; f é o registrador e d é o destino onde será guardado o resultado da operação A operação IORLW faz uma operação OR entre o literal (L) e o acumulador (W). ANDLW K ; K é um número literal e o resultado é guardado no prório acumulador. 98

99 TRABALHANDO DIRETAMENTE COM BYTES XOR (XORWF e XORLW) A operação XOR é uma operação lógica entre dois bytes. Cada bit da seqüência de um número é comparado a seqüência de bits do segundo. Esta operação ira resultar em um terceiro byte contendo a operação lógica EXCLUSIVE OR entre os dois primeiros. XORWF e XORLW A operação XORWF faz uma operação OU EXCLUSIVO entre o acumulador (W) e o registrador informado. XORWF f,d ; f é o registrador e d é o destino onde será guardado o resultado da operação A operação XORLW faz uma operação OU EXCLUSIVO entre o literal (L) e o acumulador (W). XORLW K ; K é um número literal e o resultado é guardado no prório acumulador. OBS.: XOR é muito utilizado na verificação de mudança de um BYTE. Verificando a o resultado da operação de subtração entre o registrador e ele mesmo através do registrador STATUS, Z. COMPLEMENTO (COMF) COMPF f,d faz o complemento do registrador f e guarda o resultado no registrador d. Byte 0 0 Complemento

100 TRABALHANDO DIRETAMENTE COM BYTES INVERSÃO (SWAPF) A operação SWAPF serve para inverter o nibble superior com o nibble inferior de um byte.operação XOR é uma operação lógica entre dois bytes. Cada bit da seqüência de um número é comparado a seqüência de bits do segundo. Esta operação ira resultar em um terceiro byte contendo a operação lógica EXCLUSIVE OR entre os dois primeiros. 100

101 CONTANDO TEMPO E CRIANDO DELAYS A contagem de tempo em um microcontrolador é muito preciso. Logicamente esta precisão irá depender da precisão do oscilador. Com esta precisão torna-se fácil mensurar o tempo que determinadas tarefas levam para serem executadas ao mesmo tempo em que se pode determinar o tempo em que um tarefa deve permanecer em execução. O tempo no PIC pode ser contado basicamente de três formas: Contando os ciclos de máquina por meio de loops Contando os ciclos de máquina por intermédio do contador timer 0 (TMR0); ou Contando pulsos externos por meio da entrada T0CLK e do TMR0 As duas primeiras são mais utilizadas e dependem exclusivamente do sistema de oscilação. A terceira depende de estímulos externos e pode ser facilmente utilizada para medir tempo com base na rede de 60 Hz. UTILIZANDO O TIMER PARA MARCAR TEMPO: Para configurarmos o TMR0 primeiramente precisamos saber qual é a freqüência do oscilador. Para nosso exemplo vamos adotar a freqüência de 4 MHz. O ciclo de máquina do PIC é quatro vezes menor do que a freqüência do oscilador. Neste caso nossa freqüência interna é de 1 MHz e o tempo é 1/f ou seja 1 us. Para nosso exemplo vamos supor que queiramos um tempo de 1 ms. Para isso usaremos o TMR0 e o Prescaler na configuração de 1:4. A conta a ser feita segue abaixo: Tempo de ciclo (1 us) x prescaler(4) x TMR0 (250) = 1 ms 101

102 CONTANDO TEMPO E CRIANDO DELAYS Exemplo de contagem: DELAY CLRF DL_1 MOVLW SUBWF BTFSS RETURN TMR0.250 TMR0,W STATUS,C DL_1 A rotina acima funciona porém a sua precisão ainda não é das melhores uma vez que a comparação é feita na forma de igualdade de estouro. Isto ocorre porque o TMR0 pode ser incrementado em qualquer uma destas linhas e a precisão acaba. UTILIZANDO REGISTROS TEMPORÁRIOS PARA CRIAR DELAYS: Podemos criar estruturas para contagem de tempo utilizando registradores temporários. Desta maneira podemos liberar o TMR0 e o prescaler. A idéia básica é criar contadores dentro de outros contadores para contar corretamente a quantidade de ciclos de máquinas e conseqüentemente o tempo. OBS.: Instruções tais como:, CALL, BTFSS, BTFSC, DECFSZ e INCFSZ podem durar 2 cilcos de máquinas Rotina para 1 ms: DELAY MOVLW.250 TEMP1 DL_1 NOP DECFSZ TEMP1,F DL_1 RETURN OBS.: 2 NOPs seguidos podem ser substituidos pro $+1, que também perde 2 ciclos. 102

103 TERCEIRO PROGRAMA PISCA PISCA Neste exemplo será usado delays e inversão de estados utilizando a operação XOR. Será utilizado uma constante chamada DISPLAY para fazer a inversão. Os botões 1 e 2 (RA1 e RA2) serão utilizados para alterar o valor da variável CONTADOR, mudando com isso a freqüência do pisca pisca. As constantes MIN e MAX determinam o limite para o contador e conseqüentemente a freqüência. 103

104 TERCEIRO PROGRAMA PISCA PISCA (FLUXOGRAMA) 104

105 TERCEIRO PROGRAMA PISCA PISCA ;Programa...: Pisca - Pisca ;Objetivo...: O software destina-se a piscar 5 leds formando a letra H em um displasy de 7 segmentos formados por leds #INCLUDE <PIC16F84.INC> #DEFINE #DEFINE BANK0 BANK1 BCF STATUS,RP0 BSF STATUS,RP0 CBLOCK 0X0C W_TEMP STATUS_TEMP CONTADOR FILTRO TEMPO1 TEMPO2 TEMPO3 ENC MIN MAX STEP MULTIPLOEQU ; ; ; ; ; ; ; ; ; a ********* f* *b * g * ********* e* *c * * ********* d EQU.10 EQU.240 EQU

106 TERCEIRO PROGRAMA PISCA PISCA DISPLAY EQU B' ' ; LETRA H #DEFINE #DEFINE BT1 PORTA,1 BT2 PORTA,2 ORG ORG RETFIE DELAY DL1 MOVLW DL2 NOP NOP DECFSZ DECFSZ RETURN 0X00 INICIO 0X04 TEMPO2.200 TEMPO1 TEMPO1,F DL2 TEMPO2,F DL1 106

107 TERCEIRO PROGRAMA PISCA PISCA INICIO BANK1 MOVLW MOVLW MOVLW MOVLW BANK0 CLRF MOVLW MOVLW B' ' TRISA B' ' TRISB B' ' OPTION_REG B' ' INTCON PORTA DISPLAY PORTB MIN CONTADOR MAIN MOVLW MULTIPLO TEMPO3 MAIN1 MOVF CALL BTFSS BTFSS DECFSZ MOVLW CONTADOR,W DELAY BT1 INCREMENTA BT2 DECREMENTA TEMPO3,F MAIN1 DISPLAY 107

108 TERCEIRO PROGRAMA PISCA PISCA XORWF DECREMENTA MOVLW SUBWF MOVLW SUBWF BTFSC MOVLW BTFSS INCREMENTA MOVLW ADDWF MOVLW SUBWF BTFSS MOVLW BTFSS END PORTB,F MAIN STEP CONTADOR,F MIN CONTATOR,W STATUS,C MAIN MIN CONTADOR BT2 $-1 MAIN STEP CONTATOR,F MAX CONTADOR,W STATUS,C MAIN MAX CONTADOR BT1 $-1 MAIN 108

109 USANDO O PCL PARA ESCOLHER ENTRE VÁRIAS ROTINAS O PCL é um registrador de uso especial (SFR) que contém o endereço da memória de programa que será executado em seguida. Podemos utilizá-lo para retornar diferentes valores ou mesmo executar diferentes funções: Um exemplo clássico seria o tratamento de funções que seriam executadas dependendo de um tecla específica. Imaginemos um teclado com 6 teclas com funções específicas. O número do botão pressionado é colocado na variável TECLA. TRATA_TECLA MOVLW ANDWF ADDWF B' ' TECLA,W PCL,F SEM_TECLA TECLA1 TECLA2 TECLA3 TECLA4 TECLA5 TECLA6 ERRO 109

110 PROGRAMA 4 CONTADOR MELHORADO Este exemplo é um aperfeiçoamento do exemplo 2. Será utilizado dois botões para fazer o incremento e outro o decremento unitariamente. Outra diferença é que agora será mostrado no display o valor em hexadecimal e não mais em leds. 110

111 PROGRAMA 4 CONTADOR MELHORADO (FLUXOGRAMA) 111

112 PROGRAMA 4 CONTADOR MELHORADO (FLUXOGRAMA) 112

113 PROGRAMA 4 CONTADOR MELHORADO ;Programa...: Contador Melhorado ;Objetivo...: O software destina-se a mostrar uma contagem hexadecimal em um display de 7 segmentos #INCLUDE <PIC16F84.INC> #DEFINE #DEFINE BANK0 BANK1 BCF STATUS,RP0 BSF STATUS,RP1 CBLOCK 0X0C W_TEMP STATUS_TEMP CONTADOR FLAGS FILTRO1 FILTRO2 ENDC #DEFINE #DEFINE ST_BT1 ST_BT2 FLAGS,0 FLAGS,1 MIN EQU.0 MAX EQU.15 T_FILTRO EQU.255 #DEFINE #DEFINE BOTAO1, PORTA,1 BOTAO2, PORTA,2 113

114 PROGRAMA 4 CONTADOR MELHORADO ORG ORG RETFIE ; ; ; ; ; ; ; ; ; 0X00 INICIO 0X04 a ********* f* *b * g * ********* e* *c * * ********* d CONVERTE MOVF CONTADOR,W ANDLW B' ' ADDWF PCL,F ; B'EDC.BAFG' RETLW B' ' RETLW B' ' RETLW B' ' RETLW B' ' RETLW B' ' RETLW B' ' RETLW B' ' RETLW B' ' RETLW B' ' RETLW B' ' RETLW B' ' 114

115 PROGRAMA 4 CONTADOR MELHORADO RETLW RETLW RETLW RETLW RETLW INICIO BANK1 MOVLW MOVLW MOVLW MOVLW BANK0 CLRF CLRF CLRF MOVLW MAIN MOVLW B' ' B' ' B' ' B' ' B' ' B' ' TRISA B' ' TRISB B' ' OPTION_REG B' ' INTCON PORTA PORTB FLAGS MIN CONTADOR ATUALIZA T_FILTRO FILTRO1 FILTRO2 115

116 PROGRAMA 4 CONTADOR MELHORADO CHECA_BT1 BTFSC DECFSZ BTFSS BOTAO1 BT1_LIB FILTRO1,F CHECA_BT1 ST_BT1 DEC CHECA_BT2 BT1_LIB BCF ST_BT1 CHECA_BT2 BTFSC DECFSZ BTFSS BOTAO2 BT2_LIB FILTRO2,F CHECA_BT2 ST_BT2 INC MAIN BT2_LIB BCF ST_BT2 MAIN DEC BSF MOVF XORLW ST_BT1 CONTADOR,W MIN 116

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador; 1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e

Leia mais

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios Microprocessadores I ELE 1078 Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios Grupos de Instruções do 8085 As instruções no 8085 são distribuídas em 5 grupos: 1. Grupo de transferência da

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

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

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

Manual do Usuário. McMaster Desenvolvimento de Sistemas com Microcontroladores PIC

Manual do Usuário. McMaster Desenvolvimento de Sistemas com Microcontroladores PIC Manual do Usuário McMaster Desenvolvimento de Sistemas com Microcontroladores PIC Índice CAPÍTULO 1 - INTRODUÇÃO... 1 CAPÍTULO 2 - MCMASTER DESENVOLVIMENTO DE SISTEMAS COM MICROCONTROLADORES PIC... 3

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

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

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

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

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

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

LABORATÓRIO DE ARQUITETURA DE COMPUTADORES PREPARAÇÃO 03: INTERRUPÇÕES

LABORATÓRIO DE ARQUITETURA DE COMPUTADORES PREPARAÇÃO 03: INTERRUPÇÕES AEVSF Autarquia Educacional do Vale do São Francisco FACAPE Faculdade de Ciências Aplicadas e Sociais de Petrolina Curso de Ciência da Computação LABORATÓRIO DE ARQUITETURA DE COMPUTADORES Prof. Sérgio

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

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

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

Í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

Introdução ao Uso do LCD Inteligente (Versão Preliminar) Por Gilson Yukio Sato. Introdução

Introdução ao Uso do LCD Inteligente (Versão Preliminar) Por Gilson Yukio Sato. Introdução Introdução ao Uso do LCD Inteligente (Versão Preliminar) Por Gilson Yukio Sato Introdução O display de cristal líquido (LCD) inteligente é bastante usado como dispositivo de interface entre o usuário e

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

SSC510 Arquitetura de Computadores 1ª AULA

SSC510 Arquitetura de Computadores 1ª AULA SSC510 Arquitetura de Computadores 1ª AULA REVISÃO DE ORGANIZAÇÃO DE COMPUTADORES Arquitetura X Organização Arquitetura - Atributos de um Sistema Computacional como visto pelo programador, isto é a estrutura

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

2 - Considere a seguinte figura que representa uma parte dos componentes básicos de um microprocessador:

2 - Considere a seguinte figura que representa uma parte dos componentes básicos de um microprocessador: Perguntas Tipo - FM2012 sobre PICS 1 Explique sucintamente a necessidade de uso de registos de dados (memória RAM) nos microcontroladores. Faça um paralelo com o método clássico estudado em SL Implementação

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

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

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

Cerne. Conhecimento para o Desenvolvimento. Cerne Tecnologia e Treinamento

Cerne. Conhecimento para o Desenvolvimento. Cerne Tecnologia e Treinamento Conhecimento para o Desenvolvimento Cerne Tecnologia e Treinamento Apostila de Assembly para o PIC16F628A (21) 4063-9798 (11) 4063-1877 E-mail: cerne@cerne-tec.com.br MSN: cerne-tec@hotmail.com Skipe:

Leia mais

Solução Lista de Exercícios Processadores

Solução Lista de Exercícios Processadores Solução Lista de Exercícios Processadores Questão 1 A ULA é o dispositivo da CPU que executa operações tais como : Adição Subtração Multiplicação Divisão Incremento Decremento Operação lógica AND Operação

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

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

ELETRÔNICA DIGITAL II. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR

ELETRÔNICA DIGITAL II. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR ELETRÔNICA DIGITAL II AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR acjunior@facthus.edu.br 1º SEMESTRE 2009 CONTEÚDO PROGRAMADO: 1 O que é um computador digital? 2 Como funcionam os computadores 3 O agente

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

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

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA Prof. Dr. Daniel Caetano 2012-1 Objetivos Conhecer o processador Compreender os registradores

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

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

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

UNIVERSIDADE FEDERAL DE SÃO JOÃO DEL-REI - UFSJ DEPARTAMENTO DE ENGENHARIA ELÉTRICA - DEPEL INTRODUÇÃO AOS MICROCONTROLADORES PIC

UNIVERSIDADE FEDERAL DE SÃO JOÃO DEL-REI - UFSJ DEPARTAMENTO DE ENGENHARIA ELÉTRICA - DEPEL INTRODUÇÃO AOS MICROCONTROLADORES PIC UNIVERSIDADE FEDERAL DE SÃO JOÃO DEL-REI - UFSJ DEPARTAMENTO DE ENGENHARIA ELÉTRICA - DEPEL INTRODUÇÃO AOS MICROCONTROLADORES PIC THIAGO VELOSO GOMES JOÃO MATHEUS DE OLIVEIRA ARANTES São João del-rei Março

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

FACULDADE LEÃO SAMPAIO

FACULDADE LEÃO SAMPAIO FACULDADE LEÃO SAMPAIO Microcontroladores Curso de Análise e Desenvolvimento de Sistemas 1 Componentes CPU Memórias Dispositivos de Entrada/Saída (E/S) Input/Output (I/O) 2 CPU A CPU busca informações

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

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

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

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

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

PRÁTICAS. Microcontroladores: (LT36D) Prof: DaLuz. Práticas - 2º sem Microcontroladores LT36D - 26/04/ :56 1/16

PRÁTICAS. Microcontroladores: (LT36D) Prof: DaLuz. Práticas - 2º sem Microcontroladores LT36D -  26/04/ :56 1/16 PRÁTICAS Microcontroladores: (LT36D) Prof: DaLuz 1/16 Laboratório 01: - Laboratórios Instrução / diretiva (ORG e END), exemplos: ORG 0000h posiciona o código na linha 0000h da EPROM ORG 0100h posiciona

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

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

UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III

UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III Orientações: Esta lista de Exercícios deve ser entregue juntamente com a

Leia mais

Sumário. 1. Apresentação Hardware Microcontrolador PIC16F628A Displays de 7 segmentos Teclas...

Sumário. 1. Apresentação Hardware Microcontrolador PIC16F628A Displays de 7 segmentos Teclas... 02/03/2011 Sumário 1. Apresentação... 3 2. Hardware... 4 2.1. Microcontrolador PIC16F628A... 4 2.2. Displays de 7 segmentos... 4 2.3. Teclas... 4 2.4. Leds... 5 2.5. Lâmpada... 5 2.6. Botão de reset manual...

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

MEC MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO MÉDIA E TECNOLÓGICA CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO ESPÍRITO SANTO

MEC MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO MÉDIA E TECNOLÓGICA CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO ESPÍRITO SANTO MEC MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO MÉDIA E TECNOLÓGICA CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO ESPÍRITO SANTO INTRODUÇÃO AO MICROCONTROLADOR PIC 16C84 Vitória ES 2002 Sumário O MICROCONTROLADOR

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

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA Prof. Msc. Tiago Alves de Oliveira Objetivos Conhecer o processador Compreender os registradores

Leia mais

Copyright 2014 VW Soluções

Copyright 2014 VW Soluções 1 Apresentação O ClpPic40-B v1.0 foi desenvolvido com base no microcontrolador PIC16F887, mas pode ser utilizado qualquer outro PIC de 40 pinos da família 16F ou 18F (observar a pinagem). Ele possui várias

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA Prof. Dr. Daniel Caetano 2012-2 Objetivos Conhecer o processador Compreender os registradores

Leia mais

O Pino P2.7 não está sendo usado e cada Display mostrará valores de 0 a 9.

O Pino P2.7 não está sendo usado e cada Display mostrará valores de 0 a 9. Lista de Exercícios 2 Conceitos envolvidos: a) Interface serial RS232 b) Interface com Teclado Matricial c) Interface com Displays de 7 segmentos d) Interface com LCD e) Interface com Conversores A/D e

Leia mais

Marcelo Fernandes Valter Rodrigues de Jesus Junior. Thermal Control

Marcelo Fernandes Valter Rodrigues de Jesus Junior. Thermal Control Marcelo Fernandes Valter Rodrigues de Jesus Junior Thermal Control Curitiba 2011 Índice Analítico 1. Resumo 4 2. Introdução 4 3. Objetivo 4 4. Fundamentos Teóricos 5 4.1 A família PIC 16f877/877A 6 5.

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

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

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

Sistemas Microcontrolados

Sistemas Microcontrolados Ciência da Computação Sistemas Microcontrolados Introdução aos Microcontroladores PIC Prof. Sergio F. Ribeiro Microprocessadores Os microprocessadores são circuitos integrados compostos por diversas portas

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

Cerne. Conhecimento para o Desenvolvimento. Cerne Tecnologia e Treinamento. Apostila de BASIC para PIC16F628A

Cerne. Conhecimento para o Desenvolvimento. Cerne Tecnologia e Treinamento. Apostila de BASIC para PIC16F628A Cerne Conhecimento para o Desenvolvimento Cerne Tecnologia e Treinamento Apostila de BASIC para PIC16F628A (21) 43-9798 (11) 43-1877 E-mail: cerne@cerne-tec.com.br MSN: cerne-tec@hotmail.com Skipe: cerne-tec

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

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

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

2. A influência do tamanho da palavra

2. A influência do tamanho da palavra PROCESSAMENTO 1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos etc.) e de controle, durante

Leia mais

Disciplina: Arquitetura de Computadores

Disciplina: Arquitetura de Computadores Disciplina: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof a. Carla Katarina de Monteiro Marques UERN Introdução Responsável por: Processamento e execução de programas armazenados na

Leia mais

Kit Clp Pic 40B Manual do usuário. Manual do usuário - Kit Clp Pic 40B v2.0. Copyright VW Soluções

Kit Clp Pic 40B Manual do usuário. Manual do usuário - Kit Clp Pic 40B v2.0.  Copyright VW Soluções Manual do usuário - Kit Clp Pic 40B v2.0 Kit Clp Pic 40B 40 v2.0 Manual do usuário 1 Apresentação O ClpPic40-B v2.0 foi desenvolvido com base no microcontrolador PIC16F887, mas pode ser utilizado qualquer

Leia mais