You are on page 1of 56

The human and physical

interfaces
Chapter Eight
8.1 – 8.9

Dr. Gheith Abandah 1


Outline
• Introduction
• Keypads
• Seven-segment displays
• LCDs
• Sensors
• Actuators
• Summary

Dr. Gheith Abandah 2


Introduction
• A human interface is an important part of most
embedded systems.
• Users need to conveniently get information from the
embedded system.
• They also need to conveniently control the operation
of this system.
• Examples:
– Domestic fridge
– Photocopier
– Car dashboard
Dr. Gheith Abandah 3
Human Interface - Examples

Dr. Gheith Abandah 4


Human Interface - Examples

Dr. Gheith Abandah 5


Human interface types
• Input: • Output:
– Switch – light-emitting diode
– Push button (LED)
– Keypad – Seven-segment LED
– Liquid crystal display
(LCD)

Dr. Gheith Abandah 6


The LED version of the Derbot AGV

Dr. Gheith Abandah 7


The LCD version of the Derbot AGV

Dr. Gheith Abandah 8


The Keypad

Dr. Gheith Abandah 9


Flow diagram
Reading a
keypad with a
microcontroller
port

Dr. Gheith Abandah 10


Outputs for the keypad
Port Bit Function
7 Row 1
6 Row 2
5 Row 3
4 Row 4
3 Column 1
2 Column 2
1 Column 3
0 Unused

Dr. Gheith Abandah 11


Flow diagram of program example

Dr. Gheith Abandah 12


Keypad Example – Initialization
;Initialize
bsf status,rp0 ;select memory bank 1
movlw B'11110000' ;Port B initially Row bits
;are input, column output
movwf trisb
bcf status,rp0 ;select bank 0
...
clrf portb ;initialize keypad value
bcf intcon,rbif ;enable interrupt
bsf intcon,rbie
bsf intcon,gie
loop
goto loop ;await keypad entries
Dr. Gheith Abandah 13
Keypad Example – ISR
kpad_to_lcd
call kpad_rd
call kp_code_conv
bsf portc,lcd_RS ;set for character op
movwf lcd_op
call lcd_write
rel_test ;test now for keypad release
call kpad_rd
movf kpad_pat,0
andlw 0fe ;suppress lsb, not used
sublw 0fe ;test if inactive
btfss status,z
goto rel_test
bcf intcon,rbif ;clear interrupt flag
retfie Dr. Gheith Abandah 14
Keypad Example – Read keypad
kpad_rd
movf portb,w ;read portb value, row pattern
andlw B'11110000' ;suppress unwanted bits
movwf kpad_pat
bsf status,rp0 ;set row to op, column to ip
movlw B'00001110'
movwf trisb
bcf status,rp0
movlw 00
movwf portb ;ensure output values still 0
movf portb,w ;read portb value, col. pattern
andlw B'00001110' ;suppress unwanted bits
iorwf kpad_pat,1 ;OR results into the pattern
Dr. Gheith Abandah 15
Keypad Example – Read keypad 2
;reset keypad interface
bsf status,rp0 ;set row to ip, column to op
movlw B'11110000'
movwf trisb
bcf status,rp0
clrf portb ;ensure output values still 0
return

Dr. Gheith Abandah 16


Seven-segment displays

Common
Anode

Common
Cathode

Dr. Gheith Abandah 17


Connecting multiple digits
Need 1.2 kΩ
line resistors

Dr. Gheith Abandah 18


Timing diagram

Dr. Gheith Abandah 19


7-seg. display example – page 1

Dr. Gheith Abandah 20


7-seg. display example – page 2
;Initialise loop
bcf status,rp1 ;set digit 1
bsf status,rp0;bank 1 movlw B'00011101' ;H
movlw B’00000000’ ;out movwf porta
bcf portc,6 ;seg
movwf trisa
a
movwf trisb
bsf portc,7 ;seg
movwf trisc b
bcf status,rp0;bank 0 bsf portc,1 ;dig 1
; call delay5
bcf portc,1
;set digit 2

goto loop
Dr. Gheith Abandah 21
Liquid crystal displays (LCDs)
• Liquid crystal responds to an applied electric field by
changing the alignment of its molecules, and in so
doing changing the direction of the light polarization
that it introduces.
• Liquid crystal can be trapped between two parallel
sheets of glass, with a matching pattern of
transparent electrode on each sheet.
• When a voltage is applied to the electrodes, the
optical character of the crystal changes and the
electrode pattern appears in the crystal.
Dr. Gheith Abandah 22
Interfacing with LCDs
• Hitachi developed a special microcontroller
(HD44780) for interfacing LCDs.
• This microcontroller is usually integrated with
LCDs.
• Features:
– 8- or 4-bit data transfer
– Simple instruction set to initialize, clear, display,
and position cursor
– Has instruction register and data register
Dr. Gheith Abandah 23
HD44780 timing diagram

Dr. Gheith Abandah 24


Derbot’s LCD

Each digit
is a liquid
crystal dot
matrix

Dr. Gheith Abandah 25


LCD Drive Example – Page 1
lcd_write bcf status,c
call busy_check rrf lcd_op,1
bcf portc,lcd_rw bcf portc,7
bcf status,c btfsc status,c
rrf lcd_op,1 bsf portc,7
bcf portc,6 movf lcd_op,0
btfsc status,c movwf porta
bsf portc,6 bsf portc,lcd_E
bcf portc,lcd_E
return

Dr. Gheith Abandah 26


LCD Drive Example – Page 2
busy_check
bsf status,rp0 ;bank 1
movlw B'00111111' ;set port A all ip
movwf trisa
bcf status,rp0
bcf flags,0
btfsc portc,lcd_RS ;save RS in flags, 0
bsf flags,0
bcf portc,lcd_RS ;access instr register
bsf portc,lcd_RW ;set to read

Dr. Gheith Abandah 27


LCD Drive Example – Page 3
busy_loop
bcf portc,lcd_E
bsf portc,lcd_E
btfsc porta,lcd_busy ;test the busy flag
goto busy_loop
bcf portc,lcd_E
bsf status,rp0 ;select memory bank 1
movlw B'00000000‘ ;set port A all op
movwf trisa
bcf status,rp0
bcf portc,lcd_RS
btfsc flags,0 ;reinstate RS bit
bsf portc,lcd_RS
return
Dr. Gheith Abandah 28
Sensors
• Convert physical variables to electrical.
• Examples:
– The microswitch
– Light-dependent resistor
– Ultrasonic object sensor

Dr. Gheith Abandah 29


The Microswitch

Dr. Gheith Abandah 30


Light-dependent resistors
• A light-dependent
resistor (LDR) is made
from a piece of exposed
semiconductor material.
When light falls on it, it
creates hole–electron
pairs in the material,
which improve the
conductivity.
• 20M Ω to a few hundred
ohms
Dr. Gheith Abandah 31
Optical object sensing
Infrared LED and phototransistor

Dr. Gheith Abandah 32


The opto-sensor applied as a shaft
encoder

Dr. Gheith Abandah 33


Ultrasonic object sensor

Dr. Gheith Abandah 34


Digital input
If a microcontroller
is to receive logic
signals, then it is
essential that
those signals are at
voltage levels
which are
recognized by it as
being either Logic 0
or Logic 1.

Dr. Gheith Abandah 35


Forms of signal corruption

(a) Spikes in signal, potentially harmful to device input. (b) Spikes in


signal.
(c) Excessively slow edges. (d) DC offset in signal.
Dr. Gheith Abandah 36
Input protection
• For Rprot = 1KΩ and max.
diode current =20 mA
• What is the maximum
voltage spike?

Vmax =
[(20mA × 1 k Ω) + 5.3]
= 25V

Dr. Gheith Abandah 37


Ensuring legal logic levels
• Can use Schmitt trigger
for speeding up slow
logic edges.
• Schmitt trigger with RC
filter can be used to
filter voltage spikes.
• Digital filtering: sample
the input three times
and use a majority vote.

Dr. Gheith Abandah 38


Isolation or level shifting with the
opto-isolator

Dr. Gheith Abandah 39


Switch bouncing

Dr. Gheith Abandah 40


Hardware switch debouncing

Dr. Gheith Abandah 41


Software switch debouncing

Typically
10 ms

Dr. Gheith Abandah 42


Actuators: motors and servos
• Often need to cause
physical movement
• For linear movement
use solenoids
• For angular movement,
use ‘servos’
• For angular or rotary,
use DC or stepper
motors

Dr. Gheith Abandah 43


Comparison
DC Motors Stepper Motors
• Range from the extremely • Simple interface with digital
powerful to the very small systems
• Wide speed range • Can control speed and
• Controllable speed position
• Good efficiency • Awkward start-up
characteristics
• Can provide accurate
angular positioning with • Lose torque at high speed
angular shafts • Limited top speed
• Only the armature winding • Less efficient
needs to be driven • More complex to drive
Dr. Gheith Abandah 44
Derbot DC Motor

Dr. Gheith Abandah 45


Servo input and output
characteristics

Dr. Gheith Abandah 46


Interfacing to actuators
• Simple DC switching
– Bipolar transistors
– MOSFET transistors
• Reversible switching
– The H-bridge

Dr. Gheith Abandah 47


Bipolar transistor switching of DC
resistive loads

Dr. Gheith Abandah 48


MOSFET transistor switching of DC
resistive loads

Dr. Gheith Abandah 49


MOSFET transistor switching of DC
inductive loads

Dr. Gheith Abandah 50


Characteristics of two popular
logic-compatible MOSFETs

Dr. Gheith Abandah 51


Driving piezo sounder and opto-
sensors

I = (5 − 3.4)/91
I = 17.6 mA

Dr. Gheith Abandah 52


Reversible switching: the H-bridge

Dr. Gheith Abandah 53


The L293D dual H-bridge

Dr. Gheith Abandah 54


The L293D applied in the Derbot
motor drive circuit

Dr. Gheith Abandah 55


Summary
• An embedded microcontroller must be able to interface with
the physical world and possibly the human world as well.
• Much human interfacing can be done with switches, keypads
and displays.
• To interface with the physical world, the microcontroller
must be able to interface with a range of transducers. The
designer needs an understanding of the main sensors and
actuators available.
• Interfacing with sensors requires a reasonable knowledge of
signal conditioning techniques.
• Interfacing with actuators requires a reasonable knowledge
of power switching techniques.
Dr. Gheith Abandah 56

You might also like