H00
Newbie level 2
Hi everybody
I want to write comments for those projects
first one is
Interfacing a Key Board to the Display Via 8051 microcontroller
the second proj
Message display on LEDs-Matrix.
I want to write comments for those projects
first one is
Interfacing a Key Board to the Display Via 8051 microcontroller
Code:
RS REG P1.5
RW REG P1.6
EN REG P1.7
LCMBUS REG P0
;==============================
ORG 000H
JMP MAIN
ORG 003H
JMP INT0
ORG 100H
MAIN:
MOV SP,#60
MOV P1,#0FFH
MOV IE,#10000001B
SETB IT0
CLR EN
CALL LCMINIT
MOV A,#10000000B ;SET DDRAM ADDRESS
CALL WRINS
JMP $
;==============================
INT0:
CLR EA
CLR C
MOV A,P1
ANL A,#0FH
MOV B,A
SUBB A,#10
JC NUMBER
MOV A,B
ADD A,#37H
JMP DISP
NUMBER:
MOV A,B
ADD A,#30H
DISP:
CALL WRDATA
CALL RDINS
ANL A,#01111111B
MOV B,A
SUBB A,#14H
JNZ TESTB
MOV A,#11000000B
CALL WRINS
TESTB:
MOV A,B
SUBB A,#54H
JNZ RETURN
MOV A,#10000000B
CALL WRINS
RETURN:
SETB EA
RETI
;==============================
WRINS:
CALL CHKBSY
CLR RS
CLR RW
SETB EN
MOV LCMBUS,A
CLR EN
RET
;==============================
RDINS:
CALL CHKBSY
CLR RS
SETB RW
SETB EN
MOV A,LCMBUS
CLR EN
RET
;==============================
WRDATA:
CALL CHKBSY
SETB RS
CLR RW
SETB EN
MOV LCMBUS,A
CLR EN
RET
;==============================
CHKBSY:
MOV LCMBUS,#0FFH
CLR RS
SETB RW
SETB EN
MOV C,LCMBUS.7
CLR EN
JC CHKBSY
RET
;==============================
LCMINIT:
MOV A,#00110000B
CALL WRINS
MOV R6,#41 ;DELAY 4.1mS
$1:
MOV R7,#50
DJNZ R7,$
DJNZ R6,$1
MOV A,#00110000B
CALL WRINS
MOV R7,#50 ;DELAY 100uS
DJNZ R7,$
MOV A,#00110000B
CALL WRINS
MOV A,#00111000B ;FUNCTION SET
CALL WRINS
MOV A,#00001000B ;DISPLAY OFF
CALL WRINS
MOV A,#00000001B ;DISPLAY CLEAR
CALL WRINS
MOV A,#00000110B ;ENTRY MODE SET
CALL WRINS
MOV A,#00001111B
CALL WRINS
RET
;==============================
PRTSTR:
MOV A,#0
MOVC A,@A+DPTR
CJNE A,#'$',PRINT
JMP ENDPRT
PRINT:
CALL WRDATA
INC DPTR
JMP PRTSTR
ENDPRT:
RET
END
the second proj
Message display on LEDs-Matrix.
Code:
ORG 000H
CLR P1.7
START:
MOV DPTR,#TABLE
MOV R0,#36 ;TOTAL 36 CHAR.
NEXTC:
MOV R3,#20
REPEAT:
MOV R2,#10000000B ;COLUMN
MOV R1,#0
NEXT:
MOV A,R1 ;DATA POINTER
MOVC A,@A+DPTR
MOV P2,A
MOV A,R2
MOV P0,A
CALL DELAY
RR A
MOV R2,A
MOV P0,#00H ;TURN OFF LED
INC R1
CJNE R1,#5,NEXT
DJNZ R3,REPEAT
INC DPTR ;NEXT CHAR.
INC DPTR
INC DPTR
INC DPTR
INC DPTR
DJNZ R0,NEXTC
JMP START
;=========================================
TABLE DB 3EH,48H,88H,48H,3EH ;A
DB FEH,92H,92H,92H,6CH ;B
DB 7CH,82H,82H,82H,44H ;C
DB FEH,82H,82H,44H,38H ;D
DB FEH,92H,92H,92H,82H ;E
DB FEH,90H,90H,90H,80H ;F
DB 7CH,82H,92H,94H,5EH ;G
DB FEH,10H,10H,10H,FEH ;H
DB 00H,82H,FEH,82H,00H ;I
DB 04H,02H,82H,FCH,80H ;J
DB FEH,10H,28H,44H,82H ;K
DB FEH,02H,02H,02H,02H ;L
DB FEH,40H,30H,40H,FEH ;M
DB FEH,20H,10H,08H,FEH ;N
DB 7CH,82H,82H,82H,7CH ;O
DB FEH,90H,90H,90H,60H ;P
DB 7CH,82H,8AH,84H,7AH ;Q
DB FEH,90H,98H,94H,62H ;R
DB 64H,92H,92H,92H,4CH ;S
DB 80H,80H,FEH,80H,80H ;T
DB FCH,02H,02H,02H,FCH ;U
DB F8H,04H,02H,04H,F8H ;V
DB FCH,02H,1CH,02H,FCH ;W
DB C6H,28H,10H,28H,C6H ;X
DB E0H,10H,0EH,10H,E0H ;Y
DB 86H,8AH,92H,A2H,C2H ;Z
DB 7CH,8AH,92H,A2H,7CH ;0
DB 00H,42H,FEH,02H,00H ;1
DB 42H,86H,8AH,92H,62H ;2
DB 84H,82H,A2H,D2H,8CH ;3
DB 18H,28H,48H,FEH,08H ;4
DB E4H,A2H,A2H,A2H,9CH ;5
DB 3CH,52H,92H,92H,0CH ;6
DB 80H,8EH,90H,A0H,C0H ;7
DB 6CH,92H,92H,92H,6CH ;8
DB 60H,92H,92H,94H,78H ;9
;=========================================
; DELAY 5mS
;=========================================
DELAY:
MOV R6,#10
DL1:
MOV R7,#249
DJNZ R7,$
DJNZ R6,DL1
RET
END