You are on page 1of 34

1 Week 10 Vocational Training Council, Hong Kong.

Simple I/O Interfacing


Simple I/O Interfacing
EEE3410 Microcontroller Applications
Department of Electrical Engineering
Lecture 9
2 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Interface 8051 with the following Input/Output Devices
Switches
Solenoid and relays
LEDs
Seven Segment Display
Dot matrix display
In this Lecture
In this Lecture

.
.
3 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Mechanical switches
Electromagnetic relays
Solid-state relays
LEDs
7-segment Display
Dot Matrix Display
Introduction
Introduction
The 8051 microcontroller is commonly used for real-world
applications, e.g. display control, lighting control, machine
control, etc. Various input and output devices are connected to
the I/O ports of the microcontroller to deal with different
applications. We will introduce some common I/O devices for
simple application in this lecture. They are:
4 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Mechanical switches are common input devices
One or more pairs of contacts that can be open or close.
Typical switch designations are:
SPST (single-pole-single-throw)
SPDT (single-pole-double-throw)
DPDT (double-pole-double-throw)
Normally open (N.O.) contacts close when the switch is
activated and normally close (N.C.) contacts close when
the switch is activated.
Mechanical Switches
Mechanical Switches
N.O. SPST
N.O. DPST
N.O. DPST
5 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Connect mechanical switches to 8051
Connect mechanical switches to 8051
+5V
8051
EA V
CC
Reset
XTAL1
XTAL2
V
SS
P3.7
P3.6
P3.5
P3.4
SW1
SW2
SW3
SW4
SW opens, input to 8051 is HIGH (1)
SW closes, input to 8051 is LOW (0)
ORG 0000H
:
JNB P3.7,
CASE1 JNB P3.6,
CASE2
JNB P3.5,
CASE3
JNB P3.4,
CASE4
:
:
CASE1: :
:
CASE2: :
:
CASE3: :
:
CASE4: :
:
Check the
status of SW1
Figure 9.1
6 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Electromagnetic Relays
Electromagnetic Relays
Electromagnetic relay consists of two parts - solenoid and
relay contacts
Solenoid is a coil of wire used to produce a magnetic field to
move a steel actuator where points of contacts are located.
The actuator is used to close/open the contact points, such
construction is called a relay.
Figure 9.2 construction of a Electromagnetic relay
7 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Driving an Electromagnetic Relays
Driving an Electromagnetic Relays
Figure 9.3 show a typical driving circuit
of an electromagnetic relay.
The transistor will act as a switch to
allow current passing through the
solenoid.
The diode placed across the coil
terminal is to protect the transistor
damaged from spike voltage during
ON/OFF.
The external circuit connected to relay
terminals will be turned ON/OFF by the
TTL.
Contact closed if TTL = High
Contact opened if TTL = Low
+5V
Vs
Figure 9.3 Driving circuit
of an electromagnetic relay
TTL
8 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Solid State Relays/Switches
Solid State Relays/Switches
Solid-state relays has no mechanical parts and made of semi-
conductor materials
It combines the isolation, driving, and contact closure functions
into a single package
It is commonly use to control ac loads
Relay closed if input = High
Relay opened if input = Low
SSR
+

T1
T2
a.c. power
supply
Figure 9.4 Driving a solid state relay
Input
Control
9 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Light
Light
-
-
Emitting Diode (LED)
Emitting Diode (LED)
Light-emitting diodes (LEDs) can be turned on when a current
passes through it.
Figure 9.5 Shows a typical TTL circuit driving a
LED
The 330 resistor is used to limit the amount
of current to pass through the LED to prevent
it burning off.
The TTL output is LOW, the LED will ON
The TTL output is HIGH, the LED will OFF
+5V
TTL
Figure 9.5
330
10 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Control of
Control of
LEDs
LEDs
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
+5V
8051
EA V
CC
Reset
XTAL1
XTAL2
V
SS
8 LEDs are connected to Port 1
and linked to 5V supply
The LEDs can directly be turned
ON/OFF by the 8051
Under this connection, the LEDs
will be
OFF when port bit is at logic 1
ON when port bit is at logic 0
Figure 9.6
11 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Example 9.1 :
Example 9.1 :
Control the 8
Control the 8
LEDs
LEDs
ON/OFF at the same time
ON/OFF at the same time
All LEDs ON
All LEDs OFF
12 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Program Listing for Example 9.1
Program Listing for Example 9.1
ORG 0000H
CLR A
LOOP: MOV P1, A
CPL A
ACALL DELAY
AJMP LOOP
DELAY: MOV R6, #250
DL1: MOV R7, #200
DL2: DJNZ R7, DL2
DJNZ R6, DL1
RET
END
Start
Set A = 00
Move the content
of A to P1
Delay for 0.1s
Invert the
content of A
Assume 12MHz clock,
determine the delay time.
13 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
ORG 0000H
START: MOV R1, #07H
MOV A, #11111110B
LEFT: MOV P1, A
ACALL DELAY
RL A
DJNZ R1, LEFT
;
MOV R1, #07H
MOV A, #01111111B
RIGHT: MOV P1, A
ACALL DELAY
RR A
DJNZ R1, RIGHT
AJMP START
;
DELAY: .
Example 9.2 :
Example 9.2 :
Glowing a LED in rotating sequence
Glowing a LED in rotating sequence
14 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Example 9.3: Turning LEDs ON/OFF in a preset sequence
by using a Look-up Table
15 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Program Listing of Example 9.3
ORG 0000H
START: MOV R0, #OKDATA+1
MOV DPTR, #DATA
MOV R1, #00H
LOOP: MOV A, R1
MOVC A, @A+DPTR
MOV P1, A
ACALL DELAY
INC R1
DJNZ R0, LOOP
AJMP START
;
DELAY: MOV R5, #2
DL1: MOV R6, #250
DL2: MOV R7, #200
DL3: DJNZ R7, DL3
DJNZ R6, DL2
DJNZ R5, DL1
RET
;
DATA: DB 01111110B
DB 00111100B
DB 00011000B
DB 00000000B
DB 00011000B
DB 00111100B
DB 01111110B
DB 11111111B
;
DB 01111110B
DB 00111100B
DB 00011000B
DB 00000000B
DB 00011000B
DB 00111100B
DB 01111110B
DB 11111111B
;
DB 00000000B
DB 11111111B
DB 00000000B
OK: DB 11111111B
END
16 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Exercise: Write a 8051 program, using a look-up table, to
light-up the LEDs in the sequence as shown below
17 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Simple I/O applications
Simple I/O applications
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
+5V
8051
EA V
CC
Reset
XTAL1
XTAL2
V
SS
P3.7
P3.6
P3.5
P3.4
SW1
SW2
SW3
SW4
Figure 9.7
18 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
When SW1 Closed
When SW3 Closed
When SW4 Closed
When SW2 Closed
Priority: SW1 SW2 SW3 SW4
Example 9.4: Refer to the 8051 circuit in figure 9.5, write a
8051 program to light-up the LEDs in the pattern as shown
below when the respect switch is closed.
19 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Flow Chart of Example 9.4
Start
Initialization
Set P3 as input port
Read SW1SW4 status
SW1 closed?
SW2 closed?
SW3closed?
SW4 closed?
SW1 Handler
Y
SW2 Handler
Y
SW3 Handler
Y
SW4 Handler
Y
2
1
2 1
N
N
N
20 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Program Listing of Example 9.4
ORG 0000H
MOV R1, #00000000B
MOV R2, #01010101B
MOV R3, #00001111B
MOV R4, #11110000B
;
TEST: ORL P3, #0FFH
JNB P3.7, CASE1
JNB P3.6, CASE2
JNB P3.5, CASE3
JNB P3.4, CASE4
AJMP TEST
;
CASE1: MOV A, R1
MOV P1, A
ACALL DELAY
XRL A, #11111111B
MOV P1, A
AJMP TEST
;
CASE2 MOV A, R2
MOV P1, A
ACALL DELAY
XRL A, #10101010B
MOV P1, A
AJMP TEST
;
CASE3 MOV A, R3
MOV P1, A
ACALL DELAY
XRL A, #11110000B
MOV P1, A
AJMP TEST
;
CASE4 MOV A, R4
MOV P1, A
ACALL DELAY
XRL A, #00001111B
MOV P1, A
AJMP TEST
;
DELAY: ..
END
21 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
A single-character display panel
Contains 7 LED segments arranged as an 8
Two configurations: common-anode and
common-cathode
7
7
-
-
Segment LED Numeric Display
Segment LED Numeric Display
a
b
c
d
e
f
g
Segment Pattern
Dp
22 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Common-anode
configuration
Common-cathode
configuration
7
7
-
-
Segment LED
Segment LED
Numeric Display
Numeric Display
a b
c d e f g Dp Common
a b c d
e f g Dp
Common
23 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Segment displays are driven by connecting each segment
to a port bit, or they can be driven by decoder/driver IC
7
7
-
-
Segment LED Numeric Display
Segment LED Numeric Display
a b c d e f g Dp Display segment
0 1 2 3 4 5 6 7 Output Port bit
Normally the LED should be connected to the power via
resistors to protect them from burning
When using common-cathode configuration, a segment
will be lit only if the lead of the segment connected
with a High voltage and the common cathode lead with
Low voltage
24 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
7
7
-
-
Segment LED Numeric Display
Segment LED Numeric Display
Use R3 as counter, write a 8051 assembly language program using
look-up table method, to display the value in R3 to a 7-segment display
8051
b
c
d
e
f
g
a
XTAL1
XTAL2
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
Figure 9.8
Vcc
a
b
c
d
e
f
g
Dp
.
Dp
.
25 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Program Listing
Program Listing
ORG 0000H
MOV R3, #00H
LOOP: MOV DPTR, #TABLE
MOV A, R3
MOVC A, @A+DPTR
;
; Display numbers on 7-segment display
MOV P1, A
ACALL DELAY
;
; Increase R3 by 1 and loop back
MOV A, R3
ADD A, #1
DA A
ANL A, #0FH
MOV R3, A
AJMP LOOP
;
DELAY: ..
TABLE: DB 11000000B ; 0
DB 11111001B ; 1
DB 10100100B ; 2
DB 10110000B ; 3
DB 10011001B ; 4
DB 10010010B ; 5
DB 10000010B ; 6
DB 11111000B ; 7
DB 10000000B ; 8
DB 10010000B ; 9
;
END
26 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Consists of a number of LED
arranged in the form of a matrix
e.g. 35 LED in a 5 columns x 7 rows
matrix, or 64 LED in a 8 x 8 matrix
To display a digit/character, use
the method of scanning
c
d
e
f
g
a
1
2 3 4
5
b
i.e. scan a column at a time. If the scanning is fast
enough, it appears that the digit/character is
displayed (due to illusion of our eyes)
Dot
Dot
-
-
matrix LED Display
matrix LED Display
27 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Internal circuitry of a
5 x 7 dot matrix
display is shown on
the right
Voltage should be
supplied to terminals
C and 1 to light up the
LED indicated in this
picture
Dot
Dot
-
-
matrix LED Display
matrix LED Display
c
d
e
f
g
a
b
1 2 3 4 5
28 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
8051
Reset
XTAL1
XTAL2
V
SS
EA
Vcc
P1.0
P1.1
P1.2
P1.3
P1.4
c
d
e
f
g
a
b
1 2 3 4 5
Dot
Dot
-
-
matrix LED Display
matrix LED Display
29 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Example: Displaying the character E on the dot-matrix.
Dot
Dot
-
-
matrix LED Display
matrix LED Display
b
c
d
e
f
g
a
1 2 3 4 5
Displaying the character
E on the 5x7dot-matrix.
Step 1: signals on pins
pins 12356 10000
pins gfedcba 1111111
Step 2: signals on pins
pins 12356 01000
pins gfedcba 1001001
Step 3: signals on pins
pins 12356 00100
pins gfedcba 1001001
Step 4: signals on pins
pins 12356 00010
pins gfedcba 1001001
b
c
d
e
f
g
a
1 2 3 4 5
1 2 3 4 5
b
c
d
e
f
g
a
1 2 3 4 5
b
c
d
e
f
g
a
1 2 3 4 5
b
c
d
e
f
g
a
1 2 3 4 5
b
c
d
e
f
g
a
30 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Code Words and Displays of
Code Words and Displays of

0
0

to
to

4
4

0
0
1
1
1
1
1
0
B
0
1
0
1
0
0
0
1
B
0
1
0
0
1
0
0
1
B
0
1
0
0
0
1
0
1
B
0
0
1
1
1
1
1
0
B
0
0
0
0
0
0
0
0
B
0
1
0
0
0
0
1
0
B
0
1
1
1
1
1
1
1
B
0
1
0
0
0
0
0
0
B
0
0
0
0
0
0
0
0
B
0
1
0
0
0
1
1
0
B
0
1
1
0
0
0
0
1
B
0
1
0
1
0
0
0
1
B
0
1
0
0
1
0
0
1
B
0
1
0
0
0
1
1
0
B
0
0
1
0
0
0
0
1
B
0
1
0
0
0
0
0
1
B
0
1
0
0
1
0
0
1
B
0
1
0
0
1
1
0
1
B
0
0
1
1
0
0
1
1
B
0
0
0
1
1
0
0
0
B
0
0
0
1
0
1
0
0
B
0
0
0
1
0
0
1
0
B
0
1
1
1
1
1
1
1
B
0
0
0
1
0
0
0
0
B
31 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Code Words and Displays of
Code Words and Displays of

5
5

to
to

9
9

0
0
1
0
0
1
1
1
B
0
1
0
0
0
1
0
1
B
0
1
0
0
0
1
0
1
B
0
1
0
0
0
1
0
1
B
0
0
1
1
1
0
0
1
B
0
0
1
1
1
1
0
0
B
0
1
0
0
1
0
1
0
B
0
1
0
0
1
0
0
1
B
0
1
0
0
1
0
0
1
B
0
0
1
1
0
0
0
0
B
0
0
0
0
0
0
0
1
B
0
1
1
1
1
1
1
0
B
0
1
1
1
1
0
0
1
B
0
0
0
0
0
1
0
1
B
0
0
0
0
0
0
1
1
B
0
0
1
1
0
1
1
0
B
0
1
0
0
1
0
0
1
B
0
1
0
0
1
0
0
1
B
0
1
0
0
1
0
0
1
B
0
0
1
1
0
1
1
0
B
0
0
0
0
0
1
1
0
B

0
1
0
0
1
0
0
1
B

0
1
0
0
1
0
0
1
B
0
0
1
0
1
0
0
1
B
0
0
0
1
1
1
1
0
B
32 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
Program Listing
Program Listing

character display on 5x7 Dot character display on 5x7 Dot- -matrix display matrix display (1/2) (1/2)
ORG 0000H
START: MOV DPTR, #TABLE ; point to the starting add of 1
st
char
MOV R3, #10 ; display 10 characters
LOOP: MOV R2, #100 ; scan 100 times for each character
SCAN: ACALL SACN1 ; 10ms x 100 = 1000ms
DJNZ R2, SCAN
INC DPTR ; increase DPTR by 5 to
INC DPTR ; point to the starting address of
INC DPTR ; the next character
INC DPTR
INC DPTR
DJNZ R3, LOOP ; loop back to display 10 char
AJMP START
; ======================
; == Scan Subroutine ==
; ======================
SCAN1 MOV R1, #00H ; R1 points to the starting add of a char
MOV R5, #11111110B ; start from the leftmost column
MOV R4, #05 ; there are 5 columns
LOOP1 MOV A, R1 ; get the code at add R1+DPTR
MOVC A, @A+DPTR
MOV P3, A ; send the code to the dot-matrix display
MOV P1, R5 ; turn-on a particular transistor
33 Week 9 Vocational Training Council, Hong Kong.
EEE3410 Microcontroller Applications
MOV R6, #5 ; delay for 2ms
DL1: MOV R7, #200
DL2: DJNZ R7, DL2
DJNZ R6, DL1
ORL P1, #11111111B ; turn-off display
MOV A, R5 ;
RL A ; move to next column
MOV R5, A ; totally there are 5 columns
INC R1 ;
DJNZ R4, LOOP1 ;
RET ; return the main program
; ============================
; == Character Table ==
; ============================
TABLE: DB 00111110B ; codes for 0
DB 01010001B
DB 01001001B
DB 01000101B
DB 00111110B
DB 00000000B ; code for 1
: ; codes for 2 to 9
: ;
END
Program Listing
Program Listing

character display on 5x7 Dot character display on 5x7 Dot- -matrix display matrix display (2/2) (2/2)
1 Week 10 Vocational Training Council, Hong Kong.
Simple I/O Interfacing
Simple I/O Interfacing
EEE3410 Microcontroller Applications
Department of Electrical Engineering
END of Lecture 9