<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://script.spoken-tutorial.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://script.spoken-tutorial.org/index.php?action=history&amp;feed=atom&amp;title=OpenPLC-with-LDmicro%2FC2%2FImplementing-OR-and-XOR-logic-gates%2FEnglish</id>
		<title>OpenPLC-with-LDmicro/C2/Implementing-OR-and-XOR-logic-gates/English - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://script.spoken-tutorial.org/index.php?action=history&amp;feed=atom&amp;title=OpenPLC-with-LDmicro%2FC2%2FImplementing-OR-and-XOR-logic-gates%2FEnglish"/>
		<link rel="alternate" type="text/html" href="https://script.spoken-tutorial.org/index.php?title=OpenPLC-with-LDmicro/C2/Implementing-OR-and-XOR-logic-gates/English&amp;action=history"/>
		<updated>2026-05-13T21:13:48Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.23.17</generator>

	<entry>
		<id>https://script.spoken-tutorial.org/index.php?title=OpenPLC-with-LDmicro/C2/Implementing-OR-and-XOR-logic-gates/English&amp;diff=55323&amp;oldid=prev</id>
		<title>Nirmala Venkat: Created page with &quot; {| style=&quot;border-spacing:0;&quot; | style=&quot;border:1pt solid #000000;padding:0.176cm;&quot;| &lt;center&gt;'''Visual Cue'''&lt;/center&gt; | style=&quot;border:1pt solid #000000;padding:0.176cm;&quot;| &lt;cent...&quot;</title>
		<link rel="alternate" type="text/html" href="https://script.spoken-tutorial.org/index.php?title=OpenPLC-with-LDmicro/C2/Implementing-OR-and-XOR-logic-gates/English&amp;diff=55323&amp;oldid=prev"/>
				<updated>2021-07-02T08:04:54Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot; {| style=&amp;quot;border-spacing:0;&amp;quot; | style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;Visual Cue&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt; | style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| &amp;lt;cent...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| &amp;lt;center&amp;gt;'''Visual Cue'''&amp;lt;/center&amp;gt;&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| &amp;lt;center&amp;gt;'''Narration'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Slide 1: &lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Welcome to the spoken tutorial on '''Implementing OR &amp;amp; XOR logic gates'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Slide 2: Learning Objectives&lt;br /&gt;
&lt;br /&gt;
How to implement logic gates&lt;br /&gt;
&lt;br /&gt;
* OR&lt;br /&gt;
* XOR&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| In this tutorial, we will implement '''OR &amp;amp; XOR logic gates''' in '''LDmicro'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Slide 3: System Requirements&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04''' '''OS&lt;br /&gt;
* LDmicro&lt;br /&gt;
* OpenPLC Mainboard&lt;br /&gt;
* 24V, 2A SMPS&lt;br /&gt;
* USBasp programmer&lt;br /&gt;
* Traffic Light module&lt;br /&gt;
* Switchboard module&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| To record this tutorial I am using:&lt;br /&gt;
&lt;br /&gt;
* '''Ubuntu Linux 18.04''' operating system&lt;br /&gt;
* '''LDmicro'''&lt;br /&gt;
* '''OpenPLC Mainboard'''&lt;br /&gt;
* '''24V, 2A SMPS'''&lt;br /&gt;
* '''USBasp''' programmer&lt;br /&gt;
* '''Traffic Light''' module and &lt;br /&gt;
* '''Switchboard''' module&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Slide 4: Pre-requisites&lt;br /&gt;
&lt;br /&gt;
* Normal Contact and Coil&lt;br /&gt;
* Negated Contact and Coil&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| &lt;br /&gt;
* To follow this tutorial, you should know the working of &lt;br /&gt;
# '''Normal Contact''' and '''Coil'''&lt;br /&gt;
# '''Negated Contact''' and '''Coil'''&lt;br /&gt;
&lt;br /&gt;
* If not, please refer to the relevant tutorials in this series on this website.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Slide 5: Prerequisites - Hardware setup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
hardware-prerequisite.jpg&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Connect''' SMPS''' and '''USBasp''' to the '''Mainboard''' as shown in the picture.&lt;br /&gt;
&lt;br /&gt;
Keep these connections throughout this tutorial.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| First we will see how to implement '''OR gate'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Slide 6: OR gate&lt;br /&gt;
&lt;br /&gt;
'''OR''' gate outputs 0 only when all of its inputs are 0&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| We know that '''OR gate''' outputs 0 only when all of its inputs are 0.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Open LDmicro&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Let us open '''LDmicro'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Click Instructions -&amp;gt; Insert Contact&lt;br /&gt;
&lt;br /&gt;
Place the cursor to the right of Xnew &amp;gt;&amp;gt; &lt;br /&gt;
Click Instructions -&amp;gt; Insert Coil&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Insert a '''Contact''' and a '''Coil''' as shown.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Double-click on Xnew&lt;br /&gt;
&amp;gt;&amp;gt; Type ‘switch1’ in the name box &lt;br /&gt;
&amp;gt;&amp;gt; Click OK button &lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Rename the '''Contact''' as '''‘switch1’.'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Double-click on Ynew &lt;br /&gt;
&amp;gt;&amp;gt; Type ‘LED’ in the name box &lt;br /&gt;
&amp;gt;&amp;gt; Click OK button &lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Then, rename the '''Coil''' as '''‘LED’.'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Place the cursor to the below Xswitch1&lt;br /&gt;
&amp;gt;&amp;gt; Click Instructions -&amp;gt; Insert Contact&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Now place the cursor below '''Xswitch1 '''and insert a '''Contact'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Double-click on Xnew &lt;br /&gt;
&amp;gt;&amp;gt; Type ‘switch2’ in the name box &lt;br /&gt;
&amp;gt;&amp;gt; Click OK button&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Rename the new '''Contact''' as '''’switch2’'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| We will now check the working of this '''logic'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Click Simulate -&amp;gt; Simulation mode &lt;br /&gt;
&amp;gt;&amp;gt; Click Simulate -&amp;gt; Real-time simulation&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Let us turn '''on''' the '''simulation mode'''.&lt;br /&gt;
&lt;br /&gt;
For that, click '''Simulate''' and then on '''Simulation mode.'''&lt;br /&gt;
&lt;br /&gt;
Next, start '''real-time simulation''' as shown.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Highlight the state of Xswitch and YLED&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Initially the states of both the '''Contacts''' and '''Coil''' are 0.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Double-click on Xswitch1 &amp;gt;&amp;gt; Highlight the state of the ‘YLED'&lt;br /&gt;
&amp;gt;&amp;gt; Double-click on Xswitch1 &lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Change the state of '''Xswitch1''' to 1.&lt;br /&gt;
&lt;br /&gt;
We can observe the state of '''YLED''' is 1.&lt;br /&gt;
&lt;br /&gt;
Change the state of '''Xswitch1''' back to 0.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Double-click on Xswitch2 &lt;br /&gt;
&amp;gt;&amp;gt; Highlight the state of the ‘YLED'&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Now, change the state of '''Xswitch2''' to 1.&lt;br /&gt;
&lt;br /&gt;
We can observe the state of '''YLED''' is 1.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Double-click on Xswitch1&lt;br /&gt;
&amp;gt;&amp;gt; Highlight the state of the ‘YLED'&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Now again change the state of '''Xswitch1''' to 1.&lt;br /&gt;
&lt;br /&gt;
We can observe that the state of '''YLED''' is 1.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| That is, output state is 0 only when both the inputs states are 0.&lt;br /&gt;
&lt;br /&gt;
Thus, resembling the '''truth table''' of an '''OR gate'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Click Simulate -&amp;gt; Halt Simulation&lt;br /&gt;
&amp;gt;&amp;gt; Click Simulate -&amp;gt; Simulation Mode&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Now, turn '''off''' the '''simulation mode'''.&lt;br /&gt;
&lt;br /&gt;
For that, click '''Simulate''' and then on '''Halt Simulation.'''&lt;br /&gt;
&lt;br /&gt;
Then click '''Simulate''' and '''Simulation Mode.'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Now let us '''compile''' the '''logic'''.&lt;br /&gt;
&lt;br /&gt;
The detailed steps on how to '''compile''' and save the '''logic''' are explained in the earlier tutorials. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Click on Settings &amp;gt;&amp;gt; Click on Microcontroller&lt;br /&gt;
&amp;gt;&amp;gt; Select AVR ATmega16 40-PDIP &lt;br /&gt;
&lt;br /&gt;
Click on Settings &lt;br /&gt;
&amp;gt;&amp;gt; Click on MCU parameters &lt;br /&gt;
&amp;gt;&amp;gt; Change Crystal frequency to 16&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Click on '''Settings''' and select the '''microcontroller AVR ATmega16 40-PDIP.''' &lt;br /&gt;
&lt;br /&gt;
Adjust its '''parameters''' as shown here.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Double-click on Xswitch1 in the I/O list&amp;gt;&amp;gt; Select PC0&lt;br /&gt;
&amp;gt;&amp;gt; Click OK button&lt;br /&gt;
Double-click on Xswitch2 in the I/O list &lt;br /&gt;
&amp;gt;&amp;gt; Select PC1 &amp;gt;&amp;gt; Click OK button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Double-click on YLED in the I/O list&amp;gt;&amp;gt; Select PA0 &amp;gt;&amp;gt; Click OK button&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Assign '''pin PC0''' to '''Xswitch1''' and '''PC1''' to '''Xswitch2'''.&lt;br /&gt;
&lt;br /&gt;
Assign '''PA0''' to '''YLED.'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Compile&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| '''Compile''' the '''logic''' as '''‘orgate.hex’'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Save the file&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Save the file as '''‘orgate.ld’''' as shown.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Now we will see the working of this '''logic''' on hardware.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Connect Mainboard to PC using USBasp&lt;br /&gt;
&lt;br /&gt;
laptop-usbasp.jpg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Connect the '''Mainboard''' to your laptop using '''USBasp'''.&lt;br /&gt;
&lt;br /&gt;
Turn '''on''' the '''power supply'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Open terminal &amp;gt;&amp;gt; Type cd Desktop/LDmicro &amp;gt;&amp;gt; Press ENTER &amp;gt;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
type ‘'''avrdude -c usbasp -p m16 -U flash:w:orgate.hex’ '''&amp;gt;&amp;gt; Press ENTER&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Open the '''Terminal''' by pressing '''CTRL+ALT+T''' keys simultaneously.&lt;br /&gt;
&lt;br /&gt;
Go to the folder where you have saved the '''hex file'''.&lt;br /&gt;
&lt;br /&gt;
Type the '''command''' as shown to upload the '''hex''' file to the '''Mainboard'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Remove the '''USBasp''' connection from the laptop.&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Turn '''off''' the '''power supply'''.&lt;br /&gt;
&lt;br /&gt;
Remove the '''USBasp''' connection from the laptop.&lt;br /&gt;
&lt;br /&gt;
This will prevent any hardware damage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Display the image orgate.png&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Let us see the connection details now. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Display the image orgate.png&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Connect '''GND pin''' of the red '''LED''' of '''Traffic Light module''' to '''GND pin''' of the '''Mainboard'''.&lt;br /&gt;
&lt;br /&gt;
Then connect the '''+5V pin''' of the red '''LED''' to '''PA0 pin''' of the '''Mainboard'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Display the image orgate.png&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Connect '''GND''' and '''5V''' of '''Switchboard''' to '''GND''' and '''5V''' of the '''Mainboard''' respectively.&lt;br /&gt;
&lt;br /&gt;
Connect '''NO1''' to '''PC0''' of the '''Mainboard'''.&lt;br /&gt;
&lt;br /&gt;
Connect '''NO2''' to '''PC1''' of the '''Mainboard'''.&lt;br /&gt;
&lt;br /&gt;
Make the connections as shown in the picture.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Switch on the power&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Turn '''on''' the '''power supply'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Point to red LED&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| We can see that the red '''LED''' is '''off''' initially.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Press any one switch &lt;br /&gt;
&lt;br /&gt;
Press both the switches&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| It will start glowing when either one of the '''switches''' is pressed.&lt;br /&gt;
&lt;br /&gt;
It will also glow when both of the '''switches''' are pressed at the same time.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Thus, for an '''OR gate''' the inputs i.e. '''Contacts''' should be parallel to each other.&lt;br /&gt;
&lt;br /&gt;
The output i.e. '''Coil''' should be in series with both the inputs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Switch off the power&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Turn '''off''' the '''power supply'''.&lt;br /&gt;
&lt;br /&gt;
Remove the connections made for this example.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| We will now learn about '''XOR gate'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Slide 6: XOR gate&lt;br /&gt;
&lt;br /&gt;
Boolean equation:&lt;br /&gt;
&lt;br /&gt;
*A’B+A’B - (('''NOT''' A) '''AND''' B) '''OR''' (A '''AND''' ('''NOT''' B))&lt;br /&gt;
&lt;br /&gt;
*It is a combination of NOT, AND and OR gates&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| We know the '''boolean''' equation of an '''XOR gate''' with inputs '''A''' and '''B''' will be '''AB’+A’B'''.&lt;br /&gt;
&lt;br /&gt;
Thus it is a combination of '''NOT''', '''AND''' and '''OR gates'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| We will now see how to implement it on '''LDmicro'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Switch back to LDmicro&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Switch back to '''LDmicro'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Instead of creating a new file, we will make changes in the previous file itself.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Place cursor to the right of Xswitch1 &amp;gt;&amp;gt; Click Instructions -&amp;gt; Insert Contact &amp;gt;&amp;gt; Double-click on Xnew &amp;gt;&amp;gt; Check the Negated box &amp;gt;&amp;gt; Type switch2 in the name box &amp;gt;&amp;gt; Click OK button&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Insert a '''Contact''' to the right of '''Xswitch1'''.&lt;br /&gt;
&lt;br /&gt;
Configure it as '''Negated''' and rename it as '''switch2''' as shown.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Place cursor to the right of Xswitch2 &amp;gt;&amp;gt; Click Instructions -&amp;gt; Insert Contact &amp;gt;&amp;gt; Double-click on Xnew &amp;gt;&amp;gt; Check the Negated box &amp;gt;&amp;gt; Type switch1 in the name box &amp;gt;&amp;gt; Click OK button&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Then insert a '''Contact''' to the right of '''Xswitch2 '''which is in the parallel rung.&lt;br /&gt;
&lt;br /&gt;
Configure it as '''Negated''' and rename it as '''switch1''' as shown.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| We will now check the working of this '''logic'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Click Simulate -&amp;gt; Simulation mode &amp;gt;&amp;gt; Click Simulate -&amp;gt; Real-time simulation&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Start '''real-time simulation''' as shown.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Highlight the state of Xswitch and YLED&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Initially the state of both the '''Contacts''' and '''Coil''' are 0.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Double-click on Xswitch1 &amp;gt;&amp;gt; Highlight the state of the ‘YLED' &amp;gt;&amp;gt; Double-click on Xswitch1&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Change the state of '''Xswitch1''' to 1.&lt;br /&gt;
&lt;br /&gt;
We can observe the state of '''YLED''' is 1.&lt;br /&gt;
&lt;br /&gt;
Change the state of '''Xswitch1''' back to 0.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Double-click on Xswitch2 &amp;gt;&amp;gt; Highlight the state of the ‘YLED'&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Now, change the state of '''Xswitch2''' to 1.&lt;br /&gt;
&lt;br /&gt;
We can observe the state of '''YLED''' is 1.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Double-click on Xswitch1 &amp;gt;&amp;gt; Highlight the state of the ‘YLED'&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Now again change the state of '''Xswitch1''' to 1.&lt;br /&gt;
&lt;br /&gt;
We can observe that the state of '''YLED''' changes to 0.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| That is the output state is 0 when both the inputs have the same state.&lt;br /&gt;
&lt;br /&gt;
Thus, resembling the '''truth table''' of an '''XOR gate'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Click Simulate -&amp;gt; Halt Simulation &amp;gt;&amp;gt; Click Simulate -&amp;gt; Simulation Mode&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Turn '''off''' the '''simulation mode''' as shown.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Now let us '''compile''' the '''logic'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Highlight I/O list and status bar&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| We can observe that the '''microcontroller''' and its '''parameters''' are already set.&lt;br /&gt;
&lt;br /&gt;
'''Pin''' assignment is also already done.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Click on Compile &amp;gt;&amp;gt; Click on Compile As &amp;gt;&amp;gt; Go to Desktop/LDmicro folder &amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Rename it as ‘xorgate.hex’ &amp;gt;&amp;gt; Click on Save.&lt;br /&gt;
&lt;br /&gt;
Click OK button&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| '''Compile''' the '''logic''' as '''xorgate.hex '''using '''‘Compile As’''' option.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Click on File &amp;gt;&amp;gt; Click on Save As &amp;gt;&amp;gt; Go to Desktop/LDmicro folder &amp;gt;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Rename it as ‘xorgate.ld’ &amp;gt;&amp;gt; Click on Save&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Then save the '''ladder diagram''' as '''‘xorgate.ld’''' using the '''‘Save As’ '''option.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Now we will see the working of this '''logic''' on hardware.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Connect Mainboard to PC using USBasp&lt;br /&gt;
&lt;br /&gt;
laptop-usbasp.jpg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Connect the '''Mainboard''' to your laptop using '''USBasp'''.&lt;br /&gt;
&lt;br /&gt;
Turn '''on''' the '''power supply'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Open terminal &amp;gt;&amp;gt; Type cd Desktop/LDmicro &amp;gt;&amp;gt; Press ENTER &amp;gt;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
type ‘'''avrdude -c usbasp -p m16 -U flash:w:xorgate.hex’ '''&amp;gt;&amp;gt; Press ENTER&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Switch back to the '''terminal'''.&lt;br /&gt;
&lt;br /&gt;
Type the '''command''' as shown to upload the '''hex''' file to the '''Mainboard'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Remove the '''USBasp''' connection from the laptop.&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Turn '''off''' the '''power supply'''.&lt;br /&gt;
&lt;br /&gt;
Remove the '''USBasp''' connection from the laptop.&lt;br /&gt;
&lt;br /&gt;
This will prevent any hardware damage.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Display the image xorgate.png&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Let us see the connection details now. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Display the image xorgate.png&lt;br /&gt;
&lt;br /&gt;
Switch on the power&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| The connections will be same as in the '''OR gate '''example.&lt;br /&gt;
&lt;br /&gt;
Turn '''on''' the '''power supply'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Point to red LED&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Initially the red '''LED''' is '''off'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Press any one switch &amp;gt;&amp;gt; Press both the switches&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| It will start glowing only when either of the '''switches''' are pressed, but not both.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Switch off the power&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Turn '''off''' the '''power supply'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| &lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| This brings us to the end of this tutorial.&lt;br /&gt;
&lt;br /&gt;
Let us summarize.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Slide 7: Summary&lt;br /&gt;
&lt;br /&gt;
How to implement logic gates&lt;br /&gt;
&lt;br /&gt;
* OR&lt;br /&gt;
* XOR &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| In this tutorial we learnt to implement '''logic gates''' &lt;br /&gt;
&lt;br /&gt;
* '''OR''' and&lt;br /&gt;
* '''XOR'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;&amp;quot;| Slide 8: Assignment: &lt;br /&gt;
&lt;br /&gt;
Implement 2 input XNOR logic gate&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;&amp;quot;| As an assignment, try to implement 2 input '''XNOR logic gate'''.&lt;br /&gt;
&lt;br /&gt;
'''Truth table''' of '''XNOR gate''' is shown here.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Slide 9:&lt;br /&gt;
&lt;br /&gt;
About Spoken Tutorial project&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| The video at the following link summarises the Spoken Tutorial project.&lt;br /&gt;
&lt;br /&gt;
Please download and watch it.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Slide 10:&lt;br /&gt;
&lt;br /&gt;
Spoken Tutorial workshops&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| The''' Spoken Tutorial Project''' team:&lt;br /&gt;
&lt;br /&gt;
* conducts workshops using spoken tutorials and&lt;br /&gt;
* gives certificates on passing online tests.&lt;br /&gt;
&lt;br /&gt;
For more details, please write to us.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Slide 11:&lt;br /&gt;
&lt;br /&gt;
Forum for specific questions:&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Please post your timed queries in this forum&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Slide 12:&lt;br /&gt;
&lt;br /&gt;
Forum for specific questions:&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| &lt;br /&gt;
*Do you have any general / technical questions on OpenPLC?&lt;br /&gt;
&lt;br /&gt;
*Please visit the FOSSEE forum and post your question.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Slide 13:&lt;br /&gt;
&lt;br /&gt;
Acknowledgement&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Spoken Tutorial Project is funded by MHRD, Government of India.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| Slide 14:&lt;br /&gt;
&lt;br /&gt;
Thank you slide&lt;br /&gt;
| style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;| This tutorial has been contributed by FOSSEE and Spoken Tutorial Project, IIT Bombay.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And this is Harsha Priyanka from FOSSEE team, signing off.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thanks for watching.&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nirmala Venkat</name></author>	</entry>

	</feed>