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

Back to Subject List

Thread Closed: Became flame-war

???
06/23/06 06:04
Read: times


 
Msg Score: -1
 -1 Message Not Useful
#118920 - switch and LED interface problem
Hello

The program written below should work as follows : ... switches

are connected to PORT 1 and LED;s are connected to PORT 2 ...

on hitting any switch the corresponding LED should bre ON

ie ... if we press switch 0 LED 0 should ON ... if agin we

press switch 0 then the LED 0 should become OFF ..

The problem I am encountering is the switches are pressed

more then twice to be operated ie. switch is pressed 2 times

for the same function to be happened ...


If some body can help me to get rid of this probs ... then I

will be very thankfull ...




    DELAY_HIGH EQU 003H

    DELAY_LOW EQU 018H

    FLAG_0 EQU 031H
    FLAG_1 EQU 032H
    FLAG_2 EQU 033H
    FLAG_3 EQU 034H
    FLAG_4 EQU 035H
    FLAG_5 EQU 036H
    FLAG_6 EQU 037H
    FLAG_7 EQU 038H
    FLAG_INVALIDKEY EQU 039H
    FLAG_PUSH EQU 040H
    NEWKEY EQU 041H

    ORG 000H
    MOV SP,#050H
    LJMP START

    ORG 000BH
    ACALL INTERRUPT_0
    RETI


ORG 001BH
INTERRUPT_1:
    PUSH ACC
    PUSH PSW
    CLR TR1
    MOV PSW,#00H
    ACALL KEYPRESSED
    JNZ CALCULATE
    JMP ALTER

CALCULATE:
    ACALL KEYPRESSED
    JZ ALTER
    ACALL CONVERT
    JBC FLAG_INVALIDKEY,ALTER
    ACALL TIMER_0
    POP ACC
    POP PSW
    RETI

ALTER:
    CLR FLAG_PUSH

AGAIN:
    ACALL TIMER_1
    POP PSW
    POP ACC
    RETI


INTERRUPT_0:

    PUSH ACC
    PUSH PSW
    MOV PSW,#00H
    CLR TR0
    ACALL KEYPRESSED
    JZ ALTER_1
    ACALL CONVERT
    JBC FLAG_INVALIDKEY,ALTER_1
    JB FLAG_PUSH,COMPARE
    SETB FLAG_PUSH
    MOV NEWKEY,A
    JMP HOME


COMPARE:

    CJNE A,NEWKEY,CLEAR
    JMP AGAIN_1

HOME:

    JB ACC.0,COOL_0
    JB ACC.1,COOL_1
    JB ACC.2,COOL_2
    JB ACC.3,COOL_3
    JB ACC.4,COOL_4
    JB ACC.5,COOL_5
    JB ACC.6,COOL_6
    JB ACC.7,COOL_7

CLEAR:

    CLR FLAG_PUSH
    JMP HOME

WORLD:

    MOV R0,A
    MOV A,P2
    ORL A,R0
    XRL A,R0
    MOV P2,A
    JMP STATUS

UNIVERSE:

    ORL A,P2
    MOV P2,A
    JMP AGAIN_1

ALTER_1:

    CLR FLAG_PUSH

AGAIN_1:

    ACALL TIMER_1
    POP PSW
    POP ACC
    RET

COOL_0:

    JB FLAG_0,WORLD
    SETB FLAG_0
    JMP UNIVERSE

COOL_1:
    JB FLAG_1,WORLD
    SETB FLAG_1
    JMP UNIVERSE

COOL_2:
    JB FLAG_2,WORLD
    SETB FLAG_2
    JMP UNIVERSE

COOL_3:

    JB FLAG_3,WORLD
    SETB FLAG_3
    JMP UNIVERSE
COOL_4:

    JB FLAG_4,WORLD
    SETB FLAG_4
    JMP UNIVERSE
COOL_5:

    JB FLAG_5,WORLD
    SETB FLAG_5
    JMP UNIVERSE
COOL_6:

    JB FLAG_6,WORLD
    SETB FLAG_6
    JMP UNIVERSE
COOL_7:

    JB FLAG_7,WORLD
    SETB FLAG_7
    JMP UNIVERSE


STATUS:

    JBC FLAG_0,AGAIN_1
    JBC FLAG_1,AGAIN_1
    JBC FLAG_2,AGAIN_1
    JBC FLAG_3,AGAIN_1
    JBC FLAG_4,AGAIN_1
    JBC FLAG_5,AGAIN_1
    JBC FLAG_6,AGAIN_1
    JBC FLAG_7,AGAIN_1

KEYPRESSED:

    MOV P1,#0FFH
    MOV A,P1
    CPL A
    RET

START:

    MOV IE,#08AH
    MOV TMOD,#011H
    MOV P1,#0FFH
    MOV P2,#00H
    MOV R0,#00H
    MOV R7,#00H
    CLR FLAG_0
    CLR FLAG_1
    CLR FLAG_2
    CLR FLAG_3
    CLR FLAG_4
    CLR FLAG_5
    CLR FLAG_6
    CLR FLAG_7
    ACALL TIMER_1

KEY:

    MOV P1,#0FFH
    MOV A,P1
    CPL A
    JMP KEY

TIMER_0:

    ;MOV TL0,#070H
    ;MOV TH0,#0DAH
    MOV TL0,#DELAY_LOW
    MOV TH0,#DELAY_HIGH
    SETB TR0
    RET

TIMER_1:

    MOV TL1,#DELAY_LOW
    MOV TH1,#DELAY_HIGH
    SETB TR1
    RET

CONVERT:

    CLR FLAG_INVALIDKEY

    CJNE A,#01H,SECOND
    RET
SECOND:

    CJNE A,#02H,THIRD
    RET
THIRD:

    CJNE A,#04H,FOURTH
    RET

FOURTH:

    CJNE A,#08H,FIVE
    RET
FIVE:

    CJNE A,#010H,SIX
    RET
SIX:

    CJNE A,#020H,SEVEN
    RET
SEVEN:

    CJNE A,#040H,EIGHT
    RET
EIGHT:

    CJNE A,#080H,BAD
    RET
BAD:

    SETB FLAG_INVALIDKEY
    RET


    ;**************************************************************************************************
    END


regards
Arvind Shrivastava ...


List of 32 messages in thread
TopicAuthorDate
switch and LED interface problem            01/01/70 00:00      
   Duplicate thread            01/01/70 00:00      
      DIFFERENT            01/01/70 00:00      
         Still unformatted and NO comments            01/01/70 00:00      
   Mr. Andy Neil            01/01/70 00:00      
      Help            01/01/70 00:00      
      Seniors, not baby sitters            01/01/70 00:00      
         Tell it to the Teddy Bear...            01/01/70 00:00      
         comments are added ... have a look again            01/01/70 00:00      
            Formatting!            01/01/70 00:00      
            LOOK AGAIN ... MODIFIED ...            01/01/70 00:00      
               This is hopeless!            01/01/70 00:00      
                  FINAL MODIFIES CODE ... have a look            01/01/70 00:00      
                     why do you check for keys a few microsec            01/01/70 00:00      
                     Debounce scheme cannot be identified            01/01/70 00:00      
                     I had 15 minutes waiting for someone and            01/01/70 00:00      
      no way            01/01/70 00:00      
         i dont know            01/01/70 00:00      
            He responded this morning            01/01/70 00:00      
               He wiil strike again on Monday            01/01/70 00:00      
   Spaghetti code            01/01/70 00:00      
      Before (re)writing            01/01/70 00:00      
      Again            01/01/70 00:00      
      and he comkplains about the tomato sauce            01/01/70 00:00      
   What about this?            01/01/70 00:00      
   HELOOOOOOOOOO !!!...            01/01/70 00:00      
      Why are you shouting??            01/01/70 00:00      
      Pot calling kettle - Come in Kettle!            01/01/70 00:00      
      TANSTAAFL            01/01/70 00:00      
      Consensus            01/01/70 00:00      
   ????????????????????            01/01/70 00:00      
   hitting in dark            01/01/70 00:00      

Back to Subject List