NotesWhat is notes.io?

Notes brand slogan

Notes - notes.io

ORG 0


; ORG 0023H
; LJMP DATA_CAME
;
;
;ORG 0030H
ACALL CONFIGURE_LCD
ACALL CONFIGURE_SERIAL

; MOV IE, #90H ;Enable serial interrupt, we will use it for receive
ACALL KEYBOARD

MOV A,#0AAH
ACALL TRANS
MOV A,#'O'
ACALL TRANS
MOV A,#'S'
ACALL TRANS
MOV A,#'F'
ACALL TRANS
MOV A,#'J'
ACALL TRANS
MOV A,#30H
ACALL TRANS
MOV A,#34H
ACALL TRANS
SJMP RECV
;ACALL SEND_DATA
TRANS: MOV SBUF,A
HERE: JNB TI, HERE ;Wait until given data is transmitted
CLR TI ;Clear Flag
RET

RECV: MOV R3, #7
MOV R0 , #50H


HERE2: JNB RI ,$
CLR RI
MOV A,SBUF
MOV @R0 ,A
INC R0
DJNZ R3, HERE2


MOV A, 50H
ACALL SEND_DATA
MOV A, 51H
ACALL SEND_DATA
MOV A, 52H
ACALL SEND_DATA
MOV A, 53H
ACALL SEND_DATA
MOV A, 54H
ACALL SEND_DATA
MOV A, 55H
ACALL SEND_DATA
MOV A, 56H
ACALL SEND_DATA



RET

CONFIGURE_SERIAL:
MOV TMOD, #20H ;Timer 1, Mode 2(Auto Reload)
MOV TH1, #0FDH ;9600 Baud Rate
MOV SCON, #50H ;Mode 1 (IBM PC), REN Enabled
SETB TR1 ;Start Comm.










KEYBOARD_LOOP:
acall KEYBOARD
;now, A has the key pressed
acall SEND_DATA
sjmp KEYBOARD_LOOP




CONFIGURE_LCD: ;THIS SUBROUTINE SENDS THE INITIALIZATION COMMANDS TO THE LCD
mov a,#38H ;TWO LINES, 5X7 MATRIX
acall SEND_COMMAND
mov a,#0FH ;DISPLAY ON, CURSOR BLINKING
acall SEND_COMMAND
mov a,#06H ;INCREMENT CURSOR (SHIFT CURSOR TO RIGHT)
acall SEND_COMMAND
mov a,#01H ;CLEAR DISPLAY SCREEN
acall SEND_COMMAND
mov a,#80H ;FORCE CURSOR TO BEGINNING OF THE FIRST LINE
acall SEND_COMMAND
ret



SEND_COMMAND:
mov p1,a ;THE COMMAND IS STORED IN A, SEND IT TO LCD
clr p3.5 ;RS=0 BEFORE SENDING COMMAND
clr p3.6 ;R/W=0 TO WRITE
setb p3.7 ;SEND A HIGH TO LOW SIGNAL TO ENABLE PIN
acall DELAY
clr p3.7
ret


SEND_DATA:
mov p1,a ;SEND THE DATA STORED IN A TO LCD
setb p3.5 ;RS=1 BEFORE SENDING DATA
clr p3.6 ;R/W=0 TO WRITE
setb p3.7 ;SEND A HIGH TO LOW SIGNAL TO ENABLE PIN
acall DELAY
clr p3.7
ret


DELAY:
push 0
push 1
mov r0,#50
DELAY_OUTER_LOOP:
mov r1,#255
djnz r1,$
djnz r0,DELAY_OUTER_LOOP
pop 1
pop 0
ret


KEYBOARD: ;takes the key pressed from the keyboard and puts it to A
mov P0, #0ffh ;makes P0 input
K1:
mov P2, #0 ;ground all rows
mov A, P0
anl A, #00001111B
cjne A, #00001111B, K1
K2:
acall DELAY
mov A, P0
anl A, #00001111B
cjne A, #00001111B, KB_OVER
sjmp K2
KB_OVER:
acall DELAY
mov A, P0
anl A, #00001111B
cjne A, #00001111B, KB_OVER1
sjmp K2
KB_OVER1:
mov P2, #11111110B
mov A, P0
anl A, #00001111B
cjne A, #00001111B, ROW_0
mov P2, #11111101B
mov A, P0
anl A, #00001111B
cjne A, #00001111B, ROW_1
mov P2, #11111011B
mov A, P0
anl A, #00001111B
cjne A, #00001111B, ROW_2
mov P2, #11110111B
mov A, P0
anl A, #00001111B
cjne A, #00001111B, ROW_3
ljmp K2

ROW_0:
mov DPTR, #KCODE0
sjmp KB_FIND
ROW_1:
mov DPTR, #KCODE1
sjmp KB_FIND
ROW_2:
mov DPTR, #KCODE2
sjmp KB_FIND
ROW_3:
mov DPTR, #KCODE3
KB_FIND:
rrc A
jnc KB_MATCH
inc DPTR
sjmp KB_FIND
KB_MATCH:
clr A
movc A, @A+DPTR; get ASCII code from the table
ret

;ASCII look-up table
KCODE0: DB '1', '2', '3', 'A'
KCODE1: DB '4', '5', '6', 'B'
KCODE2: DB '7', '8', '9', 'C'
KCODE3: DB '*', '0', '#', 'D'

END

     
 
what is notes.io
 

Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...

With notes.io;

  • * You can take a note from anywhere and any device with internet connection.
  • * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
  • * You can quickly share your contents without website, blog and e-mail.
  • * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
  • * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.

Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.

Easy: Notes.io doesn’t require installation. Just write and share note!

Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )

Free: Notes.io works for 12 years and has been free since the day it was started.


You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;


Email: [email protected]

Twitter: http://twitter.com/notesio

Instagram: http://instagram.com/notes.io

Facebook: http://facebook.com/notesio



Regards;
Notes.io Team

     
 
Shortened Note Link
 
 
Looding Image
 
     
 
Long File
 
 

For written notes was greater than 18KB Unable to shorten.

To be smaller than 18KB, please organize your notes, or sign in.