This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

need help with project

we have taken up the project automatic room light controller with visitor counter using at89s52..we have rigged up the circuit and have written the code too..but when it is dumped into the controller and executed the kit does not produce the expected result..we are getting random numbers like 17,99,etc and there is no decrementation happening at all..could you please go thro' the below code and point out what might be the mistake..the code is as follows:

LIGHT    EQU    P2.5
DIS1      EQU    P2.7
DIS2      EQU    P2.6
SEN1     EQU   P1.0
SEN2     EQU   P1.1
ORG      00H
;************************************************************************************
;MAIN

MOV  R4,#00H
MOV  R5,#00H
MOV  P0,#0FFH   ;make P0 output
MOV  P1,#0FFH   ;make P1 input
MOV  P2,#0FFH   ;make P2 output
JNB    SEN1,UPPC
JNB    SEN2,DOWNC
AJMP DISPLAY

UPPC:
        JB  SEN2,DISPLAY
        INC   R4
        CJNE  R4,#01H,UPP1
        SETB   LIGHT
        SETB   DIS1
        SETB   DIS2
              CALL CONV
        AJMP   DISPLAY

UPP1:
        CALL   CONV
        AJMP DISPLAY


DOWNC:
        JB  SEN1,DISPLAY
              DEC  R4
        CJNE  R4,#00H,DOWN1
        CLR   LIGHT
        AJMP   DISPLAY

DOWN1:
        CALL    CONV
        AJMP    DISPLAY

;*******************************************************************************
;CONVERSION
CONV:

        MOV   A,R4
        MOV   B,#10d
        DIV      AB
        RR       A
        RR        A
        RR        A
        RR        A
        ADD     A,B ;to get both the bcd digits in one register
        MOV   R5,A
        RET
;**********************************************************************************
;DISPLAY
DISPLAY:

        MOV    P2, #80H
        MOV    A, R5
        ANL     A, #0F0H
        CALL   TRANS
        MOV   P0,A
        CALL    DELAY
        MOV    P2,#40H
        MOV    A,R5
        ANL      A,#0FH
        RR        A
        RR        A
        RR         A
        RR         A
        CALL     TRANS
        MOV    P0,A
        CALL     DELAY
        JNB  SEN1,UPPC
        JNB  SEN2,DOWNC
        AJMP  DISPLAY
;*********************************************************************************
;TO DECIDE THE NUMBER TO BE DISPLAYED
TRANS:
        CJNE    A,#00H,ONE
        MOV    A,#0C0H
        RET
ONE:
        CJNE    A,#10H,TWO
        MOV    A,#0F9H
        RET
TWO:
        CJNE   A,#20H,THREE
        MOV   A,#0A4H
        RET
THREE:
        CJNE     A,#30H,FOUR
        MOV    A,#0B0H
        RET
FOUR:
        CJNE  A,#40H,FIVE
        MOV  A,#99H
        RET
FIVE:
        CJNE   A,#50H,SIX
        MOV   A,#92H
        RET
SIX:
        CJNE   A,#60H,SEVEN
        MOV   A,#82H
        RET
SEVEN:
        CJNE  A,#70H,EIGHT
        MOV  A,#0F8H
        RET
EIGHT:
        CJNE   A,#80H,NINE
        MOV A,#80H
        RET
NINE:
        MOV   A,#98H
        RET
;************************************************************************************
;DELAY OF 1ms
DELAY:
        MOV   R6,#2
        MOV R7,#230
D1:
        DJNZ  R7,D1
        DJNZ  R6,D1
        RET
END


thanks

0