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

O Nosso Forum possui 15 Categorias.
Ela está Online há 3110 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 - Conexão de Múltipla Chaves - O interno resistores pull-up

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

PIC Tutorial - Conexão de Múltipla Chaves - O interno resistores pull-up

Mensagem  CaseModRJ em 02.05.10 16:21

O primeiro tutorial era como um botão de interface. Este circuito terá quatro opções de interface que são capazes de operar simultaneamente quatro LEDs diferentes. Ao invés de switches pode usar botões também. O objetivo deste tutorial é tornar-se familiarizado com a interface e botões e interruptores de uso interno das resistências pull-up.

Projeto em Ação

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

O Circuito

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

Vendo o circuito, o título desta página começa a fazer sentido. Normalmente, deve haver resistores pull-up entre os switches e os pinos de entrada do PIC, no nosso caso o RB0 portos através RB3. O circuito acima não contém nenhum resistor pull-up. Então, o que acontece quando uma opção não é accionado? É o correspondente pino flutuante em um estado desconhecido?

Na verdade, não. O PIC 16F88 (e não só) estão equipados com software interno ativado resistores pull-up. Essas resistências estão ligadas a cada uma das 8 portas do porto B. Eles são controlados a partir do software e pode ser ligado ou desligado todos juntos, no registo OPTION_REG. O bit de controlá-los é o bit 7 e é um. NÃO. bit. Isto significa que, se o bit for definido, os resistores não são habilitados. Se o bit é um, as resistências estão habilitados. Para obter mais informações sobre a opção) registra REG, consulte a página correspondente (The Register OPTION_REG).

O primeiro 4 portas do PORTB (RB0 através RB3) são definidos como entradas e os outros 4 (RB4 através RB7) estão configuradas como saídas. Cada um dos pinos do PORTB tem o resistor pull-up própria. Os resistores de pull-up estão disponíveis apenas para os pinos do PORTB que são definidas como entrada. Isto significa que os primeiros 4 pinos PORTB tem um resistor pull-up, mas os outros 4 pinos, que são as saídas para os LEDs, não tem um resistor de pull-up ativado.

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

            movlw b'00001111'      ;
            movwf TRISB            ;Set the port pin types of the RB
            bank0               ;Go to bank 0

            bank1
            bcf option_reg,NOT_RBPU   ;Enable RB Port Pull-Up resistors
            bank0
MainLoop
            btfss Switch1
            goto Switch_1_Is_0
            bcf Output1
            goto Check_Switch_2
Switch_1_Is_0
            bsf Output1

Check_Switch_2
            btfss Switch2
            goto Switch_2_Is_0
            bcf Output2
            goto Check_Switch_3
Switch_2_Is_0
            bsf Output2
Check_Switch_3
            btfss Switch3
            goto Switch_3_Is_0
            bcf Output3
            goto Check_Switch_4
Switch_3_Is_0
            bsf Output3
Check_Switch_4
            btfss Switch4
            goto Switch_4_Is_0
            bcf Output4
            goto MainLoop
Switch_4_Is_0
            bsf Output4
            goto MainLoop


O que é interessante notar no código acima, é como os resistores pull-up está ativado. Após a configuração do tipo PORT, no início do código, existe essa linha "option_reg bcf, NOT_RBPU. Esta limpa o bit 7 do registo OPTION_REG e, portanto, as resistências pullup deve estar habilitado para o PORTB pinos que são definidas como entradas.

O resto do código é composto por quatro sub-rotinas semelhantes para checar a condição de um conjunto de entrada e de saída correspondente em conformidade:

Código:
            btfss Switch1
            goto Switch_1_Is_0
            bcf Output1
            goto Check_Switch_2
Switch_1_Is_0
            bsf Output1
Check_Switch_2
            .
            .
            .


A primeira linha irá verificar o pino de entrada. Se o pino é definido, então o fluxo do programa vai pular a próxima linha e não vai executar a seguinte instrução. A próxima instrução a ser executada será claramente a saída correspondente, e, posteriormente, uma instrução GOTO a verificar a entrada seguinte é executado. Se a entrada não foi definido ea instrução seguinte foi executado, o fluxo do programa que Switch_1_Is_0 GOTO rótulo '. Então, a saída correspondente seria SET e do fluxo do programa vai continuar normalmente a verificar a entrada seguinte.

Você deve perceber que uma saída é definida quando uma entrada é claro. A saída é invertido. Isso é feito de propósito por causa da resistores pull-up e do tipo de switch utilizado. Os switches são contatos Normal Open. Isto significa que quando não são acionados, o pino de entrada é puxado por alta nos resistores pull-up. Quando o interruptor é acionado, em seguida, o alfinete é impulsionado por baixo do interruptor. Você deve, evidentemente, aplicar o processo de ativar / desativar a vontade.

Arquivos do Projeto

Código do Pic.

Fonte: Pcheaven
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