• Nenhum resultado encontrado

elt024-05-programacaoDosPerifericos

N/A
N/A
Protected

Academic year: 2021

Share "elt024-05-programacaoDosPerifericos"

Copied!
28
0
0

Texto

(1)

Programa¸c˜

ao dos Perif´

ericos

Rodrigo Almeida

Universidade Federal de Itajub´a

rodrigomax@unifei.edu.br

(2)

Revis˜ao

(3)

Revis˜ao

Esquema el´

etrico e circuitos importantes(rev)

(4)

Revis˜ao

Multiplexa¸c˜

ao nos terminais do microcontrolador(rev)

Ex: o oitavo terminal do PIC18F4550.

Pode ser configurado como terminal:

de entrada ou sa´ıda referente ao primeiro bit da porta E (RE0)

de leitura anal´

ogica pertencente ao quinto conversor anal´

ogico - digital

(AN5)

utilizado para enviar um clock externo de comunica¸

ao paralela

(CK1SPP)

(5)

Revis˜ao

Esquema el´

etrico e circuitos importantes(rev)

(6)

Revis˜ao

Registros de configura¸c˜

ao do microcontrolador(rev)

1 // c o n f i g . h 2 #i f n d e f C O N F I G _ H 3 #d e f i n e C O N F I G _ H 4 // P l l d e s l i g a d o 5 c o d e c h a r at 0 x 3 0 0 0 0 0 C O N F I G 1 L = 0 x 0 1; 6 // O s c i l a d o r c / c r i s t a l e x t e r n o HS 7 c o d e c h a r at 0 x 3 0 0 0 0 1 C O N F I G 1 H = 0 x 0 C; 8 // W a t c h d o g c o n t r o l a d o p o r s o f t w a r e 9 c o d e c h a r at 0 x 3 0 0 0 0 3 C O N F I G 2 H = 0 x 0 0; 10 // S e m p r o g r a m a ¸c ~a o em b a i x a t e n s ~a o 11 c o d e c h a r at 0 x 3 0 0 0 0 6 C O N F I G 4 L = 0 x 0 0; 12 #e n d i f // C O N F I G H

(7)

Programa¸c˜ao dos Perif´ericos

Programa¸c˜

ao dos Perif´

ericos

(8)

Programa¸c˜ao dos Perif´ericos

Perif´

ericos dispon´ıveis

Sa´ıda

Barramento de Led’s

Display de 7 segmentos

Display LCD 2x16

Sa´ıdas PWM

Entrada

Teclado 4*4

Conversor AD

Outros

Serial RS232

Tratador de Interrup¸

oes

Watchdog

(9)

Programa¸c˜ao dos Perif´ericos

Programa¸c˜

ao dos Perif´

ericos

Barramento de Leds

(10)

Acesso `as portas do microcontrolador

(11)

Acesso `as portas do microcontrolador

Acesso `

as portas do microcontrolador

O microcontrolador PIC 18F4520 possui 5 portas

PORTA: bidirecional com 7 bits

PORTB: bidirecional com 8 bits

PORTC: bidirecional com 7 bits

PORTD: bidirecional com 8 bits

PORTE: 3 bits bidirecionais e 1 bit apenas entrada

(12)

Acesso `as portas do microcontrolador

Acesso `

as portas do microcontrolador

Bit número

PORTB

0

Terminal

Físico

33

1

34

2

35

3

36

4

37

5

38

6

39

7

40

(13)

Acesso `as portas do microcontrolador

Acesso `

as portas do microcontrolador

memória porta x leitura escrita direção controle de direção do sinal entrada N da porta X bit N bit N

Abrir datasheet do PIC18f4520 na pagina 105.

(14)

Acesso `as portas do microcontrolador

Acesso `

as portas do microcontrolador

Porta

Endere¸

co dos dados

Endere¸

co de configura¸

ao (TRIS)

PORTA

0xF80

0xF92

PORTB

0xF81

0xF93

PORTC

0xF82

0xF94

PORTD

0xF83

0xF95

(15)

Acesso `as portas do microcontrolador

Acesso `

as portas do microcontrolador

1 // i n i c i o do p r o g r a m a 2 v o i d m a i n (v o i d) { 3 // d e f i n i m o s c o m o : 4 // ( u n s i g n e d c h a r ) p o i s os 8 b i t s r e p r e s e n t a m v a l o r e s 5 // ( v o l a t i l e ) as v a r i ´a v e i s p o d e m m u d a r a q u a l q u e r m o m e n t o 6 // ( n e a r ) i n d i c a q u e o r e g i s t r o e s t a na m e m ´o r i a de d a d o s 7 v o l a t i l e _ _ n e a r u n s i g n e d c h a r * P O R T D = 0 x F 8 3; 8 v o l a t i l e _ _ n e a r u n s i g n e d c h a r * T R I S D = 0 x F 9 5; 9 // c o n f i g u r a n d o t o d o s os p i n o s c o m o s a ´ı d a s 10 // 0 = s a ´ı d a ( O u t p u t ) 11 // 1 = e n t r a d a ( I n p u t ) 12 * T R I S D = 0 b 0 0 0 0 0 0 0 0; 13 // l i g a a p e n a s os q u a t r o ´u l t i m o s l e d s 14 * P O R T D = 0 b 1 1 1 1 0 0 0 0; 15 // m a n t ´e m o s i s t e m a l i g a d o i n d e f i n i d a m e n t e 16 for( ; ; ) ; 17 }

(16)

Acesso `as portas do microcontrolador

Acesso `

as portas do microcontrolador

1 // d e f i n e s p a r a p o r t a s de e n t r a d a e s a ´ı d a 2 #d e f i n e P O R T D (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F 8 3) 3 #d e f i n e T R I S D (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F 9 5) 4 5 // i n i c i o do p r o g r a m a 6 v o i d m a i n (v o i d) { 7 // c o n f i g u r a n d o t o d o s os p i n o s c o m o s a ´ı d a s 8 T R I S D = 0 b 0 0 0 0 0 0 0 0; 9 // l i g a a p e n a s os q u a t r o ´u l t i m o s l e d s 10 P O R T D = 0 b 1 1 1 1 0 0 0 0; 11 // m a n t ´e m o s i s t e m a l i g a d o i n d e f i n i d a m e n t e 12 for( ; ; ) ; 13 }

(17)

Acesso `as portas do microcontrolador

Acesso `

as portas do microcontrolador

Vantagens no uso dos #defines

Utiliza¸

ao n˜

ao requer uso do *, pois j´

a est´

a incluso no define

Economiza mem´

oria RAM. Criando uma vari´

avel ´

e necess´

ario reservar

um espa¸

co para armazenar o valor do ponteiro.

A defini¸

ao pode ser feita em apenas um arquivo do tipo header. Os

outros arquivos que precisem utilizar estas defini¸

oes podem apenas

incluir este header.

A mudan¸

ca de arquitetura ´

e mais simples. Criando apenas um arquivo

com os defines ´

e mais r´

apido migrar o c´

odigo de uma arquitetura para

outra.

Aten¸

ao

O tamanho do programa final est´

a intimamente ligado ao compilador utilizado.

Dependendo das otimiza¸

oes que s˜

ao (ou n˜

ao) realizadas, o programa pode ficar maior

com o uso dos defines.

(18)

Acesso `as portas do microcontrolador

Acesso `

as portas do microcontrolador

1 // b a s i c o . h

2 // f u n ¸c ~o e s de b i t

3 #d e f i n e B i t S e t ( arg , bit ) (( arg ) |= (1< < bit ) )

4 #d e f i n e B i t C l r ( arg , bit ) (( arg ) &= ~(1< < bit ) )

5 #d e f i n e B i t F l p ( arg , bit ) (( arg ) ^= (1< < bit ) )

6 #d e f i n e B i t T s t ( arg , bit ) (( arg ) & (1< < bit ) )

7 8 // d e f i n e s p a r a r e g i s t r o s e s p e c i a i s 9 #d e f i n e P O R T A (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F 8 0) 10 #d e f i n e P O R T B (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F 8 1) 11 #d e f i n e P O R T C (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F 8 2) 12 #d e f i n e P O R T D (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F 8 3) 13 #d e f i n e P O R T E (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F 8 4) 14 15 #d e f i n e T R I S A (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F 9 2) 16 #d e f i n e T R I S B (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F 9 3) 17 #d e f i n e T R I S C (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F 9 4) 18 #d e f i n e T R I S D (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F 9 5)

(19)

Acesso `as portas do microcontrolador

Acesso `

as portas do microcontrolador

1 // b a s i c o . h 2 #d e f i n e I N T C O N (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F F 2) 3 #d e f i n e I N T C O N 2 (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F F 1) 4 #d e f i n e P I E 1 (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F 9 D) 5 #d e f i n e P I R 1 (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F 9 E) 6 7 #d e f i n e T M R 0 L (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F D 6) 8 #d e f i n e T M R 0 H (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F D 7) 9 #d e f i n e T 0 C O N (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F D 5) 10 11 #d e f i n e S P P C O N (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F 6 5) 12 #d e f i n e S P P C F G (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F 6 3) 13 14 #d e f i n e A D C O N 2 (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F C 0) 15 #d e f i n e A D C O N 1 (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F C 1) 16 #d e f i n e A D C O N 0 (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F C 2) 17 #d e f i n e A D R E S L (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F C 3) 18 #d e f i n e A D R E S H (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F C 4)

(20)

Acesso `as portas do microcontrolador

Acesso `

as portas do microcontrolador

1 // b a s i c o . h 2 #d e f i n e R C S T A (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F A B) 3 #d e f i n e T X S T A (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F A C) 4 #d e f i n e T X R E G (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F A D) 5 #d e f i n e R C R E G (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F A E) 6 #d e f i n e S P B R G (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F A F) 7 #d e f i n e S P B R G H (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F B 0) 8 #d e f i n e B A U D C O N (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F B 8) 9 #d e f i n e R C O N (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F D 0) 10 11 #d e f i n e W D T C O N (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F D 1) 12 13 #d e f i n e T 2 C O N (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F C A) 14 #d e f i n e PR2 (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F C B) 15 #d e f i n e C C P 2 C O N (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F B A) 16 #d e f i n e C C P R 2 L (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F B B) 17 #d e f i n e C C P 1 C O N (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F B D) 18 #d e f i n e C C P R 1 L (*(v o l a t i l e _ _ n e a r u n s i g n e d c h a r*)0 x F B E) 19

(21)

Configura¸c˜ao dos perif´ericos

Configura¸c˜

ao dos perif´

ericos

(22)

Configura¸c˜ao dos perif´ericos

Configura¸c˜

ao dos perif´

ericos

Term.

Descri¸

ao

Configurar

como

Fun¸

ao

2

RA0/AN0

AN0

Potenciˆ

ometro /

Sen-sor de Temperatura

4

RA2/AN2/VREF-/CVREF

RA2

Display 2

7

RA5/AN4/SS/C2OUT

RA5

Display 1

8

RE0/AN5/CK1SPP

RE0

RS-LCD / Display 3

9

RE1/AN6/CK2SPP

RE1

EN-LCD

10

RE2/AN7/OESPP

RE2

RW-LCD / Display 4

13

OSC1/CLKI

OSC1

Cristal

14

OSC2/CLKO/RA6

OSC2

16

RC1/T1OSI/CCP2/UOE

CCP2

Aquecedor

17

RC2/CCP1/P1A

CCP1

Ventilador / Buzzer

19

RD0/SPP0

RD0

Barramento de dados

para o LCD/7seg/Led

20

RD1/SPP1

RD1

(23)

Configura¸c˜ao dos perif´ericos

Configura¸c˜

ao dos perif´

ericos

Term.

Descri¸

ao

Configurar

como

Fun¸

ao

25

RC6/TX/CK

TX/RC6

RS232/I2C

26

RC7/RX/DT/SDO

RX

RS232

27

RD4/SPP4

RD4

Barramento de dados

para o LCD / 7seg /

Led

28

RD5/SPP5/P1B

RD5

29

RD6/SPP6/P1C

RD6

30

RD7/SPP7/P1D

RD7

33

RB0/AN12/INT0/SDI/SDA

RB0/SDA

Sa´ıdas para

alimenta¸

ao do

teclado, 0 e 1 para

I2C

34

RB1/AN10/INT1/SCK/SCL

RB1/SCL

35

RB2/AN8/INT2/VMO

RB2

36

RB3/AN9/CCP2/VPO

RB3

37

RB4/AN11/KBI0/CSSPP

RB4

Entradas para leitura

do teclado

38

RB5/KBI1/PGM

RB5

39

RB6/KBI2/PGC

RB6

40

RB7/KBI3/PGD

RB7

(24)

Configura¸c˜ao dos perif´ericos

Configura¸c˜

ao dos perif´

ericos

1 T R I S A = 0 b 0 0 0 0 0 0 1 0; // c o n f . t e r m i n a i s c o m o e n t r a d a e s a ´ı d a 2 A D C O N 1 = 0 b 0 0 0 0 1 1 1 0; // a p e n a s o p r i m e i r o t e r m i n a l ´e a n a l ´o g i c o 3 4 T R I S B = 0 b 1 1 1 1 0 0 0 0; // c o n f . t e r m i n a i s c o m o e n t r a d a e s a ´ı d a 5 I N T C O N = 0 b 1 1 0 0 0 1 0 1; // c o n f . c o m i n t e r r u p ¸c ~a o h a b i l i t a d a 6 I N T C O N = 0 b 0 0 0 0 0 0 0 0; // c o n f . s e m i n t e r r u p ¸c ~a o 7 I N T C O N 2 = 0 b 0 0 0 0 0 0 0 1; 8 S P P C F G = 0 b 0 0 0 0 0 0 0 0; // RB0−4 c o n t r o l a d o s p e l a p o r t a B 9 10 T R I S C = 0 b 1 0 0 0 0 0 0 0; // t e r m i n a i s s ~a o s a ´ı d a s , s´o R C 7 ´e e n t r a d a 11 C C P 1 C O N = 0 b 0 0 0 0 1 1 0 0; // c o n f . o 2o t e r m i n a l c o m o P W M 12 C C P 2 C O N = 0 b 0 0 0 0 1 1 0 0; // c o n f . o 3o t e r m i n a l c o m o P W M 13 T X T A = 0 b 0 0 1 0 1 1 0 0; // c o n f . a t r a n s m i s s ~a o de d a d o s da s e r i a l 14 R C S T A = 0 b 1 0 0 1 0 0 0 0; // c o n f . a r e c e p ¸c ~a o de d a d o s da s e r i a l 15 B A U D C O N = 0 b 0 0 0 0 1 0 0 0; // c o n f . s i s t e m a de v e l o c i d a d e da s e r i a l 16 S P B R G H = 0 b 0 0 0 0 0 0 0 0; // c o n f . p a r a 5 6 k 17 S P B R G = 0 b 0 0 1 0 0 0 1 0; // c o n f . p a r a 5 6 k 18 19 T R I S D = 0 b 0 0 0 0 0 0 0 0; // c o n f . os t e r m i n a i s c o m o s a ´ı d a

(25)

Barramento de Leds

Barramento de Leds

(26)

Barramento de Leds

Barramento de Leds

(27)

Barramento de Leds

Barramento de Leds

Exerc´ıcio

Criar uma biblioteca para os leds

Pode fazer uso do basico.h e config.h

(28)

Barramento de Leds

Barramento de Leds

Biblioteca de acesso aos leds:

Inicializa¸

ao do dispositivo

Armazenamento de vari´

aveis internas (endere¸

cos)

Escrita/Leitura do estado dos leds

Referências

Documentos relacionados

Assim sendo, o presente trabalho teve como objetivo avaliar a eficiência da Fórmula de Monte Alegre e Fórmula de Monte Alegre Modificada em municípios da Paraíba, na indicação

Os títulos e valores mobiliários, bem como outros ativos financeiros integrantes da carteira do Fundo, devem estar devidamente registrados em contas de depósitos específicas,

Todos estes dados são fundamentais e permitem uma reflexão aprofundada do estado da qualidade do serviço de saúde materna e obstetrícia público e qual deve ser o caminho

** Pontos em comum entre aspecto e efeito ambiental – ambos são interfaces entre causa (ação humana) e

Outros pontos abordados são a administração da produção e tecnologia do processo, de forma a serem essenciais no processo administrativo atual da escola que atua na cidade desde o

lignant trans formations in these tumor cells, and they described these transformations as “pilomatrix car- cinoma” (PMC) or “calcifying epitheliocarcinoma of Malherbe.” In

Se o grupo tentar usar a escada que leva até o próximo nível da masmorra, eles disparam uma armadilha que começará a movimentar engrenagens que fará com que os degraus comecem

b) A proteção deve estar bem presa à ferramenta elétrica e posicionada para máxima segurança, de tal forma que uma parte mínima do disco fique exposta ao operador. Por exemplo: