Assembler vraagje

Hallo, Ik heb een voorbeeld programma voor het sturen van een LC-display, maar dat word gestuurd via poort 4.0 = RS,

4.1 = R/W, 4.2 = E en P1 voor de data. Op mijn boardje zit echter een connector om een LC-display rechtstreeks te sturen. A0 = RS, A1 = R/W, A15 = E en P0 voor de data. In het voorbeeld programma zit ik met het volgende:

LCD_E equ P4.2 ...enkele regels code's en dan clr LCD_E ; Enable line mov r0, #30h ; step 1 setb LCD_E ; start Enable pulse clr LCD_E ; end Enable pulse

Nu zou ik het voorbeeldprogramma willen gebruiken maar ipv P4 te sturen zou het bij mij via de adressen moeten gaan. Kan er iemand voor mij de voorbeeld regels aanpassen zodat deze werken rechtstreeks via die adressen die op mijn boardje voorhanden zijn via de LC-display connector, in plaats van de P4?

Hartelijk dank

Reply to
Christophe Vanhouteghem
Loading thread data ...

Ik geloof dat je iets heel belangrijks vergeet te vermelden.

--
Met vriendelijke groet,

   Maarten Bakker.
Reply to
maarten

"Christophe Vanhouteghem" schreef in bericht news:c209lt$5hh$ snipped-for-privacy@news.worldonline.be...

Dat wordt dan gewoon de data naar het externe geheugen schrijven. movx. Het te gebruiken adres moet A15 hoog hebben, dus elk adres boven 0x7fff is bruikbaar. R/W moet ook goed staan, dus bijv 0x8002. RS, hoe zat dat ook alweer, is dat Command/Data ? Moet dus ook goed gezet worden, door het juiste adres te gebruiken. Dus afhankelijk of het een commandbyte is of een databyte schrijf je naar 0x8003 of 0x8002. Of zoiets. Is dit een 8051 of variant, vast en zeker?

Mvg, Frank.

Reply to
Frank Bemelman

Beste Christophe,

dat met die adressen lijkt me een tricky gebeuren, het plan zal waarschijnlijk zijn om de data voor het display "klaar" te zetten op de P0 poort en vervolgens een access te doen naar de juiste adressen. Ik vrees dat je dan niet de timing haalt, de signalen RS en R/W moeten tenminste 140nS VOOR het actief worden van E stabiel zijn, ook de holdtime zal niet kloppen, 20nS na E inactief mogen RS en R/W veranderen. Gezien alle genoemde signalen met de address bus worden gestuurd zijn ze in het optimale geval hooguit TEGELIJK valid, en heb je dus aan beide zijden van de E pulse een probleem. Als het een 51 core is zou het wel kunnen als je hem intern de instructies op laat halen en de address pinnen als I/O poort gebruikt. In dat geval zou je met je eigen voorbeeld uit de voeten kunnen.

Als je instructies van buiten komen (externe eprom) zal de addressbus continue in beweging zijn tijdens het executeren van instructies..

De timing info komt uit het Hitachi character LCD module databook.

Succes met het project.

Peter, PE1DTN

>
Reply to
Peter de Vroome

"Christophe Vanhouteghem" schreef in bericht news:c209lt$5hh$ snipped-for-privacy@news.worldonline.be...

?processor

Reply to
edg

Wat vergeet ik dan te vermelden? schreef in berichtnieuws c20at3$maj$ snipped-for-privacy@news.tudelft.nl...

Reply to
Christophe Vanhouteghem

Frank Bemelman schreef in berichtnieuws

4043bb9c$0$63295$ snipped-for-privacy@news.wanadoo.nl...

Bedankt voor de hulp, maar hoe moet het dan met: setb LCD_E

Reply to
Christophe Vanhouteghem

Je vergeet van onder te quoten, maar daar zal ik niet over zeuren. Ik bedoel het type processor. Als je dat alvast in het subject zet, trek je wellicht meer aandacht van kenners.

--
Met vriendelijke groet,

   Maarten Bakker.
Reply to
maarten

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.