manual mcmaster rev 05

Upload: douglas-nascimento

Post on 17-Jul-2015

209 views

Category:

Documents


2 download

TRANSCRIPT

Manual do Usurio

McMasterDesenvolvimento de Sistemas com Microcontroladores PIC

01/05/2010

ndiceCAPTULO 1 - INTRODUO ......................................................................................................................... 5 CAPTULO 2 - MCMASTER DESENVOLVIMENTO DE SISTEMAS COM MICROCONTROLADORES PIC ..................................................................................................................................................................... 7 INTRODUO .................................................................................................................................................... 7 VISO MACRO DO SISTEMA ............................................................................................................................... 7 MDULOS PADRO........................................................................................................................................... 9 Microcontrolador ......................................................................................................................................... 9 LCD alfanumrico ....................................................................................................................................... 9 Displays de leds com 7 segmentos ............................................................................................................ 9 Leds .......................................................................................................................................................... 10 Teclado matricial ...................................................................................................................................... 10 Buzzer ...................................................................................................................................................... 11 Memria E2PROM externa ...................................................................................................................... 12 Relgio de tempo real (RTC) ................................................................................................................... 12 Comunicao serial RS-232..................................................................................................................... 13 Converso analgica / digital (A/D) .......................................................................................................... 13 PERIFRICOS ADICIONAIS ............................................................................................................................... 16 Placa de experincias EXP01 .................................................................................................................. 16 Placa de experincias EXP02 .................................................................................................................. 17 Placa de experincias EXP03 .................................................................................................................. 17 Placa de experincias EXP04 .................................................................................................................. 18 Adaptador McMaster ................................................................................................................................ 18 Gravador ICD2BR .................................................................................................................................... 18 CAPTULO 3 - EXPERINCIA 1 - LEITURA DE UMA TECLA E ACIONAMENTO DE UM LED................ 19 OBJETIVO ...................................................................................................................................................... 19 DESCRIO.................................................................................................................................................... 19 ESQUEMA ELTRICO....................................................................................................................................... 20 FLUXOGRAMA ................................................................................................................................................. 21 CDIGO ......................................................................................................................................................... 22 DICAS E COMENTRIOS .................................................................................................................................. 25 EXERCCIOS PROPOSTOS ............................................................................................................................... 25 CAPTULO 4 - EXPERINCIA 2 CONTADOR SIMPLIFICADO ................................................................ 26 OBJETIVO ...................................................................................................................................................... 26 DESCRIO.................................................................................................................................................... 26 ESQUEMA ELTRICO....................................................................................................................................... 27 FLUXOGRAMA ................................................................................................................................................. 28 CDIGO ......................................................................................................................................................... 30 DICAS E COMENTRIOS .................................................................................................................................. 34 EXERCCIOS PROPOSTOS ............................................................................................................................... 34 CAPTULO 5 - EXPERINCIA 3 PISCA - PISCA ...................................................................................... 35 OBJETIVO ...................................................................................................................................................... 35 DESCRIO.................................................................................................................................................... 35 ESQUEMA ELTRICO....................................................................................................................................... 36 FLUXOGRAMA ................................................................................................................................................. 37 CDIGO ......................................................................................................................................................... 39 DICAS E COMENTRIOS .................................................................................................................................. 43 EXERCCIOS PROPOSTOS ............................................................................................................................... 43 CAPTULO 6 - EXPERINCIA 4 CONVERSO BCD PARA DISPLAYS DE 7 SEGMENTOS ................. 44 OBJETIVO ...................................................................................................................................................... 44 DESCRIO.................................................................................................................................................... 44 ESQUEMA ELTRICO....................................................................................................................................... 46 FLUXOGRAMA ................................................................................................................................................. 47 CDIGO ......................................................................................................................................................... 49 DICAS E COMENTRIOS .................................................................................................................................. 53 EXERCCIOS PROPOSTOS ............................................................................................................................... 53 Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010 1

CAPTULO 7 - EXPERINCIA 5 TIMER DE SEGUNDOS......................................................................... 54 OBJETIVO ...................................................................................................................................................... 54 DESCRIO.................................................................................................................................................... 54 FLUXOGRAMA ................................................................................................................................................. 56 CDIGO ......................................................................................................................................................... 59 DICAS E COMENTRIOS .................................................................................................................................. 64 EXERCCIOS PROPOSTOS ............................................................................................................................... 64 CAPTULO 8 - EXPERINCIA 6 ACESO MEMRIA DE DADOS EEPROM ........................................ 65 OBJETIVO ...................................................................................................................................................... 65 DESCRIO.................................................................................................................................................... 65 ESQUEMA ELTRICO....................................................................................................................................... 66 FLUXOGRAMA ................................................................................................................................................. 67 CDIGO ......................................................................................................................................................... 70 DICAS E COMENTRIOS .................................................................................................................................. 75 EXERCCIOS PROPOSTOS ............................................................................................................................... 75 CAPTULO 9 - EXPERINCIA 7 - DIMMER .................................................................................................. 76 OBJETIVO ...................................................................................................................................................... 76 DESCRIO.................................................................................................................................................... 76 ESQUEMA ELTRICO....................................................................................................................................... 77 FLUXOGRAMA ................................................................................................................................................. 78 CDIGO ......................................................................................................................................................... 81 DICAS E COMENTRIOS .................................................................................................................................. 86 EXERCCIOS PROPOSTOS ............................................................................................................................... 86 CAPTULO 10 - EXPERINCIA 8 BOTES, LEDS E BUZZER ............................................................... 87 OBJETIVO ...................................................................................................................................................... 87 DESCRIO.................................................................................................................................................... 87 ESQUEMA ELTRICO....................................................................................................................................... 88 FLUXOGRAMA ................................................................................................................................................. 89 CDIGO ......................................................................................................................................................... 93 DICAS E COMENTRIOS .................................................................................................................................. 98 EXERCCIOS PROPOSTOS ............................................................................................................................... 98 CAPTULO 11 - EXPERINCIA 9 VARREDURA DE DISPLAYS E UTILIZAO DO TIMER 1 ............. 99 OBJETIVO ...................................................................................................................................................... 99 DESCRIO.................................................................................................................................................... 99 FLUXOGRAMA ............................................................................................................................................... 102 CDIGO ....................................................................................................................................................... 107 DICAS E COMENTRIOS ................................................................................................................................ 117 EXERCCIOS PROPOSTOS ............................................................................................................................. 117 CAPTULO 12 - EXPERINCIA 10 DISPLAY DE CRISTAL LQUIDO LCD........................................... 118 OBJETIVO .................................................................................................................................................... 118 DESCRIO.................................................................................................................................................. 118 ESQUEMA ELTRICO..................................................................................................................................... 119 FLUXOGRAMA ............................................................................................................................................... 120 CDIGO ....................................................................................................................................................... 125 DICAS E COMENTRIOS ................................................................................................................................ 132 EXERCCIOS PROPOSTOS ............................................................................................................................. 132 CAPTULO 13 - EXPERINCIA 11 CONVERSOR A/D ........................................................................... 133 OBJETIVO .................................................................................................................................................... 133 DESCRIO.................................................................................................................................................. 133 ESQUEMA ELTRICO..................................................................................................................................... 134 FLUXOGRAMA ............................................................................................................................................... 135 CDIGO ....................................................................................................................................................... 138 DICAS E COMENTRIOS ................................................................................................................................ 143 EXERCCIOS PROPOSTOS ............................................................................................................................. 143 CAPTULO 14 - EXPERINCIA 12 CONVERSO A/D VIA RC .............................................................. 144 OBJETIVO .................................................................................................................................................... 144 2

DESCRIO.................................................................................................................................................. 144 ESQUEMA ELTRICO..................................................................................................................................... 146 FLUXOGRAMA ............................................................................................................................................... 147 CDIGO ....................................................................................................................................................... 149 DICAS E COMENTRIOS ................................................................................................................................ 154 EXERCCIOS PROPOSTOS ............................................................................................................................. 154 CAPTULO 15 - EXPERINCIA 13 LEITURA DE JUMPERS VIA RC .................................................... 155 OBJETIVO .................................................................................................................................................... 155 DESCRIO.................................................................................................................................................. 155 ESQUEMA ELTRICO..................................................................................................................................... 156 FLUXOGRAMA ............................................................................................................................................... 157 CDIGO ....................................................................................................................................................... 159 DICAS E COMENTRIOS ................................................................................................................................ 163 EXERCCIOS PROPOSTOS ............................................................................................................................. 163 CAPTULO 16 - EXPERINCIA 14 MODULO PWM................................................................................ 164 OBJETIVO .................................................................................................................................................... 164 DESCRIO.................................................................................................................................................. 164 ESQUEMA ELTRICO..................................................................................................................................... 166 CDIGO ....................................................................................................................................................... 170 DICAS E COMENTRIOS ................................................................................................................................ 177 EXERCCIOS PROPOSTOS ............................................................................................................................. 177 CAPTULO 17 - EXPERINCIA 15 ACESSO S MEMRIAS DE DADOS E PROGRAMA ................. 178 OBJETIVO .................................................................................................................................................... 178 DESCRIO.................................................................................................................................................. 178 ESQUEMA ELTRICO..................................................................................................................................... 179 CDIGO ....................................................................................................................................................... 185 DICAS E COMENTRIOS ................................................................................................................................ 194 EXERCCIOS PROPOSTOS ............................................................................................................................. 194 CAPTULO 18 - EXPERINCIA 16 MASTER I2C .................................................................................... 195 OBJETIVO .................................................................................................................................................... 195 DESCRIO.................................................................................................................................................. 195 ESQUEMA ELTRICO..................................................................................................................................... 197 FLUXOGRAMA ............................................................................................................................................... 198 CDIGO ....................................................................................................................................................... 204 DICAS E COMENTRIOS ................................................................................................................................ 211 EXERCCIOS PROPOSTOS ............................................................................................................................. 211 CAPTULO 19 - EXPERINCIA 17 COMUNICAO SERIAL RS232 VIA USART ............................... 212 OBJETIVO .................................................................................................................................................... 212 DESCRIO.................................................................................................................................................. 212 ESQUEMA ELTRICO..................................................................................................................................... 213 FLUXOGRAMA ............................................................................................................................................... 214 CDIGO ....................................................................................................................................................... 216 DICAS E COMENTRIOS ................................................................................................................................ 222 EXERCCIOS PROPOSTOS ............................................................................................................................. 222 CAPTULO 20 - EXPERINCIA 18 TECLADO MATRICIAL 4X4 ............................................................ 223 OBJETIVO .................................................................................................................................................... 223 DESCRIO.................................................................................................................................................. 223 ESQUEMA ELTRICO..................................................................................................................................... 224 FLUXOGRAMA ............................................................................................................................................... 225 CDIGO ....................................................................................................................................................... 229 DICAS E COMENTRIOS ................................................................................................................................ 235 EXERCCIOS PROPOSTOS ............................................................................................................................. 235 CAPTULO 21 - EXPERINCIA 19 RELGIO DE TEMPO REAL (RTC) ............................................... 236 OBJETIVO .................................................................................................................................................... 236 DESCRIO.................................................................................................................................................. 236 ESQUEMA ELTRICO..................................................................................................................................... 237 Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010 3

FLUXOGRAMACDIGO .................................................................................................................................. 238 CDIGO ....................................................................................................................................................... 242 DICAS E COMENTRIOS ................................................................................................................................ 247 EXERCCIOS PROPOSTOS ............................................................................................................................. 247 CAPTULO 22 - EXPERINCIA 20 SISTEMA DE TEMPERATURA E TACMETRO ........................... 248 OBJETIVO .................................................................................................................................................... 248 DESCRIO.................................................................................................................................................. 248 O sensor de temperatura ....................................................................................................................... 248 O aquecimento ....................................................................................................................................... 248 O resfriamento ........................................................................................................................................ 249 Comunicao serial ................................................................................................................................ 249 Consideraes gerais ............................................................................................................................. 249 ESQUEMA ELTRICO..................................................................................................................................... 250 FLUXOGRAMA ............................................................................................................................................... 251 CDIGO ....................................................................................................................................................... 255 DICAS E COMENTRIOS ................................................................................................................................ 263 EXERCCIOS PROPOSTOS ............................................................................................................................. 263 CAPTULO 23 - EXEMPLO PLACA DE EXPERINCIA EXP01 ................................................................ 264 OBJETIVO .................................................................................................................................................... 264 DESCRIO.................................................................................................................................................. 264 CAPTULO 24 - EXEMPLO PLACA DE EXPERINCIA EXP02 ................................................................ 265 OBJETIVO .................................................................................................................................................... 265 DESCRIO.................................................................................................................................................. 265 ESQUEMA ELTRICO..................................................................................................................................... 266 CDIGO ....................................................................................................................................................... 268 CAPTULO 25 - EXEMPLO PLACA DE EXPERINCIA EXP03 ................................................................ 271 OBJETIVO .................................................................................................................................................... 271 DESCRIO.................................................................................................................................................. 271 ESQUEMA ELTRICO..................................................................................................................................... 272 PLACA DE EXPERINCIAS .............................................................................................................................. 273 CDIGO ....................................................................................................................................................... 275 CAPTULO 26 - EXEMPLO PLACA DE EXPERINCIA EXP04 ................................................................ 285 OBJETIVO .................................................................................................................................................... 285 DESCRIO.................................................................................................................................................. 285 CAPTULO 27 - SOFTWARE DE COMUNICAO SERIAL ..................................................................... 286 CAPTULO 28 - SOFTWARE DEMO PARA TESTE DO HARDWARE...................................................... 287 CAPTULO 29 - APNDICE A ESQUEMA ELTRICO COMPLETO DO MCMASTER ......................... 288 CAPTULO 30 - APNDICE B ESQUEMA ELTRICO COMPLETO DA PLACA DE EXPERINCIAS EXP01 ............................................................................................................................................................ 291 CAPTULO 31 - APNDICE B ESQUEMA ELTRICO COMPLETO DA PLACA DE EXPERINCIAS EXP02 ............................................................................................................................................................ 292 CAPTULO 32 - APNDICE C ESQUEMA ELTRICO COMPLETO DA PLACA DE EXPERINCIAS EXP03 ............................................................................................................................................................ 294 CAPTULO 33 - APNDICE D ESQUEMA ELTRICO COMPLETO DA PLACA DE EXPERINCIAS EXP04 ............................................................................................................................................................ 296 CAPTULO 34 - APNDICE D ESQUEMA ELTRICO COMPLETO DA PLACA ADAPTADORA MCMASTER .................................................................................................................................................. 297 Pinagem Adaptador McMaster ............................................................................................................... 298 CAPTULO 35 - CERTICADO DE GARANTIA ........................................................................................... 300

4

Captulo 1 - IntroduoInicialmente gostaramos de parabeniz-lo por estar adquirindo o sistema didtico McMaster. Este sistema utiliza o microcontrolador PIC18F4550 como objeto central. Junto ao microcontrolador, uma srie de perifricos foram adicionados. O objetivo disponibilizar uma placa de desenvolvimento onde o usurio possa testar seus conhecimentos em software, sem se preocupar com a montagem do hardware. Basta escrever o software. Veja todos os recursos que o sistema oferece: LCD alfanumrico; Displays de leds de 7 segmentos; Teclado matricial; Leds; Buzzer; Memria serial EEPROM (protocolo I2C); Relgio de tempo real (protocolo I2C); Comunicao serial padro RS232; Converso A/D; Leitura de jumpers; Sensor de temperatura; Aquecedor; Ventilador; Tacmetro; Lmpada Incandescente; Gravao in-circuit; Placas de experincias; Fonte de alimentao bivolt (interno ao mdulo).

Aliado a todos estes recursos, utilizou-se o microcontrolador PIC18F4550 que o mais completo da famlia 18F. Suas principais caractersticas so: Capacidade de processamento de 12MIPS; Fonte de clock interna de 31kHz e 8MHz do tipo RC; PLL interno para multiplicar a freqncia de clock; Prioridade no tratamento de interrupo possvel escolher entre alta ou baixa prioridade; Hardware de multiplicao 8X8 bits executado em 1 ciclo de mquina; Alta capacidade de corrente nos pinos de I/O, 25mA por pino; Trs fontes de interrupo externa; Uma interrupo de mudana de estado, quatro fontes; Timer 0 de 8 ou 16 bits configurvel; Timer 1 e 3 de 16 bits;

Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010

5

Timer 2 de 8 bits; Mdulo ECCP; Mdulo MSSP (SPI e I2C); EUSART (com suporte ao barramento LIN); ADC de 10bits; HLVD; BOR; WDT.

Fazem parte do kit de desenvolvimento: 1 Sistema de Treinamento em Microcontroladores PIC McMaster; com entrada de alimentao bivolt; 1 PIC18F4550; 1 Manual do Usurio; 1 CD-ROM; 1 Placa de experincia EXP01 1 Placa de experincia EXP02 1 Placa de experincia EXP03 1 Placa de experincia EXP04 1 Cabo USB 1 Cabo Serial

6

Captulo 2 - McMaster Desenvolvimento de Sistemas com Microcontroladores PIC

IntroduoO McMaster um equipamento para desenvolvimento de sistemas completo para o estudo da tecnologia de microcontroladores Microchip e em particular ao estudo do microcontrolador PIC18F4550. Na verdade, este sistema serve para muito mais que simplesmente o aperfeioamento dos conhecimentos da famlia PIC. Com ele o usurio capaz de criar projetos completos, colocando em teste tambm a eficincia de seus conceitos e algoritmos. Tudo isso possvel porque este sistema foi desenvolvido pensando na didtica de ensino e nos problemas mais comuns do mercado em relao ao uso de microcontroladores.

Viso Macro do SistemaNesta seo ser abordado atravs de uma viso macro o conceito do sistema utilizado no McMaster. Ele composto de um gravador ICD2Br para o microcontrolador, o microcontrolador PIC central, os perifricos ligados ao microcontrolador (aos quais daremos o nome de perifricos padres) e um conector de expanso para experincias onde novos perifricos (aos quais daremos o nome de perifricos adicionais ou placas de experincia) podero ser ligados. Todos os I/Os do microcontrolador esto disponveis no conector de expanso para experincias. Com exceo dos pinos RB6 e RB7 que so utilizados pela gravao in-circuit, todos os outros I/Os esto ligados diretamente ao conector, ou seja, sem nenhum tipo de proteo. Apenas os pinos RB6 e RB7 foram isolados. Por este motivo, muito importante que o usurio configure corretamente os I/Os do microcontrolador quando for utilizar o conector de expanso, pois neste caso, uma ligao errada pode danificar o microcontrolador. Se o usurio utilizar o conector de expanso apenas com placas oficiais de experincias a preocupao com a direo dos I/Os do microcontrolador no precisa ser tomada, uma vez que as placas de experincias e todo o McMaster foram projetadas a fim de evitar que uma configurao errada do microcontrolador coloque o sistema em risco. Portanto, mesmo que um pino do microcontrolador seja configurado como sada quando o correto seria entrada a integridade do sistema est garantida. claro que este erro pode acarretar num mau funcionamento do sistema projetado, porm nunca existir risco ao McMaster e s placas de experincias, desde que as mesmas sejam oficiais e/ou homologadas pelo fabricante.

Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010

7

Com o intuito de maximizar a compatibilidade entre as famlias de microcontroladores suportadas pela McMaster com seus mdulos padro optou-se pela utilizao de jumpers de configurao para que pontos importantes do circuito possam ser desabilitados. Desta forma, atravs de 7 jumpers , descritos de acordo com a seqncia em que esto dispostos na placa McMaster, podemos configurar a ferramenta de acordo com a aplicao desejada: Cap USB (RC3) Este jumper seleciona a ligao do capacitor de desacoplamento da referncia de tenso utilizada pelo mdulo USB do PIC18F4550. Selecione OFF para que o capacitor no seja desligado pois a comunicao USB utilizada e ON para que o capacitor seja desligado pois a comunicao USB no utilizada. Obs: quando for utilizado o PIC16F877A ou PIC18F4520 obrigatoriamente este jumper dever permanecer na posio ON Data I2C Este jumper seleciona o pino de via de dado I2C do microcontrolador utilizado com os perifricos padres. Selecione ON quando utilizar a via de dado do PIC18F4550 e OFF quando utilizar a via de dado do PIC16F877A ou PIC18F4520. Obs: quando for utilizado o PIC18F4550 com a via de dado I2C selecionada obrigatoriamente o jumper Coluna 1 (RB0) dever permanecer na posio OFF. Clock I2C Este jumper seleciona o pino de via de clock I2C do microcontrolador utilizado com os perifricos padres. Selecione ON quando utilizar a via de dado do PIC18F4550 e OFF quando utilizar a via de dado do PIC16F877A ou PIC18F4520. Obs: quando for utilizado o PIC18F4550 com a via de clock I2C selecionado obrigatoriamente o jumper Coluna 2 (RB1) dever permanecer na posio OFF. Coluna 2 (RB1) Este jumper desliga o pino RB1 utilizado para ler os botes da coluna 2 do teclado. Selecione ON quando utilizar a coluna 2 do teclado e OFF quando no utilizar a coluna 2 do teclado. Coluna 1 (RB0) Este jumper desliga o pino RB0 utilizado para ler os botes da coluna 1 do teclado. Selecione ON quando utilizar a coluna 1 do teclado e OFF quando no utilizar a coluna 1 do teclado. Linha 1 / Display Milhar (RB4) Este jumper desliga o pino RB4 utilizado para ativar a linha 1 do teclado matricial e o display do milhar. Selecione ON quando utilizar a linha 1 do teclado matricial e o display do milhar e OFF quando no utilizar a linha 1 do teclado matricial e o display do milhar. Leds Especiais (RC0, RC1 e RC2) Este jumper desabilita os leds ligados aos pinos RC0, RC1 e RC2 utilizados pelos mdulos CPP e TIMER1 do microcontrolador. Selecione ON quando utilizar os leds especiais e OFF quando no utilizar os leds especiais.

8

Mdulos PadroNesta seo sero abordados cada um dos mdulos padro do McMaster.

MicrocontroladorO sistema utiliza o microcontrolador PIC18F4550 como centro de todo o hardware. Este microcontrolador est ligado a todos os perifricos disponveis, possibilitando o estudo de praticamente todas as suas funes. Devido tambm ao grande poder de recursos deste modelo de PIC, possvel, junto aos demais recursos da placa, o desenvolvimento de projetos simples e/ou complexos, como por exemplo um controlador de temperatura com algoritmo de controle PID.

LCD alfanumricoNos dias de hoje, qualquer programador sabe da importncia da interface com o usurio dentro de um sistema qualquer. Por isso, muito importante o aprendizado de operao de um display do tipo LCD. No caso do McMaster, este display possui 2 linhas de 16 caracteres cada, sendo um padro de mercado atual. Possui um chip de controle prprio, com o qual realizada a interface com o microcontrolador. Com este perifrico os sistemas desenvolvidos no McMaster podero possuir telas explicativas, informaes claras e menus de navegao. A comunicao com o LCD paralela com 8 vias de dados. Alm destas, mais duas vias so utilizadas para controlar o LCD, uma denominada de ENABLE e a outra de RS. A comunicao com o LCD somente de escrita, desta forma, o pino de R/W do LCD est diretamente ligado ao terra (GND), no permitindo a leitura do mesmo. As 8 vias de dados do LCD esto ligadas ao PORTD do microcontrolador, de RD0 (LSB) at RD7 (MSB). O pino de ENABLE est conectado ao pino RE1 do PIC e o pino RS do LCD ao pino RE0 do microcontrolador. Assim, o esquema de ligao segue a tabela abaixo:PIC RD0...RD7 RE0 RE1 Terra (GND) LCD D0...D7 RS ENABLE R/W

Para maiores informaes a respeito do LCD pode-se consultar o data sheet contido no CD que acompanha o McMaster.

Displays de leds com 7 segmentosO LCD uma tima ferramenta de informao ao usurio, porm, muitas vezes ele ainda invivel devido a custo, capacidade de visualizao a distncia e iluminao ao ponto de muitos projetos ainda utilizarem os velhos e prticos displays de leds ainda que no sejam a melhor alternativa para interface. No McMaster optou-se pela utilizao de displays de 7 segmentos, que so numricos, mas que permitem a visualizao de diversas letras atravs da combinao especfica destes segmentos. Optou-se tambm por 4 dgitos, todos com os

Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010

9

segmentos interligados e os controles (comum) independentes, possibilitando a operao por varredura. Atualmente, muito comum encontrar em produtos do mercado, a combinao de ambos os tipos de display, para uma visualizao mais completa e eficiente. Com o McMaster esta combinao tambm possvel. A conexo dos displays com o microcontrolador segue a tabela abaixo:PIC RD0 RD1 RD2 RD3 RD4 RD5 RD6 RD7 Segmento A B C D E F G DP

E as vias de seleo de cada um dos displays, a tabela seguir:PIC RB4 RB5 RB6 RB7 Display Milhar Centena Dezena Unidade

Para a ativao dos displays deve-se selecionar nvel lgico 1 nos pinos de seleo. Os segmentos tambm so ativados com nvel lgico 1.

LedsO McMaster possui um grupo de 8 leds que compartilha o mesmo barramento que os displays de 7 segmentos e o display LCD. Desta forma, o seu acionamento deve ser feito via varredura sendo que os leds esto conectados ao PORTD e a seleo feita pelo pino RA4. Da mesma forma que os displays, os leds so ativados com nvel lgico 1, tanto na via de seleo (RA4) como individualmente (PORTD).

Teclado matricialA maioria dos sistemas desenvolvidos atualmente utilizam algum tipo de teclado para a entrada de dados pelo usurio. O McMaster est provido de um teclado matricial de 4 linhas e 4 colunas, totalizando 16 teclas. O acionamento das linhas do teclado feito simultaneamente com os comuns dos displays de 7 segmentos. Desta forma, ao acionar o display da unidade aciona-se tambm a linha 4 do teclado matricial. Junto com o display da dezena a linha 3 e assim por diante. A tabela a seguir mostra esta relao:

10

Pino PIC RB7 RB6 RB5 RB4

Estado 1 0 1 0 1 0 1 0

Teclado Matricial linha 4 ativada linha 4 desativada linha 3 ativada linha 3 desativada linha 2 ativada linha 2 desativada linha 1 ativada linha 1 desativada

Display de 7 segmentos unidade ativada unidade desativada dezena ativada dezena desativada centena ativada centena desativada milhar ativada milhar desativada

As colunas podem ser lidas atravs dos pinos RB0, RB1, RB2 e RB3, conforme a tabela a seguir: Pino PIC RB0 RB1 RB2 RB3 Estado 1 0 1 0 1 0 1 0 Teclado Matricial Alguma tecla pressionada na coluna 1 Nenhuma tecla pressionada na coluna 1 Alguma tecla pressionada na coluna 2 Nenhuma tecla pressionada na coluna 2 Alguma tecla pressionada na coluna 3 Nenhuma tecla pressionada na coluna 3 Alguma tecla pressionada na coluna 4 Nenhuma tecla pressionada na coluna 4

Vale observar que para o correto funcionamento do teclado os jumpers relacionados com os pinos RB0 e RB4 devem estar configurados na posio ON.

BuzzerPara chamar a ateno do usurio e confirmar certas aes, cada vez mais os sistemas esto fazendo uso de tcnicas sonoras, seja atravs de simples bips ou por complexas melodias. Para que os usurios no fiquem sem o uso deste recurso, disponibilizou-se tambm um buzzer piezoeltrico com oscilao comandada diretamente pelo PIC, tornando possvel a criao de sons diversos. O microcontrolador deve ento gerar (atravs do software) uma onda quadrada capaz de excitar o buzzer. Para gerar um simples beep pode-se utilizar uma onda quadrada com freqncia em torno de 650Hz e durao aproximada de 100ms. O buzzer est conectado ao pino RE2 do microcontrolador.

Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010

11

Memria E2PROM externaAlm da memria E2PROM interna do PIC, o McMaster possui ainda uma memria externa do tipo serial, modelo 24LC256 com 32Kbytes disponveis para uso. Esta memria est soquetada na placa, possibilitando a sua substituio por outros modelos compatveis, com maior ou menor capacidade. A comunicao com esta memria do tipo IC, estando diretamente ligada os pinos do PIC responsveis por este padro de comunicao. PIC RC3/RB1 RC4/RB0 Memria Clock (SCL) pino 6 Data (SDA) pino 5

Novamente os jumpers de configuraes relacionados devem estar habilitados para a utilizao da memria serial externa. Note que a posio 3-2 habilita os pinos RC3 e RC4. J a posio 2-1 habilita os pinos RB0 e RB1. Como a memria serial compartilha o mesmo barramento I2C do relgio de tempo real (PCF8583P) se faz necessria a utilizao de endereos diferentes para que o barramento seja compatvel com os dois perifricos. Sendo assim, escolheu-se o endereo 7h (111b) para a memria serial. Para maiores informaes sobre o protocolo de comunicao da memria serial 24LC256 pode-se consultar o data sheet disponvel no CD. Para detalhes a respeito da configurao dos jumpers utilizados na comunicao I2C consulte o Captulo 2.

Relgio de tempo real (RTC)Utilizando o mesmo barramento I2C da memria serial, o McMaster possui um relgio de tempo real, modelo PCF8583P. Com este componente o usurio poder criar sistemas que contenham informaes como a hora e a data atual. O relgio utilizado completo, ou seja, capaz de contar dia, ms, ano (inclusive bissexto), semana, hora, minuto, segundo e milsimo de segundo. Alm de poder ser configurado de formas diferentes. O data sheet deste componente est disponvel no CD que acompanha o McMaster. Pelo mesmo motivo j comentado na memria serial, o relgio foi configurado para utilizar o endereo 0h (000b) a fim de poder compartilhar o mesmo barramento I2C. Como no caso da memria, os pinos responsveis pela comunicao so: PIC RC3/RB1 RC4/RB0 Relgio RTC Clock (SCL) pino 6 Data (SDA) pino 5

12

Comunicao serial RS-232Quem no deseja que seu projeto se comunique com um computador atualmente? Esta outra tendncia de mercado que os profissionais no podem deixar de lado. Seja para a configurao de parmetros, para a coleta de dados ou a visualizao grfica de informaes, a interligao entre o kit e o computador um recurso que no poderia ser deixado de lado. Optou-se pela comunicao serial, padro RS-232 atravs de um conector DB-9. A interface e ajuste de tenses necessrias a este padro, em relao operao do PIC (TTL) feita por um CI dedicado. Internamente, as vias de TX e RX podem ser ligadas aos pinos da USART do PIC, possibilitando o uso deste recurso. A ligao ao microcontrolador segue a tabela abaixo. PIC RC6 RC7 COM. TX (sada) RX (entrada)

Faz parte tambm do mdulo de comunicao serial, o conector DB9 fmea que segue a pinagem abaixo: Pino 1 2 3 4 5 6 7 8 9 Funo TX (sada) RX (entrada) Terra (GND) -

Converso analgica / digital (A/D) verdade que estamos considerando o mundo cada vez mais digital, principalmente nos dias de hoje, onde vemos bilhes de informaes trafegando por fibras pticas e imagens de computador recriando o mundo real. Mas no podemos esquecer que a natureza completamente analgica, e qualquer sistema que se baseie ou utilize informaes deste meio externo precisar de um sistema de converso para poder se comunicar. por isso que, hoje e sempre, a converso A/D to necessria. Com o McMaster poderemos realizar estas converses de duas maneiras. A primeira atravs do conversor interno do PIC e a segunda atravs de um pseudoconversor fundamentado no tempo de carga de um circuito RC. Dentre os mdulos padro existem dois sistemas para trabalhar com o conversor A/D e para qualquer um deles, as duas formas de aquisio podem ser aplicadas, ou seja, tanto via A/D convencional como via RC. O primeiro sistema consiste num potencimetro e o segundo num conjunto de jumpers que podem ser configurados como divisor resistivo ou circuito RC.

Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010

13

Potencimetro O sistema com o potencimetro segue o esquema eltrico representado a seguir.+5V

10K

+

-

4,7K

330R

RA0

LM358 1uF

A tenso de entrada presente no pino RA0 do microcontrolador pode ser ajustada entre 0 e 5V. Caso se utilize o conversor A/D interno do PIC, o capacitor de 1uF e o resistor de 4K7 formam um filtro passa baixa til para filtrar rudos e deixar o sinal de entrada mais estvel. Caso se utilize o sistema de leitura via RC o conjunto de resistores e capacitores assume outra funo. Neste sistema, para realizar a converso deve-se executar as etapas a seguir: Inicialmente, atravs do software, deve-se descarregar o capacitor, colocando o pino do microcontrolador como sada em nvel lgico 0. O capacitor se descarregar pelo resistor de 330R. Aps o capacitor estar descarregado, coloca-se o pino do microcontrolador em entrada e comea-se a contar o tempo que o capacitor leva para se carregar (atravs do resistor de 4K7), ou seja, quanto tempo o capacitor leva para atingir nvel lgico 1. Como tempo de carga inversamente proporcional tenso aplicada pelo potencimetro, sabendo-se o tempo de carga pode-se estimar a tenso aplicada. Jumpers O sistema de jumpers est ligado ao pino RA5 do microcontrolador e segue o esquema eltrico representado a seguir.+5V ON Posio 1 22K 1 2 3 OFF JP1

Posio 2 33K 1 2 3

JP2

Jumpers RA5

Posio 3 RA5 330R 47K 1 2 3

JP3

3

2

1

JP4

Divisor Capacitivo

Divisor Resistivo

100nF

10K

14

Se configurarmos o sistema para divisor resistivo, basta ler com o conversor A/D do PIC a tenso presente no pino RA5 para estimar a posio do jumper. Se configurarmos o sistema para resistor/capacitor, devemos seguir a mesma metodologia explicada no caso do potencimetro, ou seja: Inicialmente descarregar o capacitor atravs do resistor de 330R colocando o pino do microcontrolador como sada em nvel lgico 0. Aps o capacitor estar descarregado, colocar o pino do microcontrolador em entrada e comear a contar o tempo que o capacitor leva para se carregar, ou seja, quanto tempo o capacitor leva para atingir nvel lgico 1. Este tempo de carga proporcional ao valor do circuito RC e portanto, pode ser utilizado para determinar a posio do jumper.

Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010

15

Perifricos AdicionaisA seguir sero explanados os perifricos adicionais (placas de expanso) contidos na placa de experincias EXP01, EXP02, EXP03, EXP04 que acompanham o kit MCMASTER.

Placa de experincias EXP01Entre outras funes a placa de experincias EXP01 possui um sistema completo para monitoramento e controle de temperatura, com um sensor e dois atuadores. Desta forma, temse um sensor de temperatura, um atuador de aquecimento (resistncia controlada por PWM) e um atuador de resfriamento (ventilador controlado por PWM). Alm disso, um sistema ptico ligado s hlices do ventilador capaz de criar um tacgrafo, para monitoramento e controle de rotao. Possui tambm uma lmpada incandescente alm de gerar uma tenso de referncia estvel em 2,5V que pode ser utilizada como referncia para o conversor A/D. Com tudo isso pode-se criar experimentos e projetos complexos de controle, comeando em um simples controle ON/OFF at um avanado controlador PID. Sensor de temperatura A placa possui um circuito que utiliza um diodo de sinal como elemento sensor do medidor de temperatura ambiente. O sinal analgico proporcional temperatura ambiente est presente no pino RA1 do microcontrolador e varia entre 0 e 5V. Deve-se evitar que a temperatura ultrapasse 90C a fim de evitar que o sensor seja danificado. Aquecedor O aquecedor consiste numa resistncia de 68 com 5W de dissipao. Pode ser acionada atravs do pino RC2 do microcontrolador. Veja que este pino pode ser configurado como PWM, e portanto, a potncia de aquecimento pode ser regulada atravs deste recurso. Ventilador O sistema de ventilao consiste num cooler de PC que pode ser ativado atravs do pino RC1 do microcontrolador. Assim como no caso do aquecedor, este pino pode ser configurado como PWM, desta forma, pode-se modular a velocidade do ventilador utilizando este recurso do microcontrolador. Tacmetro Junto ao ventilador existe um sistema formado por um transmissor e um receptor de infravermelho. Este sistema utilizado para medir a velocidade de rotao do ventilador. Quando no temos a passagem de luz, ou seja, quando a luz est interrompida por uma das palhetas do ventilador, o sistema de tacmetro apresentar na sada nvel lgico 1. Quando se tem a passagem de luz, a sada do sistema de tacmetro ser 0. O tacmetro est conectado ao pino RC0 (entrada de contador do TMR1) do microcontrolador.

16

Lmpada incandescente Consiste numa lmpada incandescente de 12V que pode ser acionada atravs do pino RC5 do microcontrolador. Com nvel lgico 1 a lmpada acende e com nvel lgico 0 a lmpada apaga. Tenso de referncia O circuito medidor de temperatura ambiente utiliza uma tenso de referncia fixa e estvel em 2,5V e como este recurso j estava presente na placa de experincias EXP01 resolveu-se tambm disponibilizar este recurso ao usurio. Assim, a tenso de referncia de 2,5V foi conectada ao pino RA3 do PIC que pode ser configurado para utilizar este pino como entrada de referncia externa do conversor A/D. Isto permite que o conversor A/D possa trabalhar em outra faixa de converso e conseqentemente com outra resoluo.

Placa de experincias EXP02Entre outras funes a placa de experincias EXP02 possui duas sadas analgicas ou PWM (configurvel via jumper), duas sadas a rel (contatos NA ou NF), entrada de sinal isolada por fotoacoplador e sada isolada por fotoacoplador. Conversor digital analgico - PWM A placa possui um circuito que utiliza a sada do mdulo CCP configurado como PWM e integra este sinal, de modo que gera uma sada DC proporcional ao ciclo ativo do PWM. Atravs de jumper de configurao podemos ter uma sada analgica ou PWM. Sadas a REL A placa possui dois rels com contatos NA ou NF para ser utilizados em circuitos de potncia como lmpadas, motores, etc. Entrada e sada de sinal isolada A placa possui entrada e sada isolada para ligar sinais de outros sistemas onde h necessidade de isolao de sinais.

Placa de experincias EXP03Entre outras funes a placa de experincias EXP03 possui dois potencimetros digitais, jumpers para configurao ou forar um determinado nvel lgico (por exemplo, configurao de software, etc.) e entrada USB para experincias como RS232 emulada, mouse, etc. Potnciometro digital A placa possui um circuito que utiliza um potencimetro digital de dois canais, controlados pela interface SPI, podendo substituir em boa parte dos casos o tradicional potencimetro analgico. Jumpers de configurao A placa possui oito jumpers de configurao que podem ser utilizadas em diversos modos, como configurao de software, etc.

Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010

17

Entrada USB A placa possui entrada USB para utilizao com o PIC18F4550. Com esta entrada podemos emular, por exemplo, uma RS232, um mouse, entre outros.

Placa de experincias EXP04A placa de experincias EXP04 composta de uma matriz de contatos (proto-board) de 550 pontos, conector para derivao de sinais dos pinos do microcontrolador e conector com sinais de alimentao. A placa pode ser utilizada para montagem de circuitos experimentais complementando os j existentes nas placas de expanso e na placa McMaster.

Adaptador McMasterA placa Adaptador McMaster pode ser substituda na posio ocupada pelo microcontrolador do McMaster permitindo a conexo de outros microcontraldores da famlia Microchip que sejam compatveis ao esquema da Adaptador. Consulte o Captulo 31 para mairores detalhes.

Gravador ICD2BRPara utilizar o gravador presente no McMaster basta selecionar corretamente o seu modelo no software de desenvolvimento MPLAB da Microchip. Por se tratar de um gravador in-circuit o microcontrolador no precisa ser retirado da placa. Ao habilitar o gravador no MPLAB o software atual do PIC18F4550 ser paralisado e instantes aps o final da gravao do novo software, o microcontrolador ser automaticamente inicializado. Durante todas as etapas de comunicao entre o ICD2BR e o microcontrolador (casos de gravao e depurao) o boto ICSP dever ser mantido pressionado (LED ICSP ON aceso). Como trata-se de um sistema de gravao conjugado ao McMaster, o usurio dever sempre estabelecer a conexo USB entre o Kit e o MPLAB para correta operao do kit e execuo dos exemplos. Para a execuo dos exemplos posteriormente gravados no microcontrolador, o usurio poder decidir entre liberar a tecla ICSP (LED ICSP ON apagado) ou liberar via MPLAB o reset do ICD2BR; Liberando o boto ICSP o microcontrolador sair do estado de reset independentemente do comando de reset via MPLAB.

Obs: (1) O boto de reset do McMaster funcionar somente quando o reset do gravador (controlado atravs do software MPLAB) estiver liberado caso o boto ICSP esteja pressionado (LED ICSP ON aceso) (2) Para maiores detalhes a respeito da utilizao do gravador ICD2BR consulte o seu manual de operao.

18

Captulo 3 - Experincia 1 - Leitura de uma tecla e acionamento de um led ObjetivoO objetivo desta experincia ensinar ao aluno os primeiros passos sobre o microcontrolador. apresentado o modo de configurao dos pinos de I/Os e as primeiras instrues utilizadas para testar condies nos pinos de entrada e alteraes de estado nos pinos de sada, alm de instrues para controle do fluxo do programa.

DescrioSistema muito simples para representar o estado de um boto atravs de um led. Com o boto pressionado o led ligado e com o boto solto o led apagado. O software inicia configurando os pinos de I/Os atravs dos registradores TRIS e dos registradores de perifricos pertinentes. Em seguida, o software habilita a linha 4 do teclado matricial e o grupo de leds ligados ao PORTD. A partir da, o software entra num loop infinito onde o boto da linha 1 coluna 4 testado e seu estado reproduzido no led 0 ligado ao pino RD0.

Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010

19

Esquema Eltrico

20

Fluxograma

INCIO

VETOR DE RESET PULA P/ INCIO DO PROGRAMA CONFIGURAES INICIAIS PORTAS, TIMERS, INTERRUPES, OPTION, ADs.

HABILITA LEDS

ATIVA LINHA 4 DO TECLADO MATRICIAL

BOTO PRESS.? Sim ACENDE LED

No

APAGA LED

Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010

21

Cdigo/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Exemplo de Cdigo para utilizao com a McMaster * * Exemplo 1 * * * * LABTOOLS - MOSAICO DIDACTIC DIVISION * * * * TEL: (0XX11) 4992-8775 SITE: www.labtools.com.br * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VERSO : 1.0 * * DATA : 18/01/2010 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Descrio geral * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ // Este software est preparado para demonstrar o controle dos pinos de I/O // este primeiro programa demonstrar o estado de um boto por meio de um led. /* CONFIGURAO DOS JUMPERS DA PLACA: CAP USB(RC3) DATA I2C CLOCK I2C COLUNA 2(RB1) COLUNA 1(RB0) LINHA 1 / DISPLAY MILHAR(RB4) LEDS ESPECIAS (RC0,RC1,RC2) */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DEFINIO PIC * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include // Register definitions -> -> -> -> -> -> -> ON OFF OFF ON ON ON ON

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * INCLUDES DAS FUNES DE PERIFRICOS DO PIC * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include #include #include #include #include #include #include //PWM library functions //ADC library functions //Timer library functions //Delay library functions //I2C library functions //Library functions //USART library functions

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Configuraes para gravao * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #pragma #pragma #pragma #pragma #pragma #pragma #pragma #pragma #pragma #pragma #pragma #pragma #pragma #pragma #pragma config config config config config config config config config config config config config config config FOSC = HS CPUDIV = OSC1_PLL2 WDT = OFF WDTPS = 128 LVP = OFF PWRT = ON BOR = OFF BORV = 0 PBADEN = OFF DEBUG = OFF PLLDIV = 1 USBDIV = 1 FCMEN = OFF IESO = OFF VREGEN = OFF

22

#pragma #pragma #pragma #pragma #pragma

config config config config config

MCLRE = ON LPT1OSC = OFF CCP2MX = ON STVREN = OFF ICPRT = OFF

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definio e inicializao das variveis Globais * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //Neste bloco esto definidas as variveis globais do programa. //Este programa no utiliza nenhuma varivel de usurio /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Constantes internas * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //A definio de constantes facilita a programao e a manuteno. //Este programa no utiliza nenhuma constante de usurio /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Declarao dos flags de software * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //A definio de flags ajuda na programao e economiza memria RAM. //Este programa no utiliza nenhum flag de usurio /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definio e inicializao dos port's * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * PROTOTIPAGEM DE FUNES * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * * * * * * // As entradas devem //futuras alteraes * * * * * * * * * * * * * * * * * * * * * * * * * * ENTRADAS * * * * * * * * * * * * * * * * * * * * * * * * * * ser associadas a nomes para facilitar a programao do hardware. //PORTA DO BOTO //1 -> PRESSIONADO //0 -> LIBERADO * * * * * * * * * * * * * * * * * * * SADAS * * * * * * * * * * * * * * * * * * * */ nomes para facilitar a programao e * * */ e

#define BOTAO PORTBbits.RB0

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //As sadas devem ser associadas a //futuras alteraes do hardware. #define LED PORTDbits.RD0

//PORTA DO LED //0 -> APAGADO //1 -> ACESO //PINO PARA ATIVAR GRUPO DE 8 LEDS //1 -> LEDS ATIVADOS //0 -> LEDS DESATIVADOS //PINO PARA ATIVAR LINHA 4 DO TECLADO //MATRICIAL //1 -> LINHA ATIVADA //0 -> LINHA DESATIVADA

#define

C_LEDS

PORTAbits.RA4

#define

LINHA_4

PORTBbits.RB7

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Funo Principal * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ void main { PORTA PORTB PORTC PORTD PORTE () = = = = = 0x00; 0x00; 0x00; 0x00; 0x00; //Limpa //Limpa //Limpa //Limpa //Limpa PORTA PORTB PORTC PORTD PORTE

Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010

23

LATA LATB LATC LATD LATE

= = = = =

0x00; 0x00; 0x00; 0x00; 0x00; 0b00101111; 0b00001111; 0b10011001; 0b00000000; 0b00000000;

//Limpa //Limpa //Limpa //Limpa //Limpa

PORTA PORTB PORTC PORTD PORTE DIREO DIREO DIREO DIREO DIREO DOS DOS DOS DOS DOS PINOS PINOS PINOS PINOS PINOS PORTA PORTB PORTC PORTD PORTE

TRISA TRISB TRISC TRISD TRISE

= = = = =

//CONFIG //CONFIG //CONFIG //CONFIG //CONFIG

ADCON1 = 0b00001111;

//DESLIGA CONVERSORES A/D

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Inicializao do Sistema * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ C_LEDS = 1; //ATIVA LEDS LIGADOS AO PORTD LINHA_4 = 1; /* * * * * * * * * * * * * * * * * * * while(1) { ClrWdt(); if (BOTAO) else LED = } } //ATIVA LINHA 4 DO TECLADO MATRICIAL * * * * * * * * * * * * * * * * * * * * * * * * * * * Rotina Principal * * * * * * * * * * * * * * * * * * * * * * * * * * * */

LED = 1; 0;

// testa boto. Se boto = 0, ento led = 1 // caso contrrio, led = 0

// FIM DO PROGRAMA

24

Dicas e ComentriosVeja que os pinos do microcontrolador, tanto os de entrada como os de sada so declarados atravs de DEFINES no incio do software o que facilita futuras alteraes na pinagem do hardware. Repare tambm que o exemplo extremamente simples e nenhum tipo de tratamento de debounce para a tecla foi utilizado.

Exerccios Propostos1. Altere a lgica do sistema, ou seja, com o boto pressionado o led deve permanecer apagado e com o boto liberado o led deve permanecer acesso. 2. Altere o software a fim de trocar a tecla ativa, passando por exemplo a utilizar a tecla da linha 4 coluna 2. 3. Altere o software para ligar/desligar outro led, por exemplo, o led ligado ao pino RD3.

Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010

25

Captulo 4 - Experincia 2 Contador Simplificado

ObjetivoO objetivo desta experincia ensinar os recursos de software comumente utilizados para tratamento de debounce de teclas e a manipulao de variveis declaradas na RAM do microcontrolador.

DescrioO software faz uso do grupo de leds para representar de forma binria o valor da varivel CONTADOR declarada na RAM do microcontrolador. Utilizando o boto da linha 4 coluna 1 altera-se o valor da varivel atravs de instrues de incremento e decremento. O valor est limitado por constantes declaradas no incio do cdigo. Como apenas um boto utilizado, a varivel incrementada at o valor mximo e em seguida decrementada at o valor mnimo, permanecendo neste looping indefinidamente. Foi utilizado um flag para alterar o sentido da contagem sempre que um dos extremos atingido. Foi feito o tratamento de debounce da tecla que consiste em testar repetidas vezes se a tecla foi realmente pressionada para somente depois executar a ao correspondente. Sempre que a tecla estiver solta o contador de debounce (varivel FILTRO) inicializado e sempre que a tecla for pressionada o valor da varivel FILTRO decrementado, de forma que a tecla somente considerada pressionada quando o valor de FILTRO for igual a zero.

26

Esquema Eltrico

Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010

27

Fluxograma

INCIO

VETOR DE RESET PULA P/ INCIO DO PROGRAMA CONFIGURAES INICIAIS PORTAS, TIMERS, INTERRUPES, OPTION, ADs.

HABILITA LEDS

ATIVA LINHA 4 DO TECLADO MATRICIAL

CARREGA CONTADOR COM VALOR MNIMO

2

ATUALIZA LEDS

RECARREGA FILTRO DE DEBOUNCE

No

BOTO PRESS.?

DECREMENTA FILTRO

FILTRO=0?

Sim 1

28

1

Sim

SENTIDO=1?

No

DECREMENTA CONTADOR

INCREMENTA CONTADOR

CONTADORMX?

Sim INCREMENTA CONTADOR

Sim DECREMENTA CONTADOR

SENTIDO = 0

SENTIDO = 1

2

2

ATUALIZA LEDS

No

BOTO LIBERADO? Sim 2

Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010

29

Cdigo/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Exemplo de Cdigo para utilizao com a McMaster * * Exemplo 2 * * * * LABTOOLS - MOSAICO DIDACTIC DIVISION * * * * TEL: (0XX11) 4992-8775 SITE: www.labtools.com.br * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VERSO : 1.0 * * DATA : 18/01/2010 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Descrio geral * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //Este exemplo mostra um contador simplificado /* CONFIGURAO DOS JUMPERS DA PLACA: CAP USB(RC3) DATA I2C CLOCK I2C COLUNA 2(RB1) COLUNA 1(RB0) LINHA 1 / DISPLAY MILHAR(RB4) LEDS ESPECIAS (RC0,RC1,RC2) */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DEFINIO PIC * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include // Register definitions -> -> -> -> -> -> -> ON OFF OFF ON ON ON ON

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * INCLUDES DAS FUNES DE PERIFRICOS DO PIC * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include #include #include #include #include #include #include //PWM library functions //ADC library functions //Timer library functions //Delay library functions //I2C library functions //Library functions //USART library functions

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Configuraes para gravao * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #pragma #pragma #pragma #pragma #pragma #pragma #pragma #pragma #pragma #pragma #pragma #pragma #pragma #pragma config config config config config config config config config config config config config config FOSC = HS CPUDIV = OSC1_PLL2 WDT = OFF WDTPS = 128 LVP = OFF PWRT = ON BOR = OFF BORV = 0 PBADEN = OFF DEBUG = OFF PLLDIV = 1 USBDIV = 1 FCMEN = OFF IESO = OFF

30

#pragma #pragma #pragma #pragma #pragma #pragma

config config config config config config

VREGEN = OFF MCLRE = ON LPT1OSC = OFF CCP2MX = ON STVREN = OFF ICPRT = OFF

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definio e inicializao das variveis Globais * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //Neste bloco esto definidas as variveis globais do programa. struct flags { unsigned char BIT0 :1; unsigned char BIT1 :1; unsigned char BIT2 :1; unsigned char BIT3 :1; unsigned char BIT4 :1; unsigned char BIT5 :1; unsigned char BIT6 :1; unsigned char BIT7 :1; }; unsigned char unsigned char CONTADOR; FILTRO;

struct flags FLAG_0; /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Constantes internas * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //A definio de constantes facilita a programao e a manuteno. #define #define MIN MAX 10 30

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Declarao dos flags de software * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //A definio de flags ajuda na programao e economiza memria RAM. #define #define #define sentido C_LEDS LINHA_4 FLAG_0.BIT0 LATAbits.LATA4 LATBbits.LATB4

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definio e inicializao dos port's * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * PROTOTIPAGEM DE FUNES * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * * * * * * // As entradas devem //futuras alteraes * * * * * * * * * * * * * * * * * * * * * * * * * * ENTRADAS * * * * * * * * * * * * * * * * * * * * * * * * * * ser associadas a nomes para facilitar a programao do hardware. //PORTA DO BOTO //1 -> PRESSIONADO //0 -> LIBERADO * * * * * * * * * * * * * * * * * * * SADAS * * * * * * * * * * * * * * * * * * * */ nomes para facilitar a programao e * * */ e

#define BOTAO PORTBbits.RB0

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //As sadas devem ser associadas a //futuras alteraes do hardware.

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Funo Principal *

Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010

31

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ void main { PORTA PORTB PORTC PORTD PORTE LATA LATB LATC LATD LATE () = = = = = 0x00; 0x00; 0x00; 0x00; 0x00; //Limpa //Limpa //Limpa //Limpa //Limpa //Limpa //Limpa //Limpa //Limpa //Limpa PORTA PORTB PORTC PORTD PORTE PORTA PORTB PORTC PORTD PORTE DIREO DIREO DIREO DIREO DIREO DOS DOS DOS DOS DOS PINOS PINOS PINOS PINOS PINOS PORTA PORTB PORTC PORTD PORTE

= = = = =

0x00; 0x00; 0x00; 0x00; 0x00; 0b00101111; 0b00001111; 0b10011001; 0b00000000; 0b00000000;

TRISA TRISB TRISC TRISD TRISE

= = = = =

//CONFIG //CONFIG //CONFIG //CONFIG //CONFIG

ADCON1 = 0b00001111;

//DESLIGA CONVERSORES A/D

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Inicializao do Sistema * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ C_LEDS = 1; LINHA_4 = 1; sentido = 0; CONTADOR = MIN; PORTD = CONTADOR; /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Rotina Principal * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ while(1) { ClrWdt(); FILTRO = 200; if(!BOTAO) continue; while(BOTAO) { ClrWdt(); FILTRO--; if(FILTRO) continue; else break; } if(sentido == 0) { CONTADOR++; if(CONTADOR > MAX) { CONTADOR--; sentido = 1; continue; } } else { CONTADOR--; if(CONTADOR < MIN) { CONTADOR++; sentido = 0; continue; } //ATIVA LEDS LIGADOS AO PORTD //ATIVA LINHA 4 DO TECLADO MATRICIAL

32

} PORTD = CONTADOR; while(BOTAO) ClrWdt(); } } // FIM DO PROGRAMA

Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010

33

Dicas e ComentriosO tempo do debounce pode ser calculado pelo tempo de execuo da varredura da tecla multiplicado pelo valor inicial da varivel de filtro. No exemplo estudado o tempo de debounce de 1,15ms e foi calculado seguindo a equao abaixo: Tempo de Debounce = ciclo de mquina X nmero de ciclos de mquina na varredura da tecla X valor inicial da varivel FILTRO Tempo de Debounce = 1us x 5 x 230 Tempo de Debounce = 1150us = 1,15ms No existe uma regra para calcular o tempo ideal que deva ser utilizado no debounce de teclas. Isso ir depender do projeto, do tipo de tecla em utilizao, do ambiente de trabalho onde o sistema ir operar, etc. Na prtica, tempos longos da ordem de grandeza de dezenas de milisegundos podem ser necessrios.

Exerccios Propostos1. Alterar os limites da contagem. 2. Retirar o tratamento de debounce do software e verificar os efeitos prticos.

34

Captulo 5 - Experincia 3 Pisca - Pisca

ObjetivoO objetivo desta experincia ensinar ao aluno com criar rotinas de delays alm de apresentar uma tcnica simples utilizada para inverter o estado de um bit.

DescrioO software desta experincia utiliza um dos displays de 7 segmentos para implementar um pisca-pisca sendo que a freqncia das piscadas controlada atravs do uso de uma rotina de delay. A rotina de delay genrica pode ser utilizada para gerar delays entre 1ms e 256ms. Na realidade, a rotina recebe um argumento passado pelo WORK para determinar o atraso que deve ser gerado, sempre em mltiplos de 1ms. Como o argumento de 8 bits existem 256 possveis delays, indo de 1ms at 256ms. Basta portanto, carregar o WORK com o delay desejado e chamar a rotina. O pisca-pisca visualizado no display de 7 segmentos na posio da unidade. Sempre que o delay finalizado o PORTD deve ser invertido e para inverter o estado destes bits utilizou-se a operao lgica boleana XOR. Conforme a tabela verdade apresentada a seguir A 0 0 1 1 B 0 1 0 1 XOR 0 1 1 0

pode-se verificar que sempre que a operao realizada quando os bits da coluna A esto em 1 o resultado fica invertido em relao coluna B e sempre que os bits da coluna A esto em 0 o resultado se mantm em relao coluna B. Assim, sempre que ser desejar inverter um bit, basta fazer uma operao XOR entre um bit em 1 e o bit que se deseja inverter. Esta uma tcnica simples de inverter o estado de um bit sem testar o estado original. No software, pode-se utilizar as teclas da linha 4 colunas 1 e 2 para alterar o tempo do delay e conseqentemente a freqncia das piscadas do display. A tecla da coluna 1 incrementa o valor do delay enquanto a tecla da coluna 2 decrementa.

Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010

35

Esquema Eltrico

36

FluxogramaINCIO

VETOR DE RESET PULA P/ INCIO DO PROGRAMA

CONFIGURAES INICIAIS PORTAS, TIMERS, INTERRUPES, OPTION, ADs.

HABILITA DISPLAY DA UNIDADE E LINHA 4 DO TECLADO MATRICIAL

CARREGA CONTADOR COM VALOR MNIMO

ATUALIZA DISPLAY 3 CARREGA MULTIPLICADOR PARA O DELAY

DELAY PROPORCIONAL AO VALOR DO CONTADOR

1

Sim

BOTO 1 PRESS.? No

2

Sim

BOTO 2 PRESS.? No

FIM DO MULTIPLICADOR? Sim

No

INVERTE LEDS DO DISPLAY

Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010

37

1

2

CONTADOR = CONTADOR - STEP

CONTADOR = CONTADOR + STEP

CONTADORMX?

No

Sim CONTADOR = MNIMO

Sim CONTADOR = MXIMO

No

BOTO 1 SOLTO? Sim 3

No

BOTO 2 SOLTO? Sim 3

DELAY

CARREGA ARGUMENTO PASSADO PELO WORK EM TEMPO2

INICIALIZA TEMPO1 COM 250d 1ms

NOP [1us]

No [3us]

FIM DO TEMPO1 ?

Sim No FIM DO TEMPO2 ?

Sim RETURN

38

Cdigo/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Exemplo de Cdigo para utilizao com a McMaster * * Exemplo 3 * * * * LABTOOLS - MOSAICO DIDACTIC DIVISION * * * * TEL: (0XX11) 4992-8775 SITE: www.labtools.com.br * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VERSO : 1.0 * * DATA : 18/01/2010 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Descrio geral * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //PISCA-PISCA VARIVEL PARA DEMONSTRAR A IMPLEMENTAO DE DELAYS E A INVERSO //DE PORTAS. APENAS OS BOTES DA LINHA 4 ESTO ATIVADOS SENDO QUE O DA //COLUNA 1 UTILIZADO PARA INCREMENTAR O TEMPO ENTRE AS PISCADAS. //O BOTO DA COLUNA 2 UTILIZADO PARA DIMINUIR O TEMPO ENTRE AS PISCADAS. /* CONFIGURAO DOS JUMPERS DA PLACA: CAP USB(RC3) DATA I2C CLOCK I2C COLUNA 2(RB1) COLUNA 1(RB0) LINHA 1 / DISPLAY MILHAR(RB4) LEDS ESPECIAS (RC0,RC1,RC2) */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DEFINIO PIC * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include // Register definitions -> -> -> -> -> -> -> ON OFF OFF ON ON ON ON

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * INCLUDES DAS FUNES DE PERIFRICOS DO PIC * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include #include #include #include #include #include #include //PWM library functions //ADC library functions //Timer library functions //Delay library functions //I2C library functions //Library functions //USART library functions

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Configuraes para gravao * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #pragma #pragma #pragma #pragma #pragma #pragma #pragma #pragma #pragma #pragma #pragma #pragma config config config config config config config config config config config config FOSC = HS CPUDIV = OSC1_PLL2 WDT = OFF WDTPS = 128 LVP = OFF PWRT = ON BOR = OFF BORV = 0 PBADEN = OFF DEBUG = OFF PLLDIV = 1 USBDIV = 1

Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010

39

#pragma #pragma #pragma #pragma #pragma #pragma #pragma #pragma

config config config config config config config config

FCMEN = OFF IESO = OFF VREGEN = OFF MCLRE = ON LPT1OSC = OFF CCP2MX = ON STVREN = OFF ICPRT = OFF

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definio e inicializao das variveis Globais * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //Neste bloco esto definidas as variveis globais do programa. unsigned char CONTADOR; //BASE DE TEMPO PARA A PISCADA unsigned char TEMPO1; //REGISTRADORES AUXILIARES DE TEMPO /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Constantes internas * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //A definio de constantes facilita a programao e a manuteno. #define MIN 10 #define MAX 240 #define STEP 5 #define MULTIPLO 5 //A CONSTANTE DISPLAY REPRESENTA O SMBOLO QUE APARECER PISCANDO NO //DISPLAY. 1=LED LIGADO E 0=LED DESLIGADO. A RELAO ENTRE BITS E //SEGMENTOS A SEGUINTE: '.GFEDCBA' // a // ********** // * * // f * * b // * g * // ********** // * * // e * * c // * d * // ********** *. #define DISPLAY 0b01110110 //(LETRA H)

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Declarao dos flags de software * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //A definio de flags ajuda na programao e economiza memria RAM. //Este programa no utiliza nenhum flag de usurio /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definio e inicializao dos port's * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * PROTOTIPAGEM DE FUNES * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ENTRADAS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //As entradas devem ser associadas a nomes para facilitar a programao e //futuras alteraes do hardware. #define BT1 PORTBbits.RB0 //PORTA DO BOTO //1 -> PRESSIONADO //0 -> LIBERADO //PORTA DO BOTO //1 -> PRESSIONADO //0 -> LIBERADO

#define

BT2

PORTBbits.RB1

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * SADAS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

40

//As sadas devem ser associadas a nomes para facilitar a programao e //futuras alteraes do hardware. #define DSP_UNIDADE PORTBbits.RB7 //PORTA DO LED //0 -> APAGADO //1 -> ACESO //PINO PARA ATIVAR LINHA 4 DO TECLADO //MATRICIAL //1 -> LINHA ATIVADA //0 -> LINHA DESATIVADA

#define

LINHA_4

PORTBbits.RB7

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Funo Principal * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ void main { PORTA PORTB PORTC PORTD PORTE LATA LATB LATC LATD LATE () = = = = = 0x00; 0x00; 0x00; 0x00; 0x00; //Limpa //Limpa //Limpa //Limpa //Limpa //Limpa //Limpa //Limpa //Limpa //Limpa PORTA PORTB PORTC PORTD PORTE PORTA PORTB PORTC PORTD PORTE DIREO DIREO DIREO DIREO DIREO DOS DOS DOS DOS DOS PINOS PINOS PINOS PINOS PINOS PORTA PORTB PORTC PORTD PORTE

= = = = =

0x00; 0x00; 0x00; 0x00; 0x00; 0b00101111; 0b00001111; 0b10011111; 0b00000000; 0b00000111;

TRISA TRISB TRISC TRISD TRISE

= = = = =

//CONFIG //CONFIG //CONFIG //CONFIG //CONFIG

ADCON1 = 0b00001111;

//DESLIGA CONVERSORES A/D

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Inicializao do Sistema * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ DSP_UNIDADE = 1; PORTD = DISPLAY; //ACENDE O VALOR CERTO NO DISPLAY CONTADOR = MIN; //INICIA CONTADOR COM VALOR MIN. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Rotina Principal * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * while(1) { ClrWdt(); TEMPO1 = MULTIPLO; do { Delay1KTCYx(CONTADOR); if (BT1) { CONTADOR = CONTADOR - STEP; //INCREMENTA O CONTADOR EM if (CONTADOR < MIN) { CONTADOR = MIN; while(BT1) ClrWdt(); } continue; } * * */

STEP

if (BT2) { CONTADOR = CONTADOR + STEP; //INCREMENTA O CONTADOR EM STEP if (CONTADOR >= MAX) { CONTADOR = MAX;

Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010

41

while(BT2) ClrWdt(); } continue; } }while(--TEMPO1); PORTD = PORTD ^ DISPLAY; } } // FIM DO PROGRAMA //VOLTA PARA O INICIO ENQUANTO //TEMPO1 DIFERENTE DE ZERO //INVERTE O PORTD

42

Dicas e ComentriosA rotina de delay recebe o argumento passado pelo WORK para determinar o delay que deve ser gerado, no entanto, o valor mximo assumido pelo WORK 255 e conforme comentado o delay mximo gerado de 256ms. Como isto possvel? Acontece que a rotina foi escrita de forma que ela executada pelo menos uma vez. Assim, a rotina executa um delay de 1ms, decrementa o argumento e quando este igual a zero retorna. Porm, quando o argumento passado pelo WORK zero, ao primeiro decremento, o argumento estoura e pula para 255. Como a condio testada aps o decremento e como aps o decremento o valor do argumento 255, o delay continua a ser gerado, por mais 255 vezes e desta forma obtm-se um delay de 256ms. A proposta da rotina de delay foi gerar um delay fundamental em 1ms, porm, a mesma idia pode ser utilizada para criar rotinas com delays fundamentais diferentes.

Exerccios Propostos1. Alterar a rotina de delay para gerar um delay fundamental de 100us. 2. Alterar a rotina de delay para gerar um delay fundamental de 10ms. 3. Incluir o tratamento de debounce nas teclas

Manual do Usurio Sistema de Treinamento em Microcontroladores PIC McMaster rev5 2010

43

Captulo 6 - Experincia 4 Converso BCD para displays de 7 segmentos

ObjetivoO objetivo desta experincia ensinar ao aluno como criar um decodificar BCD para displays de 7 segmentos.

DescrioOs displays utilizados no McMaster so conhecidos como displays de leds de 7 segmentos, pois os nmeros so compostos por 7 traos. Estes componentes possuem ainda o ponto decimal e so considerados displays numricos, por no possurem traos suficientes para a exibio de todas as letras do nosso alfabeto. Para facilitar a vida do projetista o mercado padronizou uma nomenclatura para todos os traos do display, possibilitando que tratemos cada um deles individualmente:

G F Comum E D D E F

A B G C Dp

A B Comum C Dp

Desta forma, temos um pino para controlar cada um dos segmentos (A...G) e mais o ponto decimal (Dp). Os dois pinos adicionais so os comuns, que podem ser ligados a todos os catodos ou anodos dos leds internos. Por causa disso, estes displays so fornecidos em 2 tipos: catodo comum ou anodo comum. No nosso caso, os displays utilizados so do tipo catodo comum, isto , o pino comum deve ser ligado ao terra e os segmentos devem ser ligados ao Vcc para acenderem. Outra observao importante que a pinagem descrita no desenho vlida para o tipo de display utilizado no McMaster. Existem displays de outros tamanhos que possuem uma disposio de pinos diferente. Como cada segmento um led individual, precisa-se de um pino do PIC para controlar cada segmento. Desta forma, so necessrios 8 pinos para acionar os 7 segmentos e mais o ponto decimal. A fim de converter o valor binrio de um algarismo em um valor de 8 bits que represente o este algarismo num display de 7 segmentos fez-se uso de uma tabela de converso. Por exemplo, para representar o algarismo 2 no display, deve-se acender os segmentos A, B, D, E e G. Como no kit McMaster o PORTD est conectado aos segmentos conforme a tabelaPIC 44 Segmento

RD0 RD1 RD2 RD3 RD4 RD5 RD6 RD7

A B C D E F G DP

para acender o algarismo 2 no display precisa-se colocar o valor 01011011b no PORTD, ou seja, colocar em 1 os bits ligados aos segmentos que se deseja acender. Assim, no software deve ser criada uma tabela para converter cada valor binrio numa representao que posta nos segmentos (PORTD) reproduza o valor binrio original. A tabela criada utilizando-se a instruo RETLW. O valor