Ir ao conteúdo

Conflito entre PSI e PROTEUS (simulador)


Agricio

Posts recomendados

Postado

Saudações a todos

Como o Paulo desapareceu de vez, não tem outro jeito a não ser abrir esse tópico pedindo ajuda a quem puder ajudar quanto aos simuladores do PSI e PROTEUS.

No simulador do PSI funciona bem, normal, conforme pode ser visto na figura

Veja o código:

Define CONF_WORD = 0x3f72
Define CLOCK_FREQUENCY = 4
AllDigital
OPTION_REG = 0x07 'Depois disso vem a cofiguração do DISPLAY LCD
Define LCD_BITS = 4
Define LCD_DREG = PORTD
Define LCD_DBIT = 4
Define LCD_RSREG = PORTD
Define LCD_RSBIT = 0
Define LCD_RWREG = PORTD
Define LCD_RWBIT = 1
Define LCD_EREG = PORTD
Define LCD_EBIT = 2
Define LCD_READ_BUSY_FLAG = 1
TRISD = 0x00 'Depois disso vem a definição da conexão 12C
Symbol sda = PORTC.4
Symbol scl = PORTC.3 'Depois disso vem a definição das varáveis do programa
Dim endereco As Word
Dim dado As Byte
Dim i As Byte
Lcdinit 3 'Inicializa o display sem cursor de nenhum tipo
Lcdcmdout LcdDisplayOn 'Liga o display
Lcdcmdout LcdClear 'Apaga tudo o que tiver no display
Lcdout "NOVO PROJETO"
WaitMs 50

Porém quando monto o circuito no PROTEUS o display não mostra nada.

Vejam a figura

O que estará errado?

Obs: Epero ter colocado as imagens corretamente

Agricio

Postado

Clica duas vezes sobre o 16f877a no proteus e tira uma foto da tela q vai abrir e posta aqui.

Veja q no proteus você tem warnings... aquele simbola amarelo na parte de baixo.

Clica sobre ele e poste aqui as mensagens.

Falou

Postado

Ta vendo na parte inferior da tele tem um triangulo com uma interrogação amarela,de dois cliques nele e coloca ai pra gente quais os erros encontrados.

Postado

Matheus

A linguagem é basic pelo PSI.

Quanto as ligações está de acordo com a lógica do programa. Assim mesmo já inverti essas ligações várias vêzes "só que sem lógica; na adivinhação,"

Eu acho que tem alguma coisa que precisa ser habilitada e que não encontro.

Tem como você postar algo simplizinho com LCD já com o código p/ eu fazer umas comparações??

Agricio

Postado

Agicio,

Tambem uso o PSI e tenho o mesmo problema que voce.

Já pedi ajuda aqui no forum mas até agora nao consegui resolver.

Mas descobri que tem aver com o fato de estar usando o LCD com nibble(4 BITS para os dados) ,então quando vou usar o PROTEUS modifico tudo pra rodar com 8 BITS.

Acredito que pode ser alguma configuração que tem que ser feita no proteus pra tornar o codigo "HEX" gerado no PSI compativel com o PROTEUS, mas ainda nao sei como fazer.

Modifica ai pra voce ver, mas se descobrir o real motivo me avisa ok.

jfeliciano

Postado

Obrigado Feliciano

Vou continuar na luta então. Valeu pela dica da modificação dos bits.

Continuo aceitando dicas.

Agricio

Postado
Obrigado Feliciano

Vou continuar na luta então. Valeu pela dica da modificação dos bits.

Continuo aceitando dicas.

Agricio

Agricio,

Nao por isso.

Mas funcionou ai?

jfeliciano

Postado

Aqui eu mudei esses códigos de tudo quanto foi jeito. O PC já chegou até a travar e tive que cancelar o que estava fazendo.

Infelizmente parece que o PSI só entende a liguagem BASIC e ASM e p/ complicar ainda mais, dá impressão que mais de 95% dos programadores só entendem a liguagem C.

O circuito que montei funciona normalmente tanto no simulador PSI quanto FÍSICAMENTE; apenas o simulador PROTEUS se recusa a entender os códigos.

Continuo aceitando dicas

Agricio

Postado
Aqui eu mudei esses códigos de tudo quanto foi jeito. O PC já chegou até a travar e tive que cancelar o que estava fazendo.

Infelizmente parece que o PSI só entende a liguagem BASIC e ASM e p/ complicar ainda mais, dá impressão que mais de 95% dos programadores só entendem a liguagem C.

O circuito que montei funciona normalmente tanto no simulador PSI quanto FÍSICAMENTE; apenas o simulador PROTEUS se recusa a entender os códigos.

Continuo aceitando dicas

Agricio

Ola Agricio,

voce modificou o projeto pra testar o LCD com 8 bits?

jfeliciano

Postado

Já aterrei Felipe. Foi uma das primeiras coisas que fiz. "vou tentar novamente."

Eu tentei mudar os bits como o Feliciano disse, mas aí não funcionou nem no PSI.

Agricio

Postado
Já aterrei Felipe. Foi uma das primeiras coisas que fiz. "vou tentar novamente."

Eu tentei mudar os bits como o Feliciano disse, mas aí não funcionou nem no PSI.

Agricio

Ola Agricio,

A coisa ta feia mesmo!!!!

Tambem fiz os teste aqui aterrando os pinos livres mas ficou na mesma.

Mas com 8Bits funciona sem problemas, veja ai nas imagem, usei o seu propio exemplo, apenas reconfigurado pra 8BITS.

post-667083-13884959951989_thumb.jpg

post-667083-13884959952991_thumb.jpg

Postado

So uma perguntinha besta (por favor nao me xinguem ,rs) mas vocês lembraram que em modo 4 bits a inicializacao muda, assim como o comando para inicializacao do modo de comunicacao?

fico no aguardo. Vou fazendo o que posso enquanto omestre Paulo num aparece kkkk

Abs.

Postado
So uma perguntinha besta (por favor nao me xinguem ,rs) mas vocês lembraram que em modo 4 bits a inicializacao muda, assim como o comando para inicializacao do modo de comunicacao?

fico no aguardo. Vou fazendo o que posso enquanto omestre Paulo num aparece kkkk

Abs.

Ola Felipe_Eletronic,

voce tambem tirou umas ferias boas aqui do forum hem!!!

Que bom que esta de volta ,e obriagado pela força que esta dando ai na ausência do Prof. Paulo.

O problema e que nao temos muito controle de como o compilador (PSI) trata estas mudanças de 8 pra 4 Bits, apenas informamos se estamos usando 8 ou 4 Bits, e se é Bits baixo ou alto .

A nossa briga é porque na simulaçao do propio PSI e no mundo real funciona sem problemas, só da "pau" com o Proteus

Jfeliciano

Postado

Eita no real funciona, bem então menos mal.

Bom quanto ao Proteus deixa eu ver...ahh vi a imageem postada, e percebi que o Proteus esta entendendo q comandos estão sendo enviados com o LCD em busy.

Nesse caso, tente fazer o seguinte, para cada comando ou instrução enviada ao LCD coloquem em seguida um delay de 1ms.

vejam o que acontece.

Abs.

Postado

Felipe

Já tem o de 50, veja aí. WaitMs 50

Define CLOCK_FREQUENCY = 4
AllDigital
OPTION_REG = 0x07 'Depois disso vem a cofiguração do DISPLAY LCD
Define LCD_BITS = 4
Define LCD_DREG = PORTD
Define LCD_DBIT = 4
Define LCD_RSREG = PORTD
Define LCD_RSBIT = 0
Define LCD_RWREG = PORTD
Define LCD_RWBIT = 1
Define LCD_EREG = PORTD
Define LCD_EBIT = 2
Define LCD_READ_BUSY_FLAG = 1
TRISD = 0x00 'Depois disso vem a definição da conexão 12C
Symbol sda = PORTC.4
Symbol scl = PORTC.3 'Depois disso vem a definição das varáveis do programa
Dim endereco As Word
Dim dado As Byte
Dim i As Byte
Lcdinit 3 'Inicializa o display sem cursor de nenhum tipo
Lcdcmdout LcdDisplayOn 'Liga o display
Lcdcmdout LcdClear
Lcdout "NOVO PROJETO"
WaitMs 50
Lcdcmdout LcdLine2Home
Lcdout "ELETRONICA BARBO"
WaitMs 50
Lcdcmdout LcdClear
Lcdout "ARARAQUARA - SP"

Agricio

Postado

Agricio,

Acho que o Felipe se referiu aos "Define", que não esta declarado ai nos exemplos mas neste caso acho que compilador assume os valores "default".

Define LCD_COMMANDUS = 100 '(100-65535)Tempo de espera depois de executar um comando do lcd em uSeg.

Define LCD_DATAUS = 50 '(50-255)Tempo de espera depois de enviar um dado para LCD em uSeg.

Define LCD_INITMS = 2 '(2-65353)Tempo de espera depois de inicializar o Display, so executa uma vez

Mas tambem já mudei eles pra tudo que foi valor e nada, mas pode brincar com eles ai tambem ,quem sabe tem mais sorte que eu.

Observei uma coisa se mudar "Define LCD_READ_BUSY_FLAG = 1" pra " 0" ele continua sem fucionar, mais nao dá mais aquele aviso.

Postado

Feliciano,

tudo isso aí eu já havia feito por aqui. Na verdade eu não sei mais o que mudar. Quanto ao seu exemplo de mudanças de bits eu ainda estou batendo cabeça por aqui; não consegui fazer funcionar não. No PSI dá erro. "continuo tentando"

Segundo a afirmação de um colega aqui, é preciso abrir o MICROC , fazer e compilar o programa em BASIC DENTRO DO MICROC, depois jogar no PROTEUS pelo MICROC.

O problema aqui p/ mim é que o meu MICROC não tem nenhum compilador BASIC e ele não reconhece o PSI. "Sei lá"

Agricio

Postado
Feliciano,

tudo isso aí eu já havia feito por aqui. Na verdade eu não sei mais o que mudar. Quanto ao seu exemplo de mudanças de bits eu ainda estou batendo cabeça por aqui; não consegui fazer funcionar não. No PSI dá erro. "continuo tentando"

Segundo a afirmação de um colega aqui, é preciso abrir o MICROC , fazer e compilar o programa em BASIC DENTRO DO MICROC, depois jogar no PROTEUS pelo MICROC.

O problema aqui p/ mim é que o meu MICROC não tem nenhum compilador BASIC e ele não reconhece o PSI. "Sei lá"

Agricio

Agricio,

É este problema tambem ja me fez perder alguns cabelos dos poucos que me resta hahahah.

Este lance ai do MICROC ou é "MICROBASIC" ?,anida nao vi nada a respeito.

Qual erro esta dando ai no PSI?

Mas com 8 bits funciona sim, voce deu uma olhada nas imagens que postei?

Se nao estiver legível diga que posto o codigo que usei.

Postado

Feliciano

Funcionou sim. Tem uma diferença entre as velocidades.

P/ rodar a contento no Proteus eu mudei os WaitMS de 10 p/ 1000. Só que lá no PSI ficou uma tartaruga de lerdo.

Veja aí na imagem do Proteus

Agricio

Postado
Feliciano

Funcionou sim. Tem uma diferença entre as velocidades.

P/ rodar a contento no Proteus eu mudei os WaitMS de 10 p/ 1000. Só que lá no PSI ficou uma tartaruga de lerdo.

Veja aí na imagem do Proteus

Ué!!! Por que a imagem não aparece???????

Agricio

Ola Agricio,

Aqui nao apareceu a imagem!

Mas no PSI é isto mesmo, no propio manual do PSI manda usar tempos curtos(1-10ms) pra simulaçao.

Pra nao perder tempo mudando os delays de todas as linhas eu uso,

"Define SIMULATION_WAITMS_VALUE = 1" na hora de simular no PSI,assim so tenho que habilitar ou desabilitar apenas esta linha.

Mas o nosso problema é mesmo com o PSI, e nao no PROTEUS.

Fiz este mesmo exemplo no PICBASICpro so pra matar a curiosidade, e rodou normal no Proteus.

Talves seja bom fazer um contato com cara do PSI para saber a opiniao dele a respeito do fato.

Postado

Feliciano!

Ali acima onde eu escreví MICROC, na verdade é MPLAB IDE.

Obs: Estou evitando "editar" pois parece que a cada edição as imagens desaparecem. Estou tentando descobrir o que está havendo.

Agricio

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