Line 3: Line 3:
 
In this tutorial, we will see how we could interface a simple switch to micrcontroller. Yes, it is indeed very simple, later in this tutorial we will do some logical operations with LEDs and Switches.<br />
 
In this tutorial, we will see how we could interface a simple switch to micrcontroller. Yes, it is indeed very simple, later in this tutorial we will do some logical operations with LEDs and Switches.<br />
 
<br />
 
<br />
 +
 +
 
=Switch Basics=
 
=Switch Basics=
 
[[File:Switch Interface 8051.PNG|150x300px|right|Figure 1: A basic Switch]]
 
[[File:Switch Interface 8051.PNG|150x300px|right|Figure 1: A basic Switch]]
Line 10: Line 12:
 
Now we could go ahead and interface it to the microcontroller, but we would rather interface 8 switches and 8 LED's to two ports as shown in the schematic below.<br />
 
Now we could go ahead and interface it to the microcontroller, but we would rather interface 8 switches and 8 LED's to two ports as shown in the schematic below.<br />
 
<br />
 
<br />
 +
 +
 
=Schematic=
 
=Schematic=
 
[[File:8051 SwitchesLEDs INTERFACE.PNG|650x400px|framed|Figure 2: Schematic Diagram]]
 
[[File:8051 SwitchesLEDs INTERFACE.PNG|650x400px|framed|Figure 2: Schematic Diagram]]
Line 17: Line 21:
 
}}  
 
}}  
  
{|class ="wikitable floatright" style="text-align:center"
+
 
 +
=Experiments=
 +
{{Popup|type=l|text=<br/>
 +
======1. Read Switches and Display Status on LEDs======
 +
This a very simple one, configure PORT3 (switches) as inputs and PORT2 (LEDs) as outputs; read the switch status and display on LEDs.
 +
======2. Logical Operations with LEDs and Switches======
 +
For this experiment, we will divide switches into three groups as shown in table 1. Switches connected to '''P3.7 and P3.6''' are Operators,they are selected as shown in table 2 to perform '''bit-wise''' logical operations on '''Group A''' and '''Group B'''.
 +
}}
 +
 
 +
'''Table:1'''
 +
{|class ="wikitable" style="text-align:center;margin: 1em auto 1em auto"
 
|-
 
|-
|colspan=2|'''Operation'''||colspan=3|'''Group A'''||colspan=3|'''Group B'''
+
!colspan=2|'''Operation'''||colspan=3|'''Group A'''||colspan=3|'''Group B'''
 
|-
 
|-
 
|P3.7||P3.6||P3.5||P3.4||P3.3||P3.2||P3.1||P3.0
 
|P3.7||P3.6||P3.5||P3.4||P3.3||P3.2||P3.1||P3.0
 
|}
 
|}
 
+
'''Table 2:'''
{| class="wikitable floatright"
+
{| class ="wikitable" style="text-align:center;margin: 1em auto 1em auto"
 
|-
 
|-
 
! '''P3.7''' !! '''P3.6''' !! '''Operation'''
 
! '''P3.7''' !! '''P3.6''' !! '''Operation'''

Revision as of 20:22, 19 December 2013


Objective

In this tutorial, we will see how we could interface a simple switch to micrcontroller. Yes, it is indeed very simple, later in this tutorial we will do some logical operations with LEDs and Switches.


Switch Basics

Figure 1: A basic Switch

If we directly connect a switch to one of the microcontroller port pins, the pin floats when the switch is open. Meaning, it is not at a fixed logic level 0v or 5v. Hence we pull the pin up through a resistor to 5v(LOGIC 1), as shown in the figure 1. Now, whenever the switch is pressed, it grounds(LOGIC 0) the port pin.

Now we could go ahead and interface it to the microcontroller, but we would rather interface 8 switches and 8 LED's to two ports as shown in the schematic below.


Schematic

Figure 2: Schematic Diagram

As we can see the schematic has basic circuits for oscillator, reset and power connections for the micrcontroller.

  • A DIP (dual in line package) Switch, array of 8 switches is connected to PORT3 AND 8 LEDs to PORT2.
  • Observe the RR1 component, it is array of 8 resistors in a single pack(SIP). It is as good as connecting 8 pullup resistors as shown in figure 1. You could also use 8 discrete resistors as well.


Experiments


1. Read Switches and Display Status on LEDs

This a very simple one, configure PORT3 (switches) as inputs and PORT2 (LEDs) as outputs; read the switch status and display on LEDs.

2. Logical Operations with LEDs and Switches

For this experiment, we will divide switches into three groups as shown in table 1. Switches connected to P3.7 and P3.6 are Operators,they are selected as shown in table 2 to perform bit-wise logical operations on Group A and Group B.

Table:1

Operation Group A Group B
P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0

Table 2:

P3.7 P3.6 Operation
0 0 AND
0 1 OR
1 0 XOR
1 1 INVERT(group A)