Página 1 de 1

Dúvidas

MensagemEnviado: 02 Dez 2009 16:55
por btpavao
Galera,

Tô brincando com um LCD que achei aqui em casa, o modelo é WH2002A da WINDSTAR, alguém sabe me dizer se o controlador desse LCD é compatível com o HD44780? Tô usando o CY8C27443-24PXI e ele tem um módulo LCD, porém é padrão HD44780. Fiz alguns testes porém não aparece nada!

Outra dúvida é, como faço para setar apenas 1 bit em um port de saída programando em assembler? Por exemplo, no PIC temos o BSF (Sei que o PIC é RISC, e PSoC é CISC), e no PSoC só temos o MOV, e aí, como fazer???

Valeu!!!

MensagemEnviado: 15 Dez 2009 07:42
por Ricardo_Franco
Ola Senhores.
Sobre o LCD - Eu não conheço este controlador de LCD, seria interessante você arrumar algum datasheet dele para descobrir se os pinos são compativeis com o LCD Hitach .. ou arrumar um outro LCD Hitach para descobrir se o problema está no seu software, na ligação dos pinos do LCD ou o controlador realmente não é compativel com o hitach.

Sobre acesso a bit - Infelzimente o PSoC não permite acesso a bit direto do port, você deve acessar o port todo, em linguagem C eu consegui fazer acesso a bit utilizando uma diretiva do compilador (#pragma IO_Port), mas não sei como ficaria isso em assembly. Uma sugestão é trabalhar com mascara de bits, faça uma lógica AND/OR para acessar somente o bit que lhe interessa.

MensagemEnviado: 16 Dez 2009 15:00
por btpavao
Ricardo,

Obrigado pela resposta!

Referente ao LCD, comprei um com microcontrolador Hitach HD44780, e está funcionando.

Já o acesso direto ao bit, a saída é uma lógica simples com OR, como vc havia sugerido. Por exemplo

[/code]mov A, reg[PRT2DR]
or A,02h
mov reg[PRT2DR],A

Onde 02h é a máscara, o(s) bit(s) que quero ativar vão pra 1. No exemplo o bit 1 é setado e os demais permanecem como estavam.

Valeu!!![/quote]

MensagemEnviado: 18 Dez 2009 18:26
por btpavao
A nível de curiosidade...

Nesse link (http://www.cypress.com/?id=2314) observando, conclui que no exemplo que coloquei

Código: Selecionar todos
mov A, reg[PRT2DR]
or    A,02h
mov    reg[PRT2DR],A


Nem é preciso ler o port e jogar em A, pois a opreção OR tem como variável de retorno o primeiro argumento, sendo assim o código pode ser

Código: Selecionar todos
or reg[PRT2DR],02h


que tem o mesmo efeito