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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
08/27/06 14:16
Read: times


 
#123136 - problem with delays
This is an extract of a key scan subroutine where port 0 is interfaced to a 4x3 keypad.
;---------------------------------------------------------------------------------
WAIT1:MOV R0,#03H ;values of r0,r1 & r2 together provide a delay of 423ms
WAIT2:MOV R1,#0FFH
WAIT3:MOV R2,#0FFH

CONFIRM_KEY_PRESS:
MOV A,P0              ;p0.0 t0 p0.3 => rows, p0.4 to 0.6 => columns
ANL A,#01110000b      ;scan columns
cjne a,#01110000b,KEY_PRESS_CONFIRMED; if key pressed within 423ms, come out of delay loop
				                    
DJNZ R2,CONFIRM_KEY_PRESS
DJNZ R1,WAIT3
DJNZ R0,WAIT2

SJMP SECOND_KEY_SCAN1 ;if no key is pressed within 423ms, come out of key checking subroutine
;----------------------------------------------------------------------------------
The code is supposed to come out of the delay loop(CONFIRM_KEY_PRESS) and jump to 'loop1' if a button is pressed within the specified time of 423ms. If no button is pressed within the specified 423ms delay, the code is supposed to jump to 'loop2'(SJMP SECOND_KEY_SCAN1).

But the problem is that the code never jumps to 'loop2'(SJMP SECOND_KEY_SCAN1), even if no key is pressed within 423ms. The code jumps to 'loop1'(KEY_PRESS_CONFIRMED) on pressing a button.

Ashwin.V


List of 20 messages in thread
TopicAuthorDate
problem with delays            01/01/70 00:00      
   Omitted pull-ups at Port 0?            01/01/70 00:00      
      No, it's pulled high            01/01/70 00:00      
         You should see the connection...            01/01/70 00:00      
   could it be your approach?            01/01/70 00:00      
   p0 initialised as input port            01/01/70 00:00      
   post the WHOLE code            01/01/70 00:00      
   WHOLE code            01/01/70 00:00      
      Try this            01/01/70 00:00      
   WHOLE code            01/01/70 00:00      
      Assuming that the external pullups are not working            01/01/70 00:00      
         why is the delay not being excecuted?            01/01/70 00:00      
            HOW DO YOU KNOW            01/01/70 00:00      
               Through debugging            01/01/70 00:00      
                  I know nothing about keil debugger            01/01/70 00:00      
                     make code that resembles the flowchart and you wil            01/01/70 00:00      
      whole?            01/01/70 00:00      
         Ashwins stack handling is totally unsuited!            01/01/70 00:00      
      to generate tone of octave(8keys)with 89c51            01/01/70 00:00      
         sandy please start a new thread            01/01/70 00:00      

Back to Subject List