Experiment-5
Exercises
Exercise-1
; Convert an ASCII code available in external data memory location
; into HEX equivalent and display in the Data field of the display.
ORG 0000H ; ORIGINATE
AJMP START ; JUMP TO THE LABEL START
START:
MOV DPTR, #5000H ; DATA LOCATION
MOVX A, @DPTR ; GET THE DATA
CLR C ; CLEAR CARRY
SUBB A, #30H ; SUBTRACT (30H) INITIALLY
MOV R1, A ; SAVE A COPY IN (R1)
SUBB A, #0AH ; CHECK FOR NUMBER OR ALPHA-NUMERIC CHARACTER
MOV A, R1 ; GET THE STORED COPY
; IF CARRY ==> INPUT NUMBER IS < 3AH ==> [0-9]
JC DISP
; IF NO CARRY ==> INPUT NUMBER IS >= 3AH ==> [A-F]
ALPH:
CLR C ; CLEAR CARRY AGAIN
SUBB A, #07H ; SUBTRACT AN ADDITIONAL (07H)
DISP:
MOV R0, #60H ; LOCATION OF THE DISPLAY FIELD
MOV @R0, A ; UPDATE THE DATA TO THE LOCATION TO BE DISPLAYED
HERE:
SJMP HERE ; LOGICAL END
END
Exercise-1-2
; Convert an ASCII code available in external data memory location
; into HEX equivalent and display in the Data field of the display.
ORG 0000H
AJMP START
START:
; GET THE DATA FROM EXTERNAL MEMORY
MOV DPTR, #0000H
MOVX A, @DPTR
; SUBTRACT (30H) BY DEFAULT
CLR C
SUBB A, #30H
MOV R1, A ; MAKE A COPY IN (R1)
; CHECK IF NUMBER IS [0-9] OR [A-F]
SUBB A, #0AH
MOV A, R1 ; RETRIEVE THE STORED COPY
; IF CARRY ==> NUMBER IS IN [0-9]
JC DISPLAY
; IF NO CARRY ==> NUMBER IS IN [A-F]
; SUBTRACT AN ADDITIONAL (07H)
CLR C
SUBB A, #07H
; UPDATE THE KIT DISPLAY WITH THE DATA
DISPLAY:
MOV R0, #60H
MOV @R0, A
; LCALL UPDDT
END
Last updated
Was this helpful?