Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
06/02/06 08:49
Modified:
  06/02/06 09:56

Read: times


 
#117583 - Revised Code
Responding to: ???'s previous message
I revised the code/comments after suggestions from Jan:
       DSEG  AT  30h    	;this tells the compiler to start placing data from 30h
NrValues    EQU  8       	;const nrvalues=8;
OldValues:  DS   NrValues       ;reserve space for OldValues
RPin:       DS   1       	;reserve space for RPin (a counter)
AStore:     DS   1       	;reserve space where A will be stored temporarily

        CSEG             	;now we tell the compiler that we are going to write code
        ORG 0
	MOV P3,#255		;Making P3 Input Port

	MOV OldValues+0,#255	;Initilising memory locations for storing output 
	MOV OldValues+1,#255	;from the 8 latches
	MOV OldValues+2,#255	;and loading them with initial values
	MOV OldValues+3,#255	;which indicate all signals are low
	MOV OldValues+4,#255
	MOV OldValues+5,#255
	MOV OldValues+6,#255
	MOV OldValues+7,#255
				;three nested loops needed: one for the bits, 
				;one for the 8 bytes, one which repeats the all 
				;infinitely
LOOP:
	MOV R0,#OldValues+7	;location R0 is Rlatch
POLL:
        MOV A,R0
        ADD A,#-OldValues	;calculate latch Nr
        MOV P1,A		;set the latch Nr for the decoder
        MOV RPin,#8		;there are 8 bits in a byte
	MOV A,P3		;Reading data from Port3
	ANL A,@R0		;ANDing A with the locations 8 to 1 which will store CPL of P3
CHKPIN:	RLC A			;Get the Pins thatwent form LOW to HIGH
	JC WRITE
GETBAK:	DJNZ RPin,CHKPIN
	MOV A,P3		;Since the output is latched, it has not changed since last time
	CPL A
	MOV @R0,A		;Moving the data of the respective latches to the 
				;respective registers
        CJNE R0,#OldValues-1,POLL
     	JMP LOOP		;repeat infinitely this loop

WRITE:	
        MOV AStore,A		;storing the value of A in 20 for further use
	MOV A,R0
	ADD A,R0		;Adding contents of R0 to A seven more times
	ADD A,R0		;I read that using MUL always clears the flag
	ADD A,R0		;And I dont want to do that
	ADD A,R0
	ADD A,R0
	ADD A,R0
	ADD A,R0
	ADD A,10
	MOV P2,A		;Sending data to Output Port2
	MOV A,AStore		;Returning A its original Value
	JMP GETBAK
	END


List of 43 messages in thread
TopicAuthorDate
Another standard problm in Assembly Lang            01/01/70 00:00      
   many ways            01/01/70 00:00      
      lookup table?            01/01/70 00:00      
         yup            01/01/70 00:00      
            hummmm            01/01/70 00:00      
   algorithm!            01/01/70 00:00      
   OK            01/01/70 00:00      
      forget the lookup table            01/01/70 00:00      
         no language dependency            01/01/70 00:00      
            abstraction            01/01/70 00:00      
            Direct Test            01/01/70 00:00      
               did you take it at Grossmont?            01/01/70 00:00      
               Wrong mark            01/01/70 00:00      
   just wonder            01/01/70 00:00      
      homework            01/01/70 00:00      
         No not homework            01/01/70 00:00      
         Bit 3?            01/01/70 00:00      
            Depends            01/01/70 00:00      
               reverse bit numbering            01/01/70 00:00      
                  reverse bit numbering: mirror            01/01/70 00:00      
               It's logical...            01/01/70 00:00      
            Thks            01/01/70 00:00      
               Unconventional            01/01/70 00:00      
                  Yes, now I know            01/01/70 00:00      
                     oops            01/01/70 00:00      
                     Radix notation            01/01/70 00:00      
   Why "Standard"?            01/01/70 00:00      
      give it in C            01/01/70 00:00      
         Finally Some Code            01/01/70 00:00      
            formatted            01/01/70 00:00      
               Much nicer            01/01/70 00:00      
                  OH boy            01/01/70 00:00      
                     No I havent            01/01/70 00:00      
               edited            01/01/70 00:00      
                  No Prob            01/01/70 00:00      
               Yes.            01/01/70 00:00      
                  try & ask            01/01/70 00:00      
                     OK            01/01/70 00:00      
                     Many Questions            01/01/70 00:00      
                        Q&A            01/01/70 00:00      
                           Man! That just made my day!            01/01/70 00:00      
               Revised Code            01/01/70 00:00      
   hi abhishek!!!            01/01/70 00:00      

Back to Subject List