Vous êtes sur la page 1sur 67

www.mackenzie.com.

br

APOSTILA MICROAPLICAO
TECNOLOGIA ELTRICA - EEUM

PRIMEIRO SEMESTRE 2007


PROF. IVAIR REIS N. ABREU
02/08/2006

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

PLANEJAMENTO DIDTICO PEDAGGICO DA DISCIPLINA MICROPROCESSADORES APLICAO CURSO SUPERIOR DE TECNOLOGIA ELTRICA - EEUM UNIDADE: EEUPM DISCIPLINA: Microprocessadores Aplicao PROFESSOR: Ivair Reis Neves Abreu Departamento: Eletrnica ETAPA: 6 CARGA HORRIA: 4 aulas tericas SEMESTRE LETIVO: primeiro Introduo: a proposta deste planejamento pedaggico baseia-se no processo de Qualidade Total (TQM) tendo como base o principio PDCA ou seja, PLAN, DO, CHECK e ACT. O planejamento o prprio documento proposto, com objetivos, pr-requisitos, plano de aulas, avaliao e bibliografia deixando bem claro a proposta do curso de forma a ajustar as expectativas necessrias. A nfase no ciclo e no apenas no processo de avaliao (comum em cursos pedaggicos) leva a entender que o objetivo o processo de capacitao do aluno dentro do objetivo proposta atravs de um plano de aulas gradual, acompanhada de verificaes contnuas e principalmente processo de ao corretiva.

Internet -> no site www.ivair.com.br, ler texto de Sistema PDCA e acessar links de Sistemas da Qualidade.

08/02/2007 25/05/2007 x------------------------------------------------------------------x Pr-Requisito -> 13 semanas -> Objetivo Final Pr-Requisitos: Microprocessadores, Linguagem C, Eletrnica Digita. OBJETIVOS: o aluno dever adquirir os conceitos bsicos de sistemas com microcontroladores e processadores digitais de sinal ao nvel de projeto fsico e programao em linguagem de montagem (e mquina) para teste do sistema elaborado. EMENTA: - Reviso de Conceitos de Microprocessadores (Arquitetura e Linguagem Assembler) e Microcontrolador (famlia 8051) e perifricos. - Linguagem estruturada e tcnicas de programao com microcontroladores. Linguagem C aplicada a microcontroladores.

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

- Desenvolvimento de interfaces para microcontroladores: interrupo / temporizao, teclado matricial, display LCD, conversor A/D e comunicao serial. - Comparativo enre microcontroladores do mercado. - Introduo a Processamento Digital de Sinais: arquitetura do TMS320, conjunto de instrues e projeto de filtros digitais. METODOLOGIA Aula expositiva com auxlio de recursos audiovisuais (principalmente retroprojetor). O aluno dever constantemente participar atravs de aplicao de exerccios e projetos. Uma apostila envolvendo todos os pontos abordados servir de apoio didtico durante as exposies. Trabalhos levaro o aluno a refletir sobre pontos avanados no abordados diretamente na sala de aula. CRITRIO DE AVALIAO Mdia = N1(P1) x 0,35 + P2(0,8 x Lab + 0,2T) x 0,20 + PF x 0,45 Onde: P1 = primeira prova semestral - 12/04/2007 P2 = segunda prova semestral. - Secretaria T = trabalho individual de projeto de um sistema de controle. Lab = laboratrio Mdia >= 7 -> aluno aprovado 5,5 <= mdia<6.9 -> aluno aprovado se freqncia > 80 % BIBLIOGRAFIA
APLICAES PRTICAS DO MICRONTROLADOR 8051. Vidal Pereira da Silva Jr. - rica DESBRAVANDO O PIC - AMPLIADO E ATUALIZADO PARA PIC16F628A. David de Souza e Nicolas Lavnia. rica. MICROCONTROLADORES MSP430. Fabio Pereira. rica THE 8051 FAMILY OF MICROCONTROLLERS. Richard H. Barnett. Prentice Hall. THE 8051 MICROCONTROLLER. I. Schott Mackenzie. Prentice Hall. Using the MCS-51 Microcontroller 8051. HANG, Han-Way, 2000. Ed. Oxford University C and the 8051. SCHULTZ, Thomas, 2001. Ed. Prentice Hall APOSTILA MICROPROCESSADORES APLICAES. Ivair Reis Neves Abreu

Internet: www.microcontroller.com www.8052.com www.vidal.com.br www.asm51.eng.br www.icmaster.com www.microchip.com

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

www.ti.com www.zilog.com www.motorola.com. www.cypress.com www.asm51.eng.br Plano de Aula: Primeiro Semestre de 2007 Incio: 08/02/2007 Trmino: 25/05/2007 Prazo entrega final das notas: 23/06 Falta Prevista: Aulas Previstas: 13 semanas

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

1) - Reviso da Arquitetura do Microcontrolador 8051 1.1) - Famlia de Microcontroladores INTEL MCS-51: Os principais recursos destes microcontroladores so: - Memria de Programa de 4 kbytes: ROM (8051), EPROM (8751). Verso "romless" (8031). - 256 bytes de RAM (registradores) - 4 ports (latchs bidirecionais programveis) com 8 bits. - 2 temporizadores ("timers") de 16 bits - 1 unidade serial assncrona (UART) "full-duplex". - 5 interrupes (2 externas, 2 "timers" e 1 "UART"). - Oscilador interno para gerao de temporizao. - Acesso a at 64 Kbytes de RAM externa (dados) e 64 Kbytes de EPROM (programa) externa atravs do controle de 2 sinais de leitura (PSEN -> rea de programa - RD -> rea de dados). Esta estrutura conhecida como 'arquitetura HARVARD'. - 256 instrues otimizadas para controle. 1.2) - Arquitetura do Microntrolador 8051:

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

Figura 1 1.2.1) - Pinagem: - Vcc,Gnd: alimentao nica de 5 V. - X1-X2: conectada ao cristal externo (12 Mhz tpico). O sistema de temporizao interno divide a frequncia do cristal por 12, proporcionando um ciclo tpico de mquina de 1 mseg. - RST: entrada de inicializao ativa em nvel alto __ - EA ("external acess"): em nvel baixo, desabita os 4 kbytes de memria de programa interna. Toda a busca de instruo realizada externamente (atravs de uma EPROM). Em nvel alto habilita a memria interna. - ALE ("Address Latch Enable"): na utilizao de memria de programa externa, este pino tem a funo de indicar a presena de endereo (em nvel alto) ou dado (em nvel baixo) no barramento de endereo/dado multiplexado (AD0-AD7).

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

____ - PSEN ("Program Strobe Enable"): em nvel baixo indica leitura de uma instruo da rea de programa. Normalmente ligado ao pino RD da memria de programa. - Port P0 (P0.0-P0.7): seus 8 pinos podem ter dupla funo. Se no houver memria externa, so utilizados como sinais de entrada/sada do "latch" bidirecional P0. Se houver memria externa, atua como 8 sinais multiplexados de dados/endereo (AD0-AD7). O sinal de ALE indica a condio deste barramento. - Port P1 (P1.0-P1.7): "latch" bidirecional P1. 8 pinos de entrada/sada do

- Port P2 (P2.0-P2.7): seus 8 pinos tambm podem ter dupla funo. Se no houver memria externa com mais de 256 endereos, so utilizados como sinais de entrada/sada do "latch" bidirecional P2. Se houver necessidade de endereamento maior que 8 bits, atua como 8 sinais de endereo A8-A15. - Port P3 (P3.0-P3.7): dupla funo: P3.0: P3.1: P3.2: P3.3: P3.4: P3.5: P3.6: novamente, seus 8 sinais tem

RxD (recepo serial) / port P3.0 TxD (transmisso serial) / port P3.1 INT0 (interrupo 0) / port P3.2 INT1 (interrupo 1) / port P3.3 T0 (entrada Timer 0) / port P3.4 T1 (entrada Timer 1) / port P3.5 WR (sinal de escrita da RAM externa)/port P3.6 - P3.7: RD (sinal de leitura da RAM externa)/port P3.7 1.2.2) A memria RAM interna:

- rea de Registradores R0-R7 (00-1FH): o 8051 possui 4 bancos de registradores selecionados atravs dos bits RS1 e RS0 do registrador PSW. Normalmente estes registradores armazenam endereos da rea de rascunho (modo de endereamento indireto). - rea Booleana (binria) (20H-2FH): 16 bytes endereados bit a bit (totalizando 128 bits). Pode-se acessar cada bit individualmente indicando uma determinada condio binria (por exemplo: a tecla A de um teclado foi acionada). Estes bits so acessados pelas instrues booleanas do 8051. - rea de Rascunho (30H-7FH): se localiza a pilha do sistema. memria de uso geral onde

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

- rea de Registradores Especiais (SFR) (80H-FFH): rea onde se localiza todos os registradores com funo especial. O nmero destes registradores varia de acordo com as funes disponveis dentro do processador. Os registradores especiais mais comuns so: - PO (80H): port P0. - P1 (90H). - P2 (A0H). - P3 (B0H). - ACC (E0H): acumulador. - B (F0H) - PSW (D0H): registrador de status - SP (81H): apontador de pilha - DPL (82H): byte menos significativo do registrador DPTR. - DPH (83H): byte mais significativo do registrador DPTR. - PCON (87H): registrador de controle de consumo do 8051. - IE (A8H): registrador de habilitao do sistema de interrupes. - IP (B8H): registrador indicador de prioridade do sistema de interrupo. - TMOD (89H): registrador de modo dos timers. - TCON (88H): registrador de controle do timer 1 - T2CON (C8H): registrador de controle do timer 2. - TL0 (8AH): byte inferior do timer 1. - TH0 (8CH): byte superior do timer 1. - TL1 (8DH): byte inferior do timer 2. - TH1 (8BH): byte superior do timer 2.

1.3) - Cdigos de operao do microcontrolador 8051: (Ver conjunto de instrues anexo 1 e 2) 1.4) Projeto Bsico de Controle: 1.4.1) - CLP Bsico: - 1 sensor fotoeltirco / 1 lmpada - Firmware para controlar lmpada atravs do sensor fotoeltrico. Fazer o mesmo projeto com o 10F200 e 16F628A (www.microchip.com) 1.4.2) - Forno de Microondas com o 8031. - Sadas: 1 motor de prato 1 lmpada
8

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

- Entradas:

1 vlvula microondas 1 bip (buzzer) 1 chave liga/desliga 1 chave da porta 2 chaves gerais

- Firmware: Se a chave liga/desliga estiver acionada e a porta fechada ligar todas as sadas (menos o bip) por 1 minuto. Aps este tempo, acionar o bip por 0,5 segundo e voltar ao nicio do processo. Se a porta abrir durante o tempo de 1 minuto, desligar as sadas e esperar a porta fechar para finalizar processo. 1.5) Exerccio: 1) - Sistema de Automao de Iluminao de um escritrio com o 89S51 (www.atmel.com) - Sadas: 2 lmpadas externas. 8 lmpadas internas (1 para cada sala). - Entradas: 1 sensor fotoeltrico para controle das lmpadas externas. 1 sensor de presena em cada sala.

- Firmware: lmpadas externas-> ligar quando o sensor fotoeltrico estiver indicando escuro. lmpadas internas -> ligar quando for detectada a presena de alguma pessoa na sada. Desligar na ausncia. 2) - Fazer um projeto com as seguintes caractersticas: - 89S53 - Teclado 16 teclas - Comunicao serial RS232 - Conversor A/D de 8 canais (ADC0808) -> 0-1fffh - Display 16x2 -> 2000h-3fffh - 1 chave liga/desliga - 1 solenide - 1 lmpada - 1 sensor fotoeltrico Em relao da projeto fsico acima, fazer os seguintes programas: 3) - Fazer um programa para o sensor controlar a lmpada. Soluo:
;*** PROGRAMA EXEMPLO - CONTROLE DO DE UMA LAMPADA ATRAVES DE UM SENSOR ;* ;* SENSOR = 1 -> LIGA A LAMPADA

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

;* SENSOR = 0 -> DESLIGA A LAMPADA ;* ;*** ;*** DEFINICAO DOS LABELS CHAVE BIT P3.2 SOLENOIDE BIT P3.3 LAMPADA BIT P3.4 SENSOR BIT P3.5 PILHA EQU 60H ;*** INICIO DO PROGRAMA ORG 0 JMP INICIO ;SALTA AREA DE INTERRUPCAO ORG 30H INICIO: MOV SP,#PILHA CLR SOLENOIDE CLR LAMPADA LESENSOR: JB SENSOR,LIGALAM CLR LAMPADA JMP LECH LIGALAM: SETB LAMPADA JMP LESENSOR ;***AREA DE SUBROTINA ;***AREA DE SUBROTINAS DE INTERRUPCAO ;***AREA DE TABELAS END

4) - Fazer um programa para a chave controlar o solenide

10

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

2) Linguagem Assembler Estruturada: 2.1) - Estrutura bsica da Linguagem Assembler: A linguagem Assembler relaciona estruturas mnemnicas e pseudo-instrues (diretivas) com cdigos de operao (linguagem de mquina). Por ser uma representao direta dos cdigos de operao do microprocessador, permite um total controle dos elementos fsicos de um sistema microprocessado (acesso a registradores, posies absolutas de memria, controle de perifricos, etc.). Campos bsicos de uma linha de Linguagem Assembler: LABEL Exemplo: CDIGO DE OPERAO OPERANDO COMENTRIOS MOV A,B ;carrega A com B

Campo Label: rotula um endereo do programa com o objetivo de facilitar as instrues de salta do sistema (o compilador associa o nome do rtulo com o endereo absoluto). O label tambm utilizado para nomear variveis do sistema atravs da diretiva EQU (equate). O campo Label separado do cdigo de operao atravs de um caracter de espao ou TAB. Cdigo de Operao: estruturas mnemnicas relacionada com o cdigo de operao real. Operando: contem informaes de registros, valores numricos, labels ou expresses numricas que complementam o mnemnico. Ex.:1) mov a,#05 equ add 3) 4) mov mov 05 a,#VALOR_CTE dptr,#04ffh + 1 a,#8 AND 1

2) VALOR_CTE ...

Comentrios: explicao de um procedimento com o objetivo de esclarecer o funcionamento de determinada parte do programa. Normalmente o comentrio vem seguido do smbolo do ponto e vrgula. 2.2) - Macros em Assembler:

11

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

Macros so estruturas do programa repetidas frequentemente. Estas rotinas podem ser chamadas por um nome e ao serem compiladas so substitudas pelo cdigo. Exercem a mesma funo das macros do Word, Excel, etc. As macros so definidas no ASM51 da seguinte forma: %*DEFINE (nome da macro) (estrutura da macro) Exemplo: %*DEFINE(PUSH_DPTR) (PUSH DPH PUSH DPL ) ROTINA: %PUSH_DPTR

No programa .LST aparece a estrutura: ROTINA: PUSH DPH PUSH DPL

2.3) - Tcnicas para programao Assembler: importante adotar um claro e consistente estilo na programao em linguagem Assembler. Este procedimento fundamental particularmente quando se trabalha em equipe, pois os diversos programadores precisam estar sincronizados na forma de trabalho. Adotando-se alguns procedimentos bsicos para a execuo do trabalho facilita no apenas o trabalho em equipe como a programao de um nico programador, pois agiliza a produo e possveis correes do programa. Normalmente estes procedimentos so padronizados por processos de controle de qualidade que as empresas ou programadores adotam. 2.3.1) - Labels e utilizao de EQUATES: A utilizao de expresses identificadores de endereos das linhas de programao (seguida de : ) ou de nmeros / endereos (com EQU) facilitam a documentao e compreenso do programa, agilizando a programao e principalmente o reparo / manuteno do sistema. A substituio do valor real do Label (varivel / endereo) providenciada pelo processo de compilao. Deve-se procurar utilizar nomes dos labels que sejam mnemnicos para as funes realizadas. Ex.:

12

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

PILHA TIMEH0 TIMEL0 PROG_IN PROG_T0 RESET0:

EQU EQU EQU EQU EQU ORG JMP ORG JMP

60H 30H ;TEMPO DE 10 MSEG NO TIMER0 0C0H 10000010B ;PROGRAMA IE 00000001B ;PROGRAMA TMOD 0 INICIO 0BH LE_IO

ORG 30H INICIO: MOV SP,#PILHA MOV IE,#PROG_INT MOV TMOD,#PROG_T0 MOV TH0,#TIMEH0 MOV TL0,#TIMEL0 SETB TR0 CALL INICIA_DSP ... ;SUBROTINAS ;INICIALIZA DISPLAY LCD INICIA_DSP: .... RET ;SUBROTINA INTERRUPCAO LE_IO: ... RETI 2.3.2) - Comentrios: As linhas de comentrios, normalmente precedidas por ponto e vrgula, devem ser utilizadas para indicar, ao programador, as funes bsicas da rotina em questo e de determinadas instrues. Seu uso no deve ser indiscriminado (indicando situaes obvias e redundantes) mas sim esclarecer a funo das rotinas comentadas. As estruturas de deciso (utilizando JZ, JNZ, CJNZ, DJNZ, etc) devem sempre estar objetivamente comentadas. Os programadores e empresas mais capacitadas normalmente estabelecem formatos para os comentrios, de tal forma a padronizar a documentao. Um exemplo sempre existir um comentrio no incio do programa descrevendo a funo do programa de forma genrica, as interrupes utilizando, histrico de alteraes, datas, programadores

13

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

envolvidos, pendncias, etc. Cada sub-rotina deve ser acompanhada de um cabealho contendo: - Descrio objetiva da rotina. - Parmetros de entrada - Parmetros de sada - Registradores alterados / utilizados Exemplo: ;*********** ;* ROTINA EXEMPLO - F.C.I MACKENZIE ;* ;* Data Incio: 01/03/2000 ;* Programadores: Jos, Joo e Maria ;* Descrio: esta rotina tem como funo exemplificar a forma de documentao ;* ;* Histrico de Alteraes: ;* 01/03 -> inicio da programao. ;* ;* Pendncias: ;* - Melhorar rotina de clculo do CheckSun ;* ;************ ;*** ;* REA DE LABELS ;*** ... ... ;*** INCIO DAS SUBROTINAS ;*** ROTINA DE ESCRITA NO DISPLAY ;* ;* DESCRIO: rotina com a funo de escrever os dados da memria prestabelecida no DSP ;* ;* Parmetros de Entrada: End. 50h-5fh -> primeira linha DSP ;* Parmetros de Sada: ;* Registradores alterados: Acc, DPTR, R0 ;* ;* Histrico de alterao: ;* Incio: 01/03/2000 ;* ;*** ESCR_DSP: ...

14

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

RET 2.3.3) - Salvamento de Registradores na Pilha: Para a correta estruturao do programa fundamental garantir que uma sub-rotina no venha a interferir o funcionamento de outras rotinas no programa. Esta transparncia garantida pelo controle dos registradores alterados na rotina e seu devido salvamento na pilha quando no se tratar de registradores utilizados para passagem de parmetros de sada. Portanto, necessrio a utilizao das instrues PUSH e POP para garantir a integridade dos registradores alterados. Exemplo: ;*** SUBROTINA DE RECEPO SERIAL ;* ;* Descrio: rotina acessada pela interrupo serial. L SBUF, carregando o dado no ;* endereo 30H se o mesmo for diferente de 00. ;* Registradores de Entrada: SBUF ;* Registradores de Sada: 30H ;* Registradores alterados: ACC, PSW LESERIAL: PUSH ACC PUSH PSW MOV A,SBUF CJNE A,#00,CONT1 MOV 30H,A POP PSW POP ACC RETI

CONT1:

2.3.4) - Utilizao de Sub-rotinas: O princpio bsico da programao estruturada e bem feita a diviso do programa em sub-rotinas, dividindo a soluo para facilitar a obteno do algoritmo de cada parte do programa. A diviso do programa tambm auxilia na diviso de tarefas e procedimento de testes de cada parte do programa. A idia bsica a mesma quando temos um grande problema para resolver e o dividimos para facilitar a soluo final. O conceito de sub-rotina tambm est ligado ao fato de muitas vezes possuirmos estruturas repetitivas no programa (por exemplo: diversas vezes temos a necessidade de escrever mensagens no display). Se colocarmos estas estruturas em sub-rotinas e a acessamos todas as vezes que necessitamos desta funo, claro que existir uma grande economia de cdigos de programao.

15

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

As sub-rotinas podem estar ligadas ao sistema de interrupo. Neste caso, sua funo est ligada diretamente a caracterstica da prpria interrupo. Ex.: a interrupo serial est ligada a funo de receber e transmitir dados seriais. No planejamento do programa devemos dividir o programa em rotina principal, subrotinas de interrupo e sub-rotinas genricas. Cada um destes blocos poder ser criado e testado separadamente (inclusive com auxlio de programas de LINK / LOCATE), existindo no final apenas um teste final interligando todas as rotinas. 2.3.5) - Organizao do Programa: Normalmente os programas so ordenados da seguinte forma: - Comentrio Inicial - rea de Labes (equates) - Vetores e chamada de Interrupo - Programa Principal (normalmente em loop) - rea de Sub-rotinas genricas. - rea de Sub-rotinas de interrupo. - rea de tabelas (DB, DW, etc.) O algoritmo do programa dever ser estruturado baseado na ordem acima. 2.3.6) - Erros mais comuns ocorridos na programao em Linguagem Assembler: - Sadas de sub-rotinas com saltos: a nica forma de sada da sub-rotina atravs de instrues RET ou RETI. A utilizao de JMPs ou qualquer outro tipo de instruo de desvio far o programa se perder, ou os endereos de retorno armazenados na pilha estaro perdidos. - Esquecimento de indicar a rea de pilha: todo o programa necessita ser comeado atravs da definio clara da rea de pilha (instruo MOV SP,#PILHA). - Memria insuficiente para a pilha: a utilizao de um grande nmero de subrotinas "aninhadas" (sub-rotinas dentro de sub-rotinas), pode levar ao "estouro" da rea da memria reservada para a pilha. - Salvamento e Resgate da Pilha: todo o salvamento de registradores na pilha (com PUSH) deve ser resgatado no final da rotina (com POP). Lembrar que a pilha trabalha na estrutura do ltimo dado salvo ser o primeiro a ser resgatado (FirsInLastOut - FILO). - Registradores alterados em sub-rotinas: todos os registradores destrudos em subrotinas que possam ser utilizados em outras rotinas devem ser salvos na pilha para garantir a transparncia do programa. - Inverso dos registradores nas instrues; bastante comum a troca de registradores em instrues MOV. Ex.: deseja-se mover o dado do acumulador para o registrador R0 utilizando MOV A,R0

16

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

- No inicializao de ponteiro de memrias: quando utilizamos endereamento indireto (com @) e no inicializarmos o ponteiro. Ex: mov @r0,A ;o acumulador deslocado para qual endereo?

- No inicializao de registradores e memria RAM: o programa sempre deve colocar os registradores e rea de RAM com dados conhecidos e controlados. - Utilizao invertida da condio de salto: erro bastante comum e que provoca a inverso das condies de sada. A simulao do programa necessria para se precaver deste tipo de erro. Ex: Saltamos quando o bit alto (JB) e deveria ser baixo (JNB). - No parada do programa ou falta de retorno: todo o programa principal deve ser cclico (loop) e jamais invadir a rea de sub-rotinas. Toda a sub-rotina deve prever o retorno ao programa que a chamou (atravs de RET ou RETI)

17

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

3) Interface para Display de Cristal Lquido (L.C.D.): Planejamento (P): Este captulo capacitar o aluno a: - Projetar interfaces com displays de LCD (segmentos e mdulos) com acesso atravs de ports ou com endereamento de memria. - Utilizar rotinas de configurao e escrita em displays de LCD. - Projetar CLP utilizando ports e mdulos de LCD.

Execuo (D): Links: http://www.intech-lcd.com.hk/ www.displaytec.com.br Atualmente esto disponveis no mercado uma grande variedade de Displays de Cristal Lquido com circuitos de controle e processamento interno que visam facilitar o projeto de hardware e a rotina de programao destes tipos de dispositivos de sada. A figura a seguir mostra os principais controles destes tipos de displays:

Figura -Arquitetura bsica dos displays L.C.D.

18

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

Figura - Display 16 x 2 (www.displaytec.com.br) Descrio dos sinais: - D0-D7: barramento de dados com dupla funo: envio dos comandos de programao do display (posicionamento do cursor, endereo do caracter a ser utilizado, etc.) e dos dados a serem escritos no display. _ - C/D (RS): em nvel baixo, indica que o barramento de dados D0-D7 carrega a informao de controle (configurao geral do display). Em nvel alto, informao de dados (informao a ser mostrado no display). Sinal normalmente ligado ao endereo A0 (endereo mpar -> dado; endereo par -> controle) - E: sinal que em nvel alto habilita o display. Nos modelos com 4 linhas, utilizamos um sinal E1 para a habilitao das 2 primeiras linhas e um sinal E2 para a habilitao das 2 ltimas linhas. _ - R/W: sinal de entrada indicando em nvel baixo processo de escrita (barramento de dados como entrada) e em nvel alto processo de leitura (barramento de dados como sada). - Vo: entrada de tenso para controle de luminosidade do display - Vss/GND: entrada de alimentao nica de +5 Vcc. Comercialmente, citamos abaixo alguns dos modelos disponveis: - Display 8 caracteres x 1 linha, caracter com 7 pontos verticais e 5 pontos horizontais - Display 16x1, caracter 8x5 - Display 16x1, caracter 11x5 - Display 16x2, caracter 8x5 - Display 20x2, caracter 8x5 - Display 20x4, caracter 8x5
19

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

- Display 40x1, caracter 8x5 - Display 40x2, caracter 8x5 - Display 40x4, caracter 8x5 Para display de 40 x 2 ou 40 x 4 temos 2 sinais de seleo Enable (E).

Figura - Display 40 x 4 (www.displaytec.com.br) 3.1) - Sistema mnimo com o display L.C.D. :

20

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

Figura - Sistema mnimo display L.C.D com endereamento de memria

Figura - Sistema Mnimo com o display L.C.D. utilizando Ports Verificao (C): Exerccios: 1) - Projetar uma interface com mdulo de LCD 20 x 2 utilizando endereamento por memria E000-FFFFh 2) - Utilizando um microprocessador 2051 (www.atmel.com) com 2 ports, projetar uma interface LCD com displays 40x4 Ao (A):

- Havendo problemas no resultado dos exerccios propostos, estudar o conceito de mdulo de LCD (ver bibliografia bsica).

3.2) - Programao Mdulo do Display:

21

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

Controle (C/D = 0) Com o sinal C/D colocado em nvel baixo temos a configurao bsica do display. Os principais comandos so listados abaixo: - Configura display para 1 linha (8 bits) -> 30H - 2 linhas (8 bits) -> 38H - Display ativado com cursor fixo -> 0EH - Display ativado com cursor intermitente -> 0CH - Cursor apagado -> 08H - Mensagem com deslocamento esquerda -> 07H - Mensagem com deslocamento direita -> 05H - Cursor com deslocamento esquerda -> 04H - Cursor com deslocamento direita -> 06H - Limpa display e retorna o cursor -> 01H - Desloca somente cursor esquerda -> 10H - Desloca somente cursor direita -> 14H Exemplo: 1) - Inicializar display com 2 linhas, ligado com cursor intermitente, deslocamento esquerda e limpando o display. MOV DPTR,#00 ;COLOCA END.A0 (C/D) = 0 -> CONTR. MOV A,#38H ;2 LINHAS MOVX @DPTR,A CALL TEMPO15 ;ESPERA 15 MSEG. MOV A,#0CH ;DISPLAY INTERMITENTE MOVX @DPTR,A CALL TEMPO15 MOV A,#05H ;DESLOCAMENTO A DIREITA MOVX @DPTR,A CALL TEMPO15 MOV A,#01H 2) - Idem para 1 linha, sem cursor, deslocamento direita e limpando o display.

Para o posicionamento do cursor/mensagem dentro do display basta fornecermos como comando o endereamento da tabela de endereamento do display fornecida abaixo: 1P 2P 3P ...... 1 L -> 80H 81H 82H 39P 40P A6H A7H
22

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

2 L -> C0H C1H C2H Exemplo:

E6H E7H

1) - Posicionar o cursor na primeira posio do display. mov dptr,#00 mov a,#80h movx dptr,a ;controle ;posiciona cursor

2) - Posicionar o cursor no meio da primeira linha do display de 20 caracteres.

Programao de Dados (C/D = 1) Para a escrita de dados no display, colocamos o comando C/D em nvel ALTO (endereo impar). O display necessita ser inicializado e o cursor posicionado na posio do primeiro caracter. Uma vez posicionado este caracter, automaticamente o display incrementa a posio do cursor, no necessitando de reprogramaes constantes do posicionamento do display. Exemplo: 1) - Escrever a letra TECNOLOGIA no meio da primeira linha de um display 16x2

2) - Idem para a segunda linha

23

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

Verificao (C): Exerccios: 1) Fazer um projeto de um CLP com as seguintes caractersticas: - 89S52 com sensor de presena em P3.2, ventilador P3.3 e uma lmpada em P3.4. LCD no endereo E000-FFFFh. - Fazer uma firmware para escrever no LCD " TECNOLOGIA " " MACKENZIE " e 1 segundo depois indicar no LCD a condio de SALA VAZIA / SAIDAS DESLIGADAS ou SALA OCUPADA / SAIDAS LIGADAS.

24

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

4) Sistema de Interrupo, Temporizao e Teclado Matricial: 4.1) - Sistema de Interrupo: O microcontrolador 8051 possui 5 interrupes, com a prioridade mais alta podendo ser programada pelo registrador IP. O nvel de prioridade 'default' e os vetores de interrupo so apresentados abaixo: IE0 TF0 IE1 TF1 SRT (interrupo externa 0) (interrupo do timer 0) (interrupo externa 1) (interrupo do timer 1) (interface serial) -> -> -> -> -> 0003H 000BH 0013H 001BH 0023H

- Registrador de habilitao do sistema de interrupo: _________________________________________ IE: | EA | x | x | ES | ET1 | EX1 | ET0 | EX0 | EA: ES: ET1: EX1: ET0: EX0: em em em em em em nvel nvel nvel nvel nvel nvel baixo, baixo, baixo, baixo, baixo, baixo, desabilita desabilita desabilita desabilita desabilita desabilita todas as interrues interrupo serial interrupo do timer 1 interrupo externa 1 interrupo do timer 0 interrupo externa 0

- Registrador do nvel de prioridade: ________________________________________ IP: | x | x | x | PS | PT1 | PX1 | PT0 | PX0 | PS: em PT1:em PX1:em PT0:em PX0:em nvel nvel nvel nvel nvel alto, alto, alto, alto, alto, interrupo interrupo interrupo interrupo interrupo serial timer 1 externa timer 0 externa prioridade prioridade 1 prioridade prioridade 0 prioridade

4.2) - Sistema de temporizao: O microcontrolador da famlia 8051 possui 2 timers de 16 bits. Seu nmero programado incrementado por pulsos externos (dos pinos Tin1 e Tin2) ou pelo clock interno de 1/12 fcristal. Quando o nmero do timer chega a zero, a interrupo respectiva (TF0 - end. 000bH ou TF1 - end. 001bH) acionada. Registradores do sistema de temporizao: - Registrador TH0 e TL0: registradores de 8 bits do timer 0 localizado na rea de registradores especiais (SFR) que somados formam o contador de 16 bits.
25

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

- Registrador TH1 e TL1: registradores de 8 bits do timer 1 localizado na rea de registradores especiais (SFR) que somados formam o contador de 16 bits. - Registrador de modo: ---------------------- ---------------------TMOD: | GATE | C/T | M1 | M0 | GATE | C/T | M1 | M0 | ---------------------- ---------------------TIMER 1 TIMER 0 GATE: utilizado quando se deseja um controle do timer externo atravs do pino externo INT0 ou INT1 (dependendo do timer utilizado). Quando este bit est em 1 e o pino INT externo est setado, o bit TR1 do registrador TCON controla o funcionamento do timer. C/T: em nvel alto, coloca o timer como contador dos pulsos da entrada Tin1 (externa). Em nvel baixo, o timer acionada pelo sinal de frequncia 1/12 do oscilador interno. M1 0 0 1 1 M0 0 1 0 1 : -> -> -> -> controla modo de operao do timer possuiu um divisor de 5 bits e um contador de 8 bits sem divisor, possuiu contador de 16 bits contador de 8 bits (TH). O byte TL recarregado a cada ciclo em TH para timer.

- Registrador de controle ______________________________________________ ---------------------------------------------TCON: | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0| ----------------------- ---------------------TF0: bit de status. Em nvel alto indica overflow do timer 0. TR0: em nvel alto habilita o funcionamento do timer 0. Precisa ser setado para o timer operar. IE0: bit de status. Em nvel alto indica que houve pulso na entrada do pino Tin0. IT0: em nvel alto indica pulso positivo na entrada do pino Tin0. Em nvel baixo indico pulso negativo. 4.3) Rotina de Inicializao (CONFIG:) CONFIG: ;INICIALIZAO DO DISPLAY ... ;INICIALIZAO DO TIMER / INTERRUPO
26

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

MOV MOV MOV MOV MOV MOV MOV SETB SETB RET

IE,#10001111B ;HABILITA TIMERS E INTER. EXT. IP,#00000100B ;PRIORIDADE PARA TIMER0 TH1,#TIMER1H ;PARTE ALTA DO TIMER1 TL1,#TIMER1L ;PARTE BAIXA TH0,#TIMER0H ;PARTE ALTA DO TIMER0 TL0,#TIMER0L ;PARTE BAIXA TMOD,#00100001B;TIMER1->8BITS,TIMER0->16 BITS TR0 TR1

4.4) Exerccios de Interrupo : 1) - Supondo que a entrada da primeira interrupo externa (IE0) seja utilizada para contagem de uma catraca (chave)e que um solenoide ligue por 1 segundo a cada volta da catraca. 2) Supondo que um teclado externo interrompa o microcontrolador 8031 utilizando a interrupo externa 1, colocar o conteudo da tecla acionada (armazenada na memria externa do teclado com endereo 0 - utilizar a instruo MOVX) no endereo 50H da memria interna. 3) - Idem para um conversor A/D utilizando a interrupo IE1 e endereo de acesso 20H. 4) Fazer um programa para a IE0 controlar uma chave (ligado a uma porta). Cada vez que a porta for aberta, acionar o buzzer por 0,5 segundos e incrementar as posies de 40 a 43 H (32 bits). A IE1 ser ligada a um mouse lido com endereo externo 2050h e guardado no endereo interno 50h. Enviar para um LCD (endereo 0-1fffh) a mensagem CONTROLE MOUSE/PORTA

4.5 - Exerccios de Temporizao: 1) - Qual o tempo mximo possvel de ser implementado pelos timer 0 e 1 se utilizarmos um cristal de 12 Mhz para o cristal externo. 2) - Idem ao exerccio anterior utilizando um cristal de 1 Mhz externo. 3) - Se utilizarmos o timer 0 controlado pela entrada externa 0 (pino T0), qual o tempo mximo de temporizao se recebermos um sinal externo quadrado de 1 Khz?

27

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

4) - Qual o valor de configurao do Timer 0 para um tempo de 15 mseg (cristal de 12 Mhz)? 5) - Fazer uma rotina para a cada 100 mseg (supor que o cristal do microcontrolar de 6 Mhz) a posio da chave localizada no port P1.0 seja colocada na posio de memria booleana 20.0H. Se a chave estiver em nvel alto, ligar um motor localizado no port P1.1. Caso contrrio, desligar o mesmo motor. Utilizar o timer 0 para implementar a temporizao. 7) - Fazer com que as posies 30 H e 31 H sejam incrementadas a cada 1 mseg. Usar o timer 1 para implementar a temporizao. Utilizar cristal de 12 Mhz. 8) - Utilizando o timer 0 programado para 10 mseg. fazer com que a posio 40 H e 41 H sejam incrementadas a cada 10 mseg. Utilizar cristal de 1 Mhz. 9) - Colocar a mensagem abaixo no display. A cada 20 mseg. ler o sensor P1.0. Ligar uma lmpada (P1.1) se o sensor estiver em nvel baixo e desligar a lmpada se o sensor estiver em nvel alto. 10) Gerar um sinal quadrado de 1 kHz no port P1.0 (cristal de 12Mhz). 4.6) - Sistema de varredura de Teclado As teclas esto localizadas na interseco de linhas (ports de sada) e colunas (ports de entrada). Ao acionar uma determinada tecla, o sinal da linha colocado na coluna para ser lida. Um sistema de varredura (com frequncia superior da frequncia de toque das teclas) garante um sinal em nvel alto (ou baixo) durante um pequeno perodo suficiente para ser reconhecido pelo port de entrada em caso de acionamento de alguma tecla.

Figura:

teclado de 16 teclas com varredura matricial

28

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

4.7) Rotinas Bsicas:

4.7.1) Rotina de Leitura de um teclado na rotina timer0 (LETEC:) Rotina ligada a interrupo do timer (0 ou 1) temporizada para um tempo menor que a frequncia da digitao (tpico valor < 100mseg). Guardar as teclas digitadas nas posies booleanas (20.0 a 2f.7). Teclado telefnico (4 linhas x 3 colunas) 1 4 7 * 2 5 8 0 3 6 9 #

Tempo de 50 mseg (12 Mhz) -> 4.8) Exerccios: 1) - Fazer a tecla * ligar uma lmpada em P1.0 e a tela # desligar a lmpada

29

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

5) - Sistema de Comunicao Serial 8051: 5.1) - Introduo e conceitos bsicos: A comunicao serial proporciona a comunicao entre 2 pontos ou uma rede de pontos atravs de um nmero reduzido de vias (2 vias no caso da comunicao full-duplex ou 1 via no caso da comunicao half-duplex, rede de fibras ticas, cabo coaxial utilizado em redes padro ETHERNET). A comunicao serial proporciona maior economia a infraestrutura de transferncia de dados (menor nmero de vias nos cabos, menor nmero de canais nos repetidores de linha, etc.), maior imunidade a ruidos, maior alcance. Apresenta como desvantagem bsica a menor velocidade de processamento (variando de 300 b.p.s - baunds at redes de alta velocidade de 100 Mbits/seg) em se comparando com a velocidade de transferncia paralela interna dos computadores (atravs dos barramentos internos). Para baixas velocidades, podemos subdividir a comunicao serial em comunicao assncrona e sncrona: 5.1.1) - Comunicao Assncrona: A comunicao assncrona envia dados de incio (start bit) e fim de transmisso (stop bit). Bits de paridade so opcionais. Apesar da simplicidade e alta utilizao utilizada apenas em sistemas de baixa velocidade, devido a perda de rendimento introduzido pelos sinais START BIT, STOP BIT e PARIDADE.

Figura 11 - Estrutura bsica da comunicao assncrona Os dispositivos seriais programveis presentes dentro de chips dedicados ou microcontroladores recebem o nome de UART (UNIDADE ASSNCRONA DE RECEPO TRANSMISSO) 5.1.2) - Comunicao Sncrona: Na comunicao sncrona a transmisso de um bloco de caracter com adio de controles apenas no incio e final do bloco. O nmero de blocos transmitidos varia bastante. Um
30

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

caracter de CHECK-SUM garante a integridade da comunicao. Um protocolo padro garante a qualidade e integridade da comunicao (atravs de comandos como NACK e ACK)

Figura 12 - Estrutura bsica de comunicao sncrona. Os dispositivos seriais programveis assncronos/sncronos presentes dentro de chips dedicados ou microcontroladores recebem o nome de USART (UNIDADE SNCRONA / ASSNCRONA DE RECEPO TRANSMISSO) 5.1.3) - Interface padro RS-232: Segue orientao V.24 da CCITT. Aumenta a imunidade a rudo incrementando os nveis de tenso dos bits 0 e 1 transmitidos.

Sinal RS232 - Alta imunidade a rudo Figura 13 - Sinais padro TTL e RS-232 A implementao mais comum realizada atravs de linedrivers integrados (como os chips 1488 - TTL/RS232 e 1489 RS323/TTL). 5.1.4) - Sinais tpicos de uma interface padro serial:

31

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

Os sinais mais comuns encontrados em comunicao serial assncrona mostrado abaixo. Uma aplicao tpica desta configurao implementada na comunicao computador/MODEM (interface utilizada para modulao/demodulao para comunicao na rede telefnica). - TXD: transmisso de dados. - RXD: recepo de dados. - RTS (request to send): sinal de sada de propsito geral. Normalmente ativo em 0, tem como principais aplicaes validar dados trasmitidos (como um sinal STROBE) ou determinar se o sinal de transmisso ou recepo nas comunicaes full-duplex. - CTS (clear to send): sinal de entrada como resposta ao sinal RTS, indicando entendimento do sinal RTS. Em muitos sistemas, este sinal necessita estar em 0 para funcionamento do sistema. - DTR (data terminal ready): sinal de sada de propsito geral. - DSR (data set ready): sinal de entrada de propsito geral. - CD (carrier detect): sinal de entrada indicando que a portadora foi detectada pelo modem. Muitos dos sinais de propsito acima tem suas funes ligadas ao protocolo. 5.2) UART 8051 - Funcionamento bsico: O port serial do microcontrolador 8051 full-duplex, ou seja, pode-se transmitir e receber uma comunicao simultaneamente. Como existe um buffer de recepo (SBUF) possvel esperar-se a leitura deste buffer sem a perda do prximo dado de recepo. Este mesmo buffer SBUF utilizado para a transmisso de dados. O port serial opera de 4 modos: - Modo 0: comunicao serial de 8 bits (sem START e STOP BIT). Bit LSB o primeiro. Baud-rate fixo em 1/12 da frequncia do cristal. - Modo 1: comunicao serial de 10 bits (com START e STOP BIT). Na recepo, o STOP BIT vai para o RB8 do registrador SCON se SM2=0. Baud-rate programvel de acordo com carga do timer 1. - Modo 2: comunicao serial de 11 bits (com START, STOP BIT e PARIDADE). O bit de paridade programvel atravs do bit TB8 de SCON. Na recepo, o bit de paridade guardado em RB8 de SCON. O baud rate programvel pelo bit SMOD do registrador PCON. Com SMOD=0, baud rate 1/64 da freqncia

32

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

do cristal. Com SMOD=1, baud-rate 1/32 da freqncia do cristal. - Modo 3: idem ao modo 2, mas com baud-rate programvel pelo timer 1. A comunicao serial do 8051 trabalha basicamente com 3 registradores: - Registrador PCON: registrador com o bit SMOD e bits para gerenciamento de energia nas verses CMOS PCON: SMOD - GF1 GF2 PD IDL

SMOD: nos modos 1,2 e 3 de operao do SBUF, SMOD=1 divide a taxa de transmisso binria. GF1 e GF2: bits genricos. PD e IDLE: gerenciam modos de economia de energia. PD suspende por completo as operaes do processador (voltando apenas com o reset) e o modo IDLE deixa ativados apenas os perifricos internos (timer, uart, interrupes, etc.) representando uma economia de energia de 85%. Sai do modo IDLE atravs de interrupes ou reset. Ex.: 1) - Colocar o processador em modo IDLE. MOV PCON,#00000001B

2) - Colocar o processador em modo POWER DOWN

- Registrador SBUF: transmisso e recepo. - SCON:

registrador armazenador do dado de

registrador de controle serial:

SM0 SM1 SM2 REN TB8 RB8 TI RI SM0 - SM1: modo 0 0 modo 0 1 modo 1 1 0 modo 1 1 modo de operao 0 2 3

SM2: no modo 1, se SM2=1, RI no ser ativado se no for recebido o STOP BIT. Se SM2=0, RI ser sempre ativado e RB8 recebe o STOP BIT. No modo 2/3, se SM2=1, RI
33

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

no ser ativado se o bit de paridade for 0. Se SM2=0, RI sempre ativado, independente do bit de paridade. No modo 0, SM2=0 sempre. REN: em nvel alto habilita recepo. TB8: armazena programao dos bits de paridade dos modos 2 e 3. RB8: nos modos 2/3, armazena o bit de paridade recebido. No modo 1, se SM2=0, RB8 armazena o STOP BIT sendo utilizado por rotinas de correo de erro. No modo 0, RB8 no utilizado. TI: bit indicador de dado transmitido. Necessita ser limpo por software. RI: bit indicador de dado recebido. Necessita ser limpo por software. Nos modos 1 e 3, h a necessidade de utilizar-se o timer 1 para a gerao do baud-rate. O timer 1 deve ser programado para o modo de autocarregamento, visto no estudo dos timers. O valor de carga em funo do cristal fornecido no manual (onde temos a frmula de clculo para outros cristais) e reproduzida abaixo: smod Taxa = 2 ---32

x (freq. cristal) -------------12 x (256 - TH1)

Tabela de configurao do TIMER1 Baud-rate fcristal 19,2 k 9,6 k 2,4 k 1,2 k Exemplo: 1) - Programar o registrador SCON e o TIMER 1 para 8 bits de dado, sem paridade, habilitacao de RX e baud-rate de 9600 baunds. Supor a utilizao de cristal de 11.059 Mhz MOV MOV MOV MOV MOV MOV TH1,# 0FD h ;carrega cristal 1 com reload TMOD,# 0010XXXXb ; programa timer 1 c/ reload TCON,# 010X0000b ;roda timer 1 IE,# 10011XXXb ;habilita inter. serial e t1 PCON,#00000000B ;SMOD = 0 SCON, # 01010000b ;modo 1 e rx habilitado 11.059 11.059 11.059 11.059 Carga do timer Mhz Mhz Mhz Mhz FD FD F4 E8 h h h h ( ( ( ( SMOD SMOD SMOD SMOD = = = = 1) 0) 0) 0)

34

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

2) - Idem para 8 bits, sem paridade, habilitao RX e baudrate de 2400 baunds. 5.3) Sistema Mnimo RS232:

5.4) Rotinas Bsicas: 5.4.1) Rotina de Inicializao (CONFIG:)


CONFIG: MOV MOV MOV MOV MOV MOV .... IE,#10011XXXB TMOD,#0010XXXXB TH1,#0FDH TL1,#0FDH PCON,#10000000B SCON,#01010000B ... ; INICIALIZACAO DE OUTROS PERIFRICOS ;INICIALIZA INTERRUPCAO SERIAL E TIMER1 ;9600 BAUNDS

5.4.2) Rotina de Transmisso de um byte (TX1:)


;*** TX DADO DO ACUMULADOR TX1: MOV SBUF,A JNB TI,$ ;AGUARDA FIM DE TX CLR TI RET

5.4.3) Rotina de Transmisso de uma String (TXSERIAL:) Rotina que transmite serialmente uma sentena endereada. Fornece endereo da expresso a ser transmitida mov call ... dptr,#string1 ;enderea string a ser transmitida txserial

35

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

;subrotinas txserial: push push push mov retx: mov movc cjne jmp salta1: call inc jmp fimesc: pop pop pop ret ... ;tabela string1: db

acc psw 30h 30h,#00 a,30h a,@a+dptr a,#0ff,salta1 fimtx tx1 30h retx 30h psw acc

;ponteiro ;le tabela ;verifica fim da tabela ;tx string ;incrementa ponteiro

" EXEMPLO DE TX ",0FFH

5.4.4) Rotina de Recepo Serial (RXSERIAL:)


;*** AGUARDA RX, SETA FLAGRX, GUARDA EM BUFRX RXSERIAL: JNB RI,$ ;ESPERA RX MOV A,SBUF MOV BUFRX,A CLR RI SETB FLAGRX RET ;*** INTERRUPCAO SERIAL VERIFICA SE TX OU RX ORG JMP ... TRATASERIAL: PUSH ACC JB TI,SALTA ;TRATA RX MOV MOV SETB CLR JMP A,SBUF BUFRX,A FLAGRX RI FIMTRATA ;VERIFICA SE TX 23H TRATASERIAL

36

MICROPROCESSADORES APLICAO SALTA: FIMTRATA: CLR CLR SETB POP RETI TI RI FLAGTX ACC

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

;INDICA TX FINALIZADA

5.5) Exerccios: 1) Escrever o dado Rx no display. 2) - Ligar uma lmpada localizada em P1.0 se houver recepo da letra A e desligar a lmpada se receber a letra B. Transmitir a string TECNOLOGIA MACKENZIE.

37

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

6) Converso Analgico / Digital: 6.1 ) - Introduo: Sinal Analgico (no discreto) -> Sinal Digital (discreto) Fatores para converso: - Nmero de bits de converso: determina o nmero de valores discretos da converso -> 2n - Valor de Referncia: determina o valor mximo de converso (fundo escala do valor analgico deve ser ajustado para este valor) - Freqncia de Amostragem: determina o perodo entre duas amostras. Pelo Teorema de Nyquest, a freqncia de amostragem no mnimo 2 vezes a freqncia mxima do sinal. fa = 2 x fmax - Resoluo: determina o valor analgico mximo em relao ao fundo escala V = Vmax / 2n Ex: Para um valor Vmax = 5V, n=12 bits, qual a resoluo do sinal? V = Vmax / 2n V= 5 / 4096 = 1,22 mV Exemplos: 1) - Termmetro : 0 - 100 C Vref = 2,5 V n = 8 bits Qual a resoluo em temperatura, considerando que 100 C equivalente a 2,5 V? Se aumentar o nmero de bits para 10 bits, qual a nova resoluo? Se aumentar a Vref = 5 V e 10 bits, qual a nova resoluo? 2) - Qual a freqncia de amostragem no canal de telefonia?

38

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

6.2) Conversor A/D ADC 0804

39

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

Sistema Mnimo 89S51 / ADC0804 (endereo 2000H - 3FFFH)

6.3) - Exerccios 1) - Projetar um circuito com as seguintes caractersticas: - 8031 - Eprom 2764 - LCD (end. 0-1fffh) - Serial RS232 - Conversor ADC0801 com 1 sensores de temperatura. - 1 ventilador (port p1.1) - 1 aquecedor (port p1.2) - Firmware ligando o ventilador se o sensor indicar o valor maior que 80h e ligar o aquecedor se o valor for menor que 30h.

40

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

7) - Linguagem C para Programao de Microcontroladores


Bibliografia: - JUNIOR, Vidal Pereira. Aplicaes Prticas do Microcontrolador. Editora rica - SCHULTZ, Tom. C and the 8051. Vol. 1. Prentice Hall - SCHULTZ, Tom. C and the 8051. Vol. 2. Prentice Hall - PANBOUKIAN, Sergio. C++ Builder para Universitrios. Editora Pginas e Letras. 7.1) - Tipo de variveis: - char -> - int -> - float -> - double -> - void -> 8 bits 16 bits 32 bits 64 bits sem valor numrico

As denominaes de variveis acima podem ser expresses modificadoras -> long, short, signed e insigned Ex: signed char long int -> variveis com sinal de 8 bits (1 bit para sinal) -> -127 a +127 -> variveis dobradas int -> 32 bits

7.2) - Declarao de Variveis: - Comentrios inicializados e finalizados com /* e */ - Letras maisculas e minsculas so diferentes. - Todas as variveis so finalizadas com ; - Pode-se declarar vrias variveis na mesma linha. Ex: unsigned float teste, b, soma; /* declarao das variveis teste, b e soma de 32 bits */

7.3) - Operadores: 7.3.1) - Operadores Aritmticos: '-' '+' '*' '/' '% ' (resto em uma diviso) '--' decremento '++' incremento Ex: a = b / c; c++ ; /* c=c+1 */

41

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

7.3.2 ) - Operadores Lgicos e Relacionais: '>' '= =" '!=' '&&' '||' '!' '<' '>=' (igual) (diferente) (and) (or) (inverso) '<='

7.3.3) - Operadores Binrios: Alteram bits em variveis. '&' (AND), '| ' (OR), '^' (XOR), '~' (inverso), >> (desloc. direita), << (desloc. esquerda) 7.3.4) - Operadores de Matrizes (Arrays): Define uma matriz de 0 a x elementos. Estrutura -> nome [ponteiro], onde o ponteiro indica o valor a ser buscado na tabela. Ex: unsigned int matriz (5); /*a matriz definida tem 6 elementros */ ........ x = matriz (2) /* x = terceiro valor da matriz */

7.4) - Diretivas da linguagem C: #define <nome> <sequencia> /* faz o papel da direta EQUATE no Assembler*/ pilha 70h inicio_par TMOD = 0x11; IE = 0x82

Ex: #define #define a inicializacao */ #include Ex: #include

/* inicio_par representam

<arquivo> <8051.H>

/*o arquivo includo no programa em questo */

7.5) - Funes e declaraes especiais: cos(x) sin (x) sqrt (x) pow (x,y) log10(x)

/* x elevado a potencia y */

42

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

7.6) - Formato bsico de um programa em C: O formato do programa em linguagem C segue uma estrutura simples: sempre possui um programa em loop principal e todas as declaraes so cercadas por { . declaraes main () { declaraes } rotina1 { declaraes } ............. rotina N { declaraes } 7.7) - Tipos de Estruturas em C: As diversas declaraes possveis podem ser dividas em alguns tipos: 7.7.1) - Condicional IF: Testa uma condio, realizando-a se verdadeira. Caso contrrio, ou sai da estrutura ou executa a declarao contida na estrutura 'else' if (estrutura de teste) { declaraes /* para uma declarao simples no necessrio { } } /* no obrigatrio */ { declaraes } /* sub-rotinas */ /* declaraes de variveis */ /* rotina principal obrigatria */ /* declaraes do programa principal */

else

Ex: if (teste = = a+b) { c = 1;

43

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

d = ++; } else c = 2; Podemos ter estrutura de if dentro de outras estruturas condicionais (if aninhados) Ex: if else if (a = = 7) teste = 2; else if (a = = 9) { teste = + +; a=--; } 7.7.2) - Condicional FOR Realiza uma determinada operao enquanto uma determinada condio no for atendida. for */ (inicializao; condio; incremento) { declarao } Ex: for (a=2; a < 101; a++) { teste = teste + a; resultado = ++; } (;;) { motor = desligado; } /* se houver apenas 1 declaracao no necessrio { } */ /*se no for colocado nada, loop infinito (a = = 5) teste = 1;

for

44

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

7.7.3) - Condicional WHILE Realiza uma operao enquanto uma determinada condio estiver sendo atendida. while (condio) { declarao } Ex: soma = 0; a = 0; while (a < 101) { soma = soma + a; a++; } 7.7.4) - Condicional DO / WHILE Estrutura que realiza uma declarao enquanto houver alguma condi;co seja atendida. do { (declarao); } while (condio) Ex: do { b=++; motor = ligado; } while (chave = ligada) 7.7.5) - Condicional SWITCH Testa uma varivel e executa um grupo de declaraes testando uma condio particular. switch (varivel) /* se a condio for 1, o condicional infinito */ /* se houver apenas uma declarao no necessrio {} */

45

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

{ case constante1: { (declaraes) break; } case constante2: { (declaraes) break; } case constante3: { (declaraes) break; } } 7.8) - Exemplo de utilizao (exemplo 1 - pg 230 - Vidal) 1) - Rotacionar 8 leds do port P1 para esquerda ou para a direita dependendo de uma chave (P3.5) com intervalo de 1 segundo. ; programa em Assembler - pg 172 - Vidal LED0 BIT P1.0 LED1 BIT P1.1 LED2 BIT P1.2 LED3 BIT P1.3 LED4 BIT P1.4 LED5 BIT P1.5 LED6 BIT P1.6 LED7 BIT P1.7 CH1 BIT P3.5 /* Programa em linguagem C - pg 230*/ #include <at89x52.h> /*biblioteca 8051*/ #define led0 P1_0 #define led1 P1_1 #define led2 P1_2 #define led3 P1_3 #define led4 P1_4 #define led5 P1_5 #define led6 P1_6 #define led7 P1_7 ORG 0 #define ch1 P3_5 INICIO: MOV TMOD,#00010000 unsigned char contador; MOV TCON,#00 ;desliga unsigned char saida; T1 MOV P1,#00 ;desliga /* inicio do programa */ leds void main () MOV A,#01 { ESP: LCALL DELAY TMOD = 0x10; JNB CH1,INV TCON = 0; RL A led0 = 0; SJMP ESP led1 = 0;

46

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

INV:

RR SJMP

A ESP

;subrotina de tempo de 1 seg. utilizando o timer T1 ;clock de 12 Mhz DELAY: MOV RO,#20 REP: MOV TH1,#3CH MOV TL1,#0AFH SETB TR1 JNB TF1,$ ;aguarda interrupcao CLR TF1 DJNZ R0,REP CLR TR1 RET END

led2 = 0; led3 = 0; led4 = 0; led5 = 0; led6 = 0; led7 = 0; saida = 1; while (1) /*loop eterno */ { P1 = saida; delay(); if (ch1 == 1) { saida = saida <<1; if (saida == 0) saida = 1; } else { saida = saida > > 1; if (saida == 0) saida = 0x80; } } } /* subrotinas delay () { for (contador = 0;contador < 14; contador++) { TH1 = 0x3C; TL1 = 0xAF; TR1 = 1; while (!TF1) /*AGUARDA TF1=1*/ TF1 = 0; } TR1 = 0; }

7.9) - Utilizando o compilador uVision51 (Keil): - Descompactar arquivo C51eval.zip no diretrio c:\keil - No diretrio \bin -> arquivo Uvw51e.exe (aplicativo a ser executado)

47

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

arquivo Uvwin -> help - No diretrio \INC -> bibliotecas - Editar o arquivo abrindo o arquivo novo (por exemplo TESTE.C) - Abrir um projeto novo (Project -> New Project -> TESTE.PRJ) Source Files -> ADD (TESTE.C) - Compilar -> Project -> Build Project -> se no houver erros -> teste.hex

48

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

SEMINRIO DE MICROPROCESSADORES
Em grupos de at 5 alunos, preparar um seminrio em Power Point contendo os itens mnimos abaixo do microcontrolador escolhido: - HISTRICO DO FABRICANTE - CARACTERISTICAS BSICAS - ARQUITETURA BSICA - MAPEAMENTO DA MEMRIA INTERNA/EXTERNA - DESCRIO BSICA DOS REGISTRADORES DE CONTROLE (TIMER, INTERRUPO, SERIAL, WATCH-DOG, ETC.) - CONJUNTO DE INSTRUES MOSTRANDO O SIGNIFICADO BSICO DAS MESMAS. - APLICAO MOSTRANDO O SISTEMA MNIMO E UM PROJETO EXEMPLO TPICO COM PROGRAMA EM ASSEMBLER. - ENTREGAR UMA APOSTILA COM ENCADERNAO SIMPLES COM AS INFORMAES ACIMA E UMA CPIA DO DOWN-LOAD DO SITE DA INTERNET DA ARQUITETURA E DO CONJUNTO DE INSTRUES. - ENTREGAR PARA OS ALUNOS UMA FOLHA COM O RESUMO DO SEMINARIO, MOSTRANDO AS CARACTERSTICAS DO PROCESSADOR. LISTA DE MICROCONTROLADORES: MICROCHIP (WWW.MICROCHIP.COM) 1. PIC12F629 2. PIC16F648 3. PIC18F1220 TEXAS INSTRUMENTS (www.ti.com) 7. MSP430F135 FREESCALE (www.freescale.com.br) MC9S08QG RABBIT (www.rabbitinfo.com) 10. RCM3700 CYPRESS (www.cypress.com) 11. PSOC

49

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

Anexo 1 - Conjunto de Instrues MCS-51


Fonte: Manual ATMEL MICROCONTROLLERS 8051 HARDWARE MANUAL (www.ivair.com.br)

50

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

51

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

52

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

53

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

Anexo 2 - Instrues e Alterao do FLAG (PSW)


Fonte: Manual ATMEL MICROCONTROLLERS 8051 HARDWARE MANUAL (www.ivair.com.br)

54

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

Anexo2 - Conjunto de Instrues - Cdigos de OperaoFonte:

Manual ATMEL MICROCONTROLLERS 8051 HARDWARE MANUAL (www.ivair.com.br)

55

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

56

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

57

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

58

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

59

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

60

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

61

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

Anexo 3 Esquema KIT89S51

62

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

Anexo 4 Serigrafia Kit 89S51

63

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

PRIMEIRO TRABALHO DE MICROPROCESSADORES APLICAO Turma: 6T 1)a) - Fazer uma rotina para habilitar as interrupes seriais, timer 1 e externa 0, dando prioridade para a comunicao serial. b)- Um microcontrolador desenvolvido no Laboratrio de Microprocessadores do Mackenzie (MACK3) possui uma entrada de reset ativa em nvel baixo, entrada de cristal at 20 Mhz, memria FLASH de 4 Kbytes (sem acesso a memria externa) e 2 ports de comunicao (Port PA com 8 bits e Port PB com 6 bits). Fazer um esquema mostrando a ligao do MACK3 com um display LCD de 2 linhas x 20 caracteres. 2) - Imaginando que voc esteja fazendo um trabalho voluntrio para o GreenPeace, foi encomendado um controlador ecolgico para impedir um gasto desnecessrio de energia de escola com at 5 salas com as seguintes caractersticas: -Microcontrolador 8031 com Eprom 27512, Cristal de 32 Khz, Reset automtico e manual. -Display LCD 2 x 16 com endereo de acesso 4000H-5FFFH. -Entrada de 5 sensores de presena infra-vermelho. -Sada para 5 contatores que controlaro 5 sistemas de iluminao. -Comunicao Serial. -Entrada de um boto de emergncia ligada a INTERRUPO 0. 3) - Em relao ao projeto acima, fazer os seguintes programas separadamente: a)-Fazer um programa para que o primeiro sensor ligue a segunda sada em nvel alto e desligue em nvel baixo. Ficar em loop. b)-Fazer um programa para escrever no display a mensagem "GREEN PEACE" "CONTROLADOR". Configurar o display para 2 linhas, sem cursor, deslocamento a direita. Fazer a rotina de escrita no display. c)-Fazer um programa para incrementar a posio 50H da memria interna todas as vezes que o boto de emergncia for acionado. Utilizar a interrupo. 4) a) - Qual a funo dos sinais Enable e C/D em um mdulo de display? O que um back-light em um display de LCD? Mostre 1 vantagem e uma desvantagem de um display de LCD. b) - Mostrar um esquema de um sistema com o 8951 e um mdulo com o Display de LCD utilizando apenas os Ports P0 e P1 (modo de acionamento direto sem mapeamento de memria). Fazer uma rotina para escrever a letra do seu primeiro nome no display. c) - Suponha que voc esteja projetando um microcontrolador com um temporizador T de 16 bits, vetor com endereo 06h e com contador DECRESCENTE a cada pulso de entrada do timer. Os registradores de controle so iguais ao do timer T0 do 8051. Explicar o conceito do vetor 06h. O que existe (qual rotina) neste endereo do programa?
64

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

Supondo que a freqncia de contagem na ENTRADA do timer seja de 100 Khz, calcular o valor do temporizador T para o tempo de 3 milisegundos. Fazer uma rotina de inicializao para o timer T. 5)- Voc o engenheiro da empresa ELEICOES ELETRONICAS e responsvel pelo projeto de uma urna eletrnica com as seguintes caractersticas: -Microcontrolador 8951, cristal de 8 Mhz, Reset automtico e manual. -Display de LCD com endereo entre 0 e 1fffH -Entrada para 10 teclas numricas e 3 teclas de funo (CORRIGE, BRANCO, CONFIRMA). Um sistema lgico ativa a interrupo externa 1 quando acionada uma tecla. -1 alto-falante (buzzer). 6) - Fazer em Linguagem Assembler separadamente os seguintes programas: a) (1,5 pontos) - Inicializar o display (2 x 16 linhas, com cursos piscando, escrevendo da esquerda para a direita). Escrever no display: URNA ELETRONICA CANDIDATO: b) (1,5 pontos)- Fazer um programa para guardar a posio das teclas na memria a partir do endereo 25H. Se for digitada a tecla CORRIGE, ligar o buzzer por 1 segundo. 7) - Fazer um projeto com um microcontrolador 8031 com as seguintes caractersticas: - Projeto de um torno microprocessado CNC. - Cristal com freqncia de 11.059 Mhz e reset automtico. - Display LCD inteligente possuindo 2 linhas e 20 caracteres (endereo 001FH). - Comunicao full-duplex com dado de 8 bits, start e stop/bit, sem paridade, 9600 baunds e interface RS232 com line drivers MAX 232. - Sada para controle de 2 motores trifsicos, 3 indicadores luminosos (lmpadas) e uma chave. - Conversor ADC 808 de 8 canais (endereo 20H-3FH). 8) - Fazer os seguintes programas para o projeto acima: - Inicializao da interface serial, do sistema de interrupo habilitando a interrupo serial e display configurando-o para deslocamento de mensagens a esquerda e sem cursor. Colocar comentrios indicando cada comando. - Rotina para escrever na linha superior do display o seu nome completo centralizado (abreviar os nomes do meio se necessrio) e o seu nmero de matrcula na linha de baixo. - Rotina para receber dados pela interface serial atravs da interrupo serial, colocando os dados recebidos na posio de memria 50H. - Ler o canal 3 do conversor ADC, colocar o valor lido no endereo 40 H. - Ligar os 2 motores se a chave estiver em nvel alto

65

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

9)- Vamos supor que voc esteja programando um novo microcontrolador que possua um temporizador interno com as seguintes caractersticas: Contador DECRESCENTE de 16 bits. Entrada para o temporizador externo (pino TENTR) que decrementa o temporizador de 1 unidade a cada pulso. Interrupo com endereo 0010H Registradores de modo (TMOD) e controle (TCON) idnticos ao 8051. Mneumnicos para programao em linguagem Assembler compatvel com o 8051. a)- Supondo a entrada de um sinal de 100 Khz na entrada TENTR, qual o nmero a ser colocado dentro do timer para o mesmo fornecer um tempo de 10 mseg? Justificar mostrando o clculo b)- Fazer um programa em linguagem Assembler para incrementar apenas o registrador R3 a cada 10 mseg. 10)- Fazer um projeto com o microcontrolador 8031 com as seguintes caractersticas a) - Cristal de 8 Mhz. Reset automtico e manual. Sada para controle de 3 motores (representar o acionamento apenas de 1 motor). Entrada do contador externo (interrupo externa 1). Entrada de 1 chave para controle dos motores. Display de L.C.D. com endereamento de 2000H a 3FFFH. b) - Fazer um programa para ler a chave a cada 1 mseg. Se a chave estiver em nvel alto, ligar todos os motores. Caso contrario, deslig-los. c)- Fazer um programa para incrementar o registrador R5 a cada pulso do contador externo (elaborar apenas a rotina de interrupo) .

66

MICROPROCESSADORES APLICAO

TECNOLOGIA- FCBEE

IVAIR REIS N. ABREU

67

Vous aimerez peut-être aussi