Guia CNC Brasil - Tudo sobre CNC, Router, Laser, Torno e 3D Print

ELETRÔNICA / ELÉTRICA => Eletrônica Básica => Programação => Tópico iniciado por: Blackmore em 18 de Novembro de 2007, 10:05

Título: Programação em linguagem Assembly ...
Enviado por: Blackmore em 18 de Novembro de 2007, 10:05
Galera ... estou iniciando estudos para programar em linguagem Assembly ... para utilizar micro controladores ...
O que eu queria mesmo é saber se alguém aqui tem interesse em aprender e trocar idéias sobre ... por exemplo ... formas diferentes de fazer a mesma coisa com progrmas mais simples, alocação de memórias ...

bom ... fico aqui na espera de alguém que queira compartilhar de sua experiência e quem sabe começar um projeto qqer com micro controladores!!

abraço!
Título: Re: Programação em linguagem Assembly ...
Enviado por: Tverm em 18 de Novembro de 2007, 12:47
Bom dia.
Acho que faz falta ao forum um topico sobre este assunto sim.
Este semestre estou a aprender assembly na Univercidade.
Talves possa dar por aqui alguns palpites.
Título: Re: Programação em linguagem Assembly ...
Enviado por: NAVEGADOR em 18 de Novembro de 2007, 21:14
blackmore

Acho que sua idéia é excelente. Eu também gostaria muito de participar e compartilhar, meu nível é de iniciante também.
Talvez poderiamos tomar como base algo como esse cursinho do Prof Adilson Gutierres:
http://www.edutecbauru.com.br/
Fica em aberto para mais sugestões do amigos.

Título: Re: Programação em linguagem Assembly ...
Enviado por: Blackmore em 19 de Novembro de 2007, 11:03
Tverm

Acho que faz falta ao forum um topico sobre este assunto sim
este fórum em bem voltado ao CNC, porém existem espaços para outros assuntos que não são relacionados somente a CNC, e este caso de programação na minha opnião é um deles ..!!
vamos mantendo contato ...

NAVEGADOR

Eu também gostaria muito de participar e compartilhar, meu nível é de iniciante também
isso é importantíssimo! nível iniciante!
o site da edutec é bem bacana ... tem umas soluções para estudo até razoáveis ... mas dae tem duas coisas q acho q "podem" deixar a desejar ... sendo:

1-o PIC utilizado neste curso eh um 16F84A, o qual a microchip está meio q "tirando de linha" para deixar o 16F628A, e esse tem algumas funções a mais ... veja bem ... são compatíveis !!!
2-0 o software utilizado esta um tanto quanto desatualizado, funciona mas está defasado atualmente o MPLab disponível eh o 8.0!!

fiz as críticas .. agora faço as sujestões ...   :D

1-tomar como base o PIC 16F628A ...
2-tomar base software do MPLab na versão 7.6 ...
3-termos alguns pqnos hard´s para nossos testes ...
4-importantíssimo, manter histórico das experiências !!!

aguardo o pessoal ae para trocarmos mais idéias ou propostas !

abraço!
Título: Re: Programação em linguagem Assembly ...
Enviado por: Blackmore em 21 de Novembro de 2007, 01:16
acabou?   ???

onde estao as ideias?
Título: Re: Programação em linguagem Assembly ...
Enviado por: ftrevis em 21 de Novembro de 2007, 15:53

Ola povo,

Se o objetivo é aprender assembly, recomendo a familia 8051, e não PIC. O assembly do pic é por demais confuso e limitado.
Também existem softwares gratuitos aos montes do 8051, e muito código. Pic compensa se for usar linguagem de alto nível (basic, C)... Atualmente existem chips como o AT89S52 (40 pinos), que são baratos, tipo uns 6 reaus...

Abraços,
Trevis
Título: Re: Programação em linguagem Assembly ...
Enviado por: Blackmore em 22 de Novembro de 2007, 19:06
ftrevis

primeiramente boa noite ...  :)

Se o objetivo é aprender assembly, recomendo a familia 8051, e não PIC
o objetivo meu é de aprender assembly e usar nos PIC´s por um motivo muito simples ... é de uso comum na empresa onde trabalho e utilizarei esses conhecimentos na empresa ...

O assembly do pic é por demais confuso e limitado.
engraçado que aqui na empresa é justamente o contrário ...

Pic compensa se for usar linguagem de alto nível (basic, C)...
uma mescla entre os dois níveis em determinados casos se faz necessário

Atualmente existem chips como o AT89S52 (40 pinos), que são baratos, tipo uns 6 reaus...
para mim ter 40 pinos e precisar de 8 é um desperdício, principalmente quando tenho o que preciso disponível na empresa ..

Quero dizer com tudo isto que preciso aprender assembly, tenho essa necessidade e aprender C, basic ou qqer outra linguagem não me interessa ... por isso o título ... Programação em linguagem Assembly ... ... ok?
mesmo assim vou procurar saber algo sobre os 8051 que 99% dos Eng. que conheço reclamam ...

Obrigado.  :)

Blackmore


Título: Re: Programação em linguagem Assembly ...
Enviado por: Tverm em 22 de Novembro de 2007, 21:58
Cara sua vontade de aprender Assembly é boa mas não pode esquecer as outras linguagens.
Minha experiência inicial foi com "R8C" da renesas que é um micro da família "M16" da Mitsubishi, este micro é bem avançado para mim e a melhor maneira de o programar é mesmo uma mistura entre C++ e Assembly.
Em C++ eu já me oriento mais ou menos.
Agora estou aprendendo Assembly no 8051 é acho que é bem mais fácil e pelo que já vi muito versátil.
É um excelente micro para aprender, já PIC é bem comercial mas pelo que me já foi transmitido por varias pessoas é um pouquinho bem mais complexo.
Mas como disse meu contacto com PIC é pouco.
Em relação a aprender Assembly para PIC neste momento não é muito prioritário, já que no dia a dia minha cabeça tem que trabalhar com 3 linguagens distintas ainda aprender Assembly no 8051 e construir uma  CNC.
Hehehe não sobra muito tempo nem espaço dentro da minha cabeça.       
Título: Re: Programação em linguagem Assembly ...
Enviado por: vnconrado em 22 de Novembro de 2007, 22:05
Olá, pessoal.

Parece-me que, para programar PIC, a linguagem usada é o Assembler. Mas, será que o uso de uma linguagem, como o C compilado, não serviria para essa tarefa?

Um abraço.

Vinícius.
Título: Re: Programação em linguagem Assembly ...
Enviado por: Tverm em 22 de Novembro de 2007, 22:13
vnconrado

ja existem compiladores de C++ para PIC mas com Assembly voce tem a vantagem de modular o codigo de maneira a ele ficar bem menos pesado do que programar em C++ e depois compilar.
Nos os humanos neste caso se bem treinados somos muito melhores a a arrumar codigo que maquina.
Mas a quem misture as duas linguagens no mesmo codigo para facilitar ainda mais a coisa, e ja existem compiladores que aceitam isso.

Mas eu sou novato nisto.
Estou aprendendo ainda.   
Título: Re: Programação em linguagem Assembly ...
Enviado por: ftrevis em 23 de Novembro de 2007, 09:11
Ola Blackmore,

Não quis dizer que vc "deve" usar "C", foi apenas uma recomendação da familia 8051, pois  no inicio do tópico você disse que queria aprender a programar "microcontroladores", e não especificamente o PIC... Sou professor do SENAI-MS, e ensino assembly a anos, quando falo que o assembly da familia 8051 e mais fácil, é por experiência própria. Trabalho pouco com PIC, uso mais 8051 e AVR (meu favorito), porém ensino 8051 que é de longe o mais fácil (mnemônicos simples, e um belo conjunto de instruções). Tenho vários conhecidos que programam profissionalmente com PIC, porém todos usam "C" (quando necessário, mesclam ASM), pois usar ASM "puro" no PIC é improdutivo... Não se incomode de eu dizer que o assembly do PIC é "confuso e limitado" pois é mesmo... poucas instruções, necessidade de chavear bancos, mnemônicos complexos... (pelo menos na série 16F, parece que na série 18F a microchip melhorou alguns pontos).

O que costumo dizer aos meus alunos, é que NÃO devem se "apegar" a alguma familia, ou fabricante, como se fosse religião ou futebol... Tem que ter a mente aberta, escolher a familia e o mcu adequado a cada aplicação... Ferramentas, preço, fornecedor, etc  devem ser levadas em conta na hora da escolha. Já que vc trabalha com usuários de PIC, e tem acesso a ferramentas de PIC, talvez seja melhor realmente vc aprender PIC. Mas para aquele usuário que não tem nada a mão, ferramentas, softwares ou conhecidos que possam ajudar, recomendo fortemente 8051.

Em tempo, as vezes, um chip maior custa menos que um chip menor... não é porque tem menos pinos que vai sair mais barato, tem a lei da oferta e procura ai...

Fiquei curioso a respeito das reclamações a respeito do 8051... poderia repassar algumas delas? Talvez eu possa esclarecer alguns pontos.

Abraços,
Fábio Trevisan


Título: Re: Programação em linguagem Assembly ...
Enviado por: Blackmore em 23 de Novembro de 2007, 11:45
Tverm

Cara sua vontade de aprender Assembly é boa mas não pode esquecer as outras linguagens
opa !! verdade ... concordo contigo .. mas tem q se começar de algum ponto não eh mesmo? eu escolhi o Assembler e PIC pelas "facilidades" que tenho .. ok?
gostei do teu comentário! um dia terei experiência suficiente para podermos trocar umas idéias mais técnicas!

vnconrado

Parece-me que, para programar PIC, a linguagem usada é o Assembler. Mas, será que o uso de uma linguagem, como o C compilado, não serviria para essa tarefa?
faço minhas as palavras do camarada Tverm ... aqui na empresa tb usamos C ...

ftrevis

muito bom saber que temos pessoas de grande experência aqui no fórum ... pois isso ajuda e muito! troca de experiências ... podes ter certeza que tudo o que tu disse eu vou levar em consideração, quando tiver o momento certo aplicar, mas é que no momento preciso de Assembler e PIC ...
me desculpe se fui rude, tenho esse problema, reconheço isso ...  :-[

Tenho vários conhecidos que programam profissionalmente com PIC, porém todos usam "C" (quando necessário, mesclam ASM), pois usar ASM "puro" no PIC é improdutivo...
isso!! essa é a idéia .. porém as pessoas que tenho contato dizem que quem aprende ASM primeiro tem mais facilidade com C depois, justamente por C ser mas fácil, já o inverso não funciona direito ... a confusão é inevitável ... sei que assim que ter meus estudos completos para ASM vou encarar prog em C ... e tenho a certeza que será mais fácil ... mas como falei em outro post ... preciso começar de algo ... e pelo q percebo ASM primeiro me ajudará no futuro ... (coisa estranha!! hehe)

O que costumo dizer aos meus alunos, é que NÃO devem se "apegar" a alguma familia, ou fabricante, como se fosse religião ou futebol... Tem que ter a mente aberta, escolher a familia e o mcu adequado a cada aplicação...
apoio !!! mas neste momento não posso executar!!

Já que vc trabalha com usuários de PIC, e tem acesso a ferramentas de PIC, talvez seja melhor realmente vc aprender PIC. Mas para aquele usuário que não tem nada a mão, ferramentas, softwares ou conhecidos que possam ajudar, recomendo fortemente 8051.
apoio novamente! por e por isso escolhi PIC .. pq tenho mais recursos ... 8051 aqui na empresa nem tem ... é aquela da facilidade dita acima ...

as vezes, um chip maior custa menos que um chip menor... não é porque tem menos pinos que vai sair mais barato, tem a lei da oferta e procura ai...
isso ... mas aqui pagamos pouco pq utilizamos Microchip nos produtos .. compra em grandes quantidades ....

Fiquei curioso a respeito das reclamações a respeito do 8051... poderia repassar algumas delas? Talvez eu possa esclarecer alguns pontos.
essa eu vou demorar um pouco por ter q falar com os Eng aqui .. ok? mas mas farei sim ...
teu comentário agora me deixou mais "esclarecido", talvez seja a melhor palavra", gostei ....

abraço!!   :)
Título: Re: Programação em linguagem Assembly ...
Enviado por: C N C N o w ! em 23 de Novembro de 2007, 17:56
Pra vcs que gostam dessas frescuras de programação:

http://tinyurl.com/3derok
Título: Re: Programação em linguagem Assembly ...
Enviado por: Blackmore em 24 de Novembro de 2007, 09:55
cncnow

Pra vcs que gostam dessas frescuras de programação

detesto o Nascimento ... !!  ;D
mas se tivéssemos uns desses seria menos perigosa a nossa vida!

não entendi muito bem o propósito do texto mas ... lembrei do filme!!

abraço!
Título: Re: Programação em linguagem Assembly ...
Enviado por: Blackmore em 30 de Novembro de 2007, 13:01
aos colegas interessados ...

fiz uma pequena rotina para usar um PIC 16F628 como controle PWM ... por software sem a saída adequada (CCP), isso para controlar motores DC ...

alguém está interessado em discutir e melhorar essa idéia?

abraço!
Título: Re: Programação em linguagem Assembly ...
Enviado por: Rudolf Waller em 30 de Novembro de 2007, 21:24
Grande Blackmore,
fiz uma pequena rotina para usar um PIC 16F628 como controle PWM ... por software sem a saída adequada (CCP), isso para controlar motores DC ...

alguém está interessado em discutir e melhorar essa idéia?
Conheço muito pouco do PIC. Se quiser discutir o controle "conceitualmente", estamos por aqui. Só não vou poder ajudar muito sobre detalhes de assembly do PIC, tá?

Mas diga lá, como foi que você fez este controle?

Abraços,
Rudolf
Título: Re: Programação em linguagem Assembly ...
Enviado por: Blackmore em 02 de Dezembro de 2007, 01:05
Rudolf Waller

diga lá, como foi que você fez este controle?

é basicamente um contador, utiliza da interrupção TMR0 para decrementar de um valor acionado por botoes (cresc ou decresc) ... abaixo segue a programação da interrupção apenas ...


;TRATAMENTO DA INTERRUPÇÃO DE TMR0
   BCF   INTCON,T0IF   ;LIMPA FLAG DA INT.
   MOVLW   .256-.250   ;SETA TIMER P250MS
   MOVWF   TMR0      ;REINICIA TMR0
   INCF   TEMPO,F      ;INCREMENTA TEMPO   
   MOVLW   .15      ;COLOCA 16 EM WORK
   XORWF   TEMPO,W   ;COMPARA TEMPO COM 16
   BTFSC   STATUS,Z   ;TESTA BIT Z DO REG. STATUS
   CLRF   TEMPO      ;ZERA TEMPO
   MOVF   INTENSIDADE,W   ;MOVE INTENSIDADE PARA W
   SUBWF   TEMPO,W   ;SUBTRAI TEMPO DE INTENSIDADE
   BTFSS   STATUS,C   ;TESTA BIC C DO REG. STATUS
            ;VERIFICA SE TEMPO E MENOR QUE INTENSIDADE
   GOTO   LIGA_LAMPADA   

DESLIGA_LAMPADA
   BCF   LAMPADA      ;DESLIGA LAMPADA
   GOTO   SAI_INT

LIGA_LAMPADA   
   BSF   LAMPADA      ;LIGA LAMPADA

;FIM DA INTERRUPÇÃO

SAI_INT
   SWAPF   STATUS_TEMP,W
   MOVWF   STATUS      ;RECUPERA STATUS
   SWAPF   W_TEMP,F
   SWAPF   W_TEMP,W   ;RECUPERA W
   RETFIE         ;RETORNA DA INTERRUPÇÃO


.... estou tentando agora fazer a conversão do contator binario para os niveis de intensidade em 1 display de 7 segmentos dae sim posto um video do controle funfando ...
este mesmo programa serve para qqer controle PWM, seja um motor DC ... seja uma lâmpada ... vou mostrar com o motor pois eh o q tem na minha giga de ensaios ...

abraço! e mande sujestões ...
Título: Re: Programação em linguagem Assembly ...
Enviado por: Rudolf Waller em 02 de Dezembro de 2007, 08:03
Grande Blackmore,
é basicamente um contador, utiliza da interrupção TMR0 para decrementar de um valor acionado por botoes (cresc ou decresc)
Pelo que entendi dos comentários do programa (não conheço o assembly do PIC), este PWM pode ser ajustado de 0 a 16, é isso mesmo?

Qual é a freqüência desta interrupção? Se esta freqüência for muito baixa, você poderá ver o display de 7 segmentos piscando (flicker).
Citar
.... estou tentando agora fazer a conversão do contator binario para os niveis de intensidade em 1 display de 7 segmentos
Não entendi o que você quis dizer com "conversão do contator binario para os niveis de intensidade"...
Citar
dae sim posto um video do controle funfando ...
Você tem um galvanômetro ou um multímetro analógico? se tiver, tente fazer as alterações seguintes. Dá um efeito bem bacana, bom prá mostrar prá fazer impressionar molecada que acha que a gente manja alguma coisa (fiz aqui em casa tempos atrás):
-Altere o programa para 60 níveis os invés de 16;
-A cada 1s incremente o nível;
-Quando chegar a 60, zere o nível.

Fica parecendo um relógio de ponteiro :)
Citar
vou mostrar com o motor pois eh o q tem na minha giga de ensaios ...
Gostaria de ver, por favor :)
Citar
abraço! e mande sujestões ...
Algumas já foram :)

Abraços,
Rudolf
Título: Re: Programação em linguagem Assembly ...
Enviado por: Blackmore em 02 de Dezembro de 2007, 18:08
Rudolf Waller

Pelo que entendi dos comentários do programa (não conheço o assembly do PIC), este PWM pode ser ajustado de 0 a 16, é isso mesmo?
na verdade 15.. um dos níveis é o motor desligado!  ;D

Pelo que entendi dos comentários do programa (não conheço o assembly do PIC), este PWM pode ser ajustado de 0 a 16, é isso mesmo?
a frequência é o suficiente para que o display não fique piscando   :) ... por volta de 250KHz se não me engano ...

Não entendi o que você quis dizer com "conversão do contator binario para os niveis de intensidade"...
é que no projeto tem um display que mostra o nível no PWM em hexadecimal que vai de 1 a F ... agora estou tentando implementar isso no display multiplexado ... de 0 a 15 ... sendo que cada um toque no botão (up ou down) irá mostrar no display o nível ou "marcha" do motor!!   :)

Você tem um galvanômetro ou um multímetro analógico? se tiver, tente fazer as alterações seguintes. Dá um efeito bem bacana, bom prá mostrar prá fazer impressionar molecada que acha que a gente manja alguma coisa (fiz aqui em casa tempos atrás):
-Altere o programa para 60 níveis os invés de 16;
-A cada 1s incremente o nível;
-Quando chegar a 60, zere o nível.

tenho o multimetro sim ... vou fazer ... e mudar o prog para os 60 segundos!! hehe
boa sujestão ...

bom .. a semana começa .. a correria tb ... vamos dando o andamento na semana ok?
e obrigado ae a atenção!

abraço! (fique na espreita!)
Título: Re: Programação em linguagem Assembly ...
Enviado por: Blackmore em 15 de Dezembro de 2007, 21:06
é pessoal ... estou começando a gostar dessa brincadeira ...

"Fiz" um controle PWM do curso q terminei esta semana mas dei uma incrementada ...
O controle comanda a velocidade de um pequeno cooler e ...

1 - O display mostra a tensão que está sendo enviada para o motor
2 - O display mostra também qual a porcentagem do total da tensão está sendo enviada ao motor...

vejam o vídeo que está no link ...  http://www.youtube.com/watch?v=j0M4yIoB2ow (http://www.youtube.com/watch?v=j0M4yIoB2ow)

notem que qdo eu paro o aumento da tensão em 3,4volts o motor é ligado ... e se escuta um pequeno zumbido (além do jornal nacional) e que qdo a tensão é diminuída o zumbido vai diminuindo!!  :D

abraço!

[youtube=200,170]http://www.youtube.com/watch?v=j0M4yIoB2ow[/youtube]
Título: Re: Programação em linguagem Assembly ...
Enviado por: Rudolf Waller em 17 de Dezembro de 2007, 20:09
Grande Blackmore,
"Fiz" um controle PWM do curso q terminei esta semana mas dei uma incrementada ...
Olha só o cara!!! Comentou que pretendia fazer e horas depois fez um PWM tão inovador que imita perfeitamente o Jornal Nacional  :o

Esse tem futuro: um PWM aqui, um noticiário ali, ... E tudo isso no último dia do curso do PIC :) Aonde vamos parar deste jeito ? ? ? :D

Parabéns!

Abraços,
Rudolf
Título: Re: Programação em linguagem Assembly ...
Enviado por: Blackmore em 18 de Dezembro de 2007, 09:09
Rudolf Waller

Olha só o cara!!! Comentou que pretendia fazer e horas depois fez um PWM tão inovador que imita perfeitamente o Jornal Nacional
huahuahuahuah, isso é um segredo! huahuahua

abraço!!!
Título: Re: Programação em linguagem Assembly ...
Enviado por: morcego em 25 de Dezembro de 2007, 22:06
 Puts, copiar rotina de apostila e ou livro e dizer que fez é fácil, quero ver fazer sair o som da vinheta do jornal nacional nas modulações no motor !!
Título: Re: Programação em linguagem Assembly ...
Enviado por: Blackmore em 25 de Dezembro de 2007, 22:20
faaala caarada !!! hahaha
copiar o canário ... fiz uns cursos ... e pow ... abre a mente!! hehe
estou de férias no trabalho .. aparece aqui em casa

abraço!
Título: Re: Programação em linguagem Assembly ...
Enviado por: RAFAEL JARDINEIRO em 20 de Maio de 2009, 01:57
Ae PESSOAL  SOU NOVO AQUI NO FORUM  E GOSTARIA DE UM AUXILIO EM PROGRAMAÇÃO EM

ASSEMBLY EM COMO ESTAR FAZENDO UM bubbleSort PARA ORDENAR UMA SEQUENCIA NUMERICA

PODERIAM ME AUXILIAR ?
Título: Re: Programação em linguagem Assembly ...
Enviado por: C N C N o w ! em 20 de Maio de 2009, 07:24
... COMO ESTAR FAZENDO UM bubbleSort PARA ORDENAR UMA SEQUENCIA NUMERICA

"estar fazendo" é ruim, hein ? Gerundismo me causa urticária ...  :P :P :P

http://pt.wikipedia.org/wiki/Bubble_sort
Título: Re: Programação em linguagem Assembly ...
Enviado por: hedy em 25 de Maio de 2010, 16:36
ola tudo bem.
Alguem sabe me disser a programação para contar passageiros com o 8051 e mostrar num dysplay de lcd jhd 162a em assembly. Usando no maximo 16 passageiros, pra aparecer no lcd quantos passageiros tem e se sai um, também avisar.
Obrigado.
Título: Re: Programação em linguagem Assembly ...
Enviado por: jefferson araujo em 11 de Agosto de 2010, 16:09
Vamos reabrir esse topico de assembly!!!!
Título: Re: Programação em linguagem Assembly ...
Enviado por: C N C N o w ! em 11 de Agosto de 2010, 16:54
Vamos reabrir esse topico de assembly!!!!

Fique à vontade ...