Presentation is loading. Please wait.

Presentation is loading. Please wait.

Simple I/O Interfacing

Similar presentations


Presentation on theme: "Simple I/O Interfacing"— Presentation transcript:

1 Simple I/O Interfacing
EEE3410 Microcontroller Applications Department of Electrical Engineering │ Lecture 9 │ Simple I/O Interfacing

2 In this Lecture …. Interface 8051 with the following Input/Output Devices Switches Solenoid and relays LEDs Seven Segment Display Dot matrix display

3 Introduction The 8051 microcontroller is commonly used for real-world applications, e.g. display control, lighting control, machine control, etc. Various input and output devices are connected to the I/O ports of the microcontroller to deal with different applications. We will introduce some common I/O devices for simple application in this lecture. They are: Mechanical switches Electromagnetic relays Solid-state relays LEDs 7-segment Display Dot Matrix Display

4 Mechanical Switches Mechanical switches are common input devices
One or more pairs of contacts that can be open or close. Typical switch designations are: SPST (single-pole-single-throw)單刀單擲 SPDT (single-pole-double-throw)單刀雙擲 DPDT (double-pole-double-throw) Normally open (N.O.) contacts close when the switch is activated and normally close (N.C.) contacts OPEN when the switch is activated. N.O. SPST N.O. SPDT N.O. DPDT 雙刀雙擲

5

6 Connect mechanical switches to 8051
+5V 8051 EA VCC Reset XTAL1 XTAL2 VSS P3.7 P3.6 P3.5 P3.4 SW1 SW2 SW3 SW4 ORG H : JNB P3.7, CASE1 JNB P3.6, CASE2 JNB P3.5, CASE3 JNB P3.4, CASE4 CASE1: : CASE2: : CASE3: : CASE4: : Figure 9.1 Check the status of SW1 SW opens, input to 8051 is HIGH (1) SW closes, input to 8051 is LOW (0)

7 Electromagnetic Relays
Electromagnetic relay consists of two parts - solenoid and relay contacts Solenoid is a coil of wire used to produce a magnetic field to move a steel actuator where points of contacts are located. The actuator is used to close/open the contact points, such construction is called a relay. NC: NORMAL CLOSE NO: NORMAL OPEN Figure 9.2 construction of a Electromagnetic relay

8 Driving an Electromagnetic Relays
Figure 9.3 show a typical driving circuit of an electromagnetic relay. The transistor will act as a switch to allow current passing through the solenoid. The diode placed across the coil terminal is to protect the transistor damaged from spike voltage during ON/OFF. The external circuit connected to relay terminals will be turned ON/OFF by the TTL. Contact closed if TTL = High Contact opened if TTL = Low Vs +5V TTL Figure 9.3 Driving circuit of an electromagnetic relay

9 Solid State Relays (SSR)/Switches
Solid-state relays has no mechanical parts and made of semi-conductor materials It combines the isolation, driving, and contact closure functions into a single package It is commonly use to control ac loads Relay closed if input = High Relay opened if input = Low SSR + T1 T2 a.c. power supply Figure 9.4 Driving a solid state relay Input Control

10 Light-Emitting Diode (LED)
Light-emitting diodes (LEDs) can be turned on when a current passes through it. +5V TTL Figure 9.5 330 Figure 9.5 Shows a typical TTL circuit driving a LED The 330 resistor is used to limit the amount of current to pass through the LED to prevent it burning off. The TTL output is LOW, the LED will ON The TTL output is HIGH, the LED will OFF

11 Control of LEDs 0 = on 1 = off Figure 9.6
P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 +5V 8051 EA VCC Reset XTAL1 XTAL2 VSS 8 LEDs are connected to Port 1 and linked to 5V supply The LEDs can directly be turned ON/OFF by the 8051 Under this connection, the LEDs will be OFF when port bit is at logic 1 ON when port bit is at logic 0 Figure 9.6

12 Example 9.1 : Control the 8 LEDs ON/OFF at the same time
All LEDs ON All LEDs OFF

13 Move the content of A to P1
Program Listing for Example 9.1 ORG 0000H CLR A LOOP: MOV P1, A CPL A ACALL DELAY AJMP LOOP DELAY: MOV R6, #250 DL1: MOV R7, #200 DL2: DJNZ R7, DL2 DJNZ R6, DL1 RET END Start Set A = 00 Move the content of A to P1 Delay for 0.1s Invert the content of A Assume 12MHz clock, determine the delay time.

14 Example 9.2 : Glowing a LED in rotating sequence
ORG 0000H START: MOV R1, #07H MOV A, # B LEFT: MOV P1, A ACALL DELAY RL A DJNZ R1, LEFT ; MOV R1, #07H MOV A, # B RIGHT: MOV P1, A RR A DJNZ R1, RIGHT AJMP START DELAY: ……….

15 Example 9.3: Turning LEDs ON/OFF in a preset sequence by using a Look-up Table

16 Program Listing of Example 9.3
ORG 0000H START: MOV R0, #OKDATA+1 MOV DPTR, #DATA MOV R1, #00H LOOP: MOV A, R1 MOVC MOV P1, A ACALL DELAY INC R1 DJNZ R0, LOOP AJMP START ; DELAY: MOV R5, #2 DL1: MOV R6, #250 DL2: MOV R7, #200 DL3: DJNZ R7, DL3 DJNZ R6, DL2 DJNZ R5, DL1 RET DATA: DB B DB B DB B DB B DB B DB B ; OK: DB B END

17 Exercise: Write a 8051 program, using a look-up table, to
light-up the LEDs in the sequence as shown below

18 Simple I/O applications
+5V 8051 EA VCC Reset XTAL1 XTAL2 VSS P3.7 P3.6 P3.5 P3.4 SW1 SW2 SW3 SW4 Figure 9.7

19 Example 9. 4: Refer to the 8051 circuit in figure 9
Example 9.4: Refer to the 8051 circuit in figure 9.5, write a 8051 program to light-up the LEDs in the pattern as shown below when the respect switch is closed. When SW1 Closed When SW3 Closed When SW4 Closed When SW2 Closed Priority: SW SW SW SW4 YELLOW=ON RED =OFF

20 Flow Chart of Example 9.4 2 Start Y SW1 closed? SW1 Handler
Initialization Set P3 as input port Read SW1SW4 status SW1 closed? SW2 closed? SW3closed? SW4 closed? SW1 Handler Y SW2 Handler SW3 Handler SW4 Handler 2 1 N

21 Program Listing of Example 9.4
P1.x = 0, ON P1.x = 1. OFF Program Listing of Example 9.4 CASE2 MOV A, R2 MOV P1, A ACALL DELAY XRL A, # B AJMP TEST ; CASE3 MOV A, R3 XRL A, # B MOV P1, A CASE4 MOV A, R4 ACALL DELAY XRL A, # B DELAY: ……….. END ORG 0000H MOV R1, # B MOV R2, # B MOV R3, # B MOV R4, # B ; TEST: ORL P3, #0FFH JNB P3.7, CASE1 JNB P3.6, CASE2 JNB P3.5, CASE3 JNB P3.4, CASE4 AJMP TEST CASE1: MOV A, R1 MOV P1, A ACALL DELAY XRL A, # B

22 7-Segment LED Numeric Display
A single-character display panel Contains 7 LED segments arranged as an “8” Two configurations: common-anode and common-cathode a b c d e f g Segment Pattern Dp

23 7-Segment LED Numeric Display
Common-anode configuration Common-cathode configuration a b c d e f g Dp Common Pull-high Pull-low

24 7-Segment LED Numeric Display
Segment displays are driven by connecting each segment to a port bit, or they can be driven by decoder/driver IC Output Port bit 7 6 5 4 3 2 1 Display segment Dp g f e d c b a Normally the LED should be connected to the power via resistors to protect them from burning When using common-cathode configuration, a segment will be lit only if the lead of the segment connected with a High voltage and the common cathode lead with Low voltage

25 7-Segment LED Numeric Display
8051 b c d e f g a XTAL1 XTAL2 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 Figure 9.8 Vcc Dp. Use R3 as counter, write a 8051 assembly language program using look-up table method, to display the value in R3 to a 7-segment display

26 Program Listing Display 0,1,2,,,,8,9,0,1,2,3…. BCD addition ORG 0000H
MOV R3, #00H LOOP: MOV DPTR, #TABLE MOV A, R3 MOVC ; ; Display numbers on 7-segment display MOV P2, A ACALL DELAY ; Increase R3 by 1 and loop back ADD A, #1 DA A ANL A, #0FH MOV R3, A AJMP LOOP DELAY: ………….. TABLE: DB B ; 0 DB B ; 1 DB B ; 2 DB B ; 3 DB B ; 4 DB B ; 5 DB B ; 6 DB B ; 7 DB B ; 8 DB B ; 9 ; =ON, 1=OFF END Output port , P2 7 6 5 4 3 2 1 Display segment Dp g f e d c b a 7-segment ‘0’ BCD addition

27 Dot-matrix LED Display
Consists of a number of LED arranged in the form of a matrix e.g. 35 LED in a 5 columns x 7 rows matrix, or 64 LED in a 8 x 8 matrix To display a digit/character, use the method of scanning a b c d e f g 1 2 3 4 5 i.e. scan a column at a time. If the scanning is fast enough, it “appears” that the digit/character is displayed (due to illusion of our eyes)

28 Dot-matrix LED Display
Internal circuitry of a 5 x 7 dot matrix display is shown on the right Voltage should be supplied to terminals C and 1 to light up the LED indicated in this picture b c d e f g 1 2 3 4 5

29 Dot-matrix LED Display
8051 Reset XTAL1 XTAL2 VSS EA Vcc P1.0 P1.1 P1.2 P1.3 P1.4 c d e f g a b 1 2 3 4 5 Repeat 100 times Drive Column P1 Method On column Off On column On column On column On column

30 Dot-matrix LED Display
Example: Displaying the character “E” on the dot-matrix. b c d e f g a 1 2 3 4 5 b c d e f g a 1 2 3 4 5 b c d e f g a b c d e f g a 1 2 3 4 5 1 2 3 4 5 Step 1: signals on pins pins – “10000” pins gfedcba – “ ” Step 2: signals on pins pins – “01000” pins gfedcba – “ ” Step 3: signals on pins pins – “00100” pins gfedcba – “ ” Displaying the character “E” on the 5x7dot-matrix. 1 2 3 4 5 b c d e f g a 1 2 3 4 5 b c d e f g a Step 4: signals on pins pins – “00010” pins gfedcba – “ ”

31 Code Words and Displays of ‘0’ to ‘4’
B B B B B B B B B B B B B B B B B B B B B B

32 Code Words and Displays of ‘5’ to ‘9’
B B B B B B B B B B B B B B B B B B B

33 Program Listing – character display on 5x7 Dot-matrix display (1/2)
ORG 0000H START: MOV DPTR, #TABLE ; point to the starting add of 1st char MOV R3, #10 ; display 10 characters: 0,1,2,3,,,,,9,0,1,…. LOOP: MOV R2, #100 ; scan 100 times for each character SCAN: ACALL SCAN1 ; 10ms x 100 = 1000ms DJNZ R2, SCAN INC DPTR ; increase DPTR by 5 to INC DPTR ; point to the starting address of INC DPTR ; the next character INC DPTR DJNZ R3, LOOP ; loop back to display 10 char AJMP START ; ====================== ; == Scan Subroutine == SCAN1: MOV R1, #00H ; R1 points to the starting add of a char MOV R5, # B ; start from the leftmost column MOV R4, #05 ; there are 5 columns, R4 as a counter ! LOOP1: MOV A, R1 ; get the code at add R1+DPTR MOVC MOV P3, A ; send the code to the dot-matrix display (ROW) MOV P1, R5 ; turn-on a particular transistor (COLUMN)

34 Program Listing – character display on 5x7 Dot-matrix display (2/2)
MOV R6, #5 ; delay for 2ms delay routine DL1: MOV R7, # ; delay routine DL2: DJNZ R7, DL ; delay routine DJNZ R6, DL ; delay routine ORL P1, # B ; turn-off display ANL P1,# B ; turn-off display MOV A, R5 ; RL A ; move to next column MOV R5, A ; totally there are 5 columns INC R1 ; NEXT COLUMN DATA DJNZ R4, LOOP1 ; RET ; return the main program ; ============================ ; == Character Table == TABLE: DB B ; codes for 0 DB B DB B DB B DB B DB B ; code for 1 : ; codes for 2 to 9 : ; END

35 Simple I/O Interfacing
EEE3410 Microcontroller Applications Department of Electrical Engineering │ END of Lecture 9 │ Simple I/O Interfacing


Download ppt "Simple I/O Interfacing"

Similar presentations


Ads by Google