I will upload the assignment and how far I've gotten I need help working my keypad out I haven't been able to find any information to help me in ASM language.
Moderator edit: added code tags
Code:
#include C:\dragon12_plus2\DRAGON12_Plus2_B\LCDRoutines_SP17.asm
;*******************************************************************************************
;*******************************************************************************************
ORG $1000
TEMP: RMB 1
CURRENT_KEY: RMB 1
CURRENT_7SEG RMB 1
DEC_NUM FCB 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15 ; FOR 7 SEG
HEX_NUM FCB $3F, $06, $5B, $4F, $66, $6D, $7D, $07, $7F, $67, $77, $7C, $39, $5E, $79, $71 ; FOR 7 SEG
;*******************************************************************************************
;*******************************************************************************************
FIRST_LINE FCC "Enter 4 digit "
SECOND_LINE FCC "Press PH2 RESET "
;*******************************************************************************************
;*******************************************************************************************
ORG $2000
JMP MAIN
; ORG $1100 ;Keypad Look-up Table
;KCODE0 FCB $31,$32,$33,$41 ;"123A"
;KCODE1 FCB $34,$35,$36,$42 ;"456B"
;KCODE2 FCB $37,$38,$39,$43 ;"789C"
;KCODE3 FCB $2A,$30,$23,$44 ;"*0#D"
;*******************************************************************************************
;*******************************************************************************************
SETUP
LDAA #$FF
STAA DDRB
STAA DDRJ
STAA DDRP
LDAA #$FF
STAA PORTB
STAA PORTJ
STAA PORTP
LDAA #$0F
STAA DDRA
BSET PUCR, 1
RTS
;*******************************************************************************************
;*******************************************************************************************
DISP_7SEG
LDAA CURRENT_7SEG
STAA PORTB
LDAA #$0E
STAA PORTP
JSR DELAY_10ms
LDAA #$0D
STAA PORTP
JSR DELAY_10ms
LDAA #$0B
STAA PORTP
JSR DELAY_10ms
LDAA #$07
STAA PORTP
JSR DELAY_10ms
RTS
;*******************************************************************************
;*******************************************************************************
DISPLAY_START
LDX #FIRST_LINE
LDAB #16
JSR LCD_LINE1
LDX #SECOND_LINE
LDAB #16
JSR LCD_LINE2
RTS
;*******************************************************************************************
;*******************************************************************************
SCAN_KEYPAD
SCAN_AGAIN LDAB #15
LDAA #$F7
STAA TEMP
NEXT_ROW STAA PORTA
JSR DELAY
LDAA PORTA
ANDA #$F0
CMPA #$F0
BNE KEYIN
DECB
CMPB #11
BEQ NO_KEYIN
ROR TEMP
LDAA TEMP
BRA NEXT_ROW
NO_KEYIN CLC
BRA SCAN_AGAIN
KEYIN ROLA
BCC KEY_OK
SUBB #4
BRA KEYIN
KEY_OK SEC
STAB CURRENT_KEY
STAB PORTB
RTS
;*******************************************************************************************
;*******************************************************************************************
CONVERT_7SEG ; CONVERT YOUR DAMN 7 SEG WITH THIS SUB ROUTINE
LDX #DEC_NUM ; THIS WILL LOAD INTO Y WHICH WILL HELP US LATER
LDY #HEX_NUM ; LOAD UP A TEMP NUMBER
LDAA CURRENT_KEY ; CHECK NEXT WILL BRANCH HERE FROM BELOW IF NOT FOUND
CHECK_NEXT CMPA 0,X ; IF ITS NOT GOOD WILL BRANCH TO INX
BNE NEXT_PAIR
BEQ MATCH ; IF WE HAVE A MATCH WE WILL LOAD 0,Y
NEXT_PAIR INX
INY
BRA CHECK_NEXT
MATCH LDAA 0,Y
STAA CURRENT_7SEG
RTS
;*******************************************************************************************
;*******************************************************************************************
MAIN
JSR SETUP
JSR DISPLAY_START
MORE_KEYS JSR SCAN_KEYPAD
JSR CONVERT_7SEG
AGAIN JSR DISP_7SEG
BRA AGAIN
BRA MORE_KEYS
END
;*******************************************************************************************
;*******************************************************************************************
Attachments
-
8.1 KB Views: 27
-
14.1 KB Views: 29
-
9.4 KB Views: 33