| ??? 07/20/06 19:16 Read: times |
#120714 - code workin partially Responding to: ???'s previous message |
A few alterations and it's workin. but the second row i.e 4,5,6,7 are not being displayed.
ks_main: mov p1,#0ffh
acall s9k_main
ks_main1: mov p1,#0f0h ;all columns high n rows low
mov a,p1
anl a,#11110000b ;consider only columns
cjne a,#11110000b,ks_main1 ;initially check for all keys released
;-------------------------------------------------------------------
ks_loop1: acall delay_20ms
mov a,p1
anl a,#11110000b ;scan columns
cjne a,#11110000b,debounce ;if key pressed, check debounce
sjmp ks_loop1 ;if not, keep checking for key pressed
;-------------------------------------------------------------------
debounce: acall delay_20ms
mov a,p1
anl a,#11110000b
cjne a,#11110000b,check_row
sjmp ks_loop1
;--------------------------------------------------------------------
check_row: clr ROW0
setb ROW1
setb ROW2
setb ROW3
mov a,p1
anl a,#11111110b ;test row zero
cjne a,#11111110b,row_0
;--------------------------------------------------------------------
setb ROW0
clr ROW1
setb ROW2
setb ROW3
mov a,p1
anl a,#11111101b ;test row one
cjne a,#11111101b,row_1
;---------------------------------------------------------------------
setb ROW0
setb ROW1
clr ROW2
setb ROW3
mov a,p1
anl a,#11111011b ;test row two
cjne a,#11111011b,row_2
;---------------------------------------------------------------------
setb ROW0
setb ROW1
setb ROW2
clr ROW3
mov a,p1
anl a,#11110111b ;test row three
cjne a,#11110111b,row_3
;----------------------------------------------------------------------
sjmp ks_loop1
;----------------------------------------------------------------------
row_0: mov dptr,#disp_kcode0
sjmp find_num
row_1: mov dptr,#disp_kcode1
sjmp find_num
row_2: mov dptr,#disp_kcode2
sjmp find_num
row_3: mov dptr,#disp_kcode3
sjmp find_num
;----------------------------------------------------------------------
find_num: rlc a
jnc found_num ;which column is pressed/grounded
inc dptr
sjmp find_num
;----------------------------------------------------------------------
found_num: clr a
movc a,@a+dptr
acall tx_main ;send pressed button to serial port
;-----------------------------------------------------------------------
jmp ks_main1
;-----------------------------------------------------------------------
disp_kcode0:DB'0','1','2','3'
disp_kcode1:DB'4','5','6','7'
disp_kcode2:DB'8','9','A','B'
disp_kcode3:DB'C','D','E','F'
;-----------------------------------------------------------------------
end
|
| Topic | Author | Date |
| hex key pad code not working | 01/01/70 00:00 | |
| Explanation | 01/01/70 00:00 | |
| what, how | 01/01/70 00:00 | |
| each line of code must be justified | 01/01/70 00:00 | |
| correction made, still not workin | 01/01/70 00:00 | |
| Lookup table | 01/01/70 00:00 | |
| hyperlink | 01/01/70 00:00 | |
| of course not, | 01/01/70 00:00 | |
| shall I spoil the fun? | 01/01/70 00:00 | |
| code workin partially | 01/01/70 00:00 | |
| be specific | 01/01/70 00:00 | |
| specific | 01/01/70 00:00 | |
| check it in the simulator | 01/01/70 00:00 | |
| Use serial port for debugging | 01/01/70 00:00 | |
| confidence | 01/01/70 00:00 | |
| I wouldn't do that | 01/01/70 00:00 | |
| problem with find_num subroutine? | 01/01/70 00:00 | |
| Code presentation | 01/01/70 00:00 | |
| sorry it's 'hyper terminal' | 01/01/70 00:00 | |
| Problem solved | 01/01/70 00:00 | |
| which conclusion, please tell | 01/01/70 00:00 | |
| Problem is NOT solved. | 01/01/70 00:00 | |
| Post the solution please | 01/01/70 00:00 | |
| solution | 01/01/70 00:00 | |
| a 'killer solution' | 01/01/70 00:00 | |
| killer???? | 01/01/70 00:00 | |
you 'eat' the main | 01/01/70 00:00 |



