TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Relatorio Microcontroladores

Artigo: Relatorio Microcontroladores. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  5/10/2013  •  1.749 Palavras (7 Páginas)  •  1.503 Visualizações

Página 1 de 7

FUNDAÇÃO UNIVERSIDADE FEDERAL DO PAMPA

CENTRO DE TECNOLOGIA DE ALEGRETE

CURSO DE ENGENHARIA ELÉTRICA

DISCIPLINA DE MICROCONTROLADORES

DISPOSITIVOS DE SAÍDA - DISPLAY DE SETE SEGMENTOS

Daniele Martinez

Fernando Santos Garcia

Maicon Barbieri

Nathalie Lunardi

Renan Luzardo

Roger Roos

Professor Alessandro Girardi

Alegrete, 10 de maio de 2011.

ÍNDICE

OBJETIVO 3

2. INTRODUÇÃO 4

3. DESENVOLVIMENTO 5

4. PROGRAMANDO O PIC 16F877A 7

5. QUESTÕES DA AULA PRÁTICA 10

6. CONCLUSÃO 11

BIBLIOGRAFIA 12

OBJETIVO

Compreender o funcionamento e a polarização de displays de sete segmentos conectados à saída do microcontrolador PIC16F877A. Calcular a quantidade de ciclos necessários para contar 1 segundo, determinar quantos registradores auxiliares serão necessários e como eles serão incrementados.

Elaborar o programa a ser gravado no microcontrolador utilizando o software MPLAB, implementando a função de conversão do dígito para sua representação gráfica em decimal, compilar e gravar o programa no microcontrolador utilizando o kit de gravação ICD2( ative ou desative os bits de configuração antes de gravar o programa).

Montar o circuito no protoboard e verificar se o circuito está operando de forma esperada.

2. INTRODUÇÃO

Um microcontrolador é um sistema computacional completo, no qual estão incluídos internamente uma CPU (Central Processor Unit), memórias RAM (dados), flash (programa) e E²PROM, pinos de I/O (Input/Output), além de outros periféricos internos, tais como, osciladores, canal USB, interface serial assíncrona USART, módulos de temporização e conversores A/D, entre outros, integrados em um mesmo componente (chip).

O microcontrolador PIC® (Periferal Interface Controler), da Microchip Technology Inc. (empresa de grande porte, no Arizona, Estados Unidos da América), possui uma boa diversidade de recursos, capacidades de processamento, custo e flexibilidade de aplicações. Os microcontroladores PIC possuem apenas 35 instruções em assembly para a família do PIC12 de 12 bits, PIC16 de 14 bits e PIC18 de 16 bits. [1]

Displays de LED de 7 segmentos são usados principalmente para representar graficamente informações numéricas. A figura 1 mostra o seu circuito interno e o seu símbolo. Estes displays podem ser construídos na configuração anodo comum ou catodo comum. Na conexão anodo comum, um segmento irá acender quando seu pino for polarizado com uma tensão baixa (valor lógico 0), sendo que o anodo comum deve ser conectado à tensão positiva (VDD). Na configuração catodo comum a situação é a inversa: cada segmento é ativado por uma tensão alta que corresponde ao nível lógico 1, enquanto que o catodo comum deve ser conectado a 0V (VSS).

Fig. 1 - Displays de 7 segmentos consistem de um conjunto de leds com anodo ou catodo comum, dependendo da sua construção. a) circuito interno; b) símbolo do display de 7 segmentos.

Para representar graficamente cada dígito de 0 a 9, a palavra binária que será apresentada no display precisa ser convertida em uma representação gráfica. Por exemplo para representar o número “4” no display, o qual possui uma representação binária em 8 bits igual a “00000100”, é preciso convertê-lo para a sua representação “01100110”, equivalente à sequência de segmentos “abcdefg dp” no caso da configuração catodo comum. Neste caso, os leds b, c,f e g serão ligados.

De modo genérico, a conversão pode ser feita com a ajuda da função em código assembly abaixo:

; -----------------------------------------------------------------------------

; Subrotina: tabela para representação de dados em display de 7 segmentos

; Configuração catodo comum

; -----------------------------------------------------------------------------

Tabela adwf PCL

retlw b’00111111’ ; 0

retlw b’00000110´ ; 1

; ... demais símbolos gráficos

retlw b´01101111´ ; 9

Para usar a função, é preciso colocar o número a ser convertido no registrador W e, após, chamar a função “Tabela”. O retorno da função também estará no registrador W. No exemplo abaixo, o dígito que irá aparecer no display está armazenado no registrador Temp1. Ele será convertido na sua representação gráfica através da função “Tabela” e o resultado será apresentado no display através do registrador PortB.

movf Temp1, W ; copia o valor de Temp1 no registrador W

call Tabela ; chama a função Tabela, que retornará o resultado no reg. W

movwf PORTB ; copia o conteúdo de W no registrador PORTB, o qual está

; conectado ao display de 7 segmentos

3. DESENVOLVIMENTO

Conectar um display de 7 segmentos na porta B do microcontrolador que deve mostrar um dígito de 0 a 9 que é incrementado uma vez por segundo. Monte, sobre um protoboard, um circuito utilizando o microcontrolador PIC16F877A contendo um programa que faça com que um display de 7 segmentos, conectado à porta B, apresente a representação gráfica dos dígitos de 0 a 9, incrementando-o a cada 1 segundo.

Para fazer a contagem de tempo, utilize interrupção por transbordo do registrador TMR0 conforme a aula prática anterior.

O cálculo do valor que representa o valor do TIMER0 que faz com que fique contando pra sempre de 0x00 a 0xFF, é:

TMR0=1; while(TMR0); este tempo de espera vai ser exatos 1/(4000/256) segundos. Essa divisão representa o erro de contagem do programa, pois a divisão não é exata e em cada ciclo do programa haverá à ocorrer uma defasagem do valor esperado. Para programas de “ciclo curto” pode-se usar esse tipo de contagem, mas quando utilizamos programas de longa duração, isso representaria um grande problema.

Foram utilizados 2 registradores de propósito geral auxiliares para a contagem do número de ciclos de clock necessários para atingir um tempo de 1s, e mais 2 para contagem externa. Quando chegar em 9, a contagem deve retornar a 0 e continuar incrementando a cada 1s. O display utilizado nesse experimento foi do tipo cátodo.

3.1. MATERIAL

- Microcontrolador PIC16F877A;

- Protoboard;

- 2 Capacitores de 15pF;

- 1 cristal oscilador de 4MHz;

- 1 display de 7 segmentos tipo cátodo;

- 8 resistores de 150 Ω, 1 resistor de 1 kΩ e 1 resistor de 39 kΩ;

- Fonte de alimentação 5V;

4. PROGRAMANDO O PIC 16F877A

Programa desenvolvido e gravado no microcontrolador PIC16F877A, utilizando o software MPLAB da Microchip.

PROCESSOR 16F877A

#include "p16f877a.inc"

TEMP1 EQU 50

TEMP2 EQU 51

TEMP3 EQU 53

TEMP4 EQU 53

ORG 0X00

GOTO MAIN

ORG 0X04

GOTO INTERRUPT

MAIN

BSF STATUS,5

MOVLW 0X00

MOVWF TRISB

BCF OPTION_REG,5

BCF STATUS,5

MOVLW 0XA0

MOVWF INTCON

MOVLW 0X3F

MOVWF TEMP1

MOVLW 0X3E

MOVWF TEMP2

CLRF TEMP3

LOOP

MOVF TEMP3, 0

CALL TABELA

MOVWF PORTB

GOTO LOOP

TABELA

ADDWF PCL, 1

RETLW B'00111111' ; 0

RETLW B'00000110' ; 1

RETLW B'01011011' ; 2

RETLW B'01001111' ; 3

RETLW B'01100110' ; 4

RETLW B'01101101' ; 5

RETLW B'01111101' ; 6

RETLW B'00000111' ; 7

RETLW B'01111111' ; 8

RETLW B'01101111' ; 9

INTERRUPT

MOVF TEMP4, 0

BCF STATUS,5

DECFSZ TEMP1,1

GOTO FIM_INTERRUPT

MOVLW 0X3F

MOVWF TEMP1

DECFSZ TEMP2,1

GOTO FIM_INTERRUPT

MOVLW 0X3E

MOVWF TEMP2

INCF TEMP3, 1

MOVLW 0X0A

SUBWF TEMP3,0

BTFSS STATUS,2

GOTO FIM_INTERRUPT

CLRF TEMP3

GOTO FIM_INTERRUPT

FIM_INTERRUPT:

BCF INTCON, 2

MOVFW TEMP4

RETFIE

END

4.1. MICROCONTROLADOR NA PROTOBOARD.

O programa foi gravado no PIC e logo após foi realizada a montagem do circuito na protoboard.

Figura 2: montagem do circuito no protoboard.

A figura acima mostra como o circuito fisicamente implementado na protoboard, que conta de 0 à 9, à cada segundo, continuamente. Ao desativar o WATCHDOG TIMER e alterar a função da porta RB3 para saída digital I/O, tivemos sucesso na contagem do tempo, mostrada no display.

Para compreendermos melhor o que está sendo executado, postamos esse vídeo online, via YOUTUBE : http://www.youtube.com/watch?v=_tc-fN-mg6k .

5. QUESTÃO DA AULA PRÁTICA

1) Implemente uma contagem no display de 7 segmentos na representação hexadecimal, contando de 0 a 15.

Para implementarmos a contagem de 0 até 15, basta convertermos os números 10, 11, 12, 13, 14 e 15 para hexadecimais, dispondo despectivamente das letras A, b, C, d, E e F, converteremos para binário e adicionaremos na “TABELA” do programa, ficando no formato abaixo.

TABELA

ADDWF PCL, 1

RETLW B'00111111' ; 0

RETLW B'00000110' ; 1

RETLW B'01011011' ; 2

RETLW B'01001111' ; 3

RETLW B'01100110' ; 4

RETLW B'01101101' ; 5

RETLW B'01111101' ; 6

RETLW B'00000111' ; 7

RETLW B'01111111' ; 8

RETLW B'01101111' ; 9

RETLW B'01110111' ; A

RETLW B'01111100' ; b

RETLW B'00111001' ; C

RETLW B'01011110' ; d

RETLW B'01101001' ; E

RETLW B'01110001' ; F

Não necessita-se de alteraração em nenhum outro dado, para que o programa funcione corretamente novamente com essa adição de linhas à tabela. Simplesmente o programa vai executar cada linha à cada segundo, sem difração alguma.

CONCLUSÃO

O trabalho prático desenvolvido no laboratório teve início com uma aula expositiva dialogada, onde obtivemos instruções de como calcular o tempo de cada instrução e principalmente, passos importantes para construir o programa que tivesse a função de mostrar um dígito de 0 a 9 que é incrementado uma vez por segundo, e também de 0 à 15 em hexadecimal, em um display de 7 segmentos.

Os resultados obtidos foram apresentados nos itens 4 e 5, como mostram a figura 2 e o vídeo-clipe disponibilizado na web .

Cada vez que ocorrer o transbordo de TMR0 (e, consequentemente, uma interrupção), passaram-se 256 ciclos de clock e incrementa-se outro registrador de propósito geral auxiliar, para a contagem do número de ciclos de clock necessários para atingir aproximadamente um tempo de 1s, e consequentemente, à cada segundo, pula-se a linha de instrução da “TABELA”, dando o valor respectivo ao valor binário apresentado na linha executada.

REFERÊNCIAS BIBLIOGRÁFICAS

[1] Jucá, Sandro; “Apostila de Microcontroladores PIC e Periféricos”, IF, disponível em

<http://br.groups.yahoo.com/group/GrupoSanUSB/>, acesso em março de 2011.

[2] de Souza, David José; Lavinia, Nicolás César ; “Conectando o PIC16F877A – Recursos Avançados” Editora Afiliada, 3º edição.

...

Baixar como  txt (10.9 Kb)  
Continuar por mais 6 páginas »