ik wil een assembler programma'tje voor een At89S8252 maken maar kwam wat problemen tegen. kan iemand mij vertellen hoe ik het volgende maak in assembler:

code die ik heb:

;Serial port access       (COMPORT.ASM)
;11,059MHz, 9600 Baud
#include 8051.H
         .org 0000H

INIT     clr   TR1             ;stop timer 1 
         mov   TH1,#0FAH       ;256-6: 9600 baud
         mov   TL1,#0FAH
         anl   TMOD,#0FH       ;Timer1: 8 bit auto-reload
         orl   TMOD,#20H
         setb  TR1             ;start timer 
         mov   SCON,#50H       ;InitRS232
         setb  TI
         orl   PCON,#80H       ;SMOD=1

RX       mov   A,SBUF
         clr   RI
         ret

TX       clr   TI
         mov   SBUF,A
         ret
        .end

er is een register, R7, als RI 1 wordt, moet hij kijken welke waarde er in dit register staat, dit is een commando, en RI 0 maken, en dan moet hij een bepaalde opdracht uitvoeren:

10 : wacht op een waarde, deze komt in R7, als RI 1 wordt, is deze binnen dan moet hij RI 0 maken, de ontvangen waarde op 8 bits poort P1 zetten, en teruggaan naar het begin om op een nieuw commando te wachten.

11 : zelfde als bij 10, maar dan moet hij de ontvangen waarde op poort P3 zetten.

12 : Poort P1 uitlezen, deze in de accu zetten, en dan TX aanroepen. dan weer op een nieuw commando wachten.

13 : zelfde als bij 12, maar dan moet hij poort P3 uitlezen.

20 : een AD converter uitlezen, in de accu plaatsen en TX aanroepen. dan o een nieuw commando wachten.

hoe ik de waarden in P1 en P3 zet weet ik wel, hoe ik ze uit moet lezen lukt ook wel, de ADC nog niet geprobeert, maar lukt denk ik wel.
Maar hoe ik de wachtlus moet maken met de voorwaardelijke acties zou ik niet weten.

please help!

Move Requests -> Digitaal

ik snap je "routines" niet helemaal...

Maar met CJNE kan je voorwaardelijke lussen opbouwen...

daar kan ik inderdaad wel iets mee, bedankt, ik ga es kijken of het lukt.