JF_M
Fusivel
Offline
Mensagens: 15
|
 |
« em: Outubro 23, 2007, 14:32:58 » |
|
Esto a iniciar-me na programação de pic 16F84, mas com muitos dificuldades, pois o Assembler é complicado. E alguns exemplos que tenho tirado da net tem erros. Se alguém pode-se dar um jeito neste programa agradecia. ou compilar da quatro erros. Mas se achar melhor mandar-me um código, mas tem que ser uma cena pequena, do tipo acender e apagar um led. cumprimentos. ;************************************************** ; Pic by example ; ; LED.ASM ; Lampeggiatore ad un led ; ; (c) 1998, Sergio Tanzilli ( tanzilli@picpoint.com) ; ; http://www.picpoint.com;************************************************** PROCESSOR 16F84 RADIX DEC INCLUDE "P16F84.INC" LED EQU 0 ORG 0CH Count RES 2 ;Reset Vector ;Punto di inizio del programma al reset della CPU ORG 00H bsf STATUS,RP0 movlw 00011111B movwf TRISA movlw B'11111111' movwf PORTB bcf STATUS,RP0 bsf PORTB,LED MainLoop call Delay btfsc PORTB,LED goto SetToZero bsf PORTB,LED goto Mainloop SetToZero bcf PORT,LED goto Mainloop Delay clrf Count clrf Count+1 DelayLoop decfsz count,1 goto DelayLoop decfsz Count+1,1 goto DelayLoop retlw 0 END
|
|
|
|
« Última modificação: Novembro 08, 2007, 18:30:20 por resinba »
|
Registado
|
|
|
|
faleieu
Transistor

Offline
Mensagens: 91
|
 |
« Responder #1 em: Outubro 23, 2007, 22:24:56 » |
|
eu tenho cá uma cena com assembly mas nao consigo anexar. so se te enviar po teu mail. fika bem
|
|
|
|
|
Registado
|
faleieu4ever
|
|
|
|
resinba
|
 |
« Responder #2 em: Outubro 25, 2007, 23:42:23 » |
|
;************************************************** ; Pic by example ; ; LED.ASM ; Lampeggiatore ad un led ; ; (c) 1998, Sergio Tanzilli ( tanzilli@picpoint.com) ; ; http://www.picpoint.com;************************************************** PROCESSOR 16F84 RADIX DEC INCLUDE "P16F84.INC" LED EQU 0 ORG 0CH Count RES 2 ;Reset Vector ;Punto di inizio del programma al reset della CPU ORG 00H bsf STATUS,RP0 movlw 00011111B movwf TRISA movlw B'11111110' movwf PORTB bcf STATUS,RP0 bsf PORTB,LED MainLoop call Delay btfsc PORTB,LED goto SetToZero bsf PORTB,LED goto MainLoop SetToZero bcf PORTB,LED goto MainLoop Delay clrf Count clrf Count+1 DelayLoop decfsz Count,1 goto DelayLoop decfsz Count+1,1 goto DelayLoop retlw 0 END Erro resolvido  :020000040000FA :1000000083161F308500FE308600831206140E20F2 :1000100006180C2806140728061007288C018D01E5 :0A0020008C0B10288D0B1028003403 :00000001FF Hex encontra-se em cima.
|
|
|
|
|
Registado
|
Por favor, alterem o meu email no msn pois tenho outro email dedicado aos foruns, e vou bloquear todos os que se encontram no antigo email.
|
|
|
|
Hugu
|
 |
« Responder #3 em: Outubro 26, 2007, 00:22:19 » |
|
Foi só um "1" ?! lol.. isso é k é olho!  Gostava tb de saber o k faz esse código..,alguem pode explicar? ..é k tb tou-me a iniciar nos pic's e ja quase tenho um gravador montado e aproveitava esse código pra testar..  Abr p.s.: Sugestão: era porreiro k o ppl, q tivesse ou soubesse de códigos, pudesse postar e assim criar-se uma biblioteca/colectânea de códigos para os pic's!
|
|
|
|
« Última modificação: Outubro 26, 2007, 00:33:52 por Hugu »
|
Registado
|
|
|
|
|
resinba
|
 |
« Responder #4 em: Outubro 26, 2007, 00:44:33 » |
|
esse código pura e simplesmente acende e apaga um led, nada mais, se o cristal for de 4MHz, o led ficará aceso por um perÃodo de cerca de 200ms, mas se baixarmos a frequência do cristal o perÃodo do led tanto aceso como apagado aumenta numa relação linear.
|
|
|
|
|
Registado
|
Por favor, alterem o meu email no msn pois tenho outro email dedicado aos foruns, e vou bloquear todos os que se encontram no antigo email.
|
|
|
|
José Flor
|
 |
« Responder #5 em: Outubro 26, 2007, 03:10:57 » |
|
Eu corrigui uma data de erros do MPL SIM Ex. movlw 00011111B deve ser: movlw B'11111110' Noutros casos estava uma palavra escrita de uma forma dirente duas vezes, ex. MainLoop é diferente de Mainloop (fonte case). Eu corrigui uma data de erros. No teste do código fonte, ele nunca sai deste loop: DelayLoop decfsz count,1 goto DelayLoop Resumindo, não funciona. Este link; http://www.fortunecity.com/greenfield/bypass/314/PIC/gravador_pic.htmÉ um gravador de PIC, o mesmo autor, um Brasileiro professor de PICs. Pertence a uma aula bem boa sobre PIC16F84A. Ai o amigo pode praticar tudo isso. Dê uma olhada, vale a pena. José Flor
|
|
|
|
|
Registado
|
|
|
|
|
Hugu
|
 |
« Responder #6 em: Outubro 26, 2007, 15:21:00 » |
|
Caro José Flor, é possivel arranjar o esquema desse gravador, a trilha, em formato *.bmp, *.jpeg ou mm *.tif? Eu vou fazer um gravador de PIC's pela 1ª vez e estive para fazer esse gravador, mas acabei por escolher um outro, este, ainda c menos componentes e k tinha acesso à trilha em formato universal e é o k estou a montar de momento. Mas acho k me ja tou a arrepender pk n tem led's indicadores...  ..mas vou continuar e rezar pra k faça tdo direitinho para n ter probes!  Mas se alguem puder deixar a pcb desse professor Brasileiro em formato universal, agradecia mto! Ou se alguem tiver pachorra para analisar este gravador e me puder indicar co implementar os led's indicadores entao ainda ficava mais super agradecido! Abr
|
|
|
|
|
Registado
|
|
|
|
|
resinba
|
 |
« Responder #7 em: Outubro 26, 2007, 23:58:52 » |
|
Pessoal caso não tenham reparado eu corrigi o código, corri o dito até este dar certo no MPLAB SIM,tambem pus a papinha em HEX, ou seja o ficheiro que tem de carregar no PIC, aqui está ele de novo....
:020000040000FA :1000000083161F308500FE308600831206140E20F2 :1000100006180C2806140728061007288C018D01E5 :0A0020008C0B10288D0B1028003403 :00000001FF
Com "Bloco de notas" (por exemplo), colam este código no ficheiro e MUITO IMPORTANTE, gravam o ficheiro com a extenção hex, como por exemplo; pisca.hex.
Não esquecer que a saida é no RB0, pino 6.
|
|
|
|
|
Registado
|
Por favor, alterem o meu email no msn pois tenho outro email dedicado aos foruns, e vou bloquear todos os que se encontram no antigo email.
|
|
|
|
José Flor
|
 |
« Responder #8 em: Outubro 27, 2007, 03:35:10 » |
|
Caro José Flor, é possivel arranjar o esquema desse gravador, a trilha, em formato *.bmp, *.jpeg ou mm *.tif?
Hugo, Em formato BMP não tem. Nessa página tem circuito e a PCB. Isso não dará para você trabalhar no Paint em BMP? Se imprimir a partir da página deve obter a impressão em tamanho real da PCB. Abraços José Flor
|
|
|
|
|
Registado
|
|
|
|
|
José Flor
|
 |
« Responder #9 em: Outubro 27, 2007, 07:24:52 » |
|
Esse código eu á dias atrás que testei e não funcionou, mesmo depois de apagar todos os erros. Está muito confuso. Resolvi re-escrever o código que é esse a em baixo ais simples, testado a funcionar. Testei com o PIC16F84A dai ele aparecer no código, se usar o 84 deve alterar no código o LIST e do INCLUDE. Código tão somente acende o LED, executa a rotina de 200ms apaga o LED, executa a rotina de 200ms e repete tudo de novo. Esse cara (Sergio Tanzilli) que escreveu o código embolou ele de forma muito confusa.
LIST P=16F84A RADIX DEC INCLUDE <P16F84A.INC> __CONFIG _XT_OSC & _CP_OFF & _WDT_OFF & _PWRTE_ON
x equ 0x0d y equ 0x0e ZZ equ 0x0f LED equ 0 ;LED é bit 0
;-----------define input e output bsf STATUS,RP0 movlw 00011111B ;PORTA todo input movwf TRISA movlw B'11111110' ;PORTB todo input, somente Bi 0 output movwf PORTB bcf STATUS,RP0 ;--------------------------------- ;---- inicio do programa principal MainLoop bsf PORTB,LED ; acende LED em RB0 (bit 0 lá em cima) call DelayLoop ;200ms acesso bcf PORTB,LED call DelayLoop ;200ms apagado goto MainLoop ;--------------
;----- inicio da rotina de 200 milisegundos DelayLoop movlw 4 ;trocar este valor altera o tempo movwf ZZ ;deverá trocar o valor superior em primeiro lugar ms200a movlw 241 ;trocar este valor altera o tempo movwf x ms200b movlw 255 ;trocar este valor altera o tempo movwf y ms200c decfsz y goto ms200c decfsz x goto ms200b decfsz ZZ goto ms200a return ;-----fim da rotina de 200 milisegundos END
|
|
|
|
|
Registado
|
|
|
|
|
José Flor
|
 |
« Responder #10 em: Outubro 27, 2007, 07:28:12 » |
|
Caro José Flor, é possivel arranjar o esquema desse gravador, a trilha, em formato *.bmp, *.jpeg ou mm *.tif?
Hugo, Eu tenho o esquema em PDF, somente isso. José Flor
|
|
|
|
|
Registado
|
|
|
|
|
bettencourt
|
 |
« Responder #11 em: Outubro 27, 2007, 15:57:42 » |
|
eu há uns anitos atras fiz esse programador no paint copiei a imagem dps guardei em formato monocormato(preto e branco). depois foi corregir as imperfeiçoes do circuito. Se encontra meto aqui
|
|
|
|
|
Registado
|
|
|
|
|
Hugu
|
 |
« Responder #12 em: Outubro 28, 2007, 01:17:34 » |
|
Caro José Flor, é possivel arranjar o esquema desse gravador, a trilha, em formato *.bmp, *.jpeg ou mm *.tif?
Hugo, Em formato BMP não tem. Nessa página tem circuito e a PCB. Isso não dará para você trabalhar no Paint em BMP? Se imprimir a partir da página deve obter a impressão em tamanho real da PCB. Abraços José Flor tem pcb, mas é em ficheiro dum programa k n tenho e k n sei utilizar.. o problema é dpx a impressao n sair em tamanho real..  ...se ao menos soubesse as dimensoes da placa eu dpx tentava encolher ou aumentar para a escala certa... Caro José Flor, é possivel arranjar o esquema desse gravador, a trilha, em formato *.bmp, *.jpeg ou mm *.tif?
Hugo, Eu tenho o esquema em PDF, somente isso. José Flor Tem em pdf? tb pode ser! agradecia entao k me enviasse o ficheiro ou entao coloque em anexo numa sua msg k eu dpx vou busca! Obrigado amigo!
|
|
|
|
|
Registado
|
|
|
|
|
Hugu
|
 |
« Responder #13 em: Outubro 28, 2007, 01:19:00 » |
|
eu há uns anitos atras fiz esse programador no paint copiei a imagem dps guardei em formato monocormato(preto e branco). depois foi corregir as imperfeiçoes do circuito. Se encontra meto aqui
entao se a encontrar, agradecia tb que colocasse em anexos! Obrigado!
|
|
|
|
|
Registado
|
|
|
|
|
José Flor
|
 |
« Responder #14 em: Outubro 28, 2007, 04:05:29 » |
|
Hugo, Como posso enviar o PDF para ti? Olha, abra a imagem PCB com o Microsoft Paint, imprima. Coloque um PIC sobre a impressão para saber se está na escala certa, não estando aumente ou diminua a imagem até conseguir. É assim que eu faço e resolve. Abraço José Flor
|
|
|
|
|
Registado
|
|
|
|
|