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