You are on page 1of 10

$NOMOD51

$INCLUDE (8051.MCU)
;====================================================================
; DEFINITIONS
;====================================================================
;====================================================================
; VARIABLES
;====================================================================
;====================================================================
; RESET and INTERRUPT VECTORS
;====================================================================
; Reset Vector
;org 0000h
;jmp Start
;====================================================================
; CODE SEGMENT
;====================================================================
ORG 0100H
;Start:
;\\AND GATE 7408 by Pramod singh & Avil rodrigues
;problem with jump instructions
;reset after checking gate
ORG 00H
RS BIT P2.0
RW BIT P2.1
E BIT P2.2
;LCD INITIALIZATION
;===========================THE PROGRAM STARTS HERE=============================
==========================
SETB P2.3
SETB P2.4
JB P2.5,JMP1
ACALL DISPLAY_1
JMP1:CLR P2.3
CLR P2.4
JNB P2.5,JMP2
;if we expect 0 we will use "JNB"
ACALL DISPLAY_1
;code will jump to subroutine DISPLAY_1 for g
ate1 Not working lcd
JMP2:SETB P2.3
CLR P2.4
JNB P2.5,JMP3
ACALL DISPLAY_1
JMP3:CLR P2.3
SETB P2.4
JNB P2.5,DISPLAY_2 ;code will jump to subroutine DISPLAY_2 for gate1 worki
ng lcd
;-----------------------------------------------------------------------------------------------------DISPLAY_2:MOV P0, #38H ;2 lines and 5x7 matrix
ACALL sendcommand

MOV P0, #0EH ;display on cursor blink


ACALL sendcommand
MOV P0, #01H ;clear display screen
ACALL sendcommand
;PRINTING A CHARACTER
MOV P0, #'G'
ACALL senddata
MOV P0, #'A'
ACALL senddata
MOV P0, #'T'
ACALL senddata
MOV P0, #'E'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'1'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'W'
ACALL senddata
MOV P0, #'O'
ACALL senddata
MOV P0, #'R'
ACALL senddata
MOV P0, #'K'
ACALL senddata
MOV P0, #'I'
ACALL senddata
MOV P0, #'N'
ACALL senddata
MOV P0, #'G'
ACALL senddata
LJMP TEST_2
TEST_2:SETB P2.6
SETB P2.7
JB P3.0,JMP4
ACALL DISPLAY_3
JMP4:CLR P2.6
CLR P2.7
JNB P3.0,JMP5
ACALL DISPLAY_3
JMP5:SETB P2.6
CLR P2.7
JNB P3.0,JMP6
ACALL DISPLAY_3
JMP6:CLR P2.6
SETB P2.7
JNB P3.0,DISPLAY_4
;-------------------------------------------------------------------------------------------------------DISPLAY_4:MOV P0, #38H ;2 lines and 5x7 matrix

ACALL sendcommand
MOV P0, #0EH ;display on cursor blink
ACALL sendcommand
MOV P0, #01H ;clear display screen
ACALL sendcommand

;PRINTING A CHARACTER
MOV P0, #'G'
ACALL senddata
MOV P0, #'A'
ACALL senddata
MOV P0, #'T'
ACALL senddata
MOV P0, #'E'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'2'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'W'
ACALL senddata
MOV P0, #'O'
ACALL senddata
MOV P0, #'R'
ACALL senddata
MOV P0, #'K'
ACALL senddata
MOV P0, #'I'
ACALL senddata
MOV P0, #'N'
ACALL senddata
MOV P0, #'G'
ACALL senddata
LJMP TEST_3
TEST_3:SETB P3.1
SETB P3.2
JB P3.3,JMP7
ACALL DISPLAY_5
JMP7:CLR P3.1
CLR P3.2
JNB P3.3,JMP8
ACALL DISPLAY_5
JMP8:SETB P3.1
CLR P3.2
JNB P3.3,JMP9
ACALL DISPLAY_5
JMP9:CLR P3.1
SETB P3.2
JNB P3.3,DISPLAY_6
;------------------------------------------------------------------------------------------------------------------

DISPLAY_6:MOV P0, #38H ;2 lines and 5x7 matrix


ACALL sendcommand
MOV P0, #0EH ;display on cursor blink
ACALL sendcommand
MOV P0, #01H ;clear display screen
ACALL sendcommand

;PRINTING A CHARACTER
MOV P0, #'G'
ACALL senddata
MOV P0, #'A'
ACALL senddata
MOV P0, #'T'
ACALL senddata
MOV P0, #'E'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'3'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'W'
ACALL senddata
MOV P0, #'O'
ACALL senddata
MOV P0, #'R'
ACALL senddata
MOV P0, #'K'
ACALL senddata
MOV P0, #'I'
ACALL senddata
MOV P0, #'N'
ACALL senddata
MOV P0, #'G'
ACALL senddata

LJMP TEST_4
TEST_4:SETB P3.4
SETB P3.5
JB P3.7,JMP10
ACALL DISPLAY_7
JMP10:CLR P3.4
CLR P3.5
JNB P3.6,JMP11
ACALL DISPLAY_7
JMP11:SETB P3.4
CLR P3.5
JNB P3.6,JMP12
ACALL DISPLAY_7
JMP12:CLR P3.4
SETB P3.5

JNB P3.6,DISPLAY_8
;------------------------------------------------------------------------------------------------------------------DISPLAY_8:MOV P0, #38H ;2 lines and 5x7 matrix
ACALL sendcommand
MOV P0, #0EH ;display on cursor blink
ACALL sendcommand
MOV P0, #01H ;clear display screen
ACALL sendcommand
;PRINTING A CHARACTER
MOV P0, #'G'
ACALL senddata
MOV P0, #'A'
ACALL senddata
MOV P0, #'T'
ACALL senddata
MOV P0, #'E'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'4'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'W'
ACALL senddata
MOV P0, #'O'
ACALL senddata
MOV P0, #'R'
ACALL senddata
MOV P0, #'K'
ACALL senddata
MOV P0, #'I'
ACALL senddata
MOV P0, #'N'
ACALL senddata
MOV P0, #'G'
ACALL senddata
LJMP DISPLAY_9
;-------------------------------------------------------------------------------------------------------------DISPLAY_9:MOV P0, #38H ;2 lines and 5x7 matrix
ACALL sendcommand
MOV P0, #0EH ;display on cursor blink
ACALL sendcommand
MOV P0, #01H ;clear display screen
ACALL sendcommand
;PRINTING A CHARACTER
MOV P0, #'A'
ACALL senddata
MOV P0, #'N'

ACALL senddata
MOV P0, #'D'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'I'
ACALL senddata
MOV P0, #'C'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'I'
ACALL senddata
MOV P0, #'S'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'G'
ACALL senddata
MOV P0, #'O'
ACALL senddata
MOV P0, #'O'
ACALL senddata
MOV P0, #'D'
ACALL senddata
;===============================================================================
=========================================
DISPLAY_1:MOV P0, #38H ;2 lines and 5x7 matrix
ACALL sendcommand
MOV P0, #0EH ;display on cursor blink
ACALL sendcommand
MOV P0, #01H
;clear display screen
ACALL sendcommand

;PRINTING A CHARACTER
MOV P0, #'G'
ACALL senddata
MOV P0, #'A'
ACALL senddata
MOV P0, #'T'
ACALL senddata
MOV P0, #'E'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'1'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'N'
ACALL senddata
MOV P0, #'O'
ACALL senddata

MOV P0, #'T'


ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'W'
ACALL senddata
MOV P0, #'O'
ACALL senddata
MOV P0, #'R'
ACALL senddata
MOV P0, #'K'
ACALL senddata
MOV P0, #'I'
ACALL senddata
MOV P0, #'N'
ACALL senddata
MOV P0, #'G'
ACALL senddata
;DELAY SUBROUTINE
DELAY:
MOV R0, #16H
here2: MOV R1, #0FFH
here1:DJNZ R1, here1
DJNZ R0,here2
RET
;COMMAND SUB-ROUTINE FOR LCD CONTROL
sendcommand:
CLR RW
CLR RS
SETB E
ACALL DELAY
CLR E
RET
;SUBROUTINE FOR DATA LACTCHING TO LCD
senddata:
CLR RW
SETB RS
SETB E
ACALL DELAY
CLR E
RET
LJMP TEST_2
;===============================================================================
========================================
;=========================================================================
DISPLAY_3:MOV P0, #38H ;2 lines and 5x7 matrix
ACALL sendcommand
MOV P0, #0EH ;display on cursor blink
ACALL sendcommand
MOV P0, #01H
;clear display screen
ACALL sendcommand

;PRINTING A CHARACTER
MOV P0, #'G'
ACALL senddata
MOV P0, #'A'
ACALL senddata
MOV P0, #'T'
ACALL senddata
MOV P0, #'E'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'2'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'N'
ACALL senddata
MOV P0, #'O'
ACALL senddata
MOV P0, #'T'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'W'
ACALL senddata
MOV P0, #'O'
ACALL senddata
MOV P0, #'R'
ACALL senddata
MOV P0, #'K'
ACALL senddata
MOV P0, #'I'
ACALL senddata
MOV P0, #'N'
ACALL senddata
MOV P0, #'G'
ACALL senddata
LJMP TEST_3
;===============================================================================
=================================
;===============================================================================
==========================================
DISPLAY_5:MOV P0, #38H ;2 lines and 5x7 matrix
ACALL sendcommand
MOV P0, #0EH ;display on cursor blink
ACALL sendcommand
MOV P0, #01H
;clear display screen
ACALL sendcommand

;PRINTING A CHARACTER

MOV P0, #'G'


ACALL senddata
MOV P0, #'A'
ACALL senddata
MOV P0, #'T'
ACALL senddata
MOV P0, #'E'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'3'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'N'
ACALL senddata
MOV P0, #'O'
ACALL senddata
MOV P0, #'T'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'W'
ACALL senddata
MOV P0, #'O'
ACALL senddata
MOV P0, #'R'
ACALL senddata
MOV P0, #'K'
ACALL senddata
MOV P0, #'I'
ACALL senddata
MOV P0, #'N'
ACALL senddata
MOV P0, #'G'
ACALL senddata

LJMP TEST_4
;===============================================================================
=================================
;===============================================================================
==========================================
DISPLAY_7:MOV P0, #38H ;2 lines and 5x7 matrix
ACALL sendcommand
MOV P0, #0EH ;display on cursor blink
ACALL sendcommand
MOV P0, #01H
;clear display screen
ACALL sendcommand

;PRINTING A CHARACTER
MOV P0, #'G'

ACALL senddata
MOV P0, #'A'
ACALL senddata
MOV P0, #'T'
ACALL senddata
MOV P0, #'E'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'4'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'N'
ACALL senddata
MOV P0, #'O'
ACALL senddata
MOV P0, #'T'
ACALL senddata
MOV P0, #' '
ACALL senddata
MOV P0, #'W'
ACALL senddata
MOV P0, #'O'
ACALL senddata
MOV P0, #'R'
ACALL senddata
MOV P0, #'K'
ACALL senddata
MOV P0, #'I'
ACALL senddata
MOV P0, #'N'
ACALL senddata
MOV P0, #'G'
ACALL senddata
;===============================================================================
=================================
;===============================================================================
==============================
END

You might also like