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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
05/25/09 09:41
Read: times


 
#165575 - Project using 89s52
Hello guys!I am a newcomer in the area of microcontroller but i have to do a project using 89s52 .It's about controlling the access of an automobile in a parking area. I have at my disposal a Parallax Rfid card reader, a servo motor Futaba s3003,the 89s52 uC integrated on a EEDT 5.0 board.
I've connected the rfid to the uC and wrote a code that is supposed to get a tag ID from the reader,compare it with a tag ID kept in memory and if the two ID's are the same to make a LED glow.But it's not working.If there is anybody that can help me figure out what is wrong with my code please don't hesitate to reply to this thread.
Many thanks!
COUNTER:DS 1

RECEIVED BIT 00h              ;this is the bit that confirms the receival of 10 bytes
VALID_TAG BIT 01h             ;this is the bit that confirms the receival of a valid tag
BYTE: DS 10                   ;in this variable i will store the values of the incoming bytes
BYTES: DB 30h,34h,31h,35h,44h,38h,41h,31h,46h,31h   ;Is this correct???
                                                     ;this is a valid tag ID

AJMP START
        
START:  MOV TMOD,#20h
        MOV SCON,#50h
        MOV TH1,#0F4h
        MOV TL1,#0F4h
        SETB TR1

        MOV COUNTER,#01h    ;init counter
        CLR RECEIVED
        CLR VALID_TAG
        SETB P2.0                ;the LED must be in off state

FIRST_BYTE:     JB TI,TRANS      ;if transmission is over jump to trans
                MOV A,SBUF
                CJNE A,#0Ah,LAST_BYTE   ;check first byte
                MOV COUNTER,#01h
                AJMP RECEV

LAST_BYTE:      CJNE A,#0Dh,SEC_BYTE     ;check 12-th byte
                 MOV COUNTER,#01h
                AJMP RECEV

SEC_BYTE:       MOV R1,COUNTER            ;second byte
                CJNE R1,#01h,TRD_BYTE
                MOV BYTE,A
                AJMP INC

TRD_BYTE:       CJNE R1,#02h,FRTH_BYTE    ;third byte
                MOV BYTE+1,A
                AJMP INC

FRTH_BYTE:      CJNE R1,#03h,FIFTH_BYTE   ;fourth byte    
                MOV BYTE+2,A
                AJMP INC

FIFTH_BYTE:     CJNE R1,#04h,SIXTH_BYTE     ;fifth byte
                MOV BYTE+3,A
                AJMP INC

SIXTH_BYTE:       CJNE R1,#05h,SEVENTH_BYTE  ;sixth byte
                MOV BYTE+4,A
                AJMP INC

SEVENTH_BYTE:       CJNE R1,#06h,EIGHT_BYTE   ;seventh byte
                MOV BYTE+5,A
                AJMP INC

EIGHT_BYTE:       CJNE R1,#07h,NINTH_BYTE     ;eight byte  
                MOV BYTE+6,A
                AJMP INC

NINTH_BYTE:       CJNE R1,#08h,TENTH_BYTE     ;ninth byte
                MOV BYTE+7,A
                AJMP INC

TENTH_BYTE:       CJNE R1,#09h,ELEVENTH_BYTE  ;tenth byte
                MOV BYTE+8,A
                AJMP INC

ELEVENTH_BYTE:       CJNE R1,#0Ah,INC         ;eleventh
                MOV BYTE+9,A
                SETB RECEIVED
                AJMP INC       

INC:    INC COUNTER

RECEV:  CLR RI
        RET

TRANS:  CLR TI
        RET

CHECK:  JB RECEIVED,COMPARE         ;if we received a 10 bytes tag ID jump to compare
        RET

COMPARE:        MOV A,BYTES       ;compare the content of what we received with what we have in memory
                CJNE A,BYTE,FGG    ;the comparisson is done at a byte-by-byte level
                MOV A,BYTES+1
                CJNE A,BYTE+1,FGG
                MOV A,BYTES+2
                CJNE A,BYTE+2,FGG
                MOV A,BYTES+3
                CJNE A,BYTE+3,FGG
                MOV A,BYTES+4
                CJNE A,BYTE+4,FGG
                MOV A,BYTES+5
                CJNE A,BYTE+5,FGG
                MOV A,BYTES+6
                CJNE A,BYTE+6,FGG
                MOV A,BYTES+7
                CJNE A,BYTE+7,FGG
                MOV A,BYTES+8
                CJNE A,BYTE+8,FGG
                MOV A,BYTES+9
                CJNE A,BYTE+9,FGG
                SETB VALID_TAG

FGG:    RET

LED_CHECK:      JB VALID_TAG,GLOW_LED   ;if tag ID is a valid tag then make a LED glow
                RET

GLOW_LED:       CLR P2.0
                SJMP GLOW_LED

END

 





List of 54 messages in thread
TopicAuthorDate
Project using 89s52            01/01/70 00:00      
   RET (Where?)            01/01/70 00:00      
      Loops?            01/01/70 00:00      
         Loops?            01/01/70 00:00      
            with a quick glance            01/01/70 00:00      
               with a quick glance            01/01/70 00:00      
                  search for ...            01/01/70 00:00      
            Loops Something like this            01/01/70 00:00      
               School work?            01/01/70 00:00      
                  Nope            01/01/70 00:00      
               Loops Something like this            01/01/70 00:00      
                  ?...Doesnot Work...?            01/01/70 00:00      
                     ?...Doesnot Work...?            01/01/70 00:00      
                        Correct            01/01/70 00:00      
                        You sure you get a line feed before RFID?            01/01/70 00:00      
                            You sure you get a line feed before RFID?            01/01/70 00:00      
                              Try This            01/01/70 00:00      
                                 Try This            01/01/70 00:00      
                                 error            01/01/70 00:00      
                                    it's bible time            01/01/70 00:00      
                                       it's bible time            01/01/70 00:00      
                                    Is it ERROR or DOUBT???            01/01/70 00:00      
                                       Is it ERROR or DOUBT???            01/01/70 00:00      
                                 Compare            01/01/70 00:00      
                                    Simulate your function.            01/01/70 00:00      
                                       Simulate your function.            01/01/70 00:00      
                                          Use the free Keil C compiler Evaluation            01/01/70 00:00      
                                    COMPARE            01/01/70 00:00      
                                       compare            01/01/70 00:00      
                                          Still not out of time for C            01/01/70 00:00      
                                             Still not out of time for C            01/01/70 00:00      
                                                Read up on pointer            01/01/70 00:00      
                                                   Read up on pointer            01/01/70 00:00      
                                                      Me or you?            01/01/70 00:00      
                                                   Or do not use a pointer            01/01/70 00:00      
                                                      working code            01/01/70 00:00      
                                                         Describe your work process            01/01/70 00:00      
                                                            v            01/01/70 00:00      
                                                               Did you read? Did you debug?            01/01/70 00:00      
                                                         Why dont you define correct id in "code" space            01/01/70 00:00      
                                                            Hoping to get someone relegated?            01/01/70 00:00      
   Reading or Transmitting Data            01/01/70 00:00      
      Reading or Transmitting Data            01/01/70 00:00      
   a trip to the wild blue younder            01/01/70 00:00      
      This is where it gets lost            01/01/70 00:00      
   The fundamental problem is...            01/01/70 00:00      
      Same as its always been,            01/01/70 00:00      
         Yep I cannot think            01/01/70 00:00      
            Yep I cannot think            01/01/70 00:00      
               Why too late?            01/01/70 00:00      
            for a simple task ...            01/01/70 00:00      
               More than one way to skin a cat            01/01/70 00:00      
                  my $0.02            01/01/70 00:00      
                     If you can not code it in ASM ...            01/01/70 00:00      

Back to Subject List