Chapter 8: 8 The human and physical interfaces

advertisement
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
– Push button
– Keypad
– light-emitting diode
(LED)
– 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
Dr. Gheith Abandah
Port Bit
Function
7
6
5
4
Row 1
Row 2
Row 3
Row 4
3
2
1
Column 1
Column 2
Column 3
0
Unused
11
Flow diagram of program example
Dr. Gheith Abandah
12
Keypad Example – Initialization
;Initialize
bsf
status,rp0
movlw B'11110000'
movwf
bcf
...
clrf
bcf
bsf
bsf
loop
goto
trisb
status,rp0
;select memory bank 1
;Port B initially Row bits
;are input, column output
;select bank 0
portb
intcon,rbif
intcon,rbie
intcon,gie
;initialize keypad value
;enable interrupt
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
movwf lcd_op
call lcd_write
rel_test
call kpad_rd
movf kpad_pat,0
andlw 0fe
sublw 0fe
btfss status,z
goto rel_test
bcf
intcon,rbif
retfie
;set for character op
;test now for keypad release
;suppress lsb, not used
;test if inactive
;clear interrupt flag
Dr. Gheith Abandah
14
Keypad Example – Read keypad
kpad_rd
movf
andlw
movwf
bsf
movlw
movwf
bcf
movlw
movwf
movf
andlw
iorwf
portb,w
B'11110000'
kpad_pat
status,rp0
B'00001110'
trisb
status,rp0
00
portb
portb,w
B'00001110'
kpad_pat,1
;read portb value, row pattern
;suppress unwanted bits
;set row to op, column to ip
;ensure output values still 0
;read portb value, col. pattern
;suppress unwanted bits
;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
bcf
status,rp1
bsf
status,rp0;bank 1
movlw B’00000000’ ;out
movwf trisa
movwf trisb
movwf trisc
bcf
status,rp0;bank 0
;
loop
;set digit 1
movlw B'00011101' ;H
movwf porta
bcf
portc,6
;seg a
bsf
portc,7
;seg b
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
call busy_check
bcf
portc,lcd_rw
bcf
status,c
rrf
lcd_op,1
bcf
portc,6
btfsc status,c
bsf
portc,6
bcf
status,c
rrf
lcd_op,1
bcf
portc,7
btfsc status,c
bsf
portc,7
movf lcd_op,0
movwf porta
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
Dr. Gheith Abandah
return
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
• Range from the extremely
powerful to the very small
• Wide speed range
• Controllable speed
• Good efficiency
• Can provide accurate
angular positioning with
angular shafts
• Only the armature winding
needs to be driven
Stepper Motors
• Simple interface with digital
systems
• Can control speed and
position
• Awkward start-up
characteristics
• Lose torque at high speed
• Limited top speed
• Less efficient
• 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 optosensors
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
Download