You are on page 1of 56

The human and physical interfaces

Chapter Eight
8.1 8.9

Dr. Gheith Abandah

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

Human Interface - Examples

Dr. Gheith Abandah

Human interface types


Input:
Switch Push button Keypad

Output:
light-emitting diode (LED) Seven-segment LED Liquid crystal display (LCD)

Dr. Gheith Abandah

The LED version of the Derbot AGV

Dr. Gheith Abandah

The LCD version of the Derbot AGV

Dr. Gheith Abandah

The Keypad

Dr. Gheith Abandah

Flow diagram
Reading a keypad with a microcontroll er port

Dr. Gheith Abandah

10

Outputs for the keypad


Port Bit 7 6 5 4 3 2 1 0 Function Row 1 Row 2 Row 3 Row 4 Column 1 Column 2 Column 3 Unused

Dr. Gheith Abandah

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 portb intcon,rbif intcon,rbie intcon,gie loop ;select memory bank 1 ;Port B initially Row bits ;are input, column output ;select bank 0 ;initialize keypad value ;enable interrupt

;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 B00000000 ;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
21

Dr. Gheith Abandah

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 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 Dr. Gheith Abandah 23 Has instruction register and data

HD44780 timing diagram

Dr. Gheith Abandah

24

Derbots 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
26

Dr. Gheith Abandah

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 holeelectron pairs in the material, which improve the conductivity. 20M to a few Dr. Gheith Abandah hundred ohms

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

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] Dr. Gheith Abandah 37 = 25V

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 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 Gheith Abandah Dr.

43

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

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 Hbridge

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 Dr. Gheith Abandah 56

You might also like