the human and physical interfaces chapter eight 8.1 – 8.9 dr. gheith abandah1
TRANSCRIPT
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 types
• Input:– Switch– Push button– Keypad
• Output:– light-emitting diode
(LED)– Seven-segment LED– Liquid crystal display
(LCD)
Dr. Gheith Abandah 6
Outputs for the keypad
Port Bit Function7 Row 16 Row 25 Row 34 Row 43 Column 12 Column 21 Column 30 Unused
Dr. Gheith Abandah 11
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 entriesDr. Gheith Abandah 13
Keypad Example – ISRkpad_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
retfieDr. Gheith Abandah 14
Keypad Example – Read keypadkpad_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
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
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 3busy_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
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
Digital inputIf 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
Dr. Gheith Abandah 36
(a) Spikes in signal, potentially harmful to device input. (b) Spikes in signal.
(c) Excessively slow edges. (d) DC offset in signal.
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
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
Interfacing to actuators
• Simple DC switching– Bipolar transistors– MOSFET transistors
• Reversible switching– The H-bridge
Dr. Gheith Abandah 47
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