SlideShare a Scribd company logo
1 of 27
Download to read offline
Programa¸c˜ao dos Perif´ericos
Prof.MSc.Rodrigo Maximiano Antunes de Almeida
Universidade Federal de Itajub´a
rodrigomax@unifei.edu.br
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 1 / 27
Arquitetura de Microcontroladores
Esquema el´etrico e circuitos importantes
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 2 / 27
Arquitetura de Microcontroladores
Multiplexa¸c˜ao nos terminais do microcontrolador
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¸c˜ao paralela
(CK1SPP)
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 3 / 27
Arquitetura de Microcontroladores
Registros de configura¸c˜ao do microcontrolador
Registros de configura¸c˜ao do
microcontrolador
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 4 / 27
Arquitetura de Microcontroladores
Esquema el´etrico e circuitos importantes
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 5 / 27
Arquitetura de Microcontroladores
Registros de configura¸c˜ao do microcontrolador
1 // c o n f i g . h
2 #ifndef CONFIG_H
3 #define CONFIG_H
4 // P l l d e s l i g a d o
5 code char at 0x300000 CONFIG1L = 0x01 ;
6 // O s c i l a d o r c/ c r i s t a l ext erno HS
7 code char at 0x300001 CONFIG1H = 0x0C ;
8 // Watchdog c o n t r o l a d o por s o f t w a r e
9 code char at 0x300003 CONFIG2H = 0x00 ;
10 // Sem programa¸c˜ao em baixa tens˜ao
11 code char at 0x300006 CONFIG4L = 0x00 ;
12 #endif //CONFIG H
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 6 / 27
Programa¸c˜ao dos Perif´ericos
Programa¸c˜ao dos Perif´ericos
.
.
.
In theory, there is no difference between theory and practice; In practice, there is.
Chuck Reid
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 7 / 27
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¸c˜oes
Watchdog
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 8 / 27
Programa¸c˜ao dos Perif´ericos
Barramento de Leds
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 9 / 27
Programa¸c˜ao dos Perif´ericos
Acesso `as portas do microcontrolador
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 10 / 27
Programa¸c˜ao dos Perif´ericos
Acesso `as portas do microcontrolador
O microcontrolador PIC 18F4550 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
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 11 / 27
Programa¸c˜ao dos Perif´ericos
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
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 12 / 27
Programa¸c˜ao dos Perif´ericos
Acesso `as portas do microcontrolador
37 Trisb:4
Leitor
Gravador
4Trisb:4
= 1
= 0 = 0
= 1
< 2volts = 0
> 3volts = 1
PORTB
Abrir datasheet do PIC18f4550 na pagina 110.
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 13 / 27
Programa¸c˜ao dos Perif´ericos
Acesso `as portas do microcontrolador
Porta Endere¸co dos dados Endere¸co de configura¸c˜ao (TRIS)
PORTA 0xF80 0xF92
PORTB 0xF81 0xF93
PORTC 0xF82 0xF94
PORTD 0xF83 0xF95
PORTE 0xF84 0xF96
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 14 / 27
Programa¸c˜ao dos Perif´ericos
Acesso `as portas do microcontrolador
1 // i n i c i o do programa
2 void main ( void )
3 {
4 // d e f i n i m o s como :
5 // ( unsigned char ) p o i s os 8 b i t s representam v a l o r e s
6 // ( v o l a t i l e ) as v a r i ´a v e i s podem mudar a qualquer momento
7 // ( near ) i n d i c a que o r e g i s t r o e s t a na mem´oria de dados
8 v o l a t i l e near unsigned char ∗PORTD = 0xF83 ;
9 v o l a t i l e near unsigned char ∗TRISD = 0xF95 ;
10 // configurando todos os pinos como s a´ı d a s
11 // 0 = s a´ı d a ( Output )
12 // 1 = entrada ( Input )
13 ∗TRISD = 0b00000000 ;
14 // l i g a apenas os quatro ´u l t i m o s l e d s
15 ∗PORTD = 0b11110000 ;
16 //mant´em o sistema l i g a d o i n d e f i n i d a m e n t e
17 f o r ( ; ; ) ;
18 }
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 15 / 27
Programa¸c˜ao dos Perif´ericos
Acesso `as portas do microcontrolador
1 // d e f i n e s para p o r t a s de entrada e s a´ı d a
2 #define PORTD (∗( v o l a t i l e near unsigned char ∗) 0xF83 )
3 #define TRISD (∗( v o l a t i l e near unsigned char ∗) 0xF95 )
4 // i n i c i o do programa
5 void main ( void )
6 {
7 // configurando todos os pinos como s a´ı d a s
8 TRISD = 0b00000000 ;
9 // l i g a apenas os quatro ´u l t i m o s l e d s
10 PORTD = 0b11110000 ;
11 //mant´em o sistema l i g a d o i n d e f i n i d a m e n t e
12 f o r ( ; ; ) ;
13 }
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 16 / 27
Programa¸c˜ao dos Perif´ericos
Acesso `as portas do microcontrolador
Vantagens no uso dos #defines
Utiliza¸c˜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¸c˜ao pode ser feita em apenas um arquivo do tipo header. Os
outros arquivos que precisem utilizar estas defini¸c˜oes devem apenas
incluir este header.
A mudan¸ca de arquitetura ´e mais simples. Criando apenas um arquivo
com os defines ´e mais simples migrar o c´odigo de uma arquitetura para
outra.
Aten¸c˜ao
O tamanho do programa final est´a intimamente ligado ao compilador utilizado.
Dependendo das otimiza¸c˜oes que s˜ao (ou n˜ao) realizadas, o programa pode ficar maior
com o uso dos defines.
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 17 / 27
Programa¸c˜ao dos Perif´ericos
Acesso `as portas do microcontrolador
1 // b a s i c o . h
2 // fun¸c˜oes de b i t
3 #define BitSet ( arg , bit ) (( arg ) |= (1<<bit ) )
4 #define BitClr ( arg , bit ) (( arg ) &= ˜(1<<bit ) )
5 #define BitFlp ( arg , bit ) (( arg ) ˆ= (1<<bit ) )
6 #define BitTst ( arg , bit ) (( arg ) & (1<<bit ) )
7
8 // d e f i n e s para r e g i s t r o s e s p e c i a i s
9 #define PORTA (∗( v o l a t i l e near unsigned char ∗) 0xF80 )
10 #define PORTB (∗( v o l a t i l e near unsigned char ∗) 0xF81 )
11 #define PORTC (∗( v o l a t i l e near unsigned char ∗) 0xF82 )
12 #define PORTD (∗( v o l a t i l e near unsigned char ∗) 0xF83 )
13 #define PORTE (∗( v o l a t i l e near unsigned char ∗) 0xF84 )
14
15 #define TRISA (∗( v o l a t i l e near unsigned char ∗) 0xF92 )
16 #define TRISB (∗( v o l a t i l e near unsigned char ∗) 0xF93 )
17 #define TRISC (∗( v o l a t i l e near unsigned char ∗) 0xF94 )
18 #define TRISD (∗( v o l a t i l e near unsigned char ∗) 0xF95 )
19 #define TRISE (∗( v o l a t i l e near unsigned char ∗) 0xF96 )
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 18 / 27
Programa¸c˜ao dos Perif´ericos
Acesso `as portas do microcontrolador
1 // b a s i c o . h
2 #define INTCON (∗( v o l a t i l e near unsigned char ∗) 0xFF2 )
3 #define INTCON2 (∗( v o l a t i l e near unsigned char ∗) 0xFF1 )
4 #define PIE1 (∗( v o l a t i l e near unsigned char ∗) 0xF9D )
5 #define PIR1 (∗( v o l a t i l e near unsigned char ∗) 0xF9E )
6
7 #define TMR0L (∗( v o l a t i l e near unsigned char ∗) 0xFD6 )
8 #define TMR0H (∗( v o l a t i l e near unsigned char ∗) 0xFD7 )
9 #define T0CON (∗( v o l a t i l e near unsigned char ∗) 0xFD5 )
10
11 #define SPPCON (∗( v o l a t i l e near unsigned char ∗) 0xF65 )
12 #define SPPCFG (∗( v o l a t i l e near unsigned char ∗) 0xF63 )
13
14 #define ADCON2 (∗( v o l a t i l e near unsigned char ∗) 0xFC0 )
15 #define ADCON1 (∗( v o l a t i l e near unsigned char ∗) 0xFC1 )
16 #define ADCON0 (∗( v o l a t i l e near unsigned char ∗) 0xFC2 )
17 #define ADRESL (∗( v o l a t i l e near unsigned char ∗) 0xFC3 )
18 #define ADRESH (∗( v o l a t i l e near unsigned char ∗) 0xFC4 )
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 19 / 27
Programa¸c˜ao dos Perif´ericos
Acesso `as portas do microcontrolador
1 // b a s i c o . h
2 #define RCSTA (∗( v o l a t i l e near unsigned char ∗) 0xFAB )
3 #define TXSTA (∗( v o l a t i l e near unsigned char ∗) 0xFAC )
4 #define TXREG (∗( v o l a t i l e near unsigned char ∗) 0xFAD )
5 #define RCREG (∗( v o l a t i l e near unsigned char ∗) 0xFAE )
6 #define SPBRG (∗( v o l a t i l e near unsigned char ∗) 0xFAF )
7 #define SPBRGH (∗( v o l a t i l e near unsigned char ∗) 0xFB0 )
8 #define BAUDCON (∗( v o l a t i l e near unsigned char ∗) 0xFB8 )
9 #define RCON (∗( v o l a t i l e near unsigned char ∗) 0xFD0 )
10
11 #define WDTCON (∗( v o l a t i l e near unsigned char ∗) 0xFD1 )
12
13 #define T2CON (∗( v o l a t i l e near unsigned char ∗) 0xFCA )
14 #define PR2 (∗( v o l a t i l e near unsigned char ∗) 0xFCB )
15 #define CCP2CON (∗( v o l a t i l e near unsigned char ∗) 0xFBA )
16 #define CCPR2L (∗( v o l a t i l e near unsigned char ∗) 0xFBB )
17 #define CCP1CON (∗( v o l a t i l e near unsigned char ∗) 0xFBD )
18 #define CCPR1L (∗( v o l a t i l e near unsigned char ∗) 0xFBE )
19
20 // fun¸c˜ao para limp ar o watchdog
21 #define CLRWTD () _asm CLRWDT _endasm
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 20 / 27
Programa¸c˜ao dos Perif´ericos
Configura¸c˜ao dos perif´ericos
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 21 / 27
Programa¸c˜ao dos Perif´ericos
Configura¸c˜ao dos perif´ericos
Term. Descri¸c˜ao
Configurar
como
Fun¸c˜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
21 RD2/SPP2 RD2
22 RD3/SPP3 RD3
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 22 / 27
Programa¸c˜ao dos Perif´ericos
Configura¸c˜ao dos perif´ericos
Term. Descri¸c˜ao
Configurar
como
Fun¸c˜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¸c˜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
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 23 / 27
Programa¸c˜ao dos Perif´ericos
Configura¸c˜ao dos perif´ericos
1 TRISA = 0b00000010 ; // c o n f i g . os t e r m i n a i s como entrada e s a´ı d a
2 ADCON1 = 0b00001110 ; // apenas 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 TRISB = 0b11110000 ; // c o n f i g . os t e r m i n a i s como entrada e s a´ı d a
5 INTCON = 0b11000101 ; // c o n f i g . com i n t e r r u p ¸c ˜a o h a b i l i t a d a
6 INTCON = 0b00000000 ; // c o n f i g . sem i n t e r r u p ¸c ˜a o
7 INTCON2 = 0b00000001 ;
8 SPPCFG = 0b00000000 ; //RB0−4 c o n t r o l a d o s p e l a porta B
9
10 TRISC = 0b10000000 ; // t e r m i n a i s s˜ao sa´ıdas , s´o RC7 ´e entrada
11 CCP1CON = 0b00001100 ; // c o n f i g . o 2o t e r m i n a l como PWM
12 CCP2CON = 0b00001100 ; // c o n f i g . o 3o t e r m i n a l como PWM
13 TXTA = 0b00101100 ; // c o n f i g . a t r a n s m i s s˜a o de dados da s e r i a l
14 RCSTA = 0b10010000 ; // c o n f i g . a recep¸c˜ao de dados da s e r i a l
15 BAUDCON = 0b00001000 ; // c o n f i g . sistema de v e l o c i d a d e da s e r i a l
16 SPBRGH = 0b00000000 ; // c o n f i g . para 56k
17 SPBRG = 0b00100010 ; // c o n f i g . para 56k
18
19 TRISD = 0b00000000 ; // c o n f i g . os t e r m i n a i s como s a´ı d a
20
21 TRISE = 0b00000000 ; // c o n f i g . os t e r m i n a i s como s a´ı d a
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 24 / 27
Programa¸c˜ao dos Perif´ericos
Barramento de Leds
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 25 / 27
Programa¸c˜ao dos Perif´ericos
Barramento de Leds
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 26 / 27
Programa¸c˜ao dos Perif´ericos
Barramento de Leds
Biblioteca de acesso aos leds:
Inicializa¸c˜ao do dispositivo
Armazenamento de vari´aveis internas (endere¸cos)
Escrita/Leitura do estado dos leds
ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 27 / 27

More Related Content

What's hot

Microcontroladores PIC - Exercícios para estudos de I/O digitais
Microcontroladores PIC - Exercícios para estudos de I/O digitaisMicrocontroladores PIC - Exercícios para estudos de I/O digitais
Microcontroladores PIC - Exercícios para estudos de I/O digitaisFabio Souza
 
Esquema eletrico kxh30 v1.1 13
Esquema eletrico kxh30 v1.1 13Esquema eletrico kxh30 v1.1 13
Esquema eletrico kxh30 v1.1 13Luiz Jr
 
Microcontroladores PIC - Interface com displays de 7 segmentos
Microcontroladores PIC - Interface com displays de 7 segmentosMicrocontroladores PIC - Interface com displays de 7 segmentos
Microcontroladores PIC - Interface com displays de 7 segmentosFabio Souza
 
Pwm pic 18 f
Pwm pic 18 fPwm pic 18 f
Pwm pic 18 fIFPB
 
Dispositivos progamaveis - memórias
Dispositivos progamaveis - memórias Dispositivos progamaveis - memórias
Dispositivos progamaveis - memórias Alexandre Ferreira
 
Apostila fazendo antenas
Apostila  fazendo  antenasApostila  fazendo  antenas
Apostila fazendo antenasBebeto Ferreira
 
AVR Micro controller Interfacing
AVR Micro controller Interfacing AVR Micro controller Interfacing
AVR Micro controller Interfacing Raghav Shetty
 
I2c protocol - Inter–Integrated Circuit Communication Protocol
I2c protocol - Inter–Integrated Circuit Communication ProtocolI2c protocol - Inter–Integrated Circuit Communication Protocol
I2c protocol - Inter–Integrated Circuit Communication ProtocolAnkur Soni
 
Aula07 - Arquitetura e Manutenção de Computadores
Aula07 - Arquitetura e Manutenção de ComputadoresAula07 - Arquitetura e Manutenção de Computadores
Aula07 - Arquitetura e Manutenção de ComputadoresJorge Ávila Miranda
 
Placa mãe e barramentos
Placa mãe e barramentosPlaca mãe e barramentos
Placa mãe e barramentosNeil Azevedo
 

What's hot (20)

Processadores intel 8008 e 8080
Processadores intel 8008 e 8080Processadores intel 8008 e 8080
Processadores intel 8008 e 8080
 
Microcontroladores PIC - Exercícios para estudos de I/O digitais
Microcontroladores PIC - Exercícios para estudos de I/O digitaisMicrocontroladores PIC - Exercícios para estudos de I/O digitais
Microcontroladores PIC - Exercícios para estudos de I/O digitais
 
Esquema eletrico kxh30 v1.1 13
Esquema eletrico kxh30 v1.1 13Esquema eletrico kxh30 v1.1 13
Esquema eletrico kxh30 v1.1 13
 
SDAC 12º - M9 TGEI
SDAC 12º - M9 TGEISDAC 12º - M9 TGEI
SDAC 12º - M9 TGEI
 
Amplificadores de audio
Amplificadores de audioAmplificadores de audio
Amplificadores de audio
 
Aula 4 conversor ad e pwm
Aula 4   conversor ad e pwmAula 4   conversor ad e pwm
Aula 4 conversor ad e pwm
 
Multivibradores
MultivibradoresMultivibradores
Multivibradores
 
Microcontroladores PIC - Interface com displays de 7 segmentos
Microcontroladores PIC - Interface com displays de 7 segmentosMicrocontroladores PIC - Interface com displays de 7 segmentos
Microcontroladores PIC - Interface com displays de 7 segmentos
 
INTEL vs AMD
INTEL vs AMDINTEL vs AMD
INTEL vs AMD
 
Pwm pic 18 f
Pwm pic 18 fPwm pic 18 f
Pwm pic 18 f
 
Dispositivos progamaveis - memórias
Dispositivos progamaveis - memórias Dispositivos progamaveis - memórias
Dispositivos progamaveis - memórias
 
Apostila fazendo antenas
Apostila  fazendo  antenasApostila  fazendo  antenas
Apostila fazendo antenas
 
AVR Micro controller Interfacing
AVR Micro controller Interfacing AVR Micro controller Interfacing
AVR Micro controller Interfacing
 
I2c protocol - Inter–Integrated Circuit Communication Protocol
I2c protocol - Inter–Integrated Circuit Communication ProtocolI2c protocol - Inter–Integrated Circuit Communication Protocol
I2c protocol - Inter–Integrated Circuit Communication Protocol
 
Aula07 - Arquitetura e Manutenção de Computadores
Aula07 - Arquitetura e Manutenção de ComputadoresAula07 - Arquitetura e Manutenção de Computadores
Aula07 - Arquitetura e Manutenção de Computadores
 
eMMC 5.0 Total IP Solution
eMMC 5.0 Total IP SolutioneMMC 5.0 Total IP Solution
eMMC 5.0 Total IP Solution
 
Sdac
SdacSdac
Sdac
 
PCIe
PCIePCIe
PCIe
 
Placa mãe e barramentos
Placa mãe e barramentosPlaca mãe e barramentos
Placa mãe e barramentos
 
Uart
UartUart
Uart
 

Viewers also liked

Viewers also liked (20)

Display LCD
Display LCDDisplay LCD
Display LCD
 
Arquitetura do pic
Arquitetura do picArquitetura do pic
Arquitetura do pic
 
Microcontroladores 1 – arquitectura
Microcontroladores 1 – arquitecturaMicrocontroladores 1 – arquitectura
Microcontroladores 1 – arquitectura
 
Noções básicas do windows 7
Noções básicas do windows 7Noções básicas do windows 7
Noções básicas do windows 7
 
L tthon
L tthonL tthon
L tthon
 
Plagiarism
PlagiarismPlagiarism
Plagiarism
 
Crofton house
Crofton houseCrofton house
Crofton house
 
prueba
pruebaprueba
prueba
 
Teaching Trailers Web Sample
Teaching Trailers Web SampleTeaching Trailers Web Sample
Teaching Trailers Web Sample
 
Gmm andate
Gmm andateGmm andate
Gmm andate
 
Monthly highlights
Monthly highlightsMonthly highlights
Monthly highlights
 
Balconades i finestres de terrassa
Balconades i finestres de terrassaBalconades i finestres de terrassa
Balconades i finestres de terrassa
 
Spanish Time Powerpoint
Spanish Time PowerpointSpanish Time Powerpoint
Spanish Time Powerpoint
 
Naranjas de Hiroshima Book nº2 - 2007-2011
Naranjas de Hiroshima Book nº2 - 2007-2011Naranjas de Hiroshima Book nº2 - 2007-2011
Naranjas de Hiroshima Book nº2 - 2007-2011
 
Lectionline xxvii domenica del t o anno a_5 ottobre 2014
Lectionline xxvii domenica del t o  anno a_5 ottobre 2014Lectionline xxvii domenica del t o  anno a_5 ottobre 2014
Lectionline xxvii domenica del t o anno a_5 ottobre 2014
 
Presentation1
Presentation1Presentation1
Presentation1
 
Developing the organziation
Developing the organziationDeveloping the organziation
Developing the organziation
 
Animatore missionario-4.2015-ok-web
Animatore missionario-4.2015-ok-webAnimatore missionario-4.2015-ok-web
Animatore missionario-4.2015-ok-web
 
Sr. maria troncatti
Sr. maria troncattiSr. maria troncatti
Sr. maria troncatti
 
Rabies
RabiesRabies
Rabies
 

Similar to Acessando os periféricos de um microcontrolador

Display de 7 segmentos multiplexados
Display de 7 segmentos multiplexadosDisplay de 7 segmentos multiplexados
Display de 7 segmentos multiplexadosRodrigo Almeida
 
Cartao referencia ccs
Cartao referencia ccsCartao referencia ccs
Cartao referencia ccsLuciano Zica
 
Acesso à memória e registros
Acesso à memória e registrosAcesso à memória e registros
Acesso à memória e registrosRodrigo Almeida
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptxfmtpereira
 
Desenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcadosDesenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcadosRodrigo Almeida
 
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Cláudio Alves
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicampFrancisco Fambrini
 
Workshop Microchip Curiosity Board
Workshop Microchip Curiosity BoardWorkshop Microchip Curiosity Board
Workshop Microchip Curiosity BoardFabio Souza
 
UFCD-6072-Microcontroladores-Registos.pptx
UFCD-6072-Microcontroladores-Registos.pptxUFCD-6072-Microcontroladores-Registos.pptx
UFCD-6072-Microcontroladores-Registos.pptxcentroclinicosalus
 
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...fesaab
 
Introdução à programação embarcada
Introdução à programação embarcadaIntrodução à programação embarcada
Introdução à programação embarcadaRodrigo Almeida
 
Programação básica de microcontroladores
Programação básica de microcontroladoresProgramação básica de microcontroladores
Programação básica de microcontroladoresDanilo Morais Pagano
 

Similar to Acessando os periféricos de um microcontrolador (20)

Display de 7 segmentos multiplexados
Display de 7 segmentos multiplexadosDisplay de 7 segmentos multiplexados
Display de 7 segmentos multiplexados
 
Cartao referencia ccs
Cartao referencia ccsCartao referencia ccs
Cartao referencia ccs
 
Acesso à memória e registros
Acesso à memória e registrosAcesso à memória e registros
Acesso à memória e registros
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptx
 
Desenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcadosDesenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcados
 
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicamp
 
Pic18xx
Pic18xxPic18xx
Pic18xx
 
Workshop Microchip Curiosity Board
Workshop Microchip Curiosity BoardWorkshop Microchip Curiosity Board
Workshop Microchip Curiosity Board
 
Pic slides
Pic slidesPic slides
Pic slides
 
Arduino e python
Arduino e pythonArduino e python
Arduino e python
 
UFCD-6072-Microcontroladores-Registos.pptx
UFCD-6072-Microcontroladores-Registos.pptxUFCD-6072-Microcontroladores-Registos.pptx
UFCD-6072-Microcontroladores-Registos.pptx
 
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...
 
Pic16f628a
Pic16f628aPic16f628a
Pic16f628a
 
Mini Curso Introdutório ao Arduino
Mini Curso Introdutório ao ArduinoMini Curso Introdutório ao Arduino
Mini Curso Introdutório ao Arduino
 
Introdução à programação embarcada
Introdução à programação embarcadaIntrodução à programação embarcada
Introdução à programação embarcada
 
Operações com Bits
Operações com BitsOperações com Bits
Operações com Bits
 
Programação básica de microcontroladores
Programação básica de microcontroladoresProgramação básica de microcontroladores
Programação básica de microcontroladores
 
Treinamento arduino (1).pptx
Treinamento arduino (1).pptxTreinamento arduino (1).pptx
Treinamento arduino (1).pptx
 
LEON3 e KIT ALTERA.
LEON3 e KIT ALTERA.LEON3 e KIT ALTERA.
LEON3 e KIT ALTERA.
 

More from Rodrigo Almeida

Embedded systems design @ defcon 2015
Embedded systems design @ defcon 2015Embedded systems design @ defcon 2015
Embedded systems design @ defcon 2015Rodrigo Almeida
 
Embedded systems development Defcon 19
Embedded systems development Defcon 19Embedded systems development Defcon 19
Embedded systems development Defcon 19Rodrigo Almeida
 
As diferentes engenharias
As diferentes engenhariasAs diferentes engenharias
As diferentes engenhariasRodrigo Almeida
 
Testing de software en instrumentos de pesar de funcionamiento no automatico ...
Testing de software en instrumentos de pesar de funcionamiento no automatico ...Testing de software en instrumentos de pesar de funcionamiento no automatico ...
Testing de software en instrumentos de pesar de funcionamiento no automatico ...Rodrigo Almeida
 
Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...
Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...
Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...Rodrigo Almeida
 
Cryptology - Antônio Lacerda
Cryptology - Antônio LacerdaCryptology - Antônio Lacerda
Cryptology - Antônio LacerdaRodrigo Almeida
 
Troca de contexto segura em sistemas operacionais embarcados utilizando de té...
Troca de contexto segura em sistemas operacionais embarcados utilizando de té...Troca de contexto segura em sistemas operacionais embarcados utilizando de té...
Troca de contexto segura em sistemas operacionais embarcados utilizando de té...Rodrigo Almeida
 
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Rodrigo Almeida
 
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Rodrigo Almeida
 
Projeto de uma controladora de drivers
Projeto de uma controladora de driversProjeto de uma controladora de drivers
Projeto de uma controladora de driversRodrigo Almeida
 
Kernel com requisitos temporais
Kernel com requisitos temporaisKernel com requisitos temporais
Kernel com requisitos temporaisRodrigo Almeida
 
Definição de processos
Definição de processosDefinição de processos
Definição de processosRodrigo Almeida
 
Conceitos de ponteiros struct e buffers
Conceitos de ponteiros struct e buffersConceitos de ponteiros struct e buffers
Conceitos de ponteiros struct e buffersRodrigo Almeida
 
Introdução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosIntrodução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosRodrigo Almeida
 
Segurança de sistemas: invasões, engenharia reversa e análise de virus
Segurança de sistemas: invasões, engenharia reversa e análise de virusSegurança de sistemas: invasões, engenharia reversa e análise de virus
Segurança de sistemas: invasões, engenharia reversa e análise de virusRodrigo Almeida
 
Utilizando um Display de LCD
Utilizando um Display de LCDUtilizando um Display de LCD
Utilizando um Display de LCDRodrigo Almeida
 
Leitura de teclas com arranjo matricial
Leitura de teclas com arranjo matricialLeitura de teclas com arranjo matricial
Leitura de teclas com arranjo matricialRodrigo Almeida
 

More from Rodrigo Almeida (20)

Embedded systems design @ defcon 2015
Embedded systems design @ defcon 2015Embedded systems design @ defcon 2015
Embedded systems design @ defcon 2015
 
Embedded systems development Defcon 19
Embedded systems development Defcon 19Embedded systems development Defcon 19
Embedded systems development Defcon 19
 
As diferentes engenharias
As diferentes engenhariasAs diferentes engenharias
As diferentes engenharias
 
Testing de software en instrumentos de pesar de funcionamiento no automatico ...
Testing de software en instrumentos de pesar de funcionamiento no automatico ...Testing de software en instrumentos de pesar de funcionamiento no automatico ...
Testing de software en instrumentos de pesar de funcionamiento no automatico ...
 
Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...
Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...
Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...
 
Cryptology - Antônio Lacerda
Cryptology - Antônio LacerdaCryptology - Antônio Lacerda
Cryptology - Antônio Lacerda
 
Troca de contexto segura em sistemas operacionais embarcados utilizando de té...
Troca de contexto segura em sistemas operacionais embarcados utilizando de té...Troca de contexto segura em sistemas operacionais embarcados utilizando de té...
Troca de contexto segura em sistemas operacionais embarcados utilizando de té...
 
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
 
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
 
Projeto de uma controladora de drivers
Projeto de uma controladora de driversProjeto de uma controladora de drivers
Projeto de uma controladora de drivers
 
Kernel com requisitos temporais
Kernel com requisitos temporaisKernel com requisitos temporais
Kernel com requisitos temporais
 
Kernel cooperativo
Kernel cooperativoKernel cooperativo
Kernel cooperativo
 
Definição de processos
Definição de processosDefinição de processos
Definição de processos
 
Ponteiros de Função
Ponteiros de FunçãoPonteiros de Função
Ponteiros de Função
 
Conceitos de ponteiros struct e buffers
Conceitos de ponteiros struct e buffersConceitos de ponteiros struct e buffers
Conceitos de ponteiros struct e buffers
 
Introdução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosIntrodução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcados
 
Segurança de sistemas: invasões, engenharia reversa e análise de virus
Segurança de sistemas: invasões, engenharia reversa e análise de virusSegurança de sistemas: invasões, engenharia reversa e análise de virus
Segurança de sistemas: invasões, engenharia reversa e análise de virus
 
Comunicação serial
Comunicação serialComunicação serial
Comunicação serial
 
Utilizando um Display de LCD
Utilizando um Display de LCDUtilizando um Display de LCD
Utilizando um Display de LCD
 
Leitura de teclas com arranjo matricial
Leitura de teclas com arranjo matricialLeitura de teclas com arranjo matricial
Leitura de teclas com arranjo matricial
 

Acessando os periféricos de um microcontrolador

  • 1. Programa¸c˜ao dos Perif´ericos Prof.MSc.Rodrigo Maximiano Antunes de Almeida Universidade Federal de Itajub´a rodrigomax@unifei.edu.br ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 1 / 27
  • 2. Arquitetura de Microcontroladores Esquema el´etrico e circuitos importantes ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 2 / 27
  • 3. Arquitetura de Microcontroladores Multiplexa¸c˜ao nos terminais do microcontrolador 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¸c˜ao paralela (CK1SPP) ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 3 / 27
  • 4. Arquitetura de Microcontroladores Registros de configura¸c˜ao do microcontrolador Registros de configura¸c˜ao do microcontrolador ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 4 / 27
  • 5. Arquitetura de Microcontroladores Esquema el´etrico e circuitos importantes ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 5 / 27
  • 6. Arquitetura de Microcontroladores Registros de configura¸c˜ao do microcontrolador 1 // c o n f i g . h 2 #ifndef CONFIG_H 3 #define CONFIG_H 4 // P l l d e s l i g a d o 5 code char at 0x300000 CONFIG1L = 0x01 ; 6 // O s c i l a d o r c/ c r i s t a l ext erno HS 7 code char at 0x300001 CONFIG1H = 0x0C ; 8 // Watchdog c o n t r o l a d o por s o f t w a r e 9 code char at 0x300003 CONFIG2H = 0x00 ; 10 // Sem programa¸c˜ao em baixa tens˜ao 11 code char at 0x300006 CONFIG4L = 0x00 ; 12 #endif //CONFIG H ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 6 / 27
  • 7. Programa¸c˜ao dos Perif´ericos Programa¸c˜ao dos Perif´ericos . . . In theory, there is no difference between theory and practice; In practice, there is. Chuck Reid ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 7 / 27
  • 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¸c˜oes Watchdog ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 8 / 27
  • 9. Programa¸c˜ao dos Perif´ericos Barramento de Leds ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 9 / 27
  • 10. Programa¸c˜ao dos Perif´ericos Acesso `as portas do microcontrolador ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 10 / 27
  • 11. Programa¸c˜ao dos Perif´ericos Acesso `as portas do microcontrolador O microcontrolador PIC 18F4550 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 ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 11 / 27
  • 12. Programa¸c˜ao dos Perif´ericos 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 ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 12 / 27
  • 13. Programa¸c˜ao dos Perif´ericos Acesso `as portas do microcontrolador 37 Trisb:4 Leitor Gravador 4Trisb:4 = 1 = 0 = 0 = 1 < 2volts = 0 > 3volts = 1 PORTB Abrir datasheet do PIC18f4550 na pagina 110. ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 13 / 27
  • 14. Programa¸c˜ao dos Perif´ericos Acesso `as portas do microcontrolador Porta Endere¸co dos dados Endere¸co de configura¸c˜ao (TRIS) PORTA 0xF80 0xF92 PORTB 0xF81 0xF93 PORTC 0xF82 0xF94 PORTD 0xF83 0xF95 PORTE 0xF84 0xF96 ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 14 / 27
  • 15. Programa¸c˜ao dos Perif´ericos Acesso `as portas do microcontrolador 1 // i n i c i o do programa 2 void main ( void ) 3 { 4 // d e f i n i m o s como : 5 // ( unsigned char ) p o i s os 8 b i t s representam v a l o r e s 6 // ( v o l a t i l e ) as v a r i ´a v e i s podem mudar a qualquer momento 7 // ( near ) i n d i c a que o r e g i s t r o e s t a na mem´oria de dados 8 v o l a t i l e near unsigned char ∗PORTD = 0xF83 ; 9 v o l a t i l e near unsigned char ∗TRISD = 0xF95 ; 10 // configurando todos os pinos como s a´ı d a s 11 // 0 = s a´ı d a ( Output ) 12 // 1 = entrada ( Input ) 13 ∗TRISD = 0b00000000 ; 14 // l i g a apenas os quatro ´u l t i m o s l e d s 15 ∗PORTD = 0b11110000 ; 16 //mant´em o sistema l i g a d o i n d e f i n i d a m e n t e 17 f o r ( ; ; ) ; 18 } ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 15 / 27
  • 16. Programa¸c˜ao dos Perif´ericos Acesso `as portas do microcontrolador 1 // d e f i n e s para p o r t a s de entrada e s a´ı d a 2 #define PORTD (∗( v o l a t i l e near unsigned char ∗) 0xF83 ) 3 #define TRISD (∗( v o l a t i l e near unsigned char ∗) 0xF95 ) 4 // i n i c i o do programa 5 void main ( void ) 6 { 7 // configurando todos os pinos como s a´ı d a s 8 TRISD = 0b00000000 ; 9 // l i g a apenas os quatro ´u l t i m o s l e d s 10 PORTD = 0b11110000 ; 11 //mant´em o sistema l i g a d o i n d e f i n i d a m e n t e 12 f o r ( ; ; ) ; 13 } ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 16 / 27
  • 17. Programa¸c˜ao dos Perif´ericos Acesso `as portas do microcontrolador Vantagens no uso dos #defines Utiliza¸c˜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¸c˜ao pode ser feita em apenas um arquivo do tipo header. Os outros arquivos que precisem utilizar estas defini¸c˜oes devem apenas incluir este header. A mudan¸ca de arquitetura ´e mais simples. Criando apenas um arquivo com os defines ´e mais simples migrar o c´odigo de uma arquitetura para outra. Aten¸c˜ao O tamanho do programa final est´a intimamente ligado ao compilador utilizado. Dependendo das otimiza¸c˜oes que s˜ao (ou n˜ao) realizadas, o programa pode ficar maior com o uso dos defines. ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 17 / 27
  • 18. Programa¸c˜ao dos Perif´ericos Acesso `as portas do microcontrolador 1 // b a s i c o . h 2 // fun¸c˜oes de b i t 3 #define BitSet ( arg , bit ) (( arg ) |= (1<<bit ) ) 4 #define BitClr ( arg , bit ) (( arg ) &= ˜(1<<bit ) ) 5 #define BitFlp ( arg , bit ) (( arg ) ˆ= (1<<bit ) ) 6 #define BitTst ( arg , bit ) (( arg ) & (1<<bit ) ) 7 8 // d e f i n e s para r e g i s t r o s e s p e c i a i s 9 #define PORTA (∗( v o l a t i l e near unsigned char ∗) 0xF80 ) 10 #define PORTB (∗( v o l a t i l e near unsigned char ∗) 0xF81 ) 11 #define PORTC (∗( v o l a t i l e near unsigned char ∗) 0xF82 ) 12 #define PORTD (∗( v o l a t i l e near unsigned char ∗) 0xF83 ) 13 #define PORTE (∗( v o l a t i l e near unsigned char ∗) 0xF84 ) 14 15 #define TRISA (∗( v o l a t i l e near unsigned char ∗) 0xF92 ) 16 #define TRISB (∗( v o l a t i l e near unsigned char ∗) 0xF93 ) 17 #define TRISC (∗( v o l a t i l e near unsigned char ∗) 0xF94 ) 18 #define TRISD (∗( v o l a t i l e near unsigned char ∗) 0xF95 ) 19 #define TRISE (∗( v o l a t i l e near unsigned char ∗) 0xF96 ) ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 18 / 27
  • 19. Programa¸c˜ao dos Perif´ericos Acesso `as portas do microcontrolador 1 // b a s i c o . h 2 #define INTCON (∗( v o l a t i l e near unsigned char ∗) 0xFF2 ) 3 #define INTCON2 (∗( v o l a t i l e near unsigned char ∗) 0xFF1 ) 4 #define PIE1 (∗( v o l a t i l e near unsigned char ∗) 0xF9D ) 5 #define PIR1 (∗( v o l a t i l e near unsigned char ∗) 0xF9E ) 6 7 #define TMR0L (∗( v o l a t i l e near unsigned char ∗) 0xFD6 ) 8 #define TMR0H (∗( v o l a t i l e near unsigned char ∗) 0xFD7 ) 9 #define T0CON (∗( v o l a t i l e near unsigned char ∗) 0xFD5 ) 10 11 #define SPPCON (∗( v o l a t i l e near unsigned char ∗) 0xF65 ) 12 #define SPPCFG (∗( v o l a t i l e near unsigned char ∗) 0xF63 ) 13 14 #define ADCON2 (∗( v o l a t i l e near unsigned char ∗) 0xFC0 ) 15 #define ADCON1 (∗( v o l a t i l e near unsigned char ∗) 0xFC1 ) 16 #define ADCON0 (∗( v o l a t i l e near unsigned char ∗) 0xFC2 ) 17 #define ADRESL (∗( v o l a t i l e near unsigned char ∗) 0xFC3 ) 18 #define ADRESH (∗( v o l a t i l e near unsigned char ∗) 0xFC4 ) ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 19 / 27
  • 20. Programa¸c˜ao dos Perif´ericos Acesso `as portas do microcontrolador 1 // b a s i c o . h 2 #define RCSTA (∗( v o l a t i l e near unsigned char ∗) 0xFAB ) 3 #define TXSTA (∗( v o l a t i l e near unsigned char ∗) 0xFAC ) 4 #define TXREG (∗( v o l a t i l e near unsigned char ∗) 0xFAD ) 5 #define RCREG (∗( v o l a t i l e near unsigned char ∗) 0xFAE ) 6 #define SPBRG (∗( v o l a t i l e near unsigned char ∗) 0xFAF ) 7 #define SPBRGH (∗( v o l a t i l e near unsigned char ∗) 0xFB0 ) 8 #define BAUDCON (∗( v o l a t i l e near unsigned char ∗) 0xFB8 ) 9 #define RCON (∗( v o l a t i l e near unsigned char ∗) 0xFD0 ) 10 11 #define WDTCON (∗( v o l a t i l e near unsigned char ∗) 0xFD1 ) 12 13 #define T2CON (∗( v o l a t i l e near unsigned char ∗) 0xFCA ) 14 #define PR2 (∗( v o l a t i l e near unsigned char ∗) 0xFCB ) 15 #define CCP2CON (∗( v o l a t i l e near unsigned char ∗) 0xFBA ) 16 #define CCPR2L (∗( v o l a t i l e near unsigned char ∗) 0xFBB ) 17 #define CCP1CON (∗( v o l a t i l e near unsigned char ∗) 0xFBD ) 18 #define CCPR1L (∗( v o l a t i l e near unsigned char ∗) 0xFBE ) 19 20 // fun¸c˜ao para limp ar o watchdog 21 #define CLRWTD () _asm CLRWDT _endasm ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 20 / 27
  • 21. Programa¸c˜ao dos Perif´ericos Configura¸c˜ao dos perif´ericos ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 21 / 27
  • 22. Programa¸c˜ao dos Perif´ericos Configura¸c˜ao dos perif´ericos Term. Descri¸c˜ao Configurar como Fun¸c˜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 21 RD2/SPP2 RD2 22 RD3/SPP3 RD3 ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 22 / 27
  • 23. Programa¸c˜ao dos Perif´ericos Configura¸c˜ao dos perif´ericos Term. Descri¸c˜ao Configurar como Fun¸c˜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¸c˜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 ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 23 / 27
  • 24. Programa¸c˜ao dos Perif´ericos Configura¸c˜ao dos perif´ericos 1 TRISA = 0b00000010 ; // c o n f i g . os t e r m i n a i s como entrada e s a´ı d a 2 ADCON1 = 0b00001110 ; // apenas 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 TRISB = 0b11110000 ; // c o n f i g . os t e r m i n a i s como entrada e s a´ı d a 5 INTCON = 0b11000101 ; // c o n f i g . com i n t e r r u p ¸c ˜a o h a b i l i t a d a 6 INTCON = 0b00000000 ; // c o n f i g . sem i n t e r r u p ¸c ˜a o 7 INTCON2 = 0b00000001 ; 8 SPPCFG = 0b00000000 ; //RB0−4 c o n t r o l a d o s p e l a porta B 9 10 TRISC = 0b10000000 ; // t e r m i n a i s s˜ao sa´ıdas , s´o RC7 ´e entrada 11 CCP1CON = 0b00001100 ; // c o n f i g . o 2o t e r m i n a l como PWM 12 CCP2CON = 0b00001100 ; // c o n f i g . o 3o t e r m i n a l como PWM 13 TXTA = 0b00101100 ; // c o n f i g . a t r a n s m i s s˜a o de dados da s e r i a l 14 RCSTA = 0b10010000 ; // c o n f i g . a recep¸c˜ao de dados da s e r i a l 15 BAUDCON = 0b00001000 ; // c o n f i g . sistema de v e l o c i d a d e da s e r i a l 16 SPBRGH = 0b00000000 ; // c o n f i g . para 56k 17 SPBRG = 0b00100010 ; // c o n f i g . para 56k 18 19 TRISD = 0b00000000 ; // c o n f i g . os t e r m i n a i s como s a´ı d a 20 21 TRISE = 0b00000000 ; // c o n f i g . os t e r m i n a i s como s a´ı d a ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 24 / 27
  • 25. Programa¸c˜ao dos Perif´ericos Barramento de Leds ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 25 / 27
  • 26. Programa¸c˜ao dos Perif´ericos Barramento de Leds ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 26 / 27
  • 27. Programa¸c˜ao dos Perif´ericos Barramento de Leds Biblioteca de acesso aos leds: Inicializa¸c˜ao do dispositivo Armazenamento de vari´aveis internas (endere¸cos) Escrita/Leitura do estado dos leds ELT024 Programa¸c˜ao dos Perif´ericos rodrigomax@unifei.edu.br 27 / 27