<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-330726511081228200</id><updated>2012-01-09T16:29:06.536+05:30</updated><category term='BASIC'/><category term='i/o ports'/><category term='8052'/><category term='delay generator'/><category term='h-bridge'/><category term='assembler'/><category term='communication'/><category term='motor'/><category term='RAM'/><category term='deisgn with microcontrollers'/><category term='interpreter'/><category term='microcontroller'/><category term='transistors'/><category term='microcontrollers'/><category term='8051'/><category term='8082'/><category term='electronic softwares'/><category term='ROM'/><category term='final year ece projects'/><category term='circuit simulators'/><category term='EEPROM'/><category term='hostcomputer'/><category term='PROM'/><category term='avr'/><category term='compiler'/><category term='cpu'/><category term='serial port'/><title type='text'>CircuitPlanet</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://circuitplanet.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://circuitplanet.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Arun Kumar</name><uri>https://profiles.google.com/106450967102748060653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-Qvye04VFjcc/AAAAAAAAAAI/AAAAAAAAAlY/LmoYIEg8p2c/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>46</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-330726511081228200.post-8989492886157358661</id><published>2011-02-13T18:43:00.000+05:30</published><updated>2011-02-13T18:43:12.249+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='circuit simulators'/><category scheme='http://www.blogger.com/atom/ns#' term='electronic softwares'/><title type='text'>Fedora Electronics Laboratory</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-family: Verdana,sans-serif; font-size: small;"&gt;Fedora Electronic Lab (FEL) is  an open source Linux based operating system custom tailored for EDA community.This is an adavanced design and simulation platform for electronics engineering.FEL is a spin of Fedora. Fedora Spins are alternate version of Fedora, tailored for various types of users via hand-picked application sets and other customizations. So FEL is a a complete operating system which contains free,opensource and best applications  that are hand-picked to meet the requirements of the EDA community. Using FEL electronic engineers,hobbyists and students  can design, simulate and program electronics&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana,sans-serif; font-size: small;"&gt;Fedora Electronic Laboratory provides a complete electronic laboratory setup with reliable open source design tools in order to help you keep in pace with current technological race. It reduces the risk assessment of open source hardware development and enable electronic designers tapeout quickly and efficiently.&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana,sans-serif; font-size: small;"&gt;FEl comes with a wide varitey of opensource EDA tools for designing electronic cirucits,integrated cicuits,VLSI circuits (about 10⁶ to 10⁷ transistors),microcontroller circuits,analog and digital circuits,PCB designing,embedded systems development&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;b style="font-family: Verdana,sans-serif;"&gt;The Fedora Electronic Lab includes design tools for:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-family: Verdana,sans-serif;"&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;    ASIC Analog Circuit Design and Simulation&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;    ASIC Layout, DRC and LVS&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;    Digital Simulation and Verification&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;    RTL and logic synthesis design flows&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;    Circuit and PCB Layout&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;    Micro Controller (µC) Programming and Embedded Systems Development&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;    CAD Tools&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;    Project Management, Peer Review and budget tracking&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;For more information and download details visit&lt;span style="font-size: large;"&gt; &lt;a href="http://spins.fedoraproject.org/fel/"&gt;http://spins.fedoraproject.org/fel/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330726511081228200-8989492886157358661?l=circuitplanet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://circuitplanet.blogspot.com/feeds/8989492886157358661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://circuitplanet.blogspot.com/2011/02/fedora-electronics-laboratory.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/8989492886157358661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/8989492886157358661'/><link rel='alternate' type='text/html' href='http://circuitplanet.blogspot.com/2011/02/fedora-electronics-laboratory.html' title='Fedora Electronics Laboratory'/><author><name>Arun Kumar</name><uri>https://profiles.google.com/106450967102748060653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-Qvye04VFjcc/AAAAAAAAAAI/AAAAAAAAAlY/LmoYIEg8p2c/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-330726511081228200.post-4518203226261035442</id><published>2010-06-26T13:16:00.000+05:30</published><updated>2010-06-26T13:16:49.445+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='circuit simulators'/><category scheme='http://www.blogger.com/atom/ns#' term='electronic softwares'/><title type='text'>Micro-Cap 10 released</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;spectrum software has released a new version of its popular EDA tool "&lt;b&gt;Micro-Cap&lt;/b&gt;".The Micro-Cap 10 has many new features and improvements.Micro-Cap 10 incorporates many incremental refinements reflecting requests received from users. These and other small, incremental refinements are a big part of what makes the product so easy to use. The technical advancements in MC10 are principally four in number:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Threading&lt;/b&gt;&lt;br /&gt;Using threading techniques, multiple CPUs are employed to reduce simulation time.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;PSS&lt;/b&gt;&lt;br /&gt;Periodic Steady State uses techniques pioneered by Aprille and Trick to calculate the periodic steady state, removing any short term transients from the time-domain waveforms, greatly simplifying many types of circuit analysis problems.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Distortion:&lt;/b&gt;&lt;br /&gt;Two completely new analyses make creation of harmonic and intermodulation distortion plots easy.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Optimization&lt;/b&gt;&lt;br /&gt;Optimization has been improved by the addition of three additional methods. The complete list of methods now includes, Powell, Hooke, Levenberg-Marquardt, and Differential Evolution.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;visit to download&amp;nbsp;&lt;a href="http://www.spectrum-soft.com/index.shtm"&gt;http://www.spectrum-soft.com/index.shtm&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330726511081228200-4518203226261035442?l=circuitplanet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://circuitplanet.blogspot.com/feeds/4518203226261035442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://circuitplanet.blogspot.com/2010/06/micro-cap-10-released.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/4518203226261035442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/4518203226261035442'/><link rel='alternate' type='text/html' href='http://circuitplanet.blogspot.com/2010/06/micro-cap-10-released.html' title='Micro-Cap 10 released'/><author><name>Arun Kumar</name><uri>https://profiles.google.com/106450967102748060653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-Qvye04VFjcc/AAAAAAAAAAI/AAAAAAAAAlY/LmoYIEg8p2c/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-330726511081228200.post-1409043641607544945</id><published>2010-01-15T18:39:00.001+05:30</published><updated>2010-01-15T18:39:38.652+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='circuit simulators'/><category scheme='http://www.blogger.com/atom/ns#' term='electronic softwares'/><title type='text'>Circuit Magic:An electrical circuit simulation program</title><content type='html'>&lt;p&gt;&lt;strong&gt;Circuit Magic &lt;/strong&gt;is an electrical circuits simulation program specifically designed for students teaching basics electronics, electrical laws &amp;amp; circuit theory. Unlike many electronic circuit analyzers, Circuit Magic can analyze circuits like a man. Circuits are simulated step by step, using natural solving strategy.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_H-OQr197CAc/S1BowiwXmBI/AAAAAAAAAXI/sLo5QSIfFiM/s1600-h/image%5B2%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_H-OQr197CAc/S1Bo20JHftI/AAAAAAAAAXM/_0R0_HPi2s8/image_thumb.png?imgmax=800" width="180" height="154" /&gt;&lt;/a&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://lh4.ggpht.com/_H-OQr197CAc/S1Bo7AjznZI/AAAAAAAAAXQ/Q9KVCelTLV8/s1600-h/image%5B9%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_H-OQr197CAc/S1BpAlzcRZI/AAAAAAAAAXU/Jh9Vqbrl-Ws/image_thumb%5B5%5D.png?imgmax=800" width="180" height="154" /&gt;&lt;/a&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.circuit-magic.com/downloaden.htm" target="_blank"&gt;&lt;font size="5"&gt;click here to download this software&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;Key Features&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.electronics-circuit.com/mainimage/dott.gif" width="7" height="6" /&gt; Easy to use electrical schematics editor, helping to make an easy task of circuit design&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.electronics-circuit.com/mainimage/dott.gif" width="7" height="6" /&gt; Circuit simulation capability to perform Alternating/Direct currents analysis using Kirchhoff's current and voltage laws, node voltage and mesh current method&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.electronics-circuit.com/mainimage/dott.gif" width="7" height="6" /&gt; Extended text editor&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.electronics-circuit.com/mainimage/dott.gif" width="7" height="6" /&gt; A graphics toolkit to allow text, lines, arc and rectangles to be added as circuit and phasor diagram annotations&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.electronics-circuit.com/mainimage/dott.gif" width="7" height="6" /&gt; Affordable Educational Pricing.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.electronics-circuit.com/mainimage/dott.gif" width="7" height="6" /&gt; Free user support&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330726511081228200-1409043641607544945?l=circuitplanet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://circuitplanet.blogspot.com/feeds/1409043641607544945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://circuitplanet.blogspot.com/2010/01/circuit-magican-electrical-circuit.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/1409043641607544945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/1409043641607544945'/><link rel='alternate' type='text/html' href='http://circuitplanet.blogspot.com/2010/01/circuit-magican-electrical-circuit.html' title='Circuit Magic:An electrical circuit simulation program'/><author><name>Arun Kumar</name><uri>https://profiles.google.com/106450967102748060653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-Qvye04VFjcc/AAAAAAAAAAI/AAAAAAAAAlY/LmoYIEg8p2c/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_H-OQr197CAc/S1Bo20JHftI/AAAAAAAAAXM/_0R0_HPi2s8/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-330726511081228200.post-7638838199747686232</id><published>2010-01-14T20:42:00.001+05:30</published><updated>2010-01-14T20:42:08.467+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='circuit simulators'/><category scheme='http://www.blogger.com/atom/ns#' term='electronic softwares'/><title type='text'>Electronics Assistant:A progrgam for basic electronic calculations</title><content type='html'>&lt;p&gt;Electronics Assistant is a small program designed to perform basic electronics-related calculations. It includes a resistor colour code calculator, resistor, capacitor and potential divider calculators and more. It is a freeware which means it is free to download,modify and distribute&lt;font size="5"&gt;.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.electronics2000.co.uk" target="_blank"&gt;&lt;font size="5"&gt;click here to download the software&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ele-ass" border="0" alt="ele-ass" src="http://lh6.ggpht.com/_H-OQr197CAc/S080QaRprAI/AAAAAAAAAXE/_BK9ImWF1bY/ele-ass_thumb%5B3%5D.png?imgmax=800" width="644" height="470" /&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330726511081228200-7638838199747686232?l=circuitplanet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://circuitplanet.blogspot.com/feeds/7638838199747686232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://circuitplanet.blogspot.com/2010/01/electronics-assistanta-progrgam-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/7638838199747686232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/7638838199747686232'/><link rel='alternate' type='text/html' href='http://circuitplanet.blogspot.com/2010/01/electronics-assistanta-progrgam-for.html' title='Electronics Assistant:A progrgam for basic electronic calculations'/><author><name>Arun Kumar</name><uri>https://profiles.google.com/106450967102748060653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-Qvye04VFjcc/AAAAAAAAAAI/AAAAAAAAAlY/LmoYIEg8p2c/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_H-OQr197CAc/S080QaRprAI/AAAAAAAAAXE/_BK9ImWF1bY/s72-c/ele-ass_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-330726511081228200.post-3668475224124155888</id><published>2010-01-05T12:15:00.001+05:30</published><updated>2010-01-05T12:15:44.642+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>Why is a cell phone called a cell phone?</title><content type='html'>&lt;p&gt;One of the most interesting things about a cell phone is that it is really a radio. Before cell phones, people who needed mobile communications ability installed &lt;strong&gt;radio telephones&lt;/strong&gt; in their cars. In the radio telephone system, there was one central antenna tower per city, and perhaps 25 channels available on that tower. The cellular phone system divides the area of a city into small &lt;strong&gt;cells&lt;/strong&gt; of hexagonal shape(see fig).Each hexagonal cell is installed with a Base Station Tower.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:97920fc1-813a-4693-922a-ccc25e0fd15a" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/cellphone" rel="tag"&gt;cellphone&lt;/a&gt;,&lt;a href="http://technorati.com/tags/base+station" rel="tag"&gt;base station&lt;/a&gt;,&lt;a href="http://technorati.com/tags/radio+transmitter" rel="tag"&gt;radio transmitter&lt;/a&gt;&lt;/div&gt;  &lt;p&gt; This allows extensive &lt;strong&gt;frequency reuse&lt;/strong&gt; across a city, so that millions of people can use cell phones simultaneously.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_H-OQr197CAc/S0Lf4PtCdwI/AAAAAAAAAWE/4apwXyyznhw/s1600-h/image%5B4%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_H-OQr197CAc/S0LgCJRQEwI/AAAAAAAAAWI/3he3LBvzhjI/image_thumb%5B2%5D.png?imgmax=800" width="488" height="396" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Here's how it works: The carrier chops up an area, such as a city, into cells. Each cell is typically sized at about 10 square miles (perhaps 3 miles x 3 miles). Cells are normally thought of as hexagons on a big hexagonal grid. Each cell has a &lt;strong&gt;base station&lt;/strong&gt; that consists of a tower and a small building containing the radio equipment. Cell phones have low-power transmitters in them and the base station is also transmitting at low power. Low-power transmitters have two advantages: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The power consumption of the cell phone, which is normally battery-operated, is relatively low. Low power means small batteries, and this is what has made handheld cellular phones possible.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/li&gt;    &lt;li&gt;The transmissions of a base station and the phones within its cell do not make it very far outside that cell. Therefore, cells can use the same 56 frequencies. The same frequencies can be reused extensively across the city. &lt;/li&gt; &lt;/ul&gt; The cellular approach requires a large number of base stations in a city of any size. A typical large city can have hundreds of towers. But because so many people are using cell phones, costs remain fairly low per user. Each carrier in each city also runs one central office called the &lt;strong&gt;Mobile Telephone Switching Office&lt;/strong&gt; (MTSO). This office handles all of the phone connections to the normal land-based phone system, and controls all of the base stations in the region.  &lt;br /&gt;­ As you move toward the edge of your cell, your cell's base station will note that your signal strength is diminishing. Meanwhile, the base station in the cell you are moving toward (which is listening and measuring signal strength on all frequencies, not just its own one-seventh) will be able to see your phone's signal stre­ngth increasing. The two base stations coordinate themselves through the MTSO, and at some point, your phone gets a signal on a control channel telling it to change frequencies. This &lt;strong&gt;hand off&lt;/strong&gt; switches your phone to the new cell.    &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330726511081228200-3668475224124155888?l=circuitplanet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://circuitplanet.blogspot.com/feeds/3668475224124155888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://circuitplanet.blogspot.com/2010/01/why-is-cell-phone-called-cell-phone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/3668475224124155888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/3668475224124155888'/><link rel='alternate' type='text/html' href='http://circuitplanet.blogspot.com/2010/01/why-is-cell-phone-called-cell-phone.html' title='Why is a cell phone called a cell phone?'/><author><name>Arun Kumar</name><uri>https://profiles.google.com/106450967102748060653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-Qvye04VFjcc/AAAAAAAAAAI/AAAAAAAAAlY/LmoYIEg8p2c/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_H-OQr197CAc/S0LgCJRQEwI/AAAAAAAAAWI/3he3LBvzhjI/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-330726511081228200.post-8096092674000985615</id><published>2010-01-05T11:45:00.001+05:30</published><updated>2010-01-05T11:45:54.494+05:30</updated><title type='text'>EKLAVYA:Technology channel</title><content type='html'>&lt;p&gt;Eklavya is the technology channel&amp;#160; dedicated to technical education and shall run programmes generated at different IITs. This channel&amp;#160; marks the beginning of a new era in the dissemination of technical education in the country.&lt;/p&gt;  &lt;p&gt;The channel was inaugurated by Prof. Murli Manohar Joshi, Honourable Minister, HRD, S&amp;amp;T and Ocean Development on 26th January, 2003. This is a joint initiative of IIT’s and IGNOU and is catalyzed by Ministry of Human Resource Development.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;The vision &lt;/b&gt;is to share the knowledge and expertise with all and to bring about a true socialism in engineering education cutting across all boundaries. Yes, we want to come close to you, particularly the students pursuing the degrees in various disciplines in the area of technology and engineering. &lt;/p&gt;  &lt;p&gt;EKLAVYA epitomizes the true spirit of learning and dedication, so irrespective of wherever you are, you will be able to share the resources available at IITs. And that too, without any Guru Dakshina because it is a free-to-air channel. Your motivation and enthusiasm are the only pre-requisites. It being a totally digital transmission, you will receive crystal clear ../images. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_H-OQr197CAc/S0LYqyNGOzI/AAAAAAAAAVw/8yZQoaUM5Rw/s1600-h/image%5B8%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_H-OQr197CAc/S0LYvsYmoYI/AAAAAAAAAV0/2ugoTwUqCHY/image_thumb%5B4%5D.png?imgmax=800" width="144" height="180" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font color="#0080ff" size="3"&gt;what does this channel broadcast?&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The channel shall be bringing to you the actual IIT classrooms virtually at your door steps. The channel is designed to carry video courses in different disciplines generated at various IITs on weekdays and special interest programmes on Sundays. Currently, eight complete courses are being run in parallel, contributed by IIT Delhi, IIT Kharagpur and IIT Madras and are repeated in the same sequence without a break. Courses from other IITs shall also be made available in future. It started as a 16 hours-a-day affair. From 1st October 2003, it is now a&lt;b&gt; 24 hours Channel.&lt;/b&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_H-OQr197CAc/S0LY5OPwcYI/AAAAAAAAAV4/5kbmR0Gldr0/s1600-h/image%5B13%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_H-OQr197CAc/S0LZDhrhh5I/AAAAAAAAAV8/mRqvyX1ruQs/image_thumb%5B7%5D.png?imgmax=800" width="413" height="297" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;minister for HRD,Prof. Murali Manohar Joshi inaugurating the launch of the Eklavya channel.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font color="#0000ff" size="4"&gt;Technical details to receive the Eklavya channel&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;D o w n&amp;#160;&amp;#160; L i n k &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Through INSAT 3C Satellite on    &lt;br /&gt;&lt;b&gt;C band (74 degrees East),&lt;/b&gt;    &lt;br /&gt;&lt;b&gt;frequency &lt;/b&gt;4165 MHz.,     &lt;br /&gt;&lt;b&gt;Symbol rate&lt;/b&gt; 26.000 SPS, FEC ½,     &lt;br /&gt;&lt;b&gt;Polarization Horizontal&lt;/b&gt;.    &lt;br /&gt;&lt;b&gt;Ask your friendly cable operator&lt;/b&gt;    &lt;br /&gt;to provide this channel so that you could watch your favorite course / programme in the cozy environs of your home.    &lt;br /&gt;Your institute can also receive this signal directly with a little investment on a small dish antennae and a decoder (IRD).    &lt;br /&gt;&lt;b&gt;All that is needed is &lt;/b&gt;    &lt;br /&gt;1) 12 feet / 8feet diameter perforated dish antennae    &lt;br /&gt;2) C-band LNBC     &lt;br /&gt;3) C-band feed horn    &lt;br /&gt;4) Low loss RF Cable Analog     &lt;br /&gt;5) Integrated receiver decoder (IRD) for Digital reception     &lt;br /&gt;6) Television set. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330726511081228200-8096092674000985615?l=circuitplanet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://circuitplanet.blogspot.com/feeds/8096092674000985615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://circuitplanet.blogspot.com/2010/01/eklavyatechnology-channel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/8096092674000985615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/8096092674000985615'/><link rel='alternate' type='text/html' href='http://circuitplanet.blogspot.com/2010/01/eklavyatechnology-channel.html' title='EKLAVYA:Technology channel'/><author><name>Arun Kumar</name><uri>https://profiles.google.com/106450967102748060653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-Qvye04VFjcc/AAAAAAAAAAI/AAAAAAAAAlY/LmoYIEg8p2c/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_H-OQr197CAc/S0LYvsYmoYI/AAAAAAAAAV0/2ugoTwUqCHY/s72-c/image_thumb%5B4%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-330726511081228200.post-7736439129309655130</id><published>2010-01-05T10:07:00.001+05:30</published><updated>2010-01-05T10:08:00.001+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='circuit simulators'/><title type='text'>SIMetrix:A mixed signal circuit simulator</title><content type='html'>&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:487c2973-dca0-4a88-9ed0-c8a01a105e6a" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SIMetrix" rel="tag"&gt;SIMetrix&lt;/a&gt;,&lt;a href="http://technorati.com/tags/CAD" rel="tag"&gt;CAD&lt;/a&gt;,&lt;a href="http://technorati.com/tags/circuit+simulator" rel="tag"&gt;circuit simulator&lt;/a&gt;,&lt;a href="http://technorati.com/tags/xspice" rel="tag"&gt;xspice&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SPICE" rel="tag"&gt;SPICE&lt;/a&gt;,&lt;a href="http://technorati.com/tags/schematic+editors" rel="tag"&gt;schematic editors&lt;/a&gt;,&lt;a href="http://technorati.com/tags/AC+analysis" rel="tag"&gt;AC analysis&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;SIMetrix is a mixed-signal circuit simulator designed for ease and speed of use. It is based on two publicly available programs namely SPICE developed by the CAD/IC group at the department of Electrical Engineering and Computer Sciences, University of California at Berkeley and XSPICE developed by the Computer Science and Information Technology Laboratory, Georgia Tech Research Institute, Georgia Institute of Technology. XSPICE itself was developed from SPICE3C1. &lt;/p&gt;  &lt;p&gt;Although originally derived from these programs SIMetrix includes front and back-end features that dramatically enhance their overall capability. Further, many improvements to the underlying simulation algorithms and device models have been made to the original code to increase accuracy and convergence reliability.&lt;/p&gt;  &lt;p&gt;&lt;font size="5"&gt;&lt;a href="http://www.simetrix.co.uk/site/downloads/download.htm" target="_blank"&gt;click here to download SIMetrix&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_H-OQr197CAc/S0LA0wTzGhI/AAAAAAAAAVY/iV3ZKoP4QnI/s1600-h/simtrex%5B9%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="simtrex" border="0" alt="simtrex" src="http://lh6.ggpht.com/_H-OQr197CAc/S0LBJaymYdI/AAAAAAAAAVc/ICXcD-rBBDY/simtrex_thumb%5B7%5D.png?imgmax=800" width="507" height="449" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;snapshot of schematic editing window&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_H-OQr197CAc/S0LBo6y6uGI/AAAAAAAAAVg/Gld7Iho3KjI/s1600-h/transient%20analysis%5B4%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="transient analysis" border="0" alt="transient analysis" src="http://lh4.ggpht.com/_H-OQr197CAc/S0LB0l4D77I/AAAAAAAAAVk/Dga4-q1IKa4/transient%20analysis_thumb%5B2%5D.png?imgmax=800" width="411" height="305" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;transient analysis of the circuit shown in the previous fig.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_H-OQr197CAc/S0LB8Hz98fI/AAAAAAAAAVo/sm1vGBjMGKo/s1600-h/ac%20analysis%5B4%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ac analysis" border="0" alt="ac analysis" src="http://lh4.ggpht.com/_H-OQr197CAc/S0LCFRjIsyI/AAAAAAAAAVs/wZHCKK7XSwc/ac%20analysis_thumb%5B2%5D.png?imgmax=800" width="431" height="311" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;AC analysis of the circuit&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Features&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;Closely coupled direct matrix analog and event driven digital simulator.&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;Fully integrated hierarchical schematic editor, simulator and graphical post-processor.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Superior convergence for both DC and transient analyses. &amp;quot;Pseudo transient analysis&amp;quot; algorithm solves difficult operating points while enhanced transient analysis algorithm virtually eliminates transient analysis failures.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Advanced swept analyses for AC, DC, Noise and transfer function. 6 different modes available.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Real time noise analysis allowing noise simulation of oscillators and sampled data systems.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Support for BSIM3, BSIM4, MOS9, VBIC and Mextram devices. Compatible with HSPICE model files.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Cross probing of voltage, current and device power from schematic. Current and power available for sub-circuits.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Monte Carlo analysis including comprehensive tolerance specification features..&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Full featured scripting language allowing customised waveform analysis and automated simulation&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Incremental graphing of results as simulation proceeds.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Functional modelling with arbitrary non-linear source and arbitrary linear s-domain transfer function.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Arbitrary logic block for definition of any digital device using descriptive language. Supports synchronous, asynchronous and combinational logic as well as ROMS and RAMS.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Models for saturable magnetic components including support for air-gaps.&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;User definable fixed and popup menus and key definitions.&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size="5"&gt;&lt;a href="http://www.simetrix.co.uk/site/downloads/download.htm" target="_blank"&gt;click here to download SIMetrix&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330726511081228200-7736439129309655130?l=circuitplanet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://circuitplanet.blogspot.com/feeds/7736439129309655130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://circuitplanet.blogspot.com/2010/01/simetrixa-mixed-signal-circuit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/7736439129309655130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/7736439129309655130'/><link rel='alternate' type='text/html' href='http://circuitplanet.blogspot.com/2010/01/simetrixa-mixed-signal-circuit.html' title='SIMetrix:A mixed signal circuit simulator'/><author><name>Arun Kumar</name><uri>https://profiles.google.com/106450967102748060653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-Qvye04VFjcc/AAAAAAAAAAI/AAAAAAAAAlY/LmoYIEg8p2c/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_H-OQr197CAc/S0LBJaymYdI/AAAAAAAAAVc/ICXcD-rBBDY/s72-c/simtrex_thumb%5B7%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-330726511081228200.post-3003429188368237613</id><published>2009-11-29T11:58:00.002+05:30</published><updated>2009-11-29T12:09:33.789+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='final year ece projects'/><category scheme='http://www.blogger.com/atom/ns#' term='microcontrollers'/><category scheme='http://www.blogger.com/atom/ns#' term='deisgn with microcontrollers'/><title type='text'>Design with microcontrollers:Final year ECE projects</title><content type='html'>&lt;ol style="font-family: Verdana,sans-serif;"&gt;&lt;li&gt;&amp;nbsp; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/jgs33_rrw32/Final%20Paper/index.html"&gt;ATmega644 JTAG Debugger&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/rs423_jsb89/rs423_jsb89/rs423_jsb89_Ultrasonic_Haptic_Vision.html"&gt;Ultrasonic Haptic Vision&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/rs423_jsb89/SonarHelmet1.MP4"&gt;MP4&lt;/a&gt;, &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/rs423_jsb89/SonarHelmet2.MP4"&gt;MP4&lt;/a&gt;, &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/rs423_jsb89/SonarBruce.MP4"&gt;MP4&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/apc33_bhn3/apc33_bhn3/index.html"&gt;Haptic appointment manager&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/apc33_bhn3/HapticBelt1.MP4"&gt;MP4&lt;/a&gt; lots of wind and construction noise) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/kwg8_dmd54/kwg8_dmd54/index.html"&gt;3D ultrasonic mouse&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/kwg8_dmd54/3Dmouse.MP4"&gt;MP4&lt;/a&gt;, &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/kwg8_dmd54/3Dmouse2.MP4"&gt;MP4&lt;/a&gt;, &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/kwg8_dmd54/3Dmouse3.MP4"&gt;MP4&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/dat38/Website/index.html"&gt;3D scanner&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/dat38/3Dscanner.MP4"&gt;MP4&lt;/a&gt;) (&lt;a href="http://hackedgadgets.com/2009/05/04/3d-laser-scanner/"&gt;hackedgadgets&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/gh96_jbw48/gh96_jbw48/index.html"&gt;Gesture Recognition Based on Scratch Inputs&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/gh96_jbw48/AcousticGesture.MP4"&gt;MP4&lt;/a&gt;) (&lt;a href="http://www.uelectronics.info/audio-gesture-recognition"&gt;uelectronics&lt;/a&gt;, ) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/cgg27_jpv23/cgg27_jpv23/webpagef.htm"&gt;LED Sensor  Keyboard&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/cgg27_jpv23/LEDpiano.MP4"&gt;MP4&lt;/a&gt; 7Mb) (&lt;a href="http://hackaday.com/2009/05/04/led-buttons/"&gt;hackaday&lt;/a&gt;)&lt;span style="background-color: #f9cb9c;"&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/wj67_kvj2/wj67_kvj2/index.html"&gt;Touchpad/Infrared Music Synthesizer&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/wj67_kvj2/TouchSynth1.MP4"&gt;MP4&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/jyo2_flc23_jl574/jyo2_flc23_jl574/index.html"&gt;Programmable Synthesized Guitar&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/jyo2_flc23_jl574/SynthGuitar2.MP4"&gt;MP4&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/gt62_mrs67/gt62_mrs67/index.html"&gt;Der Kapellmeister&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/gt62_mrs67/Conductor.MP4"&gt;MP4&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/kac99/ECE_4760_Final_Project%20saf42%20kac99%20page%20v4.htm"&gt;IR harp&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/kac99/Harp1.MP4"&gt;MP4&lt;/a&gt;, &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/kac99/Harp2.MP4"&gt;MP4&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/hh236_qc36/hh236_qc36/index.html"&gt;Digital Receipts System &lt;/a&gt;(&lt;a href="http://hackedgadgets.com/2009/05/10/digital-paperless-receipt-system/"&gt;hackedgadgets&lt;/a&gt;, &lt;a href="http://zedomax.com/blog/2009/05/11/circuit-diy-how-to-make-a-digital-paperless-receipt-system/"&gt;zedomax&lt;/a&gt;, &lt;a href="http://www.uelectronics.info/digital-receipts-system"&gt;uelectronics&lt;/a&gt;, ) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/ama64_maa66/ama64_maa66/index.html"&gt;ODB-II Automotive data interface&lt;/a&gt; (&lt;a href="http://hackaday.com/2009/05/12/obd-ii-automotive-data-logging/"&gt;hackaday&lt;/a&gt;, ) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/atg23_rjm73/atg23_rjm73/Traction%20Control%20Andrew%20and%20Rob.htm"&gt;Traction control system&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/vlc6_ljs62/vlc6_ljs62/vlc6_ljs62/index.html"&gt;ACL Research: Foot Acceleration Sensor&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/rac82_mos22/rac82_mos22/index.htm"&gt;Fart Intensity Detector&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/rac82_mos22/FartDetector.MP4"&gt;MP4&lt;/a&gt;) (&lt;a href="http://kitecrazy.blogspot.com/2009/05/bad-news-even-robots-can-smell.html"&gt;kitecrazy&lt;/a&gt;, &lt;a href="http://hackaday.com/2009/05/08/fart-intensity-detector/"&gt;hackaday&lt;/a&gt;, &lt;a href="http://www.popsci.com/scitech/article/2009-08/there-scientific-way-measure-fart-smell"&gt;Popular Science sept09&lt;/a&gt;, &lt;a href="http://dvice.com/archives/2009/09/fart-detector-s.php"&gt;Dvice&lt;/a&gt;, ) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/yz238/mobileemgwebsite/mobileemg.html"&gt;Dual-Channel Mobile Surface Electromyograph&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/yz238/EMG1.MP4"&gt;MP4&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/mrh53_gmt24/mrh53_gmt24/index.html"&gt;Tissue Impedance Digital Biopsy &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/jsm66_mpk28/jsm66_mpk28/index.html"&gt;GPS Data Logger with Wireless Trigger &lt;/a&gt;(&lt;a href="http://hackaday.com/2009/05/10/gps-logger-with-wireless-trigger/"&gt;hackaday&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/awl9_hc352/awl9_hc352/index.html"&gt;Self-Adjusting Window Shade&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/cdl32_mjc89/cdl32_mjc89/index.html"&gt;Weather Canvas&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/cdl32_mjc89/Weatherstation1.MP4"&gt;MP4&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/asn28_asp36/FinalProjectReport/index.html"&gt;Autonomous Self-parking car&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/asn28_asp36/ParallelPark2.MP4"&gt;MP4&lt;/a&gt;, &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/asn28_asp36/ParallelPark3.MP4"&gt;MP4&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/ncr6_wjw27/ncr6_wjw27/index.html"&gt;Holonomic Drive Vehicle with Stochastic Evolution&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/peterfkung/BallPicker.htm"&gt;Ball Picker Robot&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/peterfkung/BallRobot.MP4"&gt;MP4&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/evd2_sww28/evd2_sww28/index.html"&gt;BalanceBot&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/evd2_sww28/balancer2.MP4"&gt;MP4&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/ap362_ms893/ap362_ms893/index.html"&gt;Snakearm Multiple PID motor controller (with Wiimote!)&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/ap362_ms893/SankeArm1.MP4"&gt;MP4&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/kk383_sl486/kk383_sl486/index.html"&gt;Electric Etch&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/kk383_sl486/Etch2.MP4"&gt;MP4&lt;/a&gt;, &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/kk383_sl486/Etch4760.MP4"&gt;MP4&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/ht227/index.html"&gt;POV display&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/ht227/POV1.MP4"&gt;MP4&lt;/a&gt;) (&lt;a href="http://hackaday.com/2009/05/06/pov-final-project/"&gt;hackaday&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/fg33_cas247/fg33_cas247/Main.html"&gt;POV display&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/ct269_wl246_wc276/ct269_wl246_wc276/index.html"&gt;Alarm clock with speech synthesis&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/csm44_hvd2/csm44_hvd2/index.html"&gt;Blackout game &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/rou2_sl449/rou2_sl449/index.html"&gt;ESD Foam Touch Controlled Brick Blaster&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/bhp7_teg25/bhp7_teg25/index.html"&gt;NES emulator&lt;/a&gt; (&lt;a href="http://www.uelectronics.info/nes-emulation"&gt;uelectronics&lt;/a&gt;, ) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/dyz2_jl589/dyz2_jl589/index.html"&gt;Laser Audio Transmitter&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/ns325_eod2/ns325_eod2/index.html"&gt;Voice Tuner&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/sb399_jkm39/index.html"&gt;Wireless music player&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/jb433_eak56/jb433_eak56/index.html"&gt;Multisensor  Data Transmission&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/nw59_yt322/nw59_yt322/index.html"&gt;Heliostat &lt;/a&gt;(&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/nw59_yt322/heliostat.MP4"&gt;MP4&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/mco26_sf85/index.html"&gt;Wii Conductor&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/jvt6_th389/jvt6_th389/finalproject.html"&gt;Musical Blocks&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/pc389_fs256/pc389_fs256/index.html"&gt;Tic Tac Toe with CMOS Camera&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2009/jk488_swl33/jk488_swl33/index.html"&gt;Robot Plotter&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/cj72_xg37/cj72_xg37/index.html"&gt;PowerBox: smart AC outlet with metering and control&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/bmy5_hcj4/bmy5_hcj4/index.html"&gt;Rhythm Ring:     Interactive Rhythm Sequencer&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/bmy5_hcj4/RhythmRing.MP4"&gt;MP4 video&lt;/a&gt;) (&lt;a href="http://www.youtube.com/watch?v=hLHauwG_SJ8"&gt;youtube&lt;/a&gt; and &lt;a href="http://www.youtube.com/watch?v=uKtisFD3PHE"&gt;another&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/twc22_bef23/twc22_bef23/index.html"&gt;Trumpet MIDI Controller&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/twc22_bef23/TrumpetMIDI.MP4"&gt;MP4 video&lt;/a&gt;) (longer 53 Mbyte &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/twc22_bef23/TrumpetMIDI2.mp4"&gt;MP4 video&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/aac38_jck46/aac38_jck46/aac38_jck46.html"&gt;Air Drums&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/aac38_jck46/AirDrum.MP4"&gt;MP4 video)&lt;/a&gt;, &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/aac38_jck46/AirDrum.MOV"&gt;(MOV video&lt;/a&gt;) (&lt;a href="http://video.google.com/videoplay?docid=1150257976973640721&amp;amp;q=ece476&amp;amp;ei=p3cbSObhOIWyrgKp77WyAg&amp;amp;hl=en"&gt;youtube&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/jkk38_csb42/jkk38_csb42/index.html"&gt;Recorder Hero&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/jkk38_csb42/recorder2.MP4"&gt;MP4 video&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/hf39_jhf33/hf39_jhf33/DuelingBanjos002.html"&gt;Dueling Banjos&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/hf39_jhf33/AcousticComm.MP4"&gt;MP4 video&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/hc454_pl328/hc454_pl328/index.html"&gt;Intelligent wireless pedometer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/pag42_msr53/pag42_msr53/index.htm"&gt;Networked Biometric Authentication&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/xh33_jdm55_ww239/xh33_jdm55_ww239/index.html"&gt;Easy Input -head controlled mouse and keyboard interface&lt;/a&gt; (MP4 &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/xh33_jdm55_ww239/eyetracker.MP4"&gt;video1&lt;/a&gt;, &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/xh33_jdm55_ww239/eyetracker2.MP4"&gt;video2&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/nap33_vsg3/nap33_vsg3/index.html"&gt;Virtual Keyboard&lt;/a&gt; (&lt;a href="http://www.circuitcellar.com/"&gt;Circuit Cellar Magazine&lt;/a&gt;, issue #227, June 2009 page 14-19)&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/pae26_rwc28/pae26_rwc28/index.html"&gt;3D LED display&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/pae26_rwc28/3dled.MOV"&gt;MOV video 60 Mbyte&lt;/a&gt;) (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/pae26_rwc28/3Dled.MP4"&gt;MP4 video&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/pv47_sd267/pv47_sd267/index.html"&gt;BordFree videogame&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/pv47_sd267/SnowBoard.MP4"&gt;MP4 video&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/crs54_tz36/crs54_tz36/twocolumn.html"&gt;Haptic glove&lt;/a&gt; (MP4 &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/crs54_tz36/Haptic.MP4"&gt;video1&lt;/a&gt;, &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/crs54_tz36/Haptic2.MP4"&gt;video2&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/djf35_swl28/djf35_swl28/index.html"&gt;High Speed Photography Controller&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/jvk7_yy244/jvk7_yy244/index.htm"&gt;3D Maze in a Box video game &lt;/a&gt;(&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/jvk7_yy244/3Dmaze.MP4"&gt;MP4 video&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/ai54_llz2/ai54_llz2/ai54_llz2/index.HTML"&gt;3D Video Game Control&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/ai54_llz2/3Dcontroller.MP4"&gt;MP4 video&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/mjp63_jsd46/mjp63_jsd46/index.html"&gt;Multi-Player Light Cycle on Color TV&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/mjp63_jsd46/LightCycle.MP4"&gt;MP4 video&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/jfs36_rer29/jfs36_rer29/final_website.html"&gt;Gesture-driven Tetris&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/jfs36_rer29/GestureTetris.MP4"&gt;MP4 video&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/eaj24_wpb3/eaj24_wpb3/index.html"&gt;Remote Chess&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/dhp22_spg32/dhp22_spg32/index.html"&gt;Data Acquisition System With Controller Area Network and SD Card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/mpr32jrf42/mpr32jrf42/index.html"&gt;Automotive On-Board Diagnostics Reader&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/rmo25_kdw24/rmo25_kdw24/index.html"&gt;Adaptive 60 Hz Noise Cancellation&lt;/a&gt; (&lt;a href="http://www.elsevier.com/wps/find/journaldescription.cws_home/506079/description#description"&gt;Journal of Neuroscience Methods&lt;/a&gt;, vol 185 (2009) pp50–55) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/ras94_mrm58_deb48/ras94_mrm58_deb48/HelicopterWebsite.html"&gt;Neural Net Helicopter&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/ras94_mrm58_deb48/PerterbHeli.MP4"&gt;MP4 video&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/asg47_jfl24_vpp5/asg47_jfl24_vpp5/asg47_jfl24_vpp5.htm"&gt;Accelerometer Controlled R/C Vehicle&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/asg47_jfl24_vpp5/Car4.MP4"&gt;MP4 video&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/aa349_jjs222/aa349_jjs222/robotarmOPENTHIS.html"&gt;Robot Arm&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/aa349_jjs222/RobotArm.MP4"&gt;MP4 video&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/nbc5_emc47/reportfiles/FinalReport.htm"&gt;Help Quit Smoking Watch &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/ksk33_hgk5/ksk33_hgk5/index.html"&gt;Electronic Impact Vest&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/ksk33_hgk5/Vest.MP4"&gt;MP4 video&lt;/a&gt;) (&lt;a href="http://www.hacknmod.com/displayMOD.php?hack=1376"&gt;hacknmod&lt;/a&gt;) (&lt;a href="http://gizmodo.com/389424/electronic-hogu-measures-just-how-hard-your-foe-can-beat-you-up"&gt;Gizmodo&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/nic4_jps79/nic4_jps79/index.html"&gt;TouchSynth&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/nic4_jps79/TouchSynth.MP4"&gt;MP4 video&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/cl457_yft2/cl457_yft2/index.html"&gt;TriWheeler robot&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/cl457_yft2/TriRobot1.MP4"&gt;MP4 video&lt;/a&gt;) (&lt;a href="http://www.youtube.com/watch?v=nutfi1R90qs"&gt;youtube&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/tjc42_nah35/tjc42_nah35/index.html"&gt;Music Wand: Real-Time Optical Scanning of Sheet Music&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/tjc42_nah35/MusicScanner.MP4"&gt;MP4 video&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/dmh64_hs284/dmh64_hs284/index.html"&gt;Teaching an old clock (GE® Model 8116k) new tricks&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/ed267/ed267/ed267.htm"&gt;Shark Tag Microcontroller Platform&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/mbg35_ms458/mbg35_ms458/index.html"&gt;Ghost Writer Robot&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/mbg35_ms458/GhostWriter.MP4"&gt;MP4 video&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/mlu3_xl78/mlu3_xl78/index.html"&gt;Rocket Inertial Navigation System&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/mlu3_xl78/Rocket1.mp4"&gt;MP4 video&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/an94_fw45_pcl25/an94_fw45_pcl25/index.htm"&gt;Guitar Tuner&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/an94_fw45_pcl25/Tuner1.MP4"&gt;MP4 video&lt;/a&gt;) (&lt;a href="http://www.youtube.com/watch?v=bk0oFvUkAa8"&gt;youtube&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/hem24_jc646/hem24_jc646/index.html"&gt;Scheme Interpreter&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/sjp45_rxy2/sjp45_rxy2/index.html"&gt;Minigolf video game&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/sjp45_rxy2/golf.MP4"&gt;MP4 video&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/jk459_mmi4/jk459_mmi4/index.html"&gt;Battlezone video game&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/ams348_cc464/ams348_cc464/index.html"&gt;Laser Simon&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/kk364_ap328/kk364_ap328/index.htm"&gt;Snake Arm Glove&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/apc27_wy47/Wiicrane.htm"&gt;Wiimote Crane&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2008/eky2_cc459/website/index.html"&gt;Radio Beacon Finder&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/cmm98_jl478/cmm98_jl478/index.html"&gt;Portable, color, tilt-controlled, video game &lt;/a&gt;(pictures &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/cmm98_jl478/DSC04917.jpg"&gt;1&lt;/a&gt;, &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/cmm98_jl478/DSC04972.jpg"&gt;2&lt;/a&gt;, &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/cmm98_jl478/DSC04973.jpg"&gt;3&lt;/a&gt;, &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/cmm98_jl478/467193925_39d0e9b7df_b.jpg"&gt;4&lt;/a&gt;) (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/cmm98_jl478/WeeBoy.mp4"&gt;MP4-20MB&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/cc399_ya43/476%20webpage/index2.html"&gt;TouchPad video game&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/cc399_ya43/touchsensor.mp4"&gt;MP4-12MB&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/aw259_bkr24/index.html"&gt;Laser Pong&lt;/a&gt; (mpeg: &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/aw259_bkr24/MOV05043.MPG"&gt;Bruce and Bryan playing&lt;/a&gt;) (&lt;a href="http://www.blip.tv/file/221236/"&gt;blip.tv&lt;/a&gt;, &lt;a href="http://gizmodo.com/gadgets/diy-games/pong-anytime-anywhere-259453.php"&gt;gizmodo,&lt;/a&gt; &lt;a href="http://www.ubergizmo.com/15/archives/2007/05/wall_of_pong_now_comes_in_laser.html"&gt;ubergizmo&lt;/a&gt;, &lt;a href="http://www.engadget.com/2007/05/12/students-bring-pong-and-lasers-together-at-last/"&gt;engadget&lt;/a&gt; ) &lt;a href="http://www.innovationlab.dk/next"&gt;&lt;br /&gt;(NEXT no. 5: MINDBLOWERS&lt;/a&gt;, Denmark April 2008, (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/images/AdrianWongDenmarkmarApril2008.jpg"&gt;picture of Adrian at show,&lt;/a&gt; coverage in &lt;a href="http://jp.dk/indland/aar/erhverv/article1312465.ece"&gt;Danish newspaper&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/njw23_abg34/index.htm"&gt;Movement to Music: A Wearable Wireless Motion Sensor system &lt;/a&gt;(&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/njw23_abg34/MotionMusic.mp4"&gt;MP4-17MB&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/pa77_sc445_eof2/pa77_sc445_eof2/ece476b.htm"&gt;Music-controlled Puppet&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/pa77_sc445_eof2/puppet.mp4"&gt;MP4-21MB&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/bl222_wh84/bl222_wh84/index.html"&gt;Line-following car&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/bl222_wh84/MOV05003.MPG"&gt;mpeg&lt;/a&gt;) (&lt;a href="http://www.youtube.com/watch?v=UZ4Ld5k8568"&gt;YouTube&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/ai45_hkc2_sbs43/ai45_hkc2_sbs43/index.html"&gt;Audio homing robot &lt;/a&gt;(&lt;a href="http://hackedgadgets.com/2008/01/22/autonomous-sound-finding-robot/"&gt;hackedgadgets&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/sjj26_sb363/sjj26_sb363/Final%20Report.htm"&gt;Model retina: color tracker &lt;/a&gt;(&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/sjj26_sb363/MOV05020.MPG"&gt;mpeg&lt;/a&gt;)(&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/sjj26_sb363/eyeball.mp4"&gt;MP4-23MB&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/jxd2/djd36_jxd2/neuralrobot.htm"&gt;Evolving neural robot&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/mc392_fac24/mc392_fac24_final_proj/index.htm"&gt;MCU MIDI synthesizer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/apb36_yn47/ECE_476_Website.html"&gt;AirJam: wearable air guitar&lt;/a&gt; (pictures &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/apb36_yn47/DSC04952.jpg"&gt;1&lt;/a&gt;, &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/apb36_yn47/DSC05029.jpg"&gt;2&lt;/a&gt;) (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/apb36_yn47/airjam.mp4"&gt;MP4-23MB&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu//courses/eceprojectsland/STUDENTPROJ/2007to2008/blh36_cdl28_dct23/website/index.html"&gt;USB host controller&lt;/a&gt; &lt;span style="color: black;"&gt;(obsolete 476 version: &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/blh36_cdl28_dct23/blh36_cdl28_dct23/index.html"&gt;USB host controller&lt;/a&gt;)&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/jem84_mra29/jem84_mra29/index.html"&gt;UDP/Ethernet Controlled Temperature Regulator&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ebukiet.net/476/"&gt;Dynamically reconfigurable MCU communication&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/eab68/ECE%20476%20Website/index.htm"&gt;local copy&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/iq23_tg67/iq23_tg67/index.html"&gt;Telescope controller &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/mc373_mag83/mc373_mag83/index.html"&gt;Morse code interpreter, with speech synthesis&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/vl52_jbw34/vl52_jbw34/index.html"&gt;Complex impedance analyzer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/gs243_saf37/index.htm"&gt;uControl DVD macro-controller&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/cd247_maw72/cd247_maw72/index.html"&gt;SD card  MP3 player&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/awr8_asl45/awr8_asl45/index.html"&gt;iPod controller&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/ayl26_ym82/ayl26_ym82/index.htm"&gt;USB Magnetic Mouse/Touchpad&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/jsc59_ecl37/jsc59_ecl37/report2.html"&gt;Polygraph&lt;/a&gt; (&lt;a href="http://hackedgadgets.com/2007/11/19/diy-polygraph/"&gt;hacked-gadgets&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/aoc6_dah64/aoc6_dah64/index.html"&gt;Elevator Bank&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/afs26_hsb6/afs26_hsb6_pinball_machine/index.html"&gt;Pinball machine&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/afs26_hsb6/Pinball.mp4"&gt;MP4-15Mb&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/ts295_jcd44/ts295_jcd44/index.html"&gt;Guitar legend maker &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/tl245/webpic/index.htm"&gt;Braille reader&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/jjl49_mar97/jjl49_mar97/index.htm"&gt;Ultrasonic parking aid&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/cac95_vyz2/ECE%20476%20Final%20Project_Carey_Zou.htm"&gt;Retractable Alarm Clock&lt;/a&gt; (&lt;a href="http://hackedgadgets.com/2007/05/15/retractable-alarm-clock/"&gt;hackedgadgets&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/bt48_rsr32/bt48_rsr32/index.html"&gt;Autonomous Blimp &lt;/a&gt;(&lt;a href="http://hackedgadgets.com/2007/06/01/autonomous-blimp-ece-476-microcontroller-design-project/"&gt;hackedgadgets&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/sc433_mhm42/sc433_mhm42/index.html"&gt;Automatic pet feeder&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/mfc28_tjs49/mfc28_tjs49/index.html"&gt;Programmable medication scheduler &lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/arb66_ak364/arb66_ak364/Index.html"&gt;CCD imager&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/yl365_gs256/CalcParser.html"&gt;CalcParser&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/msm39_sk398/msm39_sk398/finprojwebpage.html"&gt;Firefly synchronization &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/akl26_gpw6/index.html"&gt;Graphing calculator &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/mdr32_as435/mdr32_as435/mdr32_as435_Final_Report.htm"&gt;Speech recognition jukebox&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/tc228_kk336_kh272/tc228_kk336_kh272/index.html"&gt;Speech recognition chess&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/sp369_bb226/sp369_bb226/index.htm"&gt;Sound Source Triangulation Game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/djd33_tm253/final/final.htm"&gt;Touch Screen Controlled R/C Car&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/bcr22/final%20webpage/final.html"&gt;AppleII emulator&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/ja94/Amsel%20-%20Klitinek%20Final%20Project/index.htm"&gt;HDD analog clock with LCD touchscreen &lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/mkl28ilw4/mkl28ilw4/index.html"&gt;CUAUV Voltage Sniffer&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/eb229/index.html"&gt;CUsat diagnostic board &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/jzs3_da65/jzs3_da65/index.htm"&gt;SearchBot&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/jzs3_da65/SearchBot.avi"&gt;mpeg&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/hac24/index.htm"&gt;RoboSweeper&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/hac24/MOV04123.MPG"&gt;mpeg&lt;/a&gt;, another &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/hac24/MOV04124.MPG"&gt;mpeg&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/dl285rmz8/dl285rmz8/index.html"&gt;CoolerBot&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/ak333apa22/apa22ak333/index.html"&gt;MCU/FPGA color video Game Platform&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/ak333apa22/MOV04086.MPG"&gt;mpeg&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/kwj5_mhw23/index.html"&gt;Higher resolution color TV&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/aml66/aml66/index.htm"&gt;Color TV using two MCUs &lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/tj39vls25tmd29/tj39vls25tmd29/index.htm"&gt;Musical Water Fountain&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/tj39vls25tmd29/MOV04126.MPG"&gt;mpeg&lt;/a&gt;) (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/tj39vls25tmd29/tj39vls25tmd29/clip.avi"&gt;avi 20 Mbytes&lt;/a&gt; with sound)&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/cy68%20zc35/ECE%20476%20Final%20project%20report/index.htm"&gt;Two-TV video air Hockey&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/cy68%20zc35/MOV04116.MPG"&gt;mpeg&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/sq24/sq24_jl435_jc287_sd285/index.htm"&gt;Karaoke machine&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/acd32ddk26/Antonio%20and%20Donn%20Final%20Project.htm"&gt;Dual control R/C car&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/mdj23_awh24_dzw2/index.html"&gt;Guitar Synthesizer&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/ajk28/ajk28/index.html"&gt;Self-powered solar data logger&lt;/a&gt; (&lt;a href="http://www.circuitcellar.com/"&gt;Circuit Cellar&lt;/a&gt; magazine, &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/StudentWork/KrichCircuitCellar198.pdf"&gt;issue #198, Jan 2007, page 12&lt;/a&gt; , &lt;a href="http://www.circuitcellar.com/magazine/198toc.htm"&gt;toc&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/aa338_mg266_emo29/aa338_mg266_emo29/index.htm"&gt;Lighting control system &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/wc267/index.html"&gt;Intelligent multimedia&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/wc227_rks33/wc227_rks33/index.htm"&gt;ADPCM voice recorder&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/ki38/Webpage/index.html"&gt;Reflow oven controller&lt;/a&gt; (&lt;a href="http://www.circuitcellar.com/"&gt;Circuit Cellar&lt;/a&gt; magazine, issue #199, Feb 2007, page 46 ) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/cc425/Paul_Jimmy/index.htm"&gt;Ultrasonic spotlight tracker&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/hmm32_pjw32/index.html"&gt;Galvanic skin response meter&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/cjr37/Website/index.htm"&gt;RFID security system&lt;/a&gt; (&lt;a href="http://www.circuitcellar.com/avr2006/winners/DE/AT3305.htm"&gt;AVR design contest 2006&lt;/a&gt;)  (&lt;a href="http://www.circuitcellar.com/"&gt;Circuit Cellar&lt;/a&gt; magazine, issue #199, Feb 2007, page 24)(&lt;a href="http://hackedgadgets.com/2006/05/09/homemade-rfid-reader/"&gt;hackedgadgets&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/rg242/webpage/ece%20476.htm"&gt;Autonomous Helicopter&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/rg242/MOV04201.MPG"&gt;mpeg&lt;/a&gt;) (&lt;a href="http://www.circuitcellar.com/avr2006/winners/DE/AT2536.htm"&gt;AVR design Contest 2006 &lt;/a&gt;) (&lt;a href="http://hackedgadgets.com/2006/12/05/autonomous-helicopter/"&gt;hackedgadgets&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/avh8_css34/avh8_css34/index.html"&gt;Voice recognition car&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/XL76_SL362/XL76%20SL362/index.html"&gt;Speech recognition security system&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/sl364/ECE%20476%20Webpage/index.html"&gt;Morse code transmit and receive&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/bcr6/final_report/index.html"&gt;Secure LED&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/nh48sh272/nh48sh272finalproject/476final.html"&gt;SwingBot&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/nh48sh272/MOV04193.MPG"&gt;mpeg&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/wl228hl336/index.html"&gt;SwingBot&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/wl228hl336/MOV04209.MPG"&gt;mpeg&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/nrs27th257/nrs27th257/index.html"&gt;Barcode scanner&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/om33et68/om33et68/index.htm"&gt;Soccermania video game&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/sg334bs262/sg334bs262/index.htm"&gt;Capacitance sensor MIDI keyboard&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/jtg29msb55/jtg29msb55/index.html"&gt;Grillzilla wireless meat thermometer&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/%20yohowo/p2r/index.html"&gt;Para-para-revolution video game&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/%20yohowo/MOV04211.MPG"&gt;mpeg&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/mjk64jdp45/mjk64jdp45/index.html"&gt;SnakeArm ultrasonic positioning control&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/kttruong/asl1/index.html"&gt;Sign language coach&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/kttruong/MOV04134.MPG"&gt;mpeg&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/bp43_kca5/bp43_kca5/index.html"&gt;Radial ChalkBot&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/jtg28rbc24/jtg28rbc24/goconn.html"&gt;Bicycle computer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/gh75/web/index.html"&gt;Handwriting Recognition System&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/jma65rt67/jma65rt67/index.htm"&gt;GPS World &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/ss556/476Web/index.html"&gt;Video puzzle&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/umh3_fcf3/index.htm"&gt;Chess Robot&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/acl34/kaos/index.html"&gt;kaOS operating system and loader&lt;/a&gt; (&lt;a href="http://www.circuitcellar.com/"&gt;Circuit Cellar&lt;/a&gt; Magazine, &lt;span style="color: black;"&gt;&lt;span style="color: white;"&gt;&lt;a class="navtab" href="http://www.circuitcellar.com/magazine/193toc.htm"&gt;Issue #193 Aug 2006 &lt;/a&gt;&lt;/span&gt;&lt;/span&gt;page 56) (&lt;a href="http://www.circuitcellar.com/avr2006/winners/DE/AT3324.htm"&gt;AVR design contest 2006&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/cw272/476FinalProj/keyboardmania_intro.htm"&gt;Keyboard          mania&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/cw272/keyboardmania_cw272.MPG"&gt;mpeg&lt;/a&gt; 19 Mbyte)&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/eyc22/ECE476%20Final%20Project%20Website/index.htm"&gt;Super            Breakout video game&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/eyc22/MOV02744.MPG"&gt;mpeg&lt;/a&gt; 1.9          Mbytes)&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/ayz2/ECE476AYZ2YDY2/Introduction.htm"&gt;Jezzball video          game &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/stb25/ece476duckhunt/index.html"&gt;Duckhunt video game&lt;/a&gt;          (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/rh92/MOV02784.MPG"&gt;mpeg&lt;/a&gt; 2.4 Mbytes)&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/rh92/%2B%A6%2Bs%20-476%20Website/index.htm"&gt;The Contender          video game&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/rh92/MOV02774.MPG"&gt;mpeg&lt;/a&gt; 4.5 Mbytes)&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/vhl4/juicer_webpage/index.htm"&gt;Big Red Juice Mixer&lt;/a&gt;          (&lt;a href="http://hardware.slashdot.org/hardware/05/05/02/0630251.shtml?tid=159&amp;amp;tid=222&amp;amp;tid=137"&gt;Slashdot          article&lt;/a&gt; Monday, May 2, 2005)&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/mpl26/ECE476_FinalProject_mpl26_kk294/prj.html"&gt;Color          Tetris video game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/dhs25/dhs25th243/index.htm"&gt;LightRover - light sensing          robot&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/jaj37/index.htm"&gt;PPP-Palm&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/rr234/Webpage/ece476_final_proj.htm"&gt;WeatherDog&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/dc273/submit/home.htm"&gt;Virtual Pool&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/dc273/submit/real_shot.wmv"&gt;wmv&lt;/a&gt;          900 Kbytes) (&lt;a href="http://www.circuitcellar.com/"&gt;Circuit Cellar&lt;/a&gt; Magazine,          &lt;span style="color: black;"&gt;&lt;span style="color: white;"&gt;&lt;a class="navtab" href="http://www.circuitcellar.com/magazine/184toc.htm"&gt;Issue #184 November 2005&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; ) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/ajs94_jst36/index.html"&gt;AirMouse&lt;/a&gt; (&lt;a href="http://www.circuitcellar.com/"&gt;Circuit Cellar&lt;/a&gt; Magazine, &lt;span style="color: black;"&gt;&lt;span style="color: white;"&gt;&lt;a class="navtab" href="http://www.circuitcellar.com/magazine/191toc.htm"&gt;Issue #191 June 2006&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;, &lt;a href="http://www.circuitcellar.com/library/print/0606/Sawchuk191/index.htm"&gt;article&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/an78_cyl22/Webpage/whole.html"&gt;SharpShooter video game&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/SKA7/index.html"&gt;Neural net robot&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/bsm24_ajg47/website/website/index.html"&gt;Wireless Electromyograph&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/dbb28_aml54/index.htm"&gt;Stepper Motor Indexer &amp;amp; Decoder&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/jsa25_jyh25/TurbidityMeter.htm"&gt;Turbidity meter&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/Motion_Capture_KHY6_DCL34/Motion_Capture.htm"&gt;Human Motion          Capture&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/mouse%20webpage%20KM249_AK288/INDEX.HTM"&gt;Accelerometer          Mouse&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/mpd25_yl293/476FinPrj/INDEX.HTM"&gt;Wireless Telemetry&lt;/a&gt;        (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/mpd25_yl293/476L6V%20001.avi"&gt;avi&lt;/a&gt; 6 Mbytes) (&lt;a href="http://www.hackaday.com/entry/1234000650073542/"&gt;HackADay&lt;/a&gt; Feb 16, 2006)&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/SO69/INDEX.HTM"&gt;Portable Security System&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/ww56_ws62/Final%20Project%20Web/index.html"&gt;Blood Pressure          Monitor&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/co37/website/home.htm"&gt;Missle Command video game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/jc365/ECE476%20Final%20Project%20Website/index.htm"&gt;Super          Breakout video game&lt;/a&gt; (some images broken)&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/db97%20jlc224/db97%20jlc224%20webpage%20revised/final.htm"&gt;Breathalyser          door lock&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/yww2_say2/index.htm"&gt;Programmable IR receiver and Connect-4          game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/sl367/476homepage/home.html"&gt;MIDI drum controller&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/jkc32/476%20Vocal%20Tuner%20Webpage/index.htm"&gt;Vocal          Tuner&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/jhl33/index.html"&gt;RoboDog&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/sg348_ekl25/html/index.html"&gt;PC temperature control&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/gts7/index.html"&gt;Dungeons of Doom video game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/mq23/webpage/index.html"&gt;Dual control RC car&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/tp62/website/index.html"&gt;Solar Tracker&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/amn32/476final/index.htm"&gt;GPS/inertial guidance&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/ck245/476Web/476Web/index.htm"&gt;Digger video game&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/gch22jdc48/web/index.html"&gt;Gauntlet of uComputation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/brydoyle/476/index.html"&gt;CubeSat Diagnostics board&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/ik48_ua22/mysite/index.htm"&gt;Digital voice recorder&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/drl27/Website2/index.html"&gt;ISREVER (Reversi) video game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/GKL6/476Final.html"&gt;Frequency Division Multiplexing for          a Multi-Sensor Wireless Telemetry System&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/yf46/Webpage/index.html"&gt;Shooting star video game&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/mfc24/final%20project/Electronic_Dartboard_or_How_I_Learned_to_Stop_Worrying_and_Love_ECE_476.html"&gt;Electronic          Dartboard&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/yc294_mp282/KASUBANA/index.htm"&gt;Kasubana&lt;/a&gt; electronic          flower&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/arb36/webpage/476webpage.htm"&gt;Bar Inventory System&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/dp93/index.html"&gt;Voting Machine&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/dcc34/finalsite/index.html"&gt;EyeSnake video game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/ejt22/index.htm"&gt;Digital Guitar tuner&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/lp78/Website/Final_Project.htm"&gt;Automated Juice Mixer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/rw88/webserver.pdf"&gt;Mega32 webserver&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/rw88/server.zip"&gt;code&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/bcr5/index.htm"&gt;Digital Stethoscope&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/bcr5/MOV01754.MPG"&gt;Mpeg        of display&lt;/a&gt;)      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/sk245/Webpage%20Files/CUGrad.htm"&gt;Graduate from Cornell        video game&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/aeh28/Website/index.htm"&gt;Flat Bed Scanner&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/ps237/ECE476project/index.html"&gt;Non-orthogonal Plotter&lt;/a&gt;        (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/ps237/MOV01926.MPG"&gt;mpeg&lt;/a&gt;)      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/jcc72/index.html"&gt;Mouse Painter&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/sdk22/Paint%20Program%20Webpage/Paint_Program.html"&gt;Paint        with mouse input&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/daw33/RemoteOutlet/index.htm"&gt;Radio Controlled outlet strip&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/ad284/website/index.html"&gt;Autonomous navigating robot&lt;/a&gt;        (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/ad284/MOV01827.MPG"&gt;mpeg&lt;/a&gt;)      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/kfm9/index.htm"&gt;Nova Strike video game&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/ccw27/index.htm"&gt;Digital Compass&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/cak36/minigolfwebsite/index.htm"&gt;MiniGolf video game with        putter&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/brv4/index.htm"&gt;MiniGolf video game&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/brv4/MOV01856.mpeg"&gt;mpeg&lt;/a&gt;)      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/yt77/Remote%20Control%20Website/report.htm"&gt;Programmable        remote control&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/jml66/EAS_final.htm"&gt;Electr-O-Sketch&lt;/a&gt; (&lt;a href="http://developers.slashdot.org/developers/04/07/13/201205.shtml?tid=8&amp;amp;tid=159&amp;amp;tid=146"&gt;slashdot        article&lt;/a&gt;) (&lt;a href="http://forbes.com/personaltech/2004/12/21/cx_de_1221hackgadgets.html"&gt;Forbes        article&lt;/a&gt;, follow the &lt;i&gt;Custom Gadgets You Can't Buy&lt;/i&gt; link)      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/dc248/dc248amz8/index.html"&gt;Pong&lt;sup&gt;2&lt;/sup&gt; &lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/vsn2/webpage/index.html"&gt;Ultrasonic Rangefinder&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/dbh8/index.html"&gt;Mega32 Basic&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/mx23/myweb/index.htm"&gt;Music Synthesizer with Interactive        TV Display&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/yl245/index.htm"&gt;Laser Morse code tutor&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/hk237/pumpitup/index.htm"&gt;Pump It Up audio game&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/ddb25/index.htm"&gt;Guitar Tuner&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/mda24/BeverageMonitor.htm"&gt;Beverage Monitor&lt;/a&gt; (&lt;a href="http://slashdot.org/article.pl?sid=04/05/07/155234&amp;amp;mode=thread&amp;amp;tid=137&amp;amp;tid=159&amp;amp;tid=186&amp;amp;tid=193"&gt;slashdot        article&lt;/a&gt;)      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/dtc24/report/index.htm"&gt;MP3 radio&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/zws2/476/index.htm"&gt;Smart blinds&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/sms95/keypaw/index.html"&gt;Keypaw&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/ch236/homesecuritysystem.html"&gt;Home Security System&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/mtf23/BarcodeScanner/index.htm"&gt;Bar Code Scanner&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/abk26/index.html"&gt;Implementation of a (31, 16) BCH code        on a Microcontroller&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/dtz2/report/index.htm"&gt;Ball Fight Video Game&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/dig4/introduction.html"&gt;Breath Alcohol Tester&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/km279/Copy%20of%20ece476/index.html"&gt;WinAmp controller&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/bar26/ece476webpage/index.html"&gt;WinAmp Controller&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/fci2/introduction.html"&gt;Eye-in-the-sky&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/fci2/MOV01940.MPG"&gt;mpeg&lt;/a&gt;        of camera head)      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/mk257/index.html"&gt;Xylophone&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/vkp4/kck23%20vkp4%20final%20project.htm"&gt;Scorched Earth        video game&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/zz25/index.html"&gt;WonderSwan Development Cartridge&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/jss65/index.htm"&gt;Star Duel video game&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/sj74/main.htm"&gt;Big Red Map&lt;/a&gt; (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/sj74/MOV01914.MPG"&gt;Mpeg        of engineering quad&lt;/a&gt;)      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/jlp44/MC1_files/MC1.htm"&gt;Missle Command video game&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/cel27/ece476web2/index.html"&gt;3D gForce mouse&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/tl92/tl92_nh48_476finalproj/index.htm"&gt;Stationary Helicopter&lt;/a&gt;        (&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/tl92/MOV01943.MPG"&gt;mpeg&lt;/a&gt;)      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/cml45/webpage/index.html"&gt;Remote control car&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/ada23/webpage/index.html"&gt;Weather Station&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/eyc9/BlindBot.htm"&gt;BlindBot&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/rd73/476finalpro.htm"&gt;Infrared Tracking System&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/es89kh98/es89kh98/index.htm"&gt;Inverted Pendulum Balancer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/rs234sy228/476/report.html"&gt;Variable Traffic Controller&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/kej9/476final.html"&gt;MazeRunner Video Game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/jpp13/website/index.html"&gt;6502 Emulation on an Atmel          Mega32&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/gc58/report/webpage.htm"&gt;Electronic Virtual Animal&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/rb62dpf5/ece-476_rb62_dpf5-arkanoid/index.html"&gt;Arkanoid          Video Game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/mbc23/MainFrameset.htm"&gt;Cantneroid Video Game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/oby2/Website/index.htm"&gt;Digi-Level&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/dc235ml266/dc235ml266/index.html"&gt;Reversi Video Game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/Gjr8tl74/ECE476FinalProject/Index.html"&gt;Guitar Special          Effects&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/yy58ml264/NEWwebpage/ECE%20476%20Final%20Project.htm"&gt;Tap          the Dance&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/jl259/Project%20Website/index.html"&gt;Graphing Calculator&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/dam27/476final.htm"&gt;Dartboard with Video&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/jc282/memory_website/index.html"&gt;Memory Video Game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/dab47ebt5/Main.htm"&gt;Treasure of the High Seas Video Game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/rc99/476site/index.html"&gt;PacMan Video Game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/jl253/space_invaders/index.htm"&gt;SpaceInvaders Video Game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/cc267tp57/webpage/draft.htm"&gt;Space Fighter Video Game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/ctj4eej2/Project%20Website/index.html"&gt;Frogger Video          Game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/gsh7/ECE476/index.htm"&gt;MIDI synthesizer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/kw84/Report/documentation.htm"&gt;Radio Control Car&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/tt82/tt82/mainFrameset.htm"&gt;Sound Effects Processor&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/tm86/Final%20Project/index.html"&gt;Battleship Video Game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/lph2/WirelessKybd/index.html"&gt;Wireless Keyboard&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/lbb23/duckhunter/index.htm"&gt;DuckHunter Video Game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/cc358/ECE476/index.htm"&gt;MineSweeper Video Game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/ss298/gtech.htm"&gt;Vehicle Performance Meter&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/ccy5/index.html"&gt;Digital Preamplifier&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/rcy5/ece476tetris.htm"&gt;Tetris Video Game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/bjt23/index.html"&gt;Hockey Video Game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/fww3jhy5/index.html"&gt;Gray-scale Graphics: Dueling Ships&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/pcl7/index.htm"&gt;Connect-4 Video Game&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/jms225/MattandJosh/index.htm"&gt;Laser Light Show&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/yc234/website/index.html"&gt;Wireless Drawing Device&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/kmc29/index.htm"&gt;Laser Communications System&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/drb28pp88/index.htm"&gt;TouchPad Drawing Board&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/scd22/WebPage/index.htm"&gt;IntelliBot&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/mw86/index.html"&gt;Sheet Music Generator&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/dcb22/finalreport/index.htm"&gt;TCP/IP&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2003/cjp29/ECE476FinalProject/Frame.htm"&gt;Multi-Zone Fire Alarm          System&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/sm242/index.htm"&gt;Scanning Tunneling Microscope&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/gpm5/index.html"&gt;Tic-Tac-Toe on TV&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/carlo/index.html"&gt;Snake on TV&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/rjk18/index.htm"&gt;Hard drive AVR programmer&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/wilson/index.html"&gt;Audio Frequency Response Analyzer&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/brader/nerdcar/index.html"&gt;Line following autonomous car&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/hmh6/index.html"&gt;Safety-sensor vehicle&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/jmd48/nll4%20jmd48%20-%20EE%20476%20Final%20Project%20Web%20Page/476_final_project_home.htm"&gt;MP3        Player&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/lz28/index.htm"&gt;MP3 Player&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/jcl39/SiMoN/intro.html"&gt;Simon&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/ckp5/index.html"&gt;GPS AmeriMap&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/cc168/cc168naf3/index.htm"&gt;Home security system&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/sc161/index.htm"&gt;Voice Activated Alarm Clock&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/dkl22/index.html"&gt;Russianbloc on LCD&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/pak12/index.html"&gt;Pong on LCD&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/bci2/Pong_Home.html"&gt;Pong on oscilloscope&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/jr65/WINDOWS/Desktop/476%20project/index.htm"&gt;Music Synthesizer&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/dcw11/website/intro.htm"&gt;Club Light Controller&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/dtl22/index.htm"&gt;Blackjack2go&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/bsh6/index.html"&gt;Blackjack&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/dmb42/rotating_globe.htm"&gt;Globe&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/pw33/ece476finalweb.htm"&gt;Accelerometer Gmouse&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/hms28/ECE476%20Final%20Project%20-%20Postage%20Meter/Home.htm"&gt;Postage        meter&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/akl4/home.htm"&gt;Digital Hourglass&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/jq13/webpage/476monopoly.html"&gt;Cornopoly on LCD&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/kc92/index.htm"&gt;Phone Dialer&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/cmp28/index.html"&gt;Laser Tag&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/yy66/yy66_nt49%20Final%20Project%20Page%20Files/index.html"&gt;Robot        Cricket&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/bdk6/index.htm"&gt;WindCaddy&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/msj22/index.htm"&gt;Hovercraft&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/zag2/ece476/index.htm"&gt;Sound targeting&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/jew17/index.html"&gt;Nintendo 64 to PS/2 Mouse&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/emh23/index.html"&gt;Golf&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/mengel/Fish.htm"&gt;Fish: Video Controller&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/pr57/REPORT.htm"&gt;PBX (Private Branch Exchange)&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/vp2/"&gt;Vertical Plotter&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/apk4/main.html"&gt;X-Y Plotter&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/warren/"&gt;Fertilizer Feedrate Controller&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/tyhach/"&gt;Home Audio Control System&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/chadballard/"&gt;SuperTrain Controller&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/ellyson/writeup.html"&gt;Digital Mirror Message Machine&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/bch5/"&gt;MP3 CD SuperJukebox&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/uri/"&gt;Pre-emptive Operating System&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/kpf1/pm/"&gt;Wireless Internet Pager&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/jjt9/add4jjt9/index.html"&gt;Wireless message Communicator&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/mj48/Web/finalproject.htm"&gt;Robot Arm&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/kmo15/"&gt;Tilt Maze&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/tmh25"&gt;Ultra-Sonic Parking Assistant &lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/paras/"&gt;Cooking Coach&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/cas53/Bilines.htm"&gt;BiLines&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/kys2/geecship.html"&gt;gEECShip&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/yl131/default.htm"&gt;Graphing Calculator&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/mrd19/"&gt;Web-based AVR Interface &lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/nsk5/topframe.htm"&gt;Midi Sequencer&lt;/a&gt;                 &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/jl175/EE476.htm"&gt;ECG monitoring system&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/dmc47/home.htm"&gt;Autonomous Tank&lt;/a&gt;        &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2001/sjk26/Default.htm"&gt;ZIP drive/Digital Camera&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/winslow/index.htm"&gt;Digital Message Machine&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/larry/"&gt;Web-Monitored Thermostat&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/mehr/"&gt;Analog modem&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/vogel/Index.htm"&gt;Robot Arm&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/harren/index.htm"&gt;Security Entrance System&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/ameer/index.htm"&gt;Radio-controlled Truck&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.geocities.com/nazlen_2000/web"&gt;Temperature Datalogger&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/peterdan/final.htm"&gt;MP3 player&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/milkie/pong.html"&gt;Pong&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/wicks/"&gt;Snake 476&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/joel/final.html"&gt;Ultimate Alarm Clock&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/chan/index.html"&gt;Beat Tracking Strobe&lt;/a&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/winslow/index.htm"&gt;          &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/katz/"&gt;Guitar Special effects: The Shredder&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/selan/"&gt;Drum machine and Sequencer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/chai/"&gt;Digital Thermometer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/rahul/_private/Introduction.htm"&gt;Digital Oscilloscope&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/gregbrown/awg476.html"&gt;Arbitrary Waveform Generator&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/costanzo/ee476final.html"&gt;8-Trak Sampler&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/otto/finalpage.html"&gt;Serial-port game board&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/cuadra/final.html"&gt;Secure RSA Credit Card Transaction          System&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/yang/main.html"&gt;Mini Area Network&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/carl/"&gt;Autonomous Robotic Cricket &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/fiore/touchpad.html"&gt;Zen Touchpad&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/bell/abell.cnazarian.ee476.finalproject.rccar.html"&gt; Porche        911 Radio Controlled Car&lt;/a&gt;      &lt;/li&gt;&lt;li&gt; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/gurnee/index.htm"&gt;Autonomous Vehicle&lt;/a&gt;      &lt;/li&gt;&lt;li&gt; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/lisa/"&gt;Spectrum Analyser&lt;/a&gt;      &lt;/li&gt;&lt;li&gt; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/berman/project.html"&gt;Real-Time Guitar Tuner&lt;/a&gt;      &lt;/li&gt;&lt;li&gt; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/gigi/INDEX.HTM"&gt;Whack-a-Cap&lt;/a&gt;      &lt;/li&gt;&lt;li&gt; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/rhett/report.html"&gt;CU Organizer&lt;/a&gt;      &lt;/li&gt;&lt;li&gt; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/lee/ee476.html"&gt;Malay Language Learning kit&lt;/a&gt;      &lt;/li&gt;&lt;li&gt; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/sam/"&gt;Fixed point scientific calculator&lt;/a&gt;      &lt;/li&gt;&lt;li&gt; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/felix/Final.htm"&gt;Etch-a-Sketch&lt;/a&gt;      &lt;/li&gt;&lt;li&gt; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/tezel/"&gt;Real-time debugger&lt;/a&gt;      &lt;/li&gt;&lt;li&gt; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/weisz/VTPONG.HTM"&gt;VT100 Pong&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/seto"&gt;Home Security System&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/kevin/"&gt; Infrared Universal Remote Control&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/ji"&gt;Car Alarm System&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/thomas/HANGMAN.HTM"&gt;Hangman&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/geiger/simon.html"&gt;Simon&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/cid/simon.html"&gt;Simon&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/melin"&gt;Answering Machine&lt;/a&gt;      &lt;/li&gt;&lt;li&gt;&lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/jason/476final.html"&gt;Thermostat&lt;/a&gt;      &lt;/li&gt;&lt;li&gt; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/mo"&gt;BlackJack&lt;/a&gt;      &lt;/li&gt;&lt;li&gt; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/kwok/blackjack.html"&gt;Blackjack&lt;/a&gt;      &lt;/li&gt;&lt;li&gt; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/mohamed/"&gt;Lego Vehicle&lt;/a&gt;      &lt;/li&gt;&lt;li&gt; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/blair/RCcar.html"&gt;RC car controller&lt;/a&gt;      &lt;/li&gt;&lt;li&gt; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/hsieh"&gt;Sinewave Synthesizer&lt;/a&gt;      &lt;/li&gt;&lt;li&gt; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/louis/finalwriteup.htm"&gt; Temperature and Pressure Control&lt;/a&gt;      &lt;/li&gt;&lt;li&gt; &lt;a href="http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/joelee/"&gt;Video Frame Buffer&lt;/a&gt;    &lt;/li&gt;&lt;/ol&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;hr style="font-family: Verdana,sans-serif;" /&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;a href="http://windows.microsoft.com/shop" target="_new"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330726511081228200-3003429188368237613?l=circuitplanet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://circuitplanet.blogspot.com/feeds/3003429188368237613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://circuitplanet.blogspot.com/2009/11/design-with-microcontrollersfinal-year.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/3003429188368237613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/3003429188368237613'/><link rel='alternate' type='text/html' href='http://circuitplanet.blogspot.com/2009/11/design-with-microcontrollersfinal-year.html' title='Design with microcontrollers:Final year ECE projects'/><author><name>Arun Kumar</name><uri>https://profiles.google.com/106450967102748060653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-Qvye04VFjcc/AAAAAAAAAAI/AAAAAAAAAlY/LmoYIEg8p2c/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-330726511081228200.post-5292894956082903831</id><published>2009-10-21T13:46:00.001+05:30</published><updated>2009-10-21T13:46:21.552+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='assembler'/><category scheme='http://www.blogger.com/atom/ns#' term='delay generator'/><category scheme='http://www.blogger.com/atom/ns#' term='microcontroller'/><category scheme='http://www.blogger.com/atom/ns#' term='avr'/><title type='text'>AVR delay calculator</title><content type='html'>&lt;p&gt;this program generates the template code for delay for&amp;#160; AVR microcontrollers.The input given is the cycles or Time/sec or the clock frequency.After the entering these details the press the GO button and the code is generated which can be copied or saved.The copied or saved code can be used in the&amp;#160; AVR STUDIO to program the microcontroller.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.avrprojects.net/index.php?option=com_attachments&amp;amp;task=download&amp;amp;id=32"&gt;click here to download the the AVR delay calculator&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_H-OQr197CAc/St7DQGHb8VI/AAAAAAAAAVM/1cPCwX40QHM/s1600-h/AVRdelayloop2%5B4%5D.jpg"&gt;&lt;img title="AVRdelayloop2" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="424" alt="AVRdelayloop2" src="http://lh4.ggpht.com/_H-OQr197CAc/St7DUensnII/AAAAAAAAAVQ/-AqZyRfbzR4/AVRdelayloop2_thumb%5B2%5D.jpg?imgmax=800" width="518" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330726511081228200-5292894956082903831?l=circuitplanet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://circuitplanet.blogspot.com/feeds/5292894956082903831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://circuitplanet.blogspot.com/2009/10/avr-delay-calculator.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/5292894956082903831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/5292894956082903831'/><link rel='alternate' type='text/html' href='http://circuitplanet.blogspot.com/2009/10/avr-delay-calculator.html' title='AVR delay calculator'/><author><name>Arun Kumar</name><uri>https://profiles.google.com/106450967102748060653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-Qvye04VFjcc/AAAAAAAAAAI/AAAAAAAAAlY/LmoYIEg8p2c/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_H-OQr197CAc/St7DUensnII/AAAAAAAAAVQ/-AqZyRfbzR4/s72-c/AVRdelayloop2_thumb%5B2%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-330726511081228200.post-1464277839773394312</id><published>2009-10-19T20:30:00.001+05:30</published><updated>2009-10-19T20:30:32.439+05:30</updated><title type='text'>Final year electronic projects recommendation</title><content type='html'>&lt;p&gt;&lt;b&gt;Final Year Electronic Projects&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;It is usually the norm of students in the field of electrical, electronics, telecommunication, computer or communication of most universities and colleges to complete a final year project. Each must synthesize the theory and experimental work they learned during the first two to three years in order to complete the project. Under the supervision of their faculty supervisor, they must research, design, execute, document, and then present their work to the supervising committee. &lt;/p&gt;  &lt;p&gt;A list of suitable topics will be offered by the university, from which preferred topics may be selected. Students sometimes will also have the opportunity to propose topics of their own devising, subject to approval for suitability. &lt;/p&gt;  &lt;p&gt;Some of the projects which students may want to consider and get some ideas from are listed below. It usually involves the use of a microcontroller or a microprocessor in these projects. A lot of applications and ideas can be modified and build once they are familiar with circuit theory and operation. &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Among the projects that one can consider is the utility metering projects which will become a norm in the near future. Hands-on of microcontroller projects will enable one to familiarise himself with the assembly language, C language and other tools that are used in the project. &lt;/p&gt;  &lt;p&gt;Some of the final year electronic projects that one can get some ideas from are listed below.    &lt;br /&gt;&lt;a href="http://www.electronics-project-design.com/ElectronicMeter.html"&gt;Final Year Electronic Projects - Metering Project&lt;/a&gt;    &lt;br /&gt;Electronic meters compared to traditional mechanical solutions in use offer several additional advantages to the utility market. The metering utilities that can be replaced are gas, water and electricity meters.     &lt;br /&gt;&lt;a href="http://www.electronics-project-design.com/DigitalSignalProcessing.html"&gt;Biometrics Digital Signal Processing Project&lt;/a&gt;    &lt;br /&gt;Biometrics is the technology used to analyze biological data. Its most recent application is in the area of security where the biological data of a person is used for personal identification and authentication before the person is allowed to proceed to enter a building or do any business transactions.     &lt;br /&gt;&lt;a href="http://www.electronics-project-design.com/BluetoothTechnology.html"&gt;Bluetooth Technology&lt;/a&gt;    &lt;br /&gt;Bluetooth technology is a radio frequency short range &lt;a href="http://www.electronics-project-design.com/Final-Year-Electronic-Projects.html#"&gt;communications technology&lt;/a&gt; that was created with the intention of replacing wired cables that are used to connect various portable and fixed devices. Get some reference design for your final year electronic projects here.     &lt;br /&gt;&lt;a href="http://www.electronics-project-design.com/USBCircuitDesign.html"&gt;USB2.0 Card Reader Design Project&lt;/a&gt;    &lt;br /&gt;This project provides a reference USB2.0 Card Reader design with schematics and source codes for Compactflash, Memory Stick, Memory Stick Duo, Magic Gate, Secure Digital, MultimediaCard and SmartMedia.     &lt;br /&gt;&lt;a href="http://www.electronics-project-design.com/X10HomeAutomation.html"&gt;X10 Home Automation Project&lt;/a&gt;    &lt;br /&gt;This project discusses the implementation of X-10 on a PIC microcontroller to create a home controller that can both send and receive X-10 signals.     &lt;br /&gt;&lt;a href="http://www.electronics-project-design.com/Power-Inverter-Circuit-Design.html"&gt;Sensorless Brushless DC Motor Control Project&lt;/a&gt;    &lt;br /&gt;This project provides the application notes on the control of 3 phase sensor less brushless DC Motor.     &lt;br /&gt;&lt;a href="http://www.electronics-project-design.com/HomeLightingSystem.html"&gt;Lighting Networking System Project&lt;/a&gt;    &lt;br /&gt;This project provides the application notes on the networking control of lighting devices using Digitally Addressable Lighting Interface Standard.     &lt;br /&gt;&lt;a href="http://www.electronics-project-design.com/Zigbee.html"&gt;Zigbee Wireless Project&lt;/a&gt;    &lt;br /&gt;This project provides the application notes on the free frequency band wireless networking using Zigbee Standard. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330726511081228200-1464277839773394312?l=circuitplanet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://circuitplanet.blogspot.com/feeds/1464277839773394312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://circuitplanet.blogspot.com/2009/10/final-year-electronic-projects.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/1464277839773394312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/1464277839773394312'/><link rel='alternate' type='text/html' href='http://circuitplanet.blogspot.com/2009/10/final-year-electronic-projects.html' title='Final year electronic projects recommendation'/><author><name>Arun Kumar</name><uri>https://profiles.google.com/106450967102748060653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-Qvye04VFjcc/AAAAAAAAAAI/AAAAAAAAAlY/LmoYIEg8p2c/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-330726511081228200.post-7239517978012564968</id><published>2009-10-19T20:24:00.001+05:30</published><updated>2009-10-19T20:24:12.623+05:30</updated><title type='text'>Free engineering magazines</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:12pt'&gt;&lt;strong&gt;The following are some engineering free magazine available to cater for your various engineering needs : &lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:12pt'&gt;&lt;br/&gt;&lt;a href='http://electronics-project-design.tradepub.com/free/eete/'&gt;&lt;span style='color:blue; text-decoration:underline'&gt;EE Times&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;					&lt;br/&gt;EE Times provides direct access to 150,000 high-level professionals involved in design/development engineering and management. EE Times is consistently chosen as the best-read and most preferred publication in the industry. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;span style='font-size:12pt'&gt;EE Times delivers business and &lt;a target='undefined' href='http://www.electronics-project-design.com/engineering-free-magazine.html'/&gt;&lt;/span&gt;&lt;span style='color:blue; text-decoration:underline'&gt;&lt;span style='font-size:10pt'&gt;technology news&lt;/span&gt;&lt;span style='font-size:12pt'&gt;&lt;br /&gt;						&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;span style='font-size:12pt'&gt;every week to &lt;a target='undefined' href='http://www.electronics-project-design.com/engineering-free-magazine.html'/&gt;&lt;/span&gt;&lt;span style='color:blue; font-size:10pt; text-decoration:underline'&gt;engineers&lt;/span&gt;&lt;span style='font-size:12pt'&gt; and technical managers in the electronics industry. Besides reporting the news, editors analyze key industry trends and developments, put the news into perspective and predict what is likely to happen next. Opinion from leaders of government and industry is also part of the editorial fiber of the paper. &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:12pt'&gt;&lt;br/&gt;&lt;a href='http://electronics-project-design.tradepub.com/free/edn/'&gt;&lt;span style='color:blue; text-decoration:underline'&gt;Electronic Design &lt;/span&gt;&lt;/a&gt;&lt;br/&gt;Electronic Design's on-going objective is to observe and report the latest breakthroughs in EOEM technology. By providing this information Electronic Design has been the strategic partner of system designers and suppliers for the past 50 years, helping to bring them together so that they can deliver more competitive products to market faster. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;span style='font-size:12pt'&gt;&lt;br/&gt;&lt;a href='http://electronics-project-design.tradepub.com/free/esd/'&gt;&lt;span style='color:blue; text-decoration:underline'&gt;Embedded System&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;						&lt;br/&gt;&lt;a target='undefined' href='http://www.electronics-project-design.com/engineering-free-magazine.html'/&gt;&lt;/span&gt;&lt;span style='color:blue; font-size:10pt; text-decoration:underline'&gt;Embedded Systems&lt;/span&gt;&lt;span style='font-size:12pt'&gt; Design is a magazine for engineers, programmers and electronics hobbyists who are into using microcontroller and embedded microprocessor-based systems in their design. &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;span style='font-size:12pt'&gt;This magazine provides best practices and peer guidance for Senior Systems Designers and their teams. These are the key designers responsible for defining systems, selecting the critical hardware and software components, building the systems, and integrating the hardware and &lt;a target='undefined' href='http://www.electronics-project-design.com/engineering-free-magazine.html'/&gt;&lt;/span&gt;&lt;span style='color:blue; font-size:10pt; text-decoration:underline'&gt;firmware&lt;/span&gt;&lt;span style='font-size:12pt'&gt; designs. This systems design magazine highlights the significant design &lt;a target='undefined' href='http://www.electronics-project-design.com/engineering-free-magazine.html'/&gt;&lt;/span&gt;&lt;span style='color:blue; font-size:10pt; text-decoration:underline'&gt;methodologies&lt;/span&gt;&lt;span style='font-size:12pt'&gt;, strategies and new products engineers need to gain a competitive advantage. &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:12pt'&gt;&lt;br/&gt;&lt;a href='http://electronics-project-design.tradepub.com/free/epr/'&gt;&lt;span style='color:blue; text-decoration:underline'&gt;Electronic Products&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;					&lt;br/&gt;Electronic Products reports on important developments in products and product technology. Its editorial serves as a key information source for engineers and managers. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:12pt'&gt;Electronic Products focuses on the new product and product technology needs of engineers designing today's electronic equipment and systems. From cover to cover, month after month, we provide the relevant, timely product and product technology information today's engineers need to make informed buying decisions. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:12pt'&gt;&lt;br/&gt;&lt;a href='http://electronics-project-design.tradepub.com/free/tmw/'&gt;&lt;span style='color:blue; text-decoration:underline'&gt;Test and Measurement&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;					&lt;br/&gt;Test &amp;amp; Measurement World is the leading publication for engineers involved in electronics test, measurement, and inspection. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;span style='font-size:12pt'&gt;Test &amp;amp; Measurement World provides practical content and industry updates for engineers and engineering managers who are involved in using and buying equipment, &lt;a target='undefined' href='http://www.electronics-project-design.com/engineering-free-magazine.html'/&gt;&lt;/span&gt;&lt;span style='color:blue; font-size:10pt; text-decoration:underline'&gt;software&lt;/span&gt;&lt;span style='font-size:12pt'&gt; and services for test, measurement, inspection, and quality control during development, design and manufacturing or field service. 11 issues per year. &lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330726511081228200-7239517978012564968?l=circuitplanet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://circuitplanet.blogspot.com/feeds/7239517978012564968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://circuitplanet.blogspot.com/2009/10/free-engineering-magazines.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/7239517978012564968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/7239517978012564968'/><link rel='alternate' type='text/html' href='http://circuitplanet.blogspot.com/2009/10/free-engineering-magazines.html' title='Free engineering magazines'/><author><name>Arun Kumar</name><uri>https://profiles.google.com/106450967102748060653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-Qvye04VFjcc/AAAAAAAAAAI/AAAAAAAAAlY/LmoYIEg8p2c/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-330726511081228200.post-5092149841182674110</id><published>2009-10-19T19:02:00.001+05:30</published><updated>2009-10-19T19:02:16.204+05:30</updated><title type='text'>A tutorial on I2C protocol</title><content type='html'>&lt;p&gt;This I2C tutorial shows you how the I2C protocol works at the physical bit level. It only discusses single master mode (a single controlling device) as this is the most common use for I2C in a small system.&lt;/p&gt;  &lt;p&gt;I²C (pronounced I-squared-C) created by Philips Semiconductors and commonly written as 'I2C' stands for Inter-Integrated Circuit and allows communication of data between I2C devices over two wires. It sends information serially using one line for data (SDA) and one for clock (SCL).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img height="194" alt="i2c tutorial master and slaves diagram" src="http://www.best-microcontroller-projects.com/images/i2c-tutorial-block-diag.png" width="489" border="0" /&gt;&lt;/p&gt;  &lt;h5&gt;Master and slave&lt;/h5&gt;  &lt;p&gt;The phillips I2C protocol defines the concept of master and slave devices. A master device is simply the device that is in charge of the bus at the present time and this device controls the clock and generates START and STOP signals. Slaves simply listen to the bus and act on controls and data that they are sent.&lt;/p&gt;  &lt;p&gt;The master can send data to a slave or receive data from a slave - slaves do not transfer data between themselves.&lt;/p&gt;  &lt;h5&gt;Multi Master&lt;/h5&gt;  &lt;p&gt;Multi master operation is a more complex use of I2C that lets you have different controlling devices on the same bus. You only need to use this mode if you have more than one microcontroller on the bus (and you want either of them to be the bus master).&lt;/p&gt;  &lt;p&gt;Multi master operation involves arbitration of the bus (where a master has to fight to get control of the bus) and clock synchronisation (each may a use a different clock e.g. because of separate crystal clocks for each micro).&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Note: Multi master is not covered in this I2C tutorial as the more common use of I2C is to use a single bus master to control peripheral devices e.g. serial memory, ADC, RTC etc.&lt;/i&gt;&lt;/p&gt;  &lt;h5&gt;Data and Clock&lt;/h5&gt;  &lt;p&gt;The I2C interface uses two bi-directional lines meaning that any device could drive either line. In a single master system the master device drives the clock most of the time - the master is in charge of the clock but slaves can influence it to slow it down (See Slow Peripherals below).&lt;/p&gt;  &lt;p&gt;The two wires must be driven as open collector/drain outputs and must be pulled high using one resistor each - this implements a 'wired AND function' - any device pulling the wire low causes all devices to see a low logic value - for high logic value all devices must stop driving the wire.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Note : If you use I2C you can not put any other (non I2C) devices on the bus as both lines are used as clock at some point (generation of START and STOP bits toggles the data line). So you can not do something clever such as keeping the clock line inactive and use the data line as a button press detector (to save pins).&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;You will often will find devices that you realise are I2C compatible but they are labelled as using a '2 wire interface'. The manufacturer is avoiding paying royalties by not using the words 'I2C'!&lt;/p&gt;  &lt;p&gt;There are two wires (three if you include ground!) :&lt;/p&gt;  &lt;h6&gt;I2C Turorial: Signals definition &lt;/h6&gt;  &lt;p&gt;SDA : Serial Data    &lt;br /&gt;SCL : Serial Clock&lt;/p&gt;  &lt;h6&gt;I2C Turorial: end of signal definition &lt;/h6&gt;  &lt;p&gt;I2C Tutorial : Typical SDA and SCL signals&lt;/p&gt;  &lt;p&gt;&lt;img height="356" alt="typical i2c signals" src="http://www.best-microcontroller-projects.com/images/i2c-tutorial-typical-signals.png" width="489" border="0" /&gt;&lt;/p&gt;  &lt;h5&gt;Speed&lt;/h5&gt;  &lt;p&gt;Standard clock speeds are 100kHz and 10kHz but the standard lets you use clock speeds from zero to 100kHz and a fast mode is also available (400kHz - Fast-mode). An even higher speed (3.4MHz - High-speed mode) for more demanding applications - The mid range PIC won't be up this mode yet!&lt;/p&gt;  &lt;p&gt;Note that the low-speed mode has been omitted (10kHz) as the standard now specifies the basic system operating from 0 to 100kHz.&lt;/p&gt;  &lt;h5&gt;Slow peripherals&lt;/h5&gt;  &lt;p&gt;A slow slave device may need to stop the bus while it gathers data or services an interrupt etc. It can do this while holding the clock line (SCL) low forcing the master into the wait state. The master must then wait until SCL is released before proceeding.&lt;/p&gt;  &lt;h5&gt;Data transfer sequence&lt;/h5&gt;  &lt;p&gt;A basic Master to slave read or write sequence for I2C follows the following order:&lt;/p&gt;  &lt;h6&gt;I2C Tutorial : I2C basic command sequence.&lt;/h6&gt;  &lt;ul&gt;   &lt;li&gt;1. Send the START bit (S). &lt;/li&gt;    &lt;li&gt;2. Send the slave address (ADDR). &lt;/li&gt;    &lt;li&gt;3. Send the Read(R)-1 / Write(W)-0 bit. &lt;/li&gt;    &lt;li&gt;4. Wait for/Send an acknowledge bit (A). &lt;/li&gt;    &lt;li&gt;5. Send/Receive the data byte (8 bits) (DATA). &lt;/li&gt;    &lt;li&gt;6. Expect/Send acknowledge bit (A). &lt;/li&gt;    &lt;li&gt;7. Send the STOP bit (P). &lt;/li&gt; &lt;/ul&gt;  &lt;h6&gt;I2C Tutorial : end of I2C basic command sequence.&lt;/h6&gt;  &lt;p&gt;&lt;i&gt;Note: You can use 7 bit or 10 bit addresses.&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;The sequence 5 and 6 can be repeated so that a multibyte block can be read or written.&lt;/p&gt;  &lt;h6&gt;Data Transfer from master to slave&lt;/h6&gt;  &lt;p&gt;I2C Tutorial : Instruction sequence data from master to slave&lt;/p&gt;  &lt;p&gt;&lt;img height="103" alt="i2c tutorial master to slave" src="http://www.best-microcontroller-projects.com/images/i2c-tutorial-master-slave.png" width="489" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;A master device sends the sequence S ADDR W and then waits for an acknowledge bit (A) from the slave which the slave will only generate if its internal address matches the value sent by the master. If this happens then the master sends DATA and waits for acknowledge (A) from the slave. The master completes the byte transfer by generating a stop bit (P) (or repeated start).&lt;/p&gt;  &lt;h6&gt;Data transfer from slave to master&lt;/h6&gt;  &lt;p&gt;I2C Tutorial : Instruction sequence data from slave to master&lt;/p&gt;  &lt;p&gt;&lt;img height="94" alt="i2c tutorial slave to master" src="http://www.best-microcontroller-projects.com/images/i2c-tutorial-slave-master.png" width="489" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;A similar process happens when a master reads from the slave but in this case, instead of W, R is sent. After the data is transmitted from the slave to the master the &lt;b&gt;master&lt;/b&gt; sends the acknowledge (A). If instead the master does not want any more data it must send a not-acknowledge which indicates to the slave that it should release the bus. This lets the master send the STOP or repeated START signal.&lt;/p&gt;  &lt;h5&gt;Device addresses&lt;/h5&gt;  &lt;p&gt;Each device you use on the I2C bus must have a unique address. For some devices e.g. serial memory you can set the lower address bits using input pins on the device others have a fixed internal address setting e.g. a real time clock DS1307. You can put several memory devices on the same IC bus by using a different address for each.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Note: The maximum number of devices is limited by the number of available addresses and by the total bus capacitance (maximum 400pF).&lt;/i&gt;&lt;/p&gt;  &lt;h6&gt;General call&lt;/h6&gt;  &lt;p&gt;The general call address is a reserved address which when output by the bus master should address all devices which should respond with an acknowledge.Its value is 0000000 (7 bits) and written by the master 0000000W. If a device does not need data from the general call it does not need to respond to it.&lt;/p&gt;  &lt;h6&gt;I2C Tutorial : Reserved addresses.&lt;/h6&gt;  &lt;p&gt;0000 000 1 START byte - for slow micros without I2C h/w    &lt;br /&gt;0000 001 X CBUS address - a different bus protocol     &lt;br /&gt;0000 010 X Reserved for different bus format     &lt;br /&gt;0000 011 X Reserved for future purposes     &lt;br /&gt;0000 1XX X Hs-mode master code     &lt;br /&gt;1111 1XX X Reserved for future purposes     &lt;br /&gt;1111 0XX X 10-bit slave addressing&lt;/p&gt;  &lt;h6&gt;I2C Tutorial : End of reserved addresses.&lt;/h6&gt;  &lt;p&gt;Most of these are not that useful for PIC microcontrollers except perhaps the START byte and 10 bit addressing.&lt;/p&gt;  &lt;h5&gt;START (S) and STOP (P) bits&lt;/h5&gt;  &lt;p&gt;START (S) and STOP (P) bits are unique signals that can be generated on the bus but &lt;b&gt;only&lt;/b&gt; by a bus master.&lt;/p&gt;  &lt;p&gt;Reception of a START bit by an I2C slave device resets its internal bus logic. This can be done at any time so you can force a restart if anything goes wrong even in the middle of communication.&lt;/p&gt;  &lt;p&gt;START and STOP bits are defined as rising or falling edges on the data line while the clock line is kept high.&lt;/p&gt;  &lt;h6&gt;I2C Tutorial : text definition of START and STOP signals&lt;/h6&gt;  &lt;p&gt;START condition (S)    &lt;br /&gt;SCL = 1, SDA falling edge&lt;/p&gt;  &lt;p&gt;STOP condition (P)    &lt;br /&gt;SCL = 1, SDA rising edge&lt;/p&gt;  &lt;h6&gt;I2C Tutorial : end of text definition of START and STOP signals&lt;/h6&gt;  &lt;p&gt;The following diagram shows the above information graphically - these are the signals you would see on the I2C bus.&lt;/p&gt;  &lt;h6&gt;I2C Tutorial : end of definition of START and STOP signals&lt;/h6&gt;  &lt;p&gt;I2C Tutorial : START (S) and STOP (P) bits.&lt;/p&gt;  &lt;p&gt;&lt;img height="194" alt="i2c tutorial START and STOP" src="http://www.best-microcontroller-projects.com/images/i2c-tutorial-star-stop.png" width="300" border="0" /&gt;&lt;/p&gt;  &lt;h6&gt;I2C Tutorial : end of definition of START and STOP signals&lt;/h6&gt;  &lt;p&gt;&lt;i&gt;Note : In a single master system the only difference between a slave and a master is the master's ability to generate START and STOP bits. Both slave and master can control SDA and SCL.&lt;/i&gt;&lt;/p&gt;  &lt;h5&gt;Repeated START (Sr)&lt;/h5&gt;  &lt;p&gt;This seems like a confusing term at first as you ask yourself why bother with it as it is functionally identical to the sequence :&lt;/p&gt;  &lt;p&gt;S ADDR (R/W) DATA A P&lt;/p&gt;  &lt;p&gt;The only difference is that for a repeated start you can repeat the sequence starting from the stop bit (replacing the stop bit with another start bit).&lt;/p&gt;  &lt;p&gt;S ADDR (R/W) DATA A &lt;b&gt;Sr ADDR (R/W) DATA A P&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;and you can do this indefinitely.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Note: Reception of both S or Sr force any I2C device reset its internal bus logic so sending S or Sr is really resetting all the bus devices. This can be done &lt;b&gt;at any time&lt;/b&gt; - it is a forced reset.&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;The main reason that the Sr bit exists is in a multi master configuration where the current bus master does not want to release its mastership. Using the repeated start keeps the bus busy so that no other master can grab the bus.&lt;/p&gt;  &lt;p&gt;Because of this when used in a Single master configuration it is just a curiosity.&lt;/p&gt;  &lt;h5&gt;Data&lt;/h5&gt;  &lt;p&gt;All data blocks are composed of 8 bits. The initial block has 7 address bits followed by a direction bit (Read or Write). Following blocks have 8 data bits. Acknowledge bits are squeezed in between each block.&lt;/p&gt;  &lt;p&gt;Each data byte is transmitted MSB first including the address byte.&lt;/p&gt;  &lt;p&gt;To allow START and STOP bit generation by the master the data line (SDA) must not be changed while the clock (SCL) is high - it can only be changed when the clock is low.&lt;/p&gt;  &lt;h5&gt;Acknowledge&lt;/h5&gt;  &lt;p&gt;The acknowledge bit (generated by the receiving device) indicates to the transmitter that the the data transfer was ok. Note that the clock pulse for the acknowledge bit is always created by the bus master.&lt;/p&gt;  &lt;p&gt;The acknowledge data bit is generated by either the master or slave depending on the data direction. For the master writing to a slave (W) the acknowledge is generated by the slave. For the master receiving (R) data from a slave the master generates the acknowledge bit.&lt;/p&gt;  &lt;h6&gt;I2C Tutorial : Definition of ACK bits&lt;/h6&gt;  &lt;p&gt;Acknowledge    &lt;br /&gt;0 volts&lt;/p&gt;  &lt;p&gt;Not acknowledge    &lt;br /&gt;High volts&lt;/p&gt;  &lt;h6&gt;I2C Tutorial : End of definition of ACK bits&lt;/h6&gt;  &lt;h6&gt;ACK data master --&amp;gt; slave&lt;/h6&gt;  &lt;p&gt;In this case the slave generates the acknowledge signal.&lt;/p&gt;  &lt;p&gt;When a not-acknowledge is received by the bus master the transfer has failed and the master must generate a STOP or repeated START to abort the sequence.&lt;/p&gt;  &lt;h6&gt;ACK data slave --&amp;gt; master&lt;/h6&gt;  &lt;p&gt;In this case the master generates the acknowledge signal.&lt;/p&gt;  &lt;p&gt;Normally the master will generate an acknowledge after it has received data but to indicate to the slave that no more data is required on the last byte transfer the master must generate a 'not-acknowledge'. This indicates to the slave that it should stop sending data. The master can then generate the STOP bit (or repeated START).&lt;/p&gt;  &lt;h5&gt;I2C Tutorial : Specifics for the 16F88&lt;/h5&gt;  &lt;h6&gt;Pin configuration&lt;/h6&gt;  &lt;p&gt;To use the I2C mode in the 16F88 the SDA and SCL pins must be initialised as inputs (TRIS bit = 1) so that an open drain effect is created. By setting them as inputs they are not driving the wires and an external pull up resistor will pull the signals high.&lt;/p&gt;  &lt;h6&gt;Slave mode&lt;/h6&gt;  &lt;p&gt;The 16F88 fully implements all slave functions except general call.&lt;/p&gt;  &lt;p&gt;The general call function does not really matter as it is quite specialised commanding all devices on the bus to use some data.&lt;/p&gt;  &lt;p&gt;A low output is generated by driving the signal line low and changing the pin direction to an output. A high output is generated by changing the pin direction to an input so that the external resistor pulls the signal high.&lt;/p&gt;  &lt;p&gt;In slave mode this action is done for you by the SSP module (the outputs of the register at SDA and SCL are driven low automatically - regardless of the state of the register value).&lt;/p&gt;  &lt;h6&gt;Master mode&lt;/h6&gt;  &lt;p&gt;Basically there is very limited master mode functionality.&lt;/p&gt;  &lt;p&gt;There are two elements that are provided:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Interrupts &lt;/li&gt;    &lt;li&gt;Pin control &lt;/li&gt; &lt;/ul&gt;  &lt;h6&gt;16F88 Interrupts&lt;/h6&gt;  &lt;p&gt;There are two interrupts that activate on reception of either a START or STOP condition. These two interrupts are only useful in a multi master mode system where it is necessary for the non-master device to detect the start and stop conditions. So for a single master system they are of no use at all!&lt;/p&gt;  &lt;h6&gt;16F88 Pin control&lt;/h6&gt;  &lt;p&gt;Note When the SSP module is active SDA and SCL output are always set at zero regardless of the state of the register values. So all you have to do is control the port direction.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;In master mode (16F88) SDA and SCL must be controlled using software.&lt;/b&gt;&lt;/p&gt;  &lt;h5&gt;I2C Tutorial : Specifics for 16F877A&lt;/h5&gt;  &lt;p&gt;It does it all for you!&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Full master mode. &lt;/li&gt;    &lt;li&gt;Full slave mode. &lt;/li&gt;    &lt;li&gt;Full general call. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;i&gt;Note if you want a chip with full master and slave mode operation look for the MSSP module in a PIC chip e.g. 16F877A - then you won't need more software - just enough to drive the module.&lt;/i&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330726511081228200-5092149841182674110?l=circuitplanet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://circuitplanet.blogspot.com/feeds/5092149841182674110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://circuitplanet.blogspot.com/2009/10/tutorial-on-i2c-protocol.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/5092149841182674110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/5092149841182674110'/><link rel='alternate' type='text/html' href='http://circuitplanet.blogspot.com/2009/10/tutorial-on-i2c-protocol.html' title='A tutorial on I2C protocol'/><author><name>Arun Kumar</name><uri>https://profiles.google.com/106450967102748060653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-Qvye04VFjcc/AAAAAAAAAAI/AAAAAAAAAlY/LmoYIEg8p2c/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-330726511081228200.post-7349029287570216108</id><published>2009-10-19T18:24:00.001+05:30</published><updated>2009-10-19T18:24:32.186+05:30</updated><title type='text'>Electronics Design Software (free or shareware)</title><content type='html'>&lt;span xmlns=''&gt;&lt;div&gt;&lt;table border='0' style='border-collapse:collapse'&gt;&lt;colgroup&gt;&lt;col style='width:12px'/&gt;&lt;/colgroup&gt;&lt;tbody valign='top'&gt;&lt;tr&gt;&lt;td style='padding-top: 1px; padding-left: 1px; padding-bottom: 1px; padding-right: 1px' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:12pt'&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt;&lt;strong&gt;&lt;a name='fsof'/&gt;Electronics Design Software (free or sharew)&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt;Freeware Indexes/Archives: &lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href='http://technet.microsoft.com/en-us/sysinternals/'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;SysInternals&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt;&lt;br /&gt;							&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.web-ee.com/Downloads/Simulator/simulation.htm'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;Web EE&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt;&lt;br /&gt;							&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.rfcascade.com/'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;Rfcascade&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt;, freeware by Greg &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.terrypin.dial.pipex.com/ECADList.html'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;Terry P. Schem/PCB sw links&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt;&lt;br /&gt;							&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://freecad.com/cgi-bin/dcd/html/CAD_Programs___General_Purpose/'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;freecad.com&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt; CAD/CAE freeware archive &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.tech-systems-labs.com/freesoftware.htm'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;Tech Systems&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt; spice/PCB/schem &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.linear.com/company/software.jsp'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;Switchercad, filtercad&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt; from Lin. Technology Inc. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.electronics-tutorials.com/downloads/downloads.htm'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;electronics-tutorials.com&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt; CAD downloads &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www-rocq.inria.fr/scilab/'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;Scilab&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt; math/sci, FFT etc. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.emclab.umr.edu/codes.html'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;Other free EM code&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt;, and &lt;a href='http://emlib.jpl.nasa.gov/EMLIB/files.html'&gt;&lt;span style='color:blue; text-decoration:underline'&gt;more&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;							&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.engr.usask.ca/%7Emacphed/finite/fe_resources/fe_resources.html'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;Finite Element Resources&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt;&lt;br /&gt;							&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://web.archive.org/web/*/www.rfcascade.com/left.html'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;Greg, rf cascade&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt;&lt;br /&gt;							&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt;PCB freeware &lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href='http://www.cadsoftusa.com/freeware.htm'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;Eagle Lite&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt;&lt;br /&gt;							&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.expresspcb.com/'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;ExpressPCB&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt; buy PCBs &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.4pcb.com/index.php?load=content&amp;amp;page_id=46'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;PCB Artist&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt; Adv. Circ. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.pad2pad.com'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;pad2pad&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt;, buy PCBs &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://pcb123.com/'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;pcb123&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt; buy pcbs &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.winqcad.com/download.html'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;WinQcad&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt;&lt;br /&gt;							&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.falco-systems.com/MerliPCB.html'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;Merlin PCB&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt;&lt;br /&gt;							&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.cadint.se/p_free.asp'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;Cadint PCB&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt;&lt;br /&gt;							&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.web-ee.com/Downloads/Simulator/simulation.htm'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;Orcad PSPICE 9.1 Student vers&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.linear.com/designtools/software/'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;LTspice&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt; Lin. Tech &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.5spice.com/'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;5-spice&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt; shareware &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.electronics-tutorials.com/downloads/downloads.htm'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;Digital Works&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt; simulator (shareware) &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.capilano.com/dwlite.html'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;Designworks Lite&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt; (schematics) &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.altium.com/evaluate/'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;Protel&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt; free trial &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.nuhertz.com/download.html'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;NuHertz&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt; filter design &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.quickfield.com/free.htm'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;Free Student Version&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt; of the &lt;a href='http://www.quickfield.com/feat.htm'&gt;&lt;span style='color:blue; text-decoration:underline'&gt;Quickfield&lt;/span&gt;&lt;/a&gt; magnetic/electrostatic/thermal simulator &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.xmds.org/index.html'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;XMDS&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt; math simulator &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://femm.berlios.de/'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;FEMM&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt; finite element magnetics &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.sonnetusa.com/lite/'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;Sonnet Lite&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt; for PCB rf reflections &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.acdlabs.com/educators/chsk_licenses.html'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;ACD/Chemsketch&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt; molecular modeling (free to schools) &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.electrostatics3d.com/'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;3D e-field cad&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www-berkeley.ansys.com/cfd/CFD_codes_p.html'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;CFD fluid dynamics&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;strong&gt;&lt;span style='font-size:13pt'&gt;FPGA, VHDL stuff&lt;/span&gt;&lt;span style='font-size:18pt'&gt;&lt;br /&gt;						&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href='http://www.vhdl.org/vi/comp.lang.vhdl/'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;VHDL FAQ&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.qsl.net/ba1fb/'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;Atmel AVR programming sw&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.xilinx.com/support/download.htm'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;FPGA devel,&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt; webpak ISE (Xilinx) &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://groups.google.com/group/comp.lang.vhdl'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;COMP.LANG.VHDL&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='ftp://ftp.cs.adelaide.edu.au/pub/VHDL-Cookbook/VHDL-Cookbook.pdf'&gt;&lt;span style='color:blue; font-family:Verdana; font-size:13pt; text-decoration:underline'&gt;VHDL cookbook&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana; font-size:13pt'&gt; (pdf, via FTP) &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330726511081228200-7349029287570216108?l=circuitplanet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://circuitplanet.blogspot.com/feeds/7349029287570216108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://circuitplanet.blogspot.com/2009/10/electronics-design-software-free-or.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/7349029287570216108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/7349029287570216108'/><link rel='alternate' type='text/html' href='http://circuitplanet.blogspot.com/2009/10/electronics-design-software-free-or.html' title='Electronics Design Software (free or shareware)'/><author><name>Arun Kumar</name><uri>https://profiles.google.com/106450967102748060653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-Qvye04VFjcc/AAAAAAAAAAI/AAAAAAAAAlY/LmoYIEg8p2c/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-330726511081228200.post-5798327941968989693</id><published>2009-09-24T19:19:00.002+05:30</published><updated>2011-01-27T12:11:25.656+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='microcontrollers'/><title type='text'>Solar power related schematics</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.beam-online.com/Robots/Circuits/1381.html"&gt;&lt;span style="font-size: small;"&gt;1381 solar engine&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; Beam solar engine&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.solorb.com/elect/solarcirc/aacharge/"&gt;&lt;span style="font-size: small;"&gt;AA Battery Solar Charger&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.solorb.com/elect/solarcirc/imeter/index.html"&gt;&lt;span style="font-size: small;"&gt;Current meter&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; used to measure the current from a solar panel. It has very low power loss for currents in the 0-10A range. It also works as a general purpose DC current meter&lt;/span&gt;&lt;br /&gt;&lt;a href="http://library.solarbotics.net/circuits/se_t1_gbse.html"&gt;&lt;span style="font-size: small;"&gt;Gate Boost Solar Engine&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; The Gate Boost SE uses a 1381, a 2N7000 MOSFET and a 2N3906 with a unique voltage doubler to increase the voltage applied to the gate of the MOSFET ....&lt;/span&gt;&lt;br /&gt;&lt;a href="http://homepage.ntlworld.com/henry01/solar_regulator/solar_regulator.htm"&gt;&lt;span style="font-size: small;"&gt;Photovoltaic Solar Battery Regulator and Load Controller&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; This device allows solar cell arrays to be connected to either conventional lead-acid, sealed lead-acid, or lithium storage batteries without fear of overcharging. It allows two different electrical loads to be driven from the batteries at two different charge states to maximise power usage efficiency&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.io.com/~n5fc/solar.htm"&gt;&lt;span style="font-size: small;"&gt;Portable solar battery charger&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://chaokhun.kmitl.ac.th/~kswichit/pyrano/pyrano.htm"&gt;&lt;span style="font-size: small;"&gt;Pyranometer to Current Converter&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; Build a micropower circuit that converts low level DC signal from pyranometer to DC current for long cable metering. The circuit was built with TLV2451, rail-to-rail input/output opamp made by TI&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.solarbotics.net/"&gt;&lt;span style="font-size: small;"&gt;Solarbotics&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; useful collection of material for beam roboticists of all experience levels and abilities&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.solarbug.com/solar.html"&gt;&lt;span style="font-size: small;"&gt;Solar bug&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;!--google_ad_client = "pub-9997106912448689";/* arun, 300x250 ads, created 6/21/08 */google_ad_slot = "2638829526";google_ad_width = 300;google_ad_height = 250;//--&gt;&lt;/script&gt;&lt;br /&gt;&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;&lt;/script&gt;&lt;br /&gt;&lt;a href="http://www.solarbug.com/tutorial2.html"&gt;&lt;span style="font-size: small;"&gt;Solar-bugs tutorial&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.drgw.net/workshop/solarcar/solarcar.html"&gt;&lt;span style="font-size: small;"&gt;Solar car&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www3.telus.net/chemelec/Projects/Solar-Charger/Solar-Charger.htm"&gt;&lt;span style="font-size: small;"&gt;Solar Cell Battery Charger&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; This Circuit will allow for Voltage Regulation and Isolation when Charging Lead Acid Batteries with a Solar Cell. This Circuit will be most useful for Solar Panals of less than 100 watts, and when using a suitable transistor in it, Solar Cell Circuits&lt;/span&gt;&lt;br /&gt;&lt;a href="http://members.shaw.ca/novotill/SolarGardenLight/index.htm"&gt;&lt;span style="font-size: small;"&gt;Solar Cell charges single NiCd AA cell&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; Solar garden light - Solar Cell charges single NiCd AA cell which runs LED via stepup converter when darkness falls&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.edn.com/archives/1997/091297/19di_06.htm"&gt;&lt;span style="font-size: small;"&gt;Solar cells implement low-cost illuminator&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.io.com/~n5fc/solar.htm"&gt;&lt;span style="font-size: small;"&gt;Solar Charger&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; N5ESE's Portable Solar Charger,&amp;nbsp; 5 Watt solar panel&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.xs4all.nl/~odu/solar.html"&gt;&lt;span style="font-size: small;"&gt;Solar charger for lead-acid batteries&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; This circuit is intended for charging sealed lead-acid batteries with a solar panel in small and portable applications&lt;/span&gt;&lt;br /&gt;&lt;a href="http://chaokhun.kmitl.ac.th/~kswichit/solarmeter/solarmeter.htm"&gt;&lt;span style="font-size: small;"&gt;Solar energy meter&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; The meter measures amount of AC energy produced by photovoltaic power system. It uses photocoupler attach to electromechanical energy meter to detect the number of revolution, Solar energy meter&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.xs4all.nl/~sbolt/Other/suneater.html"&gt;&lt;span style="font-size: small;"&gt;Sun eater&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mondo-technology.com/scharge.htm"&gt;&lt;span style="font-size: small;"&gt;Solar Charger&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; PIC16F84&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.talkingelectronics.com/projects/SolarCharger/SolarCharger.html"&gt;&lt;span style="font-size: small;"&gt;Solar charger&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; charging a 12v battery, using the cheapest set of solar cells and the cheapest inverter&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.xs4all.nl/~odu/solar.html"&gt;&lt;span style="font-size: small;"&gt;Solar charger for lead-acid batteries&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; This circuit is intended for charging sealed lead-acid batteries with a solar panel in small and portable applications&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.solorb.com/elect/solarcirc/ccntlvd/"&gt;&lt;span style="font-size: small;"&gt;Solar panel charge controller/low voltage disconnect circuit&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; the charge controller is used to connect a solar panel to a 12 volt lead acid battery, it regulates the charging of the battery and allows the battery to be charged up to a preset voltage. This prevents the battery from over-charging and boiling off electrolyte&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.phoenixnavigation.com/ptbc/articles/ptbc55.htm"&gt;&lt;span style="font-size: small;"&gt;Solar Collector Sun Tracking&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; Remark: switch R7 and R8&lt;/span&gt;&lt;br /&gt;&lt;a href="http://home.comcast.net/~botronics/project.pdf"&gt;&lt;span style="font-size: small;"&gt;Solar Garden Light Autopsy&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; The NiCads are charged by the solar cells through a 1N5817 schottky diode with a low forward voltage drop. On the top of the unit next to the solar cells is a CDS light sensitive resistor. A PNP transistor Q1 controls power to the LED, pdf file&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.solorb.com/gfc/elect/solarcirc/ccntlvd/index.html"&gt;&lt;span style="font-size: small;"&gt;Solar panel charge controller/low voltage disconnect circuit&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; the charge controller is used to connect a solar panel to a 12 volt lead acid battery and a DC load, it regulates the charging of the battery and allows the battery to be charged up to a preset voltage&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.solorb.com/elect/solarcirc/imeter/index.html"&gt;&lt;span style="font-size: small;"&gt;Solar Panel Current Meter&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; This circuit is used to measure the current from a solar panel. It has very low power loss for currents in the 0-10A range&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.solorb.com/elect/solarcirc/snl1/index.html"&gt;&lt;span style="font-size: small;"&gt;Solar Powered Night Light&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; LM2941, TLC27L4, CDS photo sensor&lt;/span&gt;&lt;br /&gt;&lt;a href="http://members.tripod.com/~TrEbOr69/solar.html"&gt;&lt;span style="font-size: small;"&gt;Solar robots&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; The fallowing robots are powered only by light, which means no batteries are required. Make your own solar powered robot at home using things you probably already have. Transistors, resistor, capacitor, solar battery and flashing LED are available at any electronic store&lt;/span&gt;&lt;br /&gt;&lt;a href="http://eagle.csd49.org/middle/jss/Course_Instr.htm"&gt;&lt;span style="font-size: small;"&gt;Solar robot tutorial&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://circuitos.cl.tripod.com/schem/r21.gif"&gt;&lt;span style="font-size: small;"&gt;Solar sun tracker&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; gif file&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.redrok.com/images/cdsrely1.gif"&gt;&lt;span style="font-size: small;"&gt;Solar sun tracker&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; Cadmium Sulfide Relay Tracker Schematic&lt;/span&gt;&lt;br /&gt;&lt;a href="http://cdselectronics.com/Kits/SolarTracker.htm"&gt;&lt;span style="font-size: small;"&gt;Solar tracker&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; This kit monitors the position of the sun using two Light Dependant Resistors (LDR's), and makes the decision to move the solar panel to correctly orientate to the sun. The output configuration is called a H bridge which will drive a small electric gearbox up to 500mA at the input voltage (6 .. 15V), both forward and reverse&lt;/span&gt;&lt;br /&gt;&lt;a href="http://pages.prodigy.net/rich_demartile/"&gt;&lt;span style="font-size: small;"&gt;Solar Tracker&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; Homemade Solar Tracker&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.phoenixnavigation.com/ptbc/articles/ptbc55.htm"&gt;&lt;span style="font-size: small;"&gt;Solar tracker circuit&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; Schematic for Solar Collector Sun Tracking&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.redrok.com/electron.htm"&gt;&lt;span style="font-size: small;"&gt;Solar tracking circuits&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://bp2.blogger.com/_oH9cuSJx7ZY/SHJfnN4iYNI/AAAAAAAABBs/kpk4svAgMaI/s400/sun-up-alarm-1.gif"&gt;&lt;span style="font-size: small;"&gt;Sun-Up Alarm&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; The Sun - Up Alarm can be used to provide a audible alarm for when the sun comes up or it can be used in a dark area and detect when a light comes on. It can also be used to detect a light beam, headlights etc, ..., Light intensity sensor, &lt;/span&gt;&lt;a href="http://www.educypedia.be/"&gt;&lt;span style="font-size: small;"&gt;Educypedia&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ces.ncsu.edu/depts/fourh/greenlight/afterschool/ProtectingTreasures.pdf"&gt;&lt;span style="font-size: small;"&gt;Sun-Up Alarm&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; pdf file&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.maxim-ic.com/appnotes.cfm/an_pk/1029"&gt;&lt;span style="font-size: small;"&gt;Supply Generates 5V from Low-Voltage Solar-Cell Power&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt; This application note describes generating 5V supply voltage from very low input voltage of solar cells. Two stage, high efficiency, MAX866 step-up DC-DC converter and MAX1771 boost controller are used to start up and provide 5V rail under full load and as low as 0.8V input voltage&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.solarbotics.net/library/circuits/se_t1_zener.html"&gt;&lt;span style="font-size: small;"&gt;Zener-based solar engine&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330726511081228200-5798327941968989693?l=circuitplanet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://circuitplanet.blogspot.com/feeds/5798327941968989693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://circuitplanet.blogspot.com/2009/09/solar-power-related-schematics.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/5798327941968989693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/5798327941968989693'/><link rel='alternate' type='text/html' href='http://circuitplanet.blogspot.com/2009/09/solar-power-related-schematics.html' title='Solar power related schematics'/><author><name>Arun Kumar</name><uri>https://profiles.google.com/106450967102748060653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-Qvye04VFjcc/AAAAAAAAAAI/AAAAAAAAAlY/LmoYIEg8p2c/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-330726511081228200.post-7537287001456092930</id><published>2009-09-21T20:03:00.001+05:30</published><updated>2009-09-21T20:03:21.999+05:30</updated><title type='text'>Electronic projects related to computers</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.beis.de/Elektronik/ADDA-USB/ADDA-USB.html'&gt;&lt;span style='font-family:Verdana'&gt;Analog-to-digital- and digital-to-analog converter for USB&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://jap.hu/electronic/avswitch.html'&gt;&lt;span style='font-family:Verdana'&gt;Audio-video switch&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; an 8-input x-output audio/video switch module to be controlled from a computer, for example from the parallel port&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.rennes.supelec.fr/ren/fi/elec/docs/i2c/i2c.htm'&gt;Bus I2C&lt;/a&gt;&lt;br /&gt;					&lt;span style='color:red'&gt;en Français&lt;/span&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.tkk.fi/Misc/Electronics/circuits/dacs.html'&gt;&lt;span style='font-family:Verdana'&gt;Centronics port D/A converters and low-pass filter&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; 7524, R/2R&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.codeproject.com/csharp/csppleds.asp'&gt;Controlling LEDs (Light Emiting Diodes) with Parallel Port&lt;/a&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.turbokeu.com/myprojects/cpudisplay.htm'&gt;&lt;span style='font-family:Verdana'&gt;CPU Clock Indicator&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://francis.courtois.free.fr/jc1/serial/Resources/DB9toDB25.html'&gt;DB-9 connector to DB-25 (both RS-232)&lt;/a&gt; part of &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://francis.courtois.free.fr/jc1/serial/Resources/UsefulTools.html'&gt;&lt;span style='font-family:Verdana'&gt;Useful tools for RS-232 interfacing&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.geocities.com/SiliconValley/Lakes/7156/articl2.htm'&gt;DC motor drive controller&lt;/a&gt; control two DC motors of any current or voltage rating, depending on the rating of the relays. The circuit also provides two shaft encoders for positional feedback to the computer, the motor control circuit is connected to an IBM PC parallel port, via a 74LS192 four-bit latch &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://users.skynet.be/kristofnys/'&gt;&lt;span style='font-family:Verdana'&gt;DMX 512 printerport interface page&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; This page contains schematics and software to build your own cheap 64 channel DMX 512 printerport interface. It also contains the schematics for a 4-way DMX booster / splitter and a 12 channel DMX flasher. These designs are based on Microchip Pic 16F84 microcontrollers and very easy to build, schematics&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.nomad.ee/micros/ds1620programmer.html'&gt;DS1620 Programming Tool&lt;/a&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.geocities.com/CapeCanaveral/Launchpad/3632/pc_therm.htm'&gt;&lt;span style='font-family:Verdana'&gt;DS1621 PC thermometer&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; This incredibly simple thermometer plugs on any free serial port. Does not make use of any programmable components as microcontrollers. It gives temperature readings accurate to 0.5°C with no calibration&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.phanderson.com/stamp/i2c/ds1621_1.html'&gt;DS1621 to a Basic Stamp&lt;/a&gt; Interfacing the BASIC STAMP 2 with the DS1621 Thermometer circuit&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.phanderson.com/PIC/16C84/ds1621.html'&gt;DS1621 to a PIC16F84&lt;/a&gt; Interfacing a DS1621 Digital Thermometer with a PIC16C84 circuit &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://sitelec.org/cours/abati/eib/eib_tp.htm'&gt;&lt;span style='font-family:Verdana'&gt;EIB/RS232&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;span style='color:#ff3300'&gt;en Français&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.webx.dk/oz2cpu/pcmod/fan-reg.htm'&gt;Fan speed temperature regulator&lt;/a&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.turbokeu.com/myprojects/fanregulators.htm'&gt;&lt;span style='font-family:Verdana'&gt;Fan speed temperature regulator&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; Temperature Controlled FAN regulators &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.tkk.fi/Misc/Electronics/circuits/power_from_pc.html'&gt;&lt;span style='font-family:Verdana'&gt;How to get power from PC to your circuits&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.veg.nildram.co.uk/remote.htm'&gt;&lt;span style='font-family:Verdana'&gt;How to use your RS232 or IRDA port for Remote Control&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.pcremotecontrol.com/circuit.html'&gt;Infrared remote control of your PC&lt;/a&gt; the hardware and software required to remotely control your PC by means of any standard hand held remote control unit&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.boondog.com/apps/dac.pdf'&gt;Interfacing Digital-to-Analog converters&lt;/a&gt;&lt;br /&gt;					&lt;span style='color:blue'&gt;pdf file&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.boondog.com/apps/acrelay.pdf'&gt;Interfacing relays and transistors&lt;/a&gt;&lt;br /&gt;					&lt;span style='color:blue'&gt;pdf file&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://chaokhun.kmitl.ac.th/%7Ekswichit/Rs232_web/Rs232.html'&gt;Isolated full duplex RS232C interface&lt;/a&gt; this self powered interface circuit electrically isolates the TxD and RxD lines from the PC serial port and protect the PC from direct connection to hazardous voltages&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.kmitl.ac.th/%7Ekswichit/Rs232_web/Rs232.html'&gt;Isolated full duplex RS232C interface&lt;/a&gt; this self powered interface circuit electrically isolates the TxD and RxD lines from the PC serial port and protect the PC from direct connection to hazardous voltages&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.giangrandi.ch/electronics/lightning/lightning.shtml'&gt;Lightning flash counter&lt;/a&gt; contains instructions to build a lightning flash counter and how to interface it to your PC&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.xs4all.nl/%7Ejwasys/old/diy2.html'&gt;Logic analyzer using the PC's parallel port&lt;/a&gt; record up to 8 channels, use any parallel port, sampling at up to 1 million samples per second, record 32768 samples &lt;a target='_blank' href='http://www.heidenstrom.gen.nz/lptcap/lptcap.html'&gt;LPTCAP parallel port print capture system&lt;/a&gt; LPTCAP is a hardware and software solution which allows an IBM-compatible PC running MS-DOS to capture print data sent by another PC, or any device with a Centronics parallel printer interface &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.mitedu.freeserve.co.uk/Circuits/Testgear/cabletester.htm'&gt;&lt;span style='font-family:Verdana'&gt;Multi Wire Cable Tester&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; A multi wire cable tester with a separate LED for each wire. Will show open circuits, short circuits, reversals, earth faults, continuity and all with four IC's&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.tkk.fi/Misc/Electronics/circuits/nullprint.html'&gt;Null printer adapter&lt;/a&gt; simple adapter for PC parallel port to think that there is a printer connected to computer&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.scumari.nl/pio/index.htm'&gt;Parallel PC Interface&lt;/a&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.qsl.net/yo5ofh/hobby%20circuits/circuit%20pictures/printer.gif'&gt;Parallel port relay interface&lt;/a&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.geocities.com/SiliconValley/Lakes/7156/a4.gif'&gt;Parallel port servo controller&lt;/a&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.boondog.com/tutorials/2993pwm/2993pwm.htm'&gt;PC-based DC motor speed control&lt;/a&gt; PC generated Pulse Width Modulation (PWM) for DC motor speed control circuit&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.ee.washington.edu/circuit_archive/circuits/PCIR/Welcome.html'&gt;PC IR remote control&lt;/a&gt; GP1U52X, NE555 &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.boondog.com/tutorials/max158/max158.htm'&gt;&lt;span style='font-family:Verdana'&gt;PC ISA bus Analog-to-Digital, Digital-to-Analog card&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.ozitronics.com/download/k74.pdf'&gt;&lt;span style='font-family:Verdana'&gt;PC printer port relay board&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; 8 relays &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.qsl.net/yo5ofh/hobby%20circuits/circuit%20pictures/serial3.gif'&gt;&lt;span style='font-family:Verdana'&gt;PC serial port receiver&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; designed to control a 32 channel Christmas light show from the PC serial port circuit&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.riccibitti.com/pc_therm.htm'&gt;PC thermometer&lt;/a&gt; Measures one or two (indoor and outdoor) temperatures&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.tkk.fi/Misc/Electronics/circuits/rspower.html'&gt;Power for your circuits from RS-232 signal lines&lt;/a&gt; This text tries to clear out the mystery of how to get power out of PC serial power &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.tkk.fi/Misc/Electronics/circuits/lptpower.html'&gt;&lt;span style='font-family:Verdana'&gt;Power from parallel port&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.cesko.host.sk/girderplugin.htm'&gt;Remote control of computer&lt;/a&gt; IR remote control of computer &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.pcremotecontrol.com/info.html'&gt;&lt;span style='font-family:Verdana'&gt;Remote control for Windows&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; IR control for Windows, the hardware and software required to remotely control your PC by means of any standard hand held remote control unit&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.geocities.com/SiliconValley/Lakes/7156/laser.htm'&gt;RS 232 laser transceiver&lt;/a&gt; this circuit allows any two computers with serial (RS-232) communication capability to communicate over 200 meters using a laser beam &lt;a target='_blank' href='http://www.vishay.com/doc?82521'&gt;RS232 to IrDA converter&lt;/a&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://chaokhun.kmitl.ac.th/%7Ekswichit/MAX232/MAX232.htm'&gt;RS232C level converter&lt;/a&gt; MAX232, A standard serial interfacing for PC, RS232C, requires negative logic&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.postmaelectronics.nl/nederlands/downloads/downloads.htm'&gt;&lt;span style='font-family:Verdana'&gt;RS232 level converter&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; MAX232, RS232 --&amp;gt; TTL, &lt;span style='color:red'&gt;in Dutch&lt;/span&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.maxim-ic.com/appnotes10.cfm/ac_pk/14'&gt;&lt;span style='font-family:Verdana'&gt;RS232 - RS485 - USB interface circuits&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.airborn.com.au/layout/232cnv.html'&gt;&lt;span style='font-family:Verdana'&gt;RS232 to RS485 Converter&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; RS232 connector compatible with PC, TxD and RxD translated from RS232 to RS485, RS485 signals output on 6 way modular jack, Indicator LED(s) to show communications traffic&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.armory.com/%7Espcecdt/remote/remote.html'&gt;Serial Infrared remote controller&lt;/a&gt; This is a simple, cheap device that can be connected to any serial port to control most components that have infrared remote controls &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.tkk.fi/Misc/Electronics/circuits/ad_serial.html'&gt;&lt;span style='font-family:Verdana'&gt;Serial Port A/D-converter&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; This circuit is a simple 8-bit analogue to digital converter circuit which is connects to PC serial port. The circuit is based on TLC548 A/D-converter chip &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://pdfserv.maxim-ic.com/en/an/AN827.pdf'&gt;&lt;span style='font-family:Verdana'&gt;Serial Port A/D-converter&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; This application note provides an example of interfacing an A/D converter to a PC using a standard serial port. The CS lines and SCLK lines are emulated by the RTS and DTR lines respectively. Conversion data appears on the data-set-ready (DSR) line. Example C code is given to demostrate the application circuit, PC Serial Port Drives 12-Bit A/D Converter, &lt;span style='color:blue'&gt;pdf file&lt;/span&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://jap.hu/electronic/irtx_pic.html'&gt;&lt;span style='font-family:Verdana'&gt;Serial port controlled IR transmitter&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; This is a programmable infrared (remote control) transmitter, which can be controlled from a PC serial port. It is capable of sending many remote control formats, including the Philips RC-5 standard&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://airborn.com.au/serial/sertopar.html'&gt;Serial to parallel converter&lt;/a&gt; AT89C2051, The converter runs at 9600 baud, and outputs each byte received on a centronics style parallel port, together with a nominal 50 microsecond strobe. The converter buffers up the bytes received if busy is active, and is bidirectional &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://parashell.sourceforge.net/docs/parallel.txt'&gt;&lt;span style='font-family:Verdana'&gt;Simple circuit and program to show how to use PC parallel port output capabilities&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.piclist.com/techref/io/serial/ttl-rs232.htm'&gt;TTL to/from rs232 signal conversion&lt;/a&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.franksteinberg.de/uni8ad.htm'&gt;Universeller AD-Wandler auf Basis des TLC 549&lt;/a&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://homepage.hispeed.ch/ibhdoran/usb_link.html'&gt;USB designer links&lt;/a&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.e.kth.se/%7Epontusf/index2.html'&gt;USB interface for parallel LCDs&lt;/a&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.pccompci.com/usb-converter/usb-converter.html'&gt;USB to RS232 converter&lt;/a&gt; The USB to RS232 converter using the FT8U232AM and a Maxim-IC MAX235 &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.embedtronics.com/usb/usb232.html'&gt;&lt;span style='font-family:Verdana'&gt;USB to RS232 Dongle&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; FT232AM, This chip converts USB to a standard high-speed serial port. The bonus with FTDI is the drivers are already written for you. All you have to do is design the hardware and download the serial USB drivers from FTDI's web site&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://liquid-mp3.schijf.org/index.php?content=usb2lcdii'&gt;USB2LCD II project&lt;/a&gt; USB2LCD II project, USB interface LCD project &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.boondog.com/tutorials/dlltutor/dlltutor.htm'&gt;&lt;span style='font-family:Verdana'&gt;Visual Basic (DLL's) and PC interfacing&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; this tutorial shows you step-by-step how to write your own dynamically linked library (DLL) that you can use in your VB programs&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://hem.passagen.se/rollo/web_thermometer.htm'&gt;WEB thermometer&lt;/a&gt; This little simple thermometer can be used to monitor and log the temperature anywhere in a radius of 20 meters from your computer &lt;a target='_blank' href='http://www.lancos.com/webtherm.html'&gt;WEB thermometer&lt;/a&gt; measure your own temperature and display it with a WEB browser, WebThermometer + NetThermometer are a couple of utilities to measure the temperature remotely on the browser via HTTP or TCP/IP&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330726511081228200-7537287001456092930?l=circuitplanet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://circuitplanet.blogspot.com/feeds/7537287001456092930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://circuitplanet.blogspot.com/2009/09/electronic-projects-related-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/7537287001456092930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/7537287001456092930'/><link rel='alternate' type='text/html' href='http://circuitplanet.blogspot.com/2009/09/electronic-projects-related-to.html' title='Electronic projects related to computers'/><author><name>Arun Kumar</name><uri>https://profiles.google.com/106450967102748060653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-Qvye04VFjcc/AAAAAAAAAAI/AAAAAAAAAlY/LmoYIEg8p2c/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-330726511081228200.post-5012540946963031727</id><published>2009-09-21T09:45:00.001+05:30</published><updated>2009-09-21T09:45:19.267+05:30</updated><title type='text'>PASSWORD BASED ELECTRICAL APPLIANCES CONTROL SYSTEM USING 89C51 MICRCONTROLLER</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;ABSTRACT&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Security is prime concern in our day-to-day life. Every one wants to be as much as secure as to be possible. An access control systems forms a vital link in a security chain. The micro controller based digital lock presented here is an access control system that allows only authorized persons to access a restricted area. This system is best suitable for corporate offices, ATMs and home security. &lt;/p&gt;  &lt;p&gt;The system comprises a small electronic unit with a numeric keypad, which is fixed out side the entry door to control a solenoid-operated lock with the help of a stepper motor. When an authorized person enters predetermined user ID and password via the keypad, the stepper motor is operated for a limited time to unlatch the solenoid-operated lock so the door can be open. At the end of preset delay, the stepper motor is operated in reverse direction and the door gets locked again. &lt;/p&gt;  &lt;p&gt;When the code has been incorrectly entered three times in a row, the code lock will switch to block mode. This function thwarts any attempt by ‘hackers’ to quickly try a large number of codes in a sequence. If the user forgets his password, the code lock can be accessed by a unique 10 digit administrator password. The secret code can be changed any time after entering the current code (Master code).&lt;/p&gt;  &lt;p&gt;A buzzer is provided for audio acknowledgment of the key impression. Whenever a key is pressed on the numeric key pad, the system acknowledges the impression by a short beep sound. This buzzer is driven by an NPN transistor.&lt;/p&gt;  &lt;p&gt;This project uses regulated 5V, 500mA power supply. 7805 three terminal voltage regulator is used for voltage regulation. Bridge type full wave rectifier is used to rectify the ac out put of secondary of 230/12V step down transformer.&lt;/p&gt;  &lt;p&gt;INTRODUCTION&lt;/p&gt;  &lt;p&gt;&lt;i&gt;An embedded system is a combination of software and hardware to perform a dedicated task.&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;Some of the main devices used in embedded products are Microprocessors and Microcontrollers.&lt;/p&gt;  &lt;p&gt;Microprocessors are commonly referred to as general purpose processors as they simply accept the inputs, process it and give the output. &lt;/p&gt;  &lt;p&gt;In contrast, a microcontroller not only accepts the data as inputs but also manipulates it, interfaces the data with various devices, controls the data and thus finally gives the result.&lt;/p&gt;  &lt;p&gt;The Project Embedded Password based Electrical Appliances control system using 89C51 Microcontroller is an excellent project that provides security in every way. This project is very useful in places where security is must.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;BLOCK DIAGRAM &lt;/b&gt;    &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;          &lt;td width="39"&gt;&lt;/td&gt;          &lt;td width="153"&gt;&lt;/td&gt;          &lt;td width="7"&gt;&lt;/td&gt;          &lt;td width="187"&gt;&lt;/td&gt;          &lt;td width="105"&gt;&lt;/td&gt;          &lt;td width="125"&gt;&lt;/td&gt;          &lt;td width="49"&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;          &lt;td valign="top"&gt;&lt;a href="http://lh3.ggpht.com/_H-OQr197CAc/Srb2j-9BiAI/AAAAAAAAAMs/uJJgv1TNvUE/s1600-h/clip_image001%5B3%5D.gif"&gt;&lt;img title="clip_image001" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="232" alt="clip_image001" src="http://lh3.ggpht.com/_H-OQr197CAc/Srb2npD2N8I/AAAAAAAAAMw/1KgbAoBe9bQ/clip_image001_thumb.gif?imgmax=800" width="192" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;          &lt;td&gt;&lt;/td&gt;          &lt;td width="105"&gt;           &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;               &lt;tr&gt;                 &lt;td&gt;                   &lt;p&gt;Transistor Driver&lt;/p&gt;                    &lt;p&gt;Circuit&lt;/p&gt;                 &lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;          &lt;td&gt;&lt;/td&gt;          &lt;td valign="top"&gt;&lt;a href="http://lh5.ggpht.com/_H-OQr197CAc/Srb2qcPpmtI/AAAAAAAAAM0/IZL1zOgSEPE/s1600-h/clip_image002%5B3%5D.gif"&gt;&lt;img title="clip_image002" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="240" alt="clip_image002" src="http://lh3.ggpht.com/_H-OQr197CAc/Srb2uBLQnkI/AAAAAAAAAM4/Raph8gqp6ak/clip_image002_thumb.gif?imgmax=800" width="235" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;          &lt;td&gt;&lt;/td&gt;          &lt;td valign="top"&gt;&lt;a href="http://lh3.ggpht.com/_H-OQr197CAc/Srb2yPS8GuI/AAAAAAAAAM8/W1kL9oEEZso/s1600-h/clip_image003%5B6%5D.gif"&gt;&lt;img title="clip_image003" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="190" alt="clip_image003" src="http://lh6.ggpht.com/_H-OQr197CAc/Srb21E0717I/AAAAAAAAANA/5A7CVE4leBE/clip_image003_thumb%5B3%5D.gif?imgmax=800" width="628" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;   &lt;a href="http://lh5.ggpht.com/_H-OQr197CAc/Srb24T3lryI/AAAAAAAAANE/CZis_AKy6j8/s1600-h/clip_image004%5B4%5D.gif"&gt;&lt;img title="clip_image004" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="12" alt="clip_image004" src="http://lh6.ggpht.com/_H-OQr197CAc/Srb28dlKDDI/AAAAAAAAANI/5p7jwk3LRWQ/clip_image004_thumb.gif?imgmax=800" width="42" border="0" /&gt;&lt;/a&gt;    &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="93"&gt;           &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;               &lt;tr&gt;                 &lt;td&gt;                   &lt;p&gt;Reset circuit&lt;/p&gt;                 &lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;   &lt;a href="http://lh6.ggpht.com/_H-OQr197CAc/Srb3DEi3btI/AAAAAAAAANM/Xgb80aWtgQM/s1600-h/clip_image004%5B1%5D%5B2%5D.gif"&gt;&lt;img title="clip_image004[1]" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="12" alt="clip_image004[1]" src="http://lh4.ggpht.com/_H-OQr197CAc/Srb3F_TyueI/AAAAAAAAANQ/0PcB4KiBiY0/clip_image004%5B1%5D_thumb.gif?imgmax=800" width="42" border="0" /&gt;&lt;/a&gt;    &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="93"&gt;           &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;               &lt;tr&gt;                 &lt;td&gt;                   &lt;p&gt;Crystal&lt;/p&gt;                 &lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;   &lt;a href="http://lh3.ggpht.com/_H-OQr197CAc/Srb3H_vBw7I/AAAAAAAAANU/DRRTLF-Uq_Y/s1600-h/clip_image005%5B3%5D.gif"&gt;&lt;img title="clip_image005" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="12" alt="clip_image005" src="http://lh6.ggpht.com/_H-OQr197CAc/Srb3Kl5xE6I/AAAAAAAAANY/TcKAIZ8RXLk/clip_image005_thumb.gif?imgmax=800" width="79" border="0" /&gt;&lt;/a&gt;&lt;a href="http://lh5.ggpht.com/_H-OQr197CAc/Srb3NHF6EjI/AAAAAAAAANc/TmBzFCxogxA/s1600-h/clip_image006%5B3%5D.gif"&gt;&lt;img title="clip_image006" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="12" alt="clip_image006" src="http://lh3.ggpht.com/_H-OQr197CAc/Srb3TiMuG-I/AAAAAAAAANg/HJ2NI6DyBKI/clip_image006_thumb.gif?imgmax=800" width="79" border="0" /&gt;&lt;/a&gt;    &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="81"&gt;           &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;               &lt;tr&gt;                 &lt;td&gt;                   &lt;p&gt;Buzzer&lt;/p&gt;                 &lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;    &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="131"&gt;           &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;               &lt;tr&gt;                 &lt;td&gt;                   &lt;p&gt;8051&lt;/p&gt;                    &lt;p&gt;Micro controller&lt;/p&gt;                 &lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;   &lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;BLOCK DESCRIPTION&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;POWER SUPPLY:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The input to the circuit is applied from the regulated power supply. The a.c. input i.e., 230V from the mains supply is step down by the transformer to 12V and is fed to a rectifier. The output obtained from the rectifier is a pulsating d.c voltage. So in order to get a pure d.c voltage, the output voltage from the rectifier is fed to a filter to remove any a.c components present even after rectification. Now, this voltage is given to a voltage regulator to obtain a pure constant dc voltage.   &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;          &lt;td width="12"&gt;&lt;/td&gt;          &lt;td width="26"&gt;&lt;/td&gt;          &lt;td width="2"&gt;&lt;/td&gt;          &lt;td width="34"&gt;&lt;/td&gt;          &lt;td width="2"&gt;&lt;/td&gt;          &lt;td width="26"&gt;&lt;/td&gt;          &lt;td width="318"&gt;&lt;/td&gt;          &lt;td width="90"&gt;&lt;/td&gt;          &lt;td width="12"&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;          &lt;td&gt;&lt;/td&gt;          &lt;td width="90"&gt;           &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;               &lt;tr&gt;                 &lt;td&gt;                   &lt;p&gt;&lt;b&gt;230V AC&lt;/b&gt;&lt;/p&gt;                    &lt;p&gt;&lt;b&gt;50Hz&lt;/b&gt;&lt;/p&gt;                 &lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;          &lt;td&gt;&lt;a href="http://lh3.ggpht.com/_H-OQr197CAc/Srb3WanTRwI/AAAAAAAAANk/hsuPlamyW70/s1600-h/clip_image007%5B3%5D.gif"&gt;&lt;img title="clip_image007" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="184" alt="clip_image007" src="http://lh5.ggpht.com/_H-OQr197CAc/Srb3ZkxIR9I/AAAAAAAAANo/nTahxVpTJyQ/clip_image007_thumb.gif?imgmax=800" width="90" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;/td&gt;          &lt;td valign="top"&gt;&lt;a href="http://lh3.ggpht.com/_H-OQr197CAc/Srb3WanTRwI/AAAAAAAAANk/hsuPlamyW70/s1600-h/clip_image007%5B3%5D.gif"&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;          &lt;td&gt;&lt;a href="http://lh5.ggpht.com/_H-OQr197CAc/Srb3dDM6_lI/AAAAAAAAANs/ECk0_l-W324/s1600-h/clip_image009%5B6%5D.gif"&gt;&lt;img title="clip_image009" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="171" alt="clip_image009" src="http://lh6.ggpht.com/_H-OQr197CAc/Srb3hZ3m-rI/AAAAAAAAANw/_QCH6MhlaVo/clip_image009_thumb%5B3%5D.gif?imgmax=800" width="704" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td valign="top"&gt;&lt;a href="http://lh5.ggpht.com/_H-OQr197CAc/Srb3lGIOizI/AAAAAAAAAN0/VK_lMuBtjis/s1600-h/clip_image008%5B4%5D.gif"&gt;&lt;img title="clip_image008" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="122" alt="clip_image008" src="http://lh4.ggpht.com/_H-OQr197CAc/Srb3nnQDPNI/AAAAAAAAAN4/aNWnY_8Ll18/clip_image008_thumb.gif?imgmax=800" width="2" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;/td&gt;          &lt;td valign="top"&gt;&lt;a href="http://lh6.ggpht.com/_H-OQr197CAc/Srb3qn_BuII/AAAAAAAAAN8/JzsOJTJiRZU/s1600-h/clip_image008%5B1%5D%5B2%5D.gif"&gt;&lt;img title="clip_image008[1]" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="122" alt="clip_image008[1]" src="http://lh5.ggpht.com/_H-OQr197CAc/Srb3tu6k9OI/AAAAAAAAAOA/Fc1BpUZNm9k/clip_image008%5B1%5D_thumb.gif?imgmax=800" width="2" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;          &lt;td valign="top"&gt;&lt;a href="http://lh5.ggpht.com/_H-OQr197CAc/Srb3dDM6_lI/AAAAAAAAAOE/0YDe2whPQMY/s1600-h/clip_image009%5B4%5D.gif"&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Fig: Power supply&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Transformer:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Usually, DC voltages are required to operate various electronic equipment and these voltages are 5V, 9V or 12V. But these voltages cannot be obtained directly. Thus the a.c input available at the mains supply i.e., 230V is to be brought down to the required voltage level. This is done by a transformer. Thus, a step down transformer is employed to decrease the voltage to a required level.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Rectifier:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The output from the transformer is fed to the rectifier. It converts A.C. into pulsating D.C. The rectifier may be a half wave or a full wave rectifier. In this project, a bridge rectifier is used because of its merits like good stability and full wave rectification.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Filter:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Capacitive filter is used in this project. It removes the ripples from the output of rectifier and smoothens the D.C. Output received from this filter is constant until the mains voltage and load is maintained constant. However, if either of the two is varied, D.C. voltage received at this point changes. Therefore a regulator is applied at the output stage.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Voltage regulator:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;As the name itself implies, it regulates the input applied to it. A voltage regulator is an electrical regulator designed to automatically maintain a constant voltage level. In this project, power supply of 5V and 12V are required. In order to obtain these voltage levels, 7805 and 7812 voltage regulators are to be used. The first number 78 represents positive supply and the numbers 05, 12 represent the required output voltage levels.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;MICROCONTROLLERS:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Microprocessors and microcontrollers are widely used in embedded systems products. &lt;i&gt;Microcontroller is a programmable device&lt;/i&gt;. A microcontroller has a CPU in addition to a fixed amount of RAM, ROM, I/O ports and a timer embedded all on a single chip. The fixed amount of on-chip ROM, RAM and number of I/O ports in microcontrollers makes them ideal for many applications in which cost and space are critical.&lt;/p&gt;  &lt;p&gt;The Intel 8051 is a Harvard architecture, single chip microcontroller (µC) which was developed by Intel in 1980 for use in embedded systems. It was popular in the 1980s and early 1990s, but today it has largely been superseded by a vast range of enhanced devices with 8051-compatible processor cores that are manufactured by more than 20 independent manufacturers including Atmel, Infineon Technologies and Maxim Integrated Products.&lt;/p&gt;  &lt;p&gt;8051 is an 8-bit processor, meaning that the CPU can work on only 8 bits of data at a time. Data larger than 8 bits has to be broken into 8-bit pieces to be processed by the CPU. 8051 is available in different memory types such as UV-EPROM, Flash and NV-RAM.&lt;/p&gt;  &lt;p&gt;The present project is implemented on Keil Uvision. In order to program the device, Proload tool has been used to burn the program onto the microcontroller.&lt;/p&gt;  &lt;p&gt;The features, pin description of the microcontroller and the software tools used are discussed in the following sections.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;FEATURES OF AT89C51:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Ø 4K Bytes of Re-programmable Flash Memory.&lt;/p&gt;  &lt;p&gt;Ø RAM is 128 bytes.&lt;/p&gt;  &lt;p&gt;Ø 2.7V to 6V Operating Range.&lt;/p&gt;  &lt;p&gt;Ø Fully Static Operation: 0 Hz to 24 MHz.&lt;/p&gt;  &lt;p&gt;Ø Two-level Program Memory Lock.&lt;/p&gt;  &lt;p&gt;Ø 128 x 8-bit Internal RAM.&lt;/p&gt;  &lt;p&gt;Ø 32 Programmable I/O Lines.&lt;/p&gt;  &lt;p&gt;Ø Two 16-bit Timer/Counters.&lt;/p&gt;  &lt;p&gt;Ø Six Interrupt Sources.&lt;/p&gt;  &lt;p&gt;Ø Programmable Serial UART Channel.&lt;/p&gt;  &lt;p&gt;Ø Low-power Idle and Power-down Modes.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The AT89C51 is a low-voltage, high-performance CMOS 8-bit microcomputer with 4K bytes of Flash programmable memory. The device is manufactured using Atmel’s high-density nonvolatile memory technology and is compatible with the industry-standard MCS-51 instruction set. By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel AT89C51 is a powerful microcomputer, which provides a highly flexible and cost-effective solution to many embedded control applications.&lt;/p&gt;  &lt;p&gt;In addition, the AT89C51 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port and interrupt system to continue functioning. The power-down mode saves the RAM contents but freezes the oscillator disabling all other chip functions until the next hardware reset.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_H-OQr197CAc/Srb3y4KlR9I/AAAAAAAAAOM/hPXB-PhptOY/s1600-h/clip_image011%5B3%5D.jpg"&gt;&lt;img title="clip_image011" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="244" alt="clip_image011" src="http://lh4.ggpht.com/_H-OQr197CAc/Srb34tdTujI/AAAAAAAAAOQ/igZN9Bb6ZvA/clip_image011_thumb.jpg?imgmax=800" width="189" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Fig: Pin diagram&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_H-OQr197CAc/Srb4CLC-oZI/AAAAAAAAAOU/GppQV8u3c54/s1600-h/clip_image013%5B3%5D.gif"&gt;&lt;img title="clip_image013" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="244" alt="clip_image013" src="http://lh6.ggpht.com/_H-OQr197CAc/Srb4Fx_IhgI/AAAAAAAAAOY/qatR2dmDSxk/clip_image013_thumb.gif?imgmax=800" width="225" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Fig: Block diagram&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;PIN DESCRIPTION:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Vcc&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Pin 40 provides supply voltage to the chip. The voltage source is +5V.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;GND&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Pin 20 is the ground.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;XTAL1 and XTAL2&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;XTAL1 and XTAL2 are the input and output, respectively, of an inverting amplifier that can be configured for use as an on-chip oscillator, as shown in Figure 11. Either a quartz crystal or ceramic resonator may be used. To drive the device from an external clock source, XTAL2 should be left unconnected while XTAL1 is driven, as shown in the below figure. There are no requirements on the duty cycle of the external clock signal, since the input to the internal clocking circuitry is through a divide-by-two flip-flop, but minimum and maximum voltage high and low time specifications must be observed.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_H-OQr197CAc/Srb4IX7Z1-I/AAAAAAAAAOc/foFigGJTK-c/s1600-h/clip_image015%5B3%5D.gif"&gt;&lt;img title="clip_image015" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="227" alt="clip_image015" src="http://lh6.ggpht.com/_H-OQr197CAc/Srb4LK-T8dI/AAAAAAAAAOg/AaAQiC27fZ8/clip_image015_thumb.gif?imgmax=800" width="240" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Fig: Oscillator Connections&lt;/p&gt;  &lt;p&gt;C1, C2 = 30 pF ± 10 pF for Crystals&lt;/p&gt;  &lt;p&gt;= 40 pF ± 10 pF for Ceramic Resonators   &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="75"&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;          &lt;td&gt;&lt;a href="http://lh5.ggpht.com/_H-OQr197CAc/Srb4PS6hEOI/AAAAAAAAAOk/FbZEcKaSd6Q/s1600-h/clip_image017%5B3%5D.gif"&gt;&lt;img title="clip_image017" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="228" alt="clip_image017" src="http://lh3.ggpht.com/_H-OQr197CAc/Srb4V-ppM4I/AAAAAAAAAOo/EdvGkWdebjQ/clip_image017_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;    &lt;br /&gt;Fig: External Clock Drive Configuration&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;RESET&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Pin9 is the reset pin. It is an input and is active high. Upon applying a high pulse to this pin, the microcontroller will reset and terminate all the activities. This is often referred to as a power-on reset.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;EA (External access)&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Pin 31 is EA. It is an active low signal. It is an input pin and must be connected to either Vcc or GND but it cannot be left unconnected.&lt;/p&gt;  &lt;p&gt;The 8051 family members all come with on-chip ROM to store programs. In such cases, the EA pin is connected to Vcc. If the code is stored on an external ROM, the EA pin must be connected to GND to indicate that the code is stored externally.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;PSEN (Program store enable)&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;This is an output pin. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;ALE (Address latch enable)&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;This is an output pin and is active high.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Ports 0, 1, 2 and 3&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The four ports P0, P1, P2 and P3 each use 8 pins, making them 8-bit ports. All the ports upon RESET are configured as input, since P0-P3 have value FFH on them. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Port 0(P0)&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Port 0 is also designated as AD0-AD7, allowing it to be used for both address and data. ALE indicates if P0 has address or data. When ALE=0, it provides data D0-D7, but when ALE=1, it has address A0-A7. Therefore, ALE is used for demultiplexing address and data with the help of an internal latch.&lt;/p&gt;  &lt;p&gt;When there is no external memory connection, the pins of P0 must be connected to a 10K-ohm pull-up resistor. This is due to the fact that P0 is an open drain. With external pull-up resistors connected to P0, it can be used as a simple I/O, just like P1 and P2. But the ports P1, P2 and P3 do not need any pull-up resistors since they already have pull-up resistors internally. Upon reset, ports P1, P2 and P3 are configured as input ports.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Port 1 and Port 2&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;With no external memory connection, both P1 and P2 are used as simple I/O. With external memory connections, port 2 must be used along with P0 to provide the 16-bit address for the external memory. Port 2 is designated as A8-A15 indicating its dual function. While P0 provides the lower 8 bits via A0-A7, it is the job of P2 to provide bits A8-A15 of the address.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Port 3&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Port 3 occupies a total of 8 pins, pins 10 through 17. It can be used as input or output. P3 does not need any pull-up resistors, the same as port 1 and port 2. Port 3 has an additional function of providing some extremely important signals such as interrupts. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href="http://lh4.ggpht.com/_H-OQr197CAc/Srb4Z3iafQI/AAAAAAAAAOs/rS5Db8O9rtA/s1600-h/clip_image019%5B3%5D.gif"&gt;&lt;img title="clip_image019" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="101" alt="clip_image019" src="http://lh4.ggpht.com/_H-OQr197CAc/Srb4dIFJZMI/AAAAAAAAAOw/IcrAvMGkYZ0/clip_image019_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/b&gt; &lt;b&gt;Table: Port 3 Alternate Functions&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Machine cycle for the 8051&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The CPU takes a certain number of clock cycles to execute an instruction. In the 8051 family, these clock cycles are referred to as machine cycles. The length of the machine cycle depends on the frequency of the crystal oscillator. The crystal oscillator, along with on-chip circuitry, provides the clock source for the 8051 CPU. &lt;/p&gt;  &lt;p&gt;The frequency can vary from 4 MHz to 30 MHz, depending upon the chip rating and manufacturer. But the exact frequency of 11.0592 MHz crystal oscillator is used to make the 8051 based system compatible with the serial port of the IBM PC.&lt;/p&gt;  &lt;p&gt;In the original version of 8051, one machine cycle lasts 12 oscillator periods. Therefore, to calculate the machine cycle for the 8051, the calculation is made as 1/12 of the crystal frequency and its inverse is taken.&lt;/p&gt;  &lt;p&gt;The assembly language program is written and this program has to be dumped into the microcontroller for the hardware kit to function according to the software. The program dumped in the microcontroller is stored in the Flash memory in the microcontroller. Before that, this Flash memory has to be programmed and is discussed in the next section.&lt;/p&gt;  &lt;p&gt;PROGRAMMING THE FLASH:&lt;/p&gt;  &lt;p&gt;The AT89C51 is normally shipped with the on-chip Flash memory array in the erased state (that is, contents = FFH) and ready to be programmed. The programming interface accepts either a high-voltage (12-volt) or a low-voltage (VCC) program enable signal. The low-voltage programming mode provides a convenient way to program the AT89C51 inside the user’s system, while the high-voltage programming mode is compatible with conventional third party Flash or EPROM programmers. The AT89C51 is shipped with either the high-voltage or low-voltage programming mode enabled. The respective top-side marking and device signature codes are listed in the following table.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_H-OQr197CAc/Srb4f6Xf5jI/AAAAAAAAAO0/PJlMu8GkVBE/s1600-h/clip_image021%5B3%5D.gif"&gt;&lt;img title="clip_image021" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="88" alt="clip_image021" src="http://lh5.ggpht.com/_H-OQr197CAc/Srb4liBsOdI/AAAAAAAAAO4/biQPLXPe2pI/clip_image021_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The AT89C51 code memory array is programmed byte-byte in either programming mode. &lt;/p&gt;  &lt;p&gt;&lt;i&gt;To program any nonblank&lt;/i&gt; &lt;i&gt;byte in the on-chip Flash Memory, the entire memory&lt;/i&gt; &lt;i&gt;must be erased using the Chip Erase Mode.&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;Programming Algorithm: &lt;/p&gt;  &lt;p&gt;Before programming the AT89C51, the address, data and control signals should be set up according to the Flash programming mode table. To program the AT89C51, the following steps should be considered:&lt;/p&gt;  &lt;p&gt;1. Input the desired memory location on the address lines.&lt;/p&gt;  &lt;p&gt;2. Input the appropriate data byte on the data lines.&lt;/p&gt;  &lt;p&gt;3. Activate the correct combination of control signals.&lt;/p&gt;  &lt;p&gt;4. Raise EA/VPP to 12V for the high-voltage programming mode.&lt;/p&gt;  &lt;p&gt;5. Pulse ALE/PROG once to program a byte in the Flash array or the lock bits. The byte-write cycle is self-timed and typically takes no more than 1.5 ms.&lt;/p&gt;  &lt;p&gt;Repeat steps 1 through 5, changing the address and data for the entire array or until the end of the object file is reached.&lt;/p&gt;  &lt;p&gt;Data Polling: &lt;/p&gt;  &lt;p&gt;The AT89C51 features Data Polling to indicate the end of a write cycle. During a write cycle, an attempted read of the last byte written will result in the complement of the written datum on PO.7. Once the write cycle has been completed, true data are valid on all outputs, and the next cycle may begin. Data Polling may begin any time after a write cycle has been initiated.&lt;/p&gt;  &lt;p&gt;Ready/Busy: &lt;/p&gt;  &lt;p&gt;The progress of byte programming can also be monitored by the RDY/BSY output signal. P3.4 is pulled low after ALE goes high during programming to indicate BUSY. P3.4 is pulled high again when programming is done to indicate READY.&lt;/p&gt;  &lt;p&gt;Chip Erase: &lt;/p&gt;  &lt;p&gt;The entire Flash array is erased electrically by using the proper combination of control signals and by holding ALE/PROG low for 10 ms. The code array is written with all “1”s. The chip erase operation must be executed before the code memory can be re programmed.&lt;/p&gt;  &lt;p&gt;Reading the Signature Bytes:&lt;/p&gt;  &lt;p&gt;The signature bytes are read by the same procedure as a normal verification of locations 030H, 031H, and 032H, except that P3.6 and P3.7 must be pulled to a logic low. The values returned are as follows.&lt;/p&gt;  &lt;p&gt;(030H) = 1EH indicates manufactured by Atmel&lt;/p&gt;  &lt;p&gt;(031H) = 51H indicates 89C51&lt;/p&gt;  &lt;p&gt;(032H) = FFH indicates 12V programming&lt;/p&gt;  &lt;p&gt;(032H) = 05H indicates 5V programming&lt;/p&gt;  &lt;p&gt;Programming Interface:&lt;/p&gt;  &lt;p&gt;Every code byte in the Flash array can be written and the entire array can be erased by using the appropriate combination of control signals. The write operation cycle is self timed and once initiated, will automatically time itself to completion. All major programming vendors offer worldwide support for the Atmel microcontroller series. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_H-OQr197CAc/Srb4pRPXLuI/AAAAAAAAAO8/rXm00Ol8ZxI/s1600-h/clip_image023%5B3%5D.gif"&gt;&lt;img title="clip_image023" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="136" alt="clip_image023" src="http://lh6.ggpht.com/_H-OQr197CAc/Srb4up19UsI/AAAAAAAAAPA/Ynrdc0DYfUQ/clip_image023_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Fig: Flash Programming Modes   &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="75"&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;          &lt;td&gt;&lt;a href="http://lh4.ggpht.com/_H-OQr197CAc/Srb4yyWutAI/AAAAAAAAAPE/kfdGR8LErzk/s1600-h/clip_image025%5B3%5D.gif"&gt;&lt;img title="clip_image025" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="244" alt="clip_image025" src="http://lh6.ggpht.com/_H-OQr197CAc/Srb44SoK08I/AAAAAAAAAPI/46RFyBF8zJc/clip_image025_thumb.gif?imgmax=800" width="219" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;Fig: Programming the Flash&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_H-OQr197CAc/Srb48mIvoAI/AAAAAAAAAPM/JhyANP_qBnY/s1600-h/clip_image027%5B3%5D.gif"&gt;&lt;img title="clip_image027" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="244" alt="clip_image027" src="http://lh6.ggpht.com/_H-OQr197CAc/Srb5BTWmBII/AAAAAAAAAPQ/l7fdwWsRu5g/clip_image027_thumb.gif?imgmax=800" width="188" border="0" /&gt;&lt;/a&gt;    &lt;br /&gt;Fig: Verifying the Flash&lt;/p&gt;  &lt;p&gt;&lt;b&gt;EEPROM:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;In the design of all microprocessors-based systems, semiconductor memories are used as primary storage for code and data. Semiconductor memories are connected directly to the CPU and they are the memory that the CPU first asks for information (code and data). For this reason, semiconductor memories are sometimes referred to as primary memory. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Important Terminology common to all Semiconductor Memories:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Memory capacity:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The number of bits that a semiconductor memory chip can store is called chip capacity. It can be in units of Kilobits, Megabits and so on. This must be distinguished from the storage capacity of computer system. While the memory capacity of a memory IC chip is always given in bits, the memory capacity of a computer system is given in bytes.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Memory organization:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Memory chips are organized into a number of locations within the IC. Each location can hold 1 bit, 4 bits, 8 bits or even 16 bits, depending on how it is designed internally. The number of bits that each location within the memory chip can hold is always equal to the number of data pins on the chip. i.e., the total number of bits that a memory chip can store is equal to the number of locations times the number of data bits per location.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Speed:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;One of the most important characteristics of a memory chip is the speed at which its data can be accessed. The speed of the memory chip is commonly referred to as its access time. The access time of memory chip varies from a few nanoseconds to hundreds of nanoseconds, depending on the IC technology used in the design and fabrication process.&lt;/p&gt;  &lt;p&gt;The different types of memories are RAM, ROM, EPROM and EEPROM.&lt;/p&gt;  &lt;p&gt;RAM and ROM are inbuilt in the microprocessor.&lt;/p&gt;  &lt;p&gt;This project requires the data such as the user identification number and password to be stored permanently. Thus this data has to be stored in such a location where it cannot be erased when power fails and also the data should be allowed to make changes in it without the system interface i.e., there should be a provision in such a way that the data should be accessed (or modified) while it is in system board but not external erasure and programming. The flash memory inbuilt in the microcontroller can erase the entire contents in less than a second and the erasure method is electrical. But the major drawback of Flash memory is that when flash memory’s contents are erased, the entire device will be erased but not a desired section or byte.&lt;/p&gt;  &lt;p&gt;For this purpose, we prefer EEPROM in our project.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;EEPROM (Electrically Erasable Programmable Read only memory)&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;EEPROM has several advantages over other memory devices, such as the fact that its method of erasure is electrical and therefore instant. In addition, in EEPROM one can select which byte to be erased, in contrast to flash , in which the entire contents of ROM are erased. The main advantage of EEPROM is that one can program and erase its contents while it is in system board. It does not require physical removal of the memory chip from its socket. In general, the cost per bit for EEPROM is much higher when compared to other devices.&lt;/p&gt;  &lt;p&gt;The EEPROM used in this project is 24C04 type.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Features of 24C04 EEPROM:&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;1 million erase/write cycles with 40 years data retention. &lt;/li&gt;    &lt;li&gt;Single supply voltage: &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;3v to 5.5v for st24x04 versions.&lt;/p&gt;  &lt;p&gt;2.5v to 5.5v for st25x04 versions.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Hardware write control versions: &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;st24w04 and st25w04.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Programmable write protection. &lt;/li&gt;    &lt;li&gt;Two wire serial interface, fully i2c bus compatible. &lt;/li&gt;    &lt;li&gt;Byte and multibyte write (up to 4 bytes). &lt;/li&gt;    &lt;li&gt;Page write (up to 8 bytes). &lt;/li&gt;    &lt;li&gt;Byte, random and sequential read modes &lt;/li&gt;    &lt;li&gt;Self timed programming cycle &lt;/li&gt;    &lt;li&gt;Automatic address incrementing &lt;/li&gt;    &lt;li&gt;Enhanced ESD/Latch up performances &lt;/li&gt; &lt;/ul&gt;  &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;&lt;/td&gt;        &lt;td width="264"&gt;&lt;/td&gt;        &lt;td width="24"&gt;&lt;/td&gt;        &lt;td width="276"&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;/td&gt;        &lt;td valign="top"&gt;&lt;a href="http://lh4.ggpht.com/_H-OQr197CAc/Srb5Hfbc53I/AAAAAAAAAPU/znG-yLnIQLE/s1600-h/clip_image030%5B3%5D.gif"&gt;&lt;img title="clip_image030" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="200" alt="clip_image030" src="http://lh6.ggpht.com/_H-OQr197CAc/Srb5LBufd8I/AAAAAAAAAPY/0lR9OLkzXkE/clip_image030_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td&gt;&lt;/td&gt;        &lt;td valign="top"&gt;&lt;a href="http://lh3.ggpht.com/_H-OQr197CAc/Srb5OQ1XDZI/AAAAAAAAAPc/w_UPKuVetRc/s1600-h/clip_image031%5B3%5D.gif"&gt;&lt;img title="clip_image031" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="171" alt="clip_image031" src="http://lh3.ggpht.com/_H-OQr197CAc/Srb5SVgzIjI/AAAAAAAAAPg/14qAz53f7y8/clip_image031_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;b&gt;DIP Pin Connections SO Pin Connection&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_H-OQr197CAc/Srb5ZYv1b8I/AAAAAAAAAPk/03ikgPHD8yg/s1600-h/clip_image033%5B3%5D.gif"&gt;&lt;img title="clip_image033" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="154" alt="clip_image033" src="http://lh4.ggpht.com/_H-OQr197CAc/Srb5i0S-YqI/AAAAAAAAAPo/LokQ0qS051U/clip_image033_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Fig: Signal Names&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href="http://lh3.ggpht.com/_H-OQr197CAc/Srb5mzGx78I/AAAAAAAAAPs/srzaVu4mVnI/s1600-h/clip_image035%5B3%5D.gif"&gt;&lt;img title="clip_image035" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="219" alt="clip_image035" src="http://lh4.ggpht.com/_H-OQr197CAc/Srb5uhY7zxI/AAAAAAAAAPw/KCXub57QXIM/clip_image035_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Fig: Logic Diagram&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;DESCRIPTION &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The 24C04 is a 4 Kbit electrically erasable programmable memory (EEPROM), organized as 2 blocks of 256 x8 bits. They are manufactured in ST Microelectronics’ Hi-Endurance Advanced CMOS technology which guarantees an endurance of one million erase/write cycles with a data retention of 40 years. Both Plastic Dual-in-Line and Plastic Small Outline packages are available. The memories are compatible with the I2C standard, two wire serial interface which uses a bi-directional data bus and serial clock. The memories carry a built-in 4 bit, unique device identification code (1010) corresponding to the I2C bus definition. This is used together with 2 chip enable inputs (E2, E1) so that up to 4 x 4K devices may be attached to the I2C bus and selected individually. The memories behave as a slave device in the I2C protocol with all memory operations synchronized by the serial clock. Read and write operations are initiated by a START condition generated by the bus master. The START condition is followed by a stream of 7 bits (identification code 1010), plus one read/write bit and terminated by an acknowledge bit.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_H-OQr197CAc/Srb5xkB9J4I/AAAAAAAAAP0/YA8mSLRo0mI/s1600-h/clip_image037%5B3%5D.gif"&gt;&lt;img title="clip_image037" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="53" alt="clip_image037" src="http://lh4.ggpht.com/_H-OQr197CAc/Srb50-Z6oAI/AAAAAAAAAP4/cnCkl7zBlcQ/clip_image037_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Table: Device Select Mode&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href="http://lh3.ggpht.com/_H-OQr197CAc/Srb58LL0OrI/AAAAAAAAAP8/Vm1j-BRtTQI/s1600-h/clip_image039%5B3%5D.gif"&gt;&lt;img title="clip_image039" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="117" alt="clip_image039" src="http://lh6.ggpht.com/_H-OQr197CAc/Srb6A84kh7I/AAAAAAAAAQA/9XoMAFozYEM/clip_image039_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Table: Operating Modes&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;When writing data to the memory it responds to the 8 bits received by asserting an acknowledge bit during the 9th bit time. When data is read by the bus master, it acknowledges the receipt of the data bytes in the same way. Data transfers are terminated with a STOP condition.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Power On Reset: VCC lock out write protect. &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;In order to prevent data corruption and inadvertent write operations during power up, a Power On Reset (POR) circuit is implemented. Until the VCC voltage has reached the POR threshold value, the internal reset is active, all operations are disabled and the device will not respond to any command. In the same way, when VCC drops down from the operating voltage to below the POR threshold value, all operations are disabled and the device will not respond to any command. A stable VCC must be applied before applying any logic signal.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;SIGNAL DESCRIPTIONS&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Serial Clock (SCL).&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;The SCL input pin is used to synchronize all data in and out of the memory. A resistor can be connected from the SCL line to VCC to act as a pull up.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Serial Data (SDA).&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;The SDA pin is bi-directional and is used to transfer data in or out of the memory. It is an open drain output that may be wire-OR’ed with other open drain or open collector signals on the bus. A resistor must be connected from the SDA bus line to VCC to act as pull up.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Chip Enable (E1 - E2). &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;These chip enable inputs are used to set the 2 least significant bits (b2, b3) of the 7 bit device select code. These inputs may be driven dynamically or tied to VCC or VSS to establish the device select code.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Protect Enable (PRE). &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The PRE input pin, in addition to the status of the Block Address Pointer bit (b2, location 1FFh as in below figure), sets the PRE write protection active.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_H-OQr197CAc/Srb6EwMs5tI/AAAAAAAAAQE/1vgAs91D5qU/s1600-h/clip_image041%5B3%5D.gif"&gt;&lt;img title="clip_image041" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="210" alt="clip_image041" src="http://lh6.ggpht.com/_H-OQr197CAc/Srb6KVOSXqI/AAAAAAAAAQI/PHdm0KrTaQA/clip_image041_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Fig: Memory Protection&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Mode (MODE). &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The MODE input is available on pin 7 and may be driven dynamically. It must be at VIL or VIH for the Byte Write mode, VIH for Multibyte Write mode or VIL for Page Write mode. When unconnected, the MODE input is internally read as VIH (Multibyte Write mode).&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Write Control (WC). &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;An hardware Write Control feature (WC) is offered only for ST24W04 and ST25W04 versions on pin 7. This feature is useful to protect the contents of the memory from any erroneous erase/write cycle. The Write Control signal is used to enable (WC = VIH) or disable (WC =VIL) the internal write protection. When unconnected, the WC input is internally read as VIL and the memory area is not write protected.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;DEVICE OPERATION&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;I2C Bus Background&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The ST24/25x04 supports the I2C protocol. This protocol defines any device that sends data onto the bus as a transmitter and any device that reads the data as a receiver. The device that controls the data transfer is known as the master and the other as the slave. The master will always initiate a data transfer and will provide the serial clock for synchronization.&lt;/p&gt;  &lt;p&gt;The ST24/25x04 is always slave devices in all communications.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_H-OQr197CAc/Srb6Qb2uIsI/AAAAAAAAAQM/NJjjGx-n8Fw/s1600-h/clip_image043%5B3%5D.gif"&gt;&lt;img title="clip_image043" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="227" alt="clip_image043" src="http://lh6.ggpht.com/_H-OQr197CAc/Srb6UuCNByI/AAAAAAAAAQQ/4ETwgCxjk3k/clip_image043_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Fig: I2C Protocol&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Start Condition. &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;START is identified by a high to low transition of the SDA line while the clock SCL is stable in the high state. A START condition must precede any command for data transfer. Except during a programming cycle, the ST24/25x04 continuously monitor the SDA and SCL signals for a START condition and will not respond unless one is given.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Stop Condition. &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;STOP is identified by a low to high transition of the SDA line while the clock SCL is stable in the high state. A STOP condition terminates communication between the ST24/25x04 and the bus master. A STOP condition at the end of a Read command, after and only after a No Acknowledge, forces the standby state. A STOP condition at the end of a Write command triggers the internal EEPROM write cycle.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Acknowledge Bit (ACK).&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;An acknowledge signal is used to indicate a successful data transfer. The bus transmitter, either master or slave, will release the SDA bus after sending 8 bits of data. During the 9th clock pulse period the receiver pulls the SDA bus low to acknowledge the receipt of the 8 bits of data.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Data Input.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;During data input the ST24/25x04 sample the SDA bus signal on the rising edge of the clock SCL. Note that for correct device operation the SDA signal must be stable during the clock low to high transition and the data must change ONLY when the SCL line is low.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Memory Addressing.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;To start communication between the bus master and the slave ST24/25x04, the master must initiate a START condition. Following this, the master sends onto the SDA bus line 8 bits (MSB first) corresponding to the device select code (7 bits) and a READ or WRITE bit. The 4 most significant bits of the device select code are the device type identifier, corresponding to the I2C bus definition. For these memories the 4 bits are fixed as 1010b. The following 2 bits identify the specific memory on the bus. They are matched to the chip enable signals E2, E1. Thus up to 4 x 4K memories can be connected on the same bus giving a memory capacity total of 16 Kilobits. After a START condition any memory on the bus will identify the device code and compare the following 2 bits to its chip enable inputs E2, E1. The 7th bit sent is the block number (one block = 256 bytes). The 8th bit sent is the read or write bit (RW), this bit is set to ’1’ for read and ’0’ for write operations. If a match is found, the corresponding memory will acknowledge the identification on the SDA bus during the 9th bit time.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_H-OQr197CAc/Srb6apBE-OI/AAAAAAAAAQU/4ACd0JzEQa0/s1600-h/clip_image045%5B3%5D.gif"&gt;&lt;img title="clip_image045" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="242" alt="clip_image045" src="http://lh3.ggpht.com/_H-OQr197CAc/Srb6fLi8jTI/AAAAAAAAAQY/WidrwRLA8XU/clip_image045_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Fig: AC Waveforms&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Write Operations&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The Multibyte Write mode (only available on the ST24/25C04 versions) is selected when the MODE pin is at VIH and the Page Write mode when MODE pin is at VIL. The MODE pin may be driven dynamically with CMOS input levels. Following a START condition the master sends a device select code with the RW bit reset to ’0’. The memory acknowledges this and waits for a byte address. The byte address of 8 bits provides access to one block of 256 bytes of the memory. After receipt of the byte address the device again responds with an acknowledge. For the ST24/25W04 versions, any write command with WC = 1 will not modify the memory content.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Byte Write. &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;In the Byte Write mode the master sends one data byte, which is acknowledged by the memory. The master then terminates the transfer by generating a STOP condition. The Write mode is independent of the state of the MODE pin which could be left floating if only this mode was to be used. However it is not a recommended operating mode, as this pin has to be connected to either VIH or VIL, to minimize the stand-by current. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Multibyte Write. &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;For the Multibyte Write mode, the MODE pin must be at VIH. The Multibyte Write mode can be started from any address in the memory. The master sends from one up to 4 bytes of data, which are each acknowledged by the memory. The transfer is terminated by the master generating a STOP condition. The duration of the write cycle is Tw = 10ms maximum except when bytes are accessed on 2 rows (that is have different values for the 6 most significant address bits A7-A2), the programming time is then doubled to a maximum of 20ms. Writing more than 4 bytes in the Multibyte Write mode may modify data bytes in an adjacent row (one row is 8 bytes long). However, the Multibyte Write can properly write up to 8 consecutive bytes as soon as the first address of these 8 bytes is the first address of the row, the 7 following bytes being written in the 7 following bytes of this same row.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Page Write.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;For the Page Write mode, the MODE pin must be at VIL. The Page Write mode allows up to 8 bytes to be written in a single write cycle, provided that they are all located in the same ’row’ in the memory: that is the 5 most significant memory address bits (A7-A3) are the same inside one block. The master sends from one up to 8 bytes of data, which are each acknowledged by the memory. After each byte is transferred, the internal byte address counter (3 least significant bits only) is incremented. The transfer is terminated by the master generating a STOP condition. Care must be taken to avoid address counter ’roll-over’ which could result in data being overwritten. Note that, for any write mode, the generation by the master of the STOP condition starts the internal memory program cycle. All inputs are disabled until the completion of this cycle and the memory will not respond to any request.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Minimizing System Delays by Polling on ACK.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;During the internal write cycle, the memory disconnects itself from the bus in order to copy the data from the internal latches to the memory cells. The maximum value of the write time (Tw) is given from the AC Characteristics, since the typical time is shorter, the time seen by the system may be reduced by an ACK polling sequence issued by the master.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_H-OQr197CAc/Srb6h4d-V-I/AAAAAAAAAQc/2nxj-5ha7jE/s1600-h/clip_image047%5B3%5D.gif"&gt;&lt;img title="clip_image047" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="244" alt="clip_image047" src="http://lh5.ggpht.com/_H-OQr197CAc/Srb6lU09VjI/AAAAAAAAAQg/Jd94u1Lru4U/clip_image047_thumb.gif?imgmax=800" width="243" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Fig: Write Cycle Polling using ACK&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Data in the upper block of 256 bytes of the memory may be write protected. The memory is write protected between a boundary address and the top of memory (address 1FFh) when the PRE input pin is taken high and when the Protect Flag (bit b2 in location 1FFh) is set to ’0’. The boundary address is user defined by writing it in the Block Address Pointer. The Block Address Pointer is an 8 bit EEPROM register located at the address 1FFh. It is composed by 5 MSBs Address Pointer, which defines the bottom boundary address and 3 LSBs which must be programmed at ’0’. This Address Pointer can therefore address a boundary in steps of 8 bytes.&lt;/p&gt;  &lt;p&gt;The sequence to use the Write Protected feature is:&lt;/p&gt;  &lt;p&gt;– write the data to be protected into the top of the memory, up to, but not including, location 1FFh;&lt;/p&gt;  &lt;p&gt;– set the protection by writing the correct bottom boundary address in the Address Pointer (5 MSBs of location 1FFh) with bit b2 (Protect flag) set to ’0’. Note that for a correct functionality of the memory, all the 3 LSBs of the Block Address Pointer must also be programmed at ’0’. The area will now be protected when the PRE input pin is taken High. While the PRE input pin is read at ’0’ by the memory, the location 1FFh can be used as a normal EEPROM byte. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_H-OQr197CAc/Srb6oRGZ78I/AAAAAAAAAQk/habc_VWyPzE/s1600-h/clip_image049%5B3%5D.gif"&gt;&lt;img title="clip_image049" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="162" alt="clip_image049" src="http://lh4.ggpht.com/_H-OQr197CAc/Srb6rpEH-cI/AAAAAAAAAQo/QNKDPrmb6f4/clip_image049_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Fig: Write Modes Sequence&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Read Operations&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Read operations are independent of the state of the MODE pin. On delivery, the memory content is set at all &amp;quot;1’s&amp;quot; (or FFh).&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Current Address Read. &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The memory has an internal byte address counter. Each time a byte is read, this counter is incremented. For the Current Address Read mode, following a START condition, the master sends a memory address with the RW bit set to ’1’. The memory acknowledges this and outputs the byte addressed by the internal byte address counter. This counter is then incremented. The master does NOT acknowledge the byte output, but terminates the transfer with a STOP condition.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Random Address Read.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;A dummy write is performed to load the address into the address counter. This is followed by another START condition from the master and the byte address is repeated with the RW bit set to ’1’. The memory acknowledges this and outputs the byte addressed. The master has to NOT acknowledge the byte output, but terminates the transfer with a STOP condition.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Sequential Read.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;This mode can be initiated with either a Current Address Read or a Random Address Read. However, in this case the master DOES acknowledge the data byte output and the memory continues to output the next byte in sequence. To terminate the stream of bytes, the master must NOT acknowledge the last byte output, but MUST generate a STOP condition. The output data is from consecutive byte addresses, with the internal byte address counter automatically incremented after each byte output. After a count of the last memory address, the address counter will ’roll- over’ and the memory will continue to output data.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Acknowledge in Read Mode.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;In all read modes the ST24/25x04 wait for an acknowledge during the 9th bit time. If the master does not pull the SDA line low during this time, the ST24/25x04 terminate the data transfer and switches to a standby state.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_H-OQr197CAc/Srb6ul7OVyI/AAAAAAAAAQs/6ZoLmOvYGuM/s1600-h/clip_image051%5B3%5D.gif"&gt;&lt;img title="clip_image051" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="197" alt="clip_image051" src="http://lh5.ggpht.com/_H-OQr197CAc/Srb6xsFUwzI/AAAAAAAAAQw/bGCOhyHH-iY/clip_image051_thumb.gif?imgmax=800" width="240" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Fig: Read Modes Sequence&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;KEYPAD:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Keypads and LCDs are the most widely used input/output devices of the 8051 and a basic understanding of them is essential. The keypads are mainly three types:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;4*3 keypad &lt;/li&gt;    &lt;li&gt;4*4 keypad &lt;/li&gt;    &lt;li&gt;4*8 keypad. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The keypad used in this project is 4*3 keypad.   &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="336"&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;          &lt;td&gt;&lt;a href="http://lh4.ggpht.com/_H-OQr197CAc/Srb6z2uK_DI/AAAAAAAAAQ0/1FqMUposVWM/s1600-h/clip_image052%5B3%5D.gif"&gt;&lt;img title="clip_image052" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="174" alt="clip_image052" src="http://lh4.ggpht.com/_H-OQr197CAc/Srb62vozbSI/AAAAAAAAAQ4/-Cke-SDHxOk/clip_image052_thumb.gif?imgmax=800" width="135" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_H-OQr197CAc/Srb66Zdv-xI/AAAAAAAAAQ8/7NyXuTeAD3k/s1600-h/clip_image053%5B3%5D.gif"&gt;&lt;img title="clip_image053" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="221" alt="clip_image053" src="http://lh5.ggpht.com/_H-OQr197CAc/Srb69BfSNzI/AAAAAAAAARA/6WxYE5I4Bag/clip_image053_thumb.gif?imgmax=800" width="181" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Calculator keypad Telephone keypad&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;INTERFACING THE KEYPAD TO 8051&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;At the lowest level, keyboards are organized in a matrix of rows and columns. The CPU accesses both rows and columns through ports. Therefore, with two 8-bit ports, an 8*8 matrix of keys can be connected to a microprocessor. When a key is pressed, a row and a column make a contact, otherwise there is no connection between rows and columns. A single microcontroller (consisting of a microprocessor, RAM, EPROM and several ports all on a single chip) takes care of hardware and software interfacing of the keypad. In such systems, it is the function of programs stored in EPROM of the microcontroller to scan the keys continuously, identify which one has been activated and present it to the motherboard.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_H-OQr197CAc/Srb7AAO5qbI/AAAAAAAAARE/V0aHEf38mDk/s1600-h/clip_image055%5B3%5D.jpg"&gt;&lt;img title="clip_image055" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="225" alt="clip_image055" src="http://lh3.ggpht.com/_H-OQr197CAc/Srb7EJDcR0I/AAAAAAAAARI/I_R6vj0NEHk/clip_image055_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Fig: 4*3 Matrix Keypad Connections to Ports&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Scanning and identifying the key:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The rows are connected to an output port and the columns are connected to an input port. If no key has been pressed, reading the input port will yield 1s for all columns since they are all connected to high (Vcc). If all the rows are grounded and a key is pressed, one of the columns will have 0 since the key pressed provides the path to ground. It is the function of the microcontroller to scan the keypad continuously to detect and identify the key pressed.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Grounding rows and reading the columns:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;To detect a pressed key, the microcontroller grounds all rows by providing 0 (zero) to the output latch, then it reads the columns. If the data read from the columns is D2-D0 =111, no key has been pressed and the process continues until a key press is detected. However, if one of the column bits has a zero, this means that a key press has occurred i.e., for example, if D2-D0=110, this means that a key in the D0 column has been pressed. After a key press is detected, the microcontroller will go through a process of identifying the key. Starting with the top row, the microcontroller grounds it by providing a low to row D0 only and then it reads the columns. If the data read is all 1s, no key in that row is activated and the process is moved to the next row. It grounds the next row, reads the columns and checks for any zero. This process continues until the row is identified. After identification of the row in which the key has been pressed, the next task is to find out which column the pressed key belongs to. Now this will be easy since the microcontroller knows at any time which row and column are being accessed.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;TRANSISTOR DRIVER CIRCUIT:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Digital systems and microcontroller pins lack sufficient current to drive the circuits like buzzer circuits and relay circuits. While these circuits need around 10milli amps to be energized, the microcontroller’s pin can provide a maximum of 1-2milli amps current. For this reason, a driver such as a power transistor is placed in between the microcontroller and the buzzer.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_H-OQr197CAc/Srb7GaBG_tI/AAAAAAAAARM/ygC10PLz6eI/s1600-h/clip_image056%5B3%5D.gif"&gt;&lt;img title="clip_image056" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="142" alt="clip_image056" src="http://lh3.ggpht.com/_H-OQr197CAc/Srb7K3y9XbI/AAAAAAAAARQ/z8eDkRFiBU0/clip_image056_thumb.gif?imgmax=800" width="240" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The operation of this circuit is as follows:&lt;/p&gt;  &lt;p&gt;The input to the base of the transistor is applied from the microcontroller port pin P1.0. The transistor will be switched on when the base to emitter voltage is greater than 0.7V (cut-in voltage). Thus when the voltage applied to the pin P1.0 is high i.e., P1.0=1 (&amp;gt;0.7V), the transistor will be switched on and thus the buzzer will be activated and produces a loud noise.&lt;/p&gt;  &lt;p&gt;When the voltage at the pin P1.0 is low i.e., P1.0=0 (&amp;lt;0.7V) the transistor will be in off state and the buzzer will be off. Thus the transistor acts like a current driver to operate the buzzer accordingly.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;BUZZER INTERFACING WITH THE MICROCONTROLLER:&lt;/b&gt;    &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="138"&gt;           &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;               &lt;tr&gt;                 &lt;td&gt;                   &lt;p&gt;AT 89C51&lt;/p&gt;                    &lt;p&gt;P1.0 &lt;/p&gt;                 &lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;   &lt;a href="http://lh5.ggpht.com/_H-OQr197CAc/Srb7NykLVaI/AAAAAAAAARU/7zgbKmSwiSE/s1600-h/clip_image057%5B3%5D.gif"&gt;&lt;img title="clip_image057" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="140" alt="clip_image057" src="http://lh5.ggpht.com/_H-OQr197CAc/Srb7RCZWeGI/AAAAAAAAARY/6CyHpiFV7BI/clip_image057_thumb.gif?imgmax=800" width="240" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;ULN2003 CURRENT DRIVER:&lt;/b&gt;    &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="60"&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;          &lt;td&gt;&lt;a href="http://lh5.ggpht.com/_H-OQr197CAc/Srb7UDD-71I/AAAAAAAAARc/LaPtBYGYhuk/s1600-h/clip_image059%5B3%5D.gif"&gt;&lt;img title="clip_image059" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="96" alt="clip_image059" src="http://lh3.ggpht.com/_H-OQr197CAc/Srb7WyXRnDI/AAAAAAAAARg/4uW42mgIdLk/clip_image059_thumb.gif?imgmax=800" width="240" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;    &lt;br /&gt;&lt;b&gt;Fig: DIP 16 Package&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The ULN2003 current driver is a high voltage, high current Darlington arrays each containing seven open collector Darlington pairs with common emitters. Each channel is rated at 500mA and can withstand peak currents of 600mA. Suppression diodes are included for inductive load driving and the inputs are pinned opposite the outputs to simplify board layout.&lt;/p&gt;  &lt;p&gt;These versatile devices are useful for driving a wide range of loads including solenoids, relays DC motors, LED displays filament lamps, thermal print heads and high power buffers. This chip is supplied in 16 pin plastic DIP packages with a copper lead frame to reduce thermal resistance. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_H-OQr197CAc/Srb7aLC7kDI/AAAAAAAAARk/pgUqN6Le92k/s1600-h/clip_image061%5B3%5D.gif"&gt;&lt;img title="clip_image061" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="241" alt="clip_image061" src="http://lh4.ggpht.com/_H-OQr197CAc/Srb7dgYHGRI/AAAAAAAAARo/EB7qap7lzr4/clip_image061_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Fig: Pin Connection&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;This ULN2003 driver can drive seven relays at a time. The pins 8 and 9 provide ground and Vcc respectively. &lt;/p&gt;  &lt;p&gt;The working of ULN driver is as follows:&lt;/p&gt;  &lt;p&gt;It can accept seven inputs at a time and produces seven corresponding outputs. If the input to any one of the seven input pins is high, then the value at its corresponding output pin will be low, for example if the input at pin 6 is high, then the value at the corresponding output i.e., output at pin 11 will be low. Similarly if the input at a particular pin is low, then the corresponding output will be high.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;STEPPER MOTOR:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href="http://lh3.ggpht.com/_H-OQr197CAc/Srb7hx7Zh-I/AAAAAAAAARs/MK7ivZkpWxc/s1600-h/clip_image063%5B3%5D.jpg"&gt;&lt;img title="clip_image063" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="229" alt="clip_image063" src="http://lh4.ggpht.com/_H-OQr197CAc/Srb7lGjRppI/AAAAAAAAARw/Y0sZHMiWCus/clip_image063_thumb.jpg?imgmax=800" width="229" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Fig: Stepper motor&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A stepper motor is a widely used device that translates electrical pulses into mechanical movement. The stepper motor is used for position control in applications such as disk drives, dot matrix printers and robotics.&lt;/p&gt;  &lt;p&gt;Stepper motors commonly have a permanent magnet &lt;i&gt;rotor&lt;/i&gt; surrounded by a &lt;i&gt;stator.&lt;/i&gt; The most common stepper motors have four stator windings that are paired with a center-tapped common. This type of stepper motor is commonly referred to as a four-phase or unipolar stepper motor. The center tap allows a change of current direction in each of the two coils when a winding is grounded, thereby resulting in a polarity change of the stator.&lt;/p&gt;  &lt;p&gt;The direction of the rotation is dictated by the stator poles. The stator poles are determined by the current sent through the wire coils. As the direction of the current is changed, the polarity is also changed causing the reverse motion of the rotor.&lt;/p&gt;  &lt;p&gt;It should be noted that while a conventional motor shaft runs freely, the stepper motor shaft moves in a fixed repeatable increment, which allows one to move it to a precise position. Thus, the stepper motor moves one step when the direction of current flow in the field coil(s) changes, reversing the magnetic field of the stator poles. The difference between unipolar and bipolar motors lies in the may that this reversal is achieved.   &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="108"&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;          &lt;td&gt;&lt;a href="http://lh5.ggpht.com/_H-OQr197CAc/Srb7pDce3_I/AAAAAAAAAR0/kxsImusKm7E/s1600-h/clip_image065%5B3%5D.jpg"&gt;&lt;img title="clip_image065" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="232" alt="clip_image065" src="http://lh6.ggpht.com/_H-OQr197CAc/Srb7sytcjBI/AAAAAAAAAR4/EQomk0Ge9ds/clip_image065_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;Fig: Stepper motor operation&lt;/p&gt;  &lt;p&gt;Advantages:&lt;/p&gt;  &lt;p&gt;1. The rotation angle of the motor is proportional to the input pulse.&lt;/p&gt;  &lt;p&gt;2. The motor has full torque at standstill (if the windings are energized)&lt;/p&gt;  &lt;p&gt;3. Precise positioning and repeatability of movement since good stepper motors have an accuracy of 3 – 5% of a step and this error is non cumulative from one step to the next.&lt;/p&gt;  &lt;p&gt;4. Excellent response to starting/ stopping/reversing.&lt;/p&gt;  &lt;p&gt;5. Very reliable since there are no contact brushes in the motor. Therefore the life of the motor is simply dependant on the life of the bearing.&lt;/p&gt;  &lt;p&gt;6. The motors response to digital input pulses provides open-loop control, making the motor simpler and less costly to control.&lt;/p&gt;  &lt;p&gt;7. It is possible to achieve very low speed synchronous rotation with a load that is directly coupled to the shaft.&lt;/p&gt;  &lt;p&gt;8. A wide range of rotational speeds can be realized as the speed is proportional to the frequency of the input pulses.&lt;/p&gt;  &lt;p&gt;Disadvantages:&lt;/p&gt;  &lt;p&gt;1. Resonances can occur if not properly controlled.&lt;/p&gt;  &lt;p&gt;2. Not easy to operate at extremely high speeds.&lt;/p&gt;  &lt;p&gt;Open Loop Operation:&lt;/p&gt;  &lt;p&gt;One of the most significant advantages of a stepper motor is its ability to be accurately controlled in an open loop system. Open loop control means no feedback information about position is needed. This type of control eliminates the need for expensive sensing and feedback devices such as optical encoders. &lt;/p&gt;  &lt;p&gt;Stepper Motor Types:&lt;/p&gt;  &lt;p&gt;There are three basic stepper motor types. They are :&lt;/p&gt;  &lt;p&gt;• Variable-reluctance&lt;/p&gt;  &lt;p&gt;• Permanent-magnet&lt;/p&gt;  &lt;p&gt;• Hybrid&lt;/p&gt;  &lt;p&gt;Variable-reluctance (VR)&lt;/p&gt;  &lt;p&gt;This type of stepper motor has been around for a long time. It is probably the easiest to understand from a structural point of view. This type of motor consists of a soft iron multi-toothed rotor and a wound stator. When the stator windings are energized with DC current, the poles become magnetized. Rotation occurs when the rotor teeth are attracted to the energized stator poles.   &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="84"&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;          &lt;td&gt;&lt;a href="http://lh3.ggpht.com/_H-OQr197CAc/Srb7vdWD5nI/AAAAAAAAAR8/CT4Xni7uMRQ/s1600-h/clip_image067%5B3%5D.gif"&gt;&lt;img title="clip_image067" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="215" alt="clip_image067" src="http://lh5.ggpht.com/_H-OQr197CAc/Srb7zG_6q4I/AAAAAAAAASA/vKQT0O7Ss5A/clip_image067_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;Fig 1: Cross-section of a variable reluctance (VR) motor.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Permanent Magnet (PM)&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The permanent magnet step motor is a low cost and low resolution type motor with typical step angles of 7.5° to 15°. (48 – 24 steps/revolution) PM motors as the name implies have permanent magnets added to the motor structure. In this type of motor, the rotor does not have teeth . Instead the rotor is magnetized with alternating north and south poles situated in a straight line parallel to the rotor shaft. These magnetized rotor poles provide an increased magnetic flux intensity and because of this the PM motor exhibits improved torque characteristics when compared with the VR type.   &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="12"&gt;&lt;/td&gt;          &lt;td width="216"&gt;&lt;/td&gt;          &lt;td width="36"&gt;&lt;/td&gt;          &lt;td width="264"&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;          &lt;td valign="top"&gt;&lt;a href="http://lh3.ggpht.com/_H-OQr197CAc/Srb71mRazoI/AAAAAAAAASE/x82jFps9QgU/s1600-h/clip_image070%5B3%5D.gif"&gt;&lt;img title="clip_image070" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="235" alt="clip_image070" src="http://lh5.ggpht.com/_H-OQr197CAc/Srb75KamjCI/AAAAAAAAASI/ZtvQ6nh15ys/clip_image070_thumb.gif?imgmax=800" width="220" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;/td&gt;          &lt;td valign="top"&gt;&lt;a href="http://lh3.ggpht.com/_H-OQr197CAc/Srb77pOmQBI/AAAAAAAAASM/RE7wDy9iiFQ/s1600-h/clip_image071%5B3%5D.gif"&gt;&lt;img title="clip_image071" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="203" alt="clip_image071" src="http://lh5.ggpht.com/_H-OQr197CAc/Srb7-l-c8NI/AAAAAAAAASQ/L_Yd87KUbOM/clip_image071_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;PM stepper motor principle Cross section of a hybrid stepper motor&lt;/p&gt;  &lt;p&gt;Hybrid (HB)&lt;/p&gt;  &lt;p&gt;The hybrid stepper motor is more expensive than the PM stepper motor but provides better performance with respect to step resolution, torque and speed. Typical step angles for the HB stepper motor range from 3.6° to 0.9° (100 – 400 steps per revolution).&lt;/p&gt;  &lt;p&gt;The hybrid stepper motor combines the best features of both the PM and VR type stepper motors. The rotor is multi-toothed like the VR motor and contains an axially magnetized concentric magnet around its shaft. The teeth on the rotor provide an even better path which helps guide the magnetic flux to preferred locations in the air gap. This further increases the detent, holding and dynamic torque characteristics of the motor when compared with both the VR and PM types. This motor type has some advantages such as very low inertia and a optimized magnetic flow path with no coupling between the two stator windings. These qualities are essential in some applications.&lt;/p&gt;  &lt;p&gt;When to Use a Stepper Motor:&lt;/p&gt;  &lt;p&gt;A stepper motor can be a good choice whenever controlled movement is required. They can be used to advantage in applications where you need to control rotation angle, speed, position and synchronism. Because of the inherent advantages listed previously, stepper motors have found their place in many different applications.&lt;/p&gt;  &lt;p&gt;The Rotating Magnetic Field:&lt;/p&gt;  &lt;p&gt;When a phase winding of a stepper motor is energized with current a magnetic flux is developed in the stator. The direction of this flux is determined by the “Right Hand Rule” which states:&lt;/p&gt;  &lt;p&gt;“If the coil is grasped in the right hand with the fingers pointing in the direction of the current in the winding (the thumb is extended at a 90° angle to the fingers), then the thumb will point in the direction of the magnetic field.”&lt;/p&gt;  &lt;p&gt;The below figure shows the magnetic flux path developed when phase B is energized with winding current in the direction shown. The rotor then aligns itself so that the flux opposition is minimized. In this case the motor would rotate clockwise so that its south pole aligns with the north pole of the stator B at position 2 and its north pole aligns with the south pole of stator B at position 6. To get the motor to rotate we can now see that we must provide a sequence of energizing the stator windings in such a fashion that provides a rotating magnetic flux field which the rotor follows due to magnetic attraction.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_H-OQr197CAc/Srb8A5fwqHI/AAAAAAAAASU/YKc4ozJK5Gs/s1600-h/clip_image073%5B3%5D.gif"&gt;&lt;img title="clip_image073" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="223" alt="clip_image073" src="http://lh3.ggpht.com/_H-OQr197CAc/Srb8EEZYkhI/AAAAAAAAASY/qxfpG3bHLy4/clip_image073_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Fig: Magnetic flux path through a two-pole stepper motor with a lag between the rotor and stator.&lt;/p&gt;  &lt;p&gt;Torque Generation:&lt;/p&gt;  &lt;p&gt;The torque produced by a stepper motor depends on several factors.&lt;/p&gt;  &lt;p&gt;• The step rate&lt;/p&gt;  &lt;p&gt;• The drive current in the windings&lt;/p&gt;  &lt;p&gt;• The drive design or type&lt;/p&gt;  &lt;p&gt;In a stepper motor, a torque will be developed when the magnetic fluxes of the rotor and stator are displaced from each other. The stator is made up of a high permeability magnetic material. The presence of this high permeability material causes the magnetic flux to be confined for the most part to the paths defined by the stator structure. This serves to concentrate the flux at the stator poles. The torque output produced by the motor is proportional to the intensity of the magnetic flux generated when the winding is energized.&lt;/p&gt;  &lt;p&gt;The basic relationship which defines the intensity of the magnetic flux is defined by:&lt;/p&gt;  &lt;p&gt;H = (N * i) / l &lt;/p&gt;  &lt;p&gt;where&lt;/p&gt;  &lt;p&gt;N = The number of winding turns&lt;/p&gt;  &lt;p&gt;i = current&lt;/p&gt;  &lt;p&gt;H = Magnetic field intensity&lt;/p&gt;  &lt;p&gt;l = Magnetic flux path length&lt;/p&gt;  &lt;p&gt;This relationship shows that the magnetic flux intensity and consequently the torque is proportional to the number of winding turns and the current and inversely proportional to the length of the magnetic flux path. Thus from this basic relationship it is concluded that the same frame size stepper motor could have very different torque output capabilities simply by changing the winding parameters.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step Angle Accuracy:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;    &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="120"&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;          &lt;td&gt;&lt;a href="http://lh3.ggpht.com/_H-OQr197CAc/Srb8HSlvqvI/AAAAAAAAASc/SSq7H6te3gQ/s1600-h/clip_image075%5B3%5D.gif"&gt;&lt;img title="clip_image075" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="190" alt="clip_image075" src="http://lh5.ggpht.com/_H-OQr197CAc/Srb8LL9uhsI/AAAAAAAAASg/2ybjKDFvuz8/clip_image075_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;    &lt;br /&gt;The main reason that the stepper motor gained such popularity as a positioning device is for its accuracy and repeatability. Typically stepper motors will have a step angle accuracy of 3 – 5% of one step. This error is also non cumulative from step to step. The accuracy of the stepper motor is mainly a function of the mechanical precision of its parts and assembly. &lt;/p&gt;  &lt;p&gt;Fig: Positional accuracy of a stepper motor&lt;/p&gt;  &lt;p&gt;Torque versus Speed Characteristics:&lt;/p&gt;  &lt;p&gt;The torque versus speed characteristics are the key to selecting the right motor and drive method for a specific application. These characteristics are dependent upon (change with)the motor, excitation mode and type of driver or drive method. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_H-OQr197CAc/Srb8NrRYrwI/AAAAAAAAASk/QLafFe3ShmE/s1600-h/clip_image077%5B3%5D.gif"&gt;&lt;img title="clip_image077" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="198" alt="clip_image077" src="http://lh6.ggpht.com/_H-OQr197CAc/Srb8T9OITGI/AAAAAAAAASo/LPNsbXMUHs0/clip_image077_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Fig: Torque versus speed characteristics&lt;/p&gt;  &lt;p&gt;Single Step Response and Resonances:&lt;/p&gt;  &lt;p&gt;Stepper motors can often exhibit a phenomena referred to as resonance at certain step rates. This can be seen as a sudden loss or drop in torque at certain speeds which can result in missed steps or loss of synchronism. It occurs when the input step pulse rate coincides with the natural oscillation frequency of the rotor. Often there is a resonance area around the 100 – 200 pps region and also one in the high step pulse rate region. The resonance phenomena of a stepper motor comes from its basic construction and therefore it is not possible to eliminate it completely. It is also dependent upon the load conditions. It can be reduced by driving the motor in half or micro stepping modes.   &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="120"&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;          &lt;td&gt;&lt;a href="http://lh3.ggpht.com/_H-OQr197CAc/Srb8XUEr0VI/AAAAAAAAASs/Pnc4GweDKaU/s1600-h/clip_image079%5B3%5D.gif"&gt;&lt;img title="clip_image079" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="202" alt="clip_image079" src="http://lh5.ggpht.com/_H-OQr197CAc/Srb8cw6ndXI/AAAAAAAAASw/LauP7enDJ-4/clip_image079_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;Fig: Single step response versus time&lt;/p&gt;  &lt;p&gt;Few Definitions related to stepper motor:&lt;/p&gt;  &lt;p&gt;1. Step angle&lt;/p&gt;  &lt;p&gt;Step angle is associated with the internal construction of the motor, in particular the number of teeth on the stator and the rotor.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;The step angle is the minimum degree of rotation associated with a single step.&lt;/i&gt;    &lt;table cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="180"&gt;           &lt;p&gt;Step angle&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="192"&gt;           &lt;p&gt;Steps per Revolution&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="180"&gt;           &lt;p&gt;0.72&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="192"&gt;           &lt;p&gt;500&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="180"&gt;           &lt;p&gt;1.8&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="192"&gt;           &lt;p&gt;200&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="180"&gt;           &lt;p&gt;2.0&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="192"&gt;           &lt;p&gt;180&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="180"&gt;           &lt;p&gt;2.5&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="192"&gt;           &lt;p&gt;144&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="180"&gt;           &lt;p&gt;5.0&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="192"&gt;           &lt;p&gt;72&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="180"&gt;           &lt;p&gt;7.5&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="192"&gt;           &lt;p&gt;48&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="180"&gt;           &lt;p&gt;15&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="192"&gt;           &lt;p&gt;24&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;Fig: Stepper motor step angles&lt;/p&gt;  &lt;p&gt;2. Steps per second and rpm relation&lt;/p&gt;  &lt;p&gt;The relation between rpm (revolutions per minute), steps per revolution and steps per second is as follows:&lt;/p&gt;  &lt;p&gt;Steps per second = (rpm*steps per revolution)/60&lt;/p&gt;  &lt;p&gt;3. Motor speed:&lt;/p&gt;  &lt;p&gt;The motor speed, measured in steps per second (steps/sec) is a function of the switching rate.&lt;/p&gt;  &lt;p&gt;4. Holding torque:&lt;/p&gt;  &lt;p&gt;The amount of torque, from an external source, required to break away the shaft from its holding position with the motor shaft standstill or zero rpm condition.&lt;/p&gt;  &lt;p&gt;STEPPER MOTOR INTERFACING WITH THE MICROCONTROLLER:   &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="138"&gt;           &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;               &lt;tr&gt;                 &lt;td&gt;                   &lt;p&gt;AT 89C51&lt;/p&gt;                    &lt;p&gt;P1.0&lt;/p&gt;                 &lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_H-OQr197CAc/Srb8fuAcwDI/AAAAAAAAAS0/bfD1vd5dCD0/s1600-h/clip_image080%5B3%5D.gif"&gt;&lt;img title="clip_image080" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="141" alt="clip_image080" src="http://lh4.ggpht.com/_H-OQr197CAc/Srb8ksRzFGI/AAAAAAAAAS4/9fIW48NAQJw/clip_image080_thumb.gif?imgmax=800" width="240" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;LIQUID CRYSTAL DISPLAY:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;LCD stands for &lt;b&gt;L&lt;/b&gt;iquid &lt;b&gt;C&lt;/b&gt;rystal &lt;b&gt;D&lt;/b&gt;isplay. LCD is finding wide spread use replacing LEDs (seven segment LEDs or other multi segment LEDs) because of the following reasons:&lt;/p&gt;  &lt;p&gt;1. The declining prices of LCDs.&lt;/p&gt;  &lt;p&gt;2. The ability to display numbers, characters and graphics. This is in contrast to LEDs, which are limited to numbers and a few characters.&lt;/p&gt;  &lt;p&gt;3. Incorporation of a refreshing controller into the LCD, thereby relieving the CPU of the task of refreshing the LCD. In contrast, the LED must be refreshed by the CPU to keep displaying the data.&lt;/p&gt;  &lt;p&gt;4. Ease of programming for characters and graphics.&lt;/p&gt;  &lt;p&gt;These components are “specialized” for being used with the microcontrollers, which means that they cannot be activated by standard IC circuits. They are used for writing different messages on a miniature LCD.   &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="96"&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;&lt;/td&gt;          &lt;td&gt;&lt;a href="http://lh5.ggpht.com/_H-OQr197CAc/Srb8qdKlylI/AAAAAAAAAS8/oujA2a03iBA/s1600-h/clip_image081%5B3%5D.gif"&gt;&lt;img title="clip_image081" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="113" alt="clip_image081" src="http://lh6.ggpht.com/_H-OQr197CAc/Srb8wfj-XaI/AAAAAAAAATA/BFp4npBXLsY/clip_image081_thumb.gif?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;A model described here is for its low price and great possibilities most frequently used in practice. It is based on the HD44780 microcontroller (&lt;i&gt;Hitachi&lt;/i&gt;) and can display messages in two lines with 16 characters each . It displays all the alphabets, Greek letters, punctuation marks, mathematical symbols etc. In addition, it is possible to display symbols that user makes up on its own. Automatic shifting message on display (shift left and right), appearance of the pointer, backlight etc. are considered as useful characteristics.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Pins Functions&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;There are pins along one side of the small printed board used for connection to the microcontroller. There are total of 14 pins marked with numbers (16 in case the background light is built in). Their function is described in the table below:   &lt;table cellspacing="0" cellpadding="0" border="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="119"&gt;           &lt;p&gt;&lt;b&gt;Function&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="84"&gt;           &lt;p&gt;&lt;b&gt;Pin Number&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;&lt;b&gt;Name&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;&lt;b&gt;Logic&lt;/b&gt;&lt;b&gt; State&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="223"&gt;           &lt;p&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="119"&gt;           &lt;p&gt;Ground&lt;/p&gt;         &lt;/td&gt;          &lt;td width="84"&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;Vss&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;-&lt;/p&gt;         &lt;/td&gt;          &lt;td width="223"&gt;           &lt;p&gt;0V&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="119"&gt;           &lt;p&gt;Power supply&lt;/p&gt;         &lt;/td&gt;          &lt;td width="84"&gt;           &lt;p&gt;2&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;Vdd&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;-&lt;/p&gt;         &lt;/td&gt;          &lt;td width="223"&gt;           &lt;p&gt;+5V&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="119"&gt;           &lt;p&gt;Co&lt;/p&gt;            &lt;p&gt;ntrast&lt;/p&gt;         &lt;/td&gt;          &lt;td width="84"&gt;           &lt;p&gt;3&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;Vee&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;-&lt;/p&gt;         &lt;/td&gt;          &lt;td width="223"&gt;           &lt;p&gt;0 - Vdd&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="119"&gt;           &lt;p&gt;Control of operating&lt;/p&gt;         &lt;/td&gt;          &lt;td width="84"&gt;           &lt;p&gt;4&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;RS&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;0             &lt;br /&gt;1 &lt;/p&gt;         &lt;/td&gt;          &lt;td width="223"&gt;           &lt;p&gt;D0 – D7 are interpreted as commands             &lt;br /&gt;D0 – D7 are interpreted as data &lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="84"&gt;           &lt;p&gt;5&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;R/W&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;0             &lt;br /&gt;1 &lt;/p&gt;         &lt;/td&gt;          &lt;td width="223"&gt;           &lt;p&gt;Write data (from controller to LCD)             &lt;br /&gt;Read data (from LCD to controller) &lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="84"&gt;           &lt;p&gt;6&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;E&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;0             &lt;br /&gt;1              &lt;br /&gt;From 1 to 0 &lt;/p&gt;         &lt;/td&gt;          &lt;td width="223"&gt;           &lt;p&gt;Access to LCD disabled             &lt;br /&gt;Normal operating              &lt;br /&gt;Data/commands are transferred to LCD &lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="119"&gt;           &lt;p&gt;Data / commands&lt;/p&gt;         &lt;/td&gt;          &lt;td width="84"&gt;           &lt;p&gt;7&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;D0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;0/1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="223"&gt;           &lt;p&gt;Bit 0 LSB&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="84"&gt;           &lt;p&gt;8&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;D1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;0/1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="223"&gt;           &lt;p&gt;Bit 1&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="84"&gt;           &lt;p&gt;9&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;D2&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;0/1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="223"&gt;           &lt;p&gt;Bit 2&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="84"&gt;           &lt;p&gt;10&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;D3&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;0/1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="223"&gt;           &lt;p&gt;Bit 3&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="84"&gt;           &lt;p&gt;11&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;D4&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;0/1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="223"&gt;           &lt;p&gt;Bit 4&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="84"&gt;           &lt;p&gt;12&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;D5&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;0/1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="223"&gt;           &lt;p&gt;Bit 5&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="84"&gt;           &lt;p&gt;13&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;D6&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;0/1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="223"&gt;           &lt;p&gt;Bit 6&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="84"&gt;           &lt;p&gt;14&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;D7&lt;/p&gt;         &lt;/td&gt;          &lt;td width="77"&gt;           &lt;p&gt;0/1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="223"&gt;           &lt;p&gt;Bit 7 MSB&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;LCD screen:&lt;/p&gt;  &lt;p&gt;LCD screen consists of two lines with 16 characters each. Each character consists of 5x7 dot matrix. Contrast on display depends on the power supply voltage and whether messages are displayed in one or two lines. For that reason, variable voltage 0-Vdd is applied on pin marked as Vee. Trimmer potentiometer is usually used for that purpose. Some versions of displays have built in backlight (blue or green diodes). When used during operating, a resistor for current limitation should be used (like with any LE diode).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_H-OQr197CAc/Srb84xsdADI/AAAAAAAAATE/MtGKtu6M874/s1600-h/clip_image083%5B3%5D.jpg"&gt;&lt;img title="clip_image083" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="141" alt="clip_image083" src="http://lh5.ggpht.com/_H-OQr197CAc/Srb884EbtoI/AAAAAAAAATI/JkCBKXx8g-k/clip_image083_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;LCD Basic Commands &lt;/p&gt;  &lt;p&gt;All data transferred to LCD through outputs D0-D7 will be interpreted as commands or as data, which depends on logic state on pin RS:&lt;/p&gt;  &lt;p&gt;RS = 1 - Bits D0 - D7 are addresses of characters that should be displayed. Built in processor addresses built in “map of characters” and displays corresponding symbols. Displaying position is determined by DDRAM address. This address is either previously defined or the address of previously transferred character is automatically incremented.&lt;/p&gt;  &lt;p&gt;RS = 0 - Bits D0 - D7 are commands which determine display mode. List of commands which LCD recognizes are given in the table below:   &lt;table cellspacing="0" cellpadding="0" border="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="200"&gt;           &lt;p&gt;&lt;b&gt;Command&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;&lt;b&gt;RS&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="32"&gt;           &lt;p&gt;&lt;b&gt;RW&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;&lt;b&gt;D7&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;&lt;b&gt;D6&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;&lt;b&gt;D5&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="25"&gt;           &lt;p&gt;&lt;b&gt;D4&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="31"&gt;           &lt;p&gt;&lt;b&gt;D3&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="30"&gt;           &lt;p&gt;&lt;b&gt;D2&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="25"&gt;           &lt;p&gt;&lt;b&gt;D1&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;&lt;b&gt;D0&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="100"&gt;           &lt;p&gt;&lt;b&gt;Execution Time&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="200"&gt;           &lt;p&gt;Clear display&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="32"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="25"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="31"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="30"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="25"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="100"&gt;           &lt;p&gt;1.64mS&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="200"&gt;           &lt;p&gt;Cursor home&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="32"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="25"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="31"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="30"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="25"&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;x&lt;/p&gt;         &lt;/td&gt;          &lt;td width="100"&gt;           &lt;p&gt;1.64mS&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="200"&gt;           &lt;p&gt;Entry mode set&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="32"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="25"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="31"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="30"&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="25"&gt;           &lt;p&gt;I/D&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;S&lt;/p&gt;         &lt;/td&gt;          &lt;td width="100"&gt;           &lt;p&gt;40uS&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="200"&gt;           &lt;p&gt;Display on/off control&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="32"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="25"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="31"&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="30"&gt;           &lt;p&gt;D&lt;/p&gt;         &lt;/td&gt;          &lt;td width="25"&gt;           &lt;p&gt;U&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;B&lt;/p&gt;         &lt;/td&gt;          &lt;td width="100"&gt;           &lt;p&gt;40uS&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="200"&gt;           &lt;p&gt;Cursor/Display Shift&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="32"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="25"&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="31"&gt;           &lt;p&gt;D/C&lt;/p&gt;         &lt;/td&gt;          &lt;td width="30"&gt;           &lt;p&gt;R/L&lt;/p&gt;         &lt;/td&gt;          &lt;td width="25"&gt;           &lt;p&gt;x&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;x&lt;/p&gt;         &lt;/td&gt;          &lt;td width="100"&gt;           &lt;p&gt;40uS&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="200"&gt;           &lt;p&gt;Function set&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="32"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="25"&gt;           &lt;p&gt;DL&lt;/p&gt;         &lt;/td&gt;          &lt;td width="31"&gt;           &lt;p&gt;N&lt;/p&gt;         &lt;/td&gt;          &lt;td width="30"&gt;           &lt;p&gt;F&lt;/p&gt;         &lt;/td&gt;          &lt;td width="25"&gt;           &lt;p&gt;x&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;x&lt;/p&gt;         &lt;/td&gt;          &lt;td width="100"&gt;           &lt;p&gt;40uS&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="200"&gt;           &lt;p&gt;Set CGRAM address&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="32"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="159"&gt;           &lt;p&gt;CGRAM address&lt;/p&gt;         &lt;/td&gt;          &lt;td width="100"&gt;           &lt;p&gt;40uS&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="200"&gt;           &lt;p&gt;Set DDRAM address&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="32"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="182"&gt;           &lt;p&gt;DDRAM address&lt;/p&gt;         &lt;/td&gt;          &lt;td width="100"&gt;           &lt;p&gt;40uS&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="200"&gt;           &lt;p&gt;Read “BUSY” flag (BF)&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="32"&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;BF&lt;/p&gt;         &lt;/td&gt;          &lt;td width="182"&gt;           &lt;p&gt;DDRAM address&lt;/p&gt;         &lt;/td&gt;          &lt;td width="100"&gt;           &lt;p&gt;-&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="200"&gt;           &lt;p&gt;Write to CGRAM or DDRAM&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="32"&gt;           &lt;p&gt;0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;D7&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;D6&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;D5&lt;/p&gt;         &lt;/td&gt;          &lt;td width="25"&gt;           &lt;p&gt;D4&lt;/p&gt;         &lt;/td&gt;          &lt;td width="31"&gt;           &lt;p&gt;D3&lt;/p&gt;         &lt;/td&gt;          &lt;td width="30"&gt;           &lt;p&gt;D2&lt;/p&gt;         &lt;/td&gt;          &lt;td width="25"&gt;           &lt;p&gt;D1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;D0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="100"&gt;           &lt;p&gt;40uS&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="200"&gt;           &lt;p&gt;Read from CGRAM or DDRAM&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="32"&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;D7&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;D6&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;D5&lt;/p&gt;         &lt;/td&gt;          &lt;td width="25"&gt;           &lt;p&gt;D4&lt;/p&gt;         &lt;/td&gt;          &lt;td width="31"&gt;           &lt;p&gt;D3&lt;/p&gt;         &lt;/td&gt;          &lt;td width="30"&gt;           &lt;p&gt;D2&lt;/p&gt;         &lt;/td&gt;          &lt;td width="25"&gt;           &lt;p&gt;D1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="24"&gt;           &lt;p&gt;D0&lt;/p&gt;         &lt;/td&gt;          &lt;td width="100"&gt;           &lt;p&gt;40uS&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;I/D 1 = Increment (by 1) R/L 1 = Shift right&lt;/p&gt;  &lt;p&gt;0 = Decrement (by 1) 0 = Shift left&lt;/p&gt;  &lt;p&gt;S 1 = Display shift on DL 1 = 8-bit interface&lt;/p&gt;  &lt;p&gt;0 = Display shift off 0 = 4-bit interface&lt;/p&gt;  &lt;p&gt;D 1 = Display on N 1 = Display in two lines&lt;/p&gt;  &lt;p&gt;0 = Display off 0 = Display in one line&lt;/p&gt;  &lt;p&gt;U 1 = Cursor on F 1 = Character format 5x10 dots&lt;/p&gt;  &lt;p&gt;0 = Cursor off 0 = Character format 5x7 dots&lt;/p&gt;  &lt;p&gt;B 1 = Cursor blink on D/C 1 = Display shift&lt;/p&gt;  &lt;p&gt;0 = Cursor blink off 0 = Cursor shift&lt;/p&gt;  &lt;p&gt;LCD Initialization :&lt;/p&gt;  &lt;p&gt;Once the power supply is turned on, LCD is automatically cleared. This process lasts for approximately 15mS. After that, display is ready to operate. The mode of operating is set by default. This means that:&lt;/p&gt;  &lt;p&gt;1. Display is cleared &lt;/p&gt;  &lt;p&gt;2. Mode &lt;/p&gt;  &lt;p&gt;DL = 1 Communication through 8-bit interface &lt;/p&gt;  &lt;p&gt;N = 0 Messages are displayed in one line &lt;/p&gt;  &lt;p&gt;F = 0 Character font 5 x 8 dots &lt;/p&gt;  &lt;p&gt;3. Display/Cursor on/off &lt;/p&gt;  &lt;p&gt;D = 0 Display off &lt;/p&gt;  &lt;p&gt;U = 0 Cursor off &lt;/p&gt;  &lt;p&gt;B = 0 Cursor blink off &lt;/p&gt;  &lt;p&gt;4. Character entry &lt;/p&gt;  &lt;p&gt;ID = 1 Addresses on display are automatically incremented by 1.&lt;/p&gt;  &lt;p&gt;S = 0 Display shift off &lt;/p&gt;  &lt;p&gt;Automatic reset is mainly performed without any problems. Mainly but not always! If for any reason power supply voltage does not reach full value in the course of 10mS, display will start perform completely unpredictably. If voltage supply unit can not meet this condition or if it is needed to provide completely safe operating, the process of initialization by which a new reset enabling display to operate normally must be applied.&lt;/p&gt;  &lt;p&gt;Algorithm according to the initialization is being performed depends on whether connection to the microcontroller is through 4- or 8-bit interface. All left over to be done after that is to give basic commands and of course- to display messages.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_H-OQr197CAc/Srb9B3AGRBI/AAAAAAAAATM/RUFLS-7Ybyc/s1600-h/clip_image085%5B3%5D.jpg"&gt;&lt;img title="clip_image085" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="224" alt="clip_image085" src="http://lh6.ggpht.com/_H-OQr197CAc/Srb9Icl6tUI/AAAAAAAAATQ/UoOjx20vtJg/clip_image085_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; Fig: Procedure on 8-bit initialization.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;LCD INTERFACING WITH THE MICROCONTROLLER:&lt;/b&gt;    &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="54"&gt;           &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;               &lt;tr&gt;                 &lt;td&gt;                   &lt;p&gt;Gnd&lt;/p&gt;                 &lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;   &lt;a href="http://lh6.ggpht.com/_H-OQr197CAc/Srb9LQASOkI/AAAAAAAAATU/LZXKIx_Cq-U/s1600-h/clip_image086%5B4%5D.gif"&gt;&lt;img title="clip_image086" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="12" alt="clip_image086" src="http://lh4.ggpht.com/_H-OQr197CAc/Srb9QTIAyOI/AAAAAAAAATY/nUSdaeBEPbY/clip_image086_thumb.gif?imgmax=800" width="111" border="0" /&gt;&lt;/a&gt;&lt;a href="http://lh6.ggpht.com/_H-OQr197CAc/Srb9UDlf8oI/AAAAAAAAATc/4B-Yswt59Xg/s1600-h/clip_image086%5B1%5D%5B2%5D.gif"&gt;&lt;img title="clip_image086[1]" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="12" alt="clip_image086[1]" src="http://lh3.ggpht.com/_H-OQr197CAc/Srb9dW0DArI/AAAAAAAAATg/eIX9nh6w1uk/clip_image086%5B1%5D_thumb.gif?imgmax=800" width="111" border="0" /&gt;&lt;/a&gt;    &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="126"&gt;           &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;               &lt;tr&gt;                 &lt;td&gt;                   &lt;p&gt;4 (RS) 1&lt;/p&gt;                    &lt;p&gt;5 (R/W) 2&lt;/p&gt;                    &lt;p&gt;6(EN) 3&lt;/p&gt;                    &lt;p&gt;&lt;b&gt;LCD&lt;/b&gt;&lt;/p&gt;                    &lt;p&gt;D0&lt;/p&gt;                    &lt;p&gt;D1&lt;/p&gt;                    &lt;p&gt;D2&lt;/p&gt;                    &lt;p&gt;D3&lt;/p&gt;                    &lt;p&gt;D4&lt;/p&gt;                    &lt;p&gt;D5 15&lt;/p&gt;                    &lt;p&gt;D6 16&lt;/p&gt;                    &lt;p&gt;D7&lt;/p&gt;                 &lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;    &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="150"&gt;           &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;               &lt;tr&gt;                 &lt;td&gt;                   &lt;p&gt;P2.0&lt;/p&gt;                    &lt;p&gt;P2.1&lt;/p&gt;                    &lt;p&gt;P2.2&lt;/p&gt;                    &lt;p&gt;&lt;b&gt;89C51 &lt;/b&gt;P1.0&lt;/p&gt;                    &lt;p&gt;P1.1&lt;/p&gt;                    &lt;p&gt;P1.2&lt;/p&gt;                    &lt;p&gt;P1.3&lt;/p&gt;                    &lt;p&gt;P1.4&lt;/p&gt;                    &lt;p&gt;P1.5&lt;/p&gt;                    &lt;p&gt;P1.6&lt;/p&gt;                    &lt;p&gt;P1.7&lt;/p&gt;                 &lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;   &lt;a href="http://lh3.ggpht.com/_H-OQr197CAc/Srb9kMhsO3I/AAAAAAAAATk/pqFXmxsPKt0/s1600-h/clip_image087%5B3%5D.gif"&gt;&lt;img title="clip_image087" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="161" alt="clip_image087" src="http://lh5.ggpht.com/_H-OQr197CAc/Srb9qZvZgvI/AAAAAAAAATo/4jE76kclogQ/clip_image087_thumb.gif?imgmax=800" width="240" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;SOFTWARES USED:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;KEIL COMPILER:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Keil compiler is a software used where the machine language code is written and compiled. After compilation, the machine source code is converted into hex code which is to be dumped into the microcontroller for further processing. Keil compiler also supports C language code.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;PROLOAD:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Proload is a software which accepts only hex files. Once the machine code is converted into hex code, that hex code has to be dumped into the microcontroller and this is done by the Proload. Proload is a programmer which itself contains a microcontroller in it other than the one which is to be programmed. This microcontroller has a program in it written in such a way that it accepts the hex file from the keil compiler and dumps this hex file into the microcontroller which is to be programmed. As the proload programmer kit requires power supply to be operated, this power supply is given from the power supply circuit designed above. It should be noted that this programmer kit contains a power supply section in the board itself but in order to switch on that power supply, a source is required. Thus this is accomplished from the power supply board with an output of 12volts.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;WORKING PROCEDURE:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The Project Embedded Password based Electrical Appliances control system using 89C51 Microcontroller is an exclusive project that provides security at ATM centers, offices and homes. &lt;/p&gt;  &lt;p&gt;Security is of primary concern and in this busy, competitive world, human cannot find ways to provide security to his confidential belongings manually. Instead, he finds an alternative which can provide a full fledged security as well as automized. This project has been developed on this motto.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;In this project every user, a part of an organization, is given an unique user ID and password. The passwords of all the users of that particular organization will be stored in EEPROM present in the system board because the data in EEPROM can be changed any number of times without the physical removal of the memory chip from its socket.&lt;/p&gt;  &lt;p&gt;This system will be fixed at the main door of the restricted area. Whenever the user tries to enter into the organization, this system asks the user to enter his user id. This message “Enter USER ID” will be displayed on the LCD. Then the user has to enter his identification number which can range from 3 to 8 numbers. The microcontroller accepts this data and compares this user id which is already stores in the EEPROM. If the user id is not matched with any of the stored user ids, the microcontroller will not proceed for further details but displays a message “Invalid USER ID”. If this user id is matched with any one of the already stored user ids, then the system asks the user to enter his password. After he enters his password, the microcontroller once again compares the entered password with the already passwords in the EEPROM. If this password matches with any one of the passwords stored, the microcontroller opens the door by rotating the stepper motor through ULN Driver for the person to enter into the restricted area and the message “ Door is opening” will be displayed on the LCD display.&lt;/p&gt;  &lt;p&gt;But if the entered password does not match with the already stored passwords, the message” Password failed. Enter ID” will be displayed on the LCD and the stepper motor does not rotate.&lt;/p&gt;  &lt;p&gt;If the password is entered wrongly for 3 times continuously, then the total system will be blocked. The system can come to normal condition only after pressing the RESET switch. Initially the system is given with default passwords as shown below.   &lt;table cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="127"&gt;           &lt;p&gt;User ID&lt;/p&gt;         &lt;/td&gt;          &lt;td width="134"&gt;           &lt;p&gt;Password&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="127"&gt;           &lt;p&gt;101&lt;/p&gt;         &lt;/td&gt;          &lt;td width="134"&gt;           &lt;p&gt;100&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="127"&gt;           &lt;p&gt;102&lt;/p&gt;         &lt;/td&gt;          &lt;td width="134"&gt;           &lt;p&gt;200&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="127"&gt;           &lt;p&gt;103&lt;/p&gt;         &lt;/td&gt;          &lt;td width="134"&gt;           &lt;p&gt;300&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="127"&gt;           &lt;p&gt;104&lt;/p&gt;         &lt;/td&gt;          &lt;td width="134"&gt;           &lt;p&gt;400&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;The default passwords can be changed at any time. For that “111” should be entered when the system asks for password. After entering this code “111: it displays “changing password” and asks “Type CURRENT PSWD”. After entering current password, It asks for new password. The password should not match with change password code i.e. “111”.&lt;/p&gt;  &lt;p&gt;If the user forgot his password then he should consult ‘administrator’. Then the administrator enters a “10” digit code which is admin PSWD. Then the forgotten password is displayed on LCD. Default password for administrator is “1234567890”. ‘#’ key should be entered after completion of entering ID or password. This key acts like a “ENTER” key.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href="http://lh4.ggpht.com/_H-OQr197CAc/Srb9t8G68UI/AAAAAAAAATs/z6stq65ofLo/s1600-h/clip_image089%5B3%5D.gif"&gt;&lt;img title="clip_image089" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="244" alt="clip_image089" src="http://lh4.ggpht.com/_H-OQr197CAc/Srb9yKQFHoI/AAAAAAAAATw/je9mQWGi5Us/clip_image089_thumb.gif?imgmax=800" width="231" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Fig: Schematic diagram&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;SOURCE CODE:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;WTCMD EQU 10100000B ;EEPROM 24C04 WRITE COMMAND &lt;/p&gt;  &lt;p&gt;RDCMD EQU 10100001B ;EEPROM24C04 READ COMMAND &lt;/p&gt;  &lt;p&gt;SCL EQU P3.6 ;SERIAL CLOCK PIN&lt;/p&gt;  &lt;p&gt;SDA EQU P3.7 ;SERIAL DATA PIN &lt;/p&gt;  &lt;p&gt;FAILCOUNT DATA 22H&lt;/p&gt;  &lt;p&gt;KEYCOUNT DATA 25H ;TO STORE THE NO. KEYS ENTERD FOR EACH TIME&lt;/p&gt;  &lt;p&gt;TEMP DATA 26H ;TEMP VARIABLE&lt;/p&gt;  &lt;p&gt;PWDFIND DATA 27H ;TO FIND WHICH PASSWORD SHOULD BE COMPARED&lt;/p&gt;  &lt;p&gt;PCOUNT1 DATA 28H ;TO STORE THE NO.OF DIGITS OF PASSWORD1&lt;/p&gt;  &lt;p&gt;PCOUNT2 DATA 29H ;TO STORE THE NO.OF DIGITS OF PASSWORD2&lt;/p&gt;  &lt;p&gt;PCOUNT3 DATA 2AH ;TO STORE THE NO.OF DIGITS OF PASSWORD3&lt;/p&gt;  &lt;p&gt;PCOUNT4 DATA 2BH ;TO STORE THE NO.OF DIGITS OF PASSWORD4&lt;/p&gt;  &lt;p&gt;ORG 00H &lt;/p&gt;  &lt;p&gt;MOV P3,#00000111B ;MAKE P3.0-P3.2 AS INPUT PINS FOR COLUMNS&lt;/p&gt;  &lt;p&gt;MOV R1,#50H ;SCANNED KEY IS STORED IN THIS LOCATION&lt;/p&gt;  &lt;p&gt;;MOV R0,#0&lt;/p&gt;  &lt;p&gt;CLR P2.7 ; BUZZOR OFF&lt;/p&gt;  &lt;p&gt;MOV FAILCOUNT,#0&lt;/p&gt;  &lt;p&gt;;LCD INTIALIZATION&lt;/p&gt;  &lt;p&gt;MOV DPTR,#COMM&lt;/p&gt;  &lt;p&gt;XX: CLR A&lt;/p&gt;  &lt;p&gt;MOVC A,@A+DPTR&lt;/p&gt;  &lt;p&gt;JZ START1&lt;/p&gt;  &lt;p&gt;ACALL COMMAND&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;INC DPTR&lt;/p&gt;  &lt;p&gt;SJMP XX&lt;/p&gt;  &lt;p&gt;START1:&lt;/p&gt;  &lt;p&gt;MOV DPTR,#MSGA ;DISPLAY &amp;quot;WINKIT&amp;quot;&lt;/p&gt;  &lt;p&gt;ACALL DISPLAY1&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;MOV A,#0C0H&lt;/p&gt;  &lt;p&gt;ACALL COMMAND&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;MOV DPTR,#MSGB ;DISPLAY &amp;quot;LEARNING IS FUN&amp;quot;&lt;/p&gt;  &lt;p&gt;ACALL DISPLAY1&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;MOV DPTR,#MSG ;DISPLAY &amp;quot;SECURITY SYSTEM&amp;quot;&lt;/p&gt;  &lt;p&gt;ACALL DISPLAY&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;MOV R3,#00 ;TO CHECK ANYTHING WRITTEN IN EEPROM OR NOT&lt;/p&gt;  &lt;p&gt;ACALL READ_FROM ;IF ANYTHING WRIITEN THEN NO NEED TO WRITE IT AGAIN GO FOR ATART&lt;/p&gt;  &lt;p&gt;CJNE A,#0FFH,TO_START2&lt;/p&gt;  &lt;p&gt;MOV R3,#00 ; STORE ID'S IN EEPROM ADDRESS 00H T0 0BH&lt;/p&gt;  &lt;p&gt;MOV DPTR,#ID1 ;ID1 &lt;/p&gt;  &lt;p&gt;B1: CLR A&lt;/p&gt;  &lt;p&gt;MOVC A,@A+DPTR&lt;/p&gt;  &lt;p&gt;JZ F1&lt;/p&gt;  &lt;p&gt;ACALL WRITE_TO&lt;/p&gt;  &lt;p&gt;INC DPTR&lt;/p&gt;  &lt;p&gt;SJMP B1&lt;/p&gt;  &lt;p&gt;TO_START2: LJMP START2&lt;/p&gt;  &lt;p&gt;F1: MOV R3,#03H&lt;/p&gt;  &lt;p&gt;MOV DPTR,#ID2 ;ID2&lt;/p&gt;  &lt;p&gt;B2: CLR A&lt;/p&gt;  &lt;p&gt;MOVC A,@A+DPTR&lt;/p&gt;  &lt;p&gt;JZ F2&lt;/p&gt;  &lt;p&gt;ACALL WRITE_TO&lt;/p&gt;  &lt;p&gt;INC DPTR&lt;/p&gt;  &lt;p&gt;SJMP B2&lt;/p&gt;  &lt;p&gt;F2: MOV R3,#06H&lt;/p&gt;  &lt;p&gt;MOV DPTR,#ID3 ;ID3&lt;/p&gt;  &lt;p&gt;B3: CLR A&lt;/p&gt;  &lt;p&gt;MOVC A,@A+DPTR&lt;/p&gt;  &lt;p&gt;JZ FL&lt;/p&gt;  &lt;p&gt;ACALL WRITE_TO&lt;/p&gt;  &lt;p&gt;INC DPTR&lt;/p&gt;  &lt;p&gt;SJMP B3&lt;/p&gt;  &lt;p&gt;FL: MOV R3,#09H&lt;/p&gt;  &lt;p&gt;MOV DPTR,#ID4 ;ID4&lt;/p&gt;  &lt;p&gt;BB: CLR A&lt;/p&gt;  &lt;p&gt;MOVC A,@A+DPTR&lt;/p&gt;  &lt;p&gt;JZ F3&lt;/p&gt;  &lt;p&gt;ACALL WRITE_TO&lt;/p&gt;  &lt;p&gt;INC DPTR&lt;/p&gt;  &lt;p&gt;SJMP BB &lt;/p&gt;  &lt;p&gt;/*STORE DEFAULT PASSWORDS IN EEPROM LOCATIONS 10H TO 50H */&lt;/p&gt;  &lt;p&gt;F3: MOV R3,#10H&lt;/p&gt;  &lt;p&gt;MOV DPTR,#PWD1 ;PASSWORD1&lt;/p&gt;  &lt;p&gt;B4: CLR A&lt;/p&gt;  &lt;p&gt;MOVC A,@A+DPTR&lt;/p&gt;  &lt;p&gt;JZ F4&lt;/p&gt;  &lt;p&gt;ACALL WRITE_TO&lt;/p&gt;  &lt;p&gt;INC DPTR&lt;/p&gt;  &lt;p&gt;SJMP B4&lt;/p&gt;  &lt;p&gt;F4: MOV R3,#20H ;PASSWORD2&lt;/p&gt;  &lt;p&gt;MOV DPTR,#PWD2&lt;/p&gt;  &lt;p&gt;B5: CLR A&lt;/p&gt;  &lt;p&gt;MOVC A,@A+DPTR&lt;/p&gt;  &lt;p&gt;JZ F5&lt;/p&gt;  &lt;p&gt;ACALL WRITE_TO&lt;/p&gt;  &lt;p&gt;INC DPTR&lt;/p&gt;  &lt;p&gt;SJMP B5&lt;/p&gt;  &lt;p&gt;F5: MOV R3,#30H ;PASSWORD3&lt;/p&gt;  &lt;p&gt;MOV DPTR,#PWD3&lt;/p&gt;  &lt;p&gt;B6: CLR A&lt;/p&gt;  &lt;p&gt;MOVC A,@A+DPTR&lt;/p&gt;  &lt;p&gt;JZ F6&lt;/p&gt;  &lt;p&gt;ACALL WRITE_TO&lt;/p&gt;  &lt;p&gt;INC DPTR&lt;/p&gt;  &lt;p&gt;SJMP B6&lt;/p&gt;  &lt;p&gt;;PASSWORD4&lt;/p&gt;  &lt;p&gt;F6: MOV R3,#40H&lt;/p&gt;  &lt;p&gt;MOV DPTR,#PWD4&lt;/p&gt;  &lt;p&gt;B7: CLR A&lt;/p&gt;  &lt;p&gt;MOVC A,@A+DPTR&lt;/p&gt;  &lt;p&gt;JZ F7&lt;/p&gt;  &lt;p&gt;ACALL WRITE_TO&lt;/p&gt;  &lt;p&gt;INC DPTR&lt;/p&gt;  &lt;p&gt;SJMP B7&lt;/p&gt;  &lt;p&gt;F7: MOV R3,#50H&lt;/p&gt;  &lt;p&gt;MOV DPTR,#ADMINPWD ;ADMIN PASSWORD&lt;/p&gt;  &lt;p&gt;B8: CLR A&lt;/p&gt;  &lt;p&gt;MOVC A,@A+DPTR&lt;/p&gt;  &lt;p&gt;JZ STRT&lt;/p&gt;  &lt;p&gt;ACALL WRITE_TO&lt;/p&gt;  &lt;p&gt;INC DPTR&lt;/p&gt;  &lt;p&gt;SJMP B8&lt;/p&gt;  &lt;p&gt;/*STORE THE NO.OF DIGITS OF PASSWORDS AS 3 INTIALLY*/&lt;/p&gt;  &lt;p&gt;STRT: MOV R3,#19H &lt;/p&gt;  &lt;p&gt;MOV A,#3&lt;/p&gt;  &lt;p&gt;ACALL WRITE_TO&lt;/p&gt;  &lt;p&gt;MOV R3,#29H &lt;/p&gt;  &lt;p&gt;MOV A,#3&lt;/p&gt;  &lt;p&gt;ACALL WRITE_TO&lt;/p&gt;  &lt;p&gt;MOV R3,#39H &lt;/p&gt;  &lt;p&gt;MOV A,#3&lt;/p&gt;  &lt;p&gt;ACALL WRITE_TO&lt;/p&gt;  &lt;p&gt;MOV R3,#49H &lt;/p&gt;  &lt;p&gt;MOV A,#3&lt;/p&gt;  &lt;p&gt;ACALL WRITE_TO&lt;/p&gt;  &lt;p&gt;START2:&lt;/p&gt;  &lt;p&gt;CLR P2.7&lt;/p&gt;  &lt;p&gt;MOV DPTR,#MSG1 ;ASKING FOR ID&lt;/p&gt;  &lt;p&gt;ACALL DISPLAY&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;ACALL KEYSCAN ;ENTER THE ID&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;ACALL COMPARISON ;ID COMPARISION&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;SJMP START2 &lt;/p&gt;  &lt;p&gt;WRITE_TO: &lt;/p&gt;  &lt;p&gt;MOV R4,A ;DATA IS STORED IN R4&lt;/p&gt;  &lt;p&gt;ACALL WRITE ;WRITE THE DATA INTO EEPROM &lt;/p&gt;  &lt;p&gt;INC R3 &lt;/p&gt;  &lt;p&gt;;ACALL DELAY &lt;/p&gt;  &lt;p&gt;RET&lt;/p&gt;  &lt;p&gt;READ_FROM:&lt;/p&gt;  &lt;p&gt;ACALL READ ;READ THE DATA FROM 24C04 FROM THE MEMORY&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;INC R3&lt;/p&gt;  &lt;p&gt;RET&lt;/p&gt;  &lt;p&gt;WRITE: &lt;/p&gt;  &lt;p&gt;MOV A,#WTCMD ;DEV ADDRS IN WRITE MODE&lt;/p&gt;  &lt;p&gt;ACALL OUTS &lt;/p&gt;  &lt;p&gt;MOV A,R3 ;DATA ADDRS&lt;/p&gt;  &lt;p&gt;ACALL OUT &lt;/p&gt;  &lt;p&gt;MOV A,R4 ;DATA&lt;/p&gt;  &lt;p&gt;ACALL OUT &lt;/p&gt;  &lt;p&gt;ACALL STOP ;STOP&lt;/p&gt;  &lt;p&gt;RET &lt;/p&gt;  &lt;p&gt;READ: &lt;/p&gt;  &lt;p&gt;MOV A,#WTCMD &lt;/p&gt;  &lt;p&gt;ACALL OUTS &lt;/p&gt;  &lt;p&gt;MOV A,R3 &lt;/p&gt;  &lt;p&gt;ACALL OUT &lt;/p&gt;  &lt;p&gt;MOV A,#RDCMD &lt;/p&gt;  &lt;p&gt;ACALL OUTS &lt;/p&gt;  &lt;p&gt;ACALL IN &lt;/p&gt;  &lt;p&gt;ACALL STOP &lt;/p&gt;  &lt;p&gt;RET &lt;/p&gt;  &lt;p&gt;OUTS: &lt;/p&gt;  &lt;p&gt;MOV B,#8 &lt;/p&gt;  &lt;p&gt;SETB SDA ; BUS FREE AND START CONDITION&lt;/p&gt;  &lt;p&gt;SETB SCL &lt;/p&gt;  &lt;p&gt;NOP &lt;/p&gt;  &lt;p&gt;CLR SDA &lt;/p&gt;  &lt;p&gt;NOP &lt;/p&gt;  &lt;p&gt;CLR SCL &lt;/p&gt;  &lt;p&gt;OSLOOP: &lt;/p&gt;  &lt;p&gt;RLC A &lt;/p&gt;  &lt;p&gt;MOV SDA,C &lt;/p&gt;  &lt;p&gt;SETB SCL &lt;/p&gt;  &lt;p&gt;NOP &lt;/p&gt;  &lt;p&gt;CLR SCL &lt;/p&gt;  &lt;p&gt;DJNZ B,OSLOOP &lt;/p&gt;  &lt;p&gt;SETB SDA &lt;/p&gt;  &lt;p&gt;NOP &lt;/p&gt;  &lt;p&gt;SETB SCL &lt;/p&gt;  &lt;p&gt;NOP &lt;/p&gt;  &lt;p&gt;CLR SCL &lt;/p&gt;  &lt;p&gt;RET &lt;/p&gt;  &lt;p&gt;OUT: &lt;/p&gt;  &lt;p&gt;MOV B,#8 &lt;/p&gt;  &lt;p&gt;OLOOP: &lt;/p&gt;  &lt;p&gt;RLC A &lt;/p&gt;  &lt;p&gt;MOV SDA,C &lt;/p&gt;  &lt;p&gt;SETB SCL &lt;/p&gt;  &lt;p&gt;NOP &lt;/p&gt;  &lt;p&gt;CLR SCL &lt;/p&gt;  &lt;p&gt;DJNZ B,OLOOP &lt;/p&gt;  &lt;p&gt;SETB SDA &lt;/p&gt;  &lt;p&gt;NOP &lt;/p&gt;  &lt;p&gt;SETB SCL &lt;/p&gt;  &lt;p&gt;NOP &lt;/p&gt;  &lt;p&gt;CLR SCL &lt;/p&gt;  &lt;p&gt;RET &lt;/p&gt;  &lt;p&gt;IN:&lt;/p&gt;  &lt;p&gt;MOV B,#8 &lt;/p&gt;  &lt;p&gt;SETB SDA &lt;/p&gt;  &lt;p&gt;INLOOP: &lt;/p&gt;  &lt;p&gt;CLR SCL &lt;/p&gt;  &lt;p&gt;NOP &lt;/p&gt;  &lt;p&gt;SETB SCL &lt;/p&gt;  &lt;p&gt;MOV C,SDA &lt;/p&gt;  &lt;p&gt;RLC A &lt;/p&gt;  &lt;p&gt;DJNZ B,INLOOP &lt;/p&gt;  &lt;p&gt;CLR SCL &lt;/p&gt;  &lt;p&gt;RET &lt;/p&gt;  &lt;p&gt;STOP: ;I2C STOP CONDITION&lt;/p&gt;  &lt;p&gt;CLR SDA &lt;/p&gt;  &lt;p&gt;NOP &lt;/p&gt;  &lt;p&gt;SETB SCL &lt;/p&gt;  &lt;p&gt;NOP &lt;/p&gt;  &lt;p&gt;SETB SDA &lt;/p&gt;  &lt;p&gt;LCALL DLAYms &lt;/p&gt;  &lt;p&gt;RET &lt;/p&gt;  &lt;p&gt;/*@@@@@@@ KEYSCAN SUBROUTINE @@@@@@@@@@@@@@@*/&lt;/p&gt;  &lt;p&gt;KEYSCAN: MOV R1,#50H ;SCANNED KEY IS STORED IN THIS LOCATION&lt;/p&gt;  &lt;p&gt;MOV A,#0C3H ;ENTERD KEYS ARE DISPLAYED FROM 4TH LOCATION OF 2ND LINE&lt;/p&gt;  &lt;p&gt;LCALL COMMAND&lt;/p&gt;  &lt;p&gt;LCALL DELAY&lt;/p&gt;  &lt;p&gt;MOV KEYCOUNT,#0&lt;/p&gt;  &lt;p&gt;NEXTKEY: MOV P0,#0F0H ;GROUND ALL ROWS INTIALLY&lt;/p&gt;  &lt;p&gt;MOV A,P3 ;READ ALL COLMNS;ENSURE ALL KEYS OPEN&lt;/p&gt;  &lt;p&gt;ANL A, #00000111B &lt;/p&gt;  &lt;p&gt;CJNE A,#00000111B,NEXTKEY&lt;/p&gt;  &lt;p&gt;K2: ACALL DELAY&lt;/p&gt;  &lt;p&gt;MOV A,P3 ;READ ALL COLMNS;ENSURE ALL KEYS OPEN&lt;/p&gt;  &lt;p&gt;ANL A, #00000111B &lt;/p&gt;  &lt;p&gt;CJNE A,#00000111B,OVER&lt;/p&gt;  &lt;p&gt;SJMP K2&lt;/p&gt;  &lt;p&gt;OVER: ACALL DELAY&lt;/p&gt;  &lt;p&gt;MOV A,P3 ;READ ALL COLMNS&lt;/p&gt;  &lt;p&gt;ANL A, #00000111B &lt;/p&gt;  &lt;p&gt;CJNE A,#00000111B,OVER1&lt;/p&gt;  &lt;p&gt;SJMP K2&lt;/p&gt;  &lt;p&gt;OVER1: MOV P0,#00001110B ;GROUND ROW 0&lt;/p&gt;  &lt;p&gt;MOV A,P3 ;READ ALL COLMNS&lt;/p&gt;  &lt;p&gt;ANL A, #00000111B &lt;/p&gt;  &lt;p&gt;CJNE A,#00000111B,ROW_0&lt;/p&gt;  &lt;p&gt;MOV P0,#00001101B ;GROUND ROW 1&lt;/p&gt;  &lt;p&gt;MOV A,P3 ;READ ALL COLMNS&lt;/p&gt;  &lt;p&gt;ANL A, #00000111B &lt;/p&gt;  &lt;p&gt;CJNE A,#00000111B,ROW_1&lt;/p&gt;  &lt;p&gt;MOV P0,#00001011B ;GROUND ROW 2&lt;/p&gt;  &lt;p&gt;MOV A,P3 ;READ ALL COLMNS&lt;/p&gt;  &lt;p&gt;ANL A, #00000111B &lt;/p&gt;  &lt;p&gt;CJNE A,#00000111B,ROW_2&lt;/p&gt;  &lt;p&gt;MOV P0,#00000111B ;GROUND ROW 3&lt;/p&gt;  &lt;p&gt;MOV A,P3 ;READ ALL COLMNS&lt;/p&gt;  &lt;p&gt;ANL A, #00000111B &lt;/p&gt;  &lt;p&gt;CJNE A,#00000111B,ROW_3&lt;/p&gt;  &lt;p&gt;LJMP K2&lt;/p&gt;  &lt;p&gt;ROW_0: MOV DPTR,#KCODE0&lt;/p&gt;  &lt;p&gt;SJMP FIND&lt;/p&gt;  &lt;p&gt;ROW_1: MOV DPTR,#KCODE1&lt;/p&gt;  &lt;p&gt;SJMP FIND&lt;/p&gt;  &lt;p&gt;ROW_2: MOV DPTR,#KCODE2&lt;/p&gt;  &lt;p&gt;SJMP FIND&lt;/p&gt;  &lt;p&gt;ROW_3: MOV DPTR,#KCODE3&lt;/p&gt;  &lt;p&gt;FIND: RRC A&lt;/p&gt;  &lt;p&gt;JNC MATCH&lt;/p&gt;  &lt;p&gt;INC DPTR&lt;/p&gt;  &lt;p&gt;SJMP FIND&lt;/p&gt;  &lt;p&gt;MATCH:&lt;/p&gt;  &lt;p&gt;SETB P2.7&lt;/p&gt;  &lt;p&gt;ACALL DELAY ;IF KEY IS DETECTED THEN GIVE A BEEP SOUND&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;CLR P2.7&lt;/p&gt;  &lt;p&gt;CLR A&lt;/p&gt;  &lt;p&gt;MOVC A,@A+DPTR&lt;/p&gt;  &lt;p&gt;MOV @R1,A&lt;/p&gt;  &lt;p&gt;CJNE A,#23H,NK ;STOP THE KEYSCANNING WHEN '#' IS PRESSED&lt;/p&gt;  &lt;p&gt;RET&lt;/p&gt;  &lt;p&gt;NK: ACALL DATAWRT ;DISPLAY THE PRESSED KEY&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;INC KEYCOUNT&lt;/p&gt;  &lt;p&gt;INC R1&lt;/p&gt;  &lt;p&gt;SJMP NEXTKEY&lt;/p&gt;  &lt;p&gt;COMPARISON:&lt;/p&gt;  &lt;p&gt;MOV A,KEYCOUNT&lt;/p&gt;  &lt;p&gt;CJNE A,#3,FFAIL&lt;/p&gt;  &lt;p&gt;MOV R3,#00H ;EEPROM LOCATION&lt;/p&gt;  &lt;p&gt;CHECKID1: LCALL READ_FROM ;COMPARE WITH ID1&lt;/p&gt;  &lt;p&gt;CJNE A,50H,CHECKID2&lt;/p&gt;  &lt;p&gt;LCALL READ_FROM&lt;/p&gt;  &lt;p&gt;CJNE A,51H,CHECKID2&lt;/p&gt;  &lt;p&gt;LCALL READ_FROM&lt;/p&gt;  &lt;p&gt;CJNE A,52H,CHECKID2&lt;/p&gt;  &lt;p&gt;SJMP PWDCHECK1 ;IF ID MATCHED GO FOR ITS PASSWORD&lt;/p&gt;  &lt;p&gt;;COMPARE WITH ID2&lt;/p&gt;  &lt;p&gt;CHECKID2: MOV R3,#03H&lt;/p&gt;  &lt;p&gt;LCALL READ_FROM&lt;/p&gt;  &lt;p&gt;CJNE A,50H,CHECKID3&lt;/p&gt;  &lt;p&gt;LCALL READ_FROM&lt;/p&gt;  &lt;p&gt;CJNE A,51H,CHECKID3&lt;/p&gt;  &lt;p&gt;LCALL READ_FROM&lt;/p&gt;  &lt;p&gt;CJNE A,52H,CHECKID3&lt;/p&gt;  &lt;p&gt;SJMP PWDCHECK2&lt;/p&gt;  &lt;p&gt;;COMPARE WITH ID3&lt;/p&gt;  &lt;p&gt;CHECKID3: MOV R3,#06H&lt;/p&gt;  &lt;p&gt;LCALL READ_FROM&lt;/p&gt;  &lt;p&gt;CJNE A,50H,CHECKID4&lt;/p&gt;  &lt;p&gt;LCALL READ_FROM&lt;/p&gt;  &lt;p&gt;CJNE A,51H,CHECKID4&lt;/p&gt;  &lt;p&gt;LCALL READ_FROM&lt;/p&gt;  &lt;p&gt;CJNE A,52H,CHECKID4&lt;/p&gt;  &lt;p&gt;SJMP PWDCHECK3&lt;/p&gt;  &lt;p&gt;;COMPARE WITH ID4&lt;/p&gt;  &lt;p&gt;CHECKID4: MOV R3,#09H&lt;/p&gt;  &lt;p&gt;LCALL READ_FROM&lt;/p&gt;  &lt;p&gt;CJNE A,50H,FFAIL&lt;/p&gt;  &lt;p&gt;LCALL READ_FROM&lt;/p&gt;  &lt;p&gt;CJNE A,51H,FFAIL&lt;/p&gt;  &lt;p&gt;LCALL READ_FROM&lt;/p&gt;  &lt;p&gt;CJNE A,52H,FFAIL&lt;/p&gt;  &lt;p&gt;LJMP PWDCHECK4&lt;/p&gt;  &lt;p&gt;FFAIL: LJMP FAIL&lt;/p&gt;  &lt;p&gt;PWDCHECK1: MOV PWDFIND,#10000001B ;TO SET 8th,1st BIT THIS LOGIC IS USED TO KNOW WHICH ID'S PASSWORD SHOULD BE COMPARED&lt;/p&gt;  &lt;p&gt;MOV DPTR,#MSG2 ;ASK FOR PASSWORD&lt;/p&gt;  &lt;p&gt;ACALL DISPLAY&lt;/p&gt;  &lt;p&gt;ACALL KEYSCAN ;ENTER PASSWORD&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;MOV A,KEYCOUNT&lt;/p&gt;  &lt;p&gt;CJNE A,#10,PD1 ;IF NO.OF KEYS ENTERD ARE 10 THEN GO COMPARE WITH ADMINPASSWORD&lt;/p&gt;  &lt;p&gt;LJMP ADMIN_PSWD&lt;/p&gt;  &lt;p&gt;PD1: MOV R3,#19H&lt;/p&gt;  &lt;p&gt;LCALL READ_FROM&lt;/p&gt;  &lt;p&gt;MOV PCOUNT1,A ;LOAD THE NO.OF DIGITS OF PASSWORD1 IN PCOUNT1&lt;/p&gt;  &lt;p&gt;MOV R3,#10H&lt;/p&gt;  &lt;p&gt;MOV R2,#10H&lt;/p&gt;  &lt;p&gt;ACALL PWDCHANGE ;CHECK WHETHER USER WANTS TO CHANGE PASSWORD OR NOT &lt;/p&gt;  &lt;p&gt;MOV R3,#19H ;IF PASSWORD IS CHANGED THEN STORE THE NO.OF DIGITS OF NEW PASSWORD &lt;/p&gt;  &lt;p&gt;MOV A,TEMP&lt;/p&gt;  &lt;p&gt;LCALL WRITE_TO&lt;/p&gt;  &lt;p&gt;LJMP START2&lt;/p&gt;  &lt;p&gt;PWDCHECK2: MOV PWDFIND,#01000010B ;TO SET 7th AND 2nd BIT&lt;/p&gt;  &lt;p&gt;MOV DPTR,#MSG2&lt;/p&gt;  &lt;p&gt;ACALL DISPLAY&lt;/p&gt;  &lt;p&gt;ACALL KEYSCAN &lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;MOV A,KEYCOUNT&lt;/p&gt;  &lt;p&gt;CJNE A,#10,PD11&lt;/p&gt;  &lt;p&gt;LJMP ADMIN_PSWD&lt;/p&gt;  &lt;p&gt;PD11:&lt;/p&gt;  &lt;p&gt;MOV R3,#29H&lt;/p&gt;  &lt;p&gt;LCALL READ_FROM&lt;/p&gt;  &lt;p&gt;MOV PCOUNT2,A&lt;/p&gt;  &lt;p&gt;MOV R3,#20H&lt;/p&gt;  &lt;p&gt;MOV R2,#20H&lt;/p&gt;  &lt;p&gt;ACALL PWDCHANGE&lt;/p&gt;  &lt;p&gt;MOV R3,#29H&lt;/p&gt;  &lt;p&gt;MOV A,TEMP&lt;/p&gt;  &lt;p&gt;LCALL WRITE_TO&lt;/p&gt;  &lt;p&gt;LJMP START2&lt;/p&gt;  &lt;p&gt;PWDCHECK3: MOV PWDFIND,#00100100B ;TO SET 6th,3rd BIT&lt;/p&gt;  &lt;p&gt;MOV DPTR,#MSG2&lt;/p&gt;  &lt;p&gt;ACALL DISPLAY&lt;/p&gt;  &lt;p&gt;ACALL KEYSCAN &lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;MOV A,KEYCOUNT&lt;/p&gt;  &lt;p&gt;CJNE A,#10,PD111&lt;/p&gt;  &lt;p&gt;LJMP ADMIN_PSWD&lt;/p&gt;  &lt;p&gt;PD111: MOV R3,#39H&lt;/p&gt;  &lt;p&gt;LCALL READ_FROM&lt;/p&gt;  &lt;p&gt;MOV PCOUNT3,A&lt;/p&gt;  &lt;p&gt;MOV R3,#30H&lt;/p&gt;  &lt;p&gt;MOV R2,#30H&lt;/p&gt;  &lt;p&gt;ACALL PWDCHANGE&lt;/p&gt;  &lt;p&gt;MOV R3,#39H&lt;/p&gt;  &lt;p&gt;MOV A,TEMP&lt;/p&gt;  &lt;p&gt;LCALL WRITE_TO&lt;/p&gt;  &lt;p&gt;LJMP START2&lt;/p&gt;  &lt;p&gt;PWDCHECK4: MOV PWDFIND,#00011000B ;TO SET 5th,4th BIT&lt;/p&gt;  &lt;p&gt;MOV DPTR,#MSG2&lt;/p&gt;  &lt;p&gt;ACALL DISPLAY&lt;/p&gt;  &lt;p&gt;ACALL KEYSCAN &lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;MOV A,KEYCOUNT&lt;/p&gt;  &lt;p&gt;CJNE A,#10,PD1111&lt;/p&gt;  &lt;p&gt;LJMP ADMIN_PSWD&lt;/p&gt;  &lt;p&gt;PD1111: MOV R3,#49H&lt;/p&gt;  &lt;p&gt;LCALL READ_FROM&lt;/p&gt;  &lt;p&gt;MOV PCOUNT4,A&lt;/p&gt;  &lt;p&gt;MOV R3,#40H&lt;/p&gt;  &lt;p&gt;MOV R2,#40H&lt;/p&gt;  &lt;p&gt;ACALL PWDCHANGE&lt;/p&gt;  &lt;p&gt;MOV R3,#49H&lt;/p&gt;  &lt;p&gt;MOV A,TEMP&lt;/p&gt;  &lt;p&gt;LCALL WRITE_TO&lt;/p&gt;  &lt;p&gt;LJMP START2&lt;/p&gt;  &lt;p&gt;PWDCHANGE: &lt;/p&gt;  &lt;p&gt;MOV A,KEYCOUNT&lt;/p&gt;  &lt;p&gt;CJNE A,#3,INTIALCHECK ;IF NO.OF KEYS ENTERD ARE 3 THEN CHECK FOR NEWPASSWORD REQUEST&lt;/p&gt;  &lt;p&gt;MOV A,#'1'&lt;/p&gt;  &lt;p&gt;CJNE A,50H,INTIALCHECK&lt;/p&gt;  &lt;p&gt;CJNE A,51H,INTIALCHECK&lt;/p&gt;  &lt;p&gt;CJNE A,52H,INTIALCHECK&lt;/p&gt;  &lt;p&gt;;IF IT IS NEWPASSWORD REQUEST THEN ALLOW FOR GIVE NEWPASSWORD&lt;/p&gt;  &lt;p&gt;NEWPSWD: MOV DPTR,#MSG5&lt;/p&gt;  &lt;p&gt;ACALL DISPLAY&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;MOV DPTR,#MSG6&lt;/p&gt;  &lt;p&gt;ACALL DISPLAY ;CHECK CURRENT PSWD&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;LCALL KEYSCAN&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;ACALL CHECKPWD ;IF OLD PASSWORD IS ENTERD CORRECTLY THEN GO FOR NEW PASSWORD&lt;/p&gt;  &lt;p&gt;MOV A,R2 &lt;/p&gt;  &lt;p&gt;MOV R3,A&lt;/p&gt;  &lt;p&gt;TRY: MOV DPTR,#MSG7&lt;/p&gt;  &lt;p&gt;ACALL DISPLAY&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;LCALL KEYSCAN ;TYPE NEW PSWD&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;MOV A,#3&lt;/p&gt;  &lt;p&gt;CJNE A,KEYCOUNT,ACCEPT&lt;/p&gt;  &lt;p&gt;MOV A,#'1'&lt;/p&gt;  &lt;p&gt;CJNE A,50H,ACCEPT&lt;/p&gt;  &lt;p&gt;CJNE A,51H,ACCEPT&lt;/p&gt;  &lt;p&gt;CJNE A,52H,ACCEPT&lt;/p&gt;  &lt;p&gt;MOV DPTR,#MSG12&lt;/p&gt;  &lt;p&gt;ACALL DISPLAY&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;SJMP TRY&lt;/p&gt;  &lt;p&gt;ACCEPT: MOV TEMP,KEYCOUNT&lt;/p&gt;  &lt;p&gt;MOV A,KEYCOUNT&lt;/p&gt;  &lt;p&gt;CJNE A,#10,LK&lt;/p&gt;  &lt;p&gt;MOV DPTR,#MSG9&lt;/p&gt;  &lt;p&gt;ACALL DISPLAY&lt;/p&gt;  &lt;p&gt;SJMP TRY&lt;/p&gt;  &lt;p&gt;LK: MOV R1,#50H ;WRITE THE NEW PASSWORD IN EEPROM&lt;/p&gt;  &lt;p&gt;LL: MOV A,@R1&lt;/p&gt;  &lt;p&gt;LCALL WRITE_TO&lt;/p&gt;  &lt;p&gt;INC R1&lt;/p&gt;  &lt;p&gt;DJNZ KEYCOUNT,LL&lt;/p&gt;  &lt;p&gt;RET &lt;/p&gt;  &lt;p&gt;INTIALCHECK: ACALL CHECKPWD&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;LJMP SUCCESS&lt;/p&gt;  &lt;p&gt;CHECKPWD: JB PWDFIND.7,PSWD1&lt;/p&gt;  &lt;p&gt;JB PWDFIND.6,PSWD2&lt;/p&gt;  &lt;p&gt;JB PWDFIND.5,PSWD3&lt;/p&gt;  &lt;p&gt;JB PWDFIND.4,PSWD4&lt;/p&gt;  &lt;p&gt;LJMP START2&lt;/p&gt;  &lt;p&gt;PSWD1: MOV A,PCOUNT1&lt;/p&gt;  &lt;p&gt;SJMP JJJ&lt;/p&gt;  &lt;p&gt;PSWD2: MOV A,PCOUNT2&lt;/p&gt;  &lt;p&gt;SJMP JJJ &lt;/p&gt;  &lt;p&gt;PSWD3: MOV A,PCOUNT3&lt;/p&gt;  &lt;p&gt;SJMP JJJ&lt;/p&gt;  &lt;p&gt;PSWD4: MOV A,PCOUNT4&lt;/p&gt;  &lt;p&gt;JJJ: CJNE A,KEYCOUNT,FAIL&lt;/p&gt;  &lt;p&gt;MOV R1,#50H&lt;/p&gt;  &lt;p&gt;JJ: LCALL READ_FROM&lt;/p&gt;  &lt;p&gt;MOV TEMP,@R1&lt;/p&gt;  &lt;p&gt;CJNE A,TEMP,FAIL&lt;/p&gt;  &lt;p&gt;INC R1&lt;/p&gt;  &lt;p&gt;DJNZ KEYCOUNT,JJ&lt;/p&gt;  &lt;p&gt;RET&lt;/p&gt;  &lt;p&gt;ADMIN_PSWD: MOV R1,#50H ;RAM LOCATION&lt;/p&gt;  &lt;p&gt;MOV R3,#50H ;EEPROM LOCATION&lt;/p&gt;  &lt;p&gt;RPT: LCALL READ_FROM&lt;/p&gt;  &lt;p&gt;MOV TEMP,@R1&lt;/p&gt;  &lt;p&gt;CJNE A,TEMP,FAIL&lt;/p&gt;  &lt;p&gt;INC R1&lt;/p&gt;  &lt;p&gt;DJNZ KEYCOUNT,RPT&lt;/p&gt;  &lt;p&gt;;IF ADMIN PASSWORD IS MATCHED THEN DISPLAY THE RESPECTIVE USER'S PASSWOR&lt;/p&gt;  &lt;p&gt;MOV DPTR,#MSG8&lt;/p&gt;  &lt;p&gt;ACALL DISPLAY&lt;/p&gt;  &lt;p&gt;JB PWDFIND.0,DISP_PWD1&lt;/p&gt;  &lt;p&gt;JB PWDFIND.1,DISP_PWD2&lt;/p&gt;  &lt;p&gt;JB PWDFIND.2,DISP_PWD3&lt;/p&gt;  &lt;p&gt;JB PWDFIND.3,DISP_PWD4&lt;/p&gt;  &lt;p&gt;DISP_PWD1: MOV R3,#10H ;DISPLAY PASSWORD1&lt;/p&gt;  &lt;p&gt;MOV TEMP,PCOUNT1&lt;/p&gt;  &lt;p&gt;SJMP DO_AGAIN&lt;/p&gt;  &lt;p&gt;;DISPLAY PASSWORD2&lt;/p&gt;  &lt;p&gt;DISP_PWD2: MOV R3,#20H&lt;/p&gt;  &lt;p&gt;MOV TEMP,PCOUNT2&lt;/p&gt;  &lt;p&gt;SJMP DO_AGAIN&lt;/p&gt;  &lt;p&gt;;DISPLAY PASSWORD3&lt;/p&gt;  &lt;p&gt;DISP_PWD3: MOV R3,#30H&lt;/p&gt;  &lt;p&gt;MOV TEMP,PCOUNT3&lt;/p&gt;  &lt;p&gt;SJMP DO_AGAIN&lt;/p&gt;  &lt;p&gt;;DISPLAY PASSWORD4&lt;/p&gt;  &lt;p&gt;DISP_PWD4: MOV R3,#40H&lt;/p&gt;  &lt;p&gt;MOV TEMP,PCOUNT4&lt;/p&gt;  &lt;p&gt;DO_AGAIN:&lt;/p&gt;  &lt;p&gt;MOV A,#0C4H&lt;/p&gt;  &lt;p&gt;ACALL COMMAND&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;DO_AGAIN1: LCALL READ_FROM&lt;/p&gt;  &lt;p&gt;ACALL DATAWRT &lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;DJNZ TEMP,DO_AGAIN1&lt;/p&gt;  &lt;p&gt;ACALL DLAYms&lt;/p&gt;  &lt;p&gt;ACALL DLAYms&lt;/p&gt;  &lt;p&gt;ACALL DLAYms&lt;/p&gt;  &lt;p&gt;ACALL DLAYms&lt;/p&gt;  &lt;p&gt;LJMP START2&lt;/p&gt;  &lt;p&gt;SUCCESS: MOV FAILCOUNT,#0&lt;/p&gt;  &lt;p&gt;MOV DPTR,#MSG3 ;IF THE ID &amp;amp; PSWD ARE MATCHED THEN STEEPPER MOTOR ROTATES&lt;/p&gt;  &lt;p&gt;ACALL DISPLAY&lt;/p&gt;  &lt;p&gt;ACALL STEPPER&lt;/p&gt;  &lt;p&gt;LJMP START2&lt;/p&gt;  &lt;p&gt;;IF NOT MATCHED THEN GIVE THREE BEEP SOUNDS&lt;/p&gt;  &lt;p&gt;FAIL:&lt;/p&gt;  &lt;p&gt;MOV DPTR,#MSG4&lt;/p&gt;  &lt;p&gt;ACALL DISPLAY&lt;/p&gt;  &lt;p&gt;INC FAILCOUNT&lt;/p&gt;  &lt;p&gt;MOV A,#3&lt;/p&gt;  &lt;p&gt;CJNE A,FAILCOUNT,TRY1&lt;/p&gt;  &lt;p&gt;MOV FAILCOUNT,#0&lt;/p&gt;  &lt;p&gt;MOV DPTR,#MSG13&lt;/p&gt;  &lt;p&gt;ACALL DISPLAY&lt;/p&gt;  &lt;p&gt;SETB P2.7&lt;/p&gt;  &lt;p&gt;SJMP $&lt;/p&gt;  &lt;p&gt;TRY1: SETB P2.7&lt;/p&gt;  &lt;p&gt;ACALL DLAYms&lt;/p&gt;  &lt;p&gt;ACALL DLAYms&lt;/p&gt;  &lt;p&gt;CLR P2.7&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;SETB P2.7&lt;/p&gt;  &lt;p&gt;ACALL DLAYms&lt;/p&gt;  &lt;p&gt;ACALL DLAYms&lt;/p&gt;  &lt;p&gt;CLR P2.7&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;SETB P2.7&lt;/p&gt;  &lt;p&gt;ACALL DLAYms&lt;/p&gt;  &lt;p&gt;ACALL DLAYms&lt;/p&gt;  &lt;p&gt;LJMP START2&lt;/p&gt;  &lt;p&gt;STEPPER: MOV DPTR,#MSG10&lt;/p&gt;  &lt;p&gt;ACALL DISPLAY&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;MOV TEMP,#15&lt;/p&gt;  &lt;p&gt;ROTATE_R: ;ROTATE CLOCKWISE&lt;/p&gt;  &lt;p&gt;MOV P2,#06H&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;MOV P2,#03H&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;MOV P2,#09H&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;MOV P2,#0CH&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;DJNZ TEMP,ROTATE_R&lt;/p&gt;  &lt;p&gt;MOV P2,#0&lt;/p&gt;  &lt;p&gt;ACALL L_DELAY&lt;/p&gt;  &lt;p&gt;ACALL L_DELAY&lt;/p&gt;  &lt;p&gt;ACALL L_DELAY&lt;/p&gt;  &lt;p&gt;MOV DPTR,#MSG11&lt;/p&gt;  &lt;p&gt;ACALL DISPLAY&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;MOV TEMP,#15&lt;/p&gt;  &lt;p&gt;ROTATE_L: ;ROTATE ANTI CLOCKWISE&lt;/p&gt;  &lt;p&gt;MOV P2,#06H&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;MOV P2,#0CH&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;MOV P2,#09H&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;MOV P2,#03H&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;DJNZ TEMP,ROTATE_L&lt;/p&gt;  &lt;p&gt;RET&lt;/p&gt;  &lt;p&gt;/* LCD DISPLAY SUBROUTINE */&lt;/p&gt;  &lt;p&gt;DISPLAY: MOV A,#01H&lt;/p&gt;  &lt;p&gt;ACALL COMMAND&lt;/p&gt;  &lt;p&gt;ACALL DELAY &lt;/p&gt;  &lt;p&gt;DISPLAY1: CLR A&lt;/p&gt;  &lt;p&gt;MOVC A,@A+DPTR&lt;/p&gt;  &lt;p&gt;JZ XYZ&lt;/p&gt;  &lt;p&gt;ACALL DATAWRT&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;INC DPTR&lt;/p&gt;  &lt;p&gt;SJMP DISPLAY1&lt;/p&gt;  &lt;p&gt;XYZ: MOV A,#0C4H&lt;/p&gt;  &lt;p&gt;ACALL COMMAND&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;RET&lt;/p&gt;  &lt;p&gt;COMMAND: ;SEND COMMANDS TO LCD&lt;/p&gt;  &lt;p&gt;MOV P1,A&lt;/p&gt;  &lt;p&gt;CLR P3.3&lt;/p&gt;  &lt;p&gt;CLR P3.4&lt;/p&gt;  &lt;p&gt;SETB P3.5&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;CLR P3.5&lt;/p&gt;  &lt;p&gt;RET&lt;/p&gt;  &lt;p&gt;DATAWRT: ;SEND DATA TO LCD&lt;/p&gt;  &lt;p&gt;MOV P1,A&lt;/p&gt;  &lt;p&gt;SETB P3.3&lt;/p&gt;  &lt;p&gt;CLR P3.4&lt;/p&gt;  &lt;p&gt;SETB P3.5&lt;/p&gt;  &lt;p&gt;ACALL DELAY&lt;/p&gt;  &lt;p&gt;CLR P3.5&lt;/p&gt;  &lt;p&gt;RET&lt;/p&gt;  &lt;p&gt;DELAY:&lt;/p&gt;  &lt;p&gt;MOV R6,#200&lt;/p&gt;  &lt;p&gt;HERE1: MOV R7,#100&lt;/p&gt;  &lt;p&gt;HERE: DJNZ R7,HERE&lt;/p&gt;  &lt;p&gt;DJNZ R6,HERE1&lt;/p&gt;  &lt;p&gt;RET&lt;/p&gt;  &lt;p&gt;DLAYms: &lt;/p&gt;  &lt;p&gt;MOV R6,#100 &lt;/p&gt;  &lt;p&gt;MOV B,#00 &lt;/p&gt;  &lt;p&gt;MS1: DJNZ B,$&lt;/p&gt;  &lt;p&gt;DJNZ B,$&lt;/p&gt;  &lt;p&gt;DJNZ R6,MS1 &lt;/p&gt;  &lt;p&gt;RET &lt;/p&gt;  &lt;p&gt;L_DELAY: &lt;/p&gt;  &lt;p&gt;MOV R7,#0AH&lt;/p&gt;  &lt;p&gt;LLL: LCALL DLAYms&lt;/p&gt;  &lt;p&gt;DJNZ R7,LLL &lt;/p&gt;  &lt;p&gt;RET &lt;/p&gt;  &lt;p&gt;COMM: DB 38H,0EH,01H,06H,84H,00H&lt;/p&gt;  &lt;p&gt;ID1: DB &amp;quot;101&amp;quot;,0&lt;/p&gt;  &lt;p&gt;ID2: DB &amp;quot;102&amp;quot;,0&lt;/p&gt;  &lt;p&gt;ID3: DB &amp;quot;103&amp;quot;,0&lt;/p&gt;  &lt;p&gt;ID4: DB &amp;quot;104&amp;quot;,0&lt;/p&gt;  &lt;p&gt;PWD1: DB &amp;quot;100&amp;quot;,0&lt;/p&gt;  &lt;p&gt;PWD2: DB &amp;quot;200&amp;quot;,0&lt;/p&gt;  &lt;p&gt;PWD3: DB &amp;quot;300&amp;quot;,0 &lt;/p&gt;  &lt;p&gt;PWD4: DB &amp;quot;400&amp;quot;,0&lt;/p&gt;  &lt;p&gt;ADMINPWD: DB &amp;quot;1234567890&amp;quot;,0&lt;/p&gt;  &lt;p&gt;MSGA: DB &amp;quot;WINKIT&amp;quot;,0&lt;/p&gt;  &lt;p&gt;MSGB: DB &amp;quot;LEARNING IS FUN&amp;quot;,0&lt;/p&gt;  &lt;p&gt;MSG : DB &amp;quot;SECURITY SYSTEM&amp;quot;,0&lt;/p&gt;  &lt;p&gt;MSG1: DB &amp;quot;ENTER ID&amp;quot;,0&lt;/p&gt;  &lt;p&gt;MSG2: DB &amp;quot;ENTER PASSWORD&amp;quot;,0 &lt;/p&gt;  &lt;p&gt;MSG3: DB &amp;quot;SUCCESS&amp;quot;,0&lt;/p&gt;  &lt;p&gt;MSG4: DB &amp;quot;FAIL&amp;quot;,0&lt;/p&gt;  &lt;p&gt;MSG5: DB &amp;quot;CHANGE PASSWORD&amp;quot;,0&lt;/p&gt;  &lt;p&gt;MSG6: DB &amp;quot;TYPE CURRENT PWD&amp;quot;,0&lt;/p&gt;  &lt;p&gt;MSG7: DB &amp;quot;ENTER NEW PSWD&amp;quot;,0&lt;/p&gt;  &lt;p&gt;MSG8: DB &amp;quot;YOUR PSWD IS &amp;quot;,0&lt;/p&gt;  &lt;p&gt;MSG9: DB &amp;quot;MAX LENTH OVER &amp;quot;,0 &lt;/p&gt;  &lt;p&gt;MSG10: DB &amp;quot;DOOR IS OPENING &amp;quot;,0 &lt;/p&gt;  &lt;p&gt;MSG11: DB &amp;quot;DOOR IS CLOSING &amp;quot;,0 &lt;/p&gt;  &lt;p&gt;MSG12: DB &amp;quot;INVALID PSWD &amp;quot;,0 &lt;/p&gt;  &lt;p&gt;MSG13: DB &amp;quot; SYSTEM BLOCKED &amp;quot;,0 &lt;/p&gt;  &lt;p&gt;KCODE0: DB '1','2','3'&lt;/p&gt;  &lt;p&gt;KCODE1: DB '4','5','6'&lt;/p&gt;  &lt;p&gt;KCODE2: DB '7','8','9'&lt;/p&gt;  &lt;p&gt;KCODE3: DB '*','0','#'&lt;/p&gt;  &lt;p&gt;END&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330726511081228200-5012540946963031727?l=circuitplanet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://circuitplanet.blogspot.com/feeds/5012540946963031727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://circuitplanet.blogspot.com/2009/09/password-based-electrical-appliances_21.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/5012540946963031727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/5012540946963031727'/><link rel='alternate' type='text/html' href='http://circuitplanet.blogspot.com/2009/09/password-based-electrical-appliances_21.html' title='PASSWORD BASED ELECTRICAL APPLIANCES CONTROL SYSTEM USING 89C51 MICRCONTROLLER'/><author><name>Arun Kumar</name><uri>https://profiles.google.com/106450967102748060653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-Qvye04VFjcc/AAAAAAAAAAI/AAAAAAAAAlY/LmoYIEg8p2c/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_H-OQr197CAc/Srb2npD2N8I/AAAAAAAAAMw/1KgbAoBe9bQ/s72-c/clip_image001_thumb.gif?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-330726511081228200.post-4665296848291006916</id><published>2009-09-20T21:22:00.001+05:30</published><updated>2009-09-20T21:22:41.485+05:30</updated><title type='text'>Microcontroller projects and application resources</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;a name='PIC_applications'/&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;span style='background-color:yellow'&gt;&lt;strong&gt;Microcontroller Applications&lt;/strong&gt;&lt;/span&gt; &lt;span style='color:blue'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;span style='font-size:12pt'&gt;&lt;br /&gt;						&lt;a target='_blank' href='http://www.electroguys.com/carparking'/&gt;&lt;/span&gt;Car parking system using Microcontroller 8051, 74157, 555 &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://jap.hu/electronic/codelock.html'&gt;&lt;span style='font-family:Verdana'&gt;Electronic door codelock with PIC&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; PIC 16F84, electronic door codelock with PIC 16F84, schematics &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.sskteracon.com/index.htm'&gt;&lt;span style='font-family:Verdana'&gt;Home controller&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; a small home controller intended to turn your personal computer ( PC ) into a process control / data collection system, RS232, PIC 16F873A, &lt;a href='http://www.educypedia.be/'&gt;Educypedia&lt;/a&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://jap.hu/electronic/codec.html'&gt;Infra/radio remote control transmitter/receiver with PIC&lt;/a&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.users.bigpond.com/pbhandary/pic/iralyze/iralyze.html'&gt;IR analyser&lt;/a&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;This system receives IR signals from existing remote controls and displays the waveform. It also attempts to categorize the signal based on several characteristics, PIC 16F876 &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.users.bigpond.com/pbhandary/pic/IRSony.html'&gt;&lt;span style='font-family:Verdana'&gt;IR receiver&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; receives and decodes signals from a Sony IR remote control and sends the codes received to a serial port on a PC &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.angelfire.com/electronic/hayles/charge1.html'&gt;&lt;span style='font-family:Verdana'&gt;NiMH battery charger&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; PIC processor based high capacity battery charger, PIC16C711 &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://ww1.microchip.com/downloads/en/DeviceDoc/osilator.pdf'&gt;&lt;span style='font-family:Verdana'&gt;Oscillator - PICmicro microcontroller&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;span style='color:blue'&gt;pdf file&lt;/span&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.hamradio-online.com/1999/feb/mdecoder.html'&gt;PIC16F84 based morse code reader&lt;/a&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://surducan.netfirms.com/RS232.html'&gt;PIC to RS232 connection&lt;/a&gt; 16F84, 16F628, 16F676, 16F87x, 12F675 &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://users.pandora.be/davshomepage/datasheets/tinyserir.pdf'&gt;&lt;span style='font-family:Verdana'&gt;RC5 microcontroller&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; Tinyserir-RC5 is een kleine microcontroller die geprogrammeerd is om infrarood signalen te decoderen en serieel te verzenden zodat deze gedecodeerd kunnen worden door een apparaat die over een RS-232 poort beschikt, &lt;span style='color:red'&gt;in Dutch&lt;/span&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.techdesign.be/projects/021/021.htm'&gt;&lt;span style='font-family:Verdana'&gt;RDS/RBDS Decoder&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; This project supports both RDS (Europe) and RBDS (USA) Tuner FM band 88..108 MhZ (Europe and USA.), &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.mastincrosbie.com/mark/electronics/pic/io.html'&gt;&lt;span style='font-family:Verdana'&gt;Serial I/O&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; PIC 16F84 &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://jap.hu/electronic/irtx_pic.html'&gt;&lt;span style='font-family:Verdana'&gt;Serial port controlled infrared transmitter with PIC&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; PIC 16F628, This is a programmable infrared (remote control) transmitter, which can be controlled from a PC serial port. It is capable of sending many remote control formats, including the Philips RC-5 standard&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://airborn.com.au/serial/sertopar.html'&gt;Serial to parallel converter&lt;/a&gt; AT89C2051, The converter runs at 9600 baud, and outputs each byte received on a centronics style parallel port, together with a nominal 50 microsecond strobe. The converter buffers up the bytes received if busy is active, and is bidirectional &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.mastincrosbie.com/mark/electronics/pic/fastflash.html'&gt;&lt;span style='font-family:Verdana'&gt;Square wave generator&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; 100khz square wave generator, PIC 16F84 &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://saint.419.removed.us/picpro.html'&gt;&lt;span style='font-family:Verdana'&gt;Universal PIC Programmer&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; - &lt;a target='_blank' href='http://www.cs.ucr.edu/%7Eeblock/pages/pictools/fpp.html'&gt;Flash PIC programmer&lt;/a&gt; for the board &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.alanmacek.com/usb/'&gt;&lt;span style='font-family:Verdana'&gt;USB and PIC Microprocessors 16C745 and 18F2455&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.geocities.com/CapeCanaveral/Launchpad/3632/dvm.htm'&gt;Video DVM&lt;/a&gt; Video-DVM is a very cheap DVM that shows how an output as complex as a videocomposite signal can be generated entirely in software: two I/O pins and three resistors are all the hardware required. Connected to any TV set it displays voltages, included max and min peaks, using both giant digits and an analog bar-display, Atmel's AT90S1200 &lt;span style='color:white'&gt;Horiz&lt;/span&gt;&lt;a name='Microcontroller_Applications:_Clocks'/&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;span style='background-color:yellow'&gt;&lt;strong&gt;Microcontroller Applications: Clocks &lt;/strong&gt;&lt;/span&gt; &lt;span style='color:blue'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://avtanski.net/projects/astro_clock/'&gt;Astronomy clock microcontroller project&lt;/a&gt; 2x16 LCD module, PIC16F877A, 16 button keyboard &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.luberth.com/analog.htm'&gt;&lt;span style='font-family:Verdana'&gt;Digital clock&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; digital propeller clock circuit &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href='http://www.nixiana.com/hardware/ntpclock.shtml'&gt;&lt;span style='font-family:Verdana'&gt;Nixie Tube Propeller Clock&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; the world's first propeller clock using a nixie tube &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.rennes.supelec.fr/ren/fi/elec/mcu/pic/applis/clkapic/clkapic.htm'&gt;&lt;span style='font-family:Verdana'&gt;Pendule à PIC&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; PIC 16C84 &lt;a target='_blank' href='http://www.electronixandmore.com/project/propclock/index.html'&gt;Propeller clock&lt;/a&gt; Propeller clock with the PIC16F84A &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.geocities.com/syco5_2k/propellerclock.html'&gt;&lt;span style='font-family:Verdana'&gt;Propeller clock&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; overview of the construction of the clock &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.capturedlightning.org/hot-streamer/hilo90mhz/electronics/prop_clock.htm'&gt;&lt;span style='font-family:Verdana'&gt;Propeller clock&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.bobblick.com/techref/projects/propclock/propclock.html'&gt;Propeller clock&lt;/a&gt; "Propeller Clock" Mechanically Scanned LED Clock. Seven light emitting diodes spin, giving the illusion of numbers in the air, PIC16C84 or 16F84 microprocessor &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.geocities.com/tjacodesign/propclock/propclock.html'&gt;&lt;span style='font-family:Verdana'&gt;Propeller clock&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; Basic PIC 16F84 flash microcontroller circuit &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.webx.dk/oz2cpu/clock-scope/scope.htm'&gt;&lt;span style='font-family:Verdana'&gt;Scope Clock DG7 tube and PIC16F876&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://chaokhun.kmitl.ac.th/%7Ekswichit/xtimer/xtimer1.html'&gt;Timer on a PIC16F628&lt;/a&gt; a 24 hours clock which may be programmed to turn on and off some device at programmed time  &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;span style='background-color:yellow'&gt;&lt;strong&gt;Microcontroller Applications: LCD control &lt;/strong&gt;&lt;/span&gt; &lt;span style='color:blue'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.rentron.com/Myke1.htm'&gt;&lt;span style='font-family:Verdana'&gt;2-Wire LCD Interface" using the PIC16C84 microcontroller&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; Alphanumeric LCD displays, assembler source file written for the PIC16C84, 74LS174&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.ke4nyv.com/gpslcd.htm'&gt;GPS LCD Display Project&lt;/a&gt; This project is based on a PIC16F84, included a MAX232 level converter to do the TTL to Serial conversion before it came into the PIC &lt;a target='_blank' href='http://ouwehand.net/%7Epeter/lcd/lcd.shtml'&gt;HD44780-based character-LCD&lt;/a&gt; how to control a HD44780-based character-LCD, MIC 8051, PIC 16C84 &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.mastincrosbie.com/mark/electronics/pic/lcd.html'&gt;&lt;span style='font-family:Verdana'&gt;LCD control library&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.bobblick.com/techref/projects/lcdterm/lcdterm.html'&gt;LCD serial terminal&lt;/a&gt; based on the PIC 16F84, has RS-232 serial in/out, up to 20 programmable keys, character LCD up to 2x40, 5 auxiliary inputs, 6 auxiliary outputs&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.mindspring.com/%7Etcoonan/lcd.html'&gt;PIC LCD Controller Project&lt;/a&gt; The LCD Serializer is a very small piggy-back board containing a PIC 16C54 (or 16F84) that converts any "standard" LCD module to a RS232 controlled display  &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;span style='background-color:yellow'&gt;&lt;strong&gt;&lt;a name='Microcontroller_Applications:_light'/&gt;Microcontroller Applications: light&lt;/strong&gt;&lt;/span&gt; &lt;span style='color:blue'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.zws.com/products/picxie/index.html'&gt;Animated LED&lt;/a&gt; Animated LED, PIC16C84, a 4x4 pixel animated LED billboard of the type commonly seen at railway stations, in store windows and so on &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://4north.no-ip.com:8080/micro/'&gt;&lt;span style='font-family:Verdana'&gt;Bicycle Persistence of Vision Light Display&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; using ATTiny26&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.crownhill.co.uk/support/downloads/ir_rcvr.pdf'&gt;B0L12 Infrared Sensor&lt;/a&gt; PIC 16F873A,  Sony IR remote control, &lt;span style='color:blue'&gt;pdf file&lt;/span&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.gorobotics.net/articles/article.php?id=755227'&gt;&lt;span style='font-family:Verdana'&gt;Building an infrared remote decoder&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; PIC12F675 or PIC12F629&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.melabs.com/resources/articles/ledart.htm'&gt;Driving 7-segment LED Displays&lt;/a&gt; 16F84 &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.turbokeu.com/myprojects/tl-dimmer.htm'&gt;&lt;span style='font-family:Verdana'&gt;Electronic TL-Dimmer&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; PIC16F876 based 2-channel Electronic TL-Dimmer with sunrise &amp;amp; sunset simulator for fishtanks, with 20x4 VFD, timer, DCF77 24H-clock &amp;amp; calendar&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.grantronics.com.au/heart.html'&gt;Heart of LEDs&lt;/a&gt; Atmel AT89C2051&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.restena.lu/convict/Jeunes/beacon.htm'&gt;Infrared / Ultrasonic beacon&lt;/a&gt; Sender, Receiver, D/A conversion, PIC - program, Interface-programming, Master-slave communication, Mobile robot, Turnable beacons &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.users.bigpond.com/pbhandary/pic/IRSony.html'&gt;&lt;span style='font-family:Verdana'&gt;IR Receiver for Sony Remotes&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; The circuit is built to receive signals from a standard Sony remote control and send the code bytes(2) received to an RS-232 port&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.users.bigpond.com/pbhandary/pic/iralyze/iralyze.html'&gt;IR Remote Signal Analyzer&lt;/a&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.mastincrosbie.com/mark/electronics/pic/flash.html'&gt;LED flasher&lt;/a&gt; PIC 16F84 &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://aeminium.org/slug/hardware/ledmatrix/'&gt;&lt;span style='font-family:Verdana'&gt;LeD MaTRiX&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; This is a simple, programmable, autonomous and extensible LED matrix with the possibility of being controlled by a computer using a RS232 connection. Its basic modules are the Controller Board, the I/O Port expander boards and the LED matrix cardboard support. The micro controller is a common Microchip, PIC16F88 &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.geocities.com/digitan000/Hardware/3/e3_page.html'&gt;&lt;span style='font-family:Verdana'&gt;LED Patterns with AVR micro&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; This AVR Startup Project will create a rolling display pattern using up to 8 Light Emiting Diodes. But more importantly, this page demonstrates how to set up and run a basic program using the power ATMEL AVR development kit &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href='http://www.eddiem.com/projects/Pir-remote/pir-remote.htm'&gt;&lt;span style='font-family:Verdana'&gt;Micro based PIR to IR remote converter&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; An Atmel AT90S1200 controlling a panasonic VCR &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.geocities.com/sunsetstrip/concert/2301/dimmer.html'&gt;&lt;span style='font-family:Verdana'&gt;Microcontroller: control of one 20 watt halogen lamp&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; PIC 16F84 chip Microcontroller multichannel light dimmer a microprocessor-controlled multiple channel lighting dimmer, that could be used in theatrical and other applications. The device will accept input from a wide range of interfaces: RS232 input, DMX512 (theatrical lighting standard) or RS485, or a Musical Instrument Digital Interface (MIDI). The device will control a number of lamps by using some form of AC power control, AT90S8515 &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://chaokhun.kmitl.ac.th/%7Ekswichit/saver5/saver5.html'&gt;&lt;span style='font-family:Verdana'&gt;Night Light Saver&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; Build a device that turn on and off a night light automatically. Save Energy, No EMI, No Battery, Built-in Lamp Fixture, and Peak Shaving, AT89C2051 &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.mindspring.com/%7Ejlittle/picstuff.html'&gt;&lt;span style='font-family:Verdana'&gt;PIC 16C63 midi controlled light dimmer&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.microchipc.com/sourcecode/PIC_Hi-Tech_C_Mike_Pearces_phase_controller_TRIAC_or_IGBT_50-60Hz.zip'&gt;PIC 16F84 IGBT brightness phase controller&lt;/a&gt;  a single channel phase controller for a PIC16x84 10MHz, &lt;span style='color:blue'&gt;zip file&lt;/span&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://hobby_elec.piclist.com/e_pic6_a.htm'&gt;&lt;span style='font-family:Verdana'&gt;PIC16F873 remote display&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.sbprojects.com/projects/ircontrol/picir/picir.htm'&gt;PIC IR Decoders&lt;/a&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://avtanski.net/projects/redlight/'&gt;Red Light for Astronomy Observing&lt;/a&gt; PIC12F683&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://home.versatel.nl/edithenwilliam/'&gt;RGB LED, Dart teller, Magic Ball&lt;/a&gt; 16F628&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://web.hazmat.com/%7Emjb/projects/rswg/'&gt;Rotating Sprocket Wheel Generator&lt;/a&gt;  PIC16F84 &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.mikroe.com/en/books/picbook/7_08chapter.htm'&gt;&lt;span style='font-family:Verdana'&gt;Seven-Segment Display (multiplexing)&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; PIC 16F84 &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://mondo-technology.com/scharge.htm'&gt;&lt;span style='font-family:Verdana'&gt;Solar Charger&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; PIC16F84&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://ww1.microchip.com/downloads/en/AppNotes/01076A.pdf'&gt;Using a PIC® Microcontroller for DMX512 Communication&lt;/a&gt; dmx512 protocol, application note  &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;span style='background-color:yellow'&gt;&lt;strong&gt;Microcontroller Applications: Measurement&lt;/strong&gt;&lt;/span&gt; &lt;span style='color:blue'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://lea.hamradio.si/%7Es57nan/ham_radio/fc_led_2/fcl2.html'&gt;50 MHz frequency counter, voltage meter &amp;amp; SWR/PWR indicator&lt;/a&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://ww1.microchip.com/downloads/en/DeviceDoc/31024a.pdf'&gt;Analog to digital conversion using a PIC16C54&lt;/a&gt;&lt;br /&gt;					&lt;span style='color:blue'&gt;pdf file, &lt;/span&gt; part of &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;amp;nodeId=1335&amp;amp;dDocName=en010121'&gt;&lt;span style='font-family:Verdana'&gt;PIC16C54 application notes&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.turbokeu.com/myprojects/countdown3.htm'&gt;Countdown Dark Room Timer&lt;/a&gt; PIC16F84 based Countdown Dark Room Timer from 00:00 to 99:59 minutes with relay &amp;amp; alarm &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.cappels.org/dproj/difsi/dfsi.htm'&gt;&lt;span style='font-family:Verdana'&gt;Digital RF Field Strength Indicator with LED display using Atmel AT90S2313 AVR Processor&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://njhurst.com/electronics/watersensor/'&gt;Digital water level meter&lt;/a&gt; 16F876, water level meter circuit&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.embedtronics.com/avr/tempavr.html'&gt;DS1820 temperature sensor readout unit&lt;/a&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.embedtronics.com/sht11/sht11.html'&gt;Humidity &amp;amp; temperature unit&lt;/a&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.webx.dk/oz2cpu/pcmod/temp-led.htm'&gt;LED temperature display with PIC16F876&lt;/a&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://hobby_elec.piclist.com/e_pic6_6.htm'&gt;PIC16F873 ultrasonic range meter&lt;/a&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.ise.pw.edu.pl/%7Ewzab/picadc/picadc.html'&gt;PICADC&lt;/a&gt; a free, PIC based "intelligent" A/D converter, PIC16F84, MAX190 ADC&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://ww1.microchip.com/downloads/en/AppNotes/00557c.pdf'&gt;PIC-based 4 channel voltmeter&lt;/a&gt; PIC-based 4 channel voltmeter, &lt;span style='color:blue'&gt;pdf file&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.microchipc.com/sourcecode/PIC_Hi-Tech_C_Mike_Pearces_phase_control.zip'&gt;Temperature controller&lt;/a&gt; 2KW heater controller, PIC12C508, &lt;span style='color:blue'&gt;zip file&lt;/span&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.myplace.nu/avr/thermo/index.htm'&gt;&lt;span style='font-family:Verdana'&gt;Temperature monitor controller DS1621&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; based on an AT90S2313 and a Dallas DS1621 Digital Thermometer. The temperature is displayed on a dual 7-segment display, and two buttons are used for setting parameters, a high current relay switches the heating element &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.progsoc.uts.edu.au/%7Etimj/temprat/'&gt;&lt;span style='font-family:Verdana'&gt;Temperature controlled based on AT89CX051&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; Atmel 89CX051, LM334Z, LM324, &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.maxim-ic.com/'&gt;&lt;span style='font-family:Verdana'&gt;MAX232 chip&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://hobby_elec.piclist.com/e_psrm.htm'&gt;Ultra sonic range meter using PIC&lt;/a&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.webx.dk/oz2cpu/radios/milliwatt-dk.htm'&gt;Wattmeter Project&lt;/a&gt; Digital Wattmeter Project, PIC16F876 &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.schematicsforfree.com/archive/file/Computer/Microcontrollers/weather%20station.pdf'&gt;&lt;span style='font-family:Verdana'&gt;Weather station&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; 68HC11, a micro-based weather station, &lt;span style='color:blue'&gt;pdf file&lt;/span&gt;   &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;span style='background-color:yellow'&gt;&lt;strong&gt;Microcontroller Applications: Motor control&lt;/strong&gt;&lt;/span&gt; &lt;span style='color:blue'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.orgler.it/sw-step.htm'&gt;68HC11 stepper motor control&lt;/a&gt; PID control with 68HC11, stepper control circuit &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://chaokhun.kmitl.ac.th/%7Ekswichit/2051/stepper/stepper.htm'&gt;&lt;span style='font-family:Verdana'&gt;89C2051 stepper motor interface&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://pokie.dyndns.org/elec.php?sub=alarme'&gt;Alarme automobile&lt;/a&gt; PIC 16F84AP, &lt;span style='color:red'&gt;en Français&lt;/span&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.barello.net/ARC/'&gt;&lt;span style='font-family:Verdana'&gt;AVR Robot Controller&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; The controller is built around the powerful Atmel ATMEGA16 processor with 16kb of memory running at 8 MHz for an 8 mip processing speed&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/bl222_wh84/bl222_wh84/index.html'&gt;Line-following car&lt;/a&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.webelectricmagazine.com/01/2/speed.htm'&gt;Microcontroller based motor speed control&lt;/a&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.oopic.com/servo.htm'&gt;OOPic Servo Motor Controller&lt;/a&gt; A standard Radio Control (RC) Servo is a motorized device that moves its actuator to a position specified by a controlling electronic signal. Inside is a complete servo system including motor, gearbox, feedback device (pot), servo control circuitry, and drive circuit&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://hobby_elec.piclist.com/e_step.htm'&gt;PIC16F84 stepper motor controller&lt;/a&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://james.vroman.com/javbot1a.htm'&gt;PIC16F84 Line Following Robot&lt;/a&gt; a small line following robot designed to follow a black line drawn on a dry erase board. It is designed to follow very tight curves&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://hobby_elec.piclist.com/e_pic6_91.htm'&gt;PIC16F873 DC motor speed controller&lt;/a&gt;, &lt;a target='_blank' href='http://hobby_elec.piclist.com/e_pic6_96.htm'&gt;Program listing for DC motor speed controller&lt;/a&gt;, &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://hobby_elec.piclist.com/e_pic6_951.htm'&gt;&lt;span style='font-family:Verdana'&gt;Software flow chart for DC motor speed controller&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.digitalnemesis.com/ash/projects/picservo/'&gt;&lt;span style='font-family:Verdana'&gt;PIC based serial port servo controller&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.mcmanis.com/chuck/robotics/projects/servo.html'&gt;PIC servo speed controller&lt;/a&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://lichtenberger.s.free.fr/GenPulse.htm'&gt;Pulsgenerator&lt;/a&gt; 16F628, servomotor control &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://pokie.dyndns.org/elec.php?sub=fanctrl'&gt;&lt;span style='font-family:Verdana'&gt;Régulateur de ventilateur de PC&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family:Verdana'&gt; PIC16F84, PWM, &lt;span style='color:red'&gt;en Français&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.mastincrosbie.com/mark/electronics/pic/stepper.html'&gt;Stepper motor driver&lt;/a&gt; PIC 16F84&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana'&gt;&lt;br /&gt;					&lt;a target='_blank' href='http://www.steffenschuette.de/steffenschuette/elektronik/us2bRadar/us2bRadar.htm'&gt;UltraSonic USB Radar&lt;/a&gt; Microchip PIC18F4550, Ultrasonic Range Sensor&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330726511081228200-4665296848291006916?l=circuitplanet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://circuitplanet.blogspot.com/feeds/4665296848291006916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://circuitplanet.blogspot.com/2009/09/microcontroller-projects-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/4665296848291006916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/4665296848291006916'/><link rel='alternate' type='text/html' href='http://circuitplanet.blogspot.com/2009/09/microcontroller-projects-and.html' title='Microcontroller projects and application resources'/><author><name>Arun Kumar</name><uri>https://profiles.google.com/106450967102748060653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-Qvye04VFjcc/AAAAAAAAAAI/AAAAAAAAAlY/LmoYIEg8p2c/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-330726511081228200.post-300468883522318087</id><published>2009-09-20T21:07:00.001+05:30</published><updated>2009-09-20T21:07:48.099+05:30</updated><title type='text'>Infrared circuits’ related resources</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.discovercircuits.com/PDF-FILES/40krvr1.pdf'&gt;40KHz modulated light receiver (PDF)&lt;/a&gt; LF357, photodiode &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.imagineeringezine.com/PDF-FILES/40kvcr.pdf'&gt;40 kHz TV &amp;amp; VCR light source repeater&lt;/a&gt;&lt;br /&gt;				&lt;span style='color:blue'&gt;pdf file&lt;/span&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.gorobotics.net/articles/article.php?id=755227'&gt;Building an infrared remote decoder&lt;/a&gt; PIC12F675 or PIC12F629 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.ziplabel.com/cir/index.html'&gt;Computerized infrared remote project&lt;/a&gt; a very simple device for recording and playing back streams of infrared data, in particuliar the codes transmitted via remote controls, software is supplied to be run in both DOS and Windows, with information on interfacing the CIR into your own C and Visual Basic applications, &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href='http://www.educypedia.be/'&gt;Educypedia&lt;/a&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://jap.hu/electronic/infrared.html'&gt;Infrared circuits for remote control&lt;/a&gt; using a 32-40 kHz modulated square wave for communication &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.mitedu.freeserve.co.uk/Circuits/Interface/candi.htm'&gt;Infrared circuits&lt;/a&gt; infrared circuits &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.boondog.com/tutorials/irled/ir.html'&gt;Infrared emitter &amp;amp; detector&lt;/a&gt; this tutorial presents the infrared (IR) led and phototransistor. This circuit is good for building an encoder for motor speed measurement &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://electronicsworld.tripod.com/audioimages/audiockt3.html'&gt;Infrared head phones&lt;/a&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://jap.hu/electronic/infrared.html'&gt;Infrared circuits for remote control&lt;/a&gt; infrared remote control circuits using a 32-56 kHz modulated square wave for communication &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://jap.hu/electronic/codec.html'&gt;Infra/radio remote control transmitter/receiver&lt;/a&gt; a general purpose remote control project with using programmable PIC microcontrollers &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.geocities.com/SiliconValley/Vista/7055/aug98.htm'&gt;Infrared Remote Control&lt;/a&gt; This circuit will allow you to turn on any piece of equipment that operates on 115 volts ac. The receiver circuit is based on the Radio Shack infrared receiver module, &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://sound.westhost.com/project110.htm'&gt;Infrared Remote Control&lt;/a&gt; Infrared Remote Control, Remote Receiver, Infrared Remote Control Transmitter circuit &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.armory.com/%7Espcecdt/remote/'&gt;Infra-Red remote control systems&lt;/a&gt; A Serial Infrared Remote Controller circuit &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://hobby_elec.piclist.com/e_pyro.htm'&gt;Infrared sensor&lt;/a&gt; pyroelectric infrared sensor circuit&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.lirc.org/receivers.html'&gt;Infrared receiver for the serial port&lt;/a&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.aaroncake.net/circuits/irremote.asp'&gt;InfaRed remote control&lt;/a&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.rentron.com/Infrared_Remote_Control.htm'&gt;InfraRed remote control&lt;/a&gt; a 8-pin PIC12C508 is pre-programmed to generate our 38KHz carrier frequency, schematics &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.mitedu.freeserve.co.uk/Circuits/Interface/irext.htm'&gt;Infrared remote control extender&lt;/a&gt; this circuit is used to relay signals from an Infra Red remote control in one room to an IR controlled appliance in another room&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://web.tiscali.it/minidisc/'&gt;Infrared remote control system for Sony minidisc walkman&lt;/a&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.8085projects.info/files/circuits/infrared_remote.GIF'&gt;Infra Red Switch&lt;/a&gt; universal switch that may be used with any Infra Red remote control that uses wavelengths between 850-950nm &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.zen22142.zen.co.uk/Circuits/Interface/ir_switch.htm'&gt;Infra Red Switch&lt;/a&gt; This is a single channel (on / off) universal switch that may be used with any Infra Red remote control using 36-38kHz. (This is a very common remote handset frequency) Infrared transceiver for the PC, &lt;span style='color:blue'&gt;pdf file&lt;/span&gt;&lt;br /&gt;			&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330726511081228200-300468883522318087?l=circuitplanet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://circuitplanet.blogspot.com/feeds/300468883522318087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://circuitplanet.blogspot.com/2009/09/infrared-circuits-related-resources.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/300468883522318087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/300468883522318087'/><link rel='alternate' type='text/html' href='http://circuitplanet.blogspot.com/2009/09/infrared-circuits-related-resources.html' title='Infrared circuits’ related resources'/><author><name>Arun Kumar</name><uri>https://profiles.google.com/106450967102748060653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-Qvye04VFjcc/AAAAAAAAAAI/AAAAAAAAAlY/LmoYIEg8p2c/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-330726511081228200.post-410587173431294425</id><published>2009-09-20T21:00:00.001+05:30</published><updated>2009-09-20T21:00:04.217+05:30</updated><title type='text'>AVR microcontroller resources</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;span style='background-color:yellow'&gt;&lt;strong&gt;&lt;a name='AVR_Resources'/&gt;AVR Resources&lt;/strong&gt;&lt;/span&gt;  related topics: &lt;a href='http://www.educypedia.be/electronics/circuitsbasicstamp.htm'&gt;Basic stamp circuits&lt;/a&gt;, &lt;a href='http://www.educypedia.be/electronics/circuitsmic.htm'&gt;Microcontroller &amp;amp; PIC circuits&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.xs4all.nl/%7Esbolt/edz_sche.htm'&gt;AT90S2313 microcontroller Robot project&lt;/a&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.atmel.com/products/'&gt;Atmel.com&lt;/a&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.schematicsforfree.com/archive/file/Computer/Microcontrollers/atmel%20instruction%20set.pdf'&gt;Atmel instruction set&lt;/a&gt; Atmel AVR instruction set, &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:blue'&gt;pdf file&lt;/span&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.avr-asm-tutorial.net/gavrasm/index_en.html'&gt;AVR assembler&lt;/a&gt; A command line assembler for all AT90S-, AT90CAN-, ATtiny- und ATmega-Types of microcontrollers of ATMEL, with many extended and new features. Works on DOS, Win32 and Linux(i386) command lines &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.avr-asm-tutorial.net/avr_en/index.html'&gt;AVR assembler tutorial Downloads&lt;/a&gt; Binary calculations in AVR Assembler, Beginners Programming in AVR Assembler, Connecting a keypad to an AVR &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://homepage.ntlworld.com/seanellis/avrrobot.htm'&gt;AVR-based Robot&lt;/a&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.avrbeginners.net/'&gt;AVR beginners.net&lt;/a&gt; AVR Assembler, Converting Numbers (Also asm), AVR Architecture, Interfacing Examples, Software, ATmega8 Dev Board &lt;a target='_blank' href='http://www.avrfreaks.net/modules/FreaksFiles/files/677/AVR_Butterfly.pdf'&gt;AVR Butterfly Circuit&lt;/a&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.siwawi.arubi.uni-kl.de/avr_projects/AVR_Butterfly_Introduction.pdf'&gt;AVR Butterfly Introduction&lt;/a&gt; The AVR Butterfly is designed to demonstrate the benefits and key features of the AVR microcontrollers, &lt;span style='color:blue'&gt;pdf file&lt;/span&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.siwawi.arubi.uni-kl.de/avr_projects/pbfi.pdf'&gt;AVR Butterfly Programming&lt;/a&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.dwelch.com/avr/'&gt;AVR Butterfly Primer&lt;/a&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://expand.xs4all.nl/avr/intro.html'&gt;AVR C tutorial&lt;/a&gt; AVR-Tutorial &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.avrfreaks.net/'&gt;AVR freaks&lt;/a&gt; AVR Projects, AVR Mega32 Student Projects, 360 degree sonar, control dc motor by pwm and pid, USB Prototyping Board, Household TrueRMS Watt Matter, AVR Tools,&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.avrfreaks.net/index.php?module=FreaksArticles&amp;amp;func=viewArticles'&gt;AVRFreaks's documentation&lt;/a&gt; CAN on the AVR, Newbie's Guide To AVR Development, ... &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.nomad.ee/micros/batmon.html'&gt;AVR micro as car battery monitor&lt;/a&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://thedenneys.org/pub/robot/avr/'&gt;AVR Microcontrollers&lt;/a&gt; Linux AVR tools &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.serasidis.gr/'&gt;AVR microcontrollers from Atmel&lt;/a&gt; C language tutorial for AVRs (AVRstudio 4 + AVR-GCC plug-in), 2 channel RF remote control, SMS remote control v2.2, Communication of TRW-24G RF modules with AT90S2313 microcontroller, Acceleration meter for cars, ..., Programable LCD counter with memory backup &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.omegav.ntnu.no/%7Ekarlto/avr/partcomp.html'&gt;AVR Overview&lt;/a&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://ece.nsit.ac.in/website/dvgadre/iucaa/avr_appl.html'&gt;AVR RISC Controller for Cool Projects&lt;/a&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.mcselec.com/index.php?option=com_content&amp;amp;task=category&amp;amp;sectionid=7&amp;amp;id=79&amp;amp;Itemid=57'&gt;BASCOM-AVR&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;BASCOM-AVR application notes, PID motor controller, Sony Remote Control Decoding with BASCOM AVR, LCD display with touchscreen and AVR, Car Windscreen Wiper Control with ATtiny13, Transfer data between MS Excel &amp;amp; MCU, CodeLock AVR 8802, MCS Bootloader, Using MAX1668 with BASCOM-AVR, M8 Bootloader, IR touch panel, Using MCP23016, RPM meter and rotational speed sensor KMI15/1 with AT90S2313&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.schematicsforfree.com/archive/dir/Computer/Microcontrollers'&gt;Build an AVR programmer&lt;/a&gt; if you've wanted to experiment with the Atmel AVR-series microprocessors but needed a cheap way to program them, this project is for you. Using only six ICs, you can start programming and experimenting with the AVR parts, part of &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href='http://www.schematicsforfree.com/archive/dir/'&gt;Schematics for free&lt;/a&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://b.urbani.free.fr/pagebasicavr/basicavr.htm'&gt;Compilateur Basic, BasicAVR, pour les microcontrôleurs ATMEL&lt;/a&gt;&lt;br /&gt;				&lt;span style='color:red'&gt;en Français&lt;/span&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.omegav.ntnu.no/%7Ekarlto/avr/ccomp.html'&gt;Compiler Overview&lt;/a&gt; Overview of the different compilers available for the AVR&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.cip.physik.uni-muenchen.de/%7Ewwieser/'&gt;Home and Project Page of Wolfgang Wieser&lt;/a&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.engr.sjsu.edu/bjfurman/courses/ME106/ME106pdf/intro-atmel.pdf'&gt;Intro to the Atmel ATmega 128 Microcontroller&lt;/a&gt; To introduce students to the Atmel ATmega 128 microcontroller, STK500 and STK501 interface boards, and associated hardware,&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;				&lt;span style='color:blue'&gt;pdf file&lt;/span&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.myplace.nu/avr/'&gt;Jesper's AVR pages&lt;/a&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.geocities.com/digitan000/Hardware/3/e3_page.html'&gt;LED Patterns with AVR micro&lt;/a&gt; This AVR Startup Project will create a rolling display pattern using up to 8 Light Emiting Diodes. But more importantly, this page demonstrates how to set up and run a basic program using the power ATMEL AVR development kit &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://paul.graysonfamily.org/thoughts/avrlinux/'&gt;Linux Atmel AVR Tutorial&lt;/a&gt; Specifically, on this page you'll find instructions for assembling and programming the AVR ATmega32 using a AVR-P40-USB prototyping board &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://eddiem.com/projects/Pir-remote/pir-remote.htm'&gt;Micro based PIR to IR remote converter&lt;/a&gt; An Atmel AT90S1200 controlling a panasonic VCR, panasonic remote control system &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://home.arcor.de/0xdeadbeef/obsolete_avr_stuff.htm'&gt;Obsolete AVR Stuff&lt;/a&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.salvitti.it/geo/sequencer/dev_tools/tutorial/pony_prog.html'&gt;PonyProg Tutorial&lt;/a&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://supp.iar.com/FilesPublic/SUPPORT/000402/AN-AVR-011.pdf'&gt;Radio controlled clock (DCF77) using AVR&lt;/a&gt; The signal received by a small DCF antenna has to be decoded to get the actual time and date. This information is to be displayed on a LCD with a HD44780 compatible controller, &lt;span style='color:blue'&gt;pdf file&lt;/span&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.xs4all.nl/%7Esbolt/e-index.html'&gt;SP12 and SP89&lt;/a&gt; Programmer packages for uploading code from a PC to one of the AVR microcontrollers. Almost no hardware is required; for many projects, all you need is a cable! &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://tuxgraphics.org/'&gt;Tuxgraphics.org&lt;/a&gt; AVR Microcontrollers and general electronics projects &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://winavr.sourceforge.net/'&gt;WinAVR&lt;/a&gt; WinAVRTM is a suite of executable, open source software development tools for the Atmel AVR series of RISC microprocessors hosted on the Windows platform. It includes the GNU GCC compiler for C and C++ &lt;br /&gt;&lt;/p&gt;&lt;p&gt;  &lt;span style='background-color:yellow'&gt;&lt;strong&gt;&lt;a name='ATMEL_programmer'/&gt;ATMEL programmer&lt;/strong&gt;&lt;/span&gt;  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.avr-asm-tutorial.net/gavrasm/index_en.html'&gt;AVR assembler&lt;/a&gt; A command line assembler for all AT90S-, AT90CAN-, ATtiny- und ATmega-Types of microcontrollers of ATMEL, with many extended and new features. Works on DOS, Win32 and Linux(i386) command lines&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.nomad.ee/micros/avrpgm.html'&gt;Atmel AVR/programmer&lt;/a&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://b.urbani.free.fr/pagebasicavr/basicavr.htm'&gt;Compilateur Basic, BasicAVR, pour les microcontrôleurs ATMEL&lt;/a&gt;&lt;br /&gt;				&lt;span style='color:red'&gt;en Français&lt;/span&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.lancos.com/prog.html'&gt;PonyProg&lt;/a&gt; serial device programmer, PonyProg is a serial device programmer software with a user friendly GUI framework available for Windows95/98/ME/NT/2000/XP and Intel Linux. Its purpose is reading and writing every serial device. At the moment it supports I²C Bus, Microwire, SPI eeprom, the Atmel AVR and Microchip PIC micro &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://www.xs4all.nl/%7Esbolt/e-index.html'&gt;SP12 and SP89&lt;/a&gt; Programmer packages for uploading code from a PC to one of the AVR microcontrollers. Almost no hardware is required; for many projects, all you need is a cable! &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a target='_blank' href='http://winavr.sourceforge.net/'&gt;WinAVR&lt;/a&gt; WinAVRTM is a suite of executable, open source software development tools for the Atmel AVR series of RISC microprocessors hosted on the Windows platform. It includes the GNU GCC compiler for C and C++&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;				&lt;a target='_blank' href='http://www.myplace.nu/avr/yaap/index.htm'&gt;Yaap&lt;/a&gt; A Windows AVR programmer program for programming programmable AVR's&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330726511081228200-410587173431294425?l=circuitplanet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://circuitplanet.blogspot.com/feeds/410587173431294425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://circuitplanet.blogspot.com/2009/09/avr-microcontroller-resources.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/410587173431294425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/330726511081228200/posts/default/410587173431294425'/><link rel='alternate' type='text/html' href='http://circuitplanet.blogspot.com/2009/09/avr-microcontroller-resources.html' title='AVR microcontroller resources'/><author><name>Arun Kumar</name><uri>https://profiles.google.com/106450967102748060653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-Qvye04VFjcc/AAAAAAAAAAI/AAAAAAAAAlY/LmoYIEg8p2c/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-330726511081228200.post-6768811156327919241</id><published>2009-09-19T09:57:00.001+05:30</published><updated>2009-09-19T09:57:43.695+05:30</updated><title type='text'></title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;span style='font-size:18pt'&gt;&lt;strong&gt;PASSWORD BASED ELECTRICAL APPLIANCES CONTROL SYSTEM USING 89C51 MICRCONTROLLER&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;ABSTRACT&lt;span style='font-size:18pt'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;Security is prime concern in our day-to-day life. Every one wants to be as much as secure as to be possible. An access control systems forms a vital link in a security chain. The micro controller based digital lock presented here is an access control system that allows only authorized persons to access a restricted area. This system is best suitable for corporate offices, ATMs and home security. &lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;The system comprises a small electronic unit with a numeric keypad, which is fixed out side the entry door to control a solenoid-operated lock with the help of a stepper motor. When an authorized person enters predetermined user ID and password via the keypad, the stepper motor is operated for a limited time to unlatch the solenoid-operated lock so the door can be open. At the end of preset delay, the stepper motor is operated in reverse direction and the door gets locked again. &lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;When the code has been incorrectly entered three times in a row, the code lock will switch to block mode. This function thwarts any attempt by 'hackers' to quickly try a large number of codes in a sequence. If the user forgets his password, the code lock can be accessed by a unique 10 digit administrator password. The secret code can be changed any time after entering the current code (Master code).&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;A buzzer is provided for audio acknowledgment of the key impression. Whenever a key is pressed on the numeric key pad, the system acknowledges the impression by a short beep sound. This buzzer is driven by an NPN transistor.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;This project uses regulated 5V, 500mA power supply. 7805 three terminal voltage regulator is used for voltage regulation. Bridge type full wave rectifier is used to rectify the ac out put of secondary of 230/12V step down transformer.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;INTRODUCTION&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;em&gt;An embedded system is a combination of software and hardware to perform a dedicated task.&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Some of the main devices used in embedded products are Microprocessors and Microcontrollers.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Microprocessors are commonly referred to as general purpose processors as they simply accept the inputs, process it and give the output. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;In contrast, a microcontroller not only accepts the data as inputs but also manipulates it, interfaces the data with various devices, controls the data and thus finally gives the result.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;The Project Embedded Password based Electrical Appliances control system using 89C51 Microcontroller is an excellent project that provides security in every way. This project is very useful in places where security is must.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;BLOCK DIAGRAM &lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: center'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: center'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: center'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: center'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;&lt;strong&gt;BLOCK DESCRIPTION&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;POWER SUPPLY:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The input to the circuit is applied from the regulated power supply. The a.c. input i.e., 230V from the mains supply is step down by the transformer to 12V and is fed to a rectifier. The output obtained from the rectifier is a pulsating d.c voltage. So in order to get a pure d.c voltage, the output voltage from the rectifier is fed to a filter to remove any a.c components present even after rectification. Now, this voltage is given to a voltage regulator to obtain a pure constant dc voltage.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify; margin-left: 108pt'&gt;&lt;strong&gt;Fig: Power supply&lt;/strong&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Transformer:&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Usually, DC voltages are required to operate various electronic equipment and these voltages are 5V, 9V or 12V. But these voltages cannot be obtained directly. Thus the a.c input available at the mains supply i.e., 230V is to be brought down to the required voltage level. This is done by a transformer. Thus, a step down transformer is employed to decrease the voltage to a required level.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Rectifier:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The output from the transformer is fed to the rectifier. It converts A.C. into pulsating D.C. The rectifier may be a half wave or a full wave rectifier. In this project, a bridge rectifier is used because of its merits like good stability and full wave rectification.&lt;strong&gt;&lt;br /&gt;					&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Filter:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Capacitive filter is used in this project. It removes the ripples from the output of rectifier and smoothens the D.C. Output   received from this filter is constant until the mains voltage and load is maintained constant. However, if either of the two is varied, D.C. voltage received at this point changes. Therefore a regulator is applied at the output stage.&lt;strong&gt;&lt;br /&gt;					&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Voltage regulator:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;As the name itself implies, it regulates the input applied to it. A voltage regulator is an electrical regulator designed to automatically maintain a constant voltage level. In this project, power supply of 5V and 12V are required. In order to obtain these voltage levels, 7805 and 7812 voltage regulators are to be used. The first number 78 represents positive supply and the numbers 05, 12 represent the required output voltage levels.&lt;strong&gt;&lt;br /&gt;					&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;MICROCONTROLLERS:&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-size:12pt'&gt;Microprocessors and microcontrollers are widely used in embedded systems products. &lt;em&gt;Microcontroller is a programmable device&lt;/em&gt;. A microcontroller has a CPU in addition to a fixed amount of RAM, ROM, I/O ports and a timer embedded all on a single chip. The fixed amount of on-chip ROM, RAM and number of I/O ports in microcontrollers makes them ideal for many applications in which cost and space are critical.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-size:12pt'&gt;The Intel 8051 is a Harvard architecture, single chip microcontroller (µC) which was developed by Intel in 1980 for use in embedded systems. It was popular in the 1980s and early 1990s, but today it has largely been superseded by a vast range of enhanced devices with 8051-compatible processor cores that are manufactured by more than 20 independent manufacturers including Atmel, Infineon Technologies and Maxim Integrated Products.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-size:12pt'&gt;8051 is an 8-bit processor, meaning that the CPU can work on only 8 bits of data at a time. Data larger than 8 bits has to be broken into 8-bit pieces to be processed by the CPU. 8051 is available in different memory types such as UV-EPROM, Flash and NV-RAM.&lt;/span&gt;&lt;strong&gt;&lt;br /&gt;				&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The present project is implemented on Keil Uvision. In order to program the device, Proload tool has been used to burn the program onto the microcontroller.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The features, pin description of the microcontroller and the software tools used are discussed in the following sections.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman'&gt;&lt;span style='font-size:10pt'&gt;&lt;strong&gt;FEATURES OF AT89C51:&lt;/strong&gt;&lt;/span&gt;&lt;span style='font-size:12pt'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;4K Bytes of Re-programmable Flash Memory.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;RAM is 128 bytes.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;2.7V to 6V Operating Range.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Fully Static Operation: 0 Hz to 24 MHz.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Two-level Program Memory Lock.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;128 x 8-bit Internal RAM.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;32 Programmable I/O Lines.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Two 16-bit Timer/Counters.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Six Interrupt Sources.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Programmable Serial UART Channel.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Low-power Idle and Power-down Modes.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Description:&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-size:12pt'&gt;The AT89C51 is a low-voltage, high-performance CMOS 8-bit microcomputer with 4K bytes of Flash programmable memory. The device is manufactured using Atmel's high-density nonvolatile memory technology and is compatible with the industry-standard MCS-51 instruction set. By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel AT89C51 is a powerful microcomputer, which provides a highly flexible and cost-effective solution to many embedded control applications.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-size:12pt'&gt;In addition, the AT89C51 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port and interrupt system to continue functioning. The power-down mode saves the RAM contents but freezes the oscillator disabling all other chip functions until the next hardware reset.&lt;/span&gt;&lt;strong&gt;&lt;br /&gt;				&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;            &lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;                       &lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify; margin-left: 108pt'&gt;&lt;strong&gt;Fig: Pin diagram&lt;/strong&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p style='text-align: justify'&gt;        &lt;strong&gt;            Fig: Block diagram&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;PIN DESCRIPTION:&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Vcc&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Pin 40 provides supply voltage to the chip. The voltage source is +5V.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;GND&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Pin 20 is the ground.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;XTAL1 and XTAL2&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;XTAL1 and XTAL2 are the input and output, respectively, of an inverting amplifier that can be configured for use as an on-chip oscillator, as shown in Figure 11. Either a quartz crystal or ceramic resonator may be used. To drive the device from an external clock source, XTAL2 should be left unconnected while XTAL1 is driven, as shown in the below figure. There are no requirements on the duty cycle of the external clock signal, since the input to the internal clocking circuitry is through a divide-by-two flip-flop, but minimum and maximum voltage high and low time specifications must be observed.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: center'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;&lt;br /&gt;					&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 108pt'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt; Fig:  Oscillator Connections&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 72pt'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;C1, C2 = 30 pF ± 10 pF for Crystals&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt; = 40 pF ± 10 pF for Ceramic Resonators&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;        Fig: External Clock Drive Configuration&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;RESET&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Pin9 is the reset pin. It is an input and is active high. Upon applying a high pulse to this pin, the microcontroller will reset and terminate all the activities. This is often referred to as a power-on reset.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;EA (External access)&lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Pin 31 is EA. It is an active low signal. It is an input pin and must be connected to either Vcc or GND but it cannot be left unconnected.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt; The 8051 family members all come with on-chip ROM to store programs. In such cases, the EA pin is connected to Vcc. If the code is stored on an external ROM, the EA pin must be connected to GND to indicate that the code is stored externally.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;PSEN (Program store enable)&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;This is an output pin. &lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;ALE (Address latch enable)&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;This is an output pin and is active high.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Ports 0, 1, 2 and 3&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The four ports P0, P1, P2 and P3 each use 8 pins, making them 8-bit ports.  All the ports upon RESET are configured as input, since P0-P3 have value FFH on them. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Port 0(P0)&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Port 0 is also designated as AD0-AD7, allowing it to be used for both address and data. ALE indicates if P0 has address or data. When ALE=0, it provides data D0-D7, but when ALE=1, it has address A0-A7. Therefore, ALE is used for demultiplexing address and data with the help of an internal latch.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt; When there is no external memory connection, the pins of P0 must be connected to a 10K-ohm pull-up resistor. This is due to the fact that P0 is an open drain. With external pull-up resistors connected to P0, it can be used as a simple I/O, just like P1 and P2. But the ports P1, P2 and P3 do not need any pull-up resistors since they already have pull-up resistors internally. Upon reset, ports P1, P2 and P3 are configured as input ports.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Port 1 and Port 2&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt; With no external memory connection, both P1 and P2 are used as simple I/O. With external memory connections, port 2 must be used along with P0 to provide the 16-bit address for the external memory. Port 2 is designated as A8-A15 indicating its dual function. While P0 provides the lower 8 bits via A0-A7, it is the job of P2 to provide bits A8-A15 of the address.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Port 3&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Port 3 occupies a total of 8 pins, pins 10 through 17. It can be used as input or output. P3 does not need any pull-up resistors, the same as port 1 and port 2. Port 3 has an additional function of providing some extremely important signals such as interrupts. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;        &lt;strong&gt;Table: Port 3 Alternate Functions&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Machine cycle for the 8051&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The CPU takes a certain number of clock cycles to execute an instruction. In the 8051 family, these clock cycles are referred to as machine cycles. The length of the machine cycle depends on the frequency of the crystal oscillator. The crystal oscillator, along with on-chip circuitry, provides the clock source for the 8051 CPU. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The frequency can vary from 4 MHz to 30 MHz, depending upon the chip rating and manufacturer. But the exact frequency of 11.0592 MHz crystal oscillator is used to make the 8051 based system compatible with the serial port of the IBM PC.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;In the original version of 8051, one machine cycle lasts 12 oscillator periods. Therefore, to calculate the machine cycle for the 8051, the calculation is made as 1/12 of the crystal frequency and its inverse is taken.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The assembly language program is written and this program has to be dumped into the microcontroller for the hardware kit to function according to the software. The program dumped in the microcontroller is stored in the Flash memory in the microcontroller. Before that, this Flash memory has to be programmed and is discussed in the next section&lt;strong&gt;.&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;PROGRAMMING THE FLASH:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The AT89C51 is normally shipped with the on-chip Flash memory array in the erased state (that is, contents = FFH) and ready to be programmed. The programming interface accepts either a high-voltage (12-volt) or a low-voltage (VCC) program enable signal. The low-voltage programming mode provides a convenient way to program the AT89C51 inside the user's system, while the high-voltage programming mode is compatible with conventional third party Flash or EPROM programmers. The AT89C51 is shipped with either the high-voltage or low-voltage programming mode enabled. The respective top-side marking and device signature codes are listed in the following table.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;&lt;br /&gt;					&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The AT89C51 code memory array is programmed byte-byte in either programming mode. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;em&gt;To program any nonblank&lt;/em&gt;&lt;br /&gt;					&lt;em&gt;byte in the on-chip Flash Memory, the entire memory&lt;/em&gt;&lt;br /&gt;					&lt;em&gt;must be erased using the Chip Erase Mode.&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Programming Algorithm: &lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Before programming the AT89C51, the address, data and control signals should be set up according to the Flash programming mode table. To program the AT89C51, the following steps should be considered:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;1. Input the desired memory location on the address lines.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;2. Input the appropriate data byte on the data lines.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;3. Activate the correct combination of control signals.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;4. Raise EA/VPP to 12V for the high-voltage programming mode.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;5. Pulse ALE/PROG once to program a byte in the Flash array or the lock bits. The byte-write cycle is self-timed and typically takes no more than 1.5 ms.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Repeat steps 1 through 5, changing the address and data for the entire array or until the end of the object file is reached.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Data Polling: &lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The AT89C51 features Data Polling to indicate the end of a write cycle. During a write cycle, an attempted read of the last byte written will result in the complement of the written datum on PO.7. Once the write cycle has been completed, true data are valid on all outputs, and the next cycle may begin. Data Polling may begin any time after a write cycle has been initiated.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Ready/Busy: &lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The progress of byte programming can also be monitored by the RDY/BSY output signal. P3.4 is pulled low after ALE goes high during programming to indicate BUSY. P3.4 is pulled high again when programming is done to indicate READY.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Chip Erase: &lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The entire Flash array is erased electrically by using the proper combination of control signals and by holding ALE/PROG low for 10 ms. The code array is written with all "1"s. The chip erase operation must be executed before the code memory can be re programmed.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Reading the Signature Bytes:&lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The signature bytes are read by the same procedure as a normal verification of locations 030H, 031H, and 032H, except that P3.6 and P3.7 must be pulled to a logic low. The values returned are as follows.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;(030H) = 1EH indicates manufactured by Atmel&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;(031H) = 51H indicates 89C51&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;(032H) = FFH indicates 12V programming&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;(032H) = 05H indicates 5V programming&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Programming Interface:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Every code byte in the Flash array can be written and the entire array can be erased by using the appropriate combination of control signals. The write operation cycle is self timed and once initiated, will automatically time itself to completion. All major programming vendors offer worldwide support for the Atmel microcontroller series. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 72pt'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Fig: Flash Programming Modes&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 108pt'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Fig: Programming the Flash&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Fig: Verifying the Flash&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;EEPROM:&lt;strong&gt;&lt;br /&gt;					&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;In the design of all microprocessors-based systems, semiconductor memories are used as primary storage for code and data. Semiconductor memories are connected directly to the CPU and they are the memory that the CPU first asks for information (code and data). For this reason, semiconductor memories are sometimes referred to as primary memory. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Important Terminology common to all Semiconductor Memories:&lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Memory capacity:&lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The number of bits that a semiconductor memory chip can store is called chip capacity. It can be in units of Kilobits, Megabits and so on. This must be distinguished from the storage capacity of computer system. While the memory capacity of a memory IC chip is always given in bits, the memory capacity of a computer system is given in bytes.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Memory organization:&lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Memory chips are organized into a number of locations within the IC. Each location can hold 1 bit, 4 bits, 8 bits or even 16 bits, depending on how it is designed internally. The number of bits that each location within the memory chip can hold is always equal to the number of data pins on the chip. i.e., the total number of bits that a memory chip can store is equal to the number of locations times the number of data bits per location.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Speed:&lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;One of the most important characteristics of a memory chip is the speed at which its data can be accessed. The speed of the memory chip is commonly referred to as its access time. The access time of memory chip varies from a few nanoseconds to hundreds of nanoseconds, depending on the IC technology used in the design and fabrication process.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The different types of memories are RAM, ROM, EPROM and EEPROM.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;RAM and ROM are inbuilt in the microprocessor.This project requires the data such as the user identification number and password to be stored permanently. Thus this data has to be stored in such a location where it cannot be erased when power fails and also the data should be allowed to make changes in it without the system interface i.e., there should be a provision in such a way that the data should be accessed (or modified) while it is in system board but not external erasure and programming. The flash memory  inbuilt in the microcontroller can erase the entire contents in less than a second and the erasure method is electrical. But the major drawback of Flash memory is that when flash memory's contents are erased, the entire device will be erased but not a desired section or byte.For this purpose, we prefer EEPROM in our project.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;EEPROM (Electrically Erasable Programmable Read only memory)&lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;EEPROM has several advantages over other memory devices, such as the fact that its method of erasure is electrical and therefore instant. In addition, in EEPROM one can select which byte to be erased, in contrast to flash , in which the entire contents of ROM are erased. The main advantage of EEPROM is that one can program and erase its contents while it is in system board. It does not require physical removal of the memory chip from its socket. In general, the cost per bit for EEPROM is much higher when compared to other devices.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The EEPROM used in this project is 24C04 type.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Features of 24C04 EEPROM:&lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;1 million erase/write cycles with 40 years data retention.&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;Single supply voltage:&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style='text-align: justify'&gt;3v to 5.5v for st24x04 versions.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify; margin-left: 18pt'&gt;2.5v to 5.5v for st25x04 versions.&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;Hardware write control versions:&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style='text-align: justify'&gt;st24w04 and st25w04.&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;Programmable write protection.&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;Two wire serial interface, fully i2c bus compatible.&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;Byte and multibyte write (up to 4 bytes).&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;Page write (up to 8 bytes).&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;Byte, random and sequential read modes&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;Self timed programming cycle&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;Automatic address incrementing&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;Enhanced ESD/Latch up performances&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;DIP Pin Connections                  SO Pin Connection&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;                   Fig: Signal Names&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;&lt;br /&gt;				&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;                     Fig: Logic Diagram&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;DESCRIPTION &lt;/strong&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p style='text-align: justify'&gt;The 24C04 is a 4 Kbit electrically erasable programmable memory (EEPROM), organized as 2 blocks of 256 x8 bits. They are manufactured in ST Microelectronics' Hi-Endurance Advanced CMOS technology which guarantees an endurance of one million erase/write cycles with a data retention of 40 years. Both Plastic Dual-in-Line and Plastic Small Outline packages are available. The memories are compatible with the I2C standard, two wire serial interface which uses a bi-directional data bus and serial clock. The memories carry a built-in 4 bit, unique device identification code (1010) corresponding to the I2C bus definition. This is used together with 2 chip enable inputs (E2, E1) so that up to 4 x 4K devices may be attached to the I2C bus and selected individually. The memories behave as a slave device in the I2C protocol with all memory operations synchronized by the serial clock. Read and write operations are initiated by a START condition generated by the bus master. The START condition is followed by a stream of 7 bits (identification code 1010), plus one read/write bit and terminated by an acknowledge bit.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;                Table: Device Select Mode&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;&lt;br /&gt;					&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify; margin-left: 108pt'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Table: Operating Modes&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;When writing data to the memory it responds to the 8 bits received by asserting an acknowledge bit during the 9th bit time. When data is read by the bus master, it acknowledges the receipt of the data bytes in the same way. Data transfers are terminated with a STOP condition.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Power On Reset: VCC lock out write protect. &lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;In order to prevent data corruption and inadvertent write operations during power up, a Power On Reset (POR) circuit is implemented. Until the VCC voltage has reached the POR threshold value, the internal reset is active, all operations are disabled and the device will not respond to any command. In the same way, when VCC drops down from the operating voltage to below the POR threshold value, all operations are disabled and the device will not respond to any command. A stable VCC must be applied before applying any logic signal.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;SIGNAL DESCRIPTIONS&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Serial Clock (SCL).&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;&lt;br /&gt;				&lt;/strong&gt;The SCL input pin is used to synchronize all data in and out of the memory. A resistor can be connected from the SCL line to VCC to act as a pull up.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Serial Data (SDA).&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;&lt;br /&gt;				&lt;/strong&gt;The SDA pin is bi-directional and is used to transfer data in or out of the memory. It is an open drain output that may be wire-OR'ed with other open drain or open collector signals on the bus. A resistor must be connected from the SDA bus line to VCC to act as pull up.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Chip Enable (E1 - E2). &lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;These chip enable inputs are used to set the 2 least significant bits (b2, b3) of the 7 bit device select code. These inputs may be driven dynamically or tied to VCC or VSS to establish the device select code.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Protect Enable (PRE). &lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;The PRE input pin, in addition to the status of the Block Address Pointer bit (b2, location 1FFh as in below figure), sets the PRE write protection active.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p style='text-align: justify'&gt;    &lt;strong&gt;Fig: Memory Protection&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Mode (MODE). &lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;The MODE input is available on pin 7 and may be driven dynamically. It must be at VIL or VIH for the Byte Write mode, VIH for Multibyte Write mode or VIL for Page Write mode. When unconnected, the MODE input is internally read as VIH (Multibyte Write mode).&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Write Control (WC). &lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;An hardware Write Control feature (WC) is offered only for ST24W04 and ST25W04 versions on pin 7. This feature is useful to protect the contents of the memory from any erroneous erase/write cycle. The Write Control signal is used to enable (WC = VIH) or disable (WC =VIL) the internal write protection. When unconnected, the WC input is internally read as VIL and the memory area is not write protected&lt;span style='font-family:Arial'&gt;.&lt;/span&gt;&lt;strong&gt;&lt;br /&gt;				&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;DEVICE OPERATION&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;I2C Bus Background&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;The ST24/25x04 supports the I2C protocol. This protocol defines any device that sends data onto the bus as a transmitter and any device that reads the data as a receiver. The device that controls the data transfer is known as the master and the other as the slave. The master will always initiate a data transfer and will provide the serial clock for synchronization.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;The ST24/25x04 is always slave devices in all communications.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p style='text-align: justify'&gt;                &lt;strong&gt;Fig: I2C Protocol&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Start Condition. &lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;START is identified by a high to low transition of the SDA line while the clock SCL is stable in the high state. A START condition must precede any command for data transfer. Except during a programming cycle, the ST24/25x04 continuously monitor the SDA and SCL signals for a START condition and will not respond unless one is given.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Stop Condition. &lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;STOP is identified by a low to high transition of the SDA line while the clock SCL is stable in the high state. A STOP condition terminates communication between the ST24/25x04 and the bus master. A STOP condition at the end of a Read command, after and only after a No Acknowledge, forces the standby state. A STOP condition at the end of a Write command triggers the internal EEPROM write cycle.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Acknowledge Bit (ACK).&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;An acknowledge signal is used to indicate a successful data transfer. The bus transmitter, either master or slave, will release the SDA bus after sending 8 bits of data. During the 9th clock pulse period the receiver pulls the SDA bus low to acknowledge the receipt of the 8 bits of data.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Data Input.&lt;/strong&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p style='text-align: justify'&gt;During data input the ST24/25x04 sample the SDA bus signal on the rising edge of the clock SCL. Note that for correct device operation the SDA signal must be stable during the clock low to high transition and the data must change ONLY when the SCL line is low.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Memory Addressing.&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;&lt;br /&gt;				&lt;/strong&gt;To start communication between the bus master and the slave ST24/25x04, the master must initiate a START condition. Following this, the master sends onto the SDA bus line 8 bits (MSB first) corresponding to the device select code (7 bits) and a READ or WRITE bit. The 4 most significant bits of the device select code are the device type identifier, corresponding to the I2C bus definition. For these memories the 4 bits are fixed as 1010b. The following 2 bits identify the specific memory on the bus. They are matched to the chip enable signals E2, E1. Thus up to 4 x 4K memories can be connected on the same bus giving a memory capacity total of 16 Kilobits. After a START condition any memory on the bus will identify the device code and compare the following 2 bits to its chip enable inputs E2, E1.  The 7th bit sent is the block number (one block = 256 bytes). The 8th bit sent is the read or write bit (RW), this bit is set to '1' for read and '0' for write operations. If a match is found, the corresponding memory will acknowledge the identification on the SDA bus during the 9th bit time.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p style='text-align: justify'&gt;            &lt;strong&gt;    Fig: AC Waveforms&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Write Operations&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;The Multibyte Write mode (only available on the ST24/25C04 versions) is selected when the MODE pin is at VIH and the Page Write mode when MODE pin is at VIL. The MODE pin may be driven dynamically with CMOS input levels. Following a START condition the master sends a device select code with the RW bit reset to '0'. The memory acknowledges this and waits for a byte address. The byte address of 8 bits provides access to one block of 256 bytes of the memory. After receipt of the byte address the device again responds with an acknowledge. For the ST24/25W04 versions, any write command with WC = 1 will not modify the memory content.&lt;strong&gt;&lt;br /&gt;				&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Byte Write. &lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;In the Byte Write mode the master sends one data byte, which is acknowledged by the memory. The master then terminates the transfer by generating a STOP condition. The Write mode is independent of the state of the MODE pin which could be left floating if only this mode was to be used. However it is not a recommended operating mode, as this pin has to be connected to either VIH or VIL, to minimize the stand-by current. &lt;strong&gt;&lt;br /&gt;				&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Multibyte Write. &lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;For the Multibyte Write mode, the MODE pin must be at VIH. The Multibyte Write mode can be started from any address in the memory. The master sends from one up to 4 bytes of data, which are each acknowledged by the memory. The transfer is terminated by the master generating a STOP condition. The duration of the write cycle is Tw = 10ms maximum except when bytes are accessed on 2 rows (that is have different values for the 6 most significant address bits A7-A2), the programming time is then doubled to a maximum of 20ms. Writing more than 4 bytes in the Multibyte Write mode may modify data bytes in an adjacent row (one row is 8 bytes long). However, the Multibyte Write can properly write up to 8 consecutive bytes as soon as the first address of these 8 bytes is the first address of the row, the 7 following bytes being written in the 7 following bytes of this same row.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Page Write.&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;For the Page Write mode, the MODE pin must be at VIL. The Page Write mode allows up to 8 bytes to be written in a single write cycle, provided that they are all located in the same 'row' in the memory: that is the 5 most significant memory address bits (A7-A3) are the same inside one block. The master sends from one up to 8 bytes of data, which are each acknowledged by the memory. After each byte is transferred, the internal byte address counter (3 least significant bits only) is incremented. The transfer is terminated by the master generating a STOP condition. Care must be taken to avoid address counter 'roll-over' which could result in data being overwritten. Note that, for any write mode, the generation by the master of the STOP condition starts the internal memory program cycle. All inputs are disabled until the completion of this cycle and the memory will not respond to any request.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Minimizing System Delays by Polling on ACK.&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;During the internal write cycle, the memory disconnects itself from the bus in order to copy the data from the internal latches to the memory cells. The maximum value of the write time (Tw) is given from the AC Characteristics, since the typical time is shorter, the time seen by the system may be reduced by an ACK polling sequence issued by the master.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;    Fig: Write Cycle Polling using ACK&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;Data in the upper block of 256 bytes of the memory may be write protected. The memory is write protected between a boundary address and the top of memory (address 1FFh) when the PRE input pin is taken high and when the Protect Flag (bit b2 in location 1FFh) is set to '0'. The boundary address is user defined by writing it in the Block Address Pointer. The Block Address Pointer is an 8 bit EEPROM register located at the address 1FFh. It is composed by 5 MSBs Address Pointer, which defines the bottom boundary address and 3 LSBs which must be programmed at '0'. This Address Pointer can therefore address a boundary in steps of 8 bytes.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;The sequence to use the Write Protected feature is:&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;– write the data to be protected into the top of the memory, up to, but not including, location 1FFh;&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;– set the protection by writing the correct bottom boundary address in the Address Pointer (5 MSBs of location 1FFh) with bit b2 (Protect flag) set to '0'. Note that for a correct functionality of the memory, all the 3 LSBs of the Block Address Pointer must also be programmed at '0'. The area will now be protected when the PRE input pin is taken High. While the PRE input pin is read at '0' by the memory, the location 1FFh can be used as a normal EEPROM byte. &lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify; margin-left: 72pt'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Fig: Write Modes Sequence&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Read Operations&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;Read operations are independent of the state of the MODE pin. On delivery, the memory content is set at all "1's" (or FFh).&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Current Address Read. &lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;The memory has an internal byte address counter. Each time a byte is read, this counter is incremented. For the Current Address Read mode, following a START condition, the master sends a memory address with the RW bit set to '1'. The memory acknowledges this and outputs the byte addressed by the internal byte address counter. This counter is then incremented. The master does NOT acknowledge the byte output, but terminates the transfer with a STOP condition.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Random Address Read.&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;&lt;br /&gt;				&lt;/strong&gt;A dummy write is performed to load the address into the address counter. This is followed by another START condition from the master and the byte address is repeated with the RW bit set to '1'. The memory acknowledges this and outputs the byte addressed. The master has to NOT acknowledge the byte output, but terminates the transfer with a STOP condition.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Sequential Read.&lt;/strong&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;&lt;br /&gt;				&lt;/strong&gt;This mode can be initiated with either a Current Address Read or a Random Address Read. However, in this case the master DOES acknowledge the data byte output and the memory continues to output the next byte in sequence. To terminate the stream of bytes, the master must NOT acknowledge the last byte output, but MUST generate a STOP condition. The output data is from consecutive byte addresses, with the internal byte address counter automatically incremented after each byte output. After a count of the last memory address, the address counter will 'roll- over' and the memory will continue to output data.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;Acknowledge in Read Mode.&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;&lt;br /&gt;				&lt;/strong&gt;In all read modes the ST24/25x04 wait for an acknowledge during the 9th bit time. If the master does not pull the SDA line low during this time, the ST24/25x04 terminate the data transfer and switches to a standby state.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Arial'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify; margin-left: 72pt'&gt;&lt;span style='font-family:Times New Roman'&gt;&lt;strong&gt;&lt;span style='font-size:12pt'&gt;Fig: Read Modes Sequence&lt;/span&gt;&lt;span style='font-size:10pt'&gt;KEYPAD:&lt;/span&gt;&lt;span style='font-size:12pt'&gt;&lt;br /&gt;						&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;Keypads and LCDs are the most widely used input/output devices of the 8051 and a basic understanding of them is essential. The keypads are mainly three types:&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;4*3 keypad&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;4*4 keypad&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;4*8 keypad.&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;The keypad used in this project is 4*3 keypad.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt;				&lt;strong&gt;Calculator keypad                Telephone keypad&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;INTERFACING THE KEYPAD TO 8051&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;At the lowest level, keyboards are organized in a matrix of rows and columns. The CPU accesses both rows and columns through ports. Therefore, with two 8-bit ports, an 8*8 matrix of keys can be connected to a microprocessor. When a key is pressed, a row and a column make a contact, otherwise there is no connection between rows and columns. A single microcontroller (consisting of a microprocessor, RAM, EPROM and several ports all on a single chip) takes care of hardware and software interfacing of the keypad. In such systems, it is the function of programs stored in EPROM of the microcontroller to scan the keys continuously, identify which one has been activated and present it to the motherboard.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;      Fig: 4*3 Matrix Keypad Connections to Ports&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Scanning and identifying the key:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The rows are connected to an output port and the columns are connected to an input port. If no key has been pressed, reading the input port will yield 1s for all columns since they are all connected to high (Vcc). If all the rows are grounded and a key is pressed, one of the columns will have 0 since the key pressed provides the path to ground. It is the function of the microcontroller to scan the keypad continuously to detect and identify the key pressed.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Grounding rows and reading the columns:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;To detect a pressed key, the microcontroller grounds all rows by providing 0 (zero) to the output latch, then it reads the columns. If the data read from the columns is D2-D0 =111, no key has been pressed and the process continues until a key press is detected. However, if one of the column bits has a zero, this means that a key press has occurred i.e., for example, if D2-D0=110, this means that a key in the D0 column has been pressed. After a key press is detected, the microcontroller will go through a process of identifying the key. Starting with the top row, the microcontroller grounds it by providing a low to row D0 only and then it reads the columns. If the data read is all 1s, no key in that row is activated and the process is moved to the next row. It grounds the next row, reads the columns and checks for any zero. This process continues until the row is identified. After identification of the row in which the key has been pressed, the next task is to find out which column the pressed key belongs to. Now this will be easy since the microcontroller knows at any time which row and column are being accessed.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;TRANSISTOR DRIVER CIRCUIT:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Digital systems and microcontroller pins lack sufficient current to drive the circuits like buzzer circuits and relay circuits. While these circuits need around 10milli amps to be energized, the microcontroller's pin can provide a maximum of 1-2milli amps current. For this reason, a driver such as a power transistor is placed in between the microcontroller and the buzzer.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The operation of this circuit is as follows:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='color:black; font-family:Times New Roman; font-size:12pt'&gt;The input to the base of the transistor is applied from the microcontroller port pin P1.0. The transistor will be switched on when the base to emitter voltage is greater than 0.7V (cut-in voltage). Thus when the voltage applied to the pin P1.0 is high i.e., P1.0=1 (&amp;gt;0.7V), the transistor will be switched on and thus the buzzer will be activated and produces a loud noise.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='color:black; font-family:Times New Roman; font-size:12pt'&gt;When the voltage at the pin P1.0 is low i.e., P1.0=0 (&amp;lt;0.7V) the transistor will be in off state and the buzzer will be off. Thus the transistor acts like a current driver to operate the buzzer accordingly.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;BUZZER INTERFACING WITH THE MICROCONTROLLER:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;ULN2003 CURRENT DRIVER:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;            Fig: DIP 16 Package&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The ULN2003 current driver is a high voltage, high current Darlington arrays each containing seven open collector Darlington pairs with common emitters. Each channel is rated at 500mA and can withstand peak currents of 600mA. Suppression diodes are included for inductive load driving and the inputs are pinned opposite the outputs to simplify board layout.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;These versatile devices are useful for driving a wide range of loads including solenoids, relays DC motors, LED displays filament lamps, thermal print heads and high power buffers. This chip is supplied in 16 pin plastic DIP packages with a copper lead frame to reduce thermal resistance. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;                Fig: Pin Connection&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman'&gt;&lt;span style='font-size:10pt'&gt;This ULN2003 driver can drive seven relays at a time. The pins 8 and 9 provide ground and Vcc respectively. &lt;/span&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;&lt;br /&gt;						&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;The working of ULN driver is as follows:&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;It can accept seven inputs at a time and produces seven corresponding outputs. If the input to any one of the seven input pins is high, then the value at its corresponding output pin will be low, for example if the input at pin 6 is high, then the value at the corresponding output i.e., output at pin 11 will be low. Similarly if the input at a particular pin is low, then the corresponding output will be high.&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;STEPPER MOTOR:&lt;/strong&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: center'&gt;&lt;strong&gt;&lt;br /&gt;				&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;strong&gt;                Fig: Stepper motor&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;A stepper motor is a widely used device that translates electrical pulses into mechanical movement. The stepper motor is used for position control in applications such as disk drives, dot matrix printers and robotics.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Stepper motors commonly have a permanent magnet &lt;em&gt;rotor&lt;/em&gt; surrounded by a &lt;em&gt;stator.&lt;/em&gt; The most common stepper motors have four stator windings that are paired with a center-tapped common. This type of stepper motor is commonly referred to as a four-phase or unipolar stepper motor. The center tap allows a change of current direction in each of the two coils when a winding is grounded, thereby resulting in a polarity change of the stator.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The direction of the rotation is dictated by the stator poles. The stator poles are determined by the current sent through the wire coils. As the direction of the current is changed, the polarity is also changed causing the reverse motion of the rotor.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;It should be noted that while a conventional motor shaft runs freely, the stepper motor shaft moves in a fixed repeatable increment, which allows one to move it to a precise position. Thus, the stepper motor moves one step when the direction of current flow in the field coil(s) changes, reversing the magnetic field of the stator poles. The difference between unipolar and bipolar motors lies in the may that this reversal is achieved.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 72pt'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Fig: Stepper motor operation&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Advantages:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;1. The rotation angle of the motor is proportional to the input pulse.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;2. The motor has full torque at standstill (if the windings are energized)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;3. Precise positioning and repeatability of movement since good stepper motors have an accuracy of 3 – 5% of a step and this error is non cumulative from one step to the next.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;4. Excellent response to starting/ stopping/reversing.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;5. Very reliable since there are no contact brushes in the motor. Therefore the life of the motor is simply dependant on the life of the bearing.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;6. The motors response to digital input pulses provides open-loop control, making the motor simpler and less costly to control.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;7. It is possible to achieve very low speed synchronous rotation with a load that is directly coupled to the shaft.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;8. A wide range of rotational speeds can be realized as the speed is proportional to the frequency of the input pulses.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Disadvantages:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;1. Resonances can occur if not properly controlled.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;2. Not easy to operate at extremely high speeds.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Open Loop Operation:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;One of the most significant advantages of a stepper motor is its ability to be accurately controlled in an open loop system. Open loop control means no feedback information about position is needed. This type of control eliminates the need for expensive sensing and feedback devices such as optical encoders. &lt;/span&gt;&lt;span style='font-family:Arial'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Stepper Motor Types:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;There are three basic stepper motor types. They are :&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;• Variable-reluctance&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;• Permanent-magnet&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;• Hybrid&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Variable-reluctance (VR)&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;This type of stepper motor has been around for a long time. It is probably the easiest to understand from a structural point of view. This type of motor consists of a soft iron multi-toothed rotor and a wound stator. When the stator windings are energized with DC current, the poles become magnetized. Rotation occurs when the rotor teeth are attracted to the energized stator poles.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Fig 1: Cross-section of a variable reluctance (VR) motor.&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman'&gt;&lt;strong&gt;Permanent Magnet (PM)&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The permanent magnet step motor is a low cost and low resolution type motor with typical step angles of 7.5° to 15°. (48 – 24 steps/revolution) PM motors as the name implies have permanent magnets added to the motor structure. In this type of motor, the rotor does not have teeth . Instead the rotor is magnetized with alternating north and south poles situated in a straight line parallel to the rotor shaft. These magnetized rotor poles provide an increased magnetic flux intensity and because of this the PM motor exhibits improved torque characteristics when compared with the VR type.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;PM stepper motor principle                    Cross section of a hybrid stepper motor&lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Hybrid (HB)&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The hybrid stepper motor is more expensive than the PM stepper motor but provides better performance with respect to step resolution, torque and speed. Typical step angles for the HB stepper motor range from 3.6° to 0.9° (100 – 400 steps per revolution).&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt; The hybrid stepper motor combines the best features of both the PM and VR type stepper motors. The rotor is multi-toothed like the VR motor and contains an axially magnetized concentric magnet around its shaft. The teeth on the rotor provide an even better path which helps guide the magnetic flux to preferred locations in the air gap. This further increases the detent, holding and dynamic torque characteristics of the motor when compared with both the VR and PM types. This motor type has some advantages such as very low inertia and a optimized magnetic flow path with no coupling between the two stator windings. These qualities are essential in some applications.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;When to Use a Stepper Motor:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;A stepper motor can be a good choice whenever controlled movement is required. They can be used to advantage in applications where you need to control rotation angle, speed, position and synchronism. Because of the inherent advantages listed previously, stepper motors have found their place in many different applications.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;The Rotating Magnetic Field:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;When a phase winding of a stepper motor is energized with current a magnetic flux is developed in the stator. The direction of this flux is determined by the "Right Hand Rule" which states:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;"If the coil is grasped in the right hand with the fingers pointing in the direction of the current in the winding (the thumb is extended at a 90° angle to the fingers), then the thumb will point in the direction of the magnetic field."&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The below figure shows the magnetic flux path developed when phase B is energized with winding current in the direction shown. The rotor then aligns itself so that the flux opposition is minimized. In this case the motor would rotate clockwise so that its south pole aligns with the north pole of the stator B at position 2 and its north pole aligns with the south pole of stator B at position 6. To get the motor to rotate we can now see that we must provide a sequence of energizing the stator windings in such a fashion that provides a rotating magnetic flux field which the rotor follows due to magnetic attraction.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Fig: Magnetic flux path through a two-pole stepper motor with a lag between the  rotor and stator.&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Torque Generation:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The torque produced by a stepper motor depends on several factors.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;• The step rate&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;• The drive current in the windings&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;• The drive design or type&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;In a stepper motor, a torque will be developed when the magnetic fluxes of the rotor and stator are displaced from each other. The stator is made up of a high permeability magnetic material. The presence of this high permeability material causes the magnetic flux to be confined for the most part to the paths defined by the stator structure. This serves to concentrate the flux at the stator poles. The torque output produced by the motor is proportional to the intensity of the magnetic flux generated when the winding is energized.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The basic relationship which defines the intensity of the magnetic flux is defined by:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 72pt'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;H = (N * i) / l &lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;where&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;N = The number of winding turns&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;i = current&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;H = Magnetic field intensity&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;l = Magnetic flux path length&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;This relationship shows that the magnetic flux intensity and consequently the torque is proportional to the number of winding turns and the current and inversely proportional to the length of the magnetic flux path. Thus from this basic relationship it is concluded that the same frame size stepper motor could have very different torque output capabilities simply by changing the winding parameters.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Step Angle Accuracy:&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;The main reason that the stepper motor gained  such popularity as a positioning device is for its accuracy and repeatability. Typically stepper motors will have a step angle accuracy of 3 – 5% of one step. This error is also non cumulative from step to step. The accuracy of the stepper motor is mainly a function of the mechanical precision of its parts and assembly. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;    Fig: Positional accuracy of a stepper motor    &lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Torque versus Speed Characteristics:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The torque versus speed characteristics are the key to selecting the right motor and drive method for a specific application. These characteristics are dependent upon (change with)the motor, excitation mode and type of driver or drive method. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;     Fig: Torque versus speed characteristics&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Single Step Response and Resonances:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Stepper motors can often exhibit a phenomena referred to as resonance at certain step rates. This can be seen as a sudden loss or drop in torque at certain speeds which can result in missed steps or loss of synchronism. It occurs when the input step pulse rate coincides with the natural oscillation frequency of the rotor. Often there is a resonance area around the 100 – 200 pps region and also one in the high step pulse rate region. The resonance phenomena of a stepper motor comes from its basic construction and therefore it is not possible to eliminate it completely. It is also dependent upon the load conditions. It can be reduced by driving the motor in half or micro stepping modes.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;             &lt;strong&gt;Fig: Single step response versus time&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Few Definitions related to stepper motor:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;1. Step angle&lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Step angle is associated with the internal construction of the motor, in particular the number of teeth on the stator and the rotor.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;em&gt;The step angle is the minimum degree of rotation associated with a single step.&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;div&gt;&lt;table border='0' style='border-collapse:collapse'&gt;&lt;colgroup&gt;&lt;col style='width:180px'/&gt;&lt;col style='width:192px'/&gt;&lt;/colgroup&gt;&lt;tbody valign='top'&gt;&lt;tr&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt'&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;        Step angle&lt;/strong&gt;&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt'&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Steps per Revolution&lt;/strong&gt;&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt'&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;                  0.72&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt'&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;500&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt'&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;                  1.8&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt'&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;200&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt'&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;                  2.0&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt'&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;180&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt'&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;                  2.5&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt'&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;144&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt'&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;                  5.0&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt'&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;72&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt'&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;                  7.5&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt'&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;48&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt'&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;                  15&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt'&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;24&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;            &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;					&lt;strong&gt;Fig: Stepper motor step angles&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;2. Steps per second and rpm relation&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The relation between rpm (revolutions per minute), steps per revolution and  steps per second is as follows&lt;strong&gt;:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;Steps per second = (rpm*steps per revolution)/60&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;3. Motor speed:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The motor speed, measured in steps per second (steps/sec) is a function of the switching rate&lt;strong&gt;.&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;4. Holding torque:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The amount of torque, from an external source, required to break away the shaft from its holding position with the motor shaft standstill or zero rpm condition.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;STEPPER MOTOR INTERFACING WITH THE MICROCONTROLLER:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;LIQUID CRYSTAL DISPLAY:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;LCD stands for &lt;strong&gt;L&lt;/strong&gt;iquid &lt;strong&gt;C&lt;/strong&gt;rystal &lt;strong&gt;D&lt;/strong&gt;isplay. LCD is finding wide spread use replacing LEDs (seven segment LEDs or other multi segment LEDs) because of the following reasons:&lt;strong&gt;&lt;br /&gt;					&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The declining prices of LCDs.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The ability to display numbers, characters and graphics. This is in contrast to LEDs, which are limited to numbers and  a few characters.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Incorporation of a refreshing controller into the LCD, thereby relieving the CPU of the task of refreshing the LCD. In contrast, the LED must be refreshed by the CPU to keep displaying the data.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Ease of programming for characters and graphics.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;These components are "specialized" for being used with the microcontrollers, which means that they cannot be activated by standard IC circuits. They are used for writing different messages on a miniature LCD.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;img alt='' src='mhtml:file://C:\Documents%20and%20Settings\wine%20yard\Desktop\8051%20tutorial\Architecture%20and%20Programming%20of%208051%20Microcontrollers%20%20Chapter%206%20%20Examples.mht!http://www.mikroe.com/en/books/8051book/ch6/images/14.gif' align='left'/&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;A model described here is for its low price and great possibilities most frequently used in practice. It is based on the HD44780 microcontroller (&lt;em&gt;Hitachi&lt;/em&gt;) and can display messages in two lines with 16 characters each . It displays all the alphabets, Greek letters, punctuation marks, mathematical symbols etc. In addition, it is possible to display symbols that user makes up on its own. Automatic shifting message on display (shift left and right), appearance of the pointer, backlight etc. are considered as useful characteristics.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Pins Functions&lt;/strong&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p style='text-align: justify'&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;There are pins along one side of the small printed board used for connection to the microcontroller. There are total of 14 pins marked with numbers (16 in case the background light is built in). Their function is described in the table below:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;div&gt;&lt;table border='0' style='border-collapse:collapse'&gt;&lt;colgroup&gt;&lt;col style='width:119px'/&gt;&lt;col style='width:84px'/&gt;&lt;col style='width:77px'/&gt;&lt;col style='width:77px'/&gt;&lt;col style='width:223px'/&gt;&lt;/colgroup&gt;&lt;tbody valign='top'&gt;&lt;tr style='background: #f5f2ec'&gt;&lt;td style='padding-top: 2px; padding-left: 2px; padding-bottom: 2px; padding-right: 2px' vAlign='middle'&gt;&lt;p&gt;&lt;strong&gt;Function&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 2px; padding-left: 2px; padding-bottom: 2px; padding-right: 2px' vAlign='middle'&gt;&lt;p style='text-align: center'&gt;&lt;strong&gt;Pin Number&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 2px; padding-left: 2px; padding-bottom: 2px; padding-right: 2px' vAlign='middle'&gt;&lt;p style='text-align: center'&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 2px; padding-left: 2px; padding-bottom: 2px; padding-right: 2px' vAlign='middle'&gt;&lt;p style='text-align: center'&gt;&lt;strong&gt;Logic State&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 2px; padding-left: 2px; padding-bottom: 2px; padding-right: 2px' vAlign='middle'&gt;&lt;p style='text-align: center'&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-top: 2px; padding-left: 2px; padding-bottom: 2px; padding-right: 2px' vAlign='middle'&gt;&lt;p&gt;Ground &lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 2px; padding-left: 2px; padding-bottom: 2px
