Periféricos Integrados do 8051 Portas de entrada e saída; Interrupções; Interrupções externas; Temporizadores Contadores; Interface Serial
Periféricos Integrados do 8051 Portas de entrada e saída O 8051 possui até 4 portas de entrada/saída, de 8 bits cada;
Periféricos Integrados do 8051 Portas de entrada e saída O Port P0 possui saída em dreno aberto (precisa de resistores de pull up); Os ports P1, P2 e P3 possuem resistores de pull up interno; Cada port possui um latch que armazena o valor apresentado no pino; A leitura do pino é feita através de um buffer tri state;
Periféricos Integrados do 8051 Portas de entrada e saída O port P1 é específico para entrada e saída (nas novas famílias alguns pinos do port P1 são usados para a interface SPI e TIMER 2);
Periféricos Integrados do 8051 Portas de entrada e saída Os ports P0 e P2 são multiplexados com os barramentos de dados e endereços para acesso a memória externa;
Periféricos Integrados do 8051 Portas de entrada e saída O port P3 é multiplexado com outras funções, como interface serial, interrupção externa, etc.
Periféricos Integrados do 8051 Port P3: funções alternadas RXD (P3.0) - receptor da interface serial assíncrona TXD (P3.1) - transmissor da interface serial assíncrona INT0\ (P3.2) - entrada da interrupção externa 0 INT1\ (P3.3) - entrada da interrupção externa 1 T0 (P3.4) - entrada externa do T/C 0 T1 (P3.5) - entrada externa do T/C 1 WR\ (P3.6) - escrita na memória externa RD\ (P3.7) - leitura da memória externa
Periféricos Integrados do 8051 Reset Deve durar pelo menos dois ciclos de clock; Depois de um reset alguns registradores assumem valores pré estabelecidos: PC 0000h SP 07h P0, P1, P2 e P3 FFh As interrupções, a serial e os timers começam inativos
Linguagem C para microcontroladores
Linguagem C para microcontroladores Um sistema microcontrolado é diferente de um PC: Sistema Microcontrolado: Menor quantidade de memória; Não tem Sistema operacional ou este é restrito (loop infinito); Permite acesso direto ao hardware; A aplicação é específica; Computador (PC) Grande capacidade de memória; O sistema operacional controla os recursos de hardware (não permite acesso direto ao hardware); Aplicações genéricas;
Linguagem C para microcontroladores A linguagem c para microcontroladores é semelhante ao C ansi para PC; Possui suas peculiaridades devido às limitações do hardware; Geralmente não se usam as funções padrão de entrada e saída (printf, scanf, etc.). O programador deve criar suas próprias funções para este tipo de operação;
Linguagem C para microcontroladores O acesso aos recursos de hardware é feito através de seus endereços. Geralmente se usam arquivos.h com estes endereços já mapeados: Podem ser específico para o microcontrolador: #include <at89s52.h> Ou genérico: #include <reg52.h>
Linguagem C para microcontroladores Quando não possui sistema operacional existe um loop principal, chamado de loop infinito:... void main() { Funções de inicialização; while(1) // loop infinito { Funções do programa; } }
Linguagem C para 8051 Tipos de Dados: Possui os tipos especificados pelo ANSI C; Possui alguns tipos específicos do compilador;
Linguagem C para 8051 Tipos de dados do padrão ANSI C: Tipo N bits N Bytes Faixa char 8 1-128 a +127 unsigned char 8 1 0 a +255 enum 16 2-32.768 a +32.767 short 16 2-32.768 a +32.767 unsigned short 16 2 0 a +65.535 int 16 2-32.768 a +32.767 unsigned int 16 2 0 a +65.535 long 32 4-2.147.483.648 a +2.147.483.647 unsigned long 32 4 0 a +4.294.697.295
Tipos de dados Keil: Tipo N bits N Bytes Faixa bit 1 0 0 e 1 sbit 1 0 0 e 1 sfr 16 2 0 a +255 sfr16 16 2 0 a +65.535
Tipo bit: uso genérico, como uma variável comum. Não pode ser ponteiro; Exemplo: bit testbit = 0;
Tipo sbit, sfr e sfr16: uso para acesso aos registradores do hardware (registro de funções especiais); Devem ser declaradas como globais (fora da função), geralmente no header; sbit LED = P1^0; sfr P0 = 0x80; //0x80 é o end. // do P0
Áreas de Memória: O 8051 possui 4 áreas de memória distintas: data: memória ram interna (dados); idata: memória ram interna de acesso indireto (endereços de 128 a 255); xdata: memória ram externa (dados); code: memória de programa; Exemplos: char data tecla = 0; int xdata vetor[100]; char code texto[]= Digite: ;
Exemplo: Escreva um programa em linguagem C para fazer piscar um led ligado ao pino 0 do port 1 a cada 1s (0,5s aceso e 0,5s apagado). Considere o clock do 8051 de 12MHz.
Essas transparências foram baseadas nos livros: Embedded C de Michael J. Pont e Microcontrolador 8051 com Linguagem C: Prático e Didático de Nicolosi e Bronzeri, no help do MicroVision 3.