Ir ao conteúdo

Projetos com PIC 16F84


thiagoeletro

Posts recomendados

Postado

Olá caros colegas na área de eletronica.

Estou no 3º modulo de eletronica e tenho que fazer um projeto que use como um dos componentes um PIC 16F84, e estou sem direcionamento para começar a elaboração do mesmo. Gostaria de receber de vocês, sugestões de projetos algo que eu possa aprender a montar, o funcionamento, enfim coisas sobre o projeto porque meu objetivo é aprender ao monta-lo.

Espero que possam me ajudar e desde já agradeço a todos.:bandeira::bandeira::bandeira:^_^

Postado

Colega thiago,gostaria de um projeto simples,por exemplo de leds, ou algo mais sofisticado?para iniciar faça algo como sequencial de leds,piscas,controle de brilho.

Se for isso que quiser tem no topico: http://forum.clubedohardware.com.br/tudo-pics-postem/702272

varias coisas simples. Mas se queres algo mais sofisticado especifique...

Tambem diga a linguagem que quer programar.

Abraços....

Postado

Boa tarde caro colega Angelox_123!

Estou querendo fazer algo mais sofisticado pois o projeto será para a matérial de laboratório aplicado, eu pensei em um sistemos de irrigação programável mas não vi nem consegui informações do mesmo usando esse PIC, to querendo uma idéa de algo mais bacana porque vale 60 pontos num todo. A linguagem que iremos usar será a ASSEMBLY, mas começaremos a ve-la essa semana, estou pedindo ajuda de antecipadamente porque quero aprender bem sobre o PIC que usaremos e tambem fazer algo que eu realmente entenda o funcionamento.

Postado

Caro amigo Felipe!

Eu preciso de ajuda com o 16F84 e não posso descartá-lo porque esse PIC é o que estamos aprendendo a programar entende?

Então recebi sua mensagem mas se num for ele num posso fazer entede?

Caso tenha outro circuito ou um amigo que conheça que pode me ajudar faza isso por favor!

Obrigado!!!

Thiago

Postado

Fala meu amigo Felipe!

Claro que me interessa será bom pra eu aprender mais tanto em digital quanto em automação.

Então pode passar as o que puder que estou disposto a fazer sim.

Aguardo!

Thiago

Postado

Veja aqui, essa solução pra iimplementar um PWM por software em qualquer PIC, me baseei em um firmware da saber eletronica e modifiquei para me atender, esta feito para o PIC12F mas pode ser colocado em um 84A comm apenas poucas modificaçoes veja:

;******************************************************
; PWM botões - PWM_BOT.ASM *
; PWM por software para PIC12F675 *
; a VARIAVEL PWMDESIRED CONTROLA O NIVEL DE PWM *
; Escrito em Assembly em 15/Fev/2006 *
; Modificado para PIC12F629, por Felipe Neves
;;*****************************************************
list P = PIC12F629
#include <p12f629.inc>

;sem wdt : __CONFIG 3144h

__CONFIG 314Ch

#define BANK0 BCF STATUS,RP0
#define BANK1 BSF STATUS,RP0

;****************************
;variaveis do programa
;****************************
CBLOCK 0X20

STACKW
STACKS
COUNTER
COUNTER2
PWMDESIRED
PWMMAX
PWMHELP
MAX ;VALOR MAXIMO DO PWMDESIRED
MIN ;VALOR MINIMO
FILTRO1 ;filtros dos botões
FILTRO2
FLAGS

ENDC

;****************************
; Constantes usadas no programa:
PWMADJUSTVAL EQU .22
PWMMAXVAL EQU .29
;****************************
#define LDR GPIO,0
#define BT1 GPIO,1
#define BT2 GPIO,2
#define JUMPER GPIO,4
#define LED GPIO,5


org 0x00
goto power_on

;***********************************
;Endereco inicial da interrupcao
;***********************************
org 0x04
btfsc TMR0,0
GOTO PwmInt

PwmInt:
movwf STACKW
SWAPF STACKW,F
SWAPF STATUS,W
MOVWF STACKS
BCF INTCON,T0IF
BTFSC LED
GOTO LOWPULSE

HIGHPULSE:
COMF PWMDESIRED,W
MOVWF PWMHELP
ADDWF PWMMAX,F
BTFSS STATUS,C
GOTO HIGHIMPINT

HIGHIMPSHRT:
MOVF PWMMAX,W
ADDWF PCL,F
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BSF LED
BCF LED

INCF COUNTER,F
COMF PWMHELP,W
ADDLW PWMADJUSTVAL+5
MOVWF TMR0
GOTO LOWIMPINT2

HIGHIMPINT:
ADDLW PWMADJUSTVAL
MOVWF TMR0

HIGHIMPINT2:
BSF LED
INCF COUNTER,F

MOVLW PWMMAXVAL-1
MOVWF PWMMAX
SWAPF STACKS,W
MOVWF STATUS
SWAPF STACKW,W
RETFIE
;****************************

LOWPULSE:
COMF PWMHELP,W
ADDWF PWMMAX,F
BTFSS STATUS,C
GOTO LOWIMPINT

LOWIMPSHRT:
MOVF PWMMAX,W
ADDWF PCL,F
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BCF LED
BSF LED

COMF PWMDESIRED,W
MOVWF PWMHELP
ADDLW PWMADJUSTVAL+5
MOVWF TMR0
GOTO HIGHIMPINT2

LOWIMPINT:
ADDLW PWMADJUSTVAL
MOVWF TMR0

LOWIMPINT2:
BCF LED
MOVLW PWMMAXVAL
MOVWF PWMMAX
SWAPF STACKS,W
MOVWF STATUS
SWAPF STACKW,W
RETFIE


;*********************************************************************
; inicio do programa propriamente
;*********************************************************************

power_on: ;ajustes iniciais

clrf TMR0
CLRF PWMDESIRED
BCF LED
MOVLW PWMMAXVAL
MOVWF PWMMAX

;*******************************************************************
; configuração do PIC
;*******************************************************************
BANK1 ; ajusta oscilador interno para 4MHz
CALL 3FFh
MOVWF OSCCAL

BANK0
CLRF GPIO
MOVLW 07h
MOVWF CMCON ; desliga comparadores analogicos

BANK1
;CLRF ANSEL ;todos I/Os digitais
MOVLW 1Fh
MOVWF TRISIO ;configura as saidas e entradas
MOVLW 16h
MOVWF WPU ;configura os resitores de pull-up

MOVLW B'00000000' ; ajusta o OPTION_REG, TMR0 com divisor 1:2
MOVWF OPTION_REG ; habilita os pull-up

MOVLW B'10100000' ;ajusta o INTCON
MOVWF INTCON ;liga interrup do TMR0 e liga pull-ups

BANK0
;****************************************

Idle:
clrwdt
btfss COUNTER,07h
goto Idle
bcf COUNTER,07h

;**********************
;Controle do PWM
;**********************
MOVLW .0
MOVWF PWMDESIRED ;valor inicial do PWM
MOVWF MIN ;valor minimo do pwm
MOVLW .250 ;valor maximo do pwm
MOVWF MAX


CONTROLE:
clrwdt
;******************
;Checa o botao 1:
;******************
BTFSS BT1
GOTO AUMENTAR

;******************
;Checa o botao 2:
;******************
BTFSS BT2
GOTO DIMINUIR
goto CONTROLE
;******************


;******************************************************************
AUMENTAR:
MOVF MAX,W ; verifica se o valor de pwmdesired ja esta no maximo
XORWF PWMDESIRED,W
BTFSC STATUS,Z
GOTO CONTROLE ; se pwmdesired=MAX volta para CONTROLE
INCF PWMDESIRED,1 ; caso contrario, incrementa a variavel pwmdesired
CALL DELAY
GOTO CONTROLE
;******************************************************************


;******************************************************************
DIMINUIR:
MOVF MIN,W
XORWF PWMDESIRED,W
BTFSC STATUS,Z
GOTO CONTROLE
DECF PWMDESIRED,1
CALL DELAY
GOTO CONTROLE
;******************************************************************


;*************************
; Rotina de delay
;*************************
DELAY:
movlw .30
movwf FILTRO2
DL1:
clrwdt
movlw .255
movwf FILTRO1
DL2:
clrwdt
NOP
DECFSZ FILTRO1,F
GOTO DL2
DECFSZ FILTRO2,F
GOTO DL1
RETURN
;************************



END

veja o que acha em me fale depois ok!

abs.

Postado

Poxa Felipe, muito obrigado mesmo agora começo meus estudos sobre essa programação e as modificações que terei que fazer, pelo que vi o 12F tem um cristal interno e o 16F não, então terei que estudar direitinho como fazer essas modificações e algumas coisas sobre o PWM, mas já me ajudou muito meu amigo.

Saiba que estou me dedicando a me tornar um bom programador e em breve estaremos falando mais sobre programação e ajudaremos mais pessoas...

Bom se eu precisar de mais ajuda espero que possa me ajudar novamente pois como lhe disse estou aprendendo sobre os PICs mas por agora vou me virar o máximo e aprender o que for possível.

Obrigado!

Thiago

  • Coordenador
Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!