Você está na página 1de 18

Apostila de Microcontroladores

I/O Digital

6. Configurao dos I/Os Digitais


6.1 Introduo
As portas de I/O de propsito geral do MSP430 foram desenvolvidas para dar o mximo de flexibilidade. Cada linha de I/O individualmente configurvel e a maior parte delas tem a capacidade de gerao de interrupo Existem dois tipos distintos de mdulos de I/O na famlia de microcontroladores MSP430X1XX um grupo constitudo das portas P1 e P2 e o outro grupo constitudo das portas de P3 a P6. Ambas tm a capacidade de controlar a direo (entrada/sada), nvel lgico de sada, leitura do nvel lgico aplicado no pino de entrada e controlar se uma porta ou um mdulo de funo est associado a um pino. As portas P1 e P2 tm a capacidade de gerar interrupes, flags de habilitao e sensibilidade de borda para cada pino.

6.2 Portas P1 e P2
Cada porta P1 e P2 tm oito linhas de I/O de propsito geral e todos os registros necessrios para suas respectivas configuraes e controle. Cada linha pode ser configurada e controlada individualmente. Podendo tambm cada linha produzir interrupo. Vetores de interrupo esto alocados para os mdulos P1 e P2. Os pinos de P1 (P1.0-7) atuam como fontes de uma interrupo enquanto os pinos de P2 (P2.0-7) so fontes de uma segunda interrupo. Portas P1 e P2 so conectadas ao ncleo do processador atravs do barramento de dados de 8 bits MDB e do MAB. Elas podem ser acessadas utilizando as instrues de byte em modo de endereo absoluto.

6.2.1 Registros de Controle de P1 e P2


Sete registradores (Figura 6.1) so utilizados para controlar os pinos de I/O da porta.

Figura 6.1 - Registros de Configurao e Controle

Os sete registros de controle do o mximo de flexibilidade de configurao s entrada/sada digitais, entre elas podemos citar: Todos os bits so programados de forma independente; Qualquer combinao de entrada, sada e condio de interrupo possvel e O processamento da interrupo de um evento externo implementvel para todos os bits das portas P1 e P2. Os sete registros de P1 e P2 so apresentados na Tabela 6.1 e na Tabela 6.2.
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 1

CEFET/MG Centro Federal de Educao Tecnolgica de Minas Gerais

Tabela 6.1 - Registros da porta P1

Tabela 6.2 - Registros da porta P2

Estes registros so de oito bits e devem ser acessados utilizando instrues de byte em modo de endereamento absoluto. Os registros de entrada so apenas de leitura e refletem o aplicado no pino de I/O. Nota: a escrita nestes pinos resulta num aumento de corrente enquanto a tentativa de escrita estiver ativa. Cada registro de sada mostra a informao presente no buffer de sada. O buffer de sada pode ser modificado por todas as instrues que escrevem no operando de destino. Caso seja necessria uma leitura ela poder ser feita, pois a informao contida no buffer de sada no depende do pino de direo. Uma troca na direo no modifica o contedo do buffer de sada. O registro de direo contm oito bits independentes que definem a direo dos pinos de I/O. Todos os bits so resetados pelo sinal PUC. Bit = 0 => O pino da porta programado como entrada (3-state) Bit =1 => O pino da porta programado como sada Cada registro de flag de interrupo contm oito flags que refletem se existe ou no uma interrupo pendente no pino de I/O correspondente. Bit = 0 => No existe interrupo pendente Bit =1 => Uma interrupo pendente devido a uma transio no pino de I/O ou devido a uma operao de software. Nota: Manipulando P1OUT e P1DIR como P2OUT e P2DIR, pode resultar na ativao dos bits P1IFG ou P2IFG. Para resetar o flag de interrupo basta escrever 0(zero) no mesmo, entretanto, caso seja escrito 1 (um) ser gerada uma interrupo. Cada grupo de flags de interrupo P1FLG.0 P1FLG.7 e P2FLG.0 P2FLG.7 tem seu prprio vetor de interrupo. Os flags de interrupo P1FLG.0 P1FLG.7 e P2FLG.0 P2FLG.7 no so resetados em funo do atendimento da interrupo. O software tem que identificar a origem da interrupo e resetar o respectivo bit. Nota: Qualquer interrupo externa dever ter a durao mnima de 1,5 vezes o MCLK, para que seja reconhecida e seu respectivo flag de interrupo setado. Cada pino de I/O contm um bit individual, no registro de seleo de borda, para indicar o tipo de transio que ir setar o flag de interrupo. Quando: Bit = 0 => O flag de interrupo setado com uma transio de baixo para alto. Bit =1 => O flag de interrupo setado com uma transio de alto para baixo. Nota: A troca de P1IES e P2IES pode resultar na ativao de alguns flags de interrupo que esto associados a eles:

Apostila de Microcontroladores

I/O Digital

PnIES.x PnIN.x PnIFG.x 0->1 0 No altera 0->1 1 Pode ser setado 1->0 0 Pode ser setado 1->0 1 No altera Cada pino de I/O contm um bit individual, no registro de habilitao, para habilitar a interrupo. Cada um dos 16 bits correspondentes aos pinos P1.0-P1.7 e P2.0-P2.7 esto localizados nos registros P1IE e P2IE. Quando: Bit = 0 => A requisio de interrupo est desabilitada. Bit =1 => A requisio de interrupo est habilitada. Nota: Somente as transies causam interrupo. Se o flag de interrupo continuar setado quando a instruo IRET for executada (por exemplo, uma transio ocorre durante a rotina de servio de interrupo), a nova interrupo s ocorrer depois de completado o RETI. Isto garante que cada transio seja reconhecida pelo software. Os pinos das portas P1 e P2 normalmente esto multiplexados com outros mdulos perifricos para reduzir o nmero total de pinos do MSP430. Os registros de controle P1SEL e P2SEL so utilizados para selecionar a funo desejada do pino: I/O ou funo especial. Cada registro contm oito bits correspondendo a cada pino e cada funo do pino selecionada individualmente. Todos os bits destes registros so resetados com um sinal PUC. As definies destes bits so: Bit = 0 => Pinos so associados s portas P1 ou P2. Bit =1 => Pinos so associados aos mdulos perifricos. Nota: O circuito de seleo de borda de interrupo est desabilitado se o bit de controle PnSEL.x estiver setado. Consequentemente, um sinal nesta entrada no ir gerar interrupo. Quando um pino selecionado para ser utilizado como entrada para um mdulo perifrico, o sinal de entrada ser gravado. A gravao deste sinal ser condicionada ao bit PnSEL.x que ir habilitar tal gravao (Figura 6.2). O sinal gravado exatamente o sinal aplicado no pino Pn.x. Entretanto se o bit PnSEL.x for resetado, a sada do circuito de gravao (latch) apresentar o sinal gravado antes do resete do PnSEL.x.

6.2.2 Esquema das Portas P1 e P2


A lgica individual de cada pino das portas P1 e P2 a mesma. Cada bit pode ser lido e escrito conforme mostrado na Figura 6.2.

6.2.3 Funes de Controle de Interrupo


As portas de controle P1 e P2 utilizam oito bits de flags de interrupo, oito bits para habilitao de interrupo, oito bits para seleo de borda e um vetor para a porta P1 e um segundo vetor para a porta P2. Cada sinal utiliza trs bits para controle e interrupo: Flag de interrupo, P1IFG.0 P1IFG.7 e P2IFG.0 P2IFG.7; Flag de habilitao interrupo, P1IE.0 P1IE.7 e P2IE.0 P2IE.7; Flag de seleo de borda, P1IES.0 P1IES.7 e P2IES.0 P2IES.7; Uma interrupo s ir ocorrer quando o bit especfico PnIE.x e o bit GIE estiverem setados. Os flags de interrupo no so automaticamente resetados. O software de tratamento da interrupo dever identificar a fonte geradora de interrupo e resetar o flag correspondente quando o servio estiver terminado.

6.3 Portas P3, P4, P5 e P6


As portas de propsito gerais P3-P6 so apresentadas na Figura 6.3. Cada pino pode ser selecionado para operar como uma porta de I/O ou se tornar um terminal de um mdulo perifrico. Quatro registros so utilizados para controlar cada uma das portas. As portas P3-P6 so conectadas ao processador atravs do barramento de 8 bits MDB e do barramento de endereo MAB. Elas podem ser acessadas com instrues de byte utilizando o modo de endereamento absoluto.
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 3

CEFET/MG Centro Federal de Educao Tecnolgica de Minas Gerais

Figura 6.2 - Esquema das Porta P1 e P2

6.3.1 Registros de Controle das portas P3-P6


Os quatro registros de controle de cada porta do o mximo de flexibilidade na configurao dos I/Os digitais. Todos os bits de I/O so programados independentemente; Qualquer combinao de entrada possvel e Qualquer combinao de porta ou mdulo de funo possvel. Os quatro registros de cada porta so apresentados na Figura 6.3 . Eles contm oito bits e podem ser acessados com instruo de byte.

Figura 6.3 Registros das Portas P3-P6

Os registros de entrada so apenas de leitura e refletem o sinal presente no pino de I/O. Nota: Uma escrita neste registro de leitura resulta num aumento de consumo de corrente enquanto a operao de escrita estiver sendo feita. Cada registro de sada mostra a informao presente no buffer de sada. O buffer de sada pode ser modificado por todas as instrues que escrevem no operando de destino. Caso seja necessria uma leitura ela poder ser feita, pois a informao contida no buffer de sada no depende do pino de direo. Uma troca na direo no modifica o contedo do buffer de sada. 4

Apostila de Microcontroladores

I/O Digital

Tabela 6.3 - Registros das Portas P3-P6

O registro de direo contm oito bits independentes que definem a direo dos pinos de I/O. Todos os bits so resetados pelo sinal PUC. Bit = 0 => O pino da porta programado como entrada Bit =1 => O pino da porta programado como sada Os pinos das portas P3 P6 normalmente esto multiplexados com outros mdulos perifricos para reduzir o nmero total de pinos do MSP430. Os registros de controle PnSEL so utilizados para selecionar a funo desejada do pino: I/O ou funo especial. Cada registro contm oito bits correspondendo a cada pino e cada funo do pino selecionada individualmente. Todos os bits destes registros so resetados com um sinal PUC. As definies destes bits so: Bit = 0 => Pinos so associados s portas. Bit =1 => Pinos so associados aos mdulos perifricos. Nota: O circuito de seleo de borda de interrupo est desabilitado se o bit de controle PnSEL.x estiver setado. Consequentemente, um sinal nesta entrada no ir gerar interrupo. Quando um pino selecionado para ser utilizado como entrada para um mdulo perifrico, o sinal de entrada ser gravado. A gravao deste sinal ser condicionada ao bit PnSEL.x que ir habilitar tal gravao (Figura 6.4). O sinal gravado exatamente o sinal aplicado no pino Pn.x. Entretanto se o bit PnSEL.x for resetado, a sada do circuito de gravao (latch) apresentar o sinal gravado antes do resete do PnSEL.x.

6.3.2 Esquema das Portas P3-P6


A lgica de cada pino das portas P3 a P6 apresentada na Figura 6.4.

Figura 6.4 - Esquema das Portas P3-P6

jkssbh@deii.cefetmg.br

marcosp@deii.cefetmg.br

CEFET/MG Centro Federal de Educao Tecnolgica de Minas Gerais

6.4 Aplicaes com os I/Os


Muitas so as aplicaes que podemos desenvolver com os I/Os do MSP sem a utilizao de suas funes especiais. Nesta seo iremos desenvolver algumas aplicaes bsicas entre elas: acionamento de LED, monitorao de chave, teclado e LDC.

6.4.1 Acionamento de LED com temporizao


O acionamento de LED uma tarefa relativamente simples, entretanto, algumas consideraes so necessrias. O MSP capaz de drenar corrente at 20mA em seus terminais o que torna possvel a conexo de um LED diretamente em um terminal acompanhado de um resistor em srie para limitao de corrente. Os LEDs presentes no Kit didtico apresentam a configurao da Figura 6.5. Para que o LED seja ligado/desligado basta colocar o respectivo nvel lgico em um dos terminais de entrada do conjunto de LEDs.

Figura 6.5 - Acionamento do LED no KIT

Como pode ser visto no fluxograma da Figura 6.6 o LDE selecionado ir piscar numa freqncia estabelecida por uma rotina de temporizao, durante um perodo definido por um contador.
ACIONA LED
PISCA LED

CONFIGURA I/O

CARREGA CONTADOR

PISCA LED

LIGA LED

TEMPO

DESLIGA LED

TEMPO

DECREMENTA CONTADOR

CONTADOR =0

RETORNA

Figura 6.6 - Aciona LED

Apostila de Microcontroladores

I/O Digital

A temporizao da rotina tempo foi definida utilizando-se como referncia o nmero de ciclos de clock das instrues do processador. ;****************************************************************************** ; MSP430F149 Aciona LED ;****************************************************************************** #include "msp430x14x.h" RSEG IDATA0 ;----------------------------------------------------------------------------ASEG 01100H RESET MOV #0A00h,SP ;INICIALIZA APONTADOR DE PILHA ;BLOQUEIA WATCH DOG SetupWDT MOV #WDTPW + WDTHOLD,&WDTCTL BIS.B #0XFF,P1DIR ;PROGRAMA TODOS OS BITS DE P1 COMO ;SADA REPETE CALL #PISCA_LED JMP REPETE ;****************************************************************************** ;SUBROTINA: PISCA_LED ;DESCRIO: FAZ O LED PRESENTE NA PORTA P1.0 ACENDER E APAGAR 100 VEZES ;COM UM INTERVALO TEMPO DEFINIDO PELA ROTINA TEMPO PISCA. ;ENTRADA: ;SADA: ;****************************************************************************** PISCA_LED PUSH R4 MOV #100,R4 ;DEFINE VALOR DO CONTADOR PISCA BIS.B #1,P1OUT ;LIGA LED CALL #TEMPO_PISCA BIC.B #1,P1OUT ;DESLIGA LED CALL #TEMPO_PISCA DEC R4 ;DECREMENTA CONTADOR JNZ PISCA POP R4 RET ;****************************************************************************** ;SUBROTINA: TEMPO_PISCA ;DESCRIO: INTERVALO DE TEMPO GASTO PELA CPU, PARA EXECUTAR AS ;INSTRUES DA SUBROTINA. ; TEMPO DE EXECUO: 5+5+2+ ; K1 X ( 2 + K2 X ( 5 + 2 ) + 5 + 2) + ; 5+5+5 ;ENTRADA: ;SADA: ;****************************************************************************** K1 EQU 1 K2 EQU 1 ;CICLOS DE INSTRUO TEMPO_PISCA PUSH R5 ;5 PUSH R6 ;5 MOV #K1,R6 ;2 CONT_EXT MOV #K2,R5 ;2 CONT_INT DEC R5 ;5 JNZ CONT_INT ;2 DEC R6 ;5 JNZ CONT_EXT ;2 POP R6 ;5 POP R5 ;5 RET ;5
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 7

CEFET/MG Centro Federal de Educao Tecnolgica de Minas Gerais ;--------------------------------------------------------------------------ORG 0FFFEh ; MSP430 Vetor de RESET DW RESET ;--------------------------------------------------------------------------END

6.4.2 Tratamento de chave com espera ocupada


Vrios so os dispositivos que fornecem informao digital para um sistema microprocessado. O diagrama das chaves presentes no KIT apresentado na Figura 6.7. Neste exemplo iremos observar o estado presente na chave atravs de uma varredura que chamamos de espera ocupada (Figura 6.8). Observe que no apresentado o detalhamento da subrotina TrataEvento, pois nesta subrotina o usurio poder inserir a ao que dever ser realizada quando a chave for acionada. Uma sugesto fazer com que o LED o exemplo anterior comece a piscar somente aps o acionamento da chave.

Figura 6.7 - Chave ON-OFF


ESPERA OCUPADA CONFIGURA I/O

ESPERA CHAVE

CHAVE LIGADA
ESPERA CHAVE

TRATA EVENTO

RETORNA

Figura 6.8 - Algoritmo de Espera Ocupada

Um fato importante que deve ser ressaltado nesta tcnica que a CPU ficar testando por tempo indeterminado se a chave foi para o estado ligado, em funo disto que esta tcnica tem o nome de Espera Ocupada. #include "msp430x14x.h" ;****************************************************************************** ; ESPERA OCUPADA ;****************************************************************************** RSEG IDATA0 ;----------------------------------------------------------------------------ASEG 01100H RESET MOV #0A00h,SP ;INICIALIZA APONTADOR DE PILHA ;BLOQUEIA WATCH DOG 8

Apostila de Microcontroladores

I/O Digital

SetupWDT REPETE_CH

MOV BIC.B

#WDTPW + #0XFF,P1DIR

CALL #ESPERA_CH JMP REPETE_CH ;----------------------------------------------------------------------------;****************************************************************************** ;SUBROTINA: ESPERA_CH ;DESCRIO: ESPERA QUE A CHAVE SEJA COLOCADA NO ESTADO LIGADO. ;ENTRADA: ;SADA: ;****************************************************************************** ESPERA_CH AGUARDA BIT.B #1,P1IN ;VERIFICA SE CHAVE LIGADA JZ AGUARDA CALL #TRATA_EVENTO RET

WDTHOLD,&WDTCTL ;PROGRAMA TODOS OS BITS DE P1 COMO ;ENTRADA

;****************************************************************************** ;SUBROTINA: TRATA_EVENTO ;DESCRIO: DEFINE A AO QUE DEVE SER REALIZADA APS O ACIONAMENTO DA CHAVE. ;ENTRADA: ;SADA: ;****************************************************************************** TRATA_EVENTO ;ROTINA DE TRATAMENTO RET ;--------------------------------------------------------------------------ORG 0FFFEh ; MSP430 Vetor de RESET DW RESET ;--------------------------------------------------------------------------END

6.4.3 Tratamento de chave por Interrupo


A espera ocupada, embora apresente uma estrutura de software mais simples, degrada o desempenho do sistema. Para resolver tal problema podemos utilizar o processo de interrupo (Figura 6.2) presente nas portas P1 e P2 do MSP. A grande vantagem em relao a espera ocupada que neste caso a CPU poder estar realizando uma outra operao sem se preocupar se a chave est sendo acionada, pois caso venha ocorrer o acionamento da mesma a CPU ser sinalizada atravs de um sinal eltrico. No algoritmo da Figura 6.9 pode ser observado que no existe ligao (chamada de subrotina) do algoritmo principal e a rotina de tratamento de interrupo. Isto retrata claramente que o tratamento da interrupo s ser realizado quando um evento externo ocorrer. Na ocorrncia deste evento a CPU ir interromper a tarefa que est sendo executado no ProcessoBsico e ir executar a rotina TrataInterrupo. Ao trmino do tratamento da rotina de interrupo a CPU retornar a execuo do ProcessoBsico. Um cuidado que deve ser tomado com relao ao TrataEvento, pois estando o mesmo sendo processado dentro da rotina de interrupo e estando a interrupo desabilitada, ele no poder apresentar um longo tempo de execuo pois seno novas interrupes podero ser perdidas. Com relao desabilitao da interrupo, caso a mesma seja omitida e uma outra interrupo de maior prioridade que a primeira ocorra, o tratamento da interrupo corrente ser interrompido para que seja processado o tratamento da interrupo de maior prioridade. Ao trmino do tratamento da interrupo de maior prioridade ser ento executado o tratamento da interrupo de menor prioridade. Para o caso especfico do MSP, existe um bit de interrupo (PnIFG) associado a cada pino das portas P1 e P2 (Figura 6.2). Desta forma necessrio que o bit especfico da
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 9

CEFET/MG Centro Federal de Educao Tecnolgica de Minas Gerais interrupo seja resetado aps o tratamento da interrupo. Caso isto no seja feito novas interrupes sero geradas at que o mesmo seja resetado.
PRINCIPAL CONFIGURA I/O HABILITA INTERRUPO
TRATA INTERRUPO DESABILITA INTERRUPO SALVA CONTEXTO

PROCESSO BSICO

TRATA EVENTO

RESETA FLAG DE INTERRUPO RESTAURA CONTEXTO HABILITA INTERRUPO RETORNA DA INT.

Figura 6.9 - Interrupo

O programa a seguir apresenta a estrutura bsica para codificao de uma rotina de interrupo. #include "msp430x14x.h" ;****************************************************************************** ; TRATAMENTO POR INTERRUPAO ;****************************************************************************** RSEG IDATA0 ;----------------------------------------------------------------------------ASEG 01100H RESET MOV #0A00h,SP ;INICIALIZA APONTADOR DE PILHA ;BLOQUEIA WATCH DOG SetupWDT MOV #WDTPW + WDTHOLD,&WDTCTL BIS.B #0XF0,P1DIR ;PROGRAMA OS BITS MAIS SIG. DE P1 COMO ;SADA BIC.B #0X0F,P1DIR ;E OS MENOS SIG. COMO ENTRADA BIS.B #0X01,P1IE ;HABILITA INTERRUPO DO BIT 0 EINT ESPERA_INT CALL #QUALQUER_COISA JMP ESPERA_INT ;****************************************************************************** ;SUBROTINA: QUALQUER_COISA ;DESCRIO: A CPU PODER REALIZAR QUALQUER TAREFA SEM SE PREOCUPAR ;COM A INTERRUPO. ;ENTRADA: ;SADA: ;****************************************************************************** QUALQUER_COISA RET ;****************************************************************************** ;SUBROTINA: TRATA_INT ;DESCRIO: ESPERA QUE A CHAVE SEJA COLOCADA NO ESTADO LIGADO. ;ENTRADA: ;SADA: ;****************************************************************************** TRATA_INT DINT BIC.B #0X01,P1IFG ;RESETA FLAG DE INTERRUPO CALL #TRATA_EVENTO EINT RETI 10

Apostila de Microcontroladores

I/O Digital

jkssbh@deii.cefetmg.br

marcosp@deii.cefetmg.br

11

CEFET/MG Centro Federal de Educao Tecnolgica de Minas Gerais ;****************************************************************************** ;SUBROTINA: TRATA_EVENTO ;DESCRIO: DEFINE A AO QUE DEVE SER REALIZADA APS O ACIONAMENTO DA ; CHAVE. ;ENTRADA: ;SADA: ;****************************************************************************** TRATA_EVENTO XOR.B #010,P1OUT ;ROTINA DE TRATAMENTO RET ;--------------------------------------------------------------------------ORG 0FFE8h ; PORTA 1 DW TRATA_INT ORG 0FFFEh ; MSP430 Vetor de RESET DW RESET ;--------------------------------------------------------------------------END

6.4.4 Teclado
O teclado apresentado na Figura 6.10 constitudo de uma matriz 4X3 gerando um total de doze teclas. Existem duas tcnicas distintas para captura de tecla: espera ocupada (polling) e interrupo. Nesta aplicao estaremos utilizando a tcnica de espera ocupada.

Figura 6.10 - Teclado

Estando com o circuito definido iremos especificar o algoritmo para a captura da tecla. O fluxograma da Figura 6.11 apresenta um algoritmo de uma subrotina para deteco e captura de tecla pressionada. Este algoritmo permite que as teclas sejam configuradas atravs do carregamento de seus contedos em uma tabela presente na memria. A deteco de tecla pressionada consiste em colocar nvel alto em todas as colunas e executar uma varredura contnua nas linhas, que esto configuradas como portas de entrada. Considerando que nenhuma tecla esteja pressionada, teremos sinal baixo nas linhas, pois as mesmas esto pulldown. Caso qualquer tecla seja pressionada o estado da respectiva linha ser levado para nvel alto. Sendo cada linha constituda de mais de uma tecla necessrio que sua identificao seja feita. Esta identificao feita utilizando-se um apontador (APT_TEC) que inicialmente aponta para o caracter NULL que corresponde a primeira posio da tabela de configurao do teclado. Este caracter NULL ser utilizado como retorno da subrotina para indicar duas condies de exceo: erro ou tecla no pressionada. Caso uma das teclas seja pressionada o apontador de memria APT_TEC indicar em que posio de memria encontra-se a tecla pressionada. importante observar o comportamento das teclas, pois quando pressionada, vrios pulsos podero ser gerados at que o contato seja estabelecido plenamente. Desta forma necessrio que se faa filtragem destes pulsos indesejados. Esta filtragem pode ser feita atravs de uma temporizao que garantir que os pulsos subsequentes ao primeiro, durante a temporizao, sero desprezados. 12

Apostila de Microcontroladores

I/O Digital

TECLADO

CONFIGURAO DO TECLADO TAB_TEC+0 TAB_TEC+1 TAB_TEC+2 TAB_TEC+3 TAB_TEC+4 TAB_TEC+5 TAB_TEC+6 TAB_TEC+7 TAB_TEC+8 TAB_TEC+9 TAB_TEC+10 TAB_TEC+11 TAB_TEC+12 NULL 3 6 9 E 2 5 8 0 1 4 7 A TECLADO 1 4 7 A 2 5 8 0 3 6 9 E

CONFIGURA I/OS APT_TEC TAB_TEC TECLA (APT_TEC) COL0=COL1=COL2

TODAS LINHAS =0

RETORNA

TEMPO REPIQUE

COL0 1 COL1=COL2

TODAS LINHAS =0

LIN0 = 1

APT_TEC APT_TEC+1

V
COL1 1 COL0=COL2 0 APT_TEC APT_TEC+4 LIN1 = 1

APT_TEC APT_TEC+2

TODAS LINHAS =0

LIN2 = 1

APT_TEC APT_TEC+3

V
COL2 1 COL0=COL1 0 APT_TEC APT_TEC+4

LIN3 = 1

APT_TEC APT_TEC+4

TECLA TODAS LINHAS =0

(APT_TEC)

APT_TEC TAB_TEC

RETORNA

Figura 6.11 Algoritmo do Teclado

6.4.5 LCD
Os mdulos de LCD existentes no mercado apresentam caractersticas diferentes e, portanto alguns esclarecimentos devem ser feitos antes de utiliz-los. Os fabricantes fornecem dois mdulos bsicos: microcontrolados ou LCDs com terminais para acionamento dos segmentos. Nos modelos microcontrolados existem os LCD grficos e os baseados em caracteres. Para esta aplicao estaremos utilizando um mdulo de uma linha com 16 caracteres (Figura 6.12).

jkssbh@deii.cefetmg.br

marcosp@deii.cefetmg.br

13

CEFET/MG Centro Federal de Educao Tecnolgica de Minas Gerais

Figura 6.12 - Diagrama de Ligao do LCD

Para que possamos enviar um ou mais caracteres necessrio que seja feita primeiramente a programao deste mdulo. Sua programao feita atravs do envio de uma seqncia de caracteres respeitando uma temporizao mnima exigida entre o envio do caracter e as respectivas linhas de controle. Atravs do diagrama apresentado na Figura 6.12 podemos observar que o LCD est utilizando oito bits para recepo dos dados enviados pelo MCU. Existem trs sinais de controle sendo eles o RS, R/W e E. O sinal R/W est aterrado, pois apenas operaes de escrita sero feitas no LCD, embora operaes de leitura possam ser feitas para leitura de sua memria interna. O sinal RS utilizado para identificao da informao que est sendo enviada atravs do barramento de dados. As informaes possveis que iro trafegar pelo barramento so dados e comandos. Os dados so constitudos dos caracteres que sero apresentados no LCD enquanto os comandos podero ser palavras de programao ou endereo de memria onde ser escrito um dado. A Figura 6.13 apresenta o endereo de memria de cada campo presente no LCD.
80 81 82 83 84 85 86 87 C0 C1 C2 C3 C4 C5 C6 C7

Figura 6.13 - Endereamento do LCD

O sinal E o pino de habilitao das operaes com o LCD. O fluxograma da Figura 6.14 apresenta os passos bsicos para programao do LCD.

14

Apostila de Microcontroladores

I/O Digital

PROGRAMA LCD

(1)

DEFINE NMERO DE LINHAS DO DISPLAY DEFINE NMERO DE BITS DO BARRAMENTO

ENVIA COMANDO

(2)

ATIVA DISPLAY E CURSOR DEFINE INTERMITNCIA DO CURSOR

ENVIA COMANDO

(3)

DEFINE DESLOCAMENTO DO CURSOR

ENVIA COMANDO

(4)

LIMPA DISPLAY

ENVIA COMANDO

RETORNA

Figura 6.14 - Programao do LCD

As caixas de processamento de 1 a 4 caractersticas do display. Na Figura 6.15 so interpretados pelo mdulo de LCD. Para utilizao seguintes comando: Comando Cdigo Fixao das condies de utilizao 00111000 Controle Ativo/Inativo do display 00001110 Fixao do modo 00000110 Limpeza do display 00000001

presentes no fluxograma definem as apresentados os principais comandos do display em questo sero enviados os Descrio 8bits de dados display 1 linha M 7x5 Display e cursor ativos sem piscar Deslocamento do cursor p/ direita Limpa display

jkssbh@deii.cefetmg.br

marcosp@deii.cefetmg.br

15

CEFET/MG Centro Federal de Educao Tecnolgica de Minas Gerais


W/R

RS

INSTRUO Limpa Display Retorno Fixao do modo Controle Ativo/ Inativo do display Deslocamento do cursor/mensagem Fixao das condies de utilizao Endereamento da CG RAM Endereamento da DD da RAM Leitura do contador de endereo Escrita de dados na CG ou DD RAM Leitura de dados na CG ou DD RAM (*) irrelevante

D7 D6 D5 D4 D3 D2 D1 D0

DESCRIO Limpa todo display Retorna cursor primeira posio da primeira linha Retorna cursor primeira posio da primeira linha Retorna mensagem deslocada a sua posio original I/D ->Sentido de deslocamento do cursor S ->Define se mensagem deve ou ser deslocada (D) Ativa / Desativa display - (C) Ativa / Desativa cursor - (B) Ativa / Desativa intermitncia do cursor (DL) Nmero de bits da interface - (N) Nmero de linhas (F) Formato do caracter

0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 * 0 0 0 0 0 0 0 1
I/D

0 0 0 0 0 0 1 DCB 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 DL
S/C R/L

* *

NF * *

Endereo da RAM CG Endereo da 0 0 1 RAM ADD B Contador de 0 1 F endereos AC 1 0 1 1

Para envio dos comandos para o mdulo de display devemos respeitar a seqncia sinais apresentada na Figura 6.16, garantindo que as temporizaes sejam atendidas.
ENVIA COMANDO ENVIA DADO

Figura 6.15 - Comandos Bsicos

RS 0 E 0

RS 1 E 0

TEMPO >=5mS

TEMPO >=5mS

E 1

E 1

TEMPO >=5mS

TEMPO >=5mS

E 0

E 0

RETORNA

RETORNA

Aps a programao do mdulo LCD as mensagens podero ser enviadas atravs da escrita no barramento de dados seguida da seqncia da Figura 6.17. 16

Figura 6.16 - Envio de Controle

Figura 6.17 - Envio de Dados

Apostila de Microcontroladores

I/O Digital

Qual o nmero mximo de I/Os presentes no MSP? Quais so os papeis dos bits de direo (PnDIR) e funo (PnSEL)? Quais as portas que tem suporte a interrupo no MSP? Quais so os registros associados operao de interrupo e como funcionam? Suponha que a porta P1.0 esteja conectada ao terminal CH0 da Figura 6.7 e a porta P1.1 esteja conectada ao terminal L0 da Figura 6.5. Faa um programa em que o LED indique o estado corrente da chave. Faa este procedimento utilizando espera ocupada e posteriormente utilizando interrupo. 6. O diagrama da Figura 6.18 apresenta os componentes bsicos presentes no porto eletrnico.
IE ms PORTO Chaves Magnticas SE SD CENTRAL SIRENE LMPADA ID Movimentos

1. 2. 3. 4. 5.

Lista de Exerccios

CONTROLE REMOTO
Figura 6.18 - Porto eletrnico

CHAVE

O sistema de porto eletrnico constitudo de um porto com dois ms fixados em suas extremidades direita (ID) e esquerda (IE). Uma Central de controle constituda de um sistema microcontrolado utilizando o MSP430F149 e algumas interfaces que so responsveis pelo controle dos sensores e atuadores. Conectados as interfaces temos uma lmpada e uma sirene, que trabalham como sinalizadores, durante o processo de abertura e fechamento do porto. Dois dispositivos para abertura e fechamento do porto, sendo um remoto e o outro local. Internamente, acoplado a Central, existem duas chaves magnticas (SE e SD) que tem seus contatos fechados devido a presena do campo magntico gerado pelos ims ID ou IE. O funcionamento do sistema consiste basicamente no deslocamento do porto nos sentidos direita/esquerda tendo os seus movimentos limitados pelas chaves magnticas. Com base no diagrama da Figura 6.18 caso o porto seja acionado e estando a chave SD fechada, devido a presena de ID, o porto (motor) dever ser acionado para direita. O motor ir manter este sentido at que o im IE feche o contato do sensor SE. Aps o fechamento de SE, se um novo comando for dado, o movimento do porto ocorrer em sentido contrrio. A configurao das portas do MSP e os dispositivos do sistema sero feitos atravs de P1, P2 e P3. A porta P1 apresenta quatro bits teis com as seguintes funes: Conexo I/O 0 (Entrada) B7 B6 B5 B4 B3 B2 B1 B0 CR CM X X X X SE SD BIT FUNO 7 CR CONTROLE REMOTO levado para nvel lgico alto sempre que o controle remoto for ativado. 6 CM CHAVE MANUAL levado para nvel lgico alto sempre que a chave do porta for girada. 1 SE SENSOR ESQUERDO levado para nvel lgico alto sempre que o sensor SE for acionado. 0 SD SENSOR DIREITO levado para nvel lgico alto sempre que o sensor SD for acionado. A porta P2 uma entrada de dados composta de duas chaves ON/OFF. Elas sero responsveis pela programao do sistema, segundo a tabela abaixo:
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 17

CEFET/MG Centro Federal de Educao Tecnolgica de Minas Gerais Conexo I/O 1 (Entrada) B5 B4 B3 B2 B1 B0 X X X X S1 S0 S1 S0 FUNO 0 0 Sirene / Lmpada de sinalizao desligada 0 1 Sirene desligada e Lmpada de sinalizao ligada 1 0 Sirene ligada e Lmpada de sinalizao desligada 1 1 Sirene / Lmpada de sinalizao ligada A porta P3 uma sada de dados que apresenta o seguinte comportamento: Conexo I/O 2 (sada) B7 B6 B5 B4 B3 B2 B1 B0 AM SM X X X X S L FUNO AM ATIVA MOTOR 0 DESLIGADO | 1 LIGADO SM SENTIDO DO MOTOR 0 DIREITA | 1 -ESQUERDA S SIRENE Aciona sirene quando colocado em nvel alto. L LMPADA Aciona lmpada quando colocado em nvel alto. B7 X B6 X

BIT 7 6 1 0

Faa o algoritmo e seu respectivo programa que monitore os sensores presentes na porta 1 e 2 e atua conforme descrito abaixo: Depois de ligada a Central ela dever fazer uma varredura constante nas portas 0 e 1. A porta 1 dever ser lida e os seus bits 7 e 6 sero responsveis pela colocao do porto em movimento. Caso um destes bits seja levado para nvel alto o sistema dever verificar a situao dos sensores SE e SD para definir o sentido do movimento. Os bits 7 e 6 depois de ativados voltaro automaticamente para nvel lgico baixo depois de transcorrido 1s de sua ativao. A porta 2 definir o modo de funcionamento dos sinalizadores. A programao desta porta poder ser alterada a qualquer momento pelo usurio. A porta 3 ser utilizada para o acionamento do motor assim como para definir o sentido de seu movimento. Ser tambm responsvel pelo acionamento dos sinalizadores. Consideraes: Se durante a movimentao do porto um novo sinal de acionado for dado pelo usurio, o motor dever ser desligado mesmo que os sensores no tenham sido acionados. Nesta situao o porto ficar parado e s entrar em movimento, aps um novo comando dado pelo usurio. Agora o sentido do movimento ser contrrio ao anterior. O programa dever prever a falha nos sensores de fim curso. Para isto dever utilizar uma temporizao que automaticamente desativar o motor caso este tempo seja atingido. Caso o sistema seja ligado aps uma falha de energia deve ser analisada a posio em que o porto encontra-se estacionado.

18

Você também pode gostar