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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
06/03/05 18:24
Read: times


 
#94300 - compares on the 8051
Responding to: ???'s previous message
Hello Ofir
If you're using Assembler then use instruction CJNE then check the Carry bit to see which one is greater than. Below is the partial copy from "bible"

Function: Compare and Jump if Not Equal
Description: CJNE compares the magnitudes of the first two operands, and branches if their values are not equal. The
branch destination is computed by adding the signed relative-displacement in the last instruction byte to
the PC, after incrementing the PC to the start of the next instruction. The carry flag is set if the unsigned
integer value of <dest-byte> is less than the unsigned integer value of <src-byte>; otherwise, the carry is
cleared. Neither operand is affected.
The first two operands allow four addressing mode combinations: the Accumulator may be compared with
any directly addressed byte or immediate data, and any indirect RAM location or working register can be
compared with an immediate constant.

Example: The Accumulator contains 34H. Register 7 contains 56H. The first instruction in the sequence,

CJNE R7,#60H,NOT_EQ ; ... .... ; R7 = 60H.
NOT_EQ: JC REQ_LOW ; IF R7 < 60H.
; ... .... ; R7 > 60H.

sets the carry flag and branches to the instruction at label NOT_EQ. By testing the carry flag, this
instruction determines whether R7 is greater or less than 60H.
If the data being presented to Port 1 is also 34H, then the instruction,

WAIT: CJNE A,P1,WAIT

clears the carry flag and continues with the next instruction in sequence, since the Accumulator does
equal the data read from P1. (If some other value was being input on P1, the program will loop at this
point until the P1 data changes to 34H.)


Hope this helps

Regard,
T.L

List of 23 messages in thread
TopicAuthorDate
compares on the 8051.            01/01/70 00:00      
   CJNE            01/01/70 00:00      
      sorry, I forgot            01/01/70 00:00      
   compares on the 8051            01/01/70 00:00      
      Not so good...            01/01/70 00:00      
         Comparing            01/01/70 00:00      
            where is the bible?            01/01/70 00:00      
               Here it is            01/01/70 00:00      
               Compare value            01/01/70 00:00      
                  the code            01/01/70 00:00      
                     Another method            01/01/70 00:00      
                        what?            01/01/70 00:00      
                           No            01/01/70 00:00      
                              There are more errors!            01/01/70 00:00      
                                 anyone??            01/01/70 00:00      
                                 There are more errors!            01/01/70 00:00      
                                    YOU ARE GREAT!!! THANKS!!!            01/01/70 00:00      
                                       Simulator            01/01/70 00:00      
                                       search..            01/01/70 00:00      
                                          Compare tips            01/01/70 00:00      
         Try these            01/01/70 00:00      
            sensors            01/01/70 00:00      
   Macros            01/01/70 00:00      

Back to Subject List