Case Mod RJ
Olá Convidado, Seja Bem-Vindo(a) ao nosso Forum.

O Nosso Forum possui 15 Categorias.
Ela está Online há 3174 dias.
E conta com 318 Tópicos e 404 Mensagens.

Obs: Se você ainda não for cadastrado por favor, cadastre-se, é grátis assim você poderá ler todos os tópicos e ter acesso aos links.
E por favor colaborem, postem, perguntem, criem e divirtam-se.
Contribuindo vocês me ajundam a manter o forum, pois sempre estarei postando novidades e projetos sobre casemod e eletronica.




Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Parceiros
Seja Parceiro, apenas aqui e entre em contato

Seja Parceiro, apenas aqui e entre em contato

Calculadora de Led’s
Calculadora de led multo util, para você fazer seu projeto.
Calculadora LM317
Calculadora do LM 317 muito util, para você fazer seu projeto.
Calculadora Resistor
Calculadora de resistores multo util, para você fazer seu projeto.

PIC Tutorial - um clique no botão liga e desliga um LED

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

PIC Tutorial - um clique no botão liga e desliga um LED

Mensagem  CaseModRJ em 02.05.10 15:54

Projeto em Ação

[Você precisa estar registrado e conectado para ver este link.]

Este é um circuito para a compreensão das portas. O LED conectado à porta RB0 do PIC simplesmente ligar e desligar quando o usuário pressiona ou solta o botão ligado na porta RA0 do PIC em conformidade.

O Circuito

[Você precisa estar registrado e conectado para ver esta imagem.]

O circuito é muito simples. Quando o botão (NO) é liberado, a entrada RA0 é tomado LOW através do resistor de 10K. Quando o botão é pressionado, o RA0 é tomado HIGH através do botão. O resto são atendidas pelo programa do PIC. Após o anúncio de montagem. Abaixo está o código PIC deste tutorial. Você vai encontrar apenas uma parte do tutorial que é interessante para nossa discussão. O resto pode ser encontrado em anexo no final desta página.

Código:
; Main Program ------------------------------------------------------------
Start
         bank1            ;Go to bank 1
         movlw b'11111111'      ;Set the port pin types of the RA
         movwf TRISA         ;All RA ports are inputs

         movlw b'11111110'      ;Set the port pin types of the RB
         movwf TRISB         ;All RB ports are input except RB0 that is output
         bank0            ;Go to bank 0
MainLoop
         btfss PORTA,0         ;Read RA0 pin
         goto Button_Is_Off      ;If RA0 is '0', then goto Button_Is_Off
Button_Is_On
         bsf PORTB,0         ;Set RB0 output
         goto MainLoop         ;And go back to the Main Loop
Button_Is_Off
         bcf PORTB,0         ;Clear RB0 output
         goto MainLoop         ;And go back to the Main Loop


No final deste tutorial, você vai encontrar todos os arquivos inclusive o arquivo asm acima de um zip para download e testá-lo.

Pode parecer um pouco complicado, mas não é. Tudo até a linha de comentário "Main Program" são bits e bytes para inicializar e configurar o PIC em funcionamento. Há também esse "cabeçalho Init_normal.inc" arquivo incluído, juntamente com o padrão 'P16F88.inc. Se você é ne a programação, apenas não lhes dar toda a atenção e incluí-las como estão. Vou explicar o código da "Main Program" e abaixo.

A primeira coisa a fazer é definir o RA e RB pin tipos de porta. Eu começo com o setupr porta RA. Para aceder ao registo TRISA, eu precisa mudar para um banco. Então eu carregar o byte '11111111 'no registo TRISA. Com esse propósito, eu faço todos os pinos das entradas RA. Lembre-se que eu preciso de uma entrada para o botão. Se você olhar no esquema, essa entrada deve ser o pino RA0 para mim.

Então eu declarar o RB tipos pino da porta. Para isso, a carga i '00000000 byte "para o registo TRISB. Desta forma, declaro todos os pinos da porta RB como saídas. Eu poderia ter a carga '11111110 'também, porque eu preciso apenas o pino RB0 a ser uma saída.

Quando tipos pino bith porto são declarados, eu voltar para o banco 0, o local onde os registros mais comuns são localizados.

Em seguida, é tempo para o loop condicional. I verificar o estado RA0. O BTFSS PORTA, 0 faz este trabalho. Se o botão não está pressionado, então a RA0 será zero. Em caso afirmativo, então o direito de comando após a PORTA BTFSS, 0 deve ser executada. Este comando é um comando goto e envia o fluxo do programa para o rótulo Button_Is_Off. Sob este rótulo, há uma bcf PORTB, 0 comando que simplesmente limpar a saída RB0 eo LED será desligado. O próximo comando (goto MainLoop) irá enviar o fluxo do programa de volta para o rótulo MainLoop eo programa irá verificar novamente o RA0 novamente

Se o botão for pressionado, então a entrada RA0 será '1 '. Quando o fluxo do programa chega a PORTA BTFSS, 0 sob o rótulo MainLoop, então o comando seguinte, será ignorado. Isso significa que o fluxo do programa é não saltar para o rótulo de "Button_Is_Off. Em vez disso, o comando BSF »PORTB, 0" deve ser executado. Este comando irá definir a saída RB0 eo LED acenderá. O próximo comando (goto MainLoop) irá enviar o fluxo do programa de volta para o rótulo MainLoop eo programa irá verificar novamente o RA0 e assim por diante e assim por diante ...

A rotina descrita acima deve loop infinito.

[Você precisa estar registrado e conectado para ver este link.]
avatar
CaseModRJ
Admin

Número de Mensagens : 338
Idade : 36
Pontos : 100000520
Reputação : 61
Data de inscrição : 16/03/2009

http://casemodrj.forumeiro.com

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum