Teoria linguagem c



Baixar 2.75 Mb.
Página17/30
Encontro30.10.2016
Tamanho2.75 Mb.
1   ...   13   14   15   16   17   18   19   20   ...   30

while(1){

P2_0=1; //liga P2.0

delay_ms(500); //aguarda 500 milisegundos

P2_0=0; //desliga P2.0

delay_ms(500); //aguarda 500 milisegundos

}

}

Vamos verificar o programa do exercício resolvido por partes:


Para acionar o LED é necessário colocar nível lógico 1 no pino P2.0 do microcontrolador, e para apagá-lo, é necessário colocar nível lógico 0.
Para acender e apagar um LED a cada meio segundo (equivalente a 2Hz), devemos utilizar uma rotina de Loop, que tem o papel de repetir infinitas vezes os comandos que irão ligar e desligar o pino P2.0 do microcontrolador. Utilizamos então a estrutura while, já comentada nos capítulos anteriores.
A instrução P2_0=0; coloca o respectivo pino do microcontrolador em nível lógico 0 (reseta), apagando o LED.
A instrução delay_ms(500); faz com que o programa pare por 500 milisegundos.
A instrução P2_0=1; coloca o respectivo pino do microcontrolador em nível lógico 1 (seta), acendendo o LED.

Podemos utilizar todos os Ports do microcontrolador para o acionamento de LED’s, displays, conectar teclas (propósito geral), inclusive o Port P3 que possui funções especiais.


Na linguagem C para microcontroladores 8051 temos algumas palavras reservadas que não podem ser utilizadas para outros propósitos a não ser para efetuar as funções que são pré-definidas.
As palavras reservadas que fazem referência as I/O’s (portas paralelas) são:
P0, P1, P2, P3


Não podemos declarar, por exemplo, P1 como uma variável, pois é uma palavra reservada da linguagem C.

Nota


Cada Port dispõe de 8 bits, cada um associado à um pino do microcontrolador. Assim temos:

P0

P0_1

P0_2


P0_3

P0_4


P0_5

P0_6


P0_7



P1

P1_1

P1_2


P1_3

P1_4


P1_5

P1_6


P1_7



P2

P2_1

P2_2


P2_3

P2_4


P2_5

P2_6


P2_7




P3

P3_1

P3_2


P3_3

P3_4


P3_5

P3_6


P3_7




Cada pino do Port pode assumir apenas dois níveis lógicos: 1 ou 0 (alto e baixo), tanto para entrada como para saída de dados.

Por exemplo:


P2_7=0; //coloca o pino 28 em nível 0 (0V)

P2_7=1; //coloca o pino 28 em nível 1 (+5V)




Nota: Este comando altera apenas o nível lógico do respectivo pino, sem afetar os demais.

Além do comando de acesso bit a bit do Port, é possível acessar todos os pinos de uma única vez (acesso ao Byte).

Por exemplo:
P2=0; //coloca todo Port P2 em nível 0 (0V)

P2=255; //coloca todo Port P2 em nível 1 (+5V)

Vamos compreender o comando de manipulação do Byte. Cada Port é na verdade, um registrador especial de 1 Byte (8bits). Assim temos:

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0


P2 


P2_7

P2_6

P2_5

P2_4

P2_3

P2_2

P2_1

P2_0

Valor em decimal 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 =255
Somando todos os valores em decimal, obtemos o valor 255 que corresponde a todos os bits do Port P2 em nível lógico 1 (setados).
Note que nos pinos do microcontrolador os dados estão no formato binário, ou seja, os pinos só podem estar em nível lógico 1 ou 0. Então o valor em decimal é convertido para binário e enviado ao Port.
Vejamos alguns exemplos com o Port P0:


Pino ativo

P0_7

P0_6

P0_5

P0_4

P0_3

P0_2

P0_1

P0_0




128

64

32

16

8

4

2

1

Comando




P0=0;

0

0

0

0

0

0

0

0

P0=1;

0

0

0

0

0

0

0

1

P0=2;

0

0

0

0

0

0

1

0

P0=4;

0

0

0

0

0

1

0

0

P0=8;

0

0

0

0

1

0

0

0

P0=16;

0

0

0

1

0

0

0

0

P0=32;

0

0

1

0

0

0

0

0

P0=64;

0

1

0

0

0

0

0

0

P0=128;

1

0

0

0

0

0

0

0




P0=129

1

0

0

0

0

0

0

1

P0=6;

0

0

0

0

0

1

1

0

P0=31;

0

0

0

1

1

1

1

1

P0=15;

1

1

1

1

0

0

0

0


Tabela 7.1: Acesso ao Port P0 com comando Byte.


Este comando altera o nível lógico de todos os pinos.

Nota




CAPÍTULO

8



Interrupções






    1. Baixar 2.75 Mb.

      Compartilhe com seus amigos:
1   ...   13   14   15   16   17   18   19   20   ...   30




©bemvin.org 2020
enviar mensagem

    Página principal
Prefeitura municipal
santa catarina
Universidade federal
prefeitura municipal
pregão presencial
universidade federal
outras providências
processo seletivo
catarina prefeitura
minas gerais
secretaria municipal
CÂmara municipal
ensino fundamental
ensino médio
concurso público
catarina município
Dispõe sobre
reunião ordinária
Serviço público
câmara municipal
público federal
Processo seletivo
processo licitatório
educaçÃo universidade
seletivo simplificado
Secretaria municipal
sessão ordinária
ensino superior
Relatório técnico
Universidade estadual
Conselho municipal
técnico científico
direitos humanos
científico período
espírito santo
pregão eletrônico
Curriculum vitae
Sequência didática
Quarta feira
prefeito municipal
distrito federal
conselho municipal
língua portuguesa
nossa senhora
educaçÃo secretaria
segunda feira
Pregão presencial
recursos humanos
Terça feira
educaçÃO ciência
agricultura familiar