Escolar Documentos
Profissional Documentos
Cultura Documentos
Conceitos Bsicos
Bit abreviao de Dgito Binrio em Ingls (BInary digiT), que corresponde ao valor zero (0) lgico ou ao valor um (1) lgico.
Hexadecimal - notao para nmeros binrios que utiliza 16 dgitos (0 a 9, A,B,C,D,E,F) para representar um nmero binrio de 4 Bits. Assim, as 16 combinaes possveis de 4 Bits so escritas com os dgitos hexadecimais. Uma letra h usada para denotar que o nmero escrito est em hexadecimal (Ex: 00h , 3Fh)
Byte representao numrica composta de 8 Bits. Pode representar nmeros de 00h (010) a FFh (25510). Registrador conjunto de Flip-flops, geralmente do tipo D, que so interligados em paralelo. So responsveis pelo armazenamento de uma informao binria. Dependendo do nmero de Flipflops interligados, podem armazenar 8 Bits(8 Flip-flops = 1 Byte), 16 Bits (= 2 Bytes), 32 Bits (= 4 Bytes), 64 Bits (= 8 Bytes) ou 128 Bits (= 16 Bytes). Os registradores so memrias volteis, ou seja, quando desenergizados perdem seu contedo. Memria local de armazenamento de Informaes Binrias. Podem ser formadas por circuitos semicondutores, mdias magnticas, mdias pticas, etc... De certa forma, um Registrador pode ser considerado uma memria que armazena apenas uma informao binria por vez.
Conceitos Bsicos
Instruo define uma nica ao que um computador pode executar por vez. As aes das instrues podem ser: leitura ou escrita de uma informao binria na memria, leitura ou escrita de uma informao binria em um registrador, operaes lgicas entre informaes binrias, operaes aritmticas entre informaes binrias, etc...
Programa conjunto de Instrues arranjadas de maneira organizada por um programador com o objetivo de informar ao Computador qual a tarefa que mesmo dever executar. Os Programas, em geral, so armazenados na Memria do Computador. Software so os programas que so carregados na memria do Computador para serem executados (Ex: Windows, Office, C++, Firefox, etc...). Firmware so os programas que j esto previamente armazenados em uma memria no voltil (ROM/PROM/EPROM/Flash) e que permitem a operao fundamental de um computador, inclusive a carga de Programas (Software) na memria para serem executados. Hardware so as partes eletrnicas, eletro-mecnicas e pticas de um computador.
Microprocessadores
Sistemas Numricos
Base de Trabalho
Binrio (2) Decimal (10) Octal (8) Hexadecimal (16)
Agrupamento
Nimble (4 bits) Byte (8 bits) Word (4 bytes)
Microprocessadores
Sistemas Numricos
Tipo de Dados
Caracteres (ASCII) Booleanos (Binrio) Inteiros Reais Ponteiros (Endereos)
Tabela ASCII
Booleanos
Representao por verdadeiros ou falso
Neste tipo de representao, temos os nmeros 0 e 1 representando falso e verdadeiro, respectivamente. Representao simples e com pouca ocupao de memria e processamento.
Inteiros
Representao de nmeros inteiros (Matemtica);
Neste caso a representao realizada por uma certa quantidade de bits, geralmente 16 ou 32.
16 Bits = 2^16 => 65535 (curtos ou short) 32 Bits = 2^32 => 4294967295 (longos ou long)
Negativos
Sinal-Magnitude Complemento de 2
Reais (Float)
Na notao usual ponto (ou uma vrgula) para indicar a parte fracionria Notao cientfica especifica o nmero atravs de uma caracterstica e de uma mantissa.
Por exemplo, o nmero real 123.45 (parte inteira: 123, parte fracionria: .45) pode ser expresso na notao cientfica como .12345E3. Nesse caso a caracterstica .12345 e a mantissa (potncia de 10 que multiplica a caracterstica) 3.
Reais (Float)
Os ponteiros so usados para armazenar endereos, sendo importantes na representao de dados complexos (filas, listas, etc). Um ponteiro representado normalmente em 32 bits (4 bytes) e assume apenas valores positivos (pois seus valores representam endereos de memria).
Portas Lgicas
RTL Resistor Transistor Logic Lgica de transistor e resistncia. DTL Dode Transistor Logic Lgica de transistor e diodo. TTL Transistor Transistor Logic Lgica transistor-transistor. HTL High Threshold Logic Lgica de transistor com alto limiar. ECL Emitter Coupled Logic Lgica de emissores ligados. I2L Integrated-Injection Logic Lgica de injeo integrada. Famlias lgicas MOS (Metal xido Semicondutor)
CMOS Complementary MOS MOS de pares complementares NMOS/PMOS NMOS Utiliza s transstores MOS-FET canal N. PMOS Utiliza s transstores MOS-FET canal P.
A famlia TTL principalmente reconhecida pelo fato de ter duas sries que comeam pelos nmeros 54 para os componentes de uso militar e 74 para os componentes de uso comercial. TTL 74L de Baixa Potncia TTL 74H de Alta Velocidade TTL 74S Schottky TTL 74LS Schottky de Baixa Potncia (LS-TTL) TTL 74AS Schottky Avanada (AS-TTL) TTL 74ALS- TTL Schottky Avanada de Baixa Potncia
Sries CMOS: 4000/14000 (foram as primeiras sries da famlia CMOS) 74C (compatvel, pino a pino e funo por funo, com os dispositivos TTL) 74HC (CMOS de Alta Velocidade) 74HCT (os dispositivos 74HCT - CMOS de Alta Velocidade - podem ser alimentados directamente por sadas de dispositivos TTL)
Estes transstores comportam-se como interruptores electrnicos que ou esto em conduo (1) ou esto ao corte (0).
A figura apresenta um exemplo de um circuito elctrico (porta lgica que implementa a funo AND), utilizando a tecnologia TTL.
Nveis de integrao
LSI (Large Scale Integration) Integrao em grande escala: Corresponde aos CI que tm entre 100 a 9 999 portas lgicas. VLSI (Very Large Scale Integration) Integrao em muito larga escala: Corresponde aos CI que tm entre 10 000 a 99 999 portas lgicas.
ULSI (Ultra Large Scale Integration) Integrao em escala ultra larga: Corresponde aos CI que tm 100 000 ou mais portas lgicas.
Portas lgicas
A facilidade do processamento de nmeros binrios decorre da existncia de apenas dois dgitos, 0 e 1 (bit), que podem ser representados por 2 nveis de tenso (por exemplo 0 = 0 volt e 1 = 5 volts). Os smbolos representam um bloco lgico com uma ou mais entradas lgicas A, B, etc. e uma sada lgica S. As entradas e sadas lgicas s assumem valores correspondentes aos nveis lgicos 0 e 1. Um bloco lgico executa uma determinada funo lgica para a qual foi projectado. Essa funo determina os valores que as sadas assumem para cada combinao de valores das entradas. Tais relaes so muitas vezes exibidas soba a forma de tabelas de verdade.
AND A S B B OR A S A S NOT
NAND
A S A
NOR S B
Quando as duas entradas (A e B) so zero (interruptores desligados) a sada (S) tambm zero (lmpada apagada).
Quando uma s das entradas 1 (um s interruptor ligado) a sada (S) zero (lmpada apagada).
Quando as duas entradas (A e B) so 1 (os dois interruptores ligados) a sada (S) tambm 1 (lmpada acesa),
CONCLUSO: S temos o nvel lgico 1 na sada quando todas as entradas forem 1 (neste caso, A e B)
Smbolo novo
Smbolo antigo
Expresso da funo
Tabela de verdade
B 0 1 0 1
S 0 0 0 1
A S B
S=AxB
0 0 1 1
A porta lgica NAND uma porta lgica AND com a sada negada.
Pode observar-se que os nveis lgicos da sada (S) da tabela de verdade NAND a negao dos nveis lgicos da sada (S) da tabela de verdade AND.
Smbolo novo
Smbolo antigo
Expresso da funo
Tabela de verdade
A
S
B 0 1 0 1
S 1 1 1 0
S=AxB
0 0 1 1
Negao
Quando as duas entradas (A e B) so zero (interruptores desligados) a sada (S) tambm zero (lmpada apagada).
Quando uma s das entradas 1 (um s interruptor ligado) a sada (S) um (lmpada acesa).
Quando as duas entradas (A e B) so 1 (os dois interruptores ligados) a sada (S) tambm 1 (lmpada acesa),
CONCLUSO: S temos o nvel lgico 0 na sada quando todas as entradas forem 0.
Smbolo novo Smbolo antigo A Expresso da funo Tabela de verdade
A
S
B 0 1
S 0 1
1
B
S=A+B
0 0
1
1
0
1
1
1
Smbolo novo
Smbolo antigo
Expresso da funo
Tabela de verdade
A
A
1
B
S=A+B
0
0 1 1
0
1 0 1
1
0 0 0
Negao
S 1 0
S=A
0 1
A
A
B 0 1
S 0 1
=1
B
S=AB
0 0
1
1
0
1
1
0
A porta lgica abreviadamente designada por EX-NOR uma porta lgica EX-OR com a sada negada.
Pode observar-se que os nveis lgicos da sada (S) da tabela de verdade EX-NOR a negao dos nveis lgicos da sada (S) da tabela de verdade EX-OR.
Smbolo novo
Smbolo antigo
Expresso da funo
Tabela de verdade
A
A
B 0 1
S 1 0
=1
B
S=AB
0 0
1
1
0
1
0
1
Flip-Flop RS
Flip-Flop D
Memrias
A memria o componente de um sistema de computao cuja funo armazenar as informaes (por informaes entendem-se os dados ou as instrues de um programa) que so, foram ou sero manipuladas pelo sistema. Na prtica, a memria de um computador possui tantas variedades (velocidade, capacidade de armazenamento, tecnologia, etc.) que se torna um subsistema de elementos hierarquicamente estruturados.
Memrias - Hierarquia
Memrias
Imaginemos uma memria elementar composta por apenas 4 locais. Cada local deve possuir seu prprio endereo, portanto sero necessrios 4 endereos (binrios, naturalmente):
Por outro lado, cada local deve ser capaz de armazenar um grupo de bits. Cada bit deve possuir um caminho (trilha) desde o microprocessador at a memria (na verdade, entre quaisquer dispositivos que devam transmitir ou receber dados). Se a capacidade de armazenamento do local for 8 bits, seriam necessrias 8 trilhas para receber ou transmitir estes dados.
Memrias
Para enderearmos 4 clulas de memria utilizamos 2 bits, porque 2 = 4. Desta forma, para enderearmos 32 clulas de memria utilizaremos 5 bits (2^5 = 32). Para enderearmos 256M endereos, utilizaremos 28 bits (2^8 * 2^20 = 2^28). Assim, se E for o nmero de bits de um endereo e N for o nmero de endereos, temos: N=2
A memria organizada como um conjunto de N clulas com M bits cada. Se possui N clulas, necessita de N endereos. Por outro lado se a clula possui M bits, podemos armazenar nela um valor entre 0 at 2N-1. O valor N representa a capacidade da memria, ou seja, a quantidade de clulas ou de endereos, enquanto M indica a quantidade de bits que podem ser armazenados. O total de bits de uma memria portanto:
T=M*N
Memrias
Logo, se temos o nmero de endereos e queremos saber a quantidade de bits do barramento de endereos, temos:
Microprocessadores
O que ? um tipo de circuito integrado construdo em uma fina pea de silcio que contm milhares ou milhes de transistores interconectados atravs de superfinos traos de alumnio.
Microprocessadores
Para que serve?
Os transistores trabalham em conjunto, armazenando e manipulando dados, de forma a executar uma grande variedade e quantidade de informaes e funes.
Microprocessadores
Porque da utilizao ? Custo x Benefcio Atualizao Tecnolgica Flexibilidade / Praticidade Tamanho / Acabamento
Microprocessadores
Histrico - Evoluo
Dcada de 40, 50 e 60 Tamanho/Velocidade
Computadores de Grande Porte Valvulados Inveno dos transistores e circuitos integrados
Dcada de 40: Vlvula e Transistor (1948) Dcada de 50: Comercializao do transistor Dcada de 60: Circuitos Integrados SSI ("Small Scale Integrated")
1968: => Bob Noyce e Gordon Murray fundam a Intel 1969: => Jerry Sanders e sete amigos fundam a Advanced Micro Devices (AMD)
Microprocessadores
Dcada de 70 Intel 4004 Calculadora (4 bits)
Circuitos Integrados MSI ("Medium Scale Integrated") Maior utilizao dos transistores e diminuio do preo dos computadores/ microprocessadores;
Microprocessadores
1972 Intel 8008 - CPU do primeiro microcomputador de 8 bits
Microprocessadores
1974: INTEL 8080 (4.500 transistores e 10 vezes mais rpido que o 8008)
Microprocessadores
1974: MOTOROLA 6800
Microprocessadores
1976: => TEXAS 9800 (CPU do primeiro microcomputador de 16 bits) 1977: MOSTEK 6502 ==> Apple I, II e II plus 1978: => Circuitos Integrados VLSI ("Very Large Scale Integrated")
MOTOROLA 6809 (Melhor CPU de 8 bits do mercado) INTEL 8088/8086 (29.000 transistores integrados)
Microprocessadores
Dcada de 80 Intel x86 (16 bits)
MOTOROLA 68.000 (68.000 transistores integrados)
Microprocessadores
Dcada de 80 Intel x86 (16 bits)
1981: 1982: 1983: 1984: 1985: 1986: 1988: 1989: => MOTOROLA 68.010 => INTEL 80186/80188 => INTEL 80286 (130.000 transistores integrados) => MOTOROLA 68.020 => INTEL 80386 (ou 80386DX, ou i386) => MOTOROLA 68.030 => INTEL 80386SX => INTEL i486 (1.200.000 transistores)
Microprocessadores
Dcada de 80 Intel x86 (16 bits)
Microprocessadores
Dcada de 90 Intel Pentium (32 bits)
1991: => INTEL i386SL, i486SX Microprocessadores com tecnologia RISC 1992: => INTEL i486DX2/50 e i486DX2/66 1993: => INTEL Pentium 1995: => INTEL Pentium Pro 1997: => INTEL Pentium II 1998: => Pentium II Xeon e Celeron 1999: => Pentium III e Pentium III Xeon
Microprocessadores
Anos 2000 Intel x64 (64 bits) e Dual-Core
2000: => Pentium 4 2001: => Xeon e Itanium 2002: => Tecnologia Hyper-Threading nos processadores 2003: => Tecnologia mvel Centrino 2004: => Conexo de rede PRO/Wireless 2915ABG 2006: => Plataforma Centrino Duo, plataforma Viiv e processador Core 2 Duo 2007: => Processadores Core 2 Quad, Xeon 7000 e Itanium 2
Arquitetura Bsica
CPU Unidade de Processamento Central
Registradores e Contadores ULA - Unidade Lgica e Aritmtica UCS - Unidade de Controle e Sincronizao
Memria
Armazenamento de Dados e Programas
Arquitetura de Harvard
Comparativo
RISC E CISC
CISC (Complex Instruction Set Computing), arquitetura baseada em conjunto de instrues complexas, que devem ser decodificadas pelo processador. Estes processadores utilizam microcdigo, que so pequenos programas internos. As instrues CISC no so padronizadas, cada uma interpretada pelo microcdigo de uma forma e leva tempos diferentes para ser executada. RISC (Reduced Instruction Set Computing), arquitetura que utiliza instrues simples e sem microcdigo, no havendo necessidade de decodificador de instrues. Microprocessadores da Motorola, que equipam os computadores Macintosh da Apple, utilizam esta arquitetura.
Microprocessadores e Microcontroladores
A diferena bsica entre Microprocessadores e Microcontroladores que o primeiro realiza somente as funes de processamento, no tendo memria ou portas de I/O. O segundo, por sua vez, conta com memria interna e tambm canais de I/O, sendo utilizado em aplicaes mais especficas.
Memria
Volatilidade Escrita/Leitura Tipo de Armazenamento
RAM (Random Access Memory) ROM (Read-Only Memory) EPROM (Erasable Programmable ROM) EPROM (Electrically EPROM)
Funcionamento
O microcomputador/microcontrolador uma mquina eletrnica capaz de buscar e executar instrues de programas alocados em memria; Aps a energizao de um microcomputador/microcontrolador, gerado um sinal de reset que zera o Program Counter (PC), ou seja, posiciona o Contador de Programa no endereo inicial. O programa executado a partir de seu incio; O microprocessador/microcontrolador ir buscar e executar a instruo que est localizada no endereo de memria definida pelo PC (incio do programa); Para buscar uma instruo na Memria, o microprocessador/microcontrolador gasta um determinado tempo chamado de Ciclo de Busca. Para executar a instruo buscada, o Microprocessador/microcontrolador gasta outro tempo determinado chamado de Ciclo de Execuo.
Funcionamento
Ciclo de Busca: operao de leitura de uma instruo a partir da posio de memria cujo endereo definido pelo contedo do PC. Nesse ciclo o contedo do PC incrementado de uma, duas ou trs unidades. Isso depende do tamanho da instruo; Ciclo de Execuo: executa a instruo (operaes de movimentao de informao, operaes aritmticas e lgicas, etc.).
PIC
PIC Peripheral Interface Controller
Classificao relacionada ao comprimento da palavra da instruo: 1) Base-Line: 12 bits 2) Mid-Range: 14 bits 3) High-End: 16 bits
PIC 16F628A
Pinagem
Pinagem
RA0 a RA7 PORT A Pode ser configurado como Entrada ou Sada Digital RB0 a RB7 PORT B Pode ser configurado como Entrada ou Sada Digital Vdd Alimentao 5Vcc Vss Referncia terra 0Vcc OSC1/CLKIN Sinal de Clock produzido por Cristal ou Circuito Externo OSC2/CLKOUT Sinal de Clock produzido por Cristal MCLR Reset em Nvel Baixo (0)
Mnemnicos
Mnemnicos
Mnemnicos
Mnemnicos
Linguagem Assembly
Lista de Instrues Mnemnicos definidos pelo Fabricante Baixo Nvel Assembler : Software que traduz o programa para o cdigo binrio.
Estrutura Assembly
Estrutura Bsica:
Label Cdigo de Operao (mnemnico) Operando ou Endereo Comentrio
Pseudo-Instrues
Estrutura Assembly
Pseudo-Instrues
Base do Dado
Decimal (D) Hexa (H) Octal (O) Binrio (B)
Endereamentos
Modo Direto
MOVLW H10 = Move para o acumulador W o valor 10 em Hexadecimal MOVWF 0x20 = Move o valor do acumulador W para o endereo 20h
Modo Indireto
MOVLW H20 = Move o valor 20h para o acum. W MOVWF FSR = Aponta FSR para o endereo 20h MOVLW H5A = Move 5Ah para o acumulador W MOVWF INDF = Move 5Ah para o endereo 20h
Memria de Programa
a chamada memria de instrues, onde fica armazenado o programa que ser executado no microcontrolador. Esta memria do tipo FLASH no PIC 16F
Vetor Reset Reservado Reservado 0000h 0001h 0002h
Reservado
Vetor de Interrupo Memria de Programa
0003h
0004h 0005h 07FFh 0800h
Reservado 1FFFh
Memria RAM
Existem 4 bancos de memria RAM, que so compartilhados pelos GPRs (Registradores de Propsito Geral) e SFRs (Registradores de finalidades especficas). O acesso a estes bancos dados pelos bits 5, 6 e 7 do registrador STATUS.
Endereamento Indireto IRP Banco 0 0 Endereamento Direto RP1 0 RP0 0
Banco 1 Banco 2
Banco 3
0 1
1
0 1
1
1 0
1
Registradores
SFR (Special Function Register): Registradores de Funes Especiais. Muitas vezes referenciados pela letra f GPR (General Purpose Registers): Registradores de Propsito Geral Devido a forma de implementao das funes o endereamento limitado a 7 bits (128 registradores). A filosofia de paginao utilizada. Existem diversos bancos de 128 posies. O acesso ao banco controlado pelo registrador de STATUS: RP0 e RP1 Alguns registradores so espelhados
SFRs
STATUS: Est relacionado s operaes matemticas. Indica estouro dos registradores(CCarry e DC-Digit Carry) e resultados iguais a zero PCON: Funo mais utilizada que configura freqncia do oscilador interno 37KHz ou 4MHz OPTION_REG: Configura o funcionamento dos registradores internos PORTx: L e escreve informaes nos pinos externos do PIC TRISx: Define direo de funcionamento de cada pino da porta (se entrada ou sada)
SFRs
INTCON: Interrupes Especiais e chave gera
Chave Geral: GIE Timer 0, Interrupo Externa e Mudana de Estado
Endereamento Indireto
FSR (apontador) INDF (espelho do apontador)
SFRs
Pode ser utilizado como destino de diversas operaes aritmticas e lgicas No est mapeado na memria RAM utilizado principalmente como ponte entre os registradores f , pois no possvel trocar dados diretamente entre eles A instruo MOVF copia a informao do registrador f para W A instruo MOVWF copia a informao do registrador W para f
Portas de I/O
Configurao dada pelos registradores TRISA e TRISB. PORTA associado ao registrador CMCON PORTB associado ao registrador OPTION RA5 Reset RB5 LVP (Low Voltage Program) Escrita no Port feita em Latch
Portas de I/O
Caractersticas Eltricas
Caractersticas Eltricas Temperatura de trabalho: -40oC at +125oC Tenso de Trabalho (em relao a Vss): 3.0V a 5.5V Voltagem mxima no pino VDD (em relao ao VSS): -0.3V at +6.5V Voltagem mxima no pino MCLR (em relao ao VSS): -0.3V at +14V Voltagem mxima nos demais pinos (em relao ao VSS): -0.3V at (VDD+0.3V) Dissipao mxima de potncia: 800mW Corrente mxima de sada do pino VSS: 300mA Corrente mxima de entrada no pino VDD: 250mA Corrente mxima de a sada de um pino (qdo em VSS) : 25mA Corrente mxima de sada de um pino (qdo em VDD): 25mA Correntes mximas de entrada e sada (PORTA + PORTB): 200mA
; COMO SADA
;CONFIGURA OS BITS RA3 A RA0 COMO I/O ;DESABILITA RESISTORES DE PULL-UP
;SETA BANCO 0
;LE O RB0
BCF
PORTA,0
===== ESCREVE NVEL LGICO EM TODAS AS PORTAS DE PORTB ===== ;W RECEBE 0FH
Exemplos
===== CONFIGURA PORTB E ESCREVE VALORES NAS SAIDAS =====
;SETA O BANCO 1
;NIBBLE ALTO DO PORTB CONFIG.
;COMO OUT E DEMAIS IN
;SETA O BANCO 0
;W RECEBE 00H ; SAIDAS CONFIG. VO PARA 0
Exemplos
===== MUDA CONFIGURAO DA SAIDA HABILITANDO VALOR SETADO ANTERIORMENTE =====
BCF STATUS,RP1 BSF STATUS,RP0 MOVLW B'00001111' MOVWF TRISB BCF STATUS,RP1 BCF STATUS,RP0 MOVLW B'00000000' MOVWF PORTB BCF STATUS,RP1 BSF STATUS,RP0 MOVLW B'00000000' MOVWF TRISB
;SETA O BANCO 1 ;NIBBLE ALTO DO PORTB CONFIGURADO ;COMO SAIDA E OUTRAS COMO ENTRADA
;SETA O BANCO 0 ;W RECEBE 00H ;TODAS AS SAIDA CONFIG. VO PARA 0
Fluxograma
Inicio e Fim
Sub-Rotina
Decises
Linha de Fluxo
Exemplo
Inicio
Trabalho
Exerccios
Criar um Fluxograma para Controlar o Nvel de uma Caixa Dgua Criar um Fluxograma para Controlar um Semforo Criar um Fluxograma para Controlar um Sistema de Iluminao de Ambiente
Criando um Programa
Dados fundamentais para insero como comentrios no programa:
Titulo Nome do Projetista Verso do Programa Data de Concluso
Definies
Para facilitar a programao em assembly, o fabricante disponibiliza um arquivo de definies. Este contm definies de nomes padro para endereos de memria muito utilizados, como registradores.
#INCLUDE <P16F628A.INC> #INCLUDE C:\PROJETOS\JOAO.INC
Atalhos
Utilizando a diretiva #DEFINE, pode-se criar atalhos para realizao de tarefas.
#DEFINE #DEFINE BANK0 BANK1 BCF STATUS,RP0 BSF STATUS,RP0
Atalhos
Para a utilizao de vrias Strings, temos a diretiva MACRO e ENDM.
BANK0
BCF BCF
MACRO
STATUS,RP0 STATUS,RP1
ENDM
Atalhos
BANK1
BSF BCF
MACRO
STATUS,RP0 STATUS,RP1
ENDM BANK2
BCF BSF
MACRO
STATUS,RP0 STATUS,RP1
ENDM BANK3
BSF BSF
MACRO
STATUS,RP0 STATUS,RP1
ENDM
Variveis
Para declarao de variveis, pode-se utilizar a diretiva EQU
W_TEMP EQU 0x20
Obs. Como no caso anterior, sua utilizao restrita a somente uma string.
Variveis
Para a declarao de variveis em bloco, utiliza-se a diretiva CBLOCK e ENDC:
CBLOCK 0x20 W_TEMP STATUS_TEMP CONT FILTRO FLAG MARIA LED ENDC
FLAGS
Est mais relacionado a tcnicas de programao, a criao de uma varivel relacionada a eventos do sistema. FLAG EQU 0x23
Neste caso, cria-se uma varivel com o nome FLAG, no endereo 0x23, onde pode-se relacionar cada um dos seus 8 bits com eventos do programa. Por exemplo, se o led j acendeu, o bit 1 vai para 1. Se o boto j foi pressionado o bit 3 vai para 0.
Constantes
A definio de constantes muito utilizada quando se utiliza muito um determinado valor no projeto, mas que este pode ser modificado para ajustes, no precisando modific-lo em todos os locais do programa que o mesmo aparece.
Constantes
Declarao de Constantes:
Decimal Hexa Octal Binrio ASCII Dxx ou .xx Hxx ou 0Xxx Oxx Bxxxxxxxx Ax ou x
Constantes
TEMPO EQU .200 MAX EQU HAA MIN EQU B00011010
Neste caso, utiliza-se a diretiva DEFINE para associar o termo BOTAO1 e BOTAO2 com os pinos RA1 e RA2 , respectivamente, e o termo LED ao pino RB0, podendo l-los e escrev-los diretamente.
Inicializao / Configuraes
CLRF PORTA CLRF PORTB CONFIGURAES DE PORTAS
Programa LED
Inicio
Apaga LED
No
Debounce
Inicio DEBOUNCE=6 No B1=? Sim Inc. DEBOUNCE DEB = 0? Sim No
DEBOUNCE=6
TRATA BOTAO
Debounce
INC_DEBOUNCE MOVLW .6 MOVWF DEBOUNCE
TESTA_B1 BTFSC B1 GOTO INC_DEBOUNCE INCF DEBOUNCE,F BTFSS STATUS,Z GOTO TESTA_B1
Debounce
INICIALIZA MOVLW .200 MOVWF DEBOUNCE
TESTA_B1 BTFSC B1 GOTO INICIALIZA DECF DEBOUNCE,F BTFSS STATUS,Z GOTO TESTA_B1
Debounce
INICIALIZA MOVLW .200 MOVWF DEBOUNCE
TESTA_B1 BTFSC B1 GOTO INICIALIZA DECFSZ DEBOUNCE,F GOTO TESTA_B1 MOVLW .200 MOVWF DEBOUNCE GOTO TRATA_B1
Interrupes
qualquer tipo de evento recebido pelo microprocessador que desvie da seqncia normal de programao e passe a executar uma outra seqncia de tratamento deste evento recebido.
Interrupes
Fontes de Interrupo:
1. Interrupo Externa atravs do pino RB0/INT 2. Interrupo por transbordo do Timer 0 - TMR0 3. Interrupo quando se troca alguma entrada em RB4:RB7 4. Interrupo quando se completa uma escrita de dados na EEPROM 5. Mdulo Comparador 6. Interrupo de USART 7. Estouro de TMR1 8. Quando TMR2 = PR2
Interrupes
Habilitao/desabilitao das interrupes feita atravs dos bits de controle dos registradores INTCON / PIE1 Verificao de Interrupo pelos Registradores INTCON / PIR1 As interrupes so desabilitadas com o Reset A instruo de Retorno de Interrupo - RETFIE habilita as interrupes Quando se atende uma interrupo, desabilitase automaticamente todas as interrupes e o programa salta para o endereo 0004 da memria de programa.
W_TEMP STATUS,W
STATUS,RP0
STATUS_TEMP INTCON,T0IF APAGA_FLAG_TMR0 PIR1, EE1F APAGA_FLAG_EEPROM RESGATA_REGS
INTCON,T0IF
PIR1,EE1F
Reset
Resistor de pull-up (1 a 10K) conectado ao pino _MCLR do PIC. O pino de entrada CMOS e no drena corrente significativa do resistor. PWRTE - Este bit de configurao (mid-range) insere 72ms de atraso antes que a primeira instruo seja buscada e executada. Power-On Reset (POR) Aguarda a tenso de alimentao chegar a um nvel suficiente para o correto funcionamento do PIC. Brown-Out Reset (BOR) Ocorre quando a tenso de alimentao do PIC est abaixo de 4V. (impede que o PIC trave em caso de oscilao de energia)
Timer / Counter
Temporizador/Contador de 8 Bits TMR0 (REGISTRADOR) Pode ser selecionado Clock interno ou externo (subida ou descida de borda)
OPTION_REG.T0CS = 0 --- Temporizador OPTION_REG.T0CS = 1 --- Contador
Temporizador : incrementado a cada ciclo de instruo Quando se escreve em TMR0, o incremento se inibe durante dois ciclos de instruo
Timer / Counter
Prescaler para Temporizao:
Configurado pelos bits PS2:PS0 do OPTION_REG Escalas de 2,4,8,16,32,64,128 e 256 x Ciclo de Instruo ( Determinado pelo Clock), configurado no OPTION_REG Ciclo de Instruo = [1/(Fosc/4)]
Exemplo
CALL SUBROTINA SUBROTINA BANK1 MOVLW MOVWF BANK0 MOVLW MOVWF MOVLW
DELAY BTFSS INTCON,T0IF GOTO DELAY BCF INTCON,T0IF MOVLW .131 MOVWF TMR0 DECFSZ COUNT,F GOTO DELAY RETURN
Timer / Counter
Contador: incrementado a cada subida ou descida de borda que ocorra no pino RA4/T0CKI
OPTION_REG.TOSE = 0 --- subida de borda OPTION_REG.TOSE = 1 --- descida de borda
Timers/Counters
MDULO TIMER 1
Timer/Contador de 16 bits Registrador T1CON Configura o temporizador Prescaler de 1,2,4 ou 8x Ciclo de Instruo
MDULO TIMER 2
Timer de 8 Bits (somente timer) Registrador T2CON Configura o temporizador Prescaler de 1,4 ou 16x Ciclo de Instruo Postscaler de 1,2,3 ... 16x Tempo do Prescaler
Exemplo
ORG 0x00 BANK0 MOVLW B11010110 MOVWF OPTION_REG
MOVLW 0X00 MOVWF TRISB BANK0 CLRF PORTB PARPAD
BSF PORTB,7 CALL RETARDO BCF PORTB,7 CALL RETARDO GOTO PARPAD
RETARDO
CLRF TMR0 REP
BTFSS TMR0,4 GOTO REP
RETURN
END