Ir ao conteúdo
  • Cadastre-se

Acender leds com PIC16F57


aslem

Posts recomendados

Amigos, comprei um par de PIC16F57 pra minha 1ª experiencia com microcontroladores e não está dando certo. Sou técnico em eletrônica à 7 anos, e queria começar a programar. Peguei um código pronto na internet, mas na hora da compilação, deu um "monte " de erros.Gostaria que alguém "expert" no assunto me ajudasse.O projeto está aqui:http://jap.hu/electronic/codec-p.html

Link para o comentário
Compartilhar em outros sites

Colega aslem,

Quais problemas estas a ter? Qual compilador esta usando? Qual linguagem?

Abs.

Amigo felipe, estou usando ele com o MPLAB IDE, e consegui gerar o arquivo .hex,(o arquivo original vem em asm) mas na hora de gravar com o PICKIT 2 aparece a mensagem:"programming failed address at memory 0x00000" será que o PICKIT 2 não programa esse PIC16F57?

Cade o codigo amigo?

está aqui:http://jap.hu/electronic/codec-p.html está logo abaixo do datasheet, tá escrito bem pequenininho tanto o encoder quanto o decoder

gente, na realidade eu não quero apenas acender led's, o meu projeto é fazer um controle remoto à distancia, mas eu preciso controlar pelo menos 16 canais independentemente e ao mesmo tempo, como no vídeo

Link para o comentário
Compartilhar em outros sites

o que eu notei nesse programador é que o pino 2(VDD do PIC) não tem nada conectado,só o MCRL(pino 28) quanto ao código, eu ainda não sei programar nesse nível

amigos está aqui o código em asm:


;**********************************************************************
; *
; Filename: enc-parallel.asm *
; Date: *
; File Version: *
; *
; Author: Peter Jakab <[email protected]> *
; [url]http://jap.hu/electronic/[/url] *
;**********************************************************************
;NOTES
;encoder v4.2
;
;**********************************************************************
;HISTORY
;
; 050-20091212 16-bit parallel encoder for 16f57
; 051-20091212 (use mtxv4.035)
; 052-20091212 add modulation (use mtxv4.036)
;
;**********************************************************************
list p=16f57


#include <p16f5x.inc>
#include <mtxv4.inc>

MOD_EN EQU 1 ; modulation enable pin on PORTA
TX_EN EQU 2 ; tx enable pin on PORTA
TX_OUT EQU 0

__CONFIG _CP_OFF & _WDT_OFF & _XT_OSC

mainda UDATA
rcnt res 1
tmp res 1

vectors CODE 0
goto main ; go to beginning of program

prog CODE 5

name dt 0x51, "enc-051.asm jap20091212", 0
en_mask_portb dt b'00000000' ; enable mask for PB bits (0=enable)
en_mask_portc dt b'11111111' ; enable mask for PC bits (0=enable)

main
;HARDWARE INIT

movlw (1<<MOD_EN) | (1<<TX_EN)
tris PORTA
movlw 0xff
tris PORTB
tris PORTC

movlw 0
movwf PORTA
movwf PORTB
movwf PORTC

; clrwdt
; movlw (0<<T0CS) | (1<<PSA) | 0x07 ; prescaler to WDT, 1:128
; option

call mtx_init

loop call trigger_tx
btfsc STATUS, Z ; wait for TX_EN to become low
goto loop

; set modulation type
movf PORTA, W
andlw (1<<MOD_EN)
call mtx_setflag

loop2 movlw 3
movwf rcnt

loop3 movf PORTB, W
movwf mtx_buffer
movf PORTC, W
movwf mtx_buffer+1
call mtx_send

call trigger_tx
btfss STATUS, Z ; if TX_EN is still low, goto loop2
goto loop2
; TX_EN became high
decfsz rcnt, F
goto loop3

goto loop

trigger_tx ; test if we should transmit or no
; if yes, return Z=0 (transmit)

; test TX_EN input.
movlw (1<<TX_EN)
andwf PORTA, W
xorlw (1<<TX_EN)
btfss STATUS, Z
return ; yes, Z=0

; test for selected pins
call en_mask_portb
iorwf PORTB, W
xorlw 0xff
btfss STATUS, Z
return ; yes, Z=0

; test for selected pins
call en_mask_portc
iorwf PORTC, W
xorlw 0xff
return ; if yes, Z=0

end

aqui o decoder:


;**********************************************************************
; *
; Filename: dec-parallel.asm *
; Date: *
; File Version: *
; *
; Author: Peter Jakab <[email protected]> *
; [url]http://jap.hu/electronic/[/url] *
;**********************************************************************
;NOTES
;encoder v4.2
;
;**********************************************************************
;HISTORY
;
; 050-20091214 16-bit parallel decoder for 16f57
;
;**********************************************************************
list p=16f57


#include <p16f5x.inc>
#include <mrxv4.inc>

LATCH_EN EQU 2
RX_IN EQU 0
VALID EQU 3

__CONFIG _CP_OFF & _WDT_ON & _XT_OSC

mainda UDATA
rcnt res 1
tmp res 1

vectors CODE 0
goto main ; go to beginning of program

prog CODE 5

name dt 0x50, "dec-050.asm jap20091214", 0

wd_handler btfss PORTA, LATCH_EN
clrwdt
return

main
;HARDWARE INIT
movlw (1<<RX_IN) | (1<<LATCH_EN)
tris PORTA
movlw 0
tris PORTB
tris PORTC
movlw 0
movwf PORTA ; clear VALID bit

btfsc STATUS, NOT_TO
goto not_wd_reset
; wd reset
btfss PORTA, LATCH_EN
goto keep_latch
; clear momentary outputs

not_wd_reset ;
; clear outputs
movlw 0
movwf PORTB
movwf PORTC
keep_latch ;

clrwdt ; clears STATUS<NOT_TO>
movlw (0<<T0CS) | (1<<PSA) | 0x03 ; prescaler to WDT, 1:8
option ; min timeout = 72 ms, avg = 144 ms

loop call mrx_receive
andlw 0xff
bnz loop
call mrx_chk_buf
andlw 0xff
bnz loop

; valid reception
clrwdt
movf mrx_buffer, W
xorlw 0xff
movwf PORTB
movf mrx_buffer+1, W
xorlw 0xff
movwf PORTC
movlw (1<<VALID)
movwf PORTA
goto loop

end

Link para o comentário
Compartilhar em outros sites

@aslem, me parece que o problema está na sua conexão com o PIC então inicialmente sugiro que tente conectar o seu PIC obedecendo esse diagrama, faça os testes e retorne aqui:

http://media.photobucket.com/image/PICKIT%202%20connector%20wiring/nigelmercier/Misc/pinouts.jpg

duvidas manda ai.

Abs.

Link para o comentário
Compartilhar em outros sites

se alguém tiver algum projeto para controlar serialmente 2 pic´s via TX e RX, mas não pode ser sequencial, tem que ser quando eu pressionar a tecla correspondente à entrada ele aciona no outro PIC o led correspondente à saída.agradeço.

@aslem, me parece que o problema está na sua conexão com o PIC então inicialmente sugiro que tente conectar o seu PIC obedecendo esse diagrama, faça os testes e retorne aqui:

http://media.photobucket.com/image/PICKIT%202%20connector%20wiring/nigelmercier/Misc/pinouts.jpg

duvidas manda ai.

Abs.

amigo felipe, a questão é a seguinte: esse abaixo é o programador que estou usando, então não sei como ligar como no esquema, eu sei que os jumpers pretos são clock e data mas quem é quem? e o jumper verde habilita a gravação em CI's de 28 e 40 pinos. o que eu vi é que o pino 4(que é terra ,segundo o datasheet )não está conectado

post-948604-13884961755973_thumb.jpg

Link para o comentário
Compartilhar em outros sites

Compare o seu PIC com outros, consulte o datasheet do PIC e vê em que pino é o clock, data e MCLR, depois pega um PIC mais conhecido e faça uma ligação fora do programador. Por exemplo o 16F877 tem 40 pinos, MCLR é pino 1, o clock é o pino 39 (PGC=RB6) e o data é o pino 40 (PGD=RB7). Sem esquecer a alimentação.

Link para o comentário
Compartilhar em outros sites

Compare o seu PIC com outros, consulte o datasheet do PIC e vê em que pino é o clock, data e MCLR, depois pega um PIC mais conhecido e faça uma ligação fora do programador. Por exemplo o 16F877 tem 40 pinos, MCLR é pino 1, o clock é o pino 39 (PGC=RB6) e o data é o pino 40 (PGD=RB7). Sem esquecer a alimentação.

ok ,vou fazer à tarde e mais à noite eu posto o resultado.

Link para o comentário
Compartilhar em outros sites

bom dia , quero agradecer a todos que me ajudaram pessoal, consegui.O que aconteceu é que a pinagem do programador não batia com o PIC.Então eu fiz o que o amigo PUENALIFE me disse,pra ligar o PIC fora do programador,e com o datasheet dele, eu fiz as ligações de VCC(pino 2), GND(pino 4), DATA(pino 17), CLOCK(pino 16) e MCRL(pino 28). Agora é montar o circuito.Quando tiver ok, eu dou um alô pra vocês.Valeu pessoal!

gente ,como eu posso ligar a TX e RX sem ter o transmissor? acoplar por capacitor ou resistor?

Pessoal,,,,,valeu pela forÇa!!!!!!!!!!!!!!!!!!!!conectei os pic's atravÉs de um resistor de 220ohms e funcionou legal!!!!!!!muito obrigado a todos!!!!!!!!:)

Link para o comentário
Compartilhar em outros sites

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!