I/O Devices (: Peripherals)
I/O Devices (: Peripherals)
I/O Devices (: Peripherals)
Case-1:
Gives a logic 0 on switch close
Current is 0.5ma on switch close
Case-2:
Gives a logic 1 on switch close
High current on switch close
Case-3:
Can damage port if 0 is output
MOV P1,#FFH
MOV A,P1,
Vcc
OUT
Wait-and-see technique
When the input drops
an “appropriate” delay is executed (10 ms)
then the value of the line is checked again to make
sure the line has stopped bouncing
been pressed. 3 2 1 0
Otherwise, try next row
C 1
Repeat constantly C
C
2
3
C 4
P1.3
P1.2
P1.1
P1.0
f b
g
e c
d
RS – Register Select
LCD Module
RS = 0 Command Register
RS = 1 Data Register
R/W = 0 Write , R/W = 1 Read
E – Enable
Used to latch the data present on the data pins.
D0 – D7
Bi-directional data/command pins.
Alphanumeric characters are sent in ASCII format.
LM015
P3.4
RW
P3.5 E
P3.3 RS
P1.7-P1.0 D7-D0
Interfacing LCD
call cmd
delay
mov A, another_cmd
call cmd
delay with 8051
mov A, #’A’
call data
delay
mov A, #’B’
call data
delay
….
Command and Data Write Routines
data:mov P1, A ;A is ascii data
setb P3.3 ;RS=1 data
clr P3.4 ;RW=0 for write
setb P3.5 ;H->L pulse on E
clr P3.5
ret
cmd:mov P1,A ;A has the cmd word
clr P3.3 ;RS=0 for cmd
clr P3.4 ;RW=0 for write
setb P3.5 ;H->L pulse on E
clr P3.5
ret
; alternatively
repeat:mov DPTR,#C000H ; address of PA
movx @DPTR, A ; write 55H to PA
inc DPTR ; now DPTR points to PB
movx @DPTR, A ; write 55H to PB
inc DPTR ; now DPTR points to PC
movx @DPTR, A ; write 55H to PC
cpl A ; toggle A (55AA, AA55)
acall MY_DELAY ; small delay subroutine
sjmp repeat ; for (1)
hsabaghianb @ kashanu.ac.ir Microprocessors 6-33