<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>Free Download Engineering Books - IEEE Books</title><description>Free Download Engineering Books, IEEE Books, Download Free Engineering Books, Electrical Engineering, Mechanical Engineering, Civil Engineering and more..</description><managingEditor>noreply@blogger.com (Unknown)</managingEditor><pubDate>Fri, 18 Jul 2025 08:50:21 +0500</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">248</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>http://ieeebooks.blogspot.com/</link><language>en-us</language><itunes:explicit>clean</itunes:explicit><itunes:keywords>shift,cells,plc,logic,controllers,Programable,hydraulic,turbine,embedded,transistor,components,generators,circuits,analysis,powerplant,semiconductor,air,pollution,microcontroler,turbines,microcontroller,power,adapter,water,pollution,tele</itunes:keywords><itunes:summary>Provides engineering Articles, News, Images, Video Lectures, and Free of Cost Engineering Books....!!</itunes:summary><itunes:subtitle>engineering Books</itunes:subtitle><itunes:category text="Education"><itunes:category text="Higher Education"/></itunes:category><itunes:owner><itunes:email>aslam.obf@gmail.com</itunes:email></itunes:owner><item><title>Norton Design of Machinery 4th Edition PDF Free Download</title><link>http://ieeebooks.blogspot.com/2010/04/norton-design-of-machinery.html</link><category>Machine Engineering</category><category>X-ray topography and GPS basics</category><pubDate>Wed, 13 Jul 2016 21:32:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-6087623871949026337</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;span style="font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif; font-size: large;"&gt;&lt;b&gt;Norton Design of Machinery &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif; font-size: large;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Machine is designed to help human activity by consuming energy into mechanical energy. Machine has its own mechanism system. It is called as machinery that involved kinematics and dynamics in its process in manufacturing or industrial field. To understand about machine, we should know about design of machinery topic. This subject is intended as two semester course. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;ABOUT THE AUTHOR&lt;/b&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Robert L. Norton earned undergraduate degrees in both mechanical engineering and industrial
technology at Northeastern University and an MS in engineering design at Tufts
University. He is a registered professional engineer in Massachusetts and New Hampshire.
He has extensive industrial experience in engineering design and manufacturing
and many years experience teaching mechanical engineering, engineering design, computer
science, and related subjects at Northeastern University, Tufts University, and
Worcester Polytechnic Institute. At Polaroid Corporation for ten years, he designed cameras,
related mechanisms, and high-speed automated machinery. He spent three years at
Jet Spray Cooler Inc., Waltham, Mass., designing food-handling machinery and products.
For five years he helped develop artificial-heart and noninvasive assisted-circulation
(counterpulsation) devices at the Tufts New England Medical Center and Boston
City Hospital. Since leaving industry to join academia, he has continued as an independent
consultant on engineering projects ranging from disposable medical products to
high-speed production machinery. He holds 13 U.S. patents.
Norton has been on the faculty of Worcester Polytechnic Institute since 1981 and is
currently professor of mechanical engineering and head of the design group in that department.
He teaches undergraduate and graduate courses in mechanical engineering
with emphasis on design, kinematics, and dynamics of machinery. He is the author of
numerous technical papers and journal articles covering kinematics, dynamics of machinery,
carn design and manufacturing, computers in education, and engineering education
and of the text Machine Design: An Integrated Approach. He is a Fellow of the American
Society of Mechanical Engineers and a member of the Society of Automotive Engineers.
Rumors about the transplantation of a Pentium microprocessor into his brain are
decidedly untrue (though he could use some additional RAM). As for the unobtainium*
ring, well, that's another story&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h2 style="text-align: left;"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw3SmylbGNhCY08IXG0y7ii5KLwvtU6qpLtdhpwUWxqq-MoETlnJMCXZ-7258ipelGT_i3ziESjJK51yrQycKuKuRURm-5Bv9dV66Hvq8NurV1X4cFa5jbEIgA8IyB1kukQod5Mcr7MYM/s1600/Norton+Design+of+Machinery.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Norton Design of Machinery" border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw3SmylbGNhCY08IXG0y7ii5KLwvtU6qpLtdhpwUWxqq-MoETlnJMCXZ-7258ipelGT_i3ziESjJK51yrQycKuKuRURm-5Bv9dV66Hvq8NurV1X4cFa5jbEIgA8IyB1kukQod5Mcr7MYM/s640/Norton+Design+of+Machinery.png" title="Norton Design of Machinery" width="607" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style="margin-left: 6px;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="ftp://85.185.67.249/Schools/Mechanical/Amir%20Jalali/MAchinary-2.pdf" rel="nofollow" target="_blank"&gt;&lt;img alt="Download PDF" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGQnOTuufuCVminXBlSw83LLs3BKSpC0SQIXDyLoTjtsmSDxab0cGOPtJc6eGcS-1Xm7I_QN2cSuE7ie75fpwwLUKUgkG33DeJ8ntkehOPEGht68NpvwNujKYvfn2gzV2NZvmKnlHHtDA/s1600/download-PDF-Online.jpg" title="Download PDF" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw3SmylbGNhCY08IXG0y7ii5KLwvtU6qpLtdhpwUWxqq-MoETlnJMCXZ-7258ipelGT_i3ziESjJK51yrQycKuKuRURm-5Bv9dV66Hvq8NurV1X4cFa5jbEIgA8IyB1kukQod5Mcr7MYM/s72-c/Norton+Design+of+Machinery.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">15</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>Driver Adaptation to Information and Assistance Systems</title><link>http://ieeebooks.blogspot.com/2014/08/driver-adaptation-to-information-and.html</link><pubDate>Fri, 22 Jan 2016 21:38:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-6236740718429231159</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;h2 style="text-align: center;"&gt;
Driver Adaptation to Information and Assistance Systems&lt;/h2&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiH9buQeyQwnDFE1Rur0Q-rI1ZDTf-PadGYWID4QYY9vEbJxoT3SgMlkY9NgHKjUnIDvtu1nKJ4RT_JtTzXXc-IUO_aqAkdvqM6ognoPQedQ8MSssNPVs3rWPkZTTBBgdB6eNZh9ErScMc/s1600/Driver+Adaptation+to+Information+and+Assistance+Systems.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiH9buQeyQwnDFE1Rur0Q-rI1ZDTf-PadGYWID4QYY9vEbJxoT3SgMlkY9NgHKjUnIDvtu1nKJ4RT_JtTzXXc-IUO_aqAkdvqM6ognoPQedQ8MSssNPVs3rWPkZTTBBgdB6eNZh9ErScMc/s1600/Driver+Adaptation+to+Information+and+Assistance+Systems.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://docs.google.com/file/d/0Bwa8i9YvJRE_bkphbllIUGpVcU0" target="_blank"&gt;&lt;img alt="Download Now" border="0" height="78" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtKAFB6WmMyPKA5T76a8xsxgyzCTBlxyUN11_fAYiYFAQHHwZC0YtYw_ABFjLP8uWZHne6E9Pm6DAQTjiDW4XGpMtOGwOFTtWzp0hXlVld9Wv5TbtCrJQ2DjmfXew1L2_5d5HF-ClrAmQ/s1600/download+Now.JPG" title="Click to Download" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;iframe height="480" src="https://docs.google.com/file/d/0Bwa8i9YvJRE_bkphbllIUGpVcU0/preview" width="640"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;/center&gt;
&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiH9buQeyQwnDFE1Rur0Q-rI1ZDTf-PadGYWID4QYY9vEbJxoT3SgMlkY9NgHKjUnIDvtu1nKJ4RT_JtTzXXc-IUO_aqAkdvqM6ognoPQedQ8MSssNPVs3rWPkZTTBBgdB6eNZh9ErScMc/s72-c/Driver+Adaptation+to+Information+and+Assistance+Systems.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>Probability, Statistics, and Decision for Civil Engineers, PDF Free Download</title><link>http://ieeebooks.blogspot.com/2014/08/probability-statistics-and-decision-for.html</link><category>Civil</category><category>Engineering</category><category>Free</category><pubDate>Fri, 29 Aug 2014 02:02:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-5302686406435973759</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Designed as a primary text for civil engineering courses, as a supplementary text for courses in other areas, or for self-study by practicing engineers, this text covers the development of decision theory and the applications of probability within the field.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHPFg_wGnvhZb2Swiw25f_VeXxT6mq6DQW1BoLq1DrHd8UoCfYc7mf9VJGlUYPbfHY_QhJBFxV-S1w_06lidlpUIZ99YSams1AhLAqPAQ5fIsNVI0En-djWNywaqT-ZpoRyawZVwF9eOM/s1600/Probability,+Statistics,+and+Decision+for+Civil+Engineers.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHPFg_wGnvhZb2Swiw25f_VeXxT6mq6DQW1BoLq1DrHd8UoCfYc7mf9VJGlUYPbfHY_QhJBFxV-S1w_06lidlpUIZ99YSams1AhLAqPAQ5fIsNVI0En-djWNywaqT-ZpoRyawZVwF9eOM/s1600/Probability,+Statistics,+and+Decision+for+Civil+Engineers.jpg" height="640" width="490" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2 style="text-align: left;"&gt;Preface&lt;/h2&gt;&lt;span style="font-family: inherit;"&gt;This book is designed for use by students, practitioners, teachers, and researchers in civil&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;engineering. Most books on probability and statistics are intended for readers from many fields, and&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;therefore the question might be asked, “Why is it necessary to have a book on applied probability and&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;statistics for civil engineers alone?” Further, within civil engineering itself, we might ask, “Why is it&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;reasonable to attempt to write to an audience with such widely varying needs?” The need for writing&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;such a book is a result of the unusual status of probability and statistics in civil engineering.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style="font-family: inherit;"&gt;Although virtually all forward-looking civil engineers see the rationality and utility of probabilistic&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;models of phenomena of interest to the profession, the number of civil engineers trained in probability theory has been limited. As a result there has not yet been widespread adoption of such models in practice or even in university courses below the advanced graduate level. Indeed, there has not yet been sufficient development of such models to permit a unified probabilistic approach to the many aspects of the strength of materials, soil mechanics, construction planning, water-resource design, and many other subjects where the methods could clearly be useful.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style="font-family: inherit;"&gt;Many departments of civil engineering now require that their students study probability or&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;statistics. Subsequent undergraduate technical courses, however, usually lack material that draws&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;upon that study, and this often leaves the student without an appreciation for possible implications of&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;the theory. Through the use of illustrations and problems taken solely from the civil-engineering field&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;this book is designed to develop this appreciation for applications. It can serve as a primary text for a&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;course within a civil-engineering department or as a supplementary text for courses taught in other&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;departments. The major compromise here was the acceptance of the risk of obscuring or confusing the basic theory in describing the illustrative physical problem. We could have avoided this risk by using only examples dealing with coins, dice, red and black balls, etc., but the desire to develop the ability to construct mathematical models of physical phenomena in civil-engineering applications weighed heavily in favor of professional illustrations.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style="font-family: inherit;"&gt;Students finishing such a professionally oriented probability course may or may not go on to&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;advanced courses in the theory. This consideration dictated at least an introductory coverage of a&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;wide variety of material coupled with a thorough treatment of the fundamentals. The kinds of&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;compromises involved in trying to decide between breadth in subject matter and depth in&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;fundamentals are obvious. It is unlikely that our many decisions of this kind will be judged optimal by all, or, indeed, by ourselves in time.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt; &lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://docs.google.com/uc?export=download&amp;amp;confirm=sWmJ&amp;amp;id=0Bwa8i9YvJRE_OHFQWGxUUkZqSkE" target="_blank"&gt;&lt;img alt=" Click to Download Now" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRwP0CYMYjUWJl_Sgpi-_hXefwdghTWs8PDoOY1s6xi6oC4yZRz2MICmhPo7Dgvm0uxk7hlVCpU5dSHH3FkIm_BD437qUoudJJ33AM7eYiNs3pd_ydqKviJRl8YUO-kvypRotN0LBZA0s/s1600/download+Now.JPG" height="78" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHPFg_wGnvhZb2Swiw25f_VeXxT6mq6DQW1BoLq1DrHd8UoCfYc7mf9VJGlUYPbfHY_QhJBFxV-S1w_06lidlpUIZ99YSams1AhLAqPAQ5fIsNVI0En-djWNywaqT-ZpoRyawZVwF9eOM/s72-c/Probability,+Statistics,+and+Decision+for+Civil+Engineers.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>8051 Serial communication - Microcontroller Programming and Embedded Systems</title><link>http://ieeebooks.blogspot.com/2013/04/8051-serial-communication.html</link><category>- Microcontroller Programming Serial communication</category><category>8051 Serial communication</category><category>Serial communication Embedded Systems</category><category>Serial Communication of 8051 Embedded Systems</category><pubDate>Thu, 11 Apr 2013 15:18:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-8351537837498725449</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div class="separator" style="clear: both; text-align: justify;"&gt;
&lt;span style="font-family: Times, 'Times New Roman', serif; text-align: left;"&gt;Serial Communication is a form of I/O in which the bits of a byte being transferred appear one after other in a timed sequence on a single wire. Serial Communication uses two methods, asynchronous and synchronous. The Synchronous method transfers a block of data at a time, while the asynchronous method transfers a single byte at a time. In Synchronous Communication the data get transferred based on a common clock signal. But in Asynchronous communication, in addition to the data bit, one start bit and one stop bit is added. These start and stop bits are the parity bits to identify the data present between the start and stop bits.&lt;/span&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: justify;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMdqp0HYcesIo2dxxEZAHw2oZj0l6pHqxB52kpHqD4UNVk7Vxv0GXGZeFaw6zUizAwV5Gl9ro4eJO0pN8YoreJL-bC7Yy2fzAWbztB0Gr06aUmc-AcZpGkIOzvGBCXOjbSLcylkUPfod4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_358.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMdqp0HYcesIo2dxxEZAHw2oZj0l6pHqxB52kpHqD4UNVk7Vxv0GXGZeFaw6zUizAwV5Gl9ro4eJO0pN8YoreJL-bC7Yy2fzAWbztB0Gr06aUmc-AcZpGkIOzvGBCXOjbSLcylkUPfod4/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_358.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMdqp0HYcesIo2dxxEZAHw2oZj0l6pHqxB52kpHqD4UNVk7Vxv0GXGZeFaw6zUizAwV5Gl9ro4eJO0pN8YoreJL-bC7Yy2fzAWbztB0Gr06aUmc-AcZpGkIOzvGBCXOjbSLcylkUPfod4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_358.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMdqp0HYcesIo2dxxEZAHw2oZj0l6pHqxB52kpHqD4UNVk7Vxv0GXGZeFaw6zUizAwV5Gl9ro4eJO0pN8YoreJL-bC7Yy2fzAWbztB0Gr06aUmc-AcZpGkIOzvGBCXOjbSLcylkUPfod4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_358.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMdqp0HYcesIo2dxxEZAHw2oZj0l6pHqxB52kpHqD4UNVk7Vxv0GXGZeFaw6zUizAwV5Gl9ro4eJO0pN8YoreJL-bC7Yy2fzAWbztB0Gr06aUmc-AcZpGkIOzvGBCXOjbSLcylkUPfod4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_358.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMdqp0HYcesIo2dxxEZAHw2oZj0l6pHqxB52kpHqD4UNVk7Vxv0GXGZeFaw6zUizAwV5Gl9ro4eJO0pN8YoreJL-bC7Yy2fzAWbztB0Gr06aUmc-AcZpGkIOzvGBCXOjbSLcylkUPfod4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_358.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMdqp0HYcesIo2dxxEZAHw2oZj0l6pHqxB52kpHqD4UNVk7Vxv0GXGZeFaw6zUizAwV5Gl9ro4eJO0pN8YoreJL-bC7Yy2fzAWbztB0Gr06aUmc-AcZpGkIOzvGBCXOjbSLcylkUPfod4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_358.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;span style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
The 8051 has two pins that are used specifically for transferring and receiving data serially. These two pins are called TXD and RXD and are part of the Port-3 group (Port-3.0 and Port-3.1). Pin 11 of the 8051 is assigned to TXD and pin 10 is designated as RXD. These pins are TTL compatible; therefore they require a line driver to make them RS232 compatible. The line driver chip is MAX232. The MAX232 uses +5v power source, which is same as the source voltage for 8051.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3dyfa4AvnqtLSdFbQe_ZjcyaM3KmCxtvYpUz65g2EbuQoSNBwFdlIIvnfNchzqXtNiJH8Uc5Bdcm_N7pJtpAexX-O5wLeqpp0F1Jzj4z1e9jB7P33gh_xNDfixS9ggX3qJ3XlaLZncKQ/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_359.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3dyfa4AvnqtLSdFbQe_ZjcyaM3KmCxtvYpUz65g2EbuQoSNBwFdlIIvnfNchzqXtNiJH8Uc5Bdcm_N7pJtpAexX-O5wLeqpp0F1Jzj4z1e9jB7P33gh_xNDfixS9ggX3qJ3XlaLZncKQ/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_359.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimmwH3QAGnPmtSVcicJkPjvl5cV-n7glqqr4gmi7VfRk7FBHZ7NEfnxkCwQEaxhOURsm26l3ckEXk2pEN3DGM9zQYC0KPV-qM0cf5F2ULaaSVyRbZ6e6yYmHwvpD0Vfbq_r2qLXtY-0D4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_360.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimmwH3QAGnPmtSVcicJkPjvl5cV-n7glqqr4gmi7VfRk7FBHZ7NEfnxkCwQEaxhOURsm26l3ckEXk2pEN3DGM9zQYC0KPV-qM0cf5F2ULaaSVyRbZ6e6yYmHwvpD0Vfbq_r2qLXtY-0D4/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_360.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx8qlj5sJO331Z8LJF_L3QPtX1Na0D3jLhkuVGdPsA4avQue2Sl3GsInTTgMobO37JkRlBsCZ5foYRyCjmbFyUgfV7CirPI5aW33mXV_JMgrkPKdzDARuNW-eaK3T-wYCAVYvIcJfJzXA/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_362.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx8qlj5sJO331Z8LJF_L3QPtX1Na0D3jLhkuVGdPsA4avQue2Sl3GsInTTgMobO37JkRlBsCZ5foYRyCjmbFyUgfV7CirPI5aW33mXV_JMgrkPKdzDARuNW-eaK3T-wYCAVYvIcJfJzXA/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_362.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggA3ZycO821j0PzHIAKWCAE4bTTVwRvSzovp1v0PMuabduMhItOG8M6hCDuMZvoHLFSgGYEZ2JbGbu4k-uJsSz7ttc9BfrUmeG6BqexTJGy7kPOd71adFDTSxbRq_gTfLwUqavP8vWnDs/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_361.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggA3ZycO821j0PzHIAKWCAE4bTTVwRvSzovp1v0PMuabduMhItOG8M6hCDuMZvoHLFSgGYEZ2JbGbu4k-uJsSz7ttc9BfrUmeG6BqexTJGy7kPOd71adFDTSxbRq_gTfLwUqavP8vWnDs/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_361.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6ZYShyphenhyphenQPDSqPY3ENy1-gBiNMleb7mBskVwhtVdqQRW10NNGHmhbJagXAgSsMd0yqD1Rj37kPBMwOrbLYxJZ0UUbPQ_d33sH0Ca-gAdJg-PsdMVSh2ZKG_aaYOZme8z8PLZh1hG3YBI_c/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_363.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6ZYShyphenhyphenQPDSqPY3ENy1-gBiNMleb7mBskVwhtVdqQRW10NNGHmhbJagXAgSsMd0yqD1Rj37kPBMwOrbLYxJZ0UUbPQ_d33sH0Ca-gAdJg-PsdMVSh2ZKG_aaYOZme8z8PLZh1hG3YBI_c/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_363.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFxDazW8U768xmenAYrR53PVeS3LQr6a-G2_Ig8AHaDd6NprEH-qMwwDIDNaQhq4yIIYreWfHmhDOxOerhqAnNrvUTHuSFVdwKDiWzxy3RBSyzvjAsyybZsUesIudtmXP04AKT6jCGQH4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_364.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFxDazW8U768xmenAYrR53PVeS3LQr6a-G2_Ig8AHaDd6NprEH-qMwwDIDNaQhq4yIIYreWfHmhDOxOerhqAnNrvUTHuSFVdwKDiWzxy3RBSyzvjAsyybZsUesIudtmXP04AKT6jCGQH4/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_364.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwNc9zWa4FQ7p9-g0i7FNBLGcEcDKJpbUkUnczSbyUgESb8gWh_4TQraeoL26_SbUKgXoho55XuaNOepy7d6iu71eWzvX3aN38PHJKm4mDl2Ngp-4P1MrOmBfF8rNkkkK10Y9s6regYeU/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_365.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwNc9zWa4FQ7p9-g0i7FNBLGcEcDKJpbUkUnczSbyUgESb8gWh_4TQraeoL26_SbUKgXoho55XuaNOepy7d6iu71eWzvX3aN38PHJKm4mDl2Ngp-4P1MrOmBfF8rNkkkK10Y9s6regYeU/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_365.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJHk_RerfwD81hHrESQRmn__wdTIs6gUcIoeOdANPrsZCGd8SF4-Phl3fzTajX8bcQyZ2oRvXDWlVTyjGBcYIrF-Wm2O6wVKUBhcrGcq60tGN6-eg0pNTl1KYh4mG9TzRFG6S1u3FWB2Q/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_366.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJHk_RerfwD81hHrESQRmn__wdTIs6gUcIoeOdANPrsZCGd8SF4-Phl3fzTajX8bcQyZ2oRvXDWlVTyjGBcYIrF-Wm2O6wVKUBhcrGcq60tGN6-eg0pNTl1KYh4mG9TzRFG6S1u3FWB2Q/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_366.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq9mnJWXTrBUtkV9rqyC-ndg1hPuPRfgqkGXCnQyHQ8usAgsc2DOCy8AADC38N2HmG-_1pGaEwDPiEXVmVvWXhWicPhVMXKg1Amw0i3to2HAoV2rtTXVZyttbBKKp0Zh5vFSLNLbtyLcg/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_367.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq9mnJWXTrBUtkV9rqyC-ndg1hPuPRfgqkGXCnQyHQ8usAgsc2DOCy8AADC38N2HmG-_1pGaEwDPiEXVmVvWXhWicPhVMXKg1Amw0i3to2HAoV2rtTXVZyttbBKKp0Zh5vFSLNLbtyLcg/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_367.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgycvpoEi-9KcXcEaCcRgj0sDFYvw-LZCsbtynZUOQyb-gQ0IfTd7rPdGtqLWZtUGF7xfotBhHUB-whLIjvIpKFqc11K-wL00FEex2H8xVHFpkgm4nWC-rQJgmGiEOFJ8u0uKGrNO-7DtE/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_368.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgycvpoEi-9KcXcEaCcRgj0sDFYvw-LZCsbtynZUOQyb-gQ0IfTd7rPdGtqLWZtUGF7xfotBhHUB-whLIjvIpKFqc11K-wL00FEex2H8xVHFpkgm4nWC-rQJgmGiEOFJ8u0uKGrNO-7DtE/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_368.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeTj3T4jLUQJMCLIjOh9IJevnQLboBGp3gRe_U258ZRc_SDGlZ-SHNKcbKh9tTMSwrx29NYQmccboKYWqeh1bcvE3XylBMdVvFfz04chxc4g5WQ6rFPcTc-LXT6XDQVxMsCvovhD1xaEQ/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_369.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeTj3T4jLUQJMCLIjOh9IJevnQLboBGp3gRe_U258ZRc_SDGlZ-SHNKcbKh9tTMSwrx29NYQmccboKYWqeh1bcvE3XylBMdVvFfz04chxc4g5WQ6rFPcTc-LXT6XDQVxMsCvovhD1xaEQ/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_369.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHGzsXV8_JWny5OT6XEwFtJIFZONNrjL9apCsmS8riJ1GjcRKgUEcOtgIIJm08W33FAmybiWx27NQxjEBwh9PBixv0KlNrG25xf4fhRf0wV6G-GFm6zqLBu2poTQYfLYsKeDRE93EO4C8/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_372.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHGzsXV8_JWny5OT6XEwFtJIFZONNrjL9apCsmS8riJ1GjcRKgUEcOtgIIJm08W33FAmybiWx27NQxjEBwh9PBixv0KlNrG25xf4fhRf0wV6G-GFm6zqLBu2poTQYfLYsKeDRE93EO4C8/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_372.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeaYO77HQhxEAzaXGOK1Dnl0YEnClBGWore40q4IZj9bhkkuaaXT0hf488t1ecOB70OootBjoCk5kkNgkKBU8WhvtzqDnYV8Ci9MgXbrWb8qdYQD6qxFfYPsJczW6HqwpCbEO3PMZMY-s/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_371.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeaYO77HQhxEAzaXGOK1Dnl0YEnClBGWore40q4IZj9bhkkuaaXT0hf488t1ecOB70OootBjoCk5kkNgkKBU8WhvtzqDnYV8Ci9MgXbrWb8qdYQD6qxFfYPsJczW6HqwpCbEO3PMZMY-s/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_371.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFQ7wtLPSscIxVyRApAY1TbpQ10CZzwUzIAHnpRqjKisvueHCH9XYMh4T7uja5tgxQnbhXZmymrfuPJLjrkntEE31NRZpuPfhAHV_sAx1_nuLWhrmDcUEfR95rkoI3lsAkmRoSUE98EiI/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_370.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFQ7wtLPSscIxVyRApAY1TbpQ10CZzwUzIAHnpRqjKisvueHCH9XYMh4T7uja5tgxQnbhXZmymrfuPJLjrkntEE31NRZpuPfhAHV_sAx1_nuLWhrmDcUEfR95rkoI3lsAkmRoSUE98EiI/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_370.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh31CZJhCad9oUVQogZSWFOGopA39uhYp9ab0K2wKkGadWJdwKojYCb3gGLcWzwzGn2_9YZCEY-bZ-zTOUqFvSe43ylC5wi_sOkSRECNV3MgXxFiDJsrGcey2FH_wZKanX4xowdpvYBhXA/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_373.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh31CZJhCad9oUVQogZSWFOGopA39uhYp9ab0K2wKkGadWJdwKojYCb3gGLcWzwzGn2_9YZCEY-bZ-zTOUqFvSe43ylC5wi_sOkSRECNV3MgXxFiDJsrGcey2FH_wZKanX4xowdpvYBhXA/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_373.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVGQvESWnxSPRthbl6BNy5gl8qlv8jsHokuCSkqQMNPo-H0jZBDLL01lfpzN9-MiP37yyxpfVfonoKlVJK7094ypOSQZWKKE0_VPfmxzP0dazMbsuH5Y1nEWMhJHK_J5ZvQEIdZY_nHd8/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_374.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVGQvESWnxSPRthbl6BNy5gl8qlv8jsHokuCSkqQMNPo-H0jZBDLL01lfpzN9-MiP37yyxpfVfonoKlVJK7094ypOSQZWKKE0_VPfmxzP0dazMbsuH5Y1nEWMhJHK_J5ZvQEIdZY_nHd8/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_374.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1FkCy0XuWtuNKntBRoW4lNiCuMMGYkzWD3mqrdDziYh2SRwpA3trIkMuI-ZbLo0WpsFmLgHtHYz_ZkMT1uApohZkU4FTcmGLNgOVkTPFlDxK8M0FVjDU_51FGpKGiFeYHJnB2FcCDLlI/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_375.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1FkCy0XuWtuNKntBRoW4lNiCuMMGYkzWD3mqrdDziYh2SRwpA3trIkMuI-ZbLo0WpsFmLgHtHYz_ZkMT1uApohZkU4FTcmGLNgOVkTPFlDxK8M0FVjDU_51FGpKGiFeYHJnB2FcCDLlI/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_375.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3B3-AbzDyWZ5f6B3Cw0Q5lZekwY08WPZtewnaRRZJLyiFWNhLvPO5UUtAzpnYzI_6HxIwIH79jXRlHfcE3cWtXUL5kUD4fPyxRFEoFJtkO81Fvw-p2SoJMRHTFz48NLpgG31ToxeOfl0/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_376.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3B3-AbzDyWZ5f6B3Cw0Q5lZekwY08WPZtewnaRRZJLyiFWNhLvPO5UUtAzpnYzI_6HxIwIH79jXRlHfcE3cWtXUL5kUD4fPyxRFEoFJtkO81Fvw-p2SoJMRHTFz48NLpgG31ToxeOfl0/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_376.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAOcgnHrqRefGsMYYKPeAjTIwny4lVi1PzB1C0hJFB7K6BdMDh1S7CBApXscGXS2vOOq5Eq50BVxhqloKh7mLmawJ8niu2K8QlarNMZ1RyokspNsTiafB6bxlpUhOKvHDabHI6ODYPddI/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_378.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAOcgnHrqRefGsMYYKPeAjTIwny4lVi1PzB1C0hJFB7K6BdMDh1S7CBApXscGXS2vOOq5Eq50BVxhqloKh7mLmawJ8niu2K8QlarNMZ1RyokspNsTiafB6bxlpUhOKvHDabHI6ODYPddI/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_378.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_fBPdMFZ2QQcnNaJh-rP08yXMqKFA64369DBrv9jWBnY-4HBmWuLL1Hyhyphenhyphen3BP5mqv89oRna-oPDu3qgmvoOMYLVhRhJyx7PNYWXBu_ftrcqQacws33unwdSEy5mhf5SFDKtzuV5X5E7g/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_379.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_fBPdMFZ2QQcnNaJh-rP08yXMqKFA64369DBrv9jWBnY-4HBmWuLL1Hyhyphenhyphen3BP5mqv89oRna-oPDu3qgmvoOMYLVhRhJyx7PNYWXBu_ftrcqQacws33unwdSEy5mhf5SFDKtzuV5X5E7g/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_379.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiURQWz01fbsoyzc9CvSOAyxIlZTAW6LWouB1tyNRuGBrKY0mDlBWw5FasJGwcHVH1xs-cQGwWKbXPFatMkHoRiyYQAtarv5oa_xfSSZnDb0KWrBT5IysMfP1S24NG9ufBxSHhI6Y8QEKA/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_380.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiURQWz01fbsoyzc9CvSOAyxIlZTAW6LWouB1tyNRuGBrKY0mDlBWw5FasJGwcHVH1xs-cQGwWKbXPFatMkHoRiyYQAtarv5oa_xfSSZnDb0KWrBT5IysMfP1S24NG9ufBxSHhI6Y8QEKA/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_380.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLHPAfIyZzTb6tvEneYT5tjvyrqEBmc1l51B9t6JKp4WIhfsSqhqf0RQD-qkAgqp-qk88sM8mYmLYxtHAzG83WvUfiFzrh2MSgpwLKgucyHeWAxj06eWYCqu2p90DxRDQ9ifQhOf09Nvg/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_381.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLHPAfIyZzTb6tvEneYT5tjvyrqEBmc1l51B9t6JKp4WIhfsSqhqf0RQD-qkAgqp-qk88sM8mYmLYxtHAzG83WvUfiFzrh2MSgpwLKgucyHeWAxj06eWYCqu2p90DxRDQ9ifQhOf09Nvg/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_381.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgygsfKnyvS97SBzJiUe8mufHtlO3PzNyGvtZPbn6oui8z3kfW1sTximv1G32ry-5SKWire5jQgPQJPJzRGlfmkCkNorVuYJqZG1Lq1YMNWG3o_qy230ne33LHLlYWqM-gisgCmYB5zCLA/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_382.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgygsfKnyvS97SBzJiUe8mufHtlO3PzNyGvtZPbn6oui8z3kfW1sTximv1G32ry-5SKWire5jQgPQJPJzRGlfmkCkNorVuYJqZG1Lq1YMNWG3o_qy230ne33LHLlYWqM-gisgCmYB5zCLA/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_382.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc4fcahCMv3FLTm4CJd042Zfo547t9J7J3N-Bq4jq17c3wc_xnvedbGuYQvIy8gGN4TFk3z6HHsaI38I2yH_BVKUZrWL-RssmUw3Fwo24lSqH-XeVgxJ-dmWAtWD68oHYNeqMpU9efplU/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_383.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc4fcahCMv3FLTm4CJd042Zfo547t9J7J3N-Bq4jq17c3wc_xnvedbGuYQvIy8gGN4TFk3z6HHsaI38I2yH_BVKUZrWL-RssmUw3Fwo24lSqH-XeVgxJ-dmWAtWD68oHYNeqMpU9efplU/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_383.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmbXofxbGHCD8tsz9IodbrV1IzZ9i-_Li3EsEeKj2NTNPxcRRYYb80KxE3mBggL3frLm-t93uzCep8zCkYrKfofR-FebubldH-xg8pLPA5pxX66p5rtChhHNndaDpWXWAHe1ARud4i6MA/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_385.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmbXofxbGHCD8tsz9IodbrV1IzZ9i-_Li3EsEeKj2NTNPxcRRYYb80KxE3mBggL3frLm-t93uzCep8zCkYrKfofR-FebubldH-xg8pLPA5pxX66p5rtChhHNndaDpWXWAHe1ARud4i6MA/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_385.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfy5wAic7j-ekNBxVPL7oiv24NtgRtIzSwa3y-Nl4lizCJWwBfucbB2wLOkW32bz6lX7_VtV6i0DMRqz5ILFXJdOqLHQztdtHGnmdUDNNzSdBHVQ3JBjhfWZMSVjRIHsG6Gx82om4g70Q/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_384.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfy5wAic7j-ekNBxVPL7oiv24NtgRtIzSwa3y-Nl4lizCJWwBfucbB2wLOkW32bz6lX7_VtV6i0DMRqz5ILFXJdOqLHQztdtHGnmdUDNNzSdBHVQ3JBjhfWZMSVjRIHsG6Gx82om4g70Q/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_384.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAjhxCGN8OUlLGYz9InWDePRUk4NBH4A0d6aT4n4mtuLIVCd8XjEwkn2-IH5CLyHb6Q21v3D4YE2gEKFmIr8YFZyqfOHcBQaiSAe4L49QnvLya-95qrntVaaSfKwl06vy9K1SwZrFpxsg/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_386.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAjhxCGN8OUlLGYz9InWDePRUk4NBH4A0d6aT4n4mtuLIVCd8XjEwkn2-IH5CLyHb6Q21v3D4YE2gEKFmIr8YFZyqfOHcBQaiSAe4L49QnvLya-95qrntVaaSfKwl06vy9K1SwZrFpxsg/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_386.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi91bq05kM15JgkP297-yG94aafvY5PSYiiQ-SyO1tJpyn_ZEIeYNirWx3_G7ar3AMvixyzdbdYniHQrOTlWRqbeMydirtHPc1G8MrvB3WX-Pbk0lZUsZCkB7o5VZPaRBjj4cFufSIf2lA/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_388.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi91bq05kM15JgkP297-yG94aafvY5PSYiiQ-SyO1tJpyn_ZEIeYNirWx3_G7ar3AMvixyzdbdYniHQrOTlWRqbeMydirtHPc1G8MrvB3WX-Pbk0lZUsZCkB7o5VZPaRBjj4cFufSIf2lA/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_388.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_OD3b45OWU0qm7kr-UNEjayQbnMbThwJ-44N6-TP3bXn_WZn4xaZiOSSuIRRcVIuuJYLIAopO1WycHxEBlIr88SNa4cx26s2Qq9HVq0KqDOltELzjvPMWDHsifsEIZLbjPMj6YIsgz0M/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_387.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_OD3b45OWU0qm7kr-UNEjayQbnMbThwJ-44N6-TP3bXn_WZn4xaZiOSSuIRRcVIuuJYLIAopO1WycHxEBlIr88SNa4cx26s2Qq9HVq0KqDOltELzjvPMWDHsifsEIZLbjPMj6YIsgz0M/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_387.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1VAuTc6a4j3wkZg2mrp7NgBUyiWCosotZxWoQr9xihsNcH6CnPOzktjDYLTOrs9dL5u-yBbqpuf_7ObpEu70zQ4Q1-DXCtmjpVxUdZ8cT-vzNpHh90wHHc2OqIFYsblte1zuTFnsgBJ4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_389.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1VAuTc6a4j3wkZg2mrp7NgBUyiWCosotZxWoQr9xihsNcH6CnPOzktjDYLTOrs9dL5u-yBbqpuf_7ObpEu70zQ4Q1-DXCtmjpVxUdZ8cT-vzNpHh90wHHc2OqIFYsblte1zuTFnsgBJ4/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_389.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhViLBwn1OxXt02DTlFu-grbUiN-FvIChD4lBbka_3CcRYmO92DcKmxfs6FU1rF1vc4iQxPDEs_pxc-IJvrId_Q407ETxMuH0NXjc7WIk3DzLlECex_Pg8u1-CP9gUu2pAwILQfPd33Ccw/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_390.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhViLBwn1OxXt02DTlFu-grbUiN-FvIChD4lBbka_3CcRYmO92DcKmxfs6FU1rF1vc4iQxPDEs_pxc-IJvrId_Q407ETxMuH0NXjc7WIk3DzLlECex_Pg8u1-CP9gUu2pAwILQfPd33Ccw/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_390.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdPgGCL8rk38qxyqKKi7fKfNjEPBFrOIV1TJNm5kY8x9TFZKVXIHFOu7Q9sBr0AmNHc6GZqq624ULW4rcyS8myGpb4Nm2dKaQIDyuzIvIU6MyhNEdX6MFvAQ-f7lKhWtCKz_SxmEATZgU/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_391.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdPgGCL8rk38qxyqKKi7fKfNjEPBFrOIV1TJNm5kY8x9TFZKVXIHFOu7Q9sBr0AmNHc6GZqq624ULW4rcyS8myGpb4Nm2dKaQIDyuzIvIU6MyhNEdX6MFvAQ-f7lKhWtCKz_SxmEATZgU/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_391.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd3EA0EAxE4hK4QwwdkbjIB0s5WLgu6O6ozgAUSGY_NllPLXnpLByskbzBNJ_VxePiLksu9AIPm56qybSxDcRHF8K7ukNwMiSh_WSYrPF7mKTf5_jCz8C3XPMO7rNOQT78r-lD91eDyUg/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_393.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd3EA0EAxE4hK4QwwdkbjIB0s5WLgu6O6ozgAUSGY_NllPLXnpLByskbzBNJ_VxePiLksu9AIPm56qybSxDcRHF8K7ukNwMiSh_WSYrPF7mKTf5_jCz8C3XPMO7rNOQT78r-lD91eDyUg/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_393.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6xBAa16fhRz0YGVK9_GDCdfBWn-7apbA0yT5GEqFXs6na1fU8CkRqZp9suYhW0t7MzfC6E81p51uBf3mTAIbrAjXNLKdoy_rsfWOHZvH_8ruyEq1Vh_xZLFBWk9ECwKijSuzBbZEYHW4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_392.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6xBAa16fhRz0YGVK9_GDCdfBWn-7apbA0yT5GEqFXs6na1fU8CkRqZp9suYhW0t7MzfC6E81p51uBf3mTAIbrAjXNLKdoy_rsfWOHZvH_8ruyEq1Vh_xZLFBWk9ECwKijSuzBbZEYHW4/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_392.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivJK6pYEhls3lhuIwTLH6kRFXRCSiuYBlCcKgh1JeBfK1IXvMADLHwQzQOpUEDZHDdFCzXgwqZrZUeZtE9vrJj3rNV3XE4SmEHPMb_ux71FvX-Ow3iRVxgvY2fuQcpKHB0X5lnEznsw6Y/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_394.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivJK6pYEhls3lhuIwTLH6kRFXRCSiuYBlCcKgh1JeBfK1IXvMADLHwQzQOpUEDZHDdFCzXgwqZrZUeZtE9vrJj3rNV3XE4SmEHPMb_ux71FvX-Ow3iRVxgvY2fuQcpKHB0X5lnEznsw6Y/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_394.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgltQQ4JD3W6jlVjpsViCNygPCK_St1r0V4LqzV3kNh8p9fLX19KMyXHYoyc01nUo73oq3QN142wmdy6jSkJqubpOafg1cCn-SEL-FKNWARH56uMDmxGP6U-VDsRq2ndJCm55lOQLLGdwU/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_395.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgltQQ4JD3W6jlVjpsViCNygPCK_St1r0V4LqzV3kNh8p9fLX19KMyXHYoyc01nUo73oq3QN142wmdy6jSkJqubpOafg1cCn-SEL-FKNWARH56uMDmxGP6U-VDsRq2ndJCm55lOQLLGdwU/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_395.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJYtEV0uI742eXRaBz3U210fYyZHuD5RakdX6TzW-HaulXZOq7a9cb_6eHKhcqu2fib_1hVL3bOXWYnfuw7ORbRGJJNFi6LVhTraUXppY1g3hNLXOTZALg_5EDJFuy9kitB9wzYKsE21M/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_377.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJYtEV0uI742eXRaBz3U210fYyZHuD5RakdX6TzW-HaulXZOq7a9cb_6eHKhcqu2fib_1hVL3bOXWYnfuw7ORbRGJJNFi6LVhTraUXppY1g3hNLXOTZALg_5EDJFuy9kitB9wzYKsE21M/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_377.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlVzpP957WnOGySxDLX4mpVMGmYG9wkjqZMidxkokFWep71_jy5o4Iv26BhXf5ITsj75dmuXk4nlRYsdRHhBEXmFYP1z6ytLwrp_qKUzQxbnPQu8skuM1USl0N_3n6U_il-Ik5EHkReV0/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_396.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlVzpP957WnOGySxDLX4mpVMGmYG9wkjqZMidxkokFWep71_jy5o4Iv26BhXf5ITsj75dmuXk4nlRYsdRHhBEXmFYP1z6ytLwrp_qKUzQxbnPQu8skuM1USl0N_3n6U_il-Ik5EHkReV0/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_396.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgBB0APACuT4hyOBk0ArzNoWsukoWmGkH57AlxDXMerdc4adnRxZmMTuHacS9m71jyEI_VYMIHvDWuwLTe2rnb008qErWrK3zcQBMhLMM2-doN37Gqmc1XMuE_fR9A2FHVDf9onBohY3k/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_397.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgBB0APACuT4hyOBk0ArzNoWsukoWmGkH57AlxDXMerdc4adnRxZmMTuHacS9m71jyEI_VYMIHvDWuwLTe2rnb008qErWrK3zcQBMhLMM2-doN37Gqmc1XMuE_fR9A2FHVDf9onBohY3k/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_397.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVXaDEoDwYTDAgA4j1K1mURsRokKQL3N8Yrm2gEDXIpskeZFWlOPtBMjKONcIeyH7WQ-2-tJ9J6dOjivC7SdoTpB6jDuzm6oFwLPRzerGw6vy15DkbCkteK1AedAEL7AMP41iJQV3B6AU/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_398.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVXaDEoDwYTDAgA4j1K1mURsRokKQL3N8Yrm2gEDXIpskeZFWlOPtBMjKONcIeyH7WQ-2-tJ9J6dOjivC7SdoTpB6jDuzm6oFwLPRzerGw6vy15DkbCkteK1AedAEL7AMP41iJQV3B6AU/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_398.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo3jW2-ih1P6bZqV_4L8wzNlQI2oAyGBc1bNupZoZ4lHnbn5CJJ7VKr9LxrGO6XHVQLZh99xxGWyK7MAubyapWCko9H0JDdW3PGJY4ACsraYx450PobO1TUgU6Xty26-GnIlodGBhNIpM/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_400.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo3jW2-ih1P6bZqV_4L8wzNlQI2oAyGBc1bNupZoZ4lHnbn5CJJ7VKr9LxrGO6XHVQLZh99xxGWyK7MAubyapWCko9H0JDdW3PGJY4ACsraYx450PobO1TUgU6Xty26-GnIlodGBhNIpM/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_400.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDXlHFbwO81jNJvNDRPFwOiPP12fB4ex2x0CoE9Bh4pYvCqFQC6czqIoWaH7R77kEDhejLKxlNft4dFQjj0vBHv7mf35BXkVwpjp7rfaYZT2VfxL4EMNOtmyHHBxDyiEYKNpwun-K3ywg/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_399.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDXlHFbwO81jNJvNDRPFwOiPP12fB4ex2x0CoE9Bh4pYvCqFQC6czqIoWaH7R77kEDhejLKxlNft4dFQjj0vBHv7mf35BXkVwpjp7rfaYZT2VfxL4EMNOtmyHHBxDyiEYKNpwun-K3ywg/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_399.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdBxjqK-jJpLdxJCkeC4ne4gAdBUYRjzc89Rce-aGE98zBfVL5CoGMDBGyr1p4GKyu6rjIs5BeNP40U9Ny67XzD_X6tiDxGetaluHxfD748iPkdMWopr4ZMPtyAPDkWu3Ah_0l-QLTVYw/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_401.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdBxjqK-jJpLdxJCkeC4ne4gAdBUYRjzc89Rce-aGE98zBfVL5CoGMDBGyr1p4GKyu6rjIs5BeNP40U9Ny67XzD_X6tiDxGetaluHxfD748iPkdMWopr4ZMPtyAPDkWu3Ah_0l-QLTVYw/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_401.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4Ae-tXyZS1byr5uO7927rJYnf6l2t2q1D5qBeu-SQ0VTkzkUgFLhY4Tzuv67iDW3c99waK2OZLIxVwS4IJBju6s3r0zzm5GwDcYa12y3lSlW8D5BVsl0vfcdWhUjXe93sZEe59hyphenhyphenExrU/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_402.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4Ae-tXyZS1byr5uO7927rJYnf6l2t2q1D5qBeu-SQ0VTkzkUgFLhY4Tzuv67iDW3c99waK2OZLIxVwS4IJBju6s3r0zzm5GwDcYa12y3lSlW8D5BVsl0vfcdWhUjXe93sZEe59hyphenhyphenExrU/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_402.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdpdeicdSajUUdXLOWwolw9rCOIjkelMeW-UGcgNT5lzupw7KXoy_cB1Y4rXeegEaJAv52tsaCmepGF7U_LDv78iOJa6PIQxRegmOdIOLRiHMTwkZc0A-8kaf4TX8FFlscMC8hmsO67LU/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_403.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdpdeicdSajUUdXLOWwolw9rCOIjkelMeW-UGcgNT5lzupw7KXoy_cB1Y4rXeegEaJAv52tsaCmepGF7U_LDv78iOJa6PIQxRegmOdIOLRiHMTwkZc0A-8kaf4TX8FFlscMC8hmsO67LU/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_403.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfotTXnAU0NrKxFY66gKV1oexs0DF8mXDE4h6ucwwMwluiATivmQb6l6kbW61VBei51ow5TnSmzrtPr_cpXpzFWkYjqLgifHIPlTmY1RgdJKy2y53_BHmlF0o4XaIc1voRDFmXntyJpk4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_404.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfotTXnAU0NrKxFY66gKV1oexs0DF8mXDE4h6ucwwMwluiATivmQb6l6kbW61VBei51ow5TnSmzrtPr_cpXpzFWkYjqLgifHIPlTmY1RgdJKy2y53_BHmlF0o4XaIc1voRDFmXntyJpk4/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_404.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOTuRDU8cmNME7jGPjLVopa7PrtSmkqa3tVkXS0cco4DnBkgSr_QRMKjHfJXaoUykCf8mN0ZKa3jkcJID-yuBPCZljEBEsxP4pWBkc99MCpxbE_n18R0UId2qlLKSXkitKIKmRDSYw62E/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_405.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOTuRDU8cmNME7jGPjLVopa7PrtSmkqa3tVkXS0cco4DnBkgSr_QRMKjHfJXaoUykCf8mN0ZKa3jkcJID-yuBPCZljEBEsxP4pWBkc99MCpxbE_n18R0UId2qlLKSXkitKIKmRDSYw62E/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_405.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgegV67DCQLwmpuc7I4fmTIBY-NrXY0hjK_Sx-0RtPbWk5rU55N350LOxEi9ng-_G53luCNubdpl7x_LEWH_fvFYAIuGDPHfGkVX1xniN_9zoXOLy2epO0qmgLNuE7_-Kcip2O9VU_OjPU/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_406.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgegV67DCQLwmpuc7I4fmTIBY-NrXY0hjK_Sx-0RtPbWk5rU55N350LOxEi9ng-_G53luCNubdpl7x_LEWH_fvFYAIuGDPHfGkVX1xniN_9zoXOLy2epO0qmgLNuE7_-Kcip2O9VU_OjPU/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_406.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSg5N2OuiOs9IjtAdFtwEcitFWX_97tyv_lk0_4QBZKsGWYk5lH-ae6k_uG0PwtGsLNpzlfvBhG0-D114zcUZtOx2maa91Li9rkOzw5raYiY7yzxI57kkrjmXVg14SROa42f3Jt_0qi0U/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_407.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSg5N2OuiOs9IjtAdFtwEcitFWX_97tyv_lk0_4QBZKsGWYk5lH-ae6k_uG0PwtGsLNpzlfvBhG0-D114zcUZtOx2maa91Li9rkOzw5raYiY7yzxI57kkrjmXVg14SROa42f3Jt_0qi0U/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_407.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvRML1Q3QzB00CY_leLNwsspZ2BPFPYu8QJ9GqIOxukOa0bxdK2WCS3HiaQfQezHPQA9-7eb_DiBBFHP9TmswBXTmeNZbIlWR0znmLCjnp-9wFBIbQo5kQWC6HM-bIwf8rVPNOr0FzJ-M/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_408.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvRML1Q3QzB00CY_leLNwsspZ2BPFPYu8QJ9GqIOxukOa0bxdK2WCS3HiaQfQezHPQA9-7eb_DiBBFHP9TmswBXTmeNZbIlWR0znmLCjnp-9wFBIbQo5kQWC6HM-bIwf8rVPNOr0FzJ-M/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_408.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8xc3ASYAxuRegVeh5FWCiub52d5bGbYxG5EQfA-kVBuDvWuPT5eOI9bcZOBfUATFJvdOAZjZC4_Y9dFpqGfX1Xp01fRBbYrqNqNJglEUnLW1fWUieKQEHWctByKQ74pwjNTt4tv9e2uU/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_409.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8xc3ASYAxuRegVeh5FWCiub52d5bGbYxG5EQfA-kVBuDvWuPT5eOI9bcZOBfUATFJvdOAZjZC4_Y9dFpqGfX1Xp01fRBbYrqNqNJglEUnLW1fWUieKQEHWctByKQ74pwjNTt4tv9e2uU/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_409.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrSR0xIKxyCFbasWbbRe2Z1C-bOivzl45vgL3Z4RPuRUdpv7uLwrGQh3zgt5L-wQyR1KwoNA-AeV61ifbZtLhcqSrz0cNB5-YHu_DWHzX5iN_pfV-XYNekPDqtjvXZ5i3f1qrHZOJwYgc/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_410.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrSR0xIKxyCFbasWbbRe2Z1C-bOivzl45vgL3Z4RPuRUdpv7uLwrGQh3zgt5L-wQyR1KwoNA-AeV61ifbZtLhcqSrz0cNB5-YHu_DWHzX5iN_pfV-XYNekPDqtjvXZ5i3f1qrHZOJwYgc/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_410.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHhNFEnOco-vlK4e6QTDfs52Mwn8LgIQC8BMR6p4PHP_pXPB1ZLFooK2-HkpoDy51zJQwoPH8w9rTo5gQIrPeJMI7c2R2qEgB4J94T_bHOp4LsOyprzSyYVKglFS1mBzjPBUIX8b-cH20/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_411.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHhNFEnOco-vlK4e6QTDfs52Mwn8LgIQC8BMR6p4PHP_pXPB1ZLFooK2-HkpoDy51zJQwoPH8w9rTo5gQIrPeJMI7c2R2qEgB4J94T_bHOp4LsOyprzSyYVKglFS1mBzjPBUIX8b-cH20/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_411.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUbCuqdyDC54hfPxxhQ7rtrMKjgf3EfkKj25VC8rhQOGNJuol3P8LJtGETlTswqvP5o3RihNdyEaEG9i7hwGhz8JJg-_gxHBlEV92RuB5_b0AqmKgsz6IsF4i0deEaWk47yadtaCu96rY/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_412.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUbCuqdyDC54hfPxxhQ7rtrMKjgf3EfkKj25VC8rhQOGNJuol3P8LJtGETlTswqvP5o3RihNdyEaEG9i7hwGhz8JJg-_gxHBlEV92RuB5_b0AqmKgsz6IsF4i0deEaWk47yadtaCu96rY/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_412.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMN30A223aNf1c01adJbawuWEoiwC3mES7cEtTP4uCBzYJOGXnVK4ekTHHLi0Q_gEc6fAMlm-gXQkDK8_iWLNcXo4H5LRoms69bugUqiHw5RMX_GOGa1-Av1XLmSGcDnk_QiZ84pbUbNM/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_414.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMN30A223aNf1c01adJbawuWEoiwC3mES7cEtTP4uCBzYJOGXnVK4ekTHHLi0Q_gEc6fAMlm-gXQkDK8_iWLNcXo4H5LRoms69bugUqiHw5RMX_GOGa1-Av1XLmSGcDnk_QiZ84pbUbNM/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_414.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8ceTZXS4_QM_RvDm3L0Rk9a4kFNAn7WPu7p9mERZEMoLWrc0dRW3sYhk6bnVwr1lkOnHo_-eelvuAYOu2fl8mRDLGeUR5wBBqg3LlM0yuKy4R6X8NOnDWWo2YVCpAEqcvCGhopAlG6vI/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_413.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8ceTZXS4_QM_RvDm3L0Rk9a4kFNAn7WPu7p9mERZEMoLWrc0dRW3sYhk6bnVwr1lkOnHo_-eelvuAYOu2fl8mRDLGeUR5wBBqg3LlM0yuKy4R6X8NOnDWWo2YVCpAEqcvCGhopAlG6vI/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_413.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXlyh7F_pVUaEgqin1S8NcUwYm52SRCPAM7FvUcX804-rQRnPj74LMBCy1KAY9eZIgPCYFaISpwjOtJV5Q4ZMafvei2mCU-BUCZQJGhjXfHz4brUaiXylEJQdYTKwDKwurPVQQAg5ghWw/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_415.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXlyh7F_pVUaEgqin1S8NcUwYm52SRCPAM7FvUcX804-rQRnPj74LMBCy1KAY9eZIgPCYFaISpwjOtJV5Q4ZMafvei2mCU-BUCZQJGhjXfHz4brUaiXylEJQdYTKwDKwurPVQQAg5ghWw/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_415.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguxdT4T6KlBmZdFd0fq0xqOoHPJIH07m2_pij31kvuLsre1eJ9_jSDeSBrLLQnvI999T0sfWocXnQNCvvMkzmIalxtYj6icpmhRQRWDgSivlIcunv4vUIwNqq4RSB7Sn676pqrlNiu0EE/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_416.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguxdT4T6KlBmZdFd0fq0xqOoHPJIH07m2_pij31kvuLsre1eJ9_jSDeSBrLLQnvI999T0sfWocXnQNCvvMkzmIalxtYj6icpmhRQRWDgSivlIcunv4vUIwNqq4RSB7Sn676pqrlNiu0EE/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_416.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEbzH3-ph0oyQl_IrDL_AhveTiRPDGigkwqM3FsrHFaO3HGYU7ps3waiFRYv9NKNZHjiGXxVIcSyDtpg8I7g2sAkXOoKEhhZWf0WoZlOaHKAajJRZ7p1eYnBKDSoqZl5O_OtYUz5_S6qU/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_417.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEbzH3-ph0oyQl_IrDL_AhveTiRPDGigkwqM3FsrHFaO3HGYU7ps3waiFRYv9NKNZHjiGXxVIcSyDtpg8I7g2sAkXOoKEhhZWf0WoZlOaHKAajJRZ7p1eYnBKDSoqZl5O_OtYUz5_S6qU/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_417.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMdqp0HYcesIo2dxxEZAHw2oZj0l6pHqxB52kpHqD4UNVk7Vxv0GXGZeFaw6zUizAwV5Gl9ro4eJO0pN8YoreJL-bC7Yy2fzAWbztB0Gr06aUmc-AcZpGkIOzvGBCXOjbSLcylkUPfod4/s72-c/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_358.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>8051 Interrupts Programming - Microcontroller Programming and Embedded Systems</title><link>http://ieeebooks.blogspot.com/2013/04/8051-interrupts-programming.html</link><category>8051 Interrupts Programming</category><category>Microcontroller and embedded systems Interrupts Programming</category><pubDate>Thu, 11 Apr 2013 15:03:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-2272219622527005847</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;br /&gt;
&lt;div style="background-color: white; border: 0px; margin: 0px 0px 0.0001pt; outline: 0px; padding: 0px; text-align: justify;"&gt;
&lt;strong style="background-color: transparent; border: 0px; color: #333333; font-family: Tahoma, Arial, sans-serif; font-size: 12px; line-height: 24px; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; font-size: xx-small; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; font-family: Arial; font-size: 13px; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; border: 0px; line-height: 26px; margin: 0px; outline: 0px; padding: 0px;"&gt;Interrupt&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="background-color: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="color: #333333; font-family: Arial; font-size: x-small;"&gt;&lt;span style="line-height: 26px;"&gt;is one of the most important and powerful concepts and features in&amp;nbsp;Microcontroller&amp;nbsp;/ processor applications. Almost all the real world and real time systems built around microcontrollers and microprocessors make use of interrupts.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; border: 0px; color: #333333; font-family: Tahoma, Arial, sans-serif; font-size: 12px; line-height: 24px; margin: 0px 0px 0.0001pt; outline: 0px; padding: 0px; text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="background-color: white; border: 0px; color: #333333; font-family: Tahoma, Arial, sans-serif; font-size: 12px; line-height: 24px; margin: 0px 0px 0.0001pt; outline: 0px; padding: 0px; text-align: justify;"&gt;
&lt;span style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; font-size: x-small; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;strong style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; font-size: 16px; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; border: 0px; font-family: Arial; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; border: 0px; line-height: 32px; margin: 0px; outline: 0px; padding: 0px;"&gt;What is Interrupt&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; border: 0px; color: #333333; font-family: Tahoma, Arial, sans-serif; font-size: 12px; line-height: 24px; margin: 0px 0px 0.0001pt; outline: 0px; padding: 0px; text-align: justify;"&gt;
&lt;span style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; font-size: xx-small; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; font-family: Arial; font-size: 13px; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; border: 0px; line-height: 26px; margin: 0px; outline: 0px; padding: 0px;"&gt;The interrupts refer to a notification, communicated to the controller, by a hardware device or software, on receipt of which controller momentarily stops and responds to the interrupt. Whenever an interrupt occurs the controller completes the execution of the current instruction and starts the execution of an&lt;strong style="background-color: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px;"&gt;Interrupt Service Routine&lt;/strong&gt;&amp;nbsp;(ISR) or Interrupt Handler.&amp;nbsp;&lt;strong style="background-color: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px;"&gt;ISR&lt;/strong&gt;&amp;nbsp;is a piece of code that tells the processor or controller what to do when the interrupt occurs. After the execution of ISR, controller returns back to the instruction it has jumped from (before the interrupt was received).&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="border: 0px; font-family: Arial; font-size: 13px; line-height: 26px; margin: 0px; outline: 0px; padding: 0px;"&gt;The interrupts can be either&amp;nbsp;&lt;strong style="background-color: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px;"&gt;hardware interrupts&lt;/strong&gt;&amp;nbsp;or&amp;nbsp;&lt;strong style="background-color: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px;"&gt;software interrupts&lt;/strong&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; border: 0px; color: #333333; font-family: Tahoma, Arial, sans-serif; font-size: 12px; line-height: 24px; margin: 0px 0px 0.0001pt; outline: 0px; padding: 0px; text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="background-color: white; border: 0px; color: #333333; font-family: Tahoma, Arial, sans-serif; font-size: 12px; line-height: 24px; margin: 0px 0px 0.0001pt; outline: 0px; padding: 0px; text-align: justify;"&gt;
&lt;span style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; font-size: x-small; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;strong style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; font-size: 16px; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; border: 0px; font-family: Arial; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; border: 0px; line-height: 32px; margin: 0px; outline: 0px; padding: 0px;"&gt;Why need interrupts&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; border: 0px; color: #333333; font-family: Tahoma, Arial, sans-serif; font-size: 12px; line-height: 24px; margin: 0px 0px 0.0001pt; outline: 0px; padding: 0px; text-align: justify;"&gt;
&lt;span style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; font-size: xx-small; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; font-family: Arial; font-size: 13px; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; border: 0px; line-height: 26px; margin: 0px; outline: 0px; padding: 0px;"&gt;An application built around microcontrollers generally has the following structure. It takes input from devices like keypad, ADC etc; processes the input using certain algorithm; and generates an output which is either displayed using devices like seven segment, LCD or used further to operate other devices like motors etc. In such designs, controllers interact with the inbuilt devices like&amp;nbsp;timers&amp;nbsp;and other interfaced peripherals like sensors, serial port etc. The programmer needs to monitor their status regularly like whether the sensor is giving output, whether a signal has been received or transmitted, whether timer has finished counting, or if an interfaced device needs service from the controller, and so on. This state of continuous monitoring is known as polling.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; border: 0px; color: #333333; font-family: Tahoma, Arial, sans-serif; font-size: 12px; line-height: 24px; margin: 0px 0px 0.0001pt; outline: 0px; padding: 0px; text-align: justify;"&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;span style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; font-size: xx-small; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; font-family: Arial; font-size: 13px; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwEvdxwxG__SnAxLTqweDyRrBFtt0pD_mCSi41cc_zQ-LP_7EziWTra7Q3v1VljfLCZJ2vVRgTD2_hGxc6nHC_uARPtoujqwYTfMtD9OIZnBt_0YUSV71hKNahau0U81n4K1liD-nJRl0/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_418.png" imageanchor="1"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwEvdxwxG__SnAxLTqweDyRrBFtt0pD_mCSi41cc_zQ-LP_7EziWTra7Q3v1VljfLCZJ2vVRgTD2_hGxc6nHC_uARPtoujqwYTfMtD9OIZnBt_0YUSV71hKNahau0U81n4K1liD-nJRl0/s400/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_418.png" width="590" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; font-size: xx-small; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; font-family: Arial; font-size: 13px; margin: 0px; outline: 0px; padding: 0px;"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; border: 0px; margin: 0px 0px 0.0001pt; outline: 0px; padding: 0px; text-align: justify;"&gt;
&lt;span style="background-color: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="color: #333333; font-family: Arial; font-size: x-small;"&gt;&lt;span style="line-height: 26px;"&gt;In polling, the&amp;nbsp;Microcontroller&amp;nbsp;keeps checking the status of other devices; and while doing so it does no other operation and consumes all its processing time for monitoring. This problem can be addressed by using interrupts. In interrupt method, the controller responds to only when an interruption occurs. Thus in interrupt method, controller is not required to regularly monitor the status (flags, signals etc.) of interfaced and inbuilt devices.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; border: 0px; color: #333333; font-family: Tahoma, Arial, sans-serif; font-size: 12px; line-height: 24px; margin: 0px 0px 0.0001pt; outline: 0px; padding: 0px; text-align: justify;"&gt;
&lt;span style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; font-size: xx-small; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; font-family: Arial; font-size: 13px; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="background-color: white; border: 0px; color: #333333; font-family: Tahoma, Arial, sans-serif; font-size: 12px; line-height: 24px; margin: 0px 0px 0.0001pt; outline: 0px; padding: 0px; text-align: justify;"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T55mCg9ql9JuMcSHsv1Oxu0ajy9AWsiRgTyggYV1TZgN9xpL6cfIyuXsvQ_zatpczpwxDVvrKXhTpDbti8qhR7zadweOsKcyT0NQGdh6SFDqwj51bMCZDGZRdLx2aMkCwy9K-C1nAjc/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_420.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T55mCg9ql9JuMcSHsv1Oxu0ajy9AWsiRgTyggYV1TZgN9xpL6cfIyuXsvQ_zatpczpwxDVvrKXhTpDbti8qhR7zadweOsKcyT0NQGdh6SFDqwj51bMCZDGZRdLx2aMkCwy9K-C1nAjc/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_420.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEKj8GIt0cL0sEMmLgtAOdYeI4JMxEhyphenhyphentUx_A0MHWS8weVAy-PnPVeOel49J5offVBD93oFF1RIAQo_tP1LLi7raIdrMEc48Eo-D754MS49PH565IjDGkSTcQ2zZhbUNxjGgvNv84G4uo/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_419.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEKj8GIt0cL0sEMmLgtAOdYeI4JMxEhyphenhyphentUx_A0MHWS8weVAy-PnPVeOel49J5offVBD93oFF1RIAQo_tP1LLi7raIdrMEc48Eo-D754MS49PH565IjDGkSTcQ2zZhbUNxjGgvNv84G4uo/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_419.png" width="588" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJdqnLAl39oOGchCSXy4ZdOrxpQkuuTiLgI4skbIrzV0JFBsRzH4s2bHmveCdgro9t9Qe4c_Xy5OWoVv_T77ZZ5JGeKAPud3mcINJig3x3qdC4RfohMwq6xGTZ7sbS-SJNupeqJMXaHo4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_422.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJdqnLAl39oOGchCSXy4ZdOrxpQkuuTiLgI4skbIrzV0JFBsRzH4s2bHmveCdgro9t9Qe4c_Xy5OWoVv_T77ZZ5JGeKAPud3mcINJig3x3qdC4RfohMwq6xGTZ7sbS-SJNupeqJMXaHo4/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_422.png" width="588" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9RZTG5CTH4wI0PKssZ7yeTARZRKerlVkQT3YRxC3MoyetLrin_MK4nWvL5PwLTjz17YtZPGltWKYWSnltyjzMKlX1iSPmZ775-rmb0GzJzUUYLyDo4mcvKPWMKDMzJIuU1k9460EMg3k/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_423.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9RZTG5CTH4wI0PKssZ7yeTARZRKerlVkQT3YRxC3MoyetLrin_MK4nWvL5PwLTjz17YtZPGltWKYWSnltyjzMKlX1iSPmZ775-rmb0GzJzUUYLyDo4mcvKPWMKDMzJIuU1k9460EMg3k/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_423.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnJhjYrs7rGflwZ0mN4dCa1Egl5pAnrU2OhUZqQwQL7JYghL_erhXFGoae0KCBFbZbktqwjVt1u74oOJMrYGhJ_XPBvQkYlTYHPRYTTDKcNPfai-x56ZlRrArn_SiR6_ExYAcuVlvWWDI/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_424.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnJhjYrs7rGflwZ0mN4dCa1Egl5pAnrU2OhUZqQwQL7JYghL_erhXFGoae0KCBFbZbktqwjVt1u74oOJMrYGhJ_XPBvQkYlTYHPRYTTDKcNPfai-x56ZlRrArn_SiR6_ExYAcuVlvWWDI/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_424.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm4VHdYZHPzTyQnzh0doishE65u0dKLCy8abO0Wd0FfQ8uz6lg-ISNcLd63P7jnKx_altpIB25yJnwR5lBXSHGj3K1w1hEESIiL_Ejxnz39Vh6XNxJbnUSeJbm4A0D3xCtfcMteZcyeG8/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_425.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm4VHdYZHPzTyQnzh0doishE65u0dKLCy8abO0Wd0FfQ8uz6lg-ISNcLd63P7jnKx_altpIB25yJnwR5lBXSHGj3K1w1hEESIiL_Ejxnz39Vh6XNxJbnUSeJbm4A0D3xCtfcMteZcyeG8/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_425.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMgdXIbWw-Kxf4GDL3UKtmuvj8IN2T6ErwSUjBC2d6ZHKV4fejshL9L9b8mGlLSAkMAVOdYhMUEJcWar_XK6odPIz4L4nU2K58o6oo6lK0KdQkRyaQffZJqt6KnFRIQmmfOzbRI3JgELA/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_426.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMgdXIbWw-Kxf4GDL3UKtmuvj8IN2T6ErwSUjBC2d6ZHKV4fejshL9L9b8mGlLSAkMAVOdYhMUEJcWar_XK6odPIz4L4nU2K58o6oo6lK0KdQkRyaQffZJqt6KnFRIQmmfOzbRI3JgELA/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_426.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglHdQd8i_7EqSA_WuMOPrCbqcVrpWdHHAWnA9JsNZqVrSDqqRbnXKxVG4yor4_mG-zioPrQAZfzY3IU2iURREw8XSIN9qZUle2fA1EIIdSY6popK2z5IjJDdDFHBUXg5uoM36uOps5KrY/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_427.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglHdQd8i_7EqSA_WuMOPrCbqcVrpWdHHAWnA9JsNZqVrSDqqRbnXKxVG4yor4_mG-zioPrQAZfzY3IU2iURREw8XSIN9qZUle2fA1EIIdSY6popK2z5IjJDdDFHBUXg5uoM36uOps5KrY/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_427.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIjtL0xMGVslGVqDuhFE4wL1eiZIQQEl9xjPCfvxNRKcuX3rdictGsrwQm1wirxTgWbTkTYffzgnu2sGXk9cwozVB48xx7KfMsgT1DFAMXOW8FAUg7H-HxcY9_iS4gQCi-KLVmMrMzaWE/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_429.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIjtL0xMGVslGVqDuhFE4wL1eiZIQQEl9xjPCfvxNRKcuX3rdictGsrwQm1wirxTgWbTkTYffzgnu2sGXk9cwozVB48xx7KfMsgT1DFAMXOW8FAUg7H-HxcY9_iS4gQCi-KLVmMrMzaWE/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_429.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9NSq2S_e2IEQyt_KWyzTjG5OB5qrlAnWzI-Ibcyy9dxDLhxIrNuX1czPP3lY5QbRukfZeQovVLHRxiYFv3H4PmKJDJsN8amWauUXClzPguQtTH6bqWzFviAAlofXKI7IvNfxKGwURhHY/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_428.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9NSq2S_e2IEQyt_KWyzTjG5OB5qrlAnWzI-Ibcyy9dxDLhxIrNuX1czPP3lY5QbRukfZeQovVLHRxiYFv3H4PmKJDJsN8amWauUXClzPguQtTH6bqWzFviAAlofXKI7IvNfxKGwURhHY/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_428.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFY1pbwCb58SYKmEirwDxgZyW2WtKnPus4soXkP92g6Qr9QGJDQ-h3eLbZGMcrIgKezZi_60Bbj_TVOYz3UaJmXNpGY_iBMxZtCYZ_2owZbX0b6P9ouZ67JKqdD1XF9o9g-6RklhH7k8M/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_432.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFY1pbwCb58SYKmEirwDxgZyW2WtKnPus4soXkP92g6Qr9QGJDQ-h3eLbZGMcrIgKezZi_60Bbj_TVOYz3UaJmXNpGY_iBMxZtCYZ_2owZbX0b6P9ouZ67JKqdD1XF9o9g-6RklhH7k8M/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_432.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNKsHNMoGWNXiQjnoY0rwHOkOcCmoLlfZST45tcz5329QYiSibNIpAIV5QPD6RpItMkIEholPlsH-bagxYOj0ov0pA6Kq1C1aPdilyXvXhEGQQXKyUPkmx2AYSwooBdDwpI5E0VvWyoe4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_431.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNKsHNMoGWNXiQjnoY0rwHOkOcCmoLlfZST45tcz5329QYiSibNIpAIV5QPD6RpItMkIEholPlsH-bagxYOj0ov0pA6Kq1C1aPdilyXvXhEGQQXKyUPkmx2AYSwooBdDwpI5E0VvWyoe4/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_431.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEKf4uIryGIpNhmgeBno3qZadx0SbsxbRL5q785Y7QUDJVS7lUj3bLTc08zj0oTVJx1FaSETOHz96SyPwKpaq_y4BpNT7E017leq8p8UKntFExs1C3sUa1Tam608e9LX0aunVCoWCGMlI/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_433.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEKf4uIryGIpNhmgeBno3qZadx0SbsxbRL5q785Y7QUDJVS7lUj3bLTc08zj0oTVJx1FaSETOHz96SyPwKpaq_y4BpNT7E017leq8p8UKntFExs1C3sUa1Tam608e9LX0aunVCoWCGMlI/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_433.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgblTQxDmQ-zvFWliOrt7u_tIUvdGfbp7LGtYURQaMj57f0HBhHuBymwvd9oK4iK48gxTnnAM2EIJnIodEJ5Da2G5eUhgApHmMSpTNZIaS8aLacdR7vMVdd1Ewwivhj7HTlNb4atJJShjY/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_434.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgblTQxDmQ-zvFWliOrt7u_tIUvdGfbp7LGtYURQaMj57f0HBhHuBymwvd9oK4iK48gxTnnAM2EIJnIodEJ5Da2G5eUhgApHmMSpTNZIaS8aLacdR7vMVdd1Ewwivhj7HTlNb4atJJShjY/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_434.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7xazUAF0JhxQ13szgZNSP3ztAR9uTbzu9WSQDOb3BcSai8eevTDcWol3a1czc2zH81GiLO2oCcO2FTx8QGPWVGiRoXhHIyk5zN00p0OAf9mAfF95YDgDgaMaCp-SyGuE2YcBUF2USHWw/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_436.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7xazUAF0JhxQ13szgZNSP3ztAR9uTbzu9WSQDOb3BcSai8eevTDcWol3a1czc2zH81GiLO2oCcO2FTx8QGPWVGiRoXhHIyk5zN00p0OAf9mAfF95YDgDgaMaCp-SyGuE2YcBUF2USHWw/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_436.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqZSwMkjNkw4boLKPM78avZgg7gQOuhTzNPE-oMRXfULIoZioszYOn_pOd6FfiMo-yDBck3crDRmNR1brtp5T09Df1wosVYXKw6xAEd3L01MLJaecQ_6iqBrC1IDAShjephsR7E5Kl_Kg/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_435.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqZSwMkjNkw4boLKPM78avZgg7gQOuhTzNPE-oMRXfULIoZioszYOn_pOd6FfiMo-yDBck3crDRmNR1brtp5T09Df1wosVYXKw6xAEd3L01MLJaecQ_6iqBrC1IDAShjephsR7E5Kl_Kg/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_435.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglVCMGAVFKJZuS8R_2ssf4GCzuCgiOT5sFCqsMECbtqMHhxhAAWU-7GE0Xp7vWZ7VDsrMRZOHpvQTAtYbOsET6Mhfyu3yKbvWny5099zFvi_P1HuxfaAwjexawKTMNliwxUHJk3ddUiyY/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_438.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglVCMGAVFKJZuS8R_2ssf4GCzuCgiOT5sFCqsMECbtqMHhxhAAWU-7GE0Xp7vWZ7VDsrMRZOHpvQTAtYbOsET6Mhfyu3yKbvWny5099zFvi_P1HuxfaAwjexawKTMNliwxUHJk3ddUiyY/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_438.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqxhegCSOjwOw4CW_OLPfnwgYxu3WYiabiWckAu_53OjrcOrByk-gAx60CrfeW3SMLeZH2DQxggdJ_u9ZIV1q-L1Egs6KSMD9OywYjPBc2Iyvk5kqc_8hYvvesHFSV-SZgCrNfT_iaewU/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_439.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqxhegCSOjwOw4CW_OLPfnwgYxu3WYiabiWckAu_53OjrcOrByk-gAx60CrfeW3SMLeZH2DQxggdJ_u9ZIV1q-L1Egs6KSMD9OywYjPBc2Iyvk5kqc_8hYvvesHFSV-SZgCrNfT_iaewU/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_439.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3OujRlmMa6aA8xvwnKXKyp0fMed__w4y5JCHSItWp_JjJPRgO2TZuxsAtLJvZjeWQ5cIVq537_YVtrpWM4E3CC511d1aKQASOGw8ORIEVd_n6L3l4w79sMih1vZ0u_rVEkx695bGam7U/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_441.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3OujRlmMa6aA8xvwnKXKyp0fMed__w4y5JCHSItWp_JjJPRgO2TZuxsAtLJvZjeWQ5cIVq537_YVtrpWM4E3CC511d1aKQASOGw8ORIEVd_n6L3l4w79sMih1vZ0u_rVEkx695bGam7U/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_441.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggyX7bej2FWsNx_ChnAbHMuWiCORxbsTr3BF0sDxI5mB42Sjx4PvtKRlLnNu7R0ZB6zVfQV3m2AFPQ79cIIHU7kPHxeiYtjlLpKpacqV8or0o75QIC1-p4U7FJ6TQC5Xrg-mfEvb2N_is/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_440.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggyX7bej2FWsNx_ChnAbHMuWiCORxbsTr3BF0sDxI5mB42Sjx4PvtKRlLnNu7R0ZB6zVfQV3m2AFPQ79cIIHU7kPHxeiYtjlLpKpacqV8or0o75QIC1-p4U7FJ6TQC5Xrg-mfEvb2N_is/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_440.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEF-YkybCGyqJD5wmPF1XkSrFrnjmKn7euAPyX6qE4jsU1jExO_qnlOnwyu-Tqbk-jk4p_ysEJgiTomzqfPZR3HXl8ox1srUP2tRWrMQ7kVNBrEZQUScyUWT7Rn97zjUwM58BGradrJ7A/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_445.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEF-YkybCGyqJD5wmPF1XkSrFrnjmKn7euAPyX6qE4jsU1jExO_qnlOnwyu-Tqbk-jk4p_ysEJgiTomzqfPZR3HXl8ox1srUP2tRWrMQ7kVNBrEZQUScyUWT7Rn97zjUwM58BGradrJ7A/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_445.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDICxeyP21YvS5_ju9kD6CCpdLAvSA6m8qA6W54nYFwCftm01juta6qXZWPogOjHcloVJzdA85mMXlolD2WxjHQb84J9i1TbNCEqDmp8kkBEZG2Tnecj22Lbtf-RS0aY5oVb2CGJydNfk/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_444.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDICxeyP21YvS5_ju9kD6CCpdLAvSA6m8qA6W54nYFwCftm01juta6qXZWPogOjHcloVJzdA85mMXlolD2WxjHQb84J9i1TbNCEqDmp8kkBEZG2Tnecj22Lbtf-RS0aY5oVb2CGJydNfk/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_444.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh62QkvOTquJXA2Xghbdia71eU0KCUfvf4dZJcg85mU20QwKHYI7qw62suM_0uUqCJ-RI6l6bsFO355HwihyKiXAcYCaZbBW7K8SVlAyDYc72Sqt5A32Ru5VWmdLaBnBZfwqHsmNYsIR3k/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_448.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh62QkvOTquJXA2Xghbdia71eU0KCUfvf4dZJcg85mU20QwKHYI7qw62suM_0uUqCJ-RI6l6bsFO355HwihyKiXAcYCaZbBW7K8SVlAyDYc72Sqt5A32Ru5VWmdLaBnBZfwqHsmNYsIR3k/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_448.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif8EhoaxX7UFc_wh5Lr5Ceb9-gIf00J7AMCClr_THQp6k-kaesIrwgOIGQvuRJANvBmuInIwLvWR_u1VWsX_Uw9zm36WlbfuDEe3mKROc_xjc7fCMmUdcqVoLDFpaxRRrxIIh_2cLdnhs/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_446.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif8EhoaxX7UFc_wh5Lr5Ceb9-gIf00J7AMCClr_THQp6k-kaesIrwgOIGQvuRJANvBmuInIwLvWR_u1VWsX_Uw9zm36WlbfuDEe3mKROc_xjc7fCMmUdcqVoLDFpaxRRrxIIh_2cLdnhs/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_446.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRaOtLBEUhEZoegTVSMUowtL8ZZJg1NIXYpw2ehIJX2tNh2myY9z1qHXrBqe2Ake1O9kCqmzAtF4WwFUYehmEd5HJJt6DQhR9RqxFpDwmr-cpPL2Aqv562wUulP2pn_bUSIGRNfr8wl_c/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_447.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRaOtLBEUhEZoegTVSMUowtL8ZZJg1NIXYpw2ehIJX2tNh2myY9z1qHXrBqe2Ake1O9kCqmzAtF4WwFUYehmEd5HJJt6DQhR9RqxFpDwmr-cpPL2Aqv562wUulP2pn_bUSIGRNfr8wl_c/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_447.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBGs6D65957YUBocWkX2BWESergyiPWBvJNir0_xJDEmAENxWPXObNCzCHfnAmtgJGRdXOxK0-iBS1qZsiFvUaR5uNyHcnIP0w-VMjf6nENdVVZUpAD8GtdOKjPztsqTR311I832k3mfs/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_451.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBGs6D65957YUBocWkX2BWESergyiPWBvJNir0_xJDEmAENxWPXObNCzCHfnAmtgJGRdXOxK0-iBS1qZsiFvUaR5uNyHcnIP0w-VMjf6nENdVVZUpAD8GtdOKjPztsqTR311I832k3mfs/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_451.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSyI6jrXXY6OpShtXdJAHPcka0BuWB7S7xtQiuvVNaD9qOY8XS5ne25SKtfLF6obh1Pjx_LPMr20413coYr0lZqpfwpg1hDFeI5wfyFDo_4qdbDz3h10OJWk7Dvb0u9z7JACLWWZsE7qQ/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_450.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSyI6jrXXY6OpShtXdJAHPcka0BuWB7S7xtQiuvVNaD9qOY8XS5ne25SKtfLF6obh1Pjx_LPMr20413coYr0lZqpfwpg1hDFeI5wfyFDo_4qdbDz3h10OJWk7Dvb0u9z7JACLWWZsE7qQ/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_450.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWsb0pLKmE9rmvO-GqFGcnBxFBdjhzk7H83qiAh6hoJ7j0PryB03jsd926Vh5QLk34RdYZhEfE_NweZ4oWunEXip5dbNyP04IuoO9-t6xj1N8NIsmJ-krpOL0ckBs77fiF1w8AlpqKU4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_452.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWsb0pLKmE9rmvO-GqFGcnBxFBdjhzk7H83qiAh6hoJ7j0PryB03jsd926Vh5QLk34RdYZhEfE_NweZ4oWunEXip5dbNyP04IuoO9-t6xj1N8NIsmJ-krpOL0ckBs77fiF1w8AlpqKU4/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_452.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHsEw3urbDNKcdKJYzMdR2KkU1gxSAvleffSerYJshr934wOYbEMmqfX1fErgKqHHLHcYHOBI9nGZ-AY65p7Z86PFQKGntq7i7fiOJCkcY-tj_1L7TxHry4coCCX4iXpbMjd9JQ6WOXHU/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_449.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHsEw3urbDNKcdKJYzMdR2KkU1gxSAvleffSerYJshr934wOYbEMmqfX1fErgKqHHLHcYHOBI9nGZ-AY65p7Z86PFQKGntq7i7fiOJCkcY-tj_1L7TxHry4coCCX4iXpbMjd9JQ6WOXHU/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_449.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx71g4-KtE9HnOxJUsDUXAAcaGuzVae_xDNi8kFd4r04Ty_HjX0fNzpOYMlOURq6ICPDrAZ51bGcVFykSzSzUn_eRRdRynmJOze8ekU8Ij5-EF1oXGFe2D7VNBE9DhnvOVW9tIThGI6iQ/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_453.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx71g4-KtE9HnOxJUsDUXAAcaGuzVae_xDNi8kFd4r04Ty_HjX0fNzpOYMlOURq6ICPDrAZ51bGcVFykSzSzUn_eRRdRynmJOze8ekU8Ij5-EF1oXGFe2D7VNBE9DhnvOVW9tIThGI6iQ/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_453.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgOpw6YqTxX2-y-G9hq-5bqNrggcewnbmRRISIr5qUn8lQt0pNgWrXYIPnHxojk9zz-3wd1I1B6u3B7sB7jlX2sywWaNBCSWg7wdLxDlNQhEM7BwXKYiAe2GNQIAx4L8DY7Cva0RK1rsc/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_454.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgOpw6YqTxX2-y-G9hq-5bqNrggcewnbmRRISIr5qUn8lQt0pNgWrXYIPnHxojk9zz-3wd1I1B6u3B7sB7jlX2sywWaNBCSWg7wdLxDlNQhEM7BwXKYiAe2GNQIAx4L8DY7Cva0RK1rsc/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_454.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg06UG2MgtT9UMd_72ebnowoNp3vX2uKhh-IXoW5N-WnG-ajxmUB4S7RTyt7aC3SBgZ__tEV3j1XIjvBkKChwraCaPxE0Wv07fGcGBrdje_DqFEIhy8t6DEO7nmbGTsF3LIgD8z44nNa-M/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_456.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg06UG2MgtT9UMd_72ebnowoNp3vX2uKhh-IXoW5N-WnG-ajxmUB4S7RTyt7aC3SBgZ__tEV3j1XIjvBkKChwraCaPxE0Wv07fGcGBrdje_DqFEIhy8t6DEO7nmbGTsF3LIgD8z44nNa-M/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_456.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQKrtNMcCMhEyoP0-av-WzfY6ucX4jk0a-dgAdQr6fycFNZ9CQY_e69meajkJ_zFBddmZoupvtE175mjme8el7bc-XOzwVaWi6PqCeBEbjHBGd-IMna1XR2nHcNn1x-VI9KeX_9aIgvD4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_455.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQKrtNMcCMhEyoP0-av-WzfY6ucX4jk0a-dgAdQr6fycFNZ9CQY_e69meajkJ_zFBddmZoupvtE175mjme8el7bc-XOzwVaWi6PqCeBEbjHBGd-IMna1XR2nHcNn1x-VI9KeX_9aIgvD4/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_455.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRl3nI8bkUDwSC9KyAuiQ3QHe8aZrzPZb-SLlGvsXSumvBLpxpODkwHll4mbt1yi99nCucBtFXBWlx1nP4zsYeFsWe5wyfvPw0wTdMtt9fV8GQ7n_8kWJ_-fWApVLIGkYBUtZFATaHSlk/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_457.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRl3nI8bkUDwSC9KyAuiQ3QHe8aZrzPZb-SLlGvsXSumvBLpxpODkwHll4mbt1yi99nCucBtFXBWlx1nP4zsYeFsWe5wyfvPw0wTdMtt9fV8GQ7n_8kWJ_-fWApVLIGkYBUtZFATaHSlk/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_457.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh97Y8AsS_QLsyLpmbcUF8_VJkDiKNX3TgZXdCcoVYJX5fvTxCY8Hi_UJavuCL9CUR24xYR2GoGBchugNXSjLjWSGm7TEORsSRm7St9-Hj-mBeqHr1znu0512JT5PokyCZ20KFSUjFPx0s/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_458.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh97Y8AsS_QLsyLpmbcUF8_VJkDiKNX3TgZXdCcoVYJX5fvTxCY8Hi_UJavuCL9CUR24xYR2GoGBchugNXSjLjWSGm7TEORsSRm7St9-Hj-mBeqHr1znu0512JT5PokyCZ20KFSUjFPx0s/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_458.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0JWCY72oV3jVQqanAsw7RkvG-nlP7H4RkeBSJ6UvgLANiWXoioYgAWkbRScXEeDovrbuLsDHQiNWvD-o0YQZED5luPoikeR9elLSK7QKxyXKsae8KHjpEuuFFf1k92ss5wSdH4VwEQeI/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_459.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0JWCY72oV3jVQqanAsw7RkvG-nlP7H4RkeBSJ6UvgLANiWXoioYgAWkbRScXEeDovrbuLsDHQiNWvD-o0YQZED5luPoikeR9elLSK7QKxyXKsae8KHjpEuuFFf1k92ss5wSdH4VwEQeI/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_459.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPLPoXXe9zVm_HfndxoPT6bDEPc8mnA7empfiIYInTeXXHd51Ni43Fi3oYBkyTBWjLEoBbrTFNuLRCyIQx8ywdaKRcCAIMI3YMVbc3T3jmg4ONbU-EV5re2hRCPnVpOuM40dKfq8YI0Vs/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_460.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPLPoXXe9zVm_HfndxoPT6bDEPc8mnA7empfiIYInTeXXHd51Ni43Fi3oYBkyTBWjLEoBbrTFNuLRCyIQx8ywdaKRcCAIMI3YMVbc3T3jmg4ONbU-EV5re2hRCPnVpOuM40dKfq8YI0Vs/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_460.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrcwfQFrpMCfMf_mGEkaYFdICMaxYB9bcJ4RrHQiyOdM4QFU0uXolRrfrBXZZj1za1m6nAm6Ih85ldYzhw_hAZfT_2XlBbuav8QDZXayadO8vZscx0RGrOy-TJjsANWw95i3eXf01cN1I/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_461.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrcwfQFrpMCfMf_mGEkaYFdICMaxYB9bcJ4RrHQiyOdM4QFU0uXolRrfrBXZZj1za1m6nAm6Ih85ldYzhw_hAZfT_2XlBbuav8QDZXayadO8vZscx0RGrOy-TJjsANWw95i3eXf01cN1I/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_461.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVKnwLcDqyoZjxCrq-A2sHxJixwk7eCrddjjoCvQKQXX2jMRjvPdCoMSGC3jwupEtR3r3J6yowxPiak9xmlajrYKNB5n5d5YuHQrOOLrc71L8LFKqV13X_NCz2PIgcCj7crqJssSrzRzA/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_462.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVKnwLcDqyoZjxCrq-A2sHxJixwk7eCrddjjoCvQKQXX2jMRjvPdCoMSGC3jwupEtR3r3J6yowxPiak9xmlajrYKNB5n5d5YuHQrOOLrc71L8LFKqV13X_NCz2PIgcCj7crqJssSrzRzA/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_462.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbofmpNLzbB9DPmz8egJaQ6OX9zpQ4GFefDiBZ5kHEZgp57-ANSMD55NcyDu5bTOLUsOVFz17O2yRfC00Jax5WHoHgESgI-Pk8G11lb3RgbTFKAQw2BnPwEtZh5el9pPXPWtEpqj-YBsQ/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_463.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbofmpNLzbB9DPmz8egJaQ6OX9zpQ4GFefDiBZ5kHEZgp57-ANSMD55NcyDu5bTOLUsOVFz17O2yRfC00Jax5WHoHgESgI-Pk8G11lb3RgbTFKAQw2BnPwEtZh5el9pPXPWtEpqj-YBsQ/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_463.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAhJ_XKNceVl1aMGdrnKe2Yh0ORwQcMAbmQBzhm9nNI_k96i4jveCGwDnWB0a3g_qb0k351BVZbc4N9X7Ycg6tLlZ8aQ9Xijunc0baGih1Qt6G_vrgY6DxmgeLwOxSElpfPbwoIQhZBfs/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_465.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAhJ_XKNceVl1aMGdrnKe2Yh0ORwQcMAbmQBzhm9nNI_k96i4jveCGwDnWB0a3g_qb0k351BVZbc4N9X7Ycg6tLlZ8aQ9Xijunc0baGih1Qt6G_vrgY6DxmgeLwOxSElpfPbwoIQhZBfs/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_465.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQO_QXx9boX6w6_WaPonLf8rVGaEXOut0hVJiwyAtS6vAxbCUUjUj0L4OtT8TmZVxHnBDIGRB-ofJIr1znEwqMGlm722uU2jnQADco5DUgAHcWQGhAfWIir6QMnyQuWWhyphenhyphenHkF21P1ocVE/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_464.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQO_QXx9boX6w6_WaPonLf8rVGaEXOut0hVJiwyAtS6vAxbCUUjUj0L4OtT8TmZVxHnBDIGRB-ofJIr1znEwqMGlm722uU2jnQADco5DUgAHcWQGhAfWIir6QMnyQuWWhyphenhyphenHkF21P1ocVE/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_464.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3kWKrct2sIHSVZGomfg6XYEaRpC_ba-cOKCLkvJI_33XXaEmHUo5Ou4t_1YYkNwKluD_IS9nuNTffYQ-U282Z5l67s6LO5Si7wXIklSJSpd60VIIW_j12jp7v5-cnjDIDyuRj2u8oQXk/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_466.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3kWKrct2sIHSVZGomfg6XYEaRpC_ba-cOKCLkvJI_33XXaEmHUo5Ou4t_1YYkNwKluD_IS9nuNTffYQ-U282Z5l67s6LO5Si7wXIklSJSpd60VIIW_j12jp7v5-cnjDIDyuRj2u8oQXk/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_466.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1SwVx0vSfR90RDkIftijj-amisQFS-ealRkkvc2u9V5olTFHQR6lc3dJLK9HfYbwOSHApIwkBvonuvehWMyMSvbM3ZEVKkjVeuLRnOwO34Z8W9ZIDZPmbuF8DqsmLdKEyoL7UFyc-AEo/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_467.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1SwVx0vSfR90RDkIftijj-amisQFS-ealRkkvc2u9V5olTFHQR6lc3dJLK9HfYbwOSHApIwkBvonuvehWMyMSvbM3ZEVKkjVeuLRnOwO34Z8W9ZIDZPmbuF8DqsmLdKEyoL7UFyc-AEo/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_467.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDyWnOrB0_lYXhIE8i_O2Xw6V-GCZLIAfUun7xRSaBUe5UZl0jYhelTQYXW1DrSTqkmmcGTujhuJFQE540D6OaFuHo2rgGuuih_dkkzGrP7bLn2TjPfpl4u5VIWuRGLbFoP_JmBwa2WaU/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_468.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDyWnOrB0_lYXhIE8i_O2Xw6V-GCZLIAfUun7xRSaBUe5UZl0jYhelTQYXW1DrSTqkmmcGTujhuJFQE540D6OaFuHo2rgGuuih_dkkzGrP7bLn2TjPfpl4u5VIWuRGLbFoP_JmBwa2WaU/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_468.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTcf0sXXtlEh1kKAkgC-Z33-rnWpmWodU6V6w2MLShyHo9Odi-bjK2OT3EPDUYoBIuwp8k5quyFtsn_Dyrj3_sXA_eDOFzvkI2I83-M2iPFL0Cu-xkGHwSxc5Cg2dmMhJQlyQ16SpKS7w/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_469.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTcf0sXXtlEh1kKAkgC-Z33-rnWpmWodU6V6w2MLShyHo9Odi-bjK2OT3EPDUYoBIuwp8k5quyFtsn_Dyrj3_sXA_eDOFzvkI2I83-M2iPFL0Cu-xkGHwSxc5Cg2dmMhJQlyQ16SpKS7w/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_469.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsRbJlk89gESbEqzO3ezYO4fdq9bqrmWku-6W93wCfD9yjmTxFF9vHS_LJGaPdzHtYFzMcQ5nnIxlzhCxBL-hjVczSoruUfkn4karYnRcQMn8TBmiOzgqOXchV-9TVq6gAnjz-hrsDVSM/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_471.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsRbJlk89gESbEqzO3ezYO4fdq9bqrmWku-6W93wCfD9yjmTxFF9vHS_LJGaPdzHtYFzMcQ5nnIxlzhCxBL-hjVczSoruUfkn4karYnRcQMn8TBmiOzgqOXchV-9TVq6gAnjz-hrsDVSM/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_471.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjJYjisJnJPhNxP48UrbhnnI3-PoMCeOU5HTQX6MLz4nR2ktGQVNiaDIOEqUuvL2mitq3v7bzxDIuJcsq7BMtsnSOTmHTIIAtkTVmlNLhvUkKByF6Y0lTWcbwI3NPOk8UBQ2mUtNAWGGs/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_470.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjJYjisJnJPhNxP48UrbhnnI3-PoMCeOU5HTQX6MLz4nR2ktGQVNiaDIOEqUuvL2mitq3v7bzxDIuJcsq7BMtsnSOTmHTIIAtkTVmlNLhvUkKByF6Y0lTWcbwI3NPOk8UBQ2mUtNAWGGs/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_470.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT-mQMJETgsvkkCxpjiNs9O1osF7Wxg9TM6QkcyDWZMGzb08WPvacG_qt8eLzFN5Ak11syErqY7zBEOUwWDek-CmgNL9H3tCgoHc4HGwRiTWIMINJ6bQUe_YQ4vGply1Q5D-qm1sY3-BY/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_472.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT-mQMJETgsvkkCxpjiNs9O1osF7Wxg9TM6QkcyDWZMGzb08WPvacG_qt8eLzFN5Ak11syErqY7zBEOUwWDek-CmgNL9H3tCgoHc4HGwRiTWIMINJ6bQUe_YQ4vGply1Q5D-qm1sY3-BY/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_472.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKLAEV22Khfx-0OSvt77q-0uQ6erb3XLoc0bNnkm7eoDArjmf4grU2pGhdanSt2WbsomHyw_BqP03Xj73PydDUhsmy0PqsgDmzvjnMYwY7v37QIZJt140ZJDpcvTkSaaRjAk437Y6uBOg/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_473.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKLAEV22Khfx-0OSvt77q-0uQ6erb3XLoc0bNnkm7eoDArjmf4grU2pGhdanSt2WbsomHyw_BqP03Xj73PydDUhsmy0PqsgDmzvjnMYwY7v37QIZJt140ZJDpcvTkSaaRjAk437Y6uBOg/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_473.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5QnN4xj_pcL4ohSloVKKNqxEi4TJLv7srNgSZTvjbRBhcsZjJ3Uo-l8rAtZbtQdgqEJtYexqmhiUTeAR7z6uebyhu8q_e8IkLeDUE_0mJ9eOcLGhVWGsvNamSgke0qgnw0Y2jOe0ui5g/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_421.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5QnN4xj_pcL4ohSloVKKNqxEi4TJLv7srNgSZTvjbRBhcsZjJ3Uo-l8rAtZbtQdgqEJtYexqmhiUTeAR7z6uebyhu8q_e8IkLeDUE_0mJ9eOcLGhVWGsvNamSgke0qgnw0Y2jOe0ui5g/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_421.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi82fNxMmJpPLtg8W_eCUrOHePKU7Dsg0N62vjXF_eAjq7d-lFYDxHFCMtvf56VS1zc8m7Z2k659x7i9RpvopZJzZHaJLHYgeUv-M12M4MIbNo_pgvJMyOmblbQhDlTtnmhWEvmaUoqjf4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_430.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi82fNxMmJpPLtg8W_eCUrOHePKU7Dsg0N62vjXF_eAjq7d-lFYDxHFCMtvf56VS1zc8m7Z2k659x7i9RpvopZJzZHaJLHYgeUv-M12M4MIbNo_pgvJMyOmblbQhDlTtnmhWEvmaUoqjf4/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_430.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp7g-gBsisUPxHeZe9opbf8hjhsL_QhfyFB0Tc_UjaSvJWN6KYb-c0O2U7OTM7BItrgYWRQNYWzOmBP9RwPy6mzM0xTTKyYO5y758P-pkca00u5rviTxxRnHoLxVbnko13ERgtS6nvXKY/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_437.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp7g-gBsisUPxHeZe9opbf8hjhsL_QhfyFB0Tc_UjaSvJWN6KYb-c0O2U7OTM7BItrgYWRQNYWzOmBP9RwPy6mzM0xTTKyYO5y758P-pkca00u5rviTxxRnHoLxVbnko13ERgtS6nvXKY/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_437.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheHZQj14_iOCbi7Wq27tvJ1QtfLNwk2FuUeiMx3sfLnT2brIJEgE0Fb-FuIZf7PQPOjxp8QpFm6EVuTRXAncPUQv2DCAQAJ6qEZkpo910e4ALIjt8TBe0pnb7p57KrHzbr-A2jbYi37EM/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_442.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheHZQj14_iOCbi7Wq27tvJ1QtfLNwk2FuUeiMx3sfLnT2brIJEgE0Fb-FuIZf7PQPOjxp8QpFm6EVuTRXAncPUQv2DCAQAJ6qEZkpo910e4ALIjt8TBe0pnb7p57KrHzbr-A2jbYi37EM/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_442.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKa8qHd4pbBEY63YRBgEcN9cQtNjd9gnOylw-BbcXJl7PQ5m2OU4V-RXWwp96jabAoni0PkqbBYz4OJMblH44N7YYNggHRED_7GIig93nS-BUtoJCbbLxIUCZh5UODMkLqlsNKIL4rak/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_443.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKa8qHd4pbBEY63YRBgEcN9cQtNjd9gnOylw-BbcXJl7PQ5m2OU4V-RXWwp96jabAoni0PkqbBYz4OJMblH44N7YYNggHRED_7GIig93nS-BUtoJCbbLxIUCZh5UODMkLqlsNKIL4rak/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_443.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; font-size: xx-small; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; font-family: Arial; font-size: 13px; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; border: 0px; line-height: 26px; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; border: 0px; color: #333333; font-family: Tahoma, Arial, sans-serif; font-size: 12px; line-height: 24px; margin: 0px 0px 0.0001pt; outline: 0px; padding: 0px; text-align: justify;"&gt;
&lt;span style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; font-size: xx-small; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; font-family: Arial; font-size: 13px; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;span style="background-color: transparent; border: 0px; line-height: 26px; margin: 0px; outline: 0px; padding: 0px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwEvdxwxG__SnAxLTqweDyRrBFtt0pD_mCSi41cc_zQ-LP_7EziWTra7Q3v1VljfLCZJ2vVRgTD2_hGxc6nHC_uARPtoujqwYTfMtD9OIZnBt_0YUSV71hKNahau0U81n4K1liD-nJRl0/s72-c/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_418.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>8051 Interfacing to External Memory</title><link>http://ieeebooks.blogspot.com/2013/01/8051-interfacing-to-external-memory.html</link><category>8051 chapter 4 - Interfacing to External Memoey</category><category>8051 External Memory Chapter - 4</category><category>8051 Interfacing to External Memory</category><pubDate>Mon, 14 Jan 2013 00:56:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-2060874719418232952</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6Bkk8p1UjUjiUuKyMSoS9uDuAUz9kkRzsvfWInHzJiihTMVpLEfgXqWk_UUHDPs8VODGR2BP6sM7P7ba43VsOHFuIjpDoABjyR7lfEx0Lo6naT66WZM-NOyMPGiTFJed3Yw0jyGimzLY/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_474.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6Bkk8p1UjUjiUuKyMSoS9uDuAUz9kkRzsvfWInHzJiihTMVpLEfgXqWk_UUHDPs8VODGR2BP6sM7P7ba43VsOHFuIjpDoABjyR7lfEx0Lo6naT66WZM-NOyMPGiTFJed3Yw0jyGimzLY/s400/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_474.png" width="368" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjx1JEMf-LgwSrlsPpenKK37EA8f01mJhjavVuWfZV29GJDRY-tIgSx7ADfwiCZ78qtTFlD4lCS3FRTS4muhe28x6ORckRUB8x1oehnchP-GfoQaf3E8a6oWpQMH8um5JmihLH2wvomtM/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_475.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjx1JEMf-LgwSrlsPpenKK37EA8f01mJhjavVuWfZV29GJDRY-tIgSx7ADfwiCZ78qtTFlD4lCS3FRTS4muhe28x6ORckRUB8x1oehnchP-GfoQaf3E8a6oWpQMH8um5JmihLH2wvomtM/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_475.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUSjsCSFwjPjxmB764fbObfBg_aDBzFFXJXscYscYQEwKqAtBF_qLbMLfbSBMLGWtvS_U-Fv7msvhbjMrwPqrPPxmocZovkhak6xKzM7dGShiN-LbKy1paLqTVxgngDfaJDMq8AnfaAIs/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_476.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUSjsCSFwjPjxmB764fbObfBg_aDBzFFXJXscYscYQEwKqAtBF_qLbMLfbSBMLGWtvS_U-Fv7msvhbjMrwPqrPPxmocZovkhak6xKzM7dGShiN-LbKy1paLqTVxgngDfaJDMq8AnfaAIs/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_476.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijP4QSCcuQOnG4ZKRVdmWxQxIc1disfwvQeOAliXuerXBcVgXzzwVS0DZOpZLbKO5knhnrTLAVEJ72WfNk_AIVVFfHFEz13zok-gdCSLbGZ1ou0-PeR7jajkkJL5bkNPL4_PB7bfk9D2M/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_477.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijP4QSCcuQOnG4ZKRVdmWxQxIc1disfwvQeOAliXuerXBcVgXzzwVS0DZOpZLbKO5knhnrTLAVEJ72WfNk_AIVVFfHFEz13zok-gdCSLbGZ1ou0-PeR7jajkkJL5bkNPL4_PB7bfk9D2M/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_477.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTLVJ5iqib0dOCjGKyxfaOPGA2uMOVmPFttCLUsZO4XRlJh4y-jp8wYbynqL1OEnKWkRuQoodDGstMDzLfnkw7gQi9z2tk5ErRttVigExcRbVUuyyfBO_rngy9X_XqkNAybkS299elg5E/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_478.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTLVJ5iqib0dOCjGKyxfaOPGA2uMOVmPFttCLUsZO4XRlJh4y-jp8wYbynqL1OEnKWkRuQoodDGstMDzLfnkw7gQi9z2tk5ErRttVigExcRbVUuyyfBO_rngy9X_XqkNAybkS299elg5E/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_478.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqdyaJIJkhEdhyj5q1LszWYZ67EfF5_npaiGJHzinrJY9b_Be0tu-BNKPEvZv2ugNcBmonOYvyHbEJSsVMkY_Q3VR2NPsNfa0527n_yd6dUiXGwEOb6XopZyRurxWtAFAM6zLJ-TOnQDE/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_479.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqdyaJIJkhEdhyj5q1LszWYZ67EfF5_npaiGJHzinrJY9b_Be0tu-BNKPEvZv2ugNcBmonOYvyHbEJSsVMkY_Q3VR2NPsNfa0527n_yd6dUiXGwEOb6XopZyRurxWtAFAM6zLJ-TOnQDE/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_479.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS8BTUoqO4pjExk3wDtS_HQO9cGoyrSNRemv3l0pbmjZQW_uWPlIgg7Nw5Uk0W1J6SUE-SspAZTLXCUr3brUc630g4368T4aakIAgZ-4IIrQrm94lxf3CJV74vrChZ5llxA1NyAJP0yYI/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_480.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS8BTUoqO4pjExk3wDtS_HQO9cGoyrSNRemv3l0pbmjZQW_uWPlIgg7Nw5Uk0W1J6SUE-SspAZTLXCUr3brUc630g4368T4aakIAgZ-4IIrQrm94lxf3CJV74vrChZ5llxA1NyAJP0yYI/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_480.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOQtbyZujW_UR0ZLx3APsK1odBnDpDAJQ_5F2b32RUSF3zIX_zDbIUzWkgXKfgYd2boPTrO9WqDBhPFkUsaBY3MCVfLjbz5favRLDY62I9iKDKIynslGGbQUFpvqXzPF_t1SVHgNDuDDc/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_481.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOQtbyZujW_UR0ZLx3APsK1odBnDpDAJQ_5F2b32RUSF3zIX_zDbIUzWkgXKfgYd2boPTrO9WqDBhPFkUsaBY3MCVfLjbz5favRLDY62I9iKDKIynslGGbQUFpvqXzPF_t1SVHgNDuDDc/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_481.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiq_Eu7DcvyaqZZaPzsjrGw9uAzTJvdIIv4DXPK2Ay86SoC8iZbGL5u4mEdJE6nm3Nw75SdDljSW61nPRD7g24hMeA8awhk4rS-Mbl-mCQsDqfPOsGAopq1f1FjSd8c0NRiv5tEJe1jcg/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_482.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiq_Eu7DcvyaqZZaPzsjrGw9uAzTJvdIIv4DXPK2Ay86SoC8iZbGL5u4mEdJE6nm3Nw75SdDljSW61nPRD7g24hMeA8awhk4rS-Mbl-mCQsDqfPOsGAopq1f1FjSd8c0NRiv5tEJe1jcg/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_482.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisS57cXODmLy7H82U_HbtnyoPTUgrqJajwSaLP8x3SzVlxNLiTF0x4i_wbucXGJ_f2Ro9b1HBAzrf9tZ-9D5zjc7anWex7UEWrQp_gZrSTEvWhYbqQLZT8pWvjZxEFN29O-V3xl3G_HOY/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_483.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisS57cXODmLy7H82U_HbtnyoPTUgrqJajwSaLP8x3SzVlxNLiTF0x4i_wbucXGJ_f2Ro9b1HBAzrf9tZ-9D5zjc7anWex7UEWrQp_gZrSTEvWhYbqQLZT8pWvjZxEFN29O-V3xl3G_HOY/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_483.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2aZPApbB5KZQavtFmsaXk5Y8SnH1_ZPs9-Y6bQJ4iI0AFg4jaC13h-fdQPMIOR-sypq3oEj_bU7o7DQS5Cb2JuCtgHA6SxKDxndWuGSVDAMtLQyjHNWRmgVxONfjtAIV7Ndl255p8Z6Y/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_484.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2aZPApbB5KZQavtFmsaXk5Y8SnH1_ZPs9-Y6bQJ4iI0AFg4jaC13h-fdQPMIOR-sypq3oEj_bU7o7DQS5Cb2JuCtgHA6SxKDxndWuGSVDAMtLQyjHNWRmgVxONfjtAIV7Ndl255p8Z6Y/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_484.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqfnwCIbwH1l38HxeIO1z6yqe2wy6FmgG_CAEYDyVQY4kIAF3GaJ5NQQAfVNPNgZOa_RjNfob74Fc5V1katI6qM0hjBv2_DmyzcFV7IZTBQ5gBDbiJ2RlmqEkIry0Xfx85mx2pLvCJKRc/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_485.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqfnwCIbwH1l38HxeIO1z6yqe2wy6FmgG_CAEYDyVQY4kIAF3GaJ5NQQAfVNPNgZOa_RjNfob74Fc5V1katI6qM0hjBv2_DmyzcFV7IZTBQ5gBDbiJ2RlmqEkIry0Xfx85mx2pLvCJKRc/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_485.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtn7RJed1lMgKsTtecwzoNSs3ion6ed47RqWCspM_rie67Rhu9nzOLqH-sAJiJzQ6LZg8S3PYmDBbnQ8PZ_lCBgbMUVmX5Ql84AlcBA5UDzXaW-kUzkDimcNoc3Zp6M4QZw19aBSM8owU/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_486.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtn7RJed1lMgKsTtecwzoNSs3ion6ed47RqWCspM_rie67Rhu9nzOLqH-sAJiJzQ6LZg8S3PYmDBbnQ8PZ_lCBgbMUVmX5Ql84AlcBA5UDzXaW-kUzkDimcNoc3Zp6M4QZw19aBSM8owU/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_486.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiArmhs-wvM7_gfaBml_56TqvQ-Z2Er865tVbtc6wcQmvzoa5IHX83Zz5QkiZf7CWRI6AjL20eJlM6C5yQ5KYgDyYpo1mytlGkmwx1I4J4wUzngOQCCGUIlrG7OOsZ5CpcNJKtaNfIqdIk/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_487.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiArmhs-wvM7_gfaBml_56TqvQ-Z2Er865tVbtc6wcQmvzoa5IHX83Zz5QkiZf7CWRI6AjL20eJlM6C5yQ5KYgDyYpo1mytlGkmwx1I4J4wUzngOQCCGUIlrG7OOsZ5CpcNJKtaNfIqdIk/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_487.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOHrZ3ThUY1u0UACtE7zhyrB7N740rk11CtkI3XeQV8gY2DU2-ORlYstit-k61SLKqVnnhdRvUF51fDCBQNWH86qs9StE7rmk4brnyJ4lxidhyhox_78HXmmQ-9wTGIWZsLrEiMn1F4Bk/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_488.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOHrZ3ThUY1u0UACtE7zhyrB7N740rk11CtkI3XeQV8gY2DU2-ORlYstit-k61SLKqVnnhdRvUF51fDCBQNWH86qs9StE7rmk4brnyJ4lxidhyhox_78HXmmQ-9wTGIWZsLrEiMn1F4Bk/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_488.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFZ78AHdQGpAPMM9n-w9BEYMSQ-Q_f5ToM9Xp2sgkW1sESr9e_ncQpmsxsQ0UJJZGxqzp7Sd2k5YNocyFePoixN6wh-7NzqiaHOYpX5762gdfoy8qsOTBzhy_rkXBKK8SVGEygEwIWiDE/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_489.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFZ78AHdQGpAPMM9n-w9BEYMSQ-Q_f5ToM9Xp2sgkW1sESr9e_ncQpmsxsQ0UJJZGxqzp7Sd2k5YNocyFePoixN6wh-7NzqiaHOYpX5762gdfoy8qsOTBzhy_rkXBKK8SVGEygEwIWiDE/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_489.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBoB8L57W122FipJ-Nri1jdHqAq5hZphUathVcLJ8hgyKZX-BxPXG9uAxcGe3S3QaOrcNSiAdZWeVshjP3ac6IShyphenhyphen5P-ZSoubvNTp-fG4JiTtVq4P2DlzCPMdU6AemgCV8YOJGABq1Fms/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_490.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBoB8L57W122FipJ-Nri1jdHqAq5hZphUathVcLJ8hgyKZX-BxPXG9uAxcGe3S3QaOrcNSiAdZWeVshjP3ac6IShyphenhyphen5P-ZSoubvNTp-fG4JiTtVq4P2DlzCPMdU6AemgCV8YOJGABq1Fms/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_490.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFx8BOgdTpDEPAbbgmPboTt687ySaSkc28C48FER-JJFxnhjEk0TUoNNLlhx90qSNsC2W-RpUOHKMPReuLfMPcpkJAfwIGVxFK1ZGgC7ozTR0Otdvu2rmWi4A6x87Pmm35Xd23CthKfvI/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_491.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFx8BOgdTpDEPAbbgmPboTt687ySaSkc28C48FER-JJFxnhjEk0TUoNNLlhx90qSNsC2W-RpUOHKMPReuLfMPcpkJAfwIGVxFK1ZGgC7ozTR0Otdvu2rmWi4A6x87Pmm35Xd23CthKfvI/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_491.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHHgAJ5glGbI9r4bpq2awCSQi-lR-S9bwe9U7-FXHgoSfwZ8fsFfqfuBjndTXS4pMue-JsJhl2BZijpBTZS9YkDVSusJJSZxF2_0XQP1NYfkwbMZ03IrtWagi2oZQjvRV57uxldSNzru8/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_492.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHHgAJ5glGbI9r4bpq2awCSQi-lR-S9bwe9U7-FXHgoSfwZ8fsFfqfuBjndTXS4pMue-JsJhl2BZijpBTZS9YkDVSusJJSZxF2_0XQP1NYfkwbMZ03IrtWagi2oZQjvRV57uxldSNzru8/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_492.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2zqjuKssWdE7h6iTp9OpQ-V0evUUEB44zITgzf-tZQUzcN6Nw_n2vWulGUIv2Go0ojLv-kGtbG9LalT8aLJYm_kEBjVZYhiS0KOodIMk5ii3a4FTePB96xYpviR0yB-RxMa-N1tcw9Pk/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_493.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2zqjuKssWdE7h6iTp9OpQ-V0evUUEB44zITgzf-tZQUzcN6Nw_n2vWulGUIv2Go0ojLv-kGtbG9LalT8aLJYm_kEBjVZYhiS0KOodIMk5ii3a4FTePB96xYpviR0yB-RxMa-N1tcw9Pk/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_493.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpqS_B9E77ndzeNTn-PV24TGUuIzvMUkjo2lWSZ7xuSgdxE4tUxCsau-NpSaoRUWDQF5j9CEgfA600eGrpJz1rgLZ6PQlLU8zKBiPkH47yFWUCpg0Lvu2cr4T28QJSXKCjQCEcyxn8ioA/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_494.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpqS_B9E77ndzeNTn-PV24TGUuIzvMUkjo2lWSZ7xuSgdxE4tUxCsau-NpSaoRUWDQF5j9CEgfA600eGrpJz1rgLZ6PQlLU8zKBiPkH47yFWUCpg0Lvu2cr4T28QJSXKCjQCEcyxn8ioA/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_494.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxYGHuyJ5pGSppU28qu-yQ4QfXLNxjqIpLCWKunXZqhp5V1q4JuauWtNp59HYUrUq3fWSasnhpi9Ku_0u_JbLriZsuQl171aZ_sE8veed-AYSJWyLQYbIAMmjZV0pwbTxeQvsGCfk8axw/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_495.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxYGHuyJ5pGSppU28qu-yQ4QfXLNxjqIpLCWKunXZqhp5V1q4JuauWtNp59HYUrUq3fWSasnhpi9Ku_0u_JbLriZsuQl171aZ_sE8veed-AYSJWyLQYbIAMmjZV0pwbTxeQvsGCfk8axw/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_495.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz8eOPwBv4jHEeufGLgL16frfWHCQzTB6OTwJpVlequGHBOyghslz-p4e9Q9A89-AMchVMt5O6O8o4E-4FUlKWLtU2q4TL0WwB8Uf607NChcrfe07sq4Jl-mnvLYmeTzEjKUhgBCaLQUc/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_496.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz8eOPwBv4jHEeufGLgL16frfWHCQzTB6OTwJpVlequGHBOyghslz-p4e9Q9A89-AMchVMt5O6O8o4E-4FUlKWLtU2q4TL0WwB8Uf607NChcrfe07sq4Jl-mnvLYmeTzEjKUhgBCaLQUc/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_496.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiemfsyKIAunx1Cwoqqsa1aku6s8uDhjm7iuZHvHr8EihQS_5UAZY_b0rguKUop77rLsTFdtWCqee2EJzsB6s5ehBnBcRLxazuNLQu91jvqUj1trsl5hLNDaAh7UDVmDgyzCOhN4E2YmI/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_497.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiemfsyKIAunx1Cwoqqsa1aku6s8uDhjm7iuZHvHr8EihQS_5UAZY_b0rguKUop77rLsTFdtWCqee2EJzsB6s5ehBnBcRLxazuNLQu91jvqUj1trsl5hLNDaAh7UDVmDgyzCOhN4E2YmI/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_497.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5OxKCkV3owC61gDiDqvl0utf2KTQOPJSQyKQqGk9swYywE31kGpWgWntmkGUP0_XzKisddreKF0gkArPF96e3d9hSVfnWKEgMos-ijBTUxyJW0MwdlMAtkUAp3Me3KeNZGB49JJJZMTQ/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_498.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5OxKCkV3owC61gDiDqvl0utf2KTQOPJSQyKQqGk9swYywE31kGpWgWntmkGUP0_XzKisddreKF0gkArPF96e3d9hSVfnWKEgMos-ijBTUxyJW0MwdlMAtkUAp3Me3KeNZGB49JJJZMTQ/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_498.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwEbN_kdd24yUudJOFRaXzER22J3dhUVYQ2yTKMV_SicX_XilOrFdHO-30eFefRCdShQ5QvK62-WO5jCZk6uYZXVhSs5uUVrIMulpbmzzWzlgFAEeE1JW1grjoE_mRWHchZk7k_67DEi0/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_499.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwEbN_kdd24yUudJOFRaXzER22J3dhUVYQ2yTKMV_SicX_XilOrFdHO-30eFefRCdShQ5QvK62-WO5jCZk6uYZXVhSs5uUVrIMulpbmzzWzlgFAEeE1JW1grjoE_mRWHchZk7k_67DEi0/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_499.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZP7fGRLiM9IrqUg1R-9txSFgWY5OcfzMjr5Piz87p3BcTail13Cab7ssnY_uEhMoLqx0MKcCMWHR1uSjCt4vCQYkp30_jYQ0LDb1exYCf6oQjP-SRi9kWgYi_LPAdvztE0iDt9bFmB3E/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_500.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZP7fGRLiM9IrqUg1R-9txSFgWY5OcfzMjr5Piz87p3BcTail13Cab7ssnY_uEhMoLqx0MKcCMWHR1uSjCt4vCQYkp30_jYQ0LDb1exYCf6oQjP-SRi9kWgYi_LPAdvztE0iDt9bFmB3E/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_500.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJO1bSDjZ7UiCiqnmuOzfnoqpGNHTHJz5xD6Noll_6emnWI92eLS7q5peZsgIRk0beqeaAw9GVQ-TIX9dlb8-GdJJOZp2r7DIrPrJ5HNsbgWWCg3bsqYAdp5gV_MfXQd6U-aWL98xfACA/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_501.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJO1bSDjZ7UiCiqnmuOzfnoqpGNHTHJz5xD6Noll_6emnWI92eLS7q5peZsgIRk0beqeaAw9GVQ-TIX9dlb8-GdJJOZp2r7DIrPrJ5HNsbgWWCg3bsqYAdp5gV_MfXQd6U-aWL98xfACA/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_501.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-OLmges51uQx0C3e3Xn4VJuDzZ1eV0xMZqzoW5asDm8Vr8ZPvweWQKN99DIX0MH0CJheaa360fdMRqXiEyRjmndr17W6V8-46Uvw_z0djsBsuWO9DFmrOIwViCjYI8E1vRILAEwnHndI/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_502.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-OLmges51uQx0C3e3Xn4VJuDzZ1eV0xMZqzoW5asDm8Vr8ZPvweWQKN99DIX0MH0CJheaa360fdMRqXiEyRjmndr17W6V8-46Uvw_z0djsBsuWO9DFmrOIwViCjYI8E1vRILAEwnHndI/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_502.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji5PByCf2NiZDu9Kpjz5E8NSzupJkDPcpYVOE0ey-229StMXWxNLdjIe5uD_7uXIV57O6RcEhcOSJTHRc3rpEMteJX38mkLMhKCqJ7pLR5OiVocXkwK8-bgj1CrL1Zmn8zkDLKjQikSg4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_503.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji5PByCf2NiZDu9Kpjz5E8NSzupJkDPcpYVOE0ey-229StMXWxNLdjIe5uD_7uXIV57O6RcEhcOSJTHRc3rpEMteJX38mkLMhKCqJ7pLR5OiVocXkwK8-bgj1CrL1Zmn8zkDLKjQikSg4/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_503.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPvuZoLoQt7KxVCdOcG3WtOfmGNcBHgGwBTAva1rhKm_lZAfJupFStFdAO0bO6W9OrRVO-jGNM11Gz8-yG_yZ9P7PhRpM15B77MgLx78S_qEHtXp0T0YhB36ytCl-6cSWPsYybyko1I38/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_504.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPvuZoLoQt7KxVCdOcG3WtOfmGNcBHgGwBTAva1rhKm_lZAfJupFStFdAO0bO6W9OrRVO-jGNM11Gz8-yG_yZ9P7PhRpM15B77MgLx78S_qEHtXp0T0YhB36ytCl-6cSWPsYybyko1I38/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_504.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLYfiRUaRnjQVTkqrgRG03oHCdZmd4gHMocFi_Uw4xC-RB67HkjL0KBN9KI6KcOAB_AyKzNxjBlK_VhRW90tUH7lZO3dIjPfPzn_msoS78z8IiZ7DFRh-3onUSz56Nj9vTc8W1MfqI0h4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_505.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLYfiRUaRnjQVTkqrgRG03oHCdZmd4gHMocFi_Uw4xC-RB67HkjL0KBN9KI6KcOAB_AyKzNxjBlK_VhRW90tUH7lZO3dIjPfPzn_msoS78z8IiZ7DFRh-3onUSz56Nj9vTc8W1MfqI0h4/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_505.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFjOzp4_URc-QzL1GgUXOkQFTB7OrknKxx5u30ARVklndo6h_paMBp7klYxpI2KlTeqqBoLD5myyse2DsocBd1DD8iy9qxjy7pQGVFTze3-BBYy-XWlE3z6rWB3ti8R-Jt5dnbEVFDrzc/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_506.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFjOzp4_URc-QzL1GgUXOkQFTB7OrknKxx5u30ARVklndo6h_paMBp7klYxpI2KlTeqqBoLD5myyse2DsocBd1DD8iy9qxjy7pQGVFTze3-BBYy-XWlE3z6rWB3ti8R-Jt5dnbEVFDrzc/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_506.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgChJLYYMe2Sz0UwnScBBMIeE4evcAkiXhNvExPmMnUzCTOPwNNWoFEzqMdIx-cJR0lhOc7-HG4GcSTvYe4ukZBadxcEljQP9W4ICKQpPL6MBV7YTfz6MiD1M0PZYUjzoP6szQg6U7Pp1k/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_507.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgChJLYYMe2Sz0UwnScBBMIeE4evcAkiXhNvExPmMnUzCTOPwNNWoFEzqMdIx-cJR0lhOc7-HG4GcSTvYe4ukZBadxcEljQP9W4ICKQpPL6MBV7YTfz6MiD1M0PZYUjzoP6szQg6U7Pp1k/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_507.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2JK2RkwSMPyU9CLcWiswu8NHpt_sA9lsXEZdHe4NEBGTv5DLJABSYFm46-OuXSjnsYRE9YB3ZFFu4slySZPEugu9MkQA2DyUq2mFhtVpx3Fp9ShEMcUojPShT8Bk2nUlmtCCu3VQgLgU/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_508.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2JK2RkwSMPyU9CLcWiswu8NHpt_sA9lsXEZdHe4NEBGTv5DLJABSYFm46-OuXSjnsYRE9YB3ZFFu4slySZPEugu9MkQA2DyUq2mFhtVpx3Fp9ShEMcUojPShT8Bk2nUlmtCCu3VQgLgU/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_508.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKcxzzCDbKMTn872aoSnUYiWHS_nYvlQ9rfmtTv5RSoW4Pk5OjR_qOfjxX_NA8qgJB9PQOCDTkVDoF38zVsoxEbOHdmMQZPVDFwFrTdg2NJAp4enJ8SJzfo2fdUJyHVafhdV4lNw54dig/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_509.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKcxzzCDbKMTn872aoSnUYiWHS_nYvlQ9rfmtTv5RSoW4Pk5OjR_qOfjxX_NA8qgJB9PQOCDTkVDoF38zVsoxEbOHdmMQZPVDFwFrTdg2NJAp4enJ8SJzfo2fdUJyHVafhdV4lNw54dig/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_509.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEl8M1nfiR0YwJD4s-annl1dUfUtG0Dx_EhgtZTncCdrPVccqb1W-EPgorqkVzKuxHTceNXVFsHBiJ_PnGjN0vqJV5V8VXxezfHbcr29giFLUPmUqd4FbeJ3BigOsPnQ-9CjRXIqogWjY/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_510.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEl8M1nfiR0YwJD4s-annl1dUfUtG0Dx_EhgtZTncCdrPVccqb1W-EPgorqkVzKuxHTceNXVFsHBiJ_PnGjN0vqJV5V8VXxezfHbcr29giFLUPmUqd4FbeJ3BigOsPnQ-9CjRXIqogWjY/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_510.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIpscgY7WX8Dd28-J4onDBD4X2t-NpJ4HB40sUi8KK2DfFfG8nQRx4NGMwlH9dE_doUo4UMel7UK_UfT9u7oHQIVCBh46cwZmC4_dZJqeDcOIl3err-jfoC0TbaNLTjAMUlCrXQTBm8VY/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_511.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIpscgY7WX8Dd28-J4onDBD4X2t-NpJ4HB40sUi8KK2DfFfG8nQRx4NGMwlH9dE_doUo4UMel7UK_UfT9u7oHQIVCBh46cwZmC4_dZJqeDcOIl3err-jfoC0TbaNLTjAMUlCrXQTBm8VY/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_511.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQP1JHDoUyrGKC0PFG2aTMG0Co4Mp3e8PlNx_RpPc2PKWRHFDYIXruf8E3ZL77F_NZPpPI-oj_FZ5-_7kjPapgHzHahua8x6ZocIgn4O-RIkl2ZqyOGywe8vEGlXWfDNO_a_pUCV7XlME/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_512.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQP1JHDoUyrGKC0PFG2aTMG0Co4Mp3e8PlNx_RpPc2PKWRHFDYIXruf8E3ZL77F_NZPpPI-oj_FZ5-_7kjPapgHzHahua8x6ZocIgn4O-RIkl2ZqyOGywe8vEGlXWfDNO_a_pUCV7XlME/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_512.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0sw_Y38dZUBJsB7MdaTV2lpwm9BxrvAOWdixcYpsGGFQ20FIeYdKz7g9jTsTt-Q5pnnb36XkhKGxV9Hl0fB6HXfLwwBubzCuJkqj7yhWbRH25Nn0NM9yww4gcZPz78U28__7Ob0bL_rQ/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_513.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0sw_Y38dZUBJsB7MdaTV2lpwm9BxrvAOWdixcYpsGGFQ20FIeYdKz7g9jTsTt-Q5pnnb36XkhKGxV9Hl0fB6HXfLwwBubzCuJkqj7yhWbRH25Nn0NM9yww4gcZPz78U28__7Ob0bL_rQ/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_513.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOh31vTmBAr7iSndvANiFmgwTwUuJq-WCvxg1_7h_RXu4tjOkDfsZjRc1xLoyGQT3euMjZfeyKFOukU9uVaJm0KdEOt-IJVHdXsMg_mC6W494UcEnfVw7HXkRsP_lL3yxb5RgttgtVqtw/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_514.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOh31vTmBAr7iSndvANiFmgwTwUuJq-WCvxg1_7h_RXu4tjOkDfsZjRc1xLoyGQT3euMjZfeyKFOukU9uVaJm0KdEOt-IJVHdXsMg_mC6W494UcEnfVw7HXkRsP_lL3yxb5RgttgtVqtw/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_514.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk24DsgwinS7X2bXGUCEkuHW-hk0M06_6amiu7uJjJzCLiRQQQ33dGRrow_AxGy9IfPRuTYj47b-W4y1EVoazf8ti98s_RUtu-5hbY08ZOnuR-vYS-sGlzz3fYXTV2E9iOrev9bWn1CYw/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_515.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk24DsgwinS7X2bXGUCEkuHW-hk0M06_6amiu7uJjJzCLiRQQQ33dGRrow_AxGy9IfPRuTYj47b-W4y1EVoazf8ti98s_RUtu-5hbY08ZOnuR-vYS-sGlzz3fYXTV2E9iOrev9bWn1CYw/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_515.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCU4r8y6iUliheE467jLRk8p2IsF3-_NDpVWadLZLi-D3s7Ir3aN19UJJnQo59SMppU0iYKnBUBuJmLuawXhp56X6_96FhxNym2dLt2I6RvL0kue82qqnO58MLF0_HWPpvEEs_JqSa6J8/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_516.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCU4r8y6iUliheE467jLRk8p2IsF3-_NDpVWadLZLi-D3s7Ir3aN19UJJnQo59SMppU0iYKnBUBuJmLuawXhp56X6_96FhxNym2dLt2I6RvL0kue82qqnO58MLF0_HWPpvEEs_JqSa6J8/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_516.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje12cfff6P8exxIJT3UiLk3DiwlMl0YF4oQKvdaud1vOWJ3sAg6HFugPvC_omZKzrAaUQYZjFnYanlCE_5hGTlkfkQnQFlgVs34ASGtlJEItRkXvGr6LZtjBOp_yhEc_bwKaZjNu7mF1o/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_517.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje12cfff6P8exxIJT3UiLk3DiwlMl0YF4oQKvdaud1vOWJ3sAg6HFugPvC_omZKzrAaUQYZjFnYanlCE_5hGTlkfkQnQFlgVs34ASGtlJEItRkXvGr6LZtjBOp_yhEc_bwKaZjNu7mF1o/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_517.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLitG_sNVUI271y51NubHJkPVoLmPPCLJWQeuM-Z0QoO2utQL6n0eSHte7ilRmmQ0xVH_bxpbwLd9nl9rgN1t-q9HK9BVznJlAbaFSYtN_rSPrsxfGzc4fMRcA93sxkxuuoWEHKUm7DXk/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_518.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLitG_sNVUI271y51NubHJkPVoLmPPCLJWQeuM-Z0QoO2utQL6n0eSHte7ilRmmQ0xVH_bxpbwLd9nl9rgN1t-q9HK9BVznJlAbaFSYtN_rSPrsxfGzc4fMRcA93sxkxuuoWEHKUm7DXk/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_518.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqWYe1iXFloN6uf1tqCtEHXXhanDXFdo4xfxxCVeSprUxC8jMIIlXXSDK2ypenrQjYDZU3li3R_qLgDBECZCy53kfhHSGbuhKNX0FHwsb9pVjoNpVH3lNhmZhHxb6-bTH5vvKfbgBJSFM/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_519.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqWYe1iXFloN6uf1tqCtEHXXhanDXFdo4xfxxCVeSprUxC8jMIIlXXSDK2ypenrQjYDZU3li3R_qLgDBECZCy53kfhHSGbuhKNX0FHwsb9pVjoNpVH3lNhmZhHxb6-bTH5vvKfbgBJSFM/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_519.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfxA31JghrEozzsOeqx08mjxhzpUFFubpGJQz7eS7yu05jo9u-l3wKeDYs7h98ipMEIWP58NKPQK64d5Xaq3ENDI3T5zH4WqFSjRA8n0Djgzvqd0ULW4-GTEsgZUGYfLCCSLjhf5t7rqo/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_520.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfxA31JghrEozzsOeqx08mjxhzpUFFubpGJQz7eS7yu05jo9u-l3wKeDYs7h98ipMEIWP58NKPQK64d5Xaq3ENDI3T5zH4WqFSjRA8n0Djgzvqd0ULW4-GTEsgZUGYfLCCSLjhf5t7rqo/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_520.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIHd6571LJb33Of_DjwvtiqkW3FyRNF7I1K6PNixTrVhkbKM2sigXdFpCwIDT1UdfQSxyjSuOURzNtgSb6kb298uXNEq23dOPEw3ZkAKF_AXSykdzhki8ZwHkmC-GbLQdfNVPSI6WlaEw/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_521.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIHd6571LJb33Of_DjwvtiqkW3FyRNF7I1K6PNixTrVhkbKM2sigXdFpCwIDT1UdfQSxyjSuOURzNtgSb6kb298uXNEq23dOPEw3ZkAKF_AXSykdzhki8ZwHkmC-GbLQdfNVPSI6WlaEw/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_521.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWCpKg7yZUFntEjR_4l1oeFFVvj-rgElVuCEhT_knalwc_JxCNk4uSDxKvcnhpVcM8zXTTYw34fp1hT2KFyaNteYaSyJjTTs9WePnjo1_p4nxW3O0Schi8V4uVY33LNhSZDPJhrxMfczc/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_522.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWCpKg7yZUFntEjR_4l1oeFFVvj-rgElVuCEhT_knalwc_JxCNk4uSDxKvcnhpVcM8zXTTYw34fp1hT2KFyaNteYaSyJjTTs9WePnjo1_p4nxW3O0Schi8V4uVY33LNhSZDPJhrxMfczc/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_522.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9CyRt3oIBdv2FKCvBhX1NpoD8wS6_kaYjFD53_QDtcl7qTvO-mQf55u47ROJSrDy7frgyB2O_MsfqdI3ULONmJTq4ftGHzBUO4EOQIc8AhJ4UO1uaDtU7HLGzPm0vYKPIRIlkVH5CbrU/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_523.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9CyRt3oIBdv2FKCvBhX1NpoD8wS6_kaYjFD53_QDtcl7qTvO-mQf55u47ROJSrDy7frgyB2O_MsfqdI3ULONmJTq4ftGHzBUO4EOQIc8AhJ4UO1uaDtU7HLGzPm0vYKPIRIlkVH5CbrU/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_523.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYlBh6YjfZaMfntKA0jxzPIMWgYaE1WUQF4QSRHzTrR5EkeSKEh6nOgWT5QNl0p_yzIG6Zmtr7VApMRP_N6zYzqTtv3Y8kbmtRvlrDIA9aAg2hWSJyyfugQqWRRQZ4cRZaiOxebCIPtjs/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_524.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYlBh6YjfZaMfntKA0jxzPIMWgYaE1WUQF4QSRHzTrR5EkeSKEh6nOgWT5QNl0p_yzIG6Zmtr7VApMRP_N6zYzqTtv3Y8kbmtRvlrDIA9aAg2hWSJyyfugQqWRRQZ4cRZaiOxebCIPtjs/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_524.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQSDPf2XyNyke6PcX-UwZfg2FCJwrxdTAaBIXLTNZhSFSk_noFYBy-4jH56prVLZry37WopqeqEvkmGdEv-4bWk4JnfeMR0Kw_38lA2habA3Ato5M-UPYFNGdX7jPy_FFd34dUptq-cq8/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_525.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQSDPf2XyNyke6PcX-UwZfg2FCJwrxdTAaBIXLTNZhSFSk_noFYBy-4jH56prVLZry37WopqeqEvkmGdEv-4bWk4JnfeMR0Kw_38lA2habA3Ato5M-UPYFNGdX7jPy_FFd34dUptq-cq8/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_525.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6jK9Mg7cQzMXSvtMFu4aYI7g-veEEcX-SrXYf_DFMHzIDaB_h29L4EXvQ07ynZv80KjbgykeGtUJWeyi3EuuncQDjOxxLQv0AW5JrRDrWX1EjOpufbs1j_91bZ_L31wZtEjA_J9pHx4U/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_526.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6jK9Mg7cQzMXSvtMFu4aYI7g-veEEcX-SrXYf_DFMHzIDaB_h29L4EXvQ07ynZv80KjbgykeGtUJWeyi3EuuncQDjOxxLQv0AW5JrRDrWX1EjOpufbs1j_91bZ_L31wZtEjA_J9pHx4U/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_526.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7zlq5b7ocyeLoJ_Br6IUv7Kgfoo9hJuOx_wnw5RFFiEkLSpiHGXmtlR-GeA4XA2EWmvaeGiwCkjuMareht9TRGaa_KfVKS9WVxhkTt-bjxjct8bvXKdVleIua0Zv5Ifs_K9qmigY-SQo/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_527.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7zlq5b7ocyeLoJ_Br6IUv7Kgfoo9hJuOx_wnw5RFFiEkLSpiHGXmtlR-GeA4XA2EWmvaeGiwCkjuMareht9TRGaa_KfVKS9WVxhkTt-bjxjct8bvXKdVleIua0Zv5Ifs_K9qmigY-SQo/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_527.png" width="590" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6Bkk8p1UjUjiUuKyMSoS9uDuAUz9kkRzsvfWInHzJiihTMVpLEfgXqWk_UUHDPs8VODGR2BP6sM7P7ba43VsOHFuIjpDoABjyR7lfEx0Lo6naT66WZM-NOyMPGiTFJed3Yw0jyGimzLY/s72-c/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_474.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>Real-World Interfacing I, LCD, ADC, and SENSORS</title><link>http://ieeebooks.blogspot.com/2012/05/real-world-interfacing-i.html</link><category>8051 Real world interfacing</category><category>Real World Interfacing I</category><category>Real world interfacing in 8051</category><pubDate>Thu, 27 Dec 2012 03:00:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-8803204850948801786</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW6KTaZAnu6mHBHhZVYOHP6RZWQyceeBWoK-XapZ74EA4k3yj5uyI61lbXCY-sEZzwTfO2gDjAFe8bFr8-tkt764YrcrSdGdt9K3jWWzdj3PlRp-xv_9righATnlzkYCjyHgXan5mLgls/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_528.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW6KTaZAnu6mHBHhZVYOHP6RZWQyceeBWoK-XapZ74EA4k3yj5uyI61lbXCY-sEZzwTfO2gDjAFe8bFr8-tkt764YrcrSdGdt9K3jWWzdj3PlRp-xv_9righATnlzkYCjyHgXan5mLgls/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_528.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1_Y10eyoIPPGxr7g2_fC-SxwwjRmKxThwYQnlPFaq7m6QjEvDzH-Ax4WdISVaHPoDdnwbEVoXL7o3dszeCGeIEM08eV_8VTaJfM7qkEY_5yKP_iAJgBdsHcYYmX00SS-2pAhT9saqwpo/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1_Y10eyoIPPGxr7g2_fC-SxwwjRmKxThwYQnlPFaq7m6QjEvDzH-Ax4WdISVaHPoDdnwbEVoXL7o3dszeCGeIEM08eV_8VTaJfM7qkEY_5yKP_iAJgBdsHcYYmX00SS-2pAhT9saqwpo/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_529.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9ELrdO2a6Qe8GGoHX4FQucNj01tLRJkZ89o3qLrA2uEOnGM5EEaQKwGWVXrqTCwojKRN8_DQs-Vshyphenhyphenzst8aIIGnkVLCwPg_YiVl9ettcHyk70wxR-aKwzTjCCnt2swe7ux-dD8UgxVvI/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_530.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9ELrdO2a6Qe8GGoHX4FQucNj01tLRJkZ89o3qLrA2uEOnGM5EEaQKwGWVXrqTCwojKRN8_DQs-Vshyphenhyphenzst8aIIGnkVLCwPg_YiVl9ettcHyk70wxR-aKwzTjCCnt2swe7ux-dD8UgxVvI/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_530.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9HXFAFLADSIFLueSxyjhcr-047410s9Jktn1WP2QSaOHYskPg8a26GymqUnVwcvnHmVoHssULq2A4SVn6UXV3odyK02n5TGlGXcus28a4G-F12n2k78U3FV_uRCzbikheM3xFXVU7hMA/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_531.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9HXFAFLADSIFLueSxyjhcr-047410s9Jktn1WP2QSaOHYskPg8a26GymqUnVwcvnHmVoHssULq2A4SVn6UXV3odyK02n5TGlGXcus28a4G-F12n2k78U3FV_uRCzbikheM3xFXVU7hMA/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_531.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCnUHB_xo9WOPCgdjchmOzm6cRyRG7oqLIVrCWB_L0GOi75RMHYCqX41-9lDdidJDypJzp2l1J_-CBTpWT8wPy8qkEZ0ls9omeGNFsw9nAxDfmRGWJhWMK-86xVyDi6M-k534_QYRqniQ/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_532.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCnUHB_xo9WOPCgdjchmOzm6cRyRG7oqLIVrCWB_L0GOi75RMHYCqX41-9lDdidJDypJzp2l1J_-CBTpWT8wPy8qkEZ0ls9omeGNFsw9nAxDfmRGWJhWMK-86xVyDi6M-k534_QYRqniQ/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_532.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwfakHITffZAK7eVyECxvlaJtteo-BAKNt_nwz8iCtg7860yYR7QHnr3k7pzQqvRYsScrqVDHb-ys9suLtkshqRAiX7RTXqHCSSEdpPb3l-xTKvAOK4Q5W9no_FbjD4qZxu0SKAdzmBBw/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_533.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwfakHITffZAK7eVyECxvlaJtteo-BAKNt_nwz8iCtg7860yYR7QHnr3k7pzQqvRYsScrqVDHb-ys9suLtkshqRAiX7RTXqHCSSEdpPb3l-xTKvAOK4Q5W9no_FbjD4qZxu0SKAdzmBBw/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_533.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiJXDzX8Dy2mxKBUTb63Pdshn96-Lkbt8Bm1_aj2BEgp3-LMHGqnZlu1wCWVVNc6sUFUkzdVX_hg8peteCSMQwPt9HsRL3pLx44i0LWvBdEtkC9QdleUdCU96VXWUXMnp39WqtMj-pKh8/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_534.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiJXDzX8Dy2mxKBUTb63Pdshn96-Lkbt8Bm1_aj2BEgp3-LMHGqnZlu1wCWVVNc6sUFUkzdVX_hg8peteCSMQwPt9HsRL3pLx44i0LWvBdEtkC9QdleUdCU96VXWUXMnp39WqtMj-pKh8/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_534.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiciyQcsdf3gDlrqJGavYAUF4BAh6rbW3zmzRg9TxqKMH6PgSnmkHtuwYls0mj-BwIgKFddICL2xp2lfDDazipv7MzvR3JoP8avYoCe_8PdT6E3UTXHIJ5WfvmJo3oQsrOj0lx73kVRyAo/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_535.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiciyQcsdf3gDlrqJGavYAUF4BAh6rbW3zmzRg9TxqKMH6PgSnmkHtuwYls0mj-BwIgKFddICL2xp2lfDDazipv7MzvR3JoP8avYoCe_8PdT6E3UTXHIJ5WfvmJo3oQsrOj0lx73kVRyAo/s640/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_535.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW6KTaZAnu6mHBHhZVYOHP6RZWQyceeBWoK-XapZ74EA4k3yj5uyI61lbXCY-sEZzwTfO2gDjAFe8bFr8-tkt764YrcrSdGdt9K3jWWzdj3PlRp-xv_9righATnlzkYCjyHgXan5mLgls/s72-c/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_528.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>LCD and Keyboard Interfacing</title><link>http://ieeebooks.blogspot.com/2012/05/lcd-and-keyboard-interfacing.html</link><category>8051 interfacing</category><category>8051 Keyboard interfacing</category><category>8051 LCD and keyboard interfacing</category><category>8051 LCD interfacing</category><category>LCD and Keyboard Interfacing</category><pubDate>Mon, 28 May 2012 23:55:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-3082376817842046819</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwc90w8cnbIEyiV5Owgpom0GQ4PfkKESTkV3BYoWbffOH8WKZOHbRiyDXzE9ixqWwnkBSEgBz_J4q7tF2R7-rd0bSbbhGz_bpDB1AGCFqdZWMZjVHhhK9YmozIgPD8G_Q6_LTGbW0KR30/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_537.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwc90w8cnbIEyiV5Owgpom0GQ4PfkKESTkV3BYoWbffOH8WKZOHbRiyDXzE9ixqWwnkBSEgBz_J4q7tF2R7-rd0bSbbhGz_bpDB1AGCFqdZWMZjVHhhK9YmozIgPD8G_Q6_LTGbW0KR30/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_537.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbA2mb9aOe1dPz21R5NERrHKwsogtFYYJXUUz0n6qZxyE6UrKj8TlFCDz4hyCUiDLneTNtAVUrmK3tWhC8rvPTs3AI-dUJfAcWzDw3HPReg3vbYn3mKYHZVorppRbvEyDN_0UF3tGeNMc/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_536.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbA2mb9aOe1dPz21R5NERrHKwsogtFYYJXUUz0n6qZxyE6UrKj8TlFCDz4hyCUiDLneTNtAVUrmK3tWhC8rvPTs3AI-dUJfAcWzDw3HPReg3vbYn3mKYHZVorppRbvEyDN_0UF3tGeNMc/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_536.png" width="184" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmlcV3KAqlyiDey4DGjzM8qLtbMd6C4CVnK_CtvpdzDT5gswl6Cq3MTeTSFp4HDF08iCIciSPLIx-dRGoo8ynq-R8dIiZnNbGbPkXEcbCXfdtUC9wn2VIhicxwmtpJzIu9WfWHQJWs0wo/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_539.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmlcV3KAqlyiDey4DGjzM8qLtbMd6C4CVnK_CtvpdzDT5gswl6Cq3MTeTSFp4HDF08iCIciSPLIx-dRGoo8ynq-R8dIiZnNbGbPkXEcbCXfdtUC9wn2VIhicxwmtpJzIu9WfWHQJWs0wo/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_539.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXjgRfCsorWLhT-KVA0FSAvmpugEbd_chmHky53RAfwNbSuX9jH5rIFeNDHCWkAVDVh7f-boTIoXUheN3Z6BooA3q6xgCWwy7lIiMYF0YCOAI9GTg3uUE2lOYl1oNfxF_W6dCMeLYNrj8/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_538.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXjgRfCsorWLhT-KVA0FSAvmpugEbd_chmHky53RAfwNbSuX9jH5rIFeNDHCWkAVDVh7f-boTIoXUheN3Z6BooA3q6xgCWwy7lIiMYF0YCOAI9GTg3uUE2lOYl1oNfxF_W6dCMeLYNrj8/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_538.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpV3z9GVtFW4XO8CJIHwsJRdzlnPIu3eGpibOpVBtf4jFkFgYIC5dic9iuqvNmfNLr80LrX7nO3q25baMSoTDq39DmEI4d1hzTkpvfGOuUnMQembOCm2YLUR8v1XIDsHGnh0llCzdcew0/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_541.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpV3z9GVtFW4XO8CJIHwsJRdzlnPIu3eGpibOpVBtf4jFkFgYIC5dic9iuqvNmfNLr80LrX7nO3q25baMSoTDq39DmEI4d1hzTkpvfGOuUnMQembOCm2YLUR8v1XIDsHGnh0llCzdcew0/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_541.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU-mWqhpXr79596fZMsD9YelOu7RxzX8JaN9tiMKu08l1XdzfHBzUzbeY1tuzTquXNFMEaJvelZ8xgdUV2n90lN0eFvfZXt4bcVMeky7XHuVtQIALodGo7dSgymm9PSR3-RRA5CausxhI/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_540.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU-mWqhpXr79596fZMsD9YelOu7RxzX8JaN9tiMKu08l1XdzfHBzUzbeY1tuzTquXNFMEaJvelZ8xgdUV2n90lN0eFvfZXt4bcVMeky7XHuVtQIALodGo7dSgymm9PSR3-RRA5CausxhI/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_540.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9OYZUrkMUAQ-XzqNX2y7e1pSm07jIblfpVgL8FtX41zHO-k1_2LflAnz3zwHQWRgVeRbF5hKCITwgwWCoLS-Xai5qMPq4gqyJ4Tpyko4GIaXTaQSPlhupmLaX0eUiQBuqoX9Fi5y3KdQ/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_543.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9OYZUrkMUAQ-XzqNX2y7e1pSm07jIblfpVgL8FtX41zHO-k1_2LflAnz3zwHQWRgVeRbF5hKCITwgwWCoLS-Xai5qMPq4gqyJ4Tpyko4GIaXTaQSPlhupmLaX0eUiQBuqoX9Fi5y3KdQ/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_543.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir2zECHz42Ebl94aY2pY8p2hztqiwsO5dRfNEFL8MwQp5aIqZ1TAs5fWx9cURhqoUjlpGMUmVUQ613eqxf1KGeZhs2M8iw2edtV0GhtX3LI4juKMZdiC2saLbWMwNg0WSHJ80Ct5f01l0/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_542.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir2zECHz42Ebl94aY2pY8p2hztqiwsO5dRfNEFL8MwQp5aIqZ1TAs5fWx9cURhqoUjlpGMUmVUQ613eqxf1KGeZhs2M8iw2edtV0GhtX3LI4juKMZdiC2saLbWMwNg0WSHJ80Ct5f01l0/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_542.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQSKPgzAX_i9b9hqzXFV0A4x5kMYpuO458sXCDkv-jvoUyrzvqcAxhIHQQSC4p2bDdx09tC9XC15Vd_v01wWbfJxThHEG237iOf2qifIb70NeDKEzSCbvyMEXH5DBNydmphN0nCcaS0f4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_545.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQSKPgzAX_i9b9hqzXFV0A4x5kMYpuO458sXCDkv-jvoUyrzvqcAxhIHQQSC4p2bDdx09tC9XC15Vd_v01wWbfJxThHEG237iOf2qifIb70NeDKEzSCbvyMEXH5DBNydmphN0nCcaS0f4/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_545.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFJKPPEXc3XyUVNpw1BnTNoz-wwEARErfQVhaMono7UGUYyjOFNkTHny59Nacl5h-dFsDgwIVOGAZildRoGEBQ6GUCrJmtdeBz3Hl3sOfGGi-5rLxVOQBjV_nnGqLOGYyVRJ1NTcc-T2A/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_544.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFJKPPEXc3XyUVNpw1BnTNoz-wwEARErfQVhaMono7UGUYyjOFNkTHny59Nacl5h-dFsDgwIVOGAZildRoGEBQ6GUCrJmtdeBz3Hl3sOfGGi-5rLxVOQBjV_nnGqLOGYyVRJ1NTcc-T2A/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_544.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSFhGPRLqffZ-BX-irLCc0MPaFzh2SSJHMpcYbM1x0J3QiW5ztjZRuoSyWh6rcsbBvSt0VDVZVA8HhpZF69I2V9wo3GeHbIIchs8ZWeMNQs_3-nzGG9g0dd9V9dzFlrH9EigJrPoQOYl8/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_546.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSFhGPRLqffZ-BX-irLCc0MPaFzh2SSJHMpcYbM1x0J3QiW5ztjZRuoSyWh6rcsbBvSt0VDVZVA8HhpZF69I2V9wo3GeHbIIchs8ZWeMNQs_3-nzGG9g0dd9V9dzFlrH9EigJrPoQOYl8/s320/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_546.png" width="294" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis938-6QZEYHYmwsfl740OxHEszN2WCGgXEk78EisqWJ2sKJASyZLxYB-ai3A6lJugCFrGyYXjWOLQ7K_m-fmLlkVYYC-YqvAzRtUc5GSYuhgGoOvHV912NHC0nVKtiSMhHne_mC2CIUQ/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_548.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis938-6QZEYHYmwsfl740OxHEszN2WCGgXEk78EisqWJ2sKJASyZLxYB-ai3A6lJugCFrGyYXjWOLQ7K_m-fmLlkVYYC-YqvAzRtUc5GSYuhgGoOvHV912NHC0nVKtiSMhHne_mC2CIUQ/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_548.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPxoVtW6SgYZV_L3g9CucSvy9QwJSyzZCoAtHfdAXAPmv0FGb9gl6X2aEnAMHgJVvqhd6pEPN4fbYDocl6b9qGECJsJ3m-Vor5wG25FWpdF7QTlvOWvUMtDpT2lxYQMqMmREIjljzVexs/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_547.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPxoVtW6SgYZV_L3g9CucSvy9QwJSyzZCoAtHfdAXAPmv0FGb9gl6X2aEnAMHgJVvqhd6pEPN4fbYDocl6b9qGECJsJ3m-Vor5wG25FWpdF7QTlvOWvUMtDpT2lxYQMqMmREIjljzVexs/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_547.png" width="184" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0owFi2WlNRhiRjUFT8zeAQfBwYdi5Ae8BcnMUwBBTltDwCXevtQAo9zfzA-W5aM_WKxWL40WkwEaiWl1oVBIzqX6NvSavWkj77x-pdMvAzlWeCl7ftZGam8Rbewo1Al8nToZHAWmqRl8/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_550.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0owFi2WlNRhiRjUFT8zeAQfBwYdi5Ae8BcnMUwBBTltDwCXevtQAo9zfzA-W5aM_WKxWL40WkwEaiWl1oVBIzqX6NvSavWkj77x-pdMvAzlWeCl7ftZGam8Rbewo1Al8nToZHAWmqRl8/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_550.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigX8Li4yBdeAfzkHnoCTDacQo8lDgIxHRyk63VJfSexDzJbLdJLFwZOM5Zd5QszAXQ_y3cqyjyNXi2OkfVu593satWAAJlD8Nd_Nq66xTwiD6FV-FLjXDlqHirgYgbSicjPzu6Rn1eeNc/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_549.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigX8Li4yBdeAfzkHnoCTDacQo8lDgIxHRyk63VJfSexDzJbLdJLFwZOM5Zd5QszAXQ_y3cqyjyNXi2OkfVu593satWAAJlD8Nd_Nq66xTwiD6FV-FLjXDlqHirgYgbSicjPzu6Rn1eeNc/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_549.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRSQHtRDdC6jAQjR2cvOhTj85Pc3pbRcSGfuGwaw9y8fW3JKQi9-mWgpT0ePqzXt6LQDcZFoTlVFIxA250ohB75lCLIZmul58qmQT1i-FO7erM-khdeoJyEv-tJjWSUYECYWESoAZlwhI/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_552.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRSQHtRDdC6jAQjR2cvOhTj85Pc3pbRcSGfuGwaw9y8fW3JKQi9-mWgpT0ePqzXt6LQDcZFoTlVFIxA250ohB75lCLIZmul58qmQT1i-FO7erM-khdeoJyEv-tJjWSUYECYWESoAZlwhI/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_552.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2V5jW-zHijwvxItK7PL5M4HvPPRtCd7rjwEhfXHW3P0AhZJLTNUbeGaBM2HrxOlOkvCZ4DIT1mHVL0RGuN9__3R8T_oo8AgXpn60ZmGZG-UbYW5bWlrH3gNxT_hJjE1uYg4Rg0QDj7eI/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_551.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2V5jW-zHijwvxItK7PL5M4HvPPRtCd7rjwEhfXHW3P0AhZJLTNUbeGaBM2HrxOlOkvCZ4DIT1mHVL0RGuN9__3R8T_oo8AgXpn60ZmGZG-UbYW5bWlrH3gNxT_hJjE1uYg4Rg0QDj7eI/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_551.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMLoaNxYwPpyXuQioY6RqMNhkBNNHTRC3KiXtxbsfwlhiLp-sWZhEcv6UuVuMG8_ajx6FoP219Qgu67cR4xUr0NoRLKhLqxvDvtAgNBRpwVVckZtp1EOrihxVk6vtF7XwTveuGDm6lOk0/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_554.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMLoaNxYwPpyXuQioY6RqMNhkBNNHTRC3KiXtxbsfwlhiLp-sWZhEcv6UuVuMG8_ajx6FoP219Qgu67cR4xUr0NoRLKhLqxvDvtAgNBRpwVVckZtp1EOrihxVk6vtF7XwTveuGDm6lOk0/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_554.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSFd-HEGdaoNm62asEzKFz28pBztGl0iRHuz50bi10FzhB52Anb7gkVo-UCQR1SOPgUzg1OTPvhS50PLMV6j1PedSn0F9LNEy1vT4-ML9WiVVGyLhA83TqcJPWz20Fo1vs_pi6apHzRck/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_553.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSFd-HEGdaoNm62asEzKFz28pBztGl0iRHuz50bi10FzhB52Anb7gkVo-UCQR1SOPgUzg1OTPvhS50PLMV6j1PedSn0F9LNEy1vT4-ML9WiVVGyLhA83TqcJPWz20Fo1vs_pi6apHzRck/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_553.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW7VyPq1PNnCrtFG5b3vViBcUbkJyMx_PYm0mdZ7YN2YcMxLeR220B5ynpUqUdue1cpTIBmAfIXbwEd4F5XFYIQmcsP0OJ7LmLKcX5XvqdiYKfgYgHD_CDvTv8pMsbMTb2uKjEp_wTfik/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_556.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW7VyPq1PNnCrtFG5b3vViBcUbkJyMx_PYm0mdZ7YN2YcMxLeR220B5ynpUqUdue1cpTIBmAfIXbwEd4F5XFYIQmcsP0OJ7LmLKcX5XvqdiYKfgYgHD_CDvTv8pMsbMTb2uKjEp_wTfik/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_556.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizCymF-4ShW1aOr0kvxUmWiIieDhfXmtGCp3RK2mp5W7VaGy-erXbAVX-PMSav5Ol2mp0JTBdpOSyqBS12a0qG9P5bBn8mVqCb44nvJnUqWrbBox9MSqVepw8bXVnXmMFYKbLdHQSqDP8/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_555.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizCymF-4ShW1aOr0kvxUmWiIieDhfXmtGCp3RK2mp5W7VaGy-erXbAVX-PMSav5Ol2mp0JTBdpOSyqBS12a0qG9P5bBn8mVqCb44nvJnUqWrbBox9MSqVepw8bXVnXmMFYKbLdHQSqDP8/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_555.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglaqeNFbFrAer6KLK3jugk2r74e22opLOQwMMN6rsRl9So4PJTBhIlL5fBnkYIEQ0MiwlFZeysXQa8xfpxF8_T-amAaWfOnSnyaYJ0tIhjAIdb-cMdvlXqCfY42_ayxKTWSnq7e0RiFLY/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_558.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglaqeNFbFrAer6KLK3jugk2r74e22opLOQwMMN6rsRl9So4PJTBhIlL5fBnkYIEQ0MiwlFZeysXQa8xfpxF8_T-amAaWfOnSnyaYJ0tIhjAIdb-cMdvlXqCfY42_ayxKTWSnq7e0RiFLY/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_558.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJnHRAnmgqHYuy6rJC74SVhEdCm64Obts42BOExllGXtHXMfEszG2Ae6tzZNRHURFzuuP5CkeXPyW22faP6fr214-X1IYPB1qNwJBQUZ9yeMkgc56UwoP_1O08tOlL94r2jw45FOQPa5A/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_557.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJnHRAnmgqHYuy6rJC74SVhEdCm64Obts42BOExllGXtHXMfEszG2Ae6tzZNRHURFzuuP5CkeXPyW22faP6fr214-X1IYPB1qNwJBQUZ9yeMkgc56UwoP_1O08tOlL94r2jw45FOQPa5A/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_557.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwU_g6rjm8Ng2J7pfD0RrgLZzx4r3o91FbPtYnpFVdETIJAN7m8cLp3MERlCVR9ZwmcGQC1CLdgdew4Vflm0-D-TnCQtlryk5wjmEIZIqsqRFfpsVrCIsrr1MZrWNjtmX_i5mH0FFs9OQ/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_560.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwU_g6rjm8Ng2J7pfD0RrgLZzx4r3o91FbPtYnpFVdETIJAN7m8cLp3MERlCVR9ZwmcGQC1CLdgdew4Vflm0-D-TnCQtlryk5wjmEIZIqsqRFfpsVrCIsrr1MZrWNjtmX_i5mH0FFs9OQ/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_560.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghGdRA1auQsZGB1PCR_SpN-EodpnWk7kzmzVguEUEI1O1E9gbniLBB-5Jl9amZg1Pu06AVUgc-UF6X3PuGqKh08tTyA7QYSq_pF5VTBhoR-wtaJla20Ua3rH1xLjOPvlHA313rUQq66BU/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_559.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghGdRA1auQsZGB1PCR_SpN-EodpnWk7kzmzVguEUEI1O1E9gbniLBB-5Jl9amZg1Pu06AVUgc-UF6X3PuGqKh08tTyA7QYSq_pF5VTBhoR-wtaJla20Ua3rH1xLjOPvlHA313rUQq66BU/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_559.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjOFl_KnduZDEIE4W63LS1T-uT9L7fR6MjCKJa3vKoC47-sChiXogZhQry3fkSQlbvNaentL1CSsCzlm9TLqexnMdqVhHOcnoR0Y4YadmtXAS4UJOtM4h3Yi6Bqt_OdKc5uVFEvzzClgk/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_562.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjOFl_KnduZDEIE4W63LS1T-uT9L7fR6MjCKJa3vKoC47-sChiXogZhQry3fkSQlbvNaentL1CSsCzlm9TLqexnMdqVhHOcnoR0Y4YadmtXAS4UJOtM4h3Yi6Bqt_OdKc5uVFEvzzClgk/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_562.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhToCbbf-Fdta3iZJemWz1EFcB02KDnII6m6sLAlsKFZq4skxsoVHHKjXJHJF-dpH-MWf1iMPW0SoPscZbOqWVKanjD6LhLhmY7HdzSdC5fC5MJe-5LacYZLu__nww-xr3wej8xKR6We_s/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_561.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhToCbbf-Fdta3iZJemWz1EFcB02KDnII6m6sLAlsKFZq4skxsoVHHKjXJHJF-dpH-MWf1iMPW0SoPscZbOqWVKanjD6LhLhmY7HdzSdC5fC5MJe-5LacYZLu__nww-xr3wej8xKR6We_s/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_561.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvD37j_JZ63GraidaKPE14tdvTzcm-eDO2npl_xuT-Ua9cMIJAtbVkjND8mTxVESUcwEEX1CkwgSdIwvibvoPaC2YSsqs_i4i7-lJPzcA8QKF0L9QLMCeQ9crWiMNd5WFVOdSQC09MxU4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_564.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvD37j_JZ63GraidaKPE14tdvTzcm-eDO2npl_xuT-Ua9cMIJAtbVkjND8mTxVESUcwEEX1CkwgSdIwvibvoPaC2YSsqs_i4i7-lJPzcA8QKF0L9QLMCeQ9crWiMNd5WFVOdSQC09MxU4/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_564.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWrKV1JS9ZucV-gXMQcOHIIQ8PSqaMGPK6JddaMOUKnW0Qj2tVH2rHcVEFPFegCMT565k2kUyumdKPLWgwwsD3fLdHqsr3AlplFkgE3CHkHurveSoNU6AjToUz200QKNbQaiCwltAJOeU/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_563.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWrKV1JS9ZucV-gXMQcOHIIQ8PSqaMGPK6JddaMOUKnW0Qj2tVH2rHcVEFPFegCMT565k2kUyumdKPLWgwwsD3fLdHqsr3AlplFkgE3CHkHurveSoNU6AjToUz200QKNbQaiCwltAJOeU/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_563.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwc90w8cnbIEyiV5Owgpom0GQ4PfkKESTkV3BYoWbffOH8WKZOHbRiyDXzE9ixqWwnkBSEgBz_J4q7tF2R7-rd0bSbbhGz_bpDB1AGCFqdZWMZjVHhhK9YmozIgPD8G_Q6_LTGbW0KR30/s72-c/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_537.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>8031-51 interfacing with the 8255</title><link>http://ieeebooks.blogspot.com/2012/05/8031-51-interfacing-with-8255.html</link><category>8031-51 interfacing with the 8255</category><category>8051 interfacing</category><category>8255 programming features</category><category>interfacing with 8255</category><pubDate>Mon, 28 May 2012 23:30:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-833251442015394641</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&amp;nbsp;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii9zvzWAUZ8836cIEXGdjOuJosNcsjYxkuDJMH7WUMBjud6-nwtluOYjoiu498NI12ILLLJvBEONaW-ig1RoTBbT52Z9TGw0A80iX9t2lGHysQojQc-ilPY2u6p4DN0rgRNoKmJkpsZPk/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_566.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii9zvzWAUZ8836cIEXGdjOuJosNcsjYxkuDJMH7WUMBjud6-nwtluOYjoiu498NI12ILLLJvBEONaW-ig1RoTBbT52Z9TGw0A80iX9t2lGHysQojQc-ilPY2u6p4DN0rgRNoKmJkpsZPk/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_566.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho3wLXmmQskvOOnLlvcCGUySiC7hzXXCPx56UT96IoHtL-ByIsZqfyTqC17iRDE4kNphvrGBy724iips4dvzjxUl7Z_LfTKeW3M18eEqo7dEkZE8ZjHYvvjuVpP_ExH6yWUjFaARiMHnE/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_565.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho3wLXmmQskvOOnLlvcCGUySiC7hzXXCPx56UT96IoHtL-ByIsZqfyTqC17iRDE4kNphvrGBy724iips4dvzjxUl7Z_LfTKeW3M18eEqo7dEkZE8ZjHYvvjuVpP_ExH6yWUjFaARiMHnE/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_565.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjdjrWAL3vaTOX6sFbpCCFWa6b10sHHMANmNSEIhlixSbjVjDRv2m8L1usCK04yjknt_syAkZYUzVmLPPzzMaw8EPihiBuk2DreyF9dyOUKPi1nU8nuh-MKGGbN-aL-fvc-hWoLxXchbk/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_567.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjdjrWAL3vaTOX6sFbpCCFWa6b10sHHMANmNSEIhlixSbjVjDRv2m8L1usCK04yjknt_syAkZYUzVmLPPzzMaw8EPihiBuk2DreyF9dyOUKPi1nU8nuh-MKGGbN-aL-fvc-hWoLxXchbk/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_567.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZF-Qvn7a2PDfTdvbj16gAT90-wufApuSrFHx8krPVx1mfuduiSot2WnL7DJcwSEwrxNEdzQOfkANNFLttKOMimH1mwsKL8I4mShqhFZyAUMlxsLlnqVt76o2WtqGkYEpDK75QcgIW0HU/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_570.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZF-Qvn7a2PDfTdvbj16gAT90-wufApuSrFHx8krPVx1mfuduiSot2WnL7DJcwSEwrxNEdzQOfkANNFLttKOMimH1mwsKL8I4mShqhFZyAUMlxsLlnqVt76o2WtqGkYEpDK75QcgIW0HU/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_570.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC8xGf8tayjWFijP2bFgNQvExj8cNHWNkme2ZNNqA4v8d4TmashTKG6arhx-Cujy0XXACIPCCt_YV4adbhp5KZKp7P266pzkl_7s4fT3gGDgdtK1QL-GAobRepBPlOpK86nRNDRi1PD_g/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_568.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC8xGf8tayjWFijP2bFgNQvExj8cNHWNkme2ZNNqA4v8d4TmashTKG6arhx-Cujy0XXACIPCCt_YV4adbhp5KZKp7P266pzkl_7s4fT3gGDgdtK1QL-GAobRepBPlOpK86nRNDRi1PD_g/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_568.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyyjOUXlUAdb3S-TbCnWgo5u22cr5BAI9AXlN-BrT6nnhSHtBa8xf0LQN_Ws3Z9ge3z871kNn3qaS3K4w5V5lzYmxSI-ypMVlEDqlG4k5Rv7FUPA7cU2ZGVMfpp9l9dMcVYKL-BioFQVA/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_569.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyyjOUXlUAdb3S-TbCnWgo5u22cr5BAI9AXlN-BrT6nnhSHtBa8xf0LQN_Ws3Z9ge3z871kNn3qaS3K4w5V5lzYmxSI-ypMVlEDqlG4k5Rv7FUPA7cU2ZGVMfpp9l9dMcVYKL-BioFQVA/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_569.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJiA5icMu4taxnAnhwJfK9_wRq0vLJnu9GXfkVttBtZmUubf2LxqOIClpY0Sa04RzdBzp00eOW1410vq65bwVs_MBEaAiXoB9qoPq1YdWbGIhZO8iLpojwW4UbYYG22AkbLvn_gkaAQRU/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_573.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJiA5icMu4taxnAnhwJfK9_wRq0vLJnu9GXfkVttBtZmUubf2LxqOIClpY0Sa04RzdBzp00eOW1410vq65bwVs_MBEaAiXoB9qoPq1YdWbGIhZO8iLpojwW4UbYYG22AkbLvn_gkaAQRU/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_573.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCRxMw8oasZPCbzeVnTGWtQt2NV_kgsvHLmZBInE_8vTAVUOtorjatmchFUCB2QuyVGUVDSCcRrV7by1sfXAw5G1D7CZ0xk0LM5kPm9V2TN-hHchQZVzqE7G-i6LkTiWIfpPw4wlUvZ5w/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_571.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCRxMw8oasZPCbzeVnTGWtQt2NV_kgsvHLmZBInE_8vTAVUOtorjatmchFUCB2QuyVGUVDSCcRrV7by1sfXAw5G1D7CZ0xk0LM5kPm9V2TN-hHchQZVzqE7G-i6LkTiWIfpPw4wlUvZ5w/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_571.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz84yWh0qDj89NaavmcSJpGG-Hs-nNfKxpDf7KOtEBsZ4whoPk95uRr2FQ9ApWO3k8fqeVQ_85yidt_7NPuXweGj2bNRwpuRH6yv4ZBbObxHOj_aPEz2Fy_ZJ3L9g8FNESAAbnv5Gywbs/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_572.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz84yWh0qDj89NaavmcSJpGG-Hs-nNfKxpDf7KOtEBsZ4whoPk95uRr2FQ9ApWO3k8fqeVQ_85yidt_7NPuXweGj2bNRwpuRH6yv4ZBbObxHOj_aPEz2Fy_ZJ3L9g8FNESAAbnv5Gywbs/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_572.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpyPtNmKvgP0uZgBbJgpY1IGmt379SD-PgMc8iCyFWCX_GMTNu-IzyFUaW-_Wwe8P82xBnknmYh0Q-9PS9xAV96AooiLj-zr_a1Hv2Fx9FhEmS5fQg5kfqCr2Q1bhLINpVsmW02TYPyEw/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_576.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpyPtNmKvgP0uZgBbJgpY1IGmt379SD-PgMc8iCyFWCX_GMTNu-IzyFUaW-_Wwe8P82xBnknmYh0Q-9PS9xAV96AooiLj-zr_a1Hv2Fx9FhEmS5fQg5kfqCr2Q1bhLINpVsmW02TYPyEw/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_576.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9AUVP-sBH7zBRWOTOnH22ec1VQ0pJqitowvW45LLXSSk_zH2ta0XuSSJS64RJr0QQeXMSWue8rTzxyk3XH010ZNVAGPWRgGyZckuhJFb6fw9LvNlHzZFuS4ie2ZtW2XC5_16RHUme5fo/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_574.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9AUVP-sBH7zBRWOTOnH22ec1VQ0pJqitowvW45LLXSSk_zH2ta0XuSSJS64RJr0QQeXMSWue8rTzxyk3XH010ZNVAGPWRgGyZckuhJFb6fw9LvNlHzZFuS4ie2ZtW2XC5_16RHUme5fo/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_574.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTwxfQVrmELI2lGEFLYS2A9u-jNFUYnLhHQE4ux518C70w1DtndVKeAIsI-Uk5C-Sjh2Z3dTaw1FZOj7ElUsE0iFVgBlz_1ulV7izdk735svaVIJ2pVqcueGC3SrlSY9M-gK13QBO1k28/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_575.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTwxfQVrmELI2lGEFLYS2A9u-jNFUYnLhHQE4ux518C70w1DtndVKeAIsI-Uk5C-Sjh2Z3dTaw1FZOj7ElUsE0iFVgBlz_1ulV7izdk735svaVIJ2pVqcueGC3SrlSY9M-gK13QBO1k28/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_575.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTQ_h3rX9OSg16LlFauCddHNGkHFU6MM1mdSKB7UAeqYvGqa8ViKbmLJKP9Mf0F0M2aO6lyOgCUCik__8LLxuEUrkq0PwoDBqyE84yzAWZ4np9hDB8y_4SqX2cbszWB6uDAXlc_4Ahji0/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_578.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTQ_h3rX9OSg16LlFauCddHNGkHFU6MM1mdSKB7UAeqYvGqa8ViKbmLJKP9Mf0F0M2aO6lyOgCUCik__8LLxuEUrkq0PwoDBqyE84yzAWZ4np9hDB8y_4SqX2cbszWB6uDAXlc_4Ahji0/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_578.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZXQkAUNLtvx9qtJU1W6TFNXKszDzq8qX_079d2jhRB2z_2d1p7qWSwg8QsK1fJ22uFvFHD_Ou5IXjLHHJJx8OuGFEMqe0ABTrsdFvjbop_BUczinTxN6v7gudAnnAZqetZGTemohQUPo/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_577.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZXQkAUNLtvx9qtJU1W6TFNXKszDzq8qX_079d2jhRB2z_2d1p7qWSwg8QsK1fJ22uFvFHD_Ou5IXjLHHJJx8OuGFEMqe0ABTrsdFvjbop_BUczinTxN6v7gudAnnAZqetZGTemohQUPo/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_577.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_oZwaU2ivPZ5lh5oi78xg0z1d6Mq2DWvdijKXORlEE2WuYOWZvqmTT4Dcpfk2hO2w74TkXAFrWhpZJhWb-FjCPXpC2mTiz82AQ0Y7sJ6TnsE0xCG4s1BpnsRIt4lp3-fpwD-37O3pPNA/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_579.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_oZwaU2ivPZ5lh5oi78xg0z1d6Mq2DWvdijKXORlEE2WuYOWZvqmTT4Dcpfk2hO2w74TkXAFrWhpZJhWb-FjCPXpC2mTiz82AQ0Y7sJ6TnsE0xCG4s1BpnsRIt4lp3-fpwD-37O3pPNA/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_579.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi_16dU23jS0Q9SDol1cX80Oq8kk_NrxBt1_1USM6adQOCq05FibV0OEy6GE0BMshibu_EYmPmGYwvgjVhtQLEvMH7rIDXBCyf_O7csKltNU6HKStMez30A0KR7KnNfV9yJ_lyJsly7tI/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_582.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi_16dU23jS0Q9SDol1cX80Oq8kk_NrxBt1_1USM6adQOCq05FibV0OEy6GE0BMshibu_EYmPmGYwvgjVhtQLEvMH7rIDXBCyf_O7csKltNU6HKStMez30A0KR7KnNfV9yJ_lyJsly7tI/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_582.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPppo1s_-aJhO9Eam6cImAGA7PBks_r1_hJNUNDgJ1cqBZaWWhtNAHb95AxI4HHMBCFOTZvA760byA0X9XjDzmjm0vlMwoUckWOJ0-aLDnL5kWTmA4A5-tCxvS-3ZDv7tzMJd32mYlReY/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_580.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPppo1s_-aJhO9Eam6cImAGA7PBks_r1_hJNUNDgJ1cqBZaWWhtNAHb95AxI4HHMBCFOTZvA760byA0X9XjDzmjm0vlMwoUckWOJ0-aLDnL5kWTmA4A5-tCxvS-3ZDv7tzMJd32mYlReY/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_580.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgy-OVixoPHycAAJDKurRyWFQBp1PAB4XTkVquePyXX-vsCpTS9RCiMPZaMw3NhxVrgjO9g5rYn6xSUjJEjF5eBiri1yuPYkQWOPO0CrFSdX7xPJiTUEvb3D6e8xnTYt5FfOHQfGbFaH5Q/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_581.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgy-OVixoPHycAAJDKurRyWFQBp1PAB4XTkVquePyXX-vsCpTS9RCiMPZaMw3NhxVrgjO9g5rYn6xSUjJEjF5eBiri1yuPYkQWOPO0CrFSdX7xPJiTUEvb3D6e8xnTYt5FfOHQfGbFaH5Q/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_581.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhif-M2pUyjpMmF0vgPltsciQSJBFdYHMfU2vlWymp0ZunYp9TJhXzPxy7ibIEtg1BDN6DysoCzia2qW19jRBci1FgJLToI9CulPFGaUfh7UUqIb7yf1YyyfHH643pKQm8f-ATYQIDMgc0/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_585.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhif-M2pUyjpMmF0vgPltsciQSJBFdYHMfU2vlWymp0ZunYp9TJhXzPxy7ibIEtg1BDN6DysoCzia2qW19jRBci1FgJLToI9CulPFGaUfh7UUqIb7yf1YyyfHH643pKQm8f-ATYQIDMgc0/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_585.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1kCX42pOt5mEl_cXYVkuY9Btw-9wV8Dh_HlzXOw47wisqfo7PD32oM_d1WKPGL29_JFI-pzJY_X40sP_eIVA0bd9_TtBFiGMVMi9SBQtmfiIc9WAcIfM4DVNVCn-3ebUEn0TyOxzXkWw/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_583.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1kCX42pOt5mEl_cXYVkuY9Btw-9wV8Dh_HlzXOw47wisqfo7PD32oM_d1WKPGL29_JFI-pzJY_X40sP_eIVA0bd9_TtBFiGMVMi9SBQtmfiIc9WAcIfM4DVNVCn-3ebUEn0TyOxzXkWw/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_583.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNhSv-xAx_Y7EL0BhpywC9ka-wPjbpwyY2zZQ7fOezukw60upnOSQRSuiKbvqAZTv9iULmi4SzuokHD5zx0QwR5h5kaQdzZP6S_D8RWHGfCs6_94gbAEZ5KbpyuElzwwnPZhqIwsjWDvk/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_584.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNhSv-xAx_Y7EL0BhpywC9ka-wPjbpwyY2zZQ7fOezukw60upnOSQRSuiKbvqAZTv9iULmi4SzuokHD5zx0QwR5h5kaQdzZP6S_D8RWHGfCs6_94gbAEZ5KbpyuElzwwnPZhqIwsjWDvk/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_584.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ-1Jsj-2sX_Ua5gfFMpUFBR4jhd4nJ2CiXTG2dM5n1OwMFTWmIEqZ_hGHv2QT3_wPFplpxcCA_F7GlatkjBWi6S_-Yipv4Vg46OXSo6bGcO4012slnc_mDFdMasPxYiT2j82d85QwqO0/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_588.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ-1Jsj-2sX_Ua5gfFMpUFBR4jhd4nJ2CiXTG2dM5n1OwMFTWmIEqZ_hGHv2QT3_wPFplpxcCA_F7GlatkjBWi6S_-Yipv4Vg46OXSo6bGcO4012slnc_mDFdMasPxYiT2j82d85QwqO0/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_588.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEZMwy34euAkuwcf_d_gkt-lXu4EZPeUlL1nleBPBVfH6tI1NAxzFFlJekMx_evJShGuqYypQGfSAW1SV8Wj7B5IVYx5HiokS_SU_QhQO6RA0i-EysiJf1v51VZBcb1UOY6KNebf9czyI/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_586.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEZMwy34euAkuwcf_d_gkt-lXu4EZPeUlL1nleBPBVfH6tI1NAxzFFlJekMx_evJShGuqYypQGfSAW1SV8Wj7B5IVYx5HiokS_SU_QhQO6RA0i-EysiJf1v51VZBcb1UOY6KNebf9czyI/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_586.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaEGcgUkUgjf0mnbrHNecG8_dUTyOZDKZjD_g2Oa8MKbKLRVGp0sbyTOnUSmTYFdyhjhDEaAX6zMRkEvC-y-ynz_-vDscrYHLZu7XI16hy3PvwmvY9TTd7FMQ8qDPVPrWEtDxuJbGCo0w/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_587.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaEGcgUkUgjf0mnbrHNecG8_dUTyOZDKZjD_g2Oa8MKbKLRVGp0sbyTOnUSmTYFdyhjhDEaAX6zMRkEvC-y-ynz_-vDscrYHLZu7XI16hy3PvwmvY9TTd7FMQ8qDPVPrWEtDxuJbGCo0w/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_587.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEILsU-n3YBQ43izWUQ-4t0hbJM3t8vo_mCMar7r46XsvzPODR16OoLjwO4ofhVTGB0D8SeUv06JZUmlNGphxfwiYe4FME2PXRemZGdqjriv3Vlir7Lr2nzwZn_NLefi4ff_6-KDc-mfY/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_591.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEILsU-n3YBQ43izWUQ-4t0hbJM3t8vo_mCMar7r46XsvzPODR16OoLjwO4ofhVTGB0D8SeUv06JZUmlNGphxfwiYe4FME2PXRemZGdqjriv3Vlir7Lr2nzwZn_NLefi4ff_6-KDc-mfY/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_591.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6CsosooVFCJs9mfPuAq_vkbi6J8hDxEX80zxMCGrBLmfcMmi9O95dQhmStDjH_Cw8Bxw1ax0HNW_2X5VM-Eixz031o3eoS4_Ma1fs8xmsncspET_7boTHfF8bgLTCN7PaozcJu889Wq0/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_589.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6CsosooVFCJs9mfPuAq_vkbi6J8hDxEX80zxMCGrBLmfcMmi9O95dQhmStDjH_Cw8Bxw1ax0HNW_2X5VM-Eixz031o3eoS4_Ma1fs8xmsncspET_7boTHfF8bgLTCN7PaozcJu889Wq0/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_589.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLZG9o2eDfjwI00ZZDw-ho-vC189xM001-VvGTio2mHvba3YguNx_DKZELgzbTqEj01j8plBxn_C1YRdFmVoorVdfmxkrZfgr7ruthW8v6VnPXvVT_xNT-ugOyuI9rYRVXhG4xW-x_Iec/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_590.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLZG9o2eDfjwI00ZZDw-ho-vC189xM001-VvGTio2mHvba3YguNx_DKZELgzbTqEj01j8plBxn_C1YRdFmVoorVdfmxkrZfgr7ruthW8v6VnPXvVT_xNT-ugOyuI9rYRVXhG4xW-x_Iec/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_590.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiKoz-etjwxKNz5IV5PTVhB1Nxk8PKic8Iv_v9uqARfSPRVzw2HgZnpQyhLNvJJTPsPlyhyphenhyphenwD_0jw09D1XDuDMgvU5BZ0VewCu6KbbQiDlI7kH1ZJvgeZ2HMOgi620KosoiR9Mjhc0568/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_594.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiKoz-etjwxKNz5IV5PTVhB1Nxk8PKic8Iv_v9uqARfSPRVzw2HgZnpQyhLNvJJTPsPlyhyphenhyphenwD_0jw09D1XDuDMgvU5BZ0VewCu6KbbQiDlI7kH1ZJvgeZ2HMOgi620KosoiR9Mjhc0568/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_594.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_NMQNqeFoeah4xOmoxBWFtuUU4gPSHahfjPLPyG9WBrdSjdkYiV9n7lfGzKR63mLPbmWO8nLRJwb69ZWw84GJdrwqIDQACzTxUGJMhk3jiHD_w9R_u2Z8FZVgHBbLASzeb0G2MlG6ZFE/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_592.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_NMQNqeFoeah4xOmoxBWFtuUU4gPSHahfjPLPyG9WBrdSjdkYiV9n7lfGzKR63mLPbmWO8nLRJwb69ZWw84GJdrwqIDQACzTxUGJMhk3jiHD_w9R_u2Z8FZVgHBbLASzeb0G2MlG6ZFE/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_592.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwhSGbqIc38fGNh28Zy0QEDa8IXcMlKuAp3tz7RxQZc73QSPHIBCAvnO7RnEfMZqMcKXG8O7XQeKEBf75ufomtjHlBVTClZ0tYgiiVddvCyFa0azOcPNbtVS_V8XHpQ_VsTSV4tPuDOq4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_593.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwhSGbqIc38fGNh28Zy0QEDa8IXcMlKuAp3tz7RxQZc73QSPHIBCAvnO7RnEfMZqMcKXG8O7XQeKEBf75ufomtjHlBVTClZ0tYgiiVddvCyFa0azOcPNbtVS_V8XHpQ_VsTSV4tPuDOq4/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_593.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLUIN1TZPVrRpk8EvdmItf0bDiaLM5ykaSUbgnMMNbP499HweeV0kVizN28KoXKeblh5iaoN0K24uIzFLhHAKZPk4_fNVEJJkTGSGjgClK5fSQTs3HWwQAnoWnK2t6gKotI_2n_MclX0M/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_597.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLUIN1TZPVrRpk8EvdmItf0bDiaLM5ykaSUbgnMMNbP499HweeV0kVizN28KoXKeblh5iaoN0K24uIzFLhHAKZPk4_fNVEJJkTGSGjgClK5fSQTs3HWwQAnoWnK2t6gKotI_2n_MclX0M/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_597.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb8dKrJqMw5T-Wh50NYfp5qXijy3X9i0bum5sm50XDDR5Z1x4RG_YDHPNwQI2bmf0MQZqFRrqxVfFN6WTTKu6Z2PjU8A8jNxzXB_0VUGm5stlKEuO24we2M6nzNp8iLZX-W2t8o5ued-s/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_595.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb8dKrJqMw5T-Wh50NYfp5qXijy3X9i0bum5sm50XDDR5Z1x4RG_YDHPNwQI2bmf0MQZqFRrqxVfFN6WTTKu6Z2PjU8A8jNxzXB_0VUGm5stlKEuO24we2M6nzNp8iLZX-W2t8o5ued-s/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_595.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM3-eE81C7v44EKqEfUxl-m51DzrA-Sn55ZyVKyhVM_YKhlpdmdTQKU0OmmFGcAAa5ZlMZmJNOMCDuco7oSQYRhoB-B9dgF_oOru8O8xmCVTaUyeLfeSU7cNmAPRMSWIIpCh4zLVUInJQ/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_596.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM3-eE81C7v44EKqEfUxl-m51DzrA-Sn55ZyVKyhVM_YKhlpdmdTQKU0OmmFGcAAa5ZlMZmJNOMCDuco7oSQYRhoB-B9dgF_oOru8O8xmCVTaUyeLfeSU7cNmAPRMSWIIpCh4zLVUInJQ/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_596.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyhBjmCL7BPBhxA937UdCSG_obh0GGR0PAQe7OMg4MQVKX19B3R05rHfLEM53l7Wpcll5g-W-XtVGhcYg3naHQZ3MmsZdUdX07hg38e1xIhH1JYe6VFsyhniz56abzK9welhtgCf5TZ4A/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_600.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyhBjmCL7BPBhxA937UdCSG_obh0GGR0PAQe7OMg4MQVKX19B3R05rHfLEM53l7Wpcll5g-W-XtVGhcYg3naHQZ3MmsZdUdX07hg38e1xIhH1JYe6VFsyhniz56abzK9welhtgCf5TZ4A/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_600.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZm7TVF_IXLNn1ZnQzmoIPibS-KbcadAJpC854-slWd47GLhm-PpmR8ZxbrmhRBP3Vl3mudFtAgWTWpVCLjf7H3yy3vdY5DQa3BXddHEw3We-eeDMOynJx46Qh_oAcAEkizFetCE9SO6w/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_598.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZm7TVF_IXLNn1ZnQzmoIPibS-KbcadAJpC854-slWd47GLhm-PpmR8ZxbrmhRBP3Vl3mudFtAgWTWpVCLjf7H3yy3vdY5DQa3BXddHEw3We-eeDMOynJx46Qh_oAcAEkizFetCE9SO6w/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_598.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipVFfUbZqE8eLdDFqUtCRabn2O0BO5wove6tr7IT_cjveO_vICRq3kGHhjaoMok-KI7Hjqx1TMl0qmQIuMey8iLiLwm3kxMLNN-VwXAyek7nNDtwEvgDJq5oX8Tqm7PzLBArLte4SmzUg/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_599.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipVFfUbZqE8eLdDFqUtCRabn2O0BO5wove6tr7IT_cjveO_vICRq3kGHhjaoMok-KI7Hjqx1TMl0qmQIuMey8iLiLwm3kxMLNN-VwXAyek7nNDtwEvgDJq5oX8Tqm7PzLBArLte4SmzUg/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_599.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3NYa_B4bVUGjtK0MV2SZWp6OWxcT6op4eb3cKgt_skH7ZNCQusVZ-sMw8zMz4x_YhlBMsHhRH2iTky4S0w0eG9Um53a8enxq_j0wEQS4R1Rm3eGktxZMw3yl16Wxx6FhZDgyvGcZrsHg/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_603.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3NYa_B4bVUGjtK0MV2SZWp6OWxcT6op4eb3cKgt_skH7ZNCQusVZ-sMw8zMz4x_YhlBMsHhRH2iTky4S0w0eG9Um53a8enxq_j0wEQS4R1Rm3eGktxZMw3yl16Wxx6FhZDgyvGcZrsHg/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_603.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9f_iIr2TmjZTMNrAAtO_zX69dtZ-b3wBs1CHJRCNRUHECgte262I9ZTKSUNiyCZ75k_RPAJ6anLzelP6oHoZCeFnegdSqsVOwb_eh5J0R49emgCs5_GHPGUEp44Y0eAqoobddb9LRECQ/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_601.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9f_iIr2TmjZTMNrAAtO_zX69dtZ-b3wBs1CHJRCNRUHECgte262I9ZTKSUNiyCZ75k_RPAJ6anLzelP6oHoZCeFnegdSqsVOwb_eh5J0R49emgCs5_GHPGUEp44Y0eAqoobddb9LRECQ/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_601.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvIkj7tYjFH_MC3J2FomYHDzyohTztobua5_H9BBxowK1Of8My58VaXYTjVLhyphenhyphentBqZUZ-yZrKtAtel5x-X64YDZc3O6JsaxqhDjOM2yzNk6M_bULhVCcbw8puoDrXEXsIOXLURuwazBKs/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_602.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvIkj7tYjFH_MC3J2FomYHDzyohTztobua5_H9BBxowK1Of8My58VaXYTjVLhyphenhyphentBqZUZ-yZrKtAtel5x-X64YDZc3O6JsaxqhDjOM2yzNk6M_bULhVCcbw8puoDrXEXsIOXLURuwazBKs/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_602.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrA_JJZ1tl8wBzFhJNfYh5KS-6ma7hhfxHiWSApadrt02ERZN7hHWfc-FCaCOZ69-k6T-v7QKNigZwWot50Fp0fqIHwbnzPuO8sKkAJDShbM4v5s1e1eWZf2u1-jS7H6gW9rDKKYcVdzk/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_606.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrA_JJZ1tl8wBzFhJNfYh5KS-6ma7hhfxHiWSApadrt02ERZN7hHWfc-FCaCOZ69-k6T-v7QKNigZwWot50Fp0fqIHwbnzPuO8sKkAJDShbM4v5s1e1eWZf2u1-jS7H6gW9rDKKYcVdzk/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_606.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjye8gkJUgYUwfWHI_bVNbKNpPS3YViXD9JkH9rW1SnZ24AV46QmSqQgqw2ExaH75vHRfVFdMQ-AaQUYRMzJsxkmjK_baOlTqonyUvR8E5c0KZ6TJesmwCfbXbeqVh1X27H9RK1FniaooQ/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_604.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjye8gkJUgYUwfWHI_bVNbKNpPS3YViXD9JkH9rW1SnZ24AV46QmSqQgqw2ExaH75vHRfVFdMQ-AaQUYRMzJsxkmjK_baOlTqonyUvR8E5c0KZ6TJesmwCfbXbeqVh1X27H9RK1FniaooQ/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_604.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjORF79DtAsDX4izSLN0U7j9LLMyQsQfE-NgjNxVLG1QD0WQMXm5CX8-mLAfEKfQzzcf57irRRK2Xib-dvYJfToEdLKqULqeSZh-xIrLj5sNuIw65HN5SDNj2ILJh1Ezacf1jJ1-gOOoi4/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_605.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjORF79DtAsDX4izSLN0U7j9LLMyQsQfE-NgjNxVLG1QD0WQMXm5CX8-mLAfEKfQzzcf57irRRK2Xib-dvYJfToEdLKqULqeSZh-xIrLj5sNuIw65HN5SDNj2ILJh1Ezacf1jJ1-gOOoi4/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_605.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqv-7dv6SFOsTZ4qpcc5ORNAfzs2R2nm0h2KrIQMkXXlSdajhbRmx19uCAio5qDLF70df__ZFFDZvaD7eMsKyUF9JGqTmm9n5b_syA91PJexL3VrmOmo1hVEDRlAB4Cf_cL8AMDJW44i0/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_609.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqv-7dv6SFOsTZ4qpcc5ORNAfzs2R2nm0h2KrIQMkXXlSdajhbRmx19uCAio5qDLF70df__ZFFDZvaD7eMsKyUF9JGqTmm9n5b_syA91PJexL3VrmOmo1hVEDRlAB4Cf_cL8AMDJW44i0/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_609.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitPuMlytgKHsd9dNom-mTC-Ss7XTJDLo3KflDKZaWL4h8-ayA3JoHaWJrvMpQJePlhfOnQinv1ZF37T6ln-MBIh8A2FLAxHczrI4CxLc-4MVNVqPBW0vlnNP_1gDltaQmAYHk-ClYzDNY/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_607.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitPuMlytgKHsd9dNom-mTC-Ss7XTJDLo3KflDKZaWL4h8-ayA3JoHaWJrvMpQJePlhfOnQinv1ZF37T6ln-MBIh8A2FLAxHczrI4CxLc-4MVNVqPBW0vlnNP_1gDltaQmAYHk-ClYzDNY/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_607.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidkAoaNFn7L2KjLbde4-vToAtiFGp6Qy91jmP93ILU1RlBFofBaRnF9wFrmrTY3hdMzenHp2vYDQspLVFQml1IuvsRYj40BW0ZDZlQFnHOldK_-hUBHwptzpZljvKuWRDxHSpHuAWH7pA/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_608.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidkAoaNFn7L2KjLbde4-vToAtiFGp6Qy91jmP93ILU1RlBFofBaRnF9wFrmrTY3hdMzenHp2vYDQspLVFQml1IuvsRYj40BW0ZDZlQFnHOldK_-hUBHwptzpZljvKuWRDxHSpHuAWH7pA/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_608.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZyYmuQPS2aNn3oNpi22VQDiRrwwYtZm3FtWtw4n4wqDPSP4gr-LNcUIC8yaIFDGglg7Z1v8Vf6U5ehhy2-LppamZVp-aYICvWMNLU6t5C9o3ZrxnHuQkEeYMdplgkRhHpuTc51yYPPdw/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_612.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZyYmuQPS2aNn3oNpi22VQDiRrwwYtZm3FtWtw4n4wqDPSP4gr-LNcUIC8yaIFDGglg7Z1v8Vf6U5ehhy2-LppamZVp-aYICvWMNLU6t5C9o3ZrxnHuQkEeYMdplgkRhHpuTc51yYPPdw/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_612.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-EJyyNwZZ4x6eltJtWJfLnO5pz-I3O60hQuPgYcaZJsA19PjzGu060TJGliKeZN_p8ItGIx2ePV8rkI1y_aRwbsDvJ2DgwnMGXntLAQ_ObOWCxqLJfV2wmUFDhD1k9Q5qYpv8Lg7wqSQ/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_610.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-EJyyNwZZ4x6eltJtWJfLnO5pz-I3O60hQuPgYcaZJsA19PjzGu060TJGliKeZN_p8ItGIx2ePV8rkI1y_aRwbsDvJ2DgwnMGXntLAQ_ObOWCxqLJfV2wmUFDhD1k9Q5qYpv8Lg7wqSQ/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_610.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2coAslXFkHOnPQar-myuHSydJtTU0BwMc9n7Jw8BYffktwbSUWYH4llc6JBo_s97mOlKm1cXRRwLJex54uwExfYwabsrPNypm9Rjtpu7lftB9TJEmnIG7_oMMdJ9NXZ0B24oV1ubBGgc/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_611.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2coAslXFkHOnPQar-myuHSydJtTU0BwMc9n7Jw8BYffktwbSUWYH4llc6JBo_s97mOlKm1cXRRwLJex54uwExfYwabsrPNypm9Rjtpu7lftB9TJEmnIG7_oMMdJ9NXZ0B24oV1ubBGgc/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_611.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBQOGXSl3vtc7LHg4zYwC1ILWX1azrRs4FxsX28qadHn9AZ0SP_Nv8Ubg2tKjeE92D5Fiy0595uNapBdl6xXno0ghdBzqXpTKXLxYveGecm75W3TDo9K7rO6U-aHmzJPbi_Zis0425SdE/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_615.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBQOGXSl3vtc7LHg4zYwC1ILWX1azrRs4FxsX28qadHn9AZ0SP_Nv8Ubg2tKjeE92D5Fiy0595uNapBdl6xXno0ghdBzqXpTKXLxYveGecm75W3TDo9K7rO6U-aHmzJPbi_Zis0425SdE/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_615.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJbaC2sUsplSQ6oRLvN0fNa7PEpIsanWTNWFtwp46Sa7IStV7EX8a1xD5oxRHXhKq00qKanSw-ptN0X4EZ-8mopx7Wow8BhcfKf3Gq8DjdcaOe1BCeb2Hqp3Qe1CUt-61W-yr1t6aGoOg/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_613.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJbaC2sUsplSQ6oRLvN0fNa7PEpIsanWTNWFtwp46Sa7IStV7EX8a1xD5oxRHXhKq00qKanSw-ptN0X4EZ-8mopx7Wow8BhcfKf3Gq8DjdcaOe1BCeb2Hqp3Qe1CUt-61W-yr1t6aGoOg/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_613.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm03uzx6qFl6jF55vg9Kb8d_7s-ARXiJ24dNPsCsCyRSRgVVY9Ktz9PWKYwQkaYUs-2QTtZp_npPHDWbUprf7ZrhOs2eqjjKNlt-qWIWZYN1ThmrYTv4ktQcPN2y45Y1bcrqWqPHyEr7E/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_614.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm03uzx6qFl6jF55vg9Kb8d_7s-ARXiJ24dNPsCsCyRSRgVVY9Ktz9PWKYwQkaYUs-2QTtZp_npPHDWbUprf7ZrhOs2eqjjKNlt-qWIWZYN1ThmrYTv4ktQcPN2y45Y1bcrqWqPHyEr7E/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_614.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHbBENakjjYGZM_rzvdtq_NQRTlGmWbf8CFAWI3NsB0yYcSaJ7NXw0JTR8S-KgS9AC7z4WwcuFhq9GHXwmYUEOxIEtKZocF5qRSWLemRXnF6H3FFvyaxC2Rf88aqszr9jWUwwXpXqPJpE/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_617.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHbBENakjjYGZM_rzvdtq_NQRTlGmWbf8CFAWI3NsB0yYcSaJ7NXw0JTR8S-KgS9AC7z4WwcuFhq9GHXwmYUEOxIEtKZocF5qRSWLemRXnF6H3FFvyaxC2Rf88aqszr9jWUwwXpXqPJpE/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_617.png" width="184" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjep-ZwQk2VaAzYTqIbTetTWqq-7DZ2aLYY5IHvvFi1YoNdvTGY2HsanrGmHdk0vFcPmNxE2CrNj0bMgM_LcXunhYrKyYBy7P-daMUH76c3YtFLWQvahXQy8TTm6y54lgezSUoAFun4A9Q/s1600/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_616.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjep-ZwQk2VaAzYTqIbTetTWqq-7DZ2aLYY5IHvvFi1YoNdvTGY2HsanrGmHdk0vFcPmNxE2CrNj0bMgM_LcXunhYrKyYBy7P-daMUH76c3YtFLWQvahXQy8TTm6y54lgezSUoAFun4A9Q/s200/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_616.png" width="184" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii9zvzWAUZ8836cIEXGdjOuJosNcsjYxkuDJMH7WUMBjud6-nwtluOYjoiu498NI12ILLLJvBEONaW-ig1RoTBbT52Z9TGw0A80iX9t2lGHysQojQc-ilPY2u6p4DN0rgRNoKmJkpsZPk/s72-c/The+8051+Microcontroller+and+Embedded+Systems+Using+Assembly+and+C-2nd-ed_566.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>Real Time Spectrum Analysis</title><link>http://ieeebooks.blogspot.com/2011/10/real-time-spectrum-analysis.html</link><category>Fundamentals of Real Time Spectrum Analysis</category><category>Real Time Spectrum Analysis</category><category>Specterum Analysis</category><pubDate>Sat, 29 Oct 2011 02:11:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-8706617815292700227</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Downloadlink"&gt;  &lt;span style="color: #38761d; font-size: large;"&gt;Fundamentals of Real Time Spectrum Analysis.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://rekkerd.org/img/200912/sph-analyzer.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="173" src="http://rekkerd.org/img/200912/sph-analyzer.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
A &lt;b&gt;Real Time Analyzer (RTA)&lt;/b&gt; is a professional audio device that measures and displays the frequency spectrum of an audio signal; a spectrum analyzer that works in real time. An RTA can range from a small PDA-sized device to a rackmounted hardware unit to software running on a laptop. It works by measuring and displaying sound input, often from an integrated microphone or with a signal from a PA system.  Basic RTAs show three measurements per octave at 3 or 6 dB increments;  sophisticated software solutions can show 24 or more measurements per  octave as well as 0.1 dB resolution.....................&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span class="mw-headline" id="Types"&gt;Types&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;br /&gt;
&lt;/div&gt;There are generally two types of RTAs:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;RTAs employing analog signal processing, and&lt;/li&gt;
&lt;li&gt;RTAs employing digital signal processing (DSP).&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
The main difference between the two types is that the analog RTAs use a series of hardwired, analog bandpass filters to break the signal into frequency bands prior to measuring it. Digital  RTAs use digital sampling technology and microprocessor based digital  signal processing to perform necessary calculations, such as Fast Fourier Transforms,  to perform the measurements and thus do not need analog hardware  filters to isolate each frequency band. The digital approach to signal  analysis generally yields much higher accuracy and resolution and thus  most RTAs currently in production use digital signal processing  technology&lt;sup class="reference" id="cite_ref-0"&gt;. &lt;/sup&gt;Digital signal processing is more cost effective.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;&lt;span class="mw-headline" id="Professional_Use"&gt;Professional Use&lt;/span&gt;&lt;/h3&gt;RTAs are often used by sound engineers and by acousticians installing  audio systems in all kinds of listening spaces: Venues, home theatres,  cars etc. The parameters that can be measured are the spectral aspects  of sound reproduction caused by effects like resonances and constructive  and destructive interference,  but not imaging and spatial aspects. In professional audio many systems  incorporate an RTA along with a device that also performs equalization. While measuring pink noise  or other test tones, such a controller can level out the frequency  response by employing a set of adjustments in the appropriate frequency  areas according to the system's interaction with the venue's size, shape  and construction materials, among other things.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Download | &lt;a href="https://docs.google.com/document/d/1zcjJv8naiK58ANu5aA8lrnSLYHmSqluK_3dGCI-8RCc/edit" target="_blank"&gt;.PDF&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>Datapath Logic Cells and I/O Cells | Cell Compilers</title><link>http://ieeebooks.blogspot.com/2011/09/datapath-logic-cells-and-io-cells-cell.html</link><category>data</category><category>datapath cells</category><category>Datapath Logic Cells</category><category>Datapath Logic Cells and I/O Cells</category><category>datapath logical</category><category>logic</category><category>logical cells</category><category>path</category><pubDate>Sat, 17 Sep 2011 02:30:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-4375920054668732177</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://www10.edacafe.com/book/ASIC/CH02/CH02-32.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://www10.edacafe.com/book/ASIC/CH02/CH02-32.gif" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Datapath Logic Cells&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;Suppose we wish to build an &lt;span class="EmphasisPrefix"&gt; n&lt;/span&gt; -bit adder (that adds two &lt;span class="EmphasisPrefix"&gt; n&lt;/span&gt; -bit numbers) and to exploit the regularity of this function in the layout. We can do so using a datapath structure. &lt;br /&gt;
&lt;div class="Body"&gt; &lt;a href="" name="pgfId=142353"&gt;  &lt;/a&gt; The following two functions, SUM and COUT, implement the sum and carry out for a &lt;span class="Definition"&gt; full adder&lt;/span&gt;  (&lt;span class="Definition"&gt; FA&lt;/span&gt; ) with two data inputs (A, B) and a carry in, CIN: &amp;nbsp;&lt;/div&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnLeft"&gt; &lt;a href="" name="pgfId=380351"&gt;  &lt;/a&gt; SUM = A &lt;span class="Symbol"&gt; ⊕&lt;/span&gt;  B &lt;span class="Symbol"&gt; ⊕&lt;/span&gt;  CIN = SUM(A, B, CIN) = PARITY(A, B, CIN) ,&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnNumber"&gt; &lt;a href="" name="pgfId=380353"&gt;  &lt;/a&gt; (2.38)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="EquationAlign"&gt; &lt;a href="" name="pgfId=380355"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqn"&gt; &lt;a href="" name="pgfId=380357"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnLeft"&gt; &lt;a href="" name="pgfId=380359"&gt;  &lt;/a&gt; COUT = A · B + A · CIN + B · CIN = MAJ(A, B, CIN).&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnNumber"&gt; &lt;a href="" name="pgfId=380361"&gt;  &lt;/a&gt; (2.39)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="BodyAfterHead"&gt; &lt;a href="" name="pgfId=99872"&gt;  &lt;/a&gt; The sum uses the &lt;span class="Definition"&gt; parity function&lt;/span&gt;  ('1' if there are an odd numbers of '1's in the inputs). The carry out, COUT, uses the 2-of-3 &lt;span class="Definition"&gt; majority function&lt;/span&gt;  ('1' if the majority of the inputs are '1'). We can combine these two functions in a single FA logic cell, ADD(A[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ], B[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ], CIN, S[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ], COUT), shown in Figure&amp;nbsp;2.20(a), where &amp;nbsp;&lt;/div&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnLeft"&gt; &lt;a href="" name="pgfId=380377"&gt;  &lt;/a&gt; S[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] = SUM (A[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ], B[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ], CIN) ,&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnNumber"&gt; &lt;a href="" name="pgfId=380379"&gt;  &lt;/a&gt; (2.40)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="EquationAlign"&gt; &lt;a href="" name="pgfId=380381"&gt;  &lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="EquationAlign"&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqn"&gt; &lt;a href="" name="pgfId=380383"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnLeft"&gt; &lt;a href="" name="pgfId=380385"&gt;  &lt;/a&gt; COUT = MAJ (A[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ], B[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ], CIN) .&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnNumber"&gt; &lt;a href="" name="pgfId=380387"&gt;  &lt;/a&gt; (2.41)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=105349"&gt;  &lt;/a&gt; Now we can build a 4-bit &lt;span class="Definition"&gt; ripple-carry adder&lt;/span&gt;  (&lt;span class="Definition"&gt; RCA&lt;/span&gt; ) by connecting four of these ADD cells together as shown in Figure&amp;nbsp;2.20(b). The &lt;span class="EquationVariables"&gt; i &lt;/span&gt; th ADD cell is arranged with the following: two bus inputs A[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ], B[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ]; one bus output S[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ]; an input, CIN, that is the carry in from stage (&lt;span class="EquationVariables"&gt; i&lt;/span&gt;  – 1) below and is also passed up to the cell above as an output; and an output, COUT, that is the carry out to stage (&lt;span class="EquationVariables"&gt; i&lt;/span&gt;  + 1) above. In the 4-bit adder shown in Figure&amp;nbsp;2.20(b) we connect the  carry input, CIN[0], to VSS and use COUT[3] and COUT[2] to indicate  arithmetic overflow (in Section&amp;nbsp;2.6.1 we shall see why we may need both  signals). Notice that we build the ADD cell so that COUT[2] is available  at the top of the datapath when we need it.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=87115"&gt;  &lt;/a&gt; Figure&amp;nbsp;2.20(c) shows a layout of the ADD cell. The A inputs, B inputs,  and S outputs all use m1 interconnect running in the horizontal  direction—we call these &lt;span class="Definition"&gt; data&lt;/span&gt;  signals. Other signals can enter or exit from the top or bottom and run vertically across the datapath in m2—we call these &lt;span class="Definition"&gt; control&lt;/span&gt;  signals. We can also use m1 for control and m2 for data, but we  normally do not mix these approaches in the same structure. Control  signals are typically clocks and other signals common to elements. For  example, in Figure&amp;nbsp;2.20(c) the carry signals, CIN and COUT, run  vertically in m2 between cells. To build a 4-bit adder we stack four ADD  cells creating the array structure shown in Figure&amp;nbsp;2.20(d). In this  case the A and B data bus inputs enter from the left and bus S, the sum,  exits at the right, but we can connect A, B, and S to either side if we  want.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=87469"&gt;  &lt;/a&gt; The layout of buswide logic that operates on data signals in this fashion is called a &lt;span class="Definition"&gt; datapath&lt;/span&gt; . The module ADD is a &lt;span class="Definition"&gt; datapath cell&lt;/span&gt;  or &lt;span class="Definition"&gt; datapath element&lt;/span&gt; . Just as we do for standard cells we make all the datapath cells in a  library the same height so we can abut other datapath cells on either  side of the adder to create a more complex datapath. When people talk  about a datapath they always assume that it is oriented so that  increasing the size in bits makes the datapath grow in height, upwards  in the vertical direction, and adding different datapath elements to  increase the function makes the datapath grow in width, in the  horizontal direction—but we can rotate and position a completed datapath  in any direction we want on a chip. &lt;/div&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFigure"&gt; &lt;a href="" name="pgfId=87029"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;div&gt; &lt;img src="http://iroi.seu.edu.cn/books/asics/Book2/CH02/CH02-32.gif" /&gt; &lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFigureTitle"&gt; &lt;a href="" name="pgfId=87032"&gt;  &lt;/a&gt; FIGURE&amp;nbsp;2.20&amp;nbsp;A datapath adder. (a)&amp;nbsp;A full-adder (FA) cell with inputs (A  and B), a carry in, CIN, sum output, S, and carry out, COUT. (b)&amp;nbsp;A 4-bit  adder. (c)&amp;nbsp;The layout, using two-level metal, with data in m1 and  control in m2. In this example the wiring is completed outside the cell;  it is also possible to design the datapath cells to contain the wiring.  Using three levels of metal, it is possible to wire over the top of the  datapath cells. (d)&amp;nbsp;The datapath layout.&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=85578"&gt;  &lt;/a&gt; What is the difference between using a datapath, standard cells, or gate  arrays? Cells are placed together in rows on a CBIC or an MGA, but  there is no generally no regularity to the arrangement of the cells  within the rows—we let software arrange the cells and complete the  interconnect. Datapath layout automatically takes care of most of the  interconnect between the cells with the following advantages:&lt;/div&gt;&lt;ul&gt;&lt;li class="BulletFirst"&gt; &lt;a href="" name="pgfId=88273"&gt;  &lt;/a&gt; Regular layout produces predictable and equal delay for each bit.&lt;/li&gt;
&lt;li class="BulletLast"&gt; &lt;a href="" name="pgfId=88274"&gt;  &lt;/a&gt; Interconnect between cells can be built into each cell.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=88276"&gt;  &lt;/a&gt; There are some disadvantages of using a datapath:&lt;/div&gt;&lt;ul&gt;&lt;li class="BulletFirst"&gt; &lt;a href="" name="pgfId=88277"&gt;  &lt;/a&gt; The overhead (buffering and routing the control signals, for example)  can make a narrow (small number of bits) datapath larger and slower than  a standard-cell (or even gate-array) implementation.&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=88278"&gt;  &lt;/a&gt; Datapath cells have to be predesigned (otherwise we are using  full-custom design) for use in a wide range of datapath sizes. Datapath  cell design can be harder than designing gate-array macros or standard  cells.&lt;/li&gt;
&lt;li class="BulletLast"&gt; &lt;a href="" name="pgfId=88279"&gt;  &lt;/a&gt; Software to assemble a datapath is more complex and not as widely used as software for assembling standard cells or gate arrays.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=142366"&gt;  &lt;/a&gt; There are some newer standard-cell and gate-array tools that can take  advantage of regularity in a design and position cells carefully. The  problem is in finding the regularity if it is not specified. Using a  datapath is one way to specify regularity to ASIC design tools.&lt;/div&gt;&lt;div&gt; &lt;h3 class="Heading2"&gt; &lt;a href="" name="pgfId=83863"&gt;  &lt;/a&gt; 2.6.1&amp;nbsp;Datapath Elements&lt;/h3&gt;&lt;div class="BodyAfterHead"&gt; &lt;a href="" name="pgfId=129197"&gt;  &lt;/a&gt; Figure&amp;nbsp;2.21 shows some typical datapath symbols for an adder (people  rarely use the IEEE standards in ASIC datapath libraries). I use heavy  lines (they are 1.5 point wide) with a stroke to denote a data bus (that  flows in the horizontal direction in a datapath), and regular lines  (0.5 point) to denote the control signals (that flow vertically in a  datapath). At the risk of adding confusion where there is none, this  stroke to indicate a data bus has nothing to do with mixed-logic  conventions. For a bus, A[31:0] denotes a 32-bit bus with A[31] as the  leftmost or &lt;span class="Definition"&gt; most-significant bit&lt;/span&gt;  or &lt;span class="Definition"&gt; MSB&lt;/span&gt; , and A[0] as the &lt;span class="Definition"&gt; least-significant bit&lt;/span&gt;  or &lt;span class="Definition"&gt; LSB&lt;/span&gt; . Sometimes we shall use A[MSB] or A[LSB] to refer to these bits. Notice that if we have an &lt;span class="EquationVariables"&gt; n&lt;/span&gt; -bit bus and LSB = 0, then MSB = &lt;span class="EquationVariables"&gt; n&lt;/span&gt;  – 1. Also, for example, A[4] is the fifth bit on the bus (from the LSB). We use a '&lt;span class="Symbol"&gt; S&lt;/span&gt; ' or 'ADD' inside the symbol to denote an adder instead of '+', so we  can attach '–' or '+/–' to the inputs for a subtracter or  adder/subtracter.&lt;/div&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFigure"&gt; &lt;a href="" name="pgfId=162514"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;div&gt; &lt;img src="http://iroi.seu.edu.cn/books/asics/Book2/CH02/CH02-33.gif" /&gt; &lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFigureTitle"&gt; &lt;a href="" name="pgfId=162517"&gt;  &lt;/a&gt; FIGURE&amp;nbsp;2.21&amp;nbsp;Symbols for a datapath adder. (a)&amp;nbsp;A data bus is shown by a heavy line (1.5 point) and a bus symbol. If the bus is &lt;span class="EmphasisPrefix"&gt; n&lt;/span&gt; -bits wide then MSB = &lt;span class="EquationVariables"&gt; n&lt;/span&gt;  – 1. (b)&amp;nbsp;An alternative symbol for an adder. (c)&amp;nbsp;Control signals are shown as lightweight (0.5 point) lines.&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=162204"&gt;  &lt;/a&gt; Some schematic datapath symbols include only data signals and omit the  control signals—but we must not forget them. In Figure&amp;nbsp;2.21, for  example, we may need to explicitly tie CIN[0] to VSS and use COUT[MSB]  and COUT[MSB – 1] to detect overflow. Why might we need both of these  control signals? Table&amp;nbsp;2.11 shows the process of simple arithmetic for  the different binary number representations, including unsigned, signed  magnitude, ones’ complement, and two’s complement.&lt;/div&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td colspan="5" rowspan="1"&gt; &lt;div class="TableTitle"&gt; &lt;a href="" name="pgfId=162232"&gt;  &lt;/a&gt; TABLE&amp;nbsp;2.11&amp;nbsp;Binary arithmetic.&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="2"&gt; &lt;div class="TableFirst"&gt; &lt;a href="" name="pgfId=162242"&gt;  &lt;/a&gt; &lt;span class="TableHeads"&gt; Operation&lt;/span&gt; &lt;/div&gt;&lt;/td&gt; &lt;td colspan="4" rowspan="1"&gt; &lt;div class="TableFirst"&gt; &lt;a href="" name="pgfId=162244"&gt;  &lt;/a&gt; &lt;span class="TableHeads"&gt; Binary Number Representation&lt;/span&gt; &lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFirst"&gt; &lt;a href="" name="pgfId=162254"&gt;  &lt;/a&gt; &lt;span class="TableHeads"&gt; Unsigned&lt;/span&gt; &lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFirst"&gt; &lt;a href="" name="pgfId=162256"&gt;  &lt;/a&gt; &lt;span class="TableHeads"&gt; Signed&lt;/span&gt; &lt;/div&gt;&lt;div class="TableFirst"&gt; &lt;a href="" name="pgfId=162257"&gt;  &lt;/a&gt; &lt;span class="TableHeads"&gt; magnitude&lt;/span&gt; &lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFirst"&gt; &lt;a href="" name="pgfId=162259"&gt;  &lt;/a&gt; &lt;span class="TableHeads"&gt; Ones’ &lt;/span&gt; &lt;/div&gt;&lt;div class="TableFirst"&gt; &lt;a href="" name="pgfId=162260"&gt;  &lt;/a&gt; &lt;span class="TableHeads"&gt; complement&lt;/span&gt; &lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFirst"&gt; &lt;a href="" name="pgfId=162262"&gt;  &lt;/a&gt; &lt;span class="TableHeads"&gt; Two’s&lt;/span&gt; &lt;/div&gt;&lt;div class="TableFirst"&gt; &lt;a href="" name="pgfId=162263"&gt;  &lt;/a&gt; &lt;span class="TableHeads"&gt; complement&lt;/span&gt; &lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162265"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162267"&gt;  &lt;/a&gt; no change&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162269"&gt;  &lt;/a&gt; &lt;b class="Keyword"&gt; if&lt;/b&gt;  positive&lt;b class="Keyword"&gt;  then&lt;/b&gt;  MSB = 0&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162270"&gt;  &lt;/a&gt; &lt;b class="Keyword"&gt; else&lt;/b&gt;  MSB = 1&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162272"&gt;  &lt;/a&gt; &lt;b class="Keyword"&gt; if&lt;/b&gt;  negative &lt;b class="Keyword"&gt; then&lt;/b&gt;  flip bits&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162274"&gt;  &lt;/a&gt; &lt;b class="Keyword"&gt; if&lt;/b&gt;  negative &lt;b class="Keyword"&gt; then&lt;/b&gt;  {flip bits; add 1}&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162276"&gt;  &lt;/a&gt; 3 =&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162278"&gt;  &lt;/a&gt; 0011&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162280"&gt;  &lt;/a&gt; 0011&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162282"&gt;  &lt;/a&gt; 0011&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162284"&gt;  &lt;/a&gt; 0011&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162286"&gt;  &lt;/a&gt; –3 =&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162288"&gt;  &lt;/a&gt; NA&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162290"&gt;  &lt;/a&gt; 1011&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162292"&gt;  &lt;/a&gt; 1100&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162294"&gt;  &lt;/a&gt; 1101&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162296"&gt;  &lt;/a&gt; zero =&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162298"&gt;  &lt;/a&gt; 0000&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162300"&gt;  &lt;/a&gt; 0000 or 1000&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162302"&gt;  &lt;/a&gt; 1111 or 0000&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162304"&gt;  &lt;/a&gt; 0000&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162306"&gt;  &lt;/a&gt; max. positive =&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162308"&gt;  &lt;/a&gt; 1111 = 15&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162310"&gt;  &lt;/a&gt; 0111 = 7&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162312"&gt;  &lt;/a&gt; 0111 = 7&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162314"&gt;  &lt;/a&gt; 0111 = 7&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162316"&gt;  &lt;/a&gt; max. negative =&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162318"&gt;  &lt;/a&gt; 0000= 0&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162320"&gt;  &lt;/a&gt; 1111 = –7&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162322"&gt;  &lt;/a&gt; 1000 = –7&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162324"&gt;  &lt;/a&gt; 1000 = –8&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162326"&gt;  &lt;/a&gt; addition =&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162327"&gt;  &lt;/a&gt; S =  A + B&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162328"&gt;  &lt;/a&gt; = addend + augend&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162329"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162330"&gt;  &lt;/a&gt; SG(A) = sign of A&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162332"&gt;  &lt;/a&gt; S = A + B&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162334"&gt;  &lt;/a&gt; &lt;b class="Keyword"&gt; if&lt;/b&gt;  SG(A) = SG(B) &lt;b class="Keyword"&gt; then&lt;/b&gt;  S = A + B&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162335"&gt;  &lt;/a&gt; &lt;b class="Keyword"&gt; else&lt;/b&gt;  {&lt;b class="Keyword"&gt; if&lt;/b&gt;  B &amp;lt; A &lt;b class="Keyword"&gt; then&lt;/b&gt;  S = A – B&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162336"&gt;  &lt;/a&gt; &lt;b class="Keyword"&gt; else&lt;/b&gt;  S = B – A}&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162338"&gt;  &lt;/a&gt; S = &lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162339"&gt;  &lt;/a&gt; A + B + COUT[MSB]&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162340"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162341"&gt;  &lt;/a&gt; COUT is carry out&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162343"&gt;  &lt;/a&gt; S = A + B&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162345"&gt;  &lt;/a&gt; addition result:&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162346"&gt;  &lt;/a&gt; OV = overflow,&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162347"&gt;  &lt;/a&gt; OR = out of range&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162349"&gt;  &lt;/a&gt; OR = COUT[MSB]&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162350"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162351"&gt;  &lt;/a&gt; COUT is carry out&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=191828"&gt;  &lt;/a&gt; &lt;b class="Keyword"&gt; if&lt;/b&gt;  SG(A) = SG(B) &lt;b class="Keyword"&gt; then&lt;/b&gt;  OV = COUT[MSB]&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=191829"&gt;  &lt;/a&gt; &lt;b class="Keyword"&gt; else&lt;/b&gt;  OV = 0 (impossible)&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162356"&gt;  &lt;/a&gt; OV =&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162357"&gt;  &lt;/a&gt;  XOR(COUT[MSB], COUT[MSB–1])&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162359"&gt;  &lt;/a&gt; OV = &lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162360"&gt;  &lt;/a&gt; XOR(COUT[MSB], COUT[MSB – 1])&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162362"&gt;  &lt;/a&gt; SG(S) = sign of S &lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162363"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162364"&gt;  &lt;/a&gt; S =  A + B&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162366"&gt;  &lt;/a&gt; NA&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162368"&gt;  &lt;/a&gt; &lt;b class="Keyword"&gt; if&lt;/b&gt;  SG(A) = SG(B) &lt;b class="Keyword"&gt; then&lt;/b&gt;  SG(S) = SG(A)&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162369"&gt;  &lt;/a&gt; &lt;b class="Keyword"&gt; else&lt;/b&gt;  {&lt;b class="Keyword"&gt; if&lt;/b&gt;  B &amp;lt; A &lt;b class="Keyword"&gt; then&lt;/b&gt;  SG(S) = SG(A)&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162370"&gt;  &lt;/a&gt; &lt;b class="Keyword"&gt; else&lt;/b&gt;  SG(S) = SG(B)}&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162372"&gt;  &lt;/a&gt; NA&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162374"&gt;  &lt;/a&gt; NA&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162376"&gt;  &lt;/a&gt; subtraction =&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162377"&gt;  &lt;/a&gt; D =  A – B&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162378"&gt;  &lt;/a&gt; = minuend&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162379"&gt;  &lt;/a&gt;  – subtrahend&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162381"&gt;  &lt;/a&gt; D = A – B&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162383"&gt;  &lt;/a&gt; SG(B) = NOT(SG(B));&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162384"&gt;  &lt;/a&gt; D = A + B&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162386"&gt;  &lt;/a&gt; Z = –B (negate);&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162387"&gt;  &lt;/a&gt; D = A + Z&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162389"&gt;  &lt;/a&gt; Z = –B (negate);&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162390"&gt;  &lt;/a&gt; D = A + Z&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162392"&gt;  &lt;/a&gt; subtraction result :&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162393"&gt;  &lt;/a&gt; OV = overflow,&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162394"&gt;  &lt;/a&gt; OR = out of range&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162396"&gt;  &lt;/a&gt; OR = BOUT[MSB]&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162397"&gt;  &lt;/a&gt; BOUT is borrow out&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162399"&gt;  &lt;/a&gt; as in addition&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162401"&gt;  &lt;/a&gt; as in addition&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162403"&gt;  &lt;/a&gt; as in addition&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162405"&gt;  &lt;/a&gt; negation :&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162406"&gt;  &lt;/a&gt; Z = –A (negate)&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162408"&gt;  &lt;/a&gt; NA&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162410"&gt;  &lt;/a&gt; Z = A;&lt;/div&gt;&lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162411"&gt;  &lt;/a&gt; SG(Z) = NOT(SG(A))&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162413"&gt;  &lt;/a&gt; Z = NOT(A)&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=162415"&gt;  &lt;/a&gt; Z = NOT(A) + 1&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;h3 class="Heading2"&gt; &lt;a href="" name="pgfId=162537"&gt;  &lt;/a&gt; 2.6.2&amp;nbsp;Adders&lt;/h3&gt;&lt;div class="BodyAfterHead"&gt; &lt;a href="" name="pgfId=194409"&gt;  &lt;/a&gt; We can view addition in terms of &lt;span class="Definition"&gt; generate&lt;/span&gt; , G[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ], and &lt;span class="Definition"&gt; propagate&lt;/span&gt; , P[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ], signals. &lt;/div&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnLeft"&gt; &lt;a href="" name="pgfId=380769"&gt;  &lt;/a&gt; &lt;span class="BodyText"&gt; method 1&lt;/span&gt; &lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnLeft"&gt; &lt;a href="" name="pgfId=380771"&gt;  &lt;/a&gt; &lt;span class="BodyText"&gt; method 2&lt;/span&gt; &lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnLeft"&gt; &lt;a href="" name="pgfId=380773"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnLeft"&gt; &lt;a href="" name="pgfId=380775"&gt;  &lt;/a&gt; G[i] = A[i] · B[i]&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnLeft"&gt; &lt;a href="" name="pgfId=380777"&gt;  &lt;/a&gt; G[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] = A[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] · B[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ]&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnNumber"&gt; &lt;a href="" name="pgfId=380779"&gt;  &lt;/a&gt; (2.42)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnLeft"&gt; &lt;a href="" name="pgfId=380781"&gt;  &lt;/a&gt; P[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] = A[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] &lt;span class="Symbol"&gt; ⊕ &lt;/span&gt; B[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; &lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnLeft"&gt; &lt;a href="" name="pgfId=380783"&gt;  &lt;/a&gt; P[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] = A[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] + B[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ]&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnNumber"&gt; &lt;a href="" name="pgfId=380785"&gt;  &lt;/a&gt; (2.43)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnLeft"&gt; &lt;a href="" name="pgfId=380787"&gt;  &lt;/a&gt; C[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] = G[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] + P[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] · C[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; –1]&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnLeft"&gt; &lt;a href="" name="pgfId=380789"&gt;  &lt;/a&gt; C[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] = G[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] + P[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] · C[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; –1]&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnNumber"&gt; &lt;a href="" name="pgfId=380791"&gt;  &lt;/a&gt; (2.44)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnLeft"&gt; &lt;a href="" name="pgfId=380793"&gt;  &lt;/a&gt; S[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] = P[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] &lt;span class="Symbol"&gt; ⊕ &lt;/span&gt; C[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; –1]&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnLeft"&gt; &lt;a href="" name="pgfId=380795"&gt;  &lt;/a&gt; S[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] = A[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] &lt;span class="Symbol"&gt; ⊕ &lt;/span&gt; B[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] &lt;span class="Symbol"&gt; ⊕ &lt;/span&gt; C[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; –1]&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnNumber"&gt; &lt;a href="" name="pgfId=380797"&gt;  &lt;/a&gt; (2.45)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="BodyAfterHead"&gt; &lt;a href="" name="pgfId=195387"&gt;  &lt;/a&gt; where C[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] is the carry-out signal from stage &lt;span class="EquationVariables"&gt; i&lt;/span&gt; , equal to the carry in of stage (&lt;span class="EquationVariables"&gt; i&lt;/span&gt;  + 1). Thus, C[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] = COUT[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] = CIN[&lt;span class="EquationVariables"&gt; i&lt;/span&gt;  + 1]. We need to be careful because C[0] might represent either the  carry in or the carry out of the LSB stage. For an adder we set the  carry in to the first stage (stage zero), C[–1] or CIN[0], to '0'. Some  people use &lt;span class="Definition"&gt; delete&lt;/span&gt;  (D) or &lt;span class="Definition"&gt; kill&lt;/span&gt;  (K) in various ways for the complements of G[i] and P[i], but  unfortunately others use C for COUT and D for CIN—so I avoid using any  of these. Do not confuse the two different methods (both of which are  used) in Eqs.&amp;nbsp;&amp;nbsp;2.42–2.45 when forming the sum, since the propagate  signal, P[&lt;span class="EquationVariables"&gt; i&lt;/span&gt; ] , is different for each method. &lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=194423"&gt;  &lt;/a&gt; Figure&amp;nbsp;2.22(a) shows a conventional RCA. The delay of an &lt;span class="EmphasisPrefix"&gt; n&lt;/span&gt; -bit RCA is proportional to &lt;span class="EquationVariables"&gt; n&lt;/span&gt;  and is limited by the propagation of the carry signal through all of  the stages. We can reduce delay by using pairs of “go-faster” bubbles to  change AND and OR gates to fast two-input NAND gates as shown in  Figure&amp;nbsp;2.22(a). Alternatively, we can write the equations for the carry  signal in two different ways&lt;/div&gt;&lt;div class="Body"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;h1 class="Heading1"&gt;I/O Cells:&lt;/h1&gt;&lt;h1 class="Heading1"&gt;&amp;nbsp;Figure&amp;nbsp;2.33 shows a three-state bidirectional output buffer (Tri-State&lt;sup class="Superscript"&gt; ®&lt;/sup&gt;  is a registered trademark of National Semiconductor). When the output  enable (OE) signal is high, the circuit functions as a noninverting  buffer driving the value of DATAin onto the I/O pad. When OE is low, the  output transistors or &lt;span class="Definition"&gt; drivers&lt;/span&gt; , M1 and M2, are disconnected. This allows multiple drivers to be  connected on a bus. It is up to the designer to make sure that a bus  never has two drivers—a problem known as &lt;span class="Definition"&gt; contention&lt;/span&gt; .  &lt;/h1&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=162176"&gt;  &lt;/a&gt; In order to prevent the problem opposite to contention—a bus floating to  an intermediate voltage when there are no bus drivers—we can use a &lt;span class="Definition"&gt; bus keeper&lt;/span&gt;  or &lt;span class="Definition"&gt; bus-hold&lt;/span&gt;  cell (TI calls this Bus-Friendly logic). A bus keeper normally acts  like two weak (low drive-strength) cross-coupled inverters that act as a  latch to retain the last logic state on the bus, but the latch is weak  enough that it may be driven easily to the opposite state. Even though  bus keepers act like latches, and will simulate like latches, they  should not be used as latches, since their drive strength is weak.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=110735"&gt;  &lt;/a&gt; Transistors M1 and M2 in Figure&amp;nbsp;2.33 have to drive large off-chip loads. If we wish to change the voltage on a &lt;span class="EquationVariables"&gt; C&lt;/span&gt;  = 200 pF load by 5 V in 5 ns (a &lt;span class="Definition"&gt; slew rate&lt;/span&gt;  of 1 Vns&lt;sup class="Superscript"&gt; –1&lt;/sup&gt; ) we will require a current in the output transistors of &lt;span class="EquationVariables"&gt; I&lt;/span&gt; &lt;sub class="SubscriptVariable"&gt; DS&lt;/sub&gt;  = &lt;span class="EquationVariables"&gt; C&lt;/span&gt;  (d&lt;span class="EquationVariables"&gt; V&lt;/span&gt; /d&lt;span class="EquationVariables"&gt; t&lt;/span&gt; ) = (200 &lt;span class="Symbol"&gt; ¥&lt;/span&gt;  10&lt;sup class="Superscript"&gt; –12&lt;/sup&gt; ) (5/5 &lt;span class="Symbol"&gt; ¥&lt;/span&gt;  10&lt;sup class="Superscript"&gt; –9&lt;/sup&gt; ) = 0.2 A or 200 mA.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=110742"&gt;  &lt;/a&gt; Such large currents flowing in the output transistors must also flow in  the power supply bus and can cause problems. There is always some  inductance in series with the power supply, between the point at which  the supply enters the ASIC package and reaches the power bus on the  chip. The inductance is due to the bond wire, lead frame, and package  pin. If we have a power-supply inductance of 2 nH and a current changing  from zero to 1 A (32 I/O cells on a bus switching at 30 mA each) in 5  ns, we will have a voltage spike on the power supply (called &lt;span class="Definition"&gt; power-supply bounce&lt;/span&gt; ) of &lt;span class="EquationVariables"&gt; L&lt;/span&gt; (d&lt;span class="EquationVariables"&gt; I&lt;/span&gt; /d&lt;span class="EquationVariables"&gt; t&lt;/span&gt; ) = (2 &lt;span class="Symbol"&gt; ¥&lt;/span&gt;  10&lt;sup class="Superscript"&gt; –9&lt;/sup&gt; )(1/(5 &lt;span class="Symbol"&gt; ¥&lt;/span&gt;  10&lt;sup class="Superscript"&gt; –9&lt;/sup&gt; )) = 0.4 V.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=110748"&gt;  &lt;/a&gt; We do several things to alleviate this problem: We can limit the number of &lt;span class="Definition"&gt; simultaneously switching outputs&lt;/span&gt;  (SSOs), we can limit the number of I/O drivers that can be attached to  any one VDD and GND pad, and we can design the output buffer to limit  the slew rate of the output (we call these slew-rate limited I/O pads). &lt;span class="Definition"&gt; Quiet-I/O&lt;/span&gt;  cells also use two separate power supplies and two sets of I/O drivers:  an AC supply (clean or quiet supply) with small AC drivers for the I/O  circuits that start and stop the output slewing at the beginning and end  of a output transition, and a DC supply (noisy or dirty supply) for the  transistors that handle large currents as they slew the output. &lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=110759"&gt;  &lt;/a&gt; The three-state buffer allows us to employ the same pad for input and output—&lt;span class="Definition"&gt; bidirectional I/O&lt;/span&gt; . When we want to use the pad as an input, we set OE low and take the  data from DATAin. Of course, it is not necessary to have all these  features on every pad: We can build output-only or input-only pads. &lt;/div&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFigTitleSide"&gt; &lt;a href="" name="pgfId=110764"&gt;  &lt;/a&gt; FIGURE&amp;nbsp;2.32&amp;nbsp;A three-state bidirectional output buffer. When the output  enable, OE, is '1' the output section is enabled and drives the I/O pad.  When OE is '0' the output buffer is placed in a high-impedance state.&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFigure"&gt; &lt;a href="" name="pgfId=110769"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;div&gt; &lt;img src="http://iroi.seu.edu.cn/books/asics/Book2/CH02/CH02-44.gif" /&gt; &lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=110770"&gt;  &lt;/a&gt; We can also use many of these output cell features for input cells that  have to drive large on-chip loads (a clock pad cell, for example). Some  gate arrays simply turn an output buffer around to drive a grid of  interconnect that supplies a clock signal internally. With a typical  interconnect capacitance of 0.2pFcm&lt;sup class="Superscript"&gt; –1&lt;/sup&gt; , a grid of 100 cm (consisting of 10 by 10 lines running all the way  across a 1 cm chip) presents a load of 20 pF to the clock buffer.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=110775"&gt;  &lt;/a&gt; Some libraries include I/O cells that have passive pull-ups or  pull-downs (resistors) instead of the transistors, M1 and M2 (the  resistors are normally still constructed from transistors with long gate  lengths). We can also omit one of the driver transistors, M1 or M2, to  form &lt;span class="Definition"&gt; open-drain&lt;/span&gt;  outputs that require an external pull-up or pull-down. We can design  the output driver to produce TTL output levels rather than CMOS logic  levels. We may also add input hysteresis (using a Schmitt trigger) to  the input buffer, I1 in Figure&amp;nbsp;2.33, to accept input data signals that  contain glitches (from bouncing switch contacts, for example) or that  are slow rising. The input buffer can also include a &lt;span class="Definition"&gt; level shifter&lt;/span&gt;  to accept TTL input levels and shift the input signal to CMOS levels.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=110785"&gt;  &lt;/a&gt; The gate oxide in CMOS transistors is extremely thin (100 Å or less).  This leaves the gate oxide of the I/O cell input transistors susceptible  to breakdown from static electricity (&lt;span class="Definition"&gt; electrostatic discharge&lt;/span&gt; , or &lt;span class="Definition"&gt; ESD&lt;/span&gt; ). ESD arises when we or machines handle the package leads (like the  shock I sometimes get when I touch a doorknob after walking across the  carpet at work). Sometimes this problem is called &lt;span class="Definition"&gt; electrical overstress&lt;/span&gt;  (EOS) since most ESD-related failures are caused not by gate-oxide  breakdown, but by the thermal stress (melting) that occurs when the &lt;span class="EmphasisPrefix"&gt; n&lt;/span&gt; -channel transistor in an output driver overheats (melts) due to the  large current that can flow in the drain diffusion connected to a pad  during an ESD event.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=110796"&gt;  &lt;/a&gt; To protect the I/O cells from ESD, the input pads are normally tied to  device structures that clamp the input voltage to below the gate  breakdown voltage (which can be as low as 10 V with a 100 Å gate oxide).  Some I/O cells use transistors with a special &lt;span class="Definition"&gt; ESD implant&lt;/span&gt;  that increases breakdown voltage and provides protection. I/O driver  transistors can also use elongated drain structures (ladder structures)  and large drain-to-gate spacing to help limit current, but in a salicide  process that lowers the drain resistance this is difficult. One  solution is to mask the I/O cells during the salicide step. Another  solution is to use &lt;span class="EmphasisPrefix"&gt; pnpn&lt;/span&gt;  and &lt;span class="EmphasisPrefix"&gt; npnp&lt;/span&gt;  diffusion structures called silicon-controlled rectifiers (SCRs) to  clamp voltages and divert current to protect the I/O circuits from ESD.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=110802"&gt;  &lt;/a&gt; There are several ways to model the capability of an I/O cell to withstand EOS. The &lt;span class="Definition"&gt; human-body model&lt;/span&gt;  (&lt;span class="Definition"&gt; HBM&lt;/span&gt; ) represents ESD by a 100 pF capacitor discharging through a 1.5 k&lt;span class="Symbol"&gt; W&lt;/span&gt;  resistor (this is an International Electrotechnical Committee, IEC,  specification). Typical voltages generated by the human body are in the  range of 2–4 kV, and we often see an I/O pad cell rated by the voltage  it can withstand using the HBM. The &lt;span class="Definition"&gt; machine model&lt;/span&gt;  (&lt;span class="Definition"&gt; MM&lt;/span&gt; ) represents an ESD event generated by automated machine handlers.  Typical MM parameters use a 200 pF capacitor (typically charged to 200  V) discharged through a 25 &lt;span class="Symbol"&gt; W&lt;/span&gt;  resistor,&lt;span class="Symbol"&gt;  &lt;/span&gt; corresponding to a peak initial current of nearly 10 A. The &lt;span class="Definition"&gt; charge-device model&lt;/span&gt;  (&lt;span class="Definition"&gt; CDM&lt;/span&gt; , also called device charge–discharge) represents the problem when an IC  package is charged, in a shipping tube for example, and then grounded.  If the maximum charge on a package is 3 nC (a typical measured figure)  and the package capacitance to ground is 1.5 pF, we can simulate this  event by charging a 1.5 pF capacitor to 2 kV and discharging it through a  1 &lt;span class="Symbol"&gt; W&lt;/span&gt;  resistor.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=110816"&gt;  &lt;/a&gt; If the diffusion structures in the I/O cells are not designed with care,  it is possible to construct an SCR structure unwittingly, and instead  of protecting the transistors the SCR can enter a mode where it is  latched on and conducting large enough currents to destroy the chip.  This failure mode is called &lt;span class="Definition"&gt; latch-up&lt;/span&gt; . Latch-up can occur if the &lt;span class="EmphasisPrefix"&gt; pn&lt;/span&gt; -diodes on a chip become forward-biased and inject minority carriers (electrons in &lt;span class="EmphasisPrefix"&gt; p&lt;/span&gt; -type material, holes in &lt;span class="EmphasisPrefix"&gt; n&lt;/span&gt; -type material) into the substrate. The source–substrate and  drain–substrate diodes can become forward-biased due to power-supply  bounce or output &lt;span class="Definition"&gt; undershoot&lt;/span&gt;  (the cell outputs fall below &lt;span class="EquationVariables"&gt; V&lt;/span&gt; &lt;sub class="SubscriptVariable"&gt; SS&lt;/sub&gt; ) or &lt;span class="Definition"&gt; overshoot&lt;/span&gt;  (outputs rise to greater than &lt;span class="EquationVariables"&gt; V&lt;/span&gt; &lt;sub class="SubscriptVariable"&gt; DD&lt;/sub&gt; ) for example. These injected minority carriers can travel fairly large  distances and interact with nearby transistors causing latch-up. I/O  cells normally surround the I/O transistors with &lt;span class="Definition"&gt; guard rings&lt;/span&gt;  (a continuous ring of &lt;span class="EmphasisPrefix"&gt; n&lt;/span&gt; -diffusion in an &lt;span class="EmphasisPrefix"&gt; n&lt;/span&gt; -well connected to VDD, and a ring of &lt;span class="EmphasisPrefix"&gt; p&lt;/span&gt; -diffusion in a &lt;span class="EmphasisPrefix"&gt; p&lt;/span&gt; -well connected to VSS) to collect these minority carriers. This is a  problem that can also occur in the logic core and this is one reason  that we normally include substrate and well connections to the power  supplies in every cell.&lt;/div&gt;&lt;div class="Body"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;h1 class="Heading1"&gt;Cell Compilers :&lt;/h1&gt;&lt;h1 class="Heading1"&gt;The process of hand crafting circuits and  layout for a full-custom IC is a tedious, time-consuming, and  error-prone task. There are two types of automated layout assembly  tools, often known as a &lt;span class="Definition"&gt; silicon compilers&lt;/span&gt; . The first type produces a specific kind of circuit, a &lt;span class="Definition"&gt; RAM compiler&lt;/span&gt;  or &lt;span class="Definition"&gt; multiplier compiler&lt;/span&gt; , for example. The second type of compiler is more flexible, usually  providing a programming language that assembles or tiles layout from an  input command file, but this is full-custom IC design. &lt;/h1&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=89822"&gt;  &lt;/a&gt; We can build a register file from latches or flip-flops, but, at 4.5–6.5  gates (18–26 transistors) per bit, this is an expensive way to build  memory. Dynamic RAM (DRAM) can use a cell with only one transistor,  storing charge on a capacitor that has to be periodically refreshed as  the charge leaks away. ASIC RAM is invariably static (SRAM), so we do  not need to refresh the bits. When we refer to RAM in an ASIC  environment we almost always mean SRAM. Most ASIC RAMs use a  six-transistor cell (four transistors to form two cross-coupled  inverters that form the storage loop, and two more transistors to allow  us to read from and write to the cell). RAM compilers are available that  produce &lt;span class="Definition"&gt; single-port RAM&lt;/span&gt;  (a single shared bus for read and write) as well as &lt;span class="Definition"&gt; dual-port RAMs&lt;/span&gt; , and &lt;span class="Definition"&gt; multiport RAMs&lt;/span&gt; . In a multi-port RAM the compiler may or may not handle the problem of &lt;span class="Definition"&gt; address contention&lt;/span&gt;  (attempts to read and write to the same RAM address simultaneously). RAM can be &lt;span class="Definition"&gt; asynchronous&lt;/span&gt;  (the read and write cycles are triggered by control and/or address transitions asynchronous to a clock) or &lt;span class="Definition"&gt; synchronous&lt;/span&gt;  (using the system clock). &lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=83882"&gt;  &lt;/a&gt; In addition to producing layout we also need a &lt;span class="Definition"&gt; model compiler&lt;/span&gt;  so that we can verify the circuit at the behavioral level, and we need a netlist from a &lt;span class="Definition"&gt; netlist compiler&lt;/span&gt;  so that we can simulate the circuit and verify that it works correctly  at the structural level. Silicon compilers are thus complex pieces of  software. We assume that a silicon compiler will produce working silicon  even if every configuration has not been tested. This is still ASIC  design, but now we are relying on the fact that the tool works correctly  and therefore the compiled blocks are &lt;span class="Definition"&gt; correct by construction&lt;/span&gt; .&lt;/div&gt;&lt;div class="Body"&gt; &lt;/div&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>Types of ASICs</title><link>http://ieeebooks.blogspot.com/2011/09/types-of-asics.html</link><category>Types of ASICs</category><pubDate>Sun, 4 Sep 2011 12:54:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-255559899998302846</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h1 class="Heading1"&gt;Types of ASICs&lt;/h1&gt;&lt;div class="BodyAfterHead"&gt; &lt;a href="" name="pgfId=34551"&gt;  &lt;/a&gt; ICs are made on a thin (a few hundred microns thick), circular silicon &lt;span class="Definition"&gt; wafer&lt;/span&gt; , with each wafer holding hundreds of die (sometimes people use dies or  dice for the plural of die). The transistors and wiring are made from  many layers (usually between 10 and 15 distinct layers) built on top of  one another. Each successive &lt;span class="Definition"&gt; mask layer&lt;/span&gt;  has a pattern that is defined using a &lt;span class="Definition"&gt; mask &lt;/span&gt; similar to a glass photographic slide. The first half-dozen or so layers  define the transistors. The last half-dozen or so layers define the  metal wires between the transistors (the &lt;span class="Definition"&gt; interconnect&lt;/span&gt; ).&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=34556"&gt;  &lt;/a&gt; A &lt;span class="Definition"&gt; full-custom IC&lt;/span&gt;  includes some (possibly all) logic cells that are customized and all  mask layers that are customized. A microprocessor is an example of a  full-custom IC—designers spend many hours squeezing the most out of  every last square micron of microprocessor chip space by hand.  Customizing all of the IC features in this way allows designers to  include analog circuits, optimized memory cells, or mechanical  structures on an IC, for example. Full-custom ICs are the most expensive  to manufacture and to design. The &lt;span class="Definition"&gt; manufacturing lead time&lt;/span&gt;  (the time it takes just to make an IC—not including design time) is  typically eight weeks for a full-custom IC. These specialized  full-custom ICs are often intended for a specific application, so we  might call some of them full-custom ASICs....&lt;/div&gt;&lt;div class="Body"&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="Body"&gt; &lt;a href="" name="pgfId=41513"&gt;  &lt;/a&gt; We shall discuss full-custom ASICs briefly next, but the members of the IC family that we are more interested in are &lt;span class="Definition"&gt; semicustom ASICs&lt;/span&gt; , for which all of the logic cells are predesigned and some (possibly  all) of the mask layers are customized. Using predesigned cells from a &lt;span class="Definition"&gt; cell library&lt;/span&gt;  makes our lives as designers much, much easier. There are two types of  semicustom ASICs that we shall cover: standard-cell–based ASICs and  gate-array–based ASICs. Following this we shall describe the &lt;span class="Definition"&gt; programmable ASICs&lt;/span&gt; , for which all of the logic cells are predesigned and none of the mask  layers are customized. There are two types of programmable ASICs: the  programmable logic device and, the newest member of the ASIC family, the  field-programmable gate array.&lt;/div&gt;&lt;div&gt; &lt;h2 class="Heading2"&gt; &lt;a href="" name="pgfId=34514"&gt;  &lt;/a&gt; 1.1.1&amp;nbsp;Full-Custom ASICs&lt;/h2&gt;&lt;div class="BodyAfterHead"&gt; &lt;a href="" name="pgfId=34518"&gt;  &lt;/a&gt; In a &lt;span class="Definition"&gt; full-custom ASIC&lt;/span&gt;  an engineer designs some or all of the logic cells, circuits, or layout  specifically for one ASIC. This means the designer abandons the  approach of using pretested and precharacterized cells for all or part  of that design. It makes sense to take this approach only if there are  no suitable existing cell libraries available that can be used for the  entire design. This might be because existing cell libraries are not  fast enough, or the logic cells are not small enough or consume too much  power. You may need to use full-custom design if the ASIC technology is  new or so specialized that there are no existing cell libraries or  because the ASIC is so specialized that some circuits must be custom  designed. Fewer and fewer full-custom ICs are being designed because of  the problems with these special parts of the ASIC. There is one growing  member of this family, though, the mixed analog/digital ASIC, which we  shall discuss next. &lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=56450"&gt;  &lt;/a&gt; Bipolar technology has historically been used for precision analog  functions. There are some fundamental reasons for this. In all  integrated circuits the matching of component characteristics between  chips is very poor, while the matching of characteristics between  components on the same chip is excellent. Suppose we have transistors  T1, T2, and T3 on an analog/digital ASIC. The three transistors are all  the same size and are constructed in an identical fashion. Transistors  T1 and T2 are located adjacent to each other and have the same  orientation. Transistor T3 is the same size as T1 and T2 but is located  on the other side of the chip from T1 and T2 and has a different  orientation. ICs are made in batches called wafer lots. A &lt;span class="Definition"&gt; wafer lot &lt;/span&gt; is a group of silicon wafers that are all processed together. Usually  there are between 5 and 30 wafers in a lot. Each wafer can contain tens  or hundreds of chips depending on the size of the IC and the wafer. &lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=56968"&gt;  &lt;/a&gt; If we were to make measurements of the characteristics of transistors T1, T2, and T3 we would find the following:&lt;/div&gt;&lt;ul&gt;&lt;li class="BulletFirst"&gt; &lt;a href="" name="pgfId=34528"&gt;  &lt;/a&gt; Transistors T1 will have virtually identical characteristics to T2 on the same IC. We say that the transistors &lt;span class="Definition"&gt; match&lt;/span&gt;  well or the &lt;span class="Definition"&gt; tracking&lt;/span&gt;  between devices is excellent.&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=34531"&gt;  &lt;/a&gt; Transistor T3 will match transistors T1 and T2 on the same IC very well, but not as closely as T1 matches T2 on the same IC.&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=34532"&gt;  &lt;/a&gt; Transistor T1, T2, and T3 will match fairly well with transistors T1,  T2, and T3 on a different IC on the same wafer. The matching will depend  on how far apart the two ICs are on the wafer.&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=34533"&gt;  &lt;/a&gt; Transistors on ICs from different wafers in the same wafer lot will not match very well.&lt;/li&gt;
&lt;li class="BulletLast"&gt; &lt;a href="" name="pgfId=34534"&gt;  &lt;/a&gt; Transistors on ICs from different wafer lots will match very poorly.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>ASICs Design Flow</title><link>http://ieeebooks.blogspot.com/2011/09/asics-design-flow.html</link><category>ASICs Design Flow</category><pubDate>Sun, 4 Sep 2011 12:53:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-3118112417289040558</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h1 class="Heading1"&gt;Design Flow&lt;/h1&gt;&lt;div class="BodyAfterHead"&gt; &lt;a href="" name="pgfId=25121"&gt;  &lt;/a&gt; Figure&amp;nbsp;1.10 shows the sequence of steps to design an ASIC; we call this a &lt;span class="Definition"&gt; design flow&lt;/span&gt; . The steps are listed below (numbered to correspond to the labels in  Figure&amp;nbsp;1.10) with a brief description of the function of each step.&lt;/div&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFigure"&gt; &lt;a href="" name="pgfId=25128"&gt;  &lt;/a&gt; &lt;img align="BOTTOM" src="http://iroi.seu.edu.cn/books/asics/Book/CH01/CH01-10.gif" /&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFigureTitle"&gt; &lt;a href="" name="pgfId=25131"&gt;  &lt;/a&gt; FIGURE&amp;nbsp;1.10&amp;nbsp;ASIC design flow...&lt;/div&gt;&lt;div class="TableFigureTitle"&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;ol&gt;&lt;li class="NumberFirst"&gt;&lt;span class="Emphasis"&gt;Design entry.&lt;/span&gt;  Enter the design into an ASIC design system, either using a &lt;span class="Definition"&gt; hardware description language&lt;/span&gt;  (&lt;span class="Definition"&gt; HDL&lt;/span&gt; ) or &lt;span class="Emphasis"&gt; schematic entry&lt;/span&gt; .&lt;/li&gt;
&lt;li class="NumberList"&gt; &lt;a href="" name="pgfId=25567"&gt;  &lt;/a&gt; &lt;span class="Emphasis"&gt; Logic synthesis.&lt;/span&gt;  Use an HDL (VHDL or Verilog) and a logic synthesis tool to produce a &lt;span class="Definition"&gt; netlist&lt;/span&gt; —a description of the logic cells and their connections.&lt;/li&gt;
&lt;li class="NumberList"&gt; &lt;a href="" name="pgfId=25568"&gt;  &lt;/a&gt; &lt;span class="Emphasis"&gt; System partitioning.&lt;/span&gt;  Divide a large system into ASIC-sized pieces.&lt;/li&gt;
&lt;li class="NumberList"&gt; &lt;a href="" name="pgfId=25571"&gt;  &lt;/a&gt; &lt;span class="Emphasis"&gt; Prelayout simulation.&lt;/span&gt;  Check to see if the design functions correctly.&lt;/li&gt;
&lt;li class="NumberList"&gt; &lt;a href="" name="pgfId=25572"&gt;  &lt;/a&gt; &lt;span class="Emphasis"&gt; Floorplanning.&lt;/span&gt;  Arrange the blocks of the netlist on the chip.&lt;/li&gt;
&lt;li class="NumberList"&gt; &lt;a href="" name="pgfId=25573"&gt;  &lt;/a&gt; &lt;span class="Emphasis"&gt; Placement.&lt;/span&gt;  Decide the locations of cells in a block.&lt;/li&gt;
&lt;li class="NumberList"&gt; &lt;a href="" name="pgfId=25574"&gt;  &lt;/a&gt; &lt;span class="Emphasis"&gt; Routing.&lt;/span&gt;  Make the connections between cells and blocks.&lt;/li&gt;
&lt;li class="NumberList"&gt; &lt;a href="" name="pgfId=25575"&gt;  &lt;/a&gt; &lt;span class="Emphasis"&gt; Extraction.&lt;/span&gt;  Determine the resistance and capacitance of the interconnect.&lt;/li&gt;
&lt;li class="NumberList"&gt; &lt;a href="" name="pgfId=25576"&gt;  &lt;/a&gt; &lt;span class="Emphasis"&gt; Postlayout simulation.&lt;/span&gt;  Check to see the design still works with the added loads of the interconnect.&lt;/li&gt;
&lt;/ol&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=26920"&gt;  &lt;/a&gt; Steps 1–4 are part of &lt;span class="Definition"&gt; logical design&lt;/span&gt; , and steps 5–9 are part of &lt;span class="Definition"&gt; physical design&lt;/span&gt; . There is some overlap. For example, system partitioning might be  considered as either logical or physical design. To put it another way,  when we are performing system partitioning we have to consider both  logical and physical factors. Chapters 9–14 of this book is largely  about logical design and Chapters 15–17 largely about physical design.&lt;/div&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>Case Study of ASICs</title><link>http://ieeebooks.blogspot.com/2011/09/case-study-of-asics.html</link><category>Case Study</category><pubDate>Sun, 4 Sep 2011 12:50:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-1982276976332688562</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h1 class="Heading1"&gt;Case Study&lt;/h1&gt;&lt;div class="BodyAfterHead"&gt; &lt;a href="" name="pgfId=43107"&gt;  &lt;/a&gt; Sun Microsystems released the SPARCstation&amp;nbsp;1 in April 1989. It is now an  old design but a very important example because it was one of the first  workstations to make extensive use of ASICs to achieve the following: &lt;/div&gt;&lt;ul&gt;&lt;li class="BulletFirst"&gt; &lt;a href="" name="pgfId=43108"&gt;  &lt;/a&gt; Better performance at lower cost&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=1603"&gt;  &lt;/a&gt; Compact size, reduced power, and quiet operation&lt;/li&gt;
&lt;li class="BulletLast"&gt; &lt;a href="" name="pgfId=42912"&gt;  &lt;/a&gt; Reduced number of parts, easier assembly, and improved reliability&lt;/li&gt;
&lt;/ul&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=93718"&gt;  &lt;/a&gt; The SPARCstation&amp;nbsp;1 contains about 50 ICs on the system  motherboard—excluding the DRAM used for the system memory (standard  parts). The SPARCstation&amp;nbsp;1 designers partitioned the system into the  nine ASlCs shown in Table&amp;nbsp;1.1 and wrote specifications for each  ASIC—this took about three months&lt;a class="footnote" href="http://iroi.seu.edu.cn/books/asics/Book/CH01/CH01.3.htm#pgfId=94066"&gt; 1&lt;/a&gt; . LSI Logic and Fujitsu designed the SPARC &lt;span class="Definition"&gt; integer unit&lt;/span&gt;  (IU) and &lt;span class="Definition"&gt; floating-point unit&lt;/span&gt;  (&lt;span class="Definition"&gt; FPU&lt;/span&gt; ) to these specifications. The clock ASIC is a fairly straightforward  design and, of the six remaining ASICs, the video controller/data  buffer, the RAM controller, and the &lt;span class="Definition"&gt; direct memory access&lt;/span&gt;  (&lt;span class="Definition"&gt; DMA&lt;/span&gt; ) controller are defined by the 32-bit &lt;span class="Definition"&gt; system bus&lt;/span&gt;  (&lt;span class="Definition"&gt; SBus&lt;/span&gt; ) and the other ASICs that they connect to. The rest of the system is partitioned into three more ASICs: the &lt;span class="Definition"&gt; cache controller&lt;/span&gt; , &lt;span class="Definition"&gt; memory-management unit&lt;/span&gt;  (MMU), and the data buffer. These three ASICs, with the IU and FPU,  have the most critical timing paths and determine the system  partitioning. The design of ASICs 3–8 in Table&amp;nbsp;1.1 took five Sun  engineers six months after the specifications were complete. During the  design process, the Sun engineers simulated the entire  SPARCstation&amp;nbsp;1—including execution of the Sun operating system (SunOS)............&lt;/div&gt;&lt;div class="Body"&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td colspan="4" rowspan="1"&gt; &lt;div class="TableTitle"&gt; &lt;a href="" name="pgfId=62029"&gt;  &lt;/a&gt; TABLE&amp;nbsp;1.1&amp;nbsp;The ASICs in the Sun Microsystems SPARCstation&amp;nbsp;1.&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="2" rowspan="1"&gt; &lt;div class="TableFirst"&gt; &lt;a href="" name="pgfId=62037"&gt;  &lt;/a&gt; &lt;span class="TableHeads"&gt; SPARCstation&amp;nbsp;1 ASIC&lt;/span&gt; &lt;/div&gt;&lt;/td&gt; &lt;td colspan="2" rowspan="1"&gt; &lt;div class="TableFirst"&gt; &lt;a href="" name="pgfId=62041"&gt;  &lt;/a&gt; &lt;span class="TableHeads"&gt; Gates (k-gates)&lt;/span&gt; &lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62045"&gt;  &lt;/a&gt; 1&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62047"&gt;  &lt;/a&gt; SPARC integer unit (IU)&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="Table"&gt; &lt;a href="" name="pgfId=62049"&gt;  &lt;/a&gt; 20&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62051"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62053"&gt;  &lt;/a&gt; 2&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62055"&gt;  &lt;/a&gt; SPARC floating-point unit (FPU)&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="Table"&gt; &lt;a href="" name="pgfId=62057"&gt;  &lt;/a&gt; 50&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62059"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62061"&gt;  &lt;/a&gt; 3&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62063"&gt;  &lt;/a&gt; Cache controller&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="Table"&gt; &lt;a href="" name="pgfId=62065"&gt;  &lt;/a&gt; 9&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62067"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62069"&gt;  &lt;/a&gt; 4&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62071"&gt;  &lt;/a&gt; Memory-management unit (MMU)&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="Table"&gt; &lt;a href="" name="pgfId=62073"&gt;  &lt;/a&gt; 5&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62075"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62077"&gt;  &lt;/a&gt; 5&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62079"&gt;  &lt;/a&gt; Data buffer&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="Table"&gt; &lt;a href="" name="pgfId=62081"&gt;  &lt;/a&gt; 3&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62083"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62085"&gt;  &lt;/a&gt; 6&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62087"&gt;  &lt;/a&gt; Direct memory access (DMA) controller&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="Table"&gt; &lt;a href="" name="pgfId=62089"&gt;  &lt;/a&gt; 9&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62091"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62093"&gt;  &lt;/a&gt; 7&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62095"&gt;  &lt;/a&gt; Video controller/data buffer&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="Table"&gt; &lt;a href="" name="pgfId=62097"&gt;  &lt;/a&gt; 4&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62099"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62101"&gt;  &lt;/a&gt; 8&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62103"&gt;  &lt;/a&gt; RAM controller&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="Table"&gt; &lt;a href="" name="pgfId=62105"&gt;  &lt;/a&gt; 1&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62107"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62109"&gt;  &lt;/a&gt; 9&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62111"&gt;  &lt;/a&gt; Clock generator&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="Table"&gt; &lt;a href="" name="pgfId=62113"&gt;  &lt;/a&gt; 1&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=62115"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=93522"&gt;  &lt;/a&gt; Table&amp;nbsp;1.2 shows the software tools used to design the SPARCstation&amp;nbsp;1,  many of which are now obsolete. The important point to notice, though,  is that there is a lot more to microelectronic system design than  designing the ASICs—less than one-third of the tools listed in Table&amp;nbsp;1.2  were ASIC design tools. &lt;/div&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td colspan="3" rowspan="1"&gt; &lt;div class="TableTitle"&gt; &lt;a href="" name="pgfId=93379"&gt;  &lt;/a&gt; TABLE&amp;nbsp;1.2&amp;nbsp;The CAD tools used in the design of the Sun Microsystems SPARCstation&amp;nbsp;1.&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="Table"&gt; &lt;a href="" name="pgfId=93385"&gt;  &lt;/a&gt; &lt;span class="TableHeads"&gt; Design level&lt;/span&gt; &lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="Table"&gt; &lt;a href="" name="pgfId=93387"&gt;  &lt;/a&gt; &lt;span class="TableHeads"&gt; Function&lt;/span&gt; &lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="Table"&gt; &lt;a href="" name="pgfId=93392"&gt;  &lt;/a&gt; &lt;span class="TableHeads"&gt; Tool&lt;a class="footnote" href="http://iroi.seu.edu.cn/books/asics/Book/CH01/CH01.3.htm#pgfId=93391"&gt; 2&lt;/a&gt; &lt;/span&gt; &lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93394"&gt;  &lt;/a&gt; ASIC design&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93396"&gt;  &lt;/a&gt; ASIC physical design&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93398"&gt;  &lt;/a&gt; LSI Logic&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93400"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93402"&gt;  &lt;/a&gt; ASIC logic synthesis&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93404"&gt;  &lt;/a&gt; Internal tools and UC Berkeley tools&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93406"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93408"&gt;  &lt;/a&gt; ASIC simulation&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93410"&gt;  &lt;/a&gt; LSI Logic&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93412"&gt;  &lt;/a&gt; Board design&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93414"&gt;  &lt;/a&gt; Schematic capture&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93416"&gt;  &lt;/a&gt; Valid Logic&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93418"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93420"&gt;  &lt;/a&gt; PCB layout&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93422"&gt;  &lt;/a&gt; Valid Logic Allegro&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93424"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93426"&gt;  &lt;/a&gt; Timing verification&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93428"&gt;  &lt;/a&gt; Quad Design Motive and internal tools&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93430"&gt;  &lt;/a&gt; Mechanical design&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93432"&gt;  &lt;/a&gt; Case and enclosure&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93434"&gt;  &lt;/a&gt; Autocad&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93436"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93438"&gt;  &lt;/a&gt; Thermal analysis&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93440"&gt;  &lt;/a&gt; Pacific Numerix&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93442"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93444"&gt;  &lt;/a&gt; Structural analysis&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93446"&gt;  &lt;/a&gt; Cosmos&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93448"&gt;  &lt;/a&gt; Management&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93450"&gt;  &lt;/a&gt; Scheduling&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93452"&gt;  &lt;/a&gt; Suntrac&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93454"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93456"&gt;  &lt;/a&gt; Documentation&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableLeft"&gt; &lt;a href="" name="pgfId=93458"&gt;  &lt;/a&gt; Interleaf and FrameMaker&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=93459"&gt;  &lt;/a&gt; The SPARCstation&amp;nbsp;1 cost about $9000 in 1989 or, since it has an  execution rate of approximately 12 million instructions per second  (MIPS), $750/MIPS. Using ASIC technology reduces the motherboard to  about the size of a piece of paper—8.5 inches by 11 inches—with a power  consumption of about 12 W. The SPARCstation&amp;nbsp;1 “pizza box” is 16 inches  across and 3 inches high—smaller than a typical IBM-compatible personal  computer in 1989. This speed, power, and size performance is (there are  still SPARCstation&amp;nbsp;1s in use) made possible by using ASICs. We shall  return to the SPARCstation&amp;nbsp;1, to look more closely at the partitioning  step, in Section &amp;nbsp;15.3, “System Partitioning.”&lt;/div&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>Economics of ASICs</title><link>http://ieeebooks.blogspot.com/2011/09/economics-of-asics.html</link><category>Economics of ASICs</category><pubDate>Sun, 4 Sep 2011 12:49:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-708159971933973474</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h1 class="Heading1"&gt;Economics of ASICs&lt;/h1&gt;&lt;div class="BodyAfterHead"&gt; &lt;a href="" name="pgfId=44063"&gt;  &lt;/a&gt; In this section we shall discuss the economics of using ASICs in a  product and compare the most popular types of ASICs: an FPGA, an MGA,  and a CBIC. To make an economic comparison between these alternatives,  we consider the ASIC itself as a product and examine the components of  product cost: fixed costs and variable costs. Making cost comparisons is  dangerous—costs change rapidly and the semiconductor industry is  notorious for keeping its costs, prices, and pricing strategy closely  guarded secrets. The figures in the following sections are approximate  and used to illustrate the different components of cost.&lt;/div&gt;&lt;div&gt; &lt;h2 class="Heading2"&gt; &lt;a href="" name="pgfId=1999"&gt;  &lt;/a&gt; 1.4.1&amp;nbsp;Comparison Between ASIC Technologies&lt;/h2&gt;&lt;div class="BodyAfterHead"&gt; &lt;a href="" name="pgfId=2003"&gt;  &lt;/a&gt; The most obvious economic factor in making a choice between the different ASIC types is the &lt;span class="Definition"&gt; part cost&lt;/span&gt; . Part costs vary enormously—you can pay anywhere from a few dollars to  several hundreds of dollars for an ASIC. In general, however, FPGAs are  more expensive per gate than MGAs, which are, in turn, more expensive  than CBICs. For example, a 0.5 &lt;span class="Symbol"&gt; m&lt;/span&gt; m, 20 k-gate array might cost 0.01–0.02&amp;nbsp;cents/gate (for more than 10,000  parts) or $2–$4 per part, but an equivalent FPGA might be $20. The  price per gate for an FPGA to implement the same function is typically  2–5 times the cost of an MGA or CBIC. &lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=2013"&gt;  &lt;/a&gt; Given that an FPGA is more expensive than an MGA, which is more  expensive than a CBIC, when and why does it make sense to choose a more  expensive part? Is the increased flexibility of an FPGA worth the extra  cost per part? Given that an MGA or CBIC is specially tailored for each  customer, there are extra hidden costs associated with this step that we  should consider. To make a true comparison between the different ASIC  technologies, we shall quantify some of these costs...............&lt;/div&gt;&lt;div class="Body"&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt; &lt;h2 class="Heading2"&gt; &lt;a href="" name="pgfId=2021"&gt;  &lt;/a&gt; 1.4.2&amp;nbsp;Product Cost&lt;/h2&gt;&lt;div class="BodyAfterHead"&gt; &lt;a href="" name="pgfId=108953"&gt;  &lt;/a&gt; The total cost of any product can be separated into &lt;span class="Definition"&gt; fixed costs&lt;/span&gt;  and &lt;span class="Definition"&gt; variable costs&lt;/span&gt; :  &lt;/div&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqn"&gt; &lt;a href="" name="pgfId=108983"&gt;  &lt;/a&gt; total product cost = fixed product cost + variable product cost &lt;span class="Symbol"&gt; ¥&lt;/span&gt;  products sold&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnNumber"&gt; &lt;a href="" name="pgfId=108985"&gt;  &lt;/a&gt; (1.1)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=9662"&gt;  &lt;/a&gt; Fixed costs are independent of &lt;span class="Definition"&gt; sales volume&lt;/span&gt; —the number of products sold. However, the fixed costs amortized per  product sold (fixed costs divided by products sold) decrease as sales  volume increases. Variable costs include the cost of the parts used in  the product, assembly costs, and other manufacturing costs.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=9923"&gt;  &lt;/a&gt; Let us look more closely at the parts in a product. If we want to buy ASICs to assemble our product, the total part cost is  &lt;/div&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqn"&gt; &lt;a href="" name="pgfId=109027"&gt;  &lt;/a&gt; total part cost = fixed part cost + variable cost per part &lt;span class="Symbol"&gt; ¥&lt;/span&gt;  volume of parts.&lt;/div&gt;&lt;/td&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableEqnNumber"&gt; &lt;a href="" name="pgfId=109029"&gt;  &lt;/a&gt; (1.2)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=5995"&gt;  &lt;/a&gt; Our fixed cost when we use an FPGA is low—we just have to buy the  software and any programming equipment. The fixed part costs for an MGA  or CBIC are higher and include the costs of the masks, simulation, and  test program development. We shall discuss these extra costs in more  detail in Sections 1.4.3 and 1.4.4. Figure&amp;nbsp;1.11 shows a &lt;span class="Definition"&gt; break-even graph&lt;/span&gt;  that compares the total part cost for an FPGA, MGA, and a CBIC with the following assumptions:&lt;/div&gt;&lt;ul&gt;&lt;li class="BulletFirst"&gt; &lt;a href="" name="pgfId=58306"&gt;  &lt;/a&gt; FPGA fixed cost is $21,800, part cost is $39.&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=58308"&gt;  &lt;/a&gt; MGA fixed cost is $86,000, part cost is $10.&lt;/li&gt;
&lt;li class="BulletLast"&gt; &lt;a href="" name="pgfId=58311"&gt;  &lt;/a&gt; CBIC fixed cost is $146,000, part cost is $8.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=58307"&gt;  &lt;/a&gt; At low volumes, the MGA and the CBIC are more expensive because of their  higher fixed costs. The total part costs of two alternative types of  ASIC are equal at the &lt;span class="Definition"&gt; break-even volume&lt;/span&gt; . In Figure&amp;nbsp;1.11 the break-even volume for the FPGA and the MGA is about  2000 parts. The break-even volume between the FPGA and the CBIC is  about 4000 parts. The break-even volume between the MGA and the CBIC is  higher—at about 20,000 parts. &lt;/div&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFigure"&gt; &lt;a href="" name="pgfId=14713"&gt;  &lt;/a&gt; &lt;img align="BOTTOM" src="http://iroi.seu.edu.cn/books/asics/Book/CH01/CH01-11.gif" /&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFigureTitle"&gt; &lt;a href="" name="pgfId=14716"&gt;  &lt;/a&gt; FIGURE&amp;nbsp;1.11&amp;nbsp;A break-even analysis for an FPGA, a masked gate array (MGA)  and a custom cell-based ASIC (CBIC). The break-even volume between two  technologies is the point at which the total cost of parts are equal.  These numbers are very approximate.&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=55645"&gt;  &lt;/a&gt; We shall describe how to calculate the fixed part costs next. Following  that we shall discuss how we came up with cost per part of $39, $10, and  $8 for the FPGA, MGA, and CBIC.&lt;/div&gt;&lt;/div&gt;&lt;div&gt; &lt;h2 class="Heading2"&gt; &lt;a href="" name="pgfId=6839"&gt;  &lt;/a&gt; 1.4.3&amp;nbsp;ASIC Fixed Costs&lt;/h2&gt;&lt;div class="BodyAfterHead"&gt; &lt;a href="" name="pgfId=9730"&gt;  &lt;/a&gt; Figure&amp;nbsp;1.12 shows a spreadsheet, “Fixed Costs,” that calculates the fixed part costs associated with ASIC design. &lt;/div&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFigure"&gt; &lt;a href="" name="pgfId=14652"&gt;  &lt;/a&gt; &lt;img align="BOTTOM" src="http://iroi.seu.edu.cn/books/asics/Book/CH01/CH01-12.gif" /&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFigureTitle"&gt; &lt;a href="" name="pgfId=14654"&gt;  &lt;/a&gt; FIGURE&amp;nbsp;1.12&amp;nbsp;A spreadsheet, “Fixed Costs,” for a field-programmable gate  array (FPGA), a masked gate array (MGA), and a cell-based ASIC (CBIC).  These costs can vary wildly.&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=59170"&gt;  &lt;/a&gt; The &lt;span class="Definition"&gt; training cost&lt;/span&gt;  includes the cost of the time to learn any new &lt;span class="Definition"&gt; electronic design automation&lt;/span&gt;  (&lt;span class="Definition"&gt; EDA&lt;/span&gt; ) system. For example, a new FPGA design system might require a few days  to learn; a new gate-array or cell-based design system might require  taking a course. Figure&amp;nbsp;1.12 assumes that the cost of an engineer  (including overhead, benefits, infrastructure, and so on) is between  $100,000 and $200,000 per year or $2000 to $4000 per week (in the United  States in 1990s dollars). &lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=9790"&gt;  &lt;/a&gt; Next we consider the &lt;span class="Definition"&gt; hardware and software cost&lt;/span&gt;  for ASIC design. Figure&amp;nbsp;1.12 shows some typical figures, but you can  spend anywhere from $1000 to $1&amp;nbsp;million (and more) on ASIC design  software and the necessary infrastructure.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=9989"&gt;  &lt;/a&gt; We try to measure &lt;span class="Definition"&gt; productivity&lt;/span&gt;  of an ASIC designer in gates (or transistors) per day. This is like  trying to predict how long it takes to dig a hole, and the number of  gates per day an engineer averages varies wildly. ASIC design  productivity must increase as ASIC sizes increase and will depend on  experience, design tools, and the ASIC complexity. If we are using  similar design methods, design productivity ought to be independent of  the type of ASIC, but FPGA design software is usually available as a  complete bundle on a PC. This means that it is often easier to learn and  use than semicustom ASIC design tools.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=58286"&gt;  &lt;/a&gt; Every ASIC has to pass a &lt;span class="Definition"&gt; production test&lt;/span&gt;  to make sure that it works. With modern test tools the generation of  any test circuits on each ASIC that are needed for production testing  can be automatic, but it still involves a cost for &lt;span class="Definition"&gt; design for test&lt;/span&gt; . An FPGA is tested by the manufacturer before it is sold to you and  before you program it. You are still paying for testing an FPGA, but it  is a hidden cost folded into the part cost of the FPGA. You do have to  pay for any &lt;span class="Definition"&gt; programming costs&lt;/span&gt;  for an FPGA, but we can include these in the hardware and software cost.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=58291"&gt;  &lt;/a&gt; The &lt;span class="Definition"&gt; nonrecurring-engineering &lt;/span&gt; (&lt;span class="Definition"&gt; NRE&lt;/span&gt; ) charge includes the cost of work done by the ASIC vendor and the cost  of the masks. The production test uses sets of test inputs called &lt;span class="Definition"&gt; test vectors&lt;/span&gt; , often many thousands of them. Most ASIC vendors require simulation to  generate test vectors and test programs for production testing, and will  charge for a &lt;span class="Definition"&gt; test-program development cost&lt;/span&gt; . The number of masks required by an ASIC during fabrication can range  from three or four (for a gate array) to 15 or more (for a CBIC). Total  mask costs can range from $5000 to $50,000 or more. The total NRE charge  can range from $10,000 to $300,000 or more and will vary with volume  and the size of the ASIC. If you commit to high volumes (above 100,000  parts), the vendor may waive the NRE charge. The NRE charge may also  include the costs of software tools, design verification, and prototype  samples. &lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=2146"&gt;  &lt;/a&gt; If your design does not work the first time, you have to complete a further design &lt;span class="Definition"&gt; pass&lt;/span&gt;  (&lt;span class="Definition"&gt; turn&lt;/span&gt;  or &lt;span class="Definition"&gt; spin&lt;/span&gt; ) that requires additional NRE charges. Normally you sign a contract  (sign off a design) with an ASIC vendor that guarantees first-pass  success—this means that if you designed your ASIC according to rules  specified by the vendor, then the vendor guarantees that the silicon  will perform according to the simulation or you get your money back.  This is why the difference between semicustom and full-custom design  styles is so important—the ASIC vendor will not (and cannot) guarantee  your design will work if you use any full-custom design techniques. &lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=46379"&gt;  &lt;/a&gt; Nowadays it is almost routine to have an ASIC work on the first pass.  However, if your design does fail, it is little consolation to have a  second pass for free if your company goes bankrupt in the meantime.  Figure&amp;nbsp;1.13 shows a &lt;span class="Definition"&gt; profit model&lt;/span&gt;  that represents the &lt;span class="Definition"&gt; profit flow&lt;/span&gt;  during the &lt;span class="Definition"&gt; product lifetime&lt;/span&gt; . Using this model, we can estimate the lost profit due to any delay. &lt;/div&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFigure"&gt; &lt;a href="" name="pgfId=10557"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;div&gt; &lt;img src="http://iroi.seu.edu.cn/books/asics/Book/CH01/CH01-13.gif" /&gt; &lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFigureTitle"&gt; &lt;a href="" name="pgfId=10560"&gt;  &lt;/a&gt; FIGURE&amp;nbsp;1.13&amp;nbsp; A profit model. If a product is introduced on time, the  total sales are $60&amp;nbsp;million (the area of the higher triangle). With a  three-month (one fiscal quarter) delay the sales decline to $25&amp;nbsp;million.  The difference is shown as the shaded area between the two triangles  and amounts to a lost revenue of $35&amp;nbsp;million.&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=10608"&gt;  &lt;/a&gt; Suppose we have the following situation:&lt;/div&gt;&lt;ul&gt;&lt;li class="BulletFirst"&gt; &lt;a href="" name="pgfId=10562"&gt;  &lt;/a&gt; The product lifetime is 18 months (6 fiscal quarters).&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=10563"&gt;  &lt;/a&gt; The product sales increase (linearly) at $10&amp;nbsp;million per quarter  independently of when the product is introduced (we suppose this is  because we can increase production and sales only at a fixed rate).&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=10564"&gt;  &lt;/a&gt; The product reaches its peak sales at a point in time that is  independent of when we introduce a product (because of external market  factors that we cannot control).&lt;/li&gt;
&lt;li class="BulletLast"&gt; &lt;a href="" name="pgfId=10565"&gt;  &lt;/a&gt; The product declines in sales (linearly) to the end of its life—a point  in time that is also independent of when we introduce the product (again  due to external market forces).&lt;/li&gt;
&lt;/ul&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=10609"&gt;  &lt;/a&gt; The simple profit and revenue model of Figure&amp;nbsp;1.13 shows us that we  would lose $35&amp;nbsp;million in sales in this situation due to a 3-month  delay. Despite the obvious problems with such a simple model (how can we  introduce the same product twice to compare the performance?), it is  widely used in marketing. In the electronics industry product lifetimes  continue to shrink. In the PC industry it is not unusual to have a  product lifetime of 18 months or less. This means that it is critical to  achieve a rapid design time (or high &lt;span class="Definition"&gt; product velocity&lt;/span&gt; ) with no delays.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=2154"&gt;  &lt;/a&gt; The last fixed cost shown in Figure&amp;nbsp;1.12 corresponds to an “insurance  policy.” When a company buys an ASIC part, it needs to be assured that  it will always have a back-up source, or &lt;span class="Definition"&gt; second source&lt;/span&gt; , in case something happens to its first or primary source. Established  FPGA companies have a second source that produces equivalent parts. With  a custom ASIC you may have to do some redesign to transfer your ASIC to  the second source. However, for all ASIC types, switching production to  a second source will involve some cost. Figure&amp;nbsp;1.12 assumes a  second-source cost of $2000 for all types of ASIC (the amount may be  substantially more than this). &lt;/div&gt;&lt;/div&gt;&lt;div&gt; &lt;h2 class="Heading2"&gt; &lt;a href="" name="pgfId=55721"&gt;  &lt;/a&gt; 1.4.4&amp;nbsp;ASIC Variable Costs&lt;/h2&gt;&lt;div class="BodyAfterHead"&gt; &lt;a href="" name="pgfId=55726"&gt;  &lt;/a&gt; Figure&amp;nbsp;1.14 shows a spreadsheet, “Variable Costs,” that calculates some  example part costs. This spreadsheet uses the terms and parameters  defined below the figure. &lt;/div&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFigure"&gt; &lt;a href="" name="pgfId=59784"&gt;  &lt;/a&gt; &amp;nbsp;&lt;/div&gt;&lt;div&gt; &lt;img src="http://iroi.seu.edu.cn/books/asics/Book/CH01/CH01-14.gif" /&gt; &lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFigureTitle"&gt; &lt;a href="" name="pgfId=59787"&gt;  &lt;/a&gt; FIGURE&amp;nbsp;1.14&amp;nbsp;A spreadsheet, “Variable Costs,” to calculate the part cost  (that is the variable cost for a product using ASICs) for different ASIC  technologies.&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;ul&gt;&lt;li class="BulletFirst"&gt; &lt;a href="" name="pgfId=10233"&gt;  &lt;/a&gt; The &lt;span class="Definition"&gt; wafer size &lt;/span&gt; increases every few years. From 1985 to 1990, 4-inch to 6-inch diameter  wafers were common; equipment using 6-inch to 8-inch wafers was  introduced between 1990 and 1995; the next step is the 300 cm or 12-inch  wafer. The 12-inch wafer will probably take us to 2005.&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=10235"&gt;  &lt;/a&gt; The &lt;span class="Definition"&gt; wafer cost&lt;/span&gt;  depends on the equipment costs, process costs, and overhead in the  fabrication line. A typical wafer cost is between $1000 and $5000, with  $2000 being average; the cost declines slightly during the life of a  process and increases only slightly from one process generation to the  next.&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=31653"&gt;  &lt;/a&gt; &lt;span class="Definition"&gt; Moore’s Law&lt;/span&gt;  (after Gordon Moore of Intel) models the observation that the number of  transistors on a chip roughly doubles every 18 months. Not all designs  follow this law, but a “large” ASIC design seems to grow by a factor of  10 every 5 years (close to Moore’s Law). In 1990 a large ASIC design  size was 10 k-gate, in 1995 a large design was about 100 k-gate, in 2000  it will be 1 M-gate, in 2005 it will be 10 M-gate. &lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=31655"&gt;  &lt;/a&gt; The &lt;span class="Definition"&gt; gate density&lt;/span&gt;  is the number of gate equivalents per unit area (remember: a gate equivalent, or gate, corresponds to a two-input NAND gate). &lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=134740"&gt;  &lt;/a&gt; The &lt;span class="Definition"&gt; gate utilization&lt;/span&gt;  is the percentage of gates that are on a die that we can use (on a gate array we waste some gate space for interconnect).&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=134741"&gt;  &lt;/a&gt; The &lt;span class="Definition"&gt; die size&lt;/span&gt;  is determined by the design size (in gates), the gate density, and the utilization of the die.&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=10242"&gt;  &lt;/a&gt; The number of &lt;span class="Definition"&gt; die per wafer&lt;/span&gt;  depends on the die size and the wafer size (we have to pack rectangular  or square die, together with some test chips, on to a circular wafer so  some space is wasted).&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=10243"&gt;  &lt;/a&gt; The &lt;span class="Definition"&gt; defect density&lt;/span&gt;  is a measure of the quality of the fabrication process. The smaller the  defect density the less likely there is to be a flaw on any one die. A  single defect on a die is almost always fatal for that die. Defect  density usually increases with the number of steps in a process. A  defect density of less than 1 cm&lt;sup class="Superscript"&gt; –2&lt;/sup&gt;  is typical and required for a submicron CMOS process.&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=10247"&gt;  &lt;/a&gt; The &lt;span class="Definition"&gt; yield&lt;/span&gt;  of a process is the key to a profitable ASIC company. The yield is the  fraction of die on a wafer that are good (expressed as a percentage).  Yield depends on the complexity and maturity of a process. A process may  start out with a yield of close to zero for complex chips, which then  climbs to above 50 percent within the first few months of production.  Within a year the yield has to be brought to around 80 percent for the  average complexity ASIC for the process to be profitable. Yields of 90  percent or more are not uncommon.&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=10248"&gt;  &lt;/a&gt; The &lt;span class="Definition"&gt; die cost&lt;/span&gt;  is determined by wafer cost, number of die per wafer, and the yield. Of  these parameters, the most variable and the most critical to control is  the yield.&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=10249"&gt;  &lt;/a&gt; The &lt;span class="Definition"&gt; profit margin&lt;/span&gt;  (what you sell a product for, less what it costs you to make it,  divided by the cost) is determined by the ASIC company’s fixed and  variable costs. ASIC vendors that make and sell custom ASICs have huge  fixed and variable costs associated with building and running  fabrication facilities (a fabrication plant is a &lt;span class="Definition"&gt; fab&lt;/span&gt; ). FPGA companies are typically &lt;span class="Definition"&gt; fabless&lt;/span&gt; —they do not own a fab—they must pass on the costs of the chip  manufacture (plus the profit margin of the chip manufacturer) and the  development cost of the FPGA structure in the FPGA part cost. The  profitability of any company in the ASIC business varies greatly.&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=10244"&gt;  &lt;/a&gt; The &lt;span class="Definition"&gt; price per gate&lt;/span&gt;  (usually measured in cents per gate) is determined by die costs and  design size. It varies with design size and declines over time.&lt;/li&gt;
&lt;li class="BulletLast"&gt; &lt;a href="" name="pgfId=19523"&gt;  &lt;/a&gt; The &lt;span class="Definition"&gt; part cost&lt;/span&gt;  is determined by all of the preceding factors. As such it will vary  widely with time, process, yield, economic climate, ASIC size and  complexity, and many other factors.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=19527"&gt;  &lt;/a&gt; As an estimate you can assume that the price per gate for any process  technology falls at about 20 % per year during its life (the average  life of a CMOS process is 2–4 years, and can vary widely). Beyond the  life of a process, prices can increase as demand falls and the  fabrication equipment becomes harder to maintain. Figure&amp;nbsp;1.15 shows the  price per gate for the different ASICs and process technologies using  the following assumptions:&lt;/div&gt;&lt;ul&gt;&lt;li class="BulletFirst"&gt; &lt;a href="" name="pgfId=19462"&gt;  &lt;/a&gt; For any new process technology the price per gate decreases by 40 % in  the first year, 30 % in the second year, and then remains constant.&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=52671"&gt;  &lt;/a&gt; A new process technology is introduced approximately every 2 years, with  feature size decreasing by a factor of two every 5 years as follows: 2 &lt;span class="Symbol"&gt; m&lt;/span&gt; m in 1985, 1.5 &lt;span class="Symbol"&gt; m&lt;/span&gt; m in 1987, 1 &lt;span class="Symbol"&gt; m&lt;/span&gt; m in 1989, 0.8–0.6 &lt;span class="Symbol"&gt; m&lt;/span&gt; m in 1991–1993, 0.5–0.35 &lt;span class="Symbol"&gt; m&lt;/span&gt; m in 1996–1997, 0.25–0.18 &lt;span class="Symbol"&gt; m&lt;/span&gt; m in 1998–2000.&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=19505"&gt;  &lt;/a&gt; CBICs and MGAs are introduced at approximately the same time and price.&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=19464"&gt;  &lt;/a&gt; The price of a new process technology is initially 10 % above the process that it replaces.&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=19465"&gt;  &lt;/a&gt; FPGAs are introduced one year after CBICs that use the same process technology.&lt;/li&gt;
&lt;li class="BulletLast"&gt; &lt;a href="" name="pgfId=19466"&gt;  &lt;/a&gt; The initial FPGA price (per gate) is 10 percent higher than the initial  price for CBICs or MGAs using the same process technology.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=19058"&gt;  &lt;/a&gt; From Figure&amp;nbsp;1.15 you can see that the successive introduction of new  process technologies every 2 years drives the price per gate down at a  rate close to 30 percent per year. The cost figures that we have used in  this section are very approximate and can vary widely (this means they  may be off by a factor of 2 but probably are correct within a factor of  10). ASIC companies do use spreadsheet models like these to calculate  their costs. &lt;/div&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFigure"&gt; &lt;a href="" name="pgfId=17906"&gt;  &lt;/a&gt; &lt;img align="BOTTOM" src="http://iroi.seu.edu.cn/books/asics/Book/CH01/CH01-15.gif" /&gt; &amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td colspan="1" rowspan="1"&gt; &lt;div class="TableFigureTitle"&gt; &lt;a href="" name="pgfId=19637"&gt;  &lt;/a&gt; FIGURE&amp;nbsp;1.15&amp;nbsp;Example price per gate figures. &lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=62311"&gt;  &lt;/a&gt; Having decided if, and then which, ASIC technology is appropriate, you  need to choose the appropriate cell library. Next we shall discuss the  issues surrounding ASIC cell libraries: the different types, their  sources, and their contents.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>ASIC Cell Libraries</title><link>http://ieeebooks.blogspot.com/2011/09/asic-cell-libraries.html</link><category>ASIC Cell Libraries</category><pubDate>Sun, 4 Sep 2011 12:46:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-1831040574214098650</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h1 class="Heading1"&gt;ASIC Cell Libraries&lt;/h1&gt;&lt;div class="BodyAfterHead"&gt; &lt;a href="" name="pgfId=36709"&gt;  &lt;/a&gt; The cell library is the key part of ASIC design. For a programmable ASIC  the FPGA company supplies you with a library of logic cells in the form  of a &lt;span class="Definition"&gt; design kit&lt;/span&gt; , you normally do not have a choice, and the cost is usually a few  thousand dollars. For MGAs and CBICs you have three choices: the &lt;span class="Definition"&gt; ASIC vendor&lt;/span&gt;  (the company that will build your ASIC) will supply a cell library, or you can buy a cell library from a third-party &lt;span class="Definition"&gt; library vendor&lt;/span&gt; , or you can build your own cell library.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=38002"&gt;  &lt;/a&gt; The first choice, using an &lt;span class="Definition"&gt; ASIC-vendor library&lt;/span&gt; , requires you to use a set of design tools approved by the ASIC vendor  to enter and simulate your design. You have to buy the tools, and the  cost of the cell library is folded into the NRE. Some ASIC vendors  (especially for MGAs) supply tools that they have developed in-house.  For some reason the more common model in Japan is to use tools supplied  by the ASIC vendor, but in the United States, Europe, and elsewhere  designers want to choose their own tools. Perhaps this has to do with  the relationship between customer and supplier being a lot closer in  Japan than it is elsewhere.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=62317"&gt;  &lt;/a&gt; An ASIC vendor library is normally a &lt;span class="Definition"&gt; phantom library&lt;/span&gt; —the cells are empty boxes, or &lt;span class="Definition"&gt; phantoms&lt;/span&gt; , but contain enough information for layout (for example, you would only  see the bounding box or abutment box in a phantom version of the cell  in Figure&amp;nbsp;1.3). After you complete layout you &lt;span class="Definition"&gt; hand off&lt;/span&gt;  a netlist to the ASIC vendor, who fills in the empty boxes (&lt;span class="Definition"&gt; phantom instantiation&lt;/span&gt; ) before manufacturing your chip.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=62327"&gt;  &lt;/a&gt; The second and third choices require you to make a &lt;span class="Definition"&gt; buy-or-build decision&lt;/span&gt; . If you complete an ASIC design using a cell library that you bought, you also own the masks (the &lt;span class="Definition"&gt; tooling&lt;/span&gt; ) that are used to manufacture your ASIC. This is called &lt;span class="Definition"&gt; customer-owned tooling&lt;/span&gt;  (&lt;span class="Definition"&gt; COT&lt;/span&gt; , pronounced “see-oh-tee”). A library vendor normally develops a cell library using information about a process supplied by an &lt;span class="Definition"&gt; ASIC foundry&lt;/span&gt; . An ASIC foundry (in contrast to an ASIC vendor) only provides  manufacturing, with no design help. If the cell library meets the  foundry specifications, we call this a &lt;span class="Definition"&gt; qualified cell library&lt;/span&gt; . These cell libraries are normally expensive (possibly several hundred  thousand dollars), but if a library is qualified at several foundries  this allows you to shop around for the most attractive terms. This means  that buying an expensive library can be cheaper in the long run than  the other solutions for high-volume production.&lt;/div&gt;&lt;div class="Body"&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="Body"&gt; &lt;a href="" name="pgfId=38018"&gt;  &lt;/a&gt; The third choice is to develop a cell library in-house. Many large  computer and electronics companies make this choice. Most of the cell  libraries designed today are still developed in-house despite the fact  that the process of &lt;span class="Definition"&gt; library development&lt;/span&gt;  is complex and very expensive. &lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=39418"&gt;  &lt;/a&gt; However created, each cell in an ASIC cell library must contain the following:&lt;/div&gt;&lt;ul&gt;&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=36742"&gt;  &lt;/a&gt; A physical layout&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=39299"&gt;  &lt;/a&gt; A behavioral model&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=50450"&gt;  &lt;/a&gt; A Verilog/VHDL model&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=36744"&gt;  &lt;/a&gt; A detailed timing model&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=39833"&gt;  &lt;/a&gt; A test strategy&lt;/li&gt;
&lt;li class="BulletList"&gt; &lt;a href="" name="pgfId=38634"&gt;  &lt;/a&gt; A circuit schematic&lt;/li&gt;
&lt;li class="BulletLast"&gt; &lt;a href="" name="pgfId=36745"&gt;  &lt;/a&gt; A cell icon&lt;/li&gt;
&lt;li class="BulletLast"&gt; &lt;a href="" name="pgfId=50518"&gt;  &lt;/a&gt; A wire-load model&lt;/li&gt;
&lt;li class="BulletLast"&gt; &lt;a href="" name="pgfId=36746"&gt;  &lt;/a&gt; A routing model&lt;/li&gt;
&lt;/ul&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=38354"&gt;  &lt;/a&gt; For MGA and CBIC cell libraries we need to complete cell design and &lt;span class="Definition"&gt; cell layout &lt;/span&gt; and shall discuss this in Chapter&amp;nbsp;2. The ASIC designer may not actually  see the layout if it is hidden inside a phantom, but the layout will be  needed eventually. In a programmable ASIC the cell layout is part of the  programmable ASIC design (see Chapter&amp;nbsp;4).&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=39287"&gt;  &lt;/a&gt; The ASIC designer needs a high-level, &lt;span class="Definition"&gt; behavioral model&lt;/span&gt;  for each cell because simulation at the detailed timing level takes too  long for a complete ASIC design. For a NAND gate a behavioral model is  simple. A multiport RAM model can be very complex. We shall discuss  behavioral models when we describe Verilog and VHDL in Chapter&amp;nbsp;10 and  Chapter&amp;nbsp;11. The designer may require Verilog and VHDL models in addition  to the models for a particular logic simulator.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=39117"&gt;  &lt;/a&gt; ASIC designers also need a detailed &lt;span class="Definition"&gt; timing model&lt;/span&gt;  for each cell to determine the performance of the critical pieces of an  ASIC. It is too difficult, too time-consuming, and too expensive to  build every cell in silicon and measure the cell delays. Instead library  engineers simulate the delay of each cell, a process known as &lt;span class="Definition"&gt; characterization&lt;/span&gt; . Characterizing a standard-cell or gate-array library involves &lt;span class="Definition"&gt; circuit extraction&lt;/span&gt;  from the full-custom cell layout for each cell. The extracted schematic  includes all the parasitic resistance and capacitance elements. Then  library engineers perform a simulation of each cell including the  parasitic elements to determine the switching delays. The simulation  models for the transistors are derived from measurements on special  chips included on a wafer called &lt;span class="Definition"&gt; process control monitors&lt;/span&gt;  (&lt;span class="Definition"&gt; PCMs&lt;/span&gt; ) or &lt;span class="Definition"&gt; drop-ins&lt;/span&gt; . Library engineers then use the results of the circuit simulation to  generate detailed timing models for logic simulation. We shall cover  timing models in Chapter 13.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=39834"&gt;  &lt;/a&gt; All ASICs need to be production tested (programmable ASICs may be tested  by the manufacturer before they are customized, but they still need to  be tested). Simple cells in small or medium-size blocks can be tested  using automated techniques, but large blocks such as RAM or multipliers  need a planned strategy. We shall discuss test in Chapter&amp;nbsp;14.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=58638"&gt;  &lt;/a&gt; The &lt;span class="Definition"&gt; cell schematic&lt;/span&gt;  (a netlist description) describes each cell so that the cell designer  can perform simulation for complex cells. You may not need the detailed  cell schematic for all cells, but you need enough information to compare  what you think is on the silicon (the schematic) with what is actually  on the silicon (the layout)—this is a &lt;span class="Definition"&gt; layout versus schematic&lt;/span&gt;  (&lt;span class="Definition"&gt; LVS&lt;/span&gt; ) check.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=58643"&gt;  &lt;/a&gt; If the ASIC designer uses schematic entry, each cell needs a &lt;span class="Definition"&gt; cell icon&lt;/span&gt;  together with connector and naming information that can be used by  design tools from different vendors. We shall cover ASIC design using  schematic entry in Chapter&amp;nbsp;9. One of the advantages of using &lt;span class="Definition"&gt; logic synthesis&lt;/span&gt;  (Chapter&amp;nbsp;12) rather than schematic design entry is eliminating the  problems with icons, connectors, and cell names. Logic synthesis also  makes moving an ASIC between different cell libraries, or &lt;span class="Definition"&gt; retargeting&lt;/span&gt; , much easier.&lt;/div&gt;&lt;div class="Body"&gt; &lt;a href="" name="pgfId=36812"&gt;  &lt;/a&gt; In order to estimate the parasitic capacitance of wires before we  actually complete any routing, we need a statistical estimate of the  capacitance for a net in a given size circuit block. This usually takes  the form of a look-up table known as a &lt;span class="Definition"&gt; wire-load model&lt;/span&gt; . We also need a &lt;span class="Definition"&gt; routing model&lt;/span&gt;  for each cell. Large cells are too complex for the physical design or  layout tools to handle directly and we need a simpler representation—a &lt;span class="Definition"&gt; phantom&lt;/span&gt; —of the physical layout that still contains all the necessary  information. The phantom may include information that tells the  automated routing tool where it can and cannot place wires over the  cell, as well as the location and types of the connections to the cell. &lt;/div&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>A Tutorial | Architecture of FPGAs and CPLDs</title><link>http://ieeebooks.blogspot.com/2011/07/tutorial-architecture-of-fpgas-and.html</link><category>Architecture of FPGAs and CPLDs</category><pubDate>Thu, 18 Aug 2011 05:38:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-5428093157975029283</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h2&gt;&lt;/h2&gt;&lt;h3&gt;Abstract&amp;nbsp;&lt;/h3&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdPz5P-RUvjU-wQrDO_AnMUuZSaGxZ4P0hu4SJYTz6kOzCc_aEXlF95AYdHopN_pi_3YntohCfk0QByPK9ZxkMD1fKrz1LO1WtSNHaiYkyPkIMQbFCmnr2bx8LJKrXW19OQQfnWjHitLE/s1600/Architectures_CPLD_FPGA.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdPz5P-RUvjU-wQrDO_AnMUuZSaGxZ4P0hu4SJYTz6kOzCc_aEXlF95AYdHopN_pi_3YntohCfk0QByPK9ZxkMD1fKrz1LO1WtSNHaiYkyPkIMQbFCmnr2bx8LJKrXW19OQQfnWjHitLE/s1600/Architectures_CPLD_FPGA.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h3 style="font-weight: normal;"&gt;49NP5AYJSXWB&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/h3&gt;&lt;h3 style="font-weight: normal;"&gt;&lt;span style="font-size: small;"&gt;This article provides a tutorial survey of architectures of commercially  available high-capacity field-programmable devices (FPDs), and gives a  summary of recent research results in the field.&lt;/span&gt;&lt;span style="font-size: small;"&gt;In the survey section,  we first define the relevant terminology in the field and then describe  the recent evolution of FPDs. The three main categories of FPDs are  delineated: Simple PLDs (SPLDs), Complex PLDs (CPLDs) and  Field-Programmable Gate Arrays (FPGAs). We then give details of the  architectures of all of the most important commercially available chips.  The second part of the article gives an overview of the most important  research results on FPD architecture over the past six years, and  provides suggestions as to features that may be included in future  architectures.&lt;/span&gt;&lt;span class="status action"&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.google.com.pk/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CBoQFjAA&amp;amp;url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.10.237%26rep%3Drep1%26type%3Dpdf&amp;amp;rct=j&amp;amp;q=Architecture%20of%20FPGAs%20and%20CPLD%20overview&amp;amp;ei=UOojTracFcvn-ga7-K20Aw&amp;amp;usg=AFQjCNFxQKiBKVtZhU9106VqmPmY5RV_ag&amp;amp;cad=rja"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA3Klbzkll5k5ep8hKtZqby5Nk-MliDETmSCytj8Oqy2PrpQwFIaHobya0HBwigRgR2SXGUYK2e1YahdPbvJHohrIj7xJAzXDDRP8yx6hqTTKEkZrS3jmjq3xR-EiydYtbOFJxa7jSzSg/s1600/download+ieeebooks.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdPz5P-RUvjU-wQrDO_AnMUuZSaGxZ4P0hu4SJYTz6kOzCc_aEXlF95AYdHopN_pi_3YntohCfk0QByPK9ZxkMD1fKrz1LO1WtSNHaiYkyPkIMQbFCmnr2bx8LJKrXW19OQQfnWjHitLE/s72-c/Architectures_CPLD_FPGA.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>What is FPGAs Technology | Overview | Benefits of FPGA</title><link>http://ieeebooks.blogspot.com/2011/06/what-is-fpgas-technology-overview.html</link><category>FPGAs Technology Benefits</category><pubDate>Tue, 7 Jun 2011 21:13:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-7682107279886390424</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="noindex"&gt; &lt;h3&gt;Overview&lt;/h3&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKCmVWAIxfk8_fJsuwHpqyswCAjLWzRZOhwhBkfNTcdFt4CM6luo7Rx5J4zVVspuGGv9ZzhWy691POg6rjibY7uZfSbAgtnDXqbw_CRhOssKvS2GtZZgP57JFqZxVAjPPtgZOF5QrVSpk/s1600/FPGA+TECHNOLOGY+ieeebooks.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="135" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKCmVWAIxfk8_fJsuwHpqyswCAjLWzRZOhwhBkfNTcdFt4CM6luo7Rx5J4zVVspuGGv9ZzhWy691POg6rjibY7uZfSbAgtnDXqbw_CRhOssKvS2GtZZgP57JFqZxVAjPPtgZOF5QrVSpk/s200/FPGA+TECHNOLOGY+ieeebooks.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;Field-programmable gate array (FPGA) technology continues to gain  momentum, and the worldwide FPGA market is expected to grow from $1.9  billion in 2005 to $2.75 billion by 2010&lt;sup&gt;1&lt;/sup&gt;. Since its  invention by Xilinx in 1984, FPGAs have gone from being simple glue  logic chips to actually replacing custom application-specific integrated  circuits (ASICs) and processors for signal processing and control  applications. Why has this technology been so successful? This article  provides an introduction to FPGAs and highlights some of the benefits  that make FPGAs unique.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;What is an FPGA?&lt;/b&gt;&lt;/h2&gt;At the highest level, FPGAs are reprogrammable silicon chips. Using  prebuilt logic blocks and programmable routing resources, you can  configure these chips to implement custom hardware functionality without  ever having to pick up a breadboard or soldering iron. You develop  digital computing tasks in software and compile them down to a  configuration file or bitstream that contains information on how the  components should be wired together. In addition, FPGAs are completely  reconfigurable and instantly take on a brand new “personality” when you  recompile a different configuration of circuitry. In the past, FPGA  technology was only available to engineers with a deep understanding of  digital hardware design. The rise of high-level design tools, however,  is changing the rules of FPGA programming, with new technologies that  convert graphical block diagrams or even C code into digital hardware  circuitry...................................................&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
FPGA chip adoption across all industries is driven by the fact that  FPGAs combine the best parts of ASICs and processor-based systems. FPGAs  provide hardware-timed speed and reliability, but they do not require  high volumes to justify the large upfront expense of custom ASIC design.  Reprogrammable silicon also has the same flexibility of software  running on a processor-based system, but it is not limited by the number  of processing cores available. Unlike processors, FPGAs are truly  parallel in nature so different processing operations do not have to  compete for the same resources. Each independent processing task is  assigned to a dedicated section of the chip, and can function  autonomously without any influence from other logic blocks. As a result,  the performance of one part of the application is not affected when  additional processing is added.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;Top Benefits of FPGA Technology&lt;/b&gt;&lt;/h2&gt;&lt;ol start="1" type="1"&gt;&lt;li&gt;&lt;b&gt;Performance&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Time to Market&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Cost&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Reliability&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Long-Term Maintenance&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;ol start="1" type="1"&gt;&lt;li&gt;&lt;b&gt;Performance&lt;/b&gt; – Taking advantage of hardware parallelism, FPGAs  exceed the computing power of digital signal processors (DSPs) by  breaking the paradigm of sequential execution and accomplishing more per  clock cycle. BDTI, a noted analyst and benchmarking firm, released  benchmarks showing how FPGAs can deliver many times the processing power  per dollar of a DSP solution in some applications.&lt;sup&gt;2&lt;/sup&gt;  Controlling inputs and outputs (I/O) at the hardware level provides  faster response times and specialized functionality to closely match  application requirements.&lt;/li&gt;
&lt;/ol&gt;&lt;ol start="2" type="1"&gt;&lt;li&gt;&lt;b&gt;Time to market&lt;/b&gt; – FPGA technology offers flexibility and rapid  prototyping capabilities in the face of increased time-to-market  concerns. You can test an idea or concept and verify it in hardware  without going through the long fabrication process of custom ASIC  design.&lt;sup&gt;3&lt;/sup&gt; You can then implement incremental changes and  iterate on an FPGA design within hours instead of weeks. Commercial  off-the-shelf (COTS) hardware is also available with different types of  I/O already connected to a user-programmable FPGA chip. The growing  availability of high-level software tools decrease the learning curve  with layers of abstraction and often include valuable IP cores (prebuilt  functions) for advanced control and signal processing.&lt;/li&gt;
&lt;/ol&gt;&lt;ol start="3" type="1"&gt;&lt;li&gt;&lt;b&gt;Cost&lt;/b&gt; – The nonrecurring engineering (NRE) expense of custom  ASIC design far exceeds that of FPGA-based hardware solutions. The large  initial investment in ASICs is easy to justify for OEMs shipping  thousands of chips per year, but many end users need custom hardware  functionality for the tens to hundreds of systems in development. The  very nature of programmable silicon means that there is no cost for  fabrication or long lead times for assembly. As system requirements  often change over time, the cost of making incremental changes to FPGA  designs are quite negligible when compared to the large expense of  respinning an ASIC.&lt;/li&gt;
&lt;/ol&gt;&lt;ol start="4" type="1"&gt;&lt;li&gt;&lt;b&gt;Reliability&lt;/b&gt; – While software tools provide the programming  environment, FPGA circuitry is truly a “hard” implementation of program  execution. Processor-based systems often involve several layers of  abstraction to help schedule tasks and share resources among multiple  processes. The driver layer controls hardware resources and the  operating system manages memory and processor bandwidth. For any given  processor core, only one instruction can execute at a time, and  processor-based systems are continually at risk of time-critical tasks  pre-empting one another. FPGAs, which do not use operating systems,  minimize reliability concerns with true parallel execution and  deterministic hardware dedicated to every task.&lt;/li&gt;
&lt;/ol&gt;&lt;b&gt;Long-term maintenance&lt;/b&gt; – As mentioned earlier, FPGA chips are  field-upgradable and do not require the time and expense involved with  ASIC redesign. Digital communication protocols, for example, have  specifications that can change over time, and ASIC-based interfaces may  cause maintenance and forward compatibility challenges. Being  reconfigurable, FPGA chips are able to keep up with future modifications  that might be necessary. As a product or system matures, you can make  functional enhancements without spending time redesigning hardware or  modifying the board layout.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.freebookcentre.net/electronics-ebooks-download/gotoweb.php?id=5120"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA3Klbzkll5k5ep8hKtZqby5Nk-MliDETmSCytj8Oqy2PrpQwFIaHobya0HBwigRgR2SXGUYK2e1YahdPbvJHohrIj7xJAzXDDRP8yx6hqTTKEkZrS3jmjq3xR-EiydYtbOFJxa7jSzSg/s1600/download+ieeebooks.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKCmVWAIxfk8_fJsuwHpqyswCAjLWzRZOhwhBkfNTcdFt4CM6luo7Rx5J4zVVspuGGv9ZzhWy691POg6rjibY7uZfSbAgtnDXqbw_CRhOssKvS2GtZZgP57JFqZxVAjPPtgZOF5QrVSpk/s72-c/FPGA+TECHNOLOGY+ieeebooks.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>Multiplication in FPGA Design!!</title><link>http://ieeebooks.blogspot.com/2011/05/multiplication-in-fpga-design.html</link><category>Multiplication in FPGA Design</category><pubDate>Sun, 29 May 2011 17:23:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-8883684797406695348</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.andraka.com/_derived/multipli.htm_cmp_acg6000_bnr.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.andraka.com/_derived/multipli.htm_cmp_acg6000_bnr.gif" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Multiplication is basically a  shift add operation.&amp;nbsp; There are, however, many variations on how to do it.&amp;nbsp; Some are more suitable for FPGA use than  others. &amp;nbsp; This page is a brief tutorial on multiplication hardware.&amp;nbsp; The  hyperlinked items in this list are currently in the text.&amp;nbsp; The remaining items will be added  in a future release of this page.&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;div align="center"&gt;&lt;img height="10" src="http://www.andraka.com/_themes/acg6/blrule.gif" width="300" /&gt;&lt;/div&gt;&lt;h2&gt;Scaling Accumulator  Multipliers&lt;/h2&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Parallel by serial algorithm&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Iterative shift add routine&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;N clock cycles to complete&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Very compact design&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Serial input can be MSB or LSB first  depending on direction of shift in accumulator&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Parallel output&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;  &lt;/span&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;A scaling accumulator  multiplier performs multiplication using an iterative shift-add routine.&amp;nbsp; One input is presented in bit parallel form while the other is  in bit serial form.&amp;nbsp; Each bit in the serial input multiplies the parallel input  by either 0 or 1.&amp;nbsp; The parallel input is held constant while each bit of the serial  input is presented.&amp;nbsp; Note that the one bit multiplication either passes the  parallel input unchanged or substitutes zero.&amp;nbsp; The result from each bit is added to an  accumulated sum.&amp;nbsp; That sum is shifted one bit before the result of the next bit  multiplication is added to it.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div align="center"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;  &lt;table border="0"&gt;&lt;tbody&gt;
&lt;tr&gt;     &lt;td align="center"&gt;&lt;div align="left"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;&lt;span style="font-family: Courier;"&gt;1&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;     1011001&lt;br /&gt;
0&amp;nbsp; &amp;nbsp;&amp;nbsp; 0000000 &lt;br /&gt;
1&amp;nbsp; &amp;nbsp; 1011001&amp;nbsp; &lt;br /&gt;
1&amp;nbsp; &lt;u&gt;+1011001 &lt;/u&gt;&amp;nbsp; &lt;u&gt;&lt;br /&gt;
&lt;/u&gt;&amp;nbsp;&amp;nbsp; 10010000101&lt;/span&gt;&lt;/small&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;div align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;img alt="scaleacc2.gif 
(3438 bytes)" height="199" src="http://www.andraka.com/images/scaleacc2.gif" width="201" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt; &lt;/span&gt;&lt;/center&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;img height="10" src="http://www.andraka.com/_themes/acg6/blrule.gif" width="300" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Serial by Parallel Booth Multipliers&lt;/span&gt;&lt;/h2&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Bit serial adds eliminate need for carry  chain&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Well suited for FPGAs without fast carry  logic&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Serial input LSB first&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Serial output&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Routing is all nearest neighbor except  serial input which is broadcast&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Latency is one bit time&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;  &lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: black; font-size: small;"&gt;The simple serial by parallel booth  multiplier is particularly well suited for bit serial processors implemented in FPGAs  without carry chains because all of its routing is to nearest neighbors with the  exception of the input. &amp;nbsp; The serial input must be sign extended to a length equal to the sum of  the lengths of the serial input and parallel input to avoid overflow, which means  this multiplier takes more clocks to complete than the scaling accumulator version.&amp;nbsp;  This is the structure used in the venerable TTL serial by parallel multiplier.&lt;/span&gt;&lt;br /&gt;
&lt;div align="center"&gt;&lt;img alt="serbooth.gif (11228 bytes)" height="227" src="http://www.andraka.com/images/serbooth.gif" width="640" /&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;img height="10" src="http://www.andraka.com/_themes/acg6/blrule.gif" width="300" /&gt;&lt;/div&gt;&lt;h2&gt;Ripple Carry Array  Multipliers&lt;/h2&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Row ripple form&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Unrolled shift-add algorithm&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Delay is proportional to N&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;  A ripple carry array multiplier (also called row ripple form) is an  unrolled embodiment of the classic shift-add multiplication algorithm.&amp;nbsp; The illustration  shows the adder structure used to combine all the bit products in a 4x4 multiplier.&amp;nbsp; The  bit products are the logical and of the bits from each input.&amp;nbsp; They are shown in the  form x,y in the drawing.&amp;nbsp; The maximum delay is the path from either LSB input to the  MSB of the product, and is the same (ignoring routing delays) regardless of the  path taken.&amp;nbsp; The delay is approximately 2*n.&lt;br /&gt;
&lt;div align="center"&gt;&lt;img alt="rowripple.gif (9476 bytes)" height="371" src="http://www.andraka.com/images/rowripple.gif" width="517" /&gt;&lt;/div&gt;&lt;div align="left"&gt;This basic structure is simple to implement in FPGAs,  but does not make efficient use of the logic in many FPGAs, and is therefore larger and  slower than other implementations.&lt;/div&gt;&lt;div align="center"&gt;&lt;img height="10" src="http://www.andraka.com/_themes/acg6/blrule.gif" width="300" /&gt;&lt;/div&gt;&lt;h2&gt;Row Adder Tree Multipliers&lt;/h2&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Optimized Row Ripple Form&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Fundamentally same gate count as row  ripple form&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Row Adders arranged in tree to reduce  delay&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Routing more difficult, but workable in  most FPGAs&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Delay proportional to log2(N)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;  Row Adder tree multipliers rearrange the adders of the row ripple  multiplier to equalize the number of adders the results from each partial product must  pass through. &amp;nbsp; The result uses the same number of adders, but the worst case path is  through log2(n) adders instead of through n adders.&amp;nbsp; In strictly combinatorial  multipliers, this reduces the delay.&amp;nbsp; For pipelined multipliers, the clock latency is  reduced. &amp;nbsp; The tree structure of the routing means some of the individual wires  are longer than the row ripple form.&amp;nbsp; As a result a pipelined row ripple multiplier  can have a higher throughput in an FPGA (shorter clock cycle) even though the  latency is increased.&lt;br /&gt;
&lt;div align="center"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;img alt="rowtree.gif (4546 
bytes)" height="287" src="http://www.andraka.com/images/rowtree.gif" width="466" /&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;img height="10" src="http://www.andraka.com/_themes/acg6/blrule.gif" width="300" /&gt;&lt;/div&gt;&lt;h2&gt;Carry Save Array Multipliers&lt;/h2&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Column ripple form&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Fundamentally same delay and gate count  as row ripple form&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Gate level speed ups available for ASICs&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Ripple adder can be replaced with faster  carry tree adder&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Regular routing pattern&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;  &lt;div align="center"&gt;&lt;img alt="colripple.gif (10742 bytes)" height="492" src="http://www.andraka.com/images/colripple.gif" width="506" /&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;img height="10" src="http://www.andraka.com/_themes/acg6/blrule.gif" width="300" /&gt;&lt;/div&gt;&lt;h2&gt;Look-Up Table (LUT)  Multipliers&lt;/h2&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Complete times table of all possible  input combinations&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;One address bit for each bit in each  input&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Table size grows exponentially&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Very limited use&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Fast - result is just a memory access  away&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;  &lt;/span&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Look-Up Table multipliers  are simply a block of memory containing a complete multiplication table of all possible input combinations.&amp;nbsp; The large  table sizes needed for even modest input widths make these impractical for FPGAs.&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;div align="left"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;The following table  is the contents for a 6 input LUT for a 3 bit by 3 bit multiplication table.&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;  &lt;table border="1" bordercolordark="#666666" bordercolorlight="#CCCCCC"&gt;&lt;tbody&gt;
&lt;tr&gt;     &lt;th align="center"&gt;&lt;/th&gt;     &lt;th align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000&lt;/small&gt;&lt;/span&gt;&lt;/th&gt;     &lt;th align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;001&lt;/small&gt;&lt;/span&gt;&lt;/th&gt;     &lt;th align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;010&lt;/small&gt;&lt;/span&gt;&lt;/th&gt;     &lt;th align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;011&lt;/small&gt;&lt;/span&gt;&lt;/th&gt;     &lt;th align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;100&lt;/small&gt;&lt;/span&gt;&lt;/th&gt;     &lt;th align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;101&lt;/small&gt;&lt;/span&gt;&lt;/th&gt;     &lt;th align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;110&lt;/small&gt;&lt;/span&gt;&lt;/th&gt;     &lt;th align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;111&lt;/small&gt;&lt;/span&gt;&lt;/th&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000&lt;/small&gt;&lt;/span&gt;&lt;/th&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000000 &lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000000 &lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000000 &lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000000 &lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000000 &lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000000 &lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000000 &lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000000 &lt;/small&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;001&lt;/small&gt;&lt;/span&gt;&lt;/th&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000000&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000001&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000010&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000011&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000100&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000101&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000110&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000111&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;010&lt;/small&gt;&lt;/span&gt;&lt;/th&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000000&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000010&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000100&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000110&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;001000&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;001010&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;001100&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;001110&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;011&lt;/small&gt;&lt;/span&gt;&lt;/th&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000000&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000011&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000110&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;001001&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;001100&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;001111&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;010010&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;010101&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;100&lt;/small&gt;&lt;/span&gt;&lt;/th&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000000&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000100&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;001000&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;001100&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;010000&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;010100&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;011000&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;011100&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;101&lt;/small&gt;&lt;/span&gt;&lt;/th&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000000&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000101&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;001010&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;001111&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;010100&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;011001&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;011110&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;100011&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;110&lt;/small&gt;&lt;/span&gt;&lt;/th&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000000&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000110&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;001100&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;010010&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;011000&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;011110&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;100100&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;101010&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;111&lt;/small&gt;&lt;/span&gt;&lt;/th&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000000&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;000111&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;001110&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;010101&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;011100&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;100011&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;101010&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;110001&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt; &lt;/span&gt;&lt;/center&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;img height="10" src="http://www.andraka.com/_themes/acg6/blrule.gif" width="300" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Partial Product LUT Multipliers&lt;/span&gt;&lt;/h2&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Works like long hand multiplication&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;LUT used to obtain products of digits&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Partial products combined with adder  tree&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;div align="left"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Partial  Products LUT multipliers use partial product techniques similar to those used in longhand multiplication (like you learned in 3rd grade) to  extend the usefulness of LUT multiplication.&amp;nbsp; Consider the long hand  multiplication:&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;  &lt;table border="0"&gt;&lt;tbody&gt;
&lt;tr&gt;     &lt;td&gt;&lt;div align="right"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&lt;span style="color: red;"&gt;7&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &lt;u&gt;x 5&lt;span style="color: red;"&gt;4&lt;/span&gt;&lt;br /&gt;
&lt;/u&gt;&lt;span style="color: red;"&gt;28&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: silver;"&gt;240&lt;br /&gt;
350&lt;br /&gt;
&lt;u&gt;+3000&lt;/u&gt;&lt;br /&gt;
3618&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;     &lt;td&gt;&lt;div align="right"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;img alt="arrow.gif (927 
bytes)" height="20" src="http://www.andraka.com/images/arrow.gif" width="45" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;     &lt;td&gt;&lt;div align="right"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;6&lt;/span&gt;&lt;span style="color: black;"&gt;7&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &lt;u&gt;x 5&lt;span style="color: red;"&gt;4&lt;/span&gt;&lt;br /&gt;
&lt;/u&gt;28&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;240&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: silver;"&gt;350&lt;br /&gt;
&lt;u&gt;+3000&lt;/u&gt;&lt;br /&gt;
3618&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;     &lt;td&gt;&lt;div align="right"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;img alt="arrow.gif (927 
bytes)" height="20" src="http://www.andraka.com/images/arrow.gif" width="45" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;     &lt;td&gt;&lt;div align="right"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&lt;span style="color: red;"&gt;7&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &lt;u&gt;x &lt;span style="color: red;"&gt;5&lt;/span&gt;4&lt;br /&gt;
&lt;/u&gt;28&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 240&lt;br /&gt;
&lt;span style="color: red;"&gt;350&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: silver;"&gt;&lt;u&gt;+3000&lt;/u&gt;&lt;br /&gt;
3618&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;     &lt;td&gt;&lt;div align="right"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;img alt="arrow.gif (927 
bytes)" height="20" src="http://www.andraka.com/images/arrow.gif" width="45" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;     &lt;td&gt;&lt;div align="right"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;6&lt;/span&gt;&lt;span style="color: black;"&gt;7&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &lt;u&gt;x &lt;span style="color: red;"&gt;5&lt;/span&gt;4&lt;br /&gt;
&lt;/u&gt;28&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 240&lt;br /&gt;
350&lt;br /&gt;
&lt;span style="color: red;"&gt;&lt;u&gt;+3000&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
3618&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt; &lt;/span&gt;&lt;/center&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;By performing the  multiplication one digit at a time and then shifting and summing the individual partial products, the size of the memorized times  table is greatly reduced.&amp;nbsp; While this example is decimal, the technique works for any  radix.&amp;nbsp; The order in which the partial products are obtained or summed is not  important.&amp;nbsp; The proper weighting by shifting must be maintained however.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;The example below  shows how this technique is applied in hardware to obtain a 6x6 multiplier using the 3x3 LUT multiplier shown above.&amp;nbsp; The  LUT (which performs multiplication of a pair of octal digits) is duplicated so that  all of the partial products are obtained simultaneously.&amp;nbsp; The partial products are  then shifted as needed and summed together.&amp;nbsp; An adder tree is used to obtain the sum  with minimum delay.&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;img alt="pplut2.gif (7103 
bytes)" height="195" src="http://www.andraka.com/images/pplut2.gif" width="464" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;The LUT could be  replaced by any other multiplier implementation, since LUT is being used as a multiplier.&amp;nbsp; This gives the insight into how to  combine multipliers of an arbitrary size to obtain a larger multiplier.&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;The LUT multipliers  shown have matched radices (both inputs are octal). &amp;nbsp; The partial products can also have mixed radices on the inputs  provided care is taken to make sure the partial products are shifted properly before  summing.&amp;nbsp; Where the partial products are obtained with small LUTs, the most efficient  implementation occurs when LUT is square (ie the input radices are the same).&amp;nbsp; For 8  bit LUTs, such as might be found in an Altera 10K FPGA, this means the LUT radix is  hexadecimal. &amp;nbsp; For 4 bit LUTs, found in many FPGA logic cells, the ideal radix is 2  bits (This is really the only option for a 4 LUT: a 1 bit input reduces the LUT to an AND  gate, and since each LUT cell has 1 output, it can only use one bit on the other input).&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;A more compact but  slower version is possible by computing the partial products sequentially using one LUT and accumulating the results in a  scaling accumulator.&amp;nbsp; Note that in this case, the shifter would need a special  control to obtain the proper shift on all the partials&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;img height="10" src="http://www.andraka.com/_themes/acg6/blrule.gif" width="300" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Computed Partial Product Multipliers&lt;/span&gt;&lt;/h2&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Partial product optimization for FPGAs  having small LUTs&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Fewer partial products decrease depth of  adder tree&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;2 x n bit partial products generated by  logic rather than LUT&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Smaller and faster than 4 LUT partial  product multipliers&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;  &lt;/span&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;A&amp;nbsp; partial product  multiplier constructed from the 4 LUTs found in many FPGAs is not very efficient because of the large number of partial products that  need to be summed (and the large number of LUTs required).&amp;nbsp; A more efficient multiplier  can be made by recognizing that a 2 bit input to a multiplier produces a product&amp;nbsp; 0,1,2  or 3 times the other input.&amp;nbsp; All four of these products are easily generated in one  step using just an adder and shifter.&amp;nbsp; A multiplexer controlled by the 2 bit  multiplicand selects the appropriate product as shown below.&amp;nbsp; Unlike the LUT  solution, there is no restriction on the width of the A input to the partial product.&amp;nbsp; This  structure greatly reduces the number of partial products and the depth of the  adder tree. &amp;nbsp; Since the 0,1,2 and 3x inputs to the multiplexers for all the partial  products are the same, one adder can be shared by all the partial product generators.&amp;nbsp;  This structure works well in coarser grained FPGAs like the Xilinx 4K series.&lt;/span&gt;&lt;br /&gt;
&lt;div align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;img alt="addtree3.gif (5230
 bytes)" height="167" src="http://www.andraka.com/images/addtree3.gif" width="450" /&gt;&lt;br /&gt;
&lt;small&gt;&lt;i&gt;2 x n bit partial product generated with adder and  multiplexer&lt;/i&gt;&lt;/small&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;The Xilinx Virtex  device includes an extra gate in the carry chain logic that allows a 4 input LUT plus the carry chain to perform a 2xN partial  product, thereby achieving twice the density otherwise attainable.&amp;nbsp; In this case, the  adder (consisting of the XOR gates and muxes in the carry chain) adds a pair  of 1xN partial products obtained with AND gates.&amp;nbsp; The extra AND gate in the carry logic  allows you to put AND gates on both inputs of the adder while maintaining a 4 input  function.&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;img alt="XCV_Mult.gif (7978
 bytes)" height="373" src="http://www.andraka.com/images/XCV_Mult.gif" width="564" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;&lt;i&gt;2 x n  bit computed partial product implemented in Xilinx Virtex using special MULTAND gate in carry chain logic&lt;/i&gt;&lt;/small&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;img height="10" src="http://www.andraka.com/_themes/acg6/blrule.gif" width="300" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Constant  Coefficient Multipliers&lt;/span&gt;&lt;/h2&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Multiplies input by a constant&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;LUT contains custom times table&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Width of constants do not affect depth  of adder tree&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;All LUT inputs available for  multiplicand&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;More efficient than full multiplier&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Size is constant regardless of value of  constant (assuming equal constant bit widths)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;  &lt;/span&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;A full multiplier accepts  the full range of inputs for each multiplicand.&amp;nbsp; If one of the multiplicands is a constant, then it is far more efficient to  construct a times table that only has the column corresponding to the constant value.&amp;nbsp;  These are known as constant (K) Coefficient Multipliers or KCM's. The example below  multiplies a 5 bit input (values 0 to 31) by a constant 67.&amp;nbsp; Note that with a constant  multiplier, all of the LUT inputs are available for the variable multiplicand.&amp;nbsp; This  makes the KCM more efficient than a full multiplier (fewer partial products for a  given width).&lt;/span&gt;&lt;br /&gt;
&lt;div align="center"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;  &lt;table border="1" bordercolordark="#666666" bordercolorlight="#CCCCCC" height="301"&gt;&lt;tbody&gt;
&lt;tr&gt;     &lt;td align="center" height="23" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" colspan="4" height="23" width="44%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;5 bit input * 67&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;td align="center" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;input&lt;/span&gt;&lt;/td&gt;     &lt;th align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;00&lt;/span&gt;&lt;/th&gt;     &lt;th align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;01&lt;/span&gt;&lt;/th&gt;     &lt;th align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;10&lt;/span&gt;&lt;/th&gt;     &lt;th align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;11&lt;/span&gt;&lt;/th&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;000&lt;/span&gt;&lt;/th&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;536&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1072     &lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1608&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center" height="26" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;001&lt;/span&gt;&lt;/th&gt;     &lt;td align="center" bordercolor="#808080" height="26" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;67&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="26" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;603&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="26" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1139&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="26" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1675&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;010&lt;/span&gt;&lt;/th&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;134&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;670&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1206&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1742&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;011&lt;/span&gt;&lt;/th&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;201&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;737&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1273&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1809&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;100&lt;/span&gt;&lt;/th&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;268&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;804&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1340&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1876&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;101&lt;/span&gt;&lt;/th&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;335&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;871&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1407&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1943&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;110&lt;/span&gt;&lt;/th&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;402&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;938&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1474&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;2010&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;111&lt;/span&gt;&lt;/th&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;469&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1005&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1541&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="20%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;2077&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt; &lt;/span&gt;&lt;/center&gt;&lt;/div&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;When the LUT does not offer  enough inputs to accommodate the desired variable width, several identical LUTs may be combined using the partial products  techniques discussed above.&amp;nbsp; In this case, the constant multiplicand is full width, so the  partial products will be m x n where m is the number of LUT inputs and n is the  width of the constant.&lt;/span&gt;&lt;br /&gt;
&lt;div align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;img height="10" src="http://www.andraka.com/_themes/acg6/blrule.gif" width="300" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Limited Set LUT Multipliers&lt;/span&gt;&lt;/h2&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Multiplies input by one of a small set  of constants&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Similar to KCM multiplier&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;LUT input bit(s) select which constant  to use&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Useful in modulators, other signal  processing applications&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;  &lt;/span&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;In signal processing,  there are often instances where one multiplicand is taken from of a small set of constant values.&amp;nbsp; In these cases, the KCM multiplier can  be extended so that the LUT contains the times tables for each constant.&amp;nbsp; One or  more of the LUT inputs select which constant is used, while the remaining inputs are for  the variable multiplicand.&amp;nbsp; The example below is a 6 LUT containing times tables for  the constants 67 and 85.&amp;nbsp; One bit of the input selects which times table is used. The  remaining inputs are the 5 bit variable multiplicand (values from 0 to 31).&amp;nbsp;  Again, the input width can be extended using the partial product techniques discussed  previously.&lt;/span&gt;&lt;br /&gt;
&lt;div align="center"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;  &lt;table border="1" bordercolordark="#666666" bordercolorlight="#CCCCCC" height="301"&gt;&lt;tbody&gt;
&lt;tr&gt;     &lt;td align="center" height="23" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" colspan="4" height="23" width="44%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;5 bit input * 67&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" colspan="4" height="23" width="45%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;5 bit input * 85&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;td align="center" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;/span&gt;&lt;/td&gt;     &lt;th align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;000&lt;/span&gt;&lt;/th&gt;     &lt;th align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;001&lt;/span&gt;&lt;/th&gt;     &lt;th align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;010&lt;/span&gt;&lt;/th&gt;     &lt;th align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;011&lt;/span&gt;&lt;/th&gt;     &lt;th align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;100&lt;/span&gt;&lt;/th&gt;     &lt;th align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;101&lt;/span&gt;&lt;/th&gt;     &lt;th align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;110&lt;/span&gt;&lt;/th&gt;     &lt;th align="center" bordercolor="#808080" height="24" width="12%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;111&lt;/span&gt;&lt;/th&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;000&lt;/span&gt;&lt;/th&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;536&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1072&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1608&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;680&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1360&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="12%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;2040&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center" height="26" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;001&lt;/span&gt;&lt;/th&gt;     &lt;td align="center" bordercolor="#808080" height="26" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;67&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="26" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;603&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="26" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1139&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="26" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1675&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="26" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;85&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="26" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;765&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="26" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1445&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="26" width="12%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;2125&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;010&lt;/span&gt;&lt;/th&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;134&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;670&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1206&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1742&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;170&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;850&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1530&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="12%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;2210&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;011&lt;/span&gt;&lt;/th&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;201&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;737&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1273&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1809&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;255&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;935&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1615&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="12%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;2295&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;100&lt;/span&gt;&lt;/th&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;268&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;804&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1340&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1876&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;340&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1020&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1700&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="12%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;2380&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;101&lt;/span&gt;&lt;/th&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;335&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;871&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1407&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1943&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;425&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1105&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1785&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="12%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;2465&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;110&lt;/span&gt;&lt;/th&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;402&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;938&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1474&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;2010&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;510&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1190&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1870&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="12%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;2550&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;     &lt;th align="center" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;111&lt;/span&gt;&lt;/th&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;469&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1005&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1541&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;2077&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;595&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1275&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="11%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;1955&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td align="center" bordercolor="#808080" height="24" width="12%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: grey;"&gt;2635&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt; &lt;/span&gt;&lt;/center&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;img height="10" src="http://www.andraka.com/_themes/acg6/blrule.gif" width="300" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Constant Multipliers from Adders&lt;/span&gt;&lt;/h2&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Adder for each '1' bit in constant&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Subtractor replaces strings of '1' bits  using Booth recoding&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Efficiency, size depend on value of  constant&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;KCM multipliers are usually more  efficient for arbitrary constant values&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;  &lt;/span&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;The shift-add multiply  algorithm essentially produces m 1xn partial products and sums them together with appropriate shifting.&amp;nbsp; The partial products  corresponding to '0' bits in the 1 bit input are zero, and therefore do not have to be  included in the sum. &amp;nbsp; If the number of '1' bits in a constant coefficient multiplier is  small, then a constant multiplier may be realized with wired shifts and a few adders  as shown in the 'times 10' example below.&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;div align="center"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;  &lt;table border="0"&gt;&lt;tbody&gt;
&lt;tr&gt;     &lt;td width="50%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;&lt;span style="font-family: Courier;"&gt;0&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0000000&lt;br /&gt;
1&amp;nbsp; &amp;nbsp;&amp;nbsp; 1011001 &lt;br /&gt;
0&amp;nbsp; &amp;nbsp; 0000000&amp;nbsp; &lt;br /&gt;
1&amp;nbsp; &lt;u&gt;+1011001 &lt;/u&gt;&amp;nbsp; &lt;u&gt;&lt;br /&gt;
&lt;/u&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1101111010&lt;/span&gt;&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td width="50%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;img alt="kadd.gif (2510 
bytes)" height="76" src="http://www.andraka.com/images/times10.gif" width="236" /&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt; &lt;/span&gt;&lt;/center&gt;&lt;/div&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;In cases where there are strings  of '1' bits in the constant, adders can be eliminated by using Booth recoding methods with subtractors.&amp;nbsp; The 'times 14 example  below illustrates this technique.&amp;nbsp; Note that 14 = 8+4+2 can be expressed as  14=16-2, which reduces the number of partial products.&lt;/span&gt;&lt;br /&gt;
&lt;div align="center"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;  &lt;table border="0"&gt;&lt;tbody&gt;
&lt;tr&gt;     &lt;td width="164"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;&lt;span style="font-family: Courier;"&gt;0&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 0000000&lt;br /&gt;
1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1011001&lt;br /&gt;
1&amp;nbsp; &amp;nbsp; 1011001&amp;nbsp; &lt;br /&gt;
1&amp;nbsp; &lt;u&gt;+1011001 &lt;/u&gt;&amp;nbsp; &lt;u&gt;&lt;br /&gt;
&lt;/u&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10011011110&lt;/span&gt;&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td width="170"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="font-family: Courier;"&gt;&lt;small&gt;0&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0000000&lt;br /&gt;
-1 &amp;nbsp; 1110100111 &lt;/small&gt;&lt;br /&gt;
&lt;small&gt;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0000000&lt;br /&gt;
0&amp;nbsp; &amp;nbsp; 0000000&amp;nbsp; &lt;br /&gt;
1&amp;nbsp; &lt;u&gt;+1011001 &lt;/u&gt;&amp;nbsp; &lt;u&gt;&lt;br /&gt;
&lt;/u&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10011011110&lt;/small&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;img alt="times14.gif (2678 
bytes)" height="86" src="http://www.andraka.com/images/times14.gif" width="235" /&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt; &lt;/span&gt;&lt;/center&gt;&lt;/div&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Combinations of partial products  can sometimes also be shifted and added in order to reduce the number of partials, although this may not necessarily reduce  the depth of a tree.&amp;nbsp; For example, the 'times 1/3' approximation (85/256=0.332) below  uses less adders than would be necessary if all the partial products were summed  directly. &amp;nbsp; Note that the shifts are in the opposite direction to obtain the  fractional partial products.&lt;/span&gt;&lt;br /&gt;
&lt;div align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;img alt="times85.gif (3917 
bytes)" height="87" src="http://www.andraka.com/images/times85.gif" width="395" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Clearly, the  complexity of a constant multiplier constructed from adders is dependent upon the constant.&amp;nbsp; For an arbitrary constant, the KCM  multiplier discussed above is a better choice.&amp;nbsp; For certain 'quick and dirty'  scaling applications, this multiplier works nicely.&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;img height="10" src="http://www.andraka.com/_themes/acg6/blrule.gif" width="300" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Wallace  Trees&lt;/span&gt;&lt;/h2&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Optimized column adder tree&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Combines all partial products into 2&amp;nbsp;  vectors (carry and sum)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Carry and sum outputs combined using a  conventional adder&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Delay is log(n)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Wallace tree multiplier uses Wallace  tree to combine 1 x n partial products&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Irregular routing&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="baseline" width="42"&gt;&lt;img alt="bullet" height="20" hspace="11" src="http://www.andraka.com/_themes/acg6/blbull1.gif" width="20" /&gt;&lt;/td&gt;&lt;td valign="top" width="100%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Not optimum in many FPGAs&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;  &lt;/span&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;A Wallace tree is an  implementation of an adder tree designed for minimum propagation delay.&amp;nbsp; Rather than completely adding the partial products in pairs like  the ripple adder tree does, the Wallace tree sums up all the bits of the same  weights in a merged tree.&amp;nbsp; Usually full adders are used, so that 3 equally weighted bits are  combined to produce two bits: one (the carry) with weight of n+1 and the other (the  sum) with weight n.&amp;nbsp; Each layer of the tree therefore&amp;nbsp; reduces the number of vectors by a  factor of 3:2 (Another popular scheme obtains a 4:2 reduction using a different  adder style that adds little delay in an ASIC implementation).&amp;nbsp; The tree has as many  layers as is necessary to reduce the number of vectors to two (a carry and a sum).&amp;nbsp; A  conventional adder is used to combine these to obtain the final product.&amp;nbsp; The  structure of the tree is shown below. The red numbers after each full adder in the  illustration indicate the bit weights of each signal.&amp;nbsp; For a multiplier, this tree is pruned  because the input partial products are shifted by varying amounts.&lt;/span&gt;&lt;br /&gt;
&lt;div align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;img alt="wallace2.gif (19118
 bytes)" height="678" src="http://www.andraka.com/images/wallace.gif" width="571" /&gt;&lt;br /&gt;
&lt;small&gt;&lt;i&gt;A section of an 8 input wallace tree. The wallace tree  combines the 8 partial product inputs to two output vectors corresponding to a sum and a  carry.&amp;nbsp; A conventional adder is used to combine these outputs to obtain the  complete product..&lt;/i&gt;&lt;/small&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;img align="left" alt="wallacecsa.gif 
(4825 bytes)" height="333" src="http://www.andraka.com/images/wallacecsa.gif" width="283" /&gt;If you trace the  bits in the tree (the tree in the illustration is color coded to help in this regard), you will find that the Wallace tree is a  tree of carry-save adders arranged as shown to the left.&amp;nbsp; A carry save adder consists of  full adders like the more familiar ripple adders, but the carry output from each bit  is brought out to form second result vector rather being than wired to the next most  significant bit.&amp;nbsp; The carry vector is 'saved' to be combined with the sum later, hence the  carry-save moniker.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;A Wallace tree  multiplier is one that uses a Wallace tree to combine the partial products from a field of 1x n multipliers (made of AND gates).&amp;nbsp;  It turns out that the number of Carry Save Adders in a Wallace tree multiplier is  exactly the same as used in the carry save version of the array multiplier.&amp;nbsp; The Wallace  tree rearranges the wiring however, so that the partial product bits with the longest  delays are wired closer to the root of the tree.&amp;nbsp; This changes the delay characteristic  from o(n+n) to o(n+log(n)) at no gate cost. Unfortunately the nice regular  routing of the array multiplier is also replaced with a rats-nest.&lt;/span&gt;&lt;/div&gt;&lt;h3&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: red;"&gt;&lt;b&gt;&lt;i&gt;A  Wallace tree by itself offers no performance advantage over a ripple adder tree&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;To the casual observer, it may  appear the propagation delay though a ripple adder tree is the carry propagation multiplied by the number of levels or  o(n*log(n)).&amp;nbsp; In fact, the ripple adder tree delay is really only o(n + log(n)) because the  delays through the adder's carry chains overlap.&amp;nbsp; This becomes obvious if you consider that  the value of a bit can only affect bits of the same or higher significance further  down the tree. &amp;nbsp; The worst case delay is then from the LSB input to the MSB output (and  disregarding routing delays is the same no matter which path is taken).&amp;nbsp; The depth of  the ripple tree is log(n), which is the about same as the depth of the Wallace  tree. This means is that the ripple carry adder tree's delay characteristic is similar to  that of a Wallace tree followed by a ripple adder!&amp;nbsp; If an adder with a faster carry tree  scheme is used to sum the Wallace tree outputs, the result is faster than a ripple  adder tree.&amp;nbsp; The fast carry tree schemes use more gates than the equivalent ripple carry  structure, so the Wallace tree normally winds up being faster than a ripple adder tree,  and less logic than an adder tree constructed of fast carry tree adders.&amp;nbsp; An ASIC  implementation may also benefit from some 'go faster' tricks in carry save adders, so a Wallace  tree combined with a fast adder can offer a significant advantage there.&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;span style="color: red;"&gt;&lt;b&gt;&lt;i&gt;A  Wallace tree is often slower than a ripple adder tree in an FPGA &lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Many FPGAs have a highly  optimized ripple carry chain connection.&amp;nbsp; Regular logic connections are several times slower than the optimized carry chain,  making it nearly impossible to improve on the performance of the ripple carry adders for  reasonable data widths (at least 16 bits).&amp;nbsp; Even in FPGAs without optimized carry  chains, the delays caused by the complex routing can overshadow any gains attributed to the  Wallace tree structure.&amp;nbsp; For this reason, Wallace trees do not provide any advantage  over ripple adder trees in many FPGAs. In fact due to the irregular routing, they  may actually be slower and are certainly more difficult to route.&lt;/span&gt;&lt;br /&gt;
&lt;div align="center"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;img height="10" src="http://www.andraka.com/_themes/acg6/blrule.gif" width="300" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Booth  Recoding&lt;/span&gt;&lt;/h2&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;Booth recoding is a method of  reducing the number of partial products to be summed. &amp;nbsp; Booth observed that when strings of '1' bits occur in the multiplicand  the number of partial products can be reduced by using subtraction.&amp;nbsp; For example  the multiplication of 89 by 15 shown below has four 1xn partial products  that must be summed. &amp;nbsp; This is equivalent to the subtraction shown in the right panel.&lt;/span&gt;&lt;br /&gt;
&lt;div align="center"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;  &lt;table border="1" bordercolordark="#666666" bordercolorlight="#CCCCCC"&gt;&lt;tbody&gt;
&lt;tr&gt;     &lt;td width="50%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;&lt;span style="font-family: Courier;"&gt;1&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; 1011001     &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
1&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 1011001&lt;br /&gt;
1&amp;nbsp; &amp;nbsp;&amp;nbsp; 1011001 &lt;br /&gt;
1&amp;nbsp; &amp;nbsp; 1011001&amp;nbsp; &lt;br /&gt;
0&amp;nbsp; &lt;u&gt;+0000000&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/u&gt;&amp;nbsp; &lt;u&gt;&lt;br /&gt;
&lt;/u&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10100110111&lt;/span&gt;&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;     &lt;td width="50%"&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt;&lt;small&gt;&lt;span style="font-family: Courier;"&gt;1&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;-1011001&lt;br /&gt;
1&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0000000&lt;br /&gt;
1&amp;nbsp; &amp;nbsp;&amp;nbsp; 0000000 &lt;br /&gt;
1&amp;nbsp; &amp;nbsp; 0000000&amp;nbsp; &lt;br /&gt;
0&amp;nbsp; &lt;u&gt;+1011001&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/u&gt;&amp;nbsp; &lt;u&gt;&lt;br /&gt;
&lt;/u&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10100110111&lt;/span&gt;&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial,Arial,Helvetica;"&gt; &lt;/span&gt;&lt;/center&gt;&lt;/div&gt;&lt;br /&gt;
&lt;script type="text/javascript"&gt;
&lt;!--
google_ad_client = "pub-6422839594307580";
/* 468x60, created 3/25/10 */
google_ad_slot = "9308692918";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt; &lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>Cheap Ultrasonic Range Finder | Microcontroller Project</title><link>http://ieeebooks.blogspot.com/2011/05/cheap-ultrasonic-range-finder.html</link><category>Cheap Ultrasonic Range Finder</category><pubDate>Sun, 22 May 2011 13:14:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-6147764145064412553</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;
&lt;div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.coolcomponents.co.uk/catalog/images/MainMaxSonar-EZ1.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="150" src="http://www.coolcomponents.co.uk/catalog/images/MainMaxSonar-EZ1.jpg" width="150" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="intro"&gt;Do you need to add a distance sensor to your embedded project ? Build this simple ultrasonic range finder&amp;nbsp;!&lt;/span&gt;&lt;br /&gt;
&lt;span class="intro"&gt;This quick &amp;amp; dirty PIC ultrasonic range  finder&amp;nbsp;will find a place in numerous projects : presence detector,  robotics, car parking, distance measurement...&lt;/span&gt;&lt;br /&gt;
&lt;span class="intro"&gt;With a few cheap components and less than 200  bytes of code, this sensor will work from 30 to 200 cm, around 1 cm  accuracy, with underflow and overflow indication.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #cc0000; font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span class="titre1"&gt;How does it work&amp;nbsp;&amp;amp; Circuit schematic&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;Everybody knows the speed of the sound in the dry air is around 340  m/s. Send a short ultrasonic pulse at 40 Khz in the air, and try to  listen to the echo. Of course you won't hear anything, but with an  ultrasonic sensor the back pulse can be detected. If you know the time  of the forth &amp;amp; back travel of the ultrasonic wave, you know the  distance, divide the distance by two and you know the range from the  ultrasonic sensor to the first obstacle in front of it.&lt;br /&gt;
Here we use an ultrasonic piezzo transmitter with its receiver, they are very efficient, easy to find and quite cheap...................................................&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
First, we have to send the pulse : it is easy to get a 40 Khz pulse  from a PIC PWM output. You can drive an ultrasonic transmitter directly  from the PIC output, but the sense range will not exceed 50 cm. Using a  transistor and a resonator circuit, the ultrasonic transmitter will get  around 20 volts and the sense range will be extended up to 200 cm.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.micro-examples.com/pics/090-ULTRASONIC-RANGER-schematic.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img align="baseline" alt="PIC ultrasonic range finder" border="0" height="551" hspace="2" src="http://www.micro-examples.com/pics/090-ULTRASONIC-RANGER-schematic.png" style="cursor: move; height: 274px; width: 502px;" vspace="2" width="502" /&gt;&lt;/a&gt;&lt;/div&gt;Second we have to sense the echo : the piezzo receiver can provide a  few dozens of millivolt, this will be enough for a PIC ADC with 4 mV  resolution without extra hardware.&lt;br /&gt;
&lt;br /&gt;
&lt;table border="0" cellpadding="2" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;div align="left"&gt;C1 is a decoupling capacitor&lt;/div&gt;&lt;div align="left"&gt;The PWM pulse from the RC2 pin of the PIC drives the T1 transistor base through R1 resistor&lt;/div&gt;&lt;div align="left"&gt;A  330 µH inductor is added in parallel to the piezzo  ultrasonic  transceiver, to form a LC resonnator, the D1 diode protects  T1 from  reverse voltage.&lt;/div&gt;&lt;div align="left"&gt;The ultrasonic receiver  is directly connected to the RA1  pin of the PIC (ADC channel number 1),  with R3 in parallel as impedance  adaptator.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;table border="0" cellpadding="2" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;&lt;a href="https://sites.google.com/site/engrworld/cheap-ultrasonic-range-finder" target="_blank"&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt;&lt;b&gt;FOR COMPLETE SOURCE CODE CLICK HERE&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;&lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;table border="0" cellpadding="2" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;&lt;img align="baseline" alt="PIC ultrasonic ranger, component side" border="0" height="238" hspace="3" src="http://www.micro-examples.com/pics/090-ULTRASONIC-RANGER-ranger2.JPG" style="height: 200px; width: 200px;" vspace="3" width="320" /&gt;&lt;/td&gt; &lt;td style="text-align: justify;"&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;span class="titre2"&gt;The prototype board&lt;/span&gt; &amp;lt;- Component side Solder side -&amp;gt; Take care to align as best as possibe the transmitter with the receiver......&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;img align="baseline" alt="PIC ultrasonic range finder, solder side" border="0" height="243" hspace="3" src="http://www.micro-examples.com/pics/090-ULTRASONIC-RANGER-ranger3.JPG" style="height: 200px; width: 200px;" vspace="3" width="320" /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;table border="0" cellpadding="2" cellspacing="1"&gt;&lt;/table&gt;&lt;div style="color: #38761d; font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: center;"&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span class="titre1"&gt; &amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span class="titre1"&gt;INSTRUCTIONS FOR USE&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
I tested it with an EasyPic4 development board :&lt;br /&gt;
&lt;img align="left" alt="ultrasonic range finder connected to Easypic4 board" border="0" height="708" hspace="3" src="http://www.micro-examples.com/pics/090-ULTRASONIC-RANGER-ranger4.JPG" style="height: 355px; width: 470px;" vspace="3" width="470" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of course, this ranger is very basic and have a few&amp;nbsp;drawbacks :&lt;br /&gt;
A little shock to the piezzo receiver cell could lead to&amp;nbsp;a wrong measurement,&lt;br /&gt;
Since ultrasonic pulse is not coded, any other ultrasonic source will put the mess&amp;nbsp;:&lt;br /&gt;
&lt;div align="center"&gt;&lt;span class="important"&gt;=&amp;gt; Unwanted underflow or overflow conditions may happen&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;This is the price of the very simple design of the ranger.&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is what you should see on your scope, if you probe to the ultrasonic receiver pins :&lt;br /&gt;
&lt;div align="center"&gt;&lt;img align="baseline" alt="ultrasonic range finder scope screen capture" border="0" height="305" hspace="5" src="http://www.micro-examples.com/pics/090-ULTRASONIC-RANGER-ultrasonic_range_finder.JPG" vspace="5" width="400" /&gt;&lt;/div&gt;Horizontal : 1 ms/div&lt;br /&gt;
Vertical : 5 mV/div&lt;br /&gt;
The mechanical echo is removed by a software delay.&lt;br /&gt;
The reflected  wave is around 40 mV peak to peak, it comes around 9.5 ms after the  ultrasonic burst, if we say that sound velocity is 340 m/s it means that  the object distance was&amp;nbsp;around 0.0095 / 2 * 340 = 1.615 meters.&lt;br /&gt;
Actually, it was the ceiling, it was 172 cm above the circuit, the LCD wrote 170 cm.&lt;br /&gt;
I hope this basic project will make a good start for yours !&lt;br /&gt;
&lt;table border="0" cellpadding="2" cellspacing="1"&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table border="0" cellpadding="2" cellspacing="1"&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>Microcontroller Project | Memo Game Sound</title><link>http://ieeebooks.blogspot.com/2011/05/microcontroller-project-memo-game-sound.html</link><category>PIC16F84A MemoSound Game</category><pubDate>Mon, 9 May 2011 14:07:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-2656667896094788228</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="intro"&gt;This example will show you how to build a PIC based simple memorization game system. &lt;/span&gt; &lt;span class="intro"&gt;With only a PIC16F84A and a few cheap components,  you will train your brain first to understand a few basics about PICs,  second to play&amp;nbsp;to a not that easy memory game !&lt;/span&gt;&lt;br /&gt;
&lt;span class="intro"&gt;PIC Sleep Mode and&amp;nbsp;Wake-Up from PORTB Change are the keys of the software.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #e69138;"&gt;&lt;b&gt;&lt;span class="titre1"&gt;Game rules&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;You will have to memorize a melody, made of up to 62 steps.&lt;br /&gt;
A step is one of the four tones available in the game system.&lt;br /&gt;
In  order to help you, each tone is associated to a color LED (yellow,  green, orange, red) which lights each time the tone is played.&lt;br /&gt;
The  game system plays the melody, then you have to repeat it correctly by  pressing the button of the tone's LED. At the beginning, the melody has  only one step.&lt;br /&gt;
If you fail, an error melody is played, the melody is played again and you can try again to repeat it.&lt;br /&gt;
If you succeed, a new tone is added to the melody.&lt;br /&gt;
The longest melody is 62 step long, will you be able to learn it by heart ?&lt;br /&gt;
If you get bored with one melody, press the RB4 and RB5 buttons at the same time, the game system will create a new melody.&lt;br /&gt;
If you want to modify the melody rythme, press the RB6 and RB7  buttons at the same time, and select a new rythme by pressing a key&amp;nbsp;when  the LED is on :..................................&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
RA0 : very fast&lt;br /&gt;
RA1 : fast&lt;br /&gt;
RA2 : slow&lt;br /&gt;
RA3 : very slow (default)&lt;br /&gt;
&lt;span class="titre1"&gt;Circuit Schematic&lt;/span&gt;&lt;br /&gt;
The game is battery operated, and&amp;nbsp;the circuit is powered with a  LP2950CZ-5.0 regulator with some decoupling capacitors. There is no main  switch, because the circuit is in sleep mode when nothing happens. A  standard 9V battery should work for weeks.&lt;br /&gt;
Four switches are  connected to the PORTB high nibble to allow wake-up on PORT change of  the PIC when the player&amp;nbsp;press a button. There is no pull-up resistors,  because internal weak pull-up of the PIC is used.&lt;br /&gt;
The RB0 pin of the PIC drives directly a little piezzo speaker.&lt;br /&gt;
The PORTA low nibble drives fours LEDs, through current limitation resistors.&lt;br /&gt;
A  cheap 8Mhz crystal is used to clock the PIC, you could add the two 15pf  capacitors from crystal to ground to follow Microchip recommendation,  but the PIC works very well without, just do it if you have a lazy PIC  that does not start oscillator.&lt;br /&gt;
&lt;span class="titre1"&gt;PIC C Source Code&lt;/span&gt;&lt;br /&gt;
This project is made for a PIC16F84A MCU, but could be&amp;nbsp;changed to any other PIC MCU with only a very few adjustments. &lt;br /&gt;
As this project fits within the 2k demo limit of the mikroC compiler, you can use it for free, &lt;a href="https://sites.google.com/site/engrworld/pic16f84a-memosound-game-source-code" target="_blank"&gt;&lt;b&gt;download it from.&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.micro-examples.com/pics/092-MEMOSOUND-memosoundcircuit.png" target="_new"&gt;&lt;img align="left" alt="PIC16F84A Memsound circuit schematic" border="0" height="250" hspace="5" src="http://www.micro-examples.com/pics/092-MEMOSOUND-memosoundcircuit.png" vspace="5" width="640" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EEPROM Definition :&lt;br /&gt;
This project uses the internal PIC EEPROM, you have to add this EEPROM definition to your project :&lt;br /&gt;
&lt;br /&gt;
&lt;table border="1" cellpadding="2" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;0x00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF &lt;br /&gt;
0x10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF &lt;br /&gt;
0x20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF &lt;br /&gt;
0x30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 04 &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
You can download the .HEX file for PIC16F84A 8 Mhz crystal here :  &lt;br /&gt;
&lt;a href="http://www.micro-examples.com/pics/092-MEMOSOUND-memosound_pic16F84A_8Mhz.hex" target="_blank"&gt;DOWNLOAD.Hex&lt;/a&gt;  &lt;br /&gt;
&amp;nbsp;  &lt;br /&gt;
&lt;span class="titre1"&gt;Prototype&lt;/span&gt;&lt;br /&gt;
Here is the picture of the prototype I built with VeroBoard :&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.micro-examples.com/pics/092-MEMOSOUND-memosound2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="481" src="http://www.micro-examples.com/pics/092-MEMOSOUND-memosound2.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>LED Programming Status | Microcontroller Project</title><link>http://ieeebooks.blogspot.com/2011/05/led-programming-status-microcontroller.html</link><category>LED Programming Status | Microcontroller Project</category><pubDate>Thu, 5 May 2011 22:19:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-5105383037218850341</guid><description>&lt;b&gt;&lt;span class="intro"&gt;Follow this steps, it will take 10 minutes of  your time, and after this you will not need to watch your screen anymore  when you flash your program into your MCU : just wait for the LED to  turn off.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span class="titre1"&gt;What do you need ?&lt;/span&gt;&lt;br /&gt;
&lt;span class="normal"&gt;Here are the parts you need : a resistor and a  LED.&lt;img align="right" alt="EP3 programming 
status LED " border="0" height="173" hspace="5" src="http://www.micro-examples.com/pics/093-EP3-PROG-LED-parts.jpg" style="height: 173px; width: 321px;" vspace="5" width="321" /&gt;&lt;/span&gt;&lt;br /&gt;
I&amp;nbsp;used a 3mm red LED but any will do the job.&lt;br /&gt;
The LED will be powered with +5V, select the correct resistor value  for your LED (470 ohms for mine) to limit the current.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span class="titre1"&gt;Where to place it ?&lt;/span&gt;&lt;br /&gt;
The perfect place would be between USB LINK LED and POWER LED, but  there is a track in between, so that I had to shift it up a little bit.&lt;br /&gt;
After drilling a 3mm hole, it looked like this :&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table border="0" cellpadding="5" cellspacing="5"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;&lt;div align="center"&gt;Component side&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div align="center"&gt;Solder side&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;div align="center"&gt;&lt;img alt="component side" border="0" height="149" hspace="5" src="http://www.micro-examples.com/pics/093-EP3-PROG-LED-hole1.jpg" vspace="5" width="200" /&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div align="center"&gt;&lt;img alt="solder side" border="0" height="151" hspace="5" src="http://www.micro-examples.com/pics/093-EP3-PROG-LED-hole2.jpg" vspace="5" width="200" /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span class="titre1"&gt;How to connect it ?&lt;/span&gt;&lt;br /&gt;
The LED is powered directly by the USB PIC programmer's output that  drives the 4053 analog switch, so that the LED will light when the  user's PIC is connected to the programming circuit, instead of the  development board circuit.&lt;br /&gt;
&lt;i&gt;Please do this very carefully because  any damage to the programmer's circuitry would mean the end of your  board, so be sure of what you do, and do it under your own  responsibility.&lt;/i&gt;&lt;br /&gt;
&lt;img align="right" alt="led in place" border="0" height="482" hspace="5" src="http://www.micro-examples.com/pics/093-EP3-PROG-LED-led1.jpg" vspace="5" width="640" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1/ Insert the LED through the hole, with the cathode pin to the POWER  LED side.&lt;br /&gt;
This should look like this :&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&lt;img align="left" alt="solder side" border="0" height="422" hspace="5" src="http://www.micro-examples.com/pics/093-EP3-PROG-LED-led2.jpg" vspace="5" width="640" /&gt;&lt;br /&gt;
&lt;br /&gt;
2/ Glue to LED to the board&lt;br /&gt;
3/ Solder the LED cathode (left pin on the picture) to the left pin  of the POWER LED : it is connected to the ground of the board&lt;br /&gt;
3/ Solder&amp;nbsp;the LED anode (right pin on the picture) to the resistor&lt;br /&gt;
4/ Solder the other pin of the resistor to the pin 9 of the 4053  analog switch IC : it is the switch command line&lt;br /&gt;
5/ Verify that both LED and resistor are firmly in place, and ensure  that there is no short circuit with other tracks&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;span class="titre1"&gt;Test it now !&lt;/span&gt;&lt;br /&gt;
Plug the board :&amp;nbsp;everything should be as usual.&lt;br /&gt;
Now launch PicFlash2 : the LED lights during programming. Great, it  works !&lt;br /&gt;
&lt;script type="text/javascript"&gt;
&lt;!--
google_ad_client = "pub-6422839594307580";
/* 468x60, created 3/25/10 */
google_ad_slot = "9308692918";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt; &lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>On-board Ethernet Adapter Microcontroller Project</title><link>http://ieeebooks.blogspot.com/2011/05/on-board-ethernet-adapter.html</link><category>EasyPic2 with on-board Ethernet Adapter</category><pubDate>Sun, 1 May 2011 18:51:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-5491148057813898276</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div align="center"&gt;&lt;b&gt;&lt;span class="titre3"&gt;Turn your EasyPic2 development board into an  ENC28J60 Ethernet Toolkit&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="titre3"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span class="intro"&gt;You will be surprised to see how simple it  is !&lt;/span&gt; &lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="center"&gt;&lt;span class="normal"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="titre1"&gt;The  EasyPic2 : A good candidate for this enhancement&lt;/span&gt;&lt;/div&gt;&lt;span class="normal"&gt;&lt;img align="left" alt="EasyPic 2 development board" border="0" height="536" hspace="5" src="http://www.micro-examples.com/pics/94-EP2-ETHERNET-ep2.jpg" style="height: 268px; width: 357px;" vspace="5" width="357" /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="normal"&gt;This is good old EasyPic2 development board from  &lt;/span&gt;&lt;span class="normal"&gt;MikroElektronika&lt;/span&gt;&lt;span class="normal"&gt;. &lt;/span&gt;&lt;span class="normal"&gt;But it is still healthy and does  a lot of good job. For those who don't know this board, here is a little review  of its main features&amp;nbsp;:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt; &lt;div align="left"&gt;&lt;span class="normal"&gt;On-board USB fast programmer &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt; &lt;div align="left"&gt;&lt;span class="normal"&gt;DIP8 to DIP40 PIC sockets &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt; &lt;div align="left"&gt;&lt;span class="normal"&gt;32 LEDs and 32 buttons,&amp;nbsp;connected to I/O  pins &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt; &lt;div align="left"&gt;&lt;span class="normal"&gt;4 digits 7 segments LED display &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt; &lt;div align="left"&gt;&lt;span class="normal"&gt;Socket for 2x16 LCD text display  &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt; &lt;div align="left"&gt;&lt;span class="normal"&gt;2 trimmers for A/D conversion &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt; &lt;div align="left"&gt;&lt;span class="normal"&gt;5 connectors, directly connected to I/O pins  with pull-up/pull-down resistor arrays &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt; &lt;div align="left"&gt;&lt;span class="normal"&gt;RS232 adaptor and  connector&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span class="normal"&gt;What do we see bottom right ? Let's have a look  closer..&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="normal"&gt;&amp;nbsp;&lt;img align="right" alt="EasyPic prototype area" border="0" height="536" hspace="5" src="http://www.micro-examples.com/pics/94-EP2-ETHERNET-ep2prototypearea.jpg" style="height: 269px; width: 355px;" vspace="5" width="355" /&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;div align="right"&gt;&lt;span class="normal"&gt;There was space left on the board, so  MikroElektronika had the good idea to make a prototype area for users.&lt;br /&gt;
210  plated-trough holes, both sides solder mask : until this day I never used this  area.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="normal"&gt;&amp;nbsp;&lt;img align="left" alt="EasyPic prototype area (reverse side)" border="0" height="536" hspace="5" src="http://www.micro-examples.com/pics/94-EP2-ETHERNET-ep2prototypearea2.jpg" style="height: 268px; width: 356px;" vspace="5" width="356" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="normal"&gt;On the back side, we see that the upper row is  connected to the +5V power line, and the lower row to the ground  line.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;
&lt;span class="normal"&gt;Good ! Nature hates empty spaces isn't it ?  Me too !&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span class="titre1"&gt;What do we need ?&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;img align="left" alt="Components" border="0" height="536" hspace="5" src="http://www.micro-examples.com/pics/94-EP2-ETHERNET-components.jpg" style="height: 268px; width: 355px;" vspace="5" width="355" /&gt;Almost all that you need is on this picture. The heart of the  circuit is the ENC28J60 Microchip Serial Ethernet Adapter, it is now widely  available, and its DIP28 package is very convenient for prototyping.&lt;br /&gt;
Other  important part is the 3.3V voltage regulator (transistor-like 3-pins plastic  case on the picture) : the ENC28J60 can't operate directly with the +5V provided  by the board.&lt;br /&gt;
The 25 Mhz crystal for ENC28J60 clock is easy to find&amp;nbsp;at  your usual supplier.&lt;br /&gt;
You will have also to find a magnetic for ethernet  network (black rectangular box left to the RJ-45 socket), this one comes from an  old ethernet hub board, as well as other parts seen on this picture. There are  now RJ-45 sockets with integrated LEDs and magnetic, if you want to save more  space on your board.&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="left"&gt;And now, go shopping&amp;nbsp;:&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;table border="1" cellpadding="2" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;th&gt;Quantity&lt;/th&gt; &lt;th&gt;Part # or value&lt;/th&gt; &lt;th&gt;Type&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td align="right"&gt;1&lt;/td&gt; &lt;td&gt;ENC28J60 (Microchip)&lt;/td&gt; &lt;td&gt;Serial Ethernet Controller&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td align="right"&gt;1&lt;/td&gt; &lt;td&gt;LP2950CZ-3.3&lt;/td&gt; &lt;td&gt;+3.3V voltage regulator&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td align="right"&gt;1&lt;/td&gt; &lt;td&gt;25 MHz&lt;/td&gt; &lt;td&gt;crystal&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td align="right"&gt;1&lt;/td&gt; &lt;td&gt;Green&lt;/td&gt; &lt;td&gt;LED&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td align="right"&gt;1&lt;/td&gt; &lt;td&gt;Red&lt;/td&gt; &lt;td&gt;LED&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td align="right"&gt;1&lt;/td&gt; &lt;td&gt;10 µF 25V&lt;/td&gt; &lt;td&gt;capacitor&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td align="right"&gt;1&lt;/td&gt; &lt;td&gt;47 µF 25V&lt;/td&gt; &lt;td&gt;capacitor&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td align="right"&gt;2&lt;/td&gt; &lt;td&gt;10 nF&lt;/td&gt; &lt;td&gt;capacitor&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td align="right"&gt;2&lt;/td&gt; &lt;td&gt;15 pF&lt;/td&gt; &lt;td&gt;capacitor&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td align="right"&gt;1&lt;/td&gt; &lt;td&gt;100 nF&lt;/td&gt; &lt;td&gt;capacitor&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td align="right"&gt;1&lt;/td&gt; &lt;td&gt;1 nF 2KV&lt;/td&gt; &lt;td&gt;capacitor&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td align="right"&gt;4&lt;/td&gt; &lt;td&gt;50 Ohm 1%&lt;/td&gt; &lt;td&gt;precision resistor&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td align="right"&gt;1&lt;/td&gt; &lt;td&gt;2.7 K 1%&lt;/td&gt; &lt;td&gt;precision resistor&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td align="right"&gt;2&lt;/td&gt; &lt;td&gt;470 Ohm&lt;/td&gt; &lt;td&gt;resistor&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td align="right"&gt;1&lt;/td&gt; &lt;td&gt;FB2022&lt;/td&gt; &lt;td&gt;TX/RX magnetic filter&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td align="right"&gt;1&lt;/td&gt; &lt;td&gt;ferrite bead (value not critical)&lt;/td&gt; &lt;td&gt;inductor&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td align="right"&gt;1&lt;/td&gt; &lt;td&gt;DIP 28 pins&lt;/td&gt; &lt;td&gt;IC socket&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td align="right"&gt;1&lt;/td&gt; &lt;td&gt;&lt;div align="left"&gt;RJ45&lt;/div&gt;&lt;/td&gt; &lt;td&gt;female solderable socket&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td align="right"&gt;1&lt;/td&gt; &lt;td&gt;2x5 pins connector + 5 jumpers&lt;/td&gt; &lt;td&gt;used as switch&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div align="center" style="background-color: white; color: #cc0000;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span class="titre1"&gt;The circuit schematic&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;The circuit schematic comes from the datasheet of the ENC28J60 :&lt;br /&gt;
&lt;a href="http://ww1.microchip.com/downloads/en/DeviceDoc/39662a.pdf" target="_new"&gt;http://ww1.microchip.com/downloads/en/DeviceDoc/39662a.pdf&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://ww1.microchip.com/downloads/en/DeviceDoc/80257a.pdf" target="_new"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.micro-examples.com/pics/094-EP2-ETHERNET-schematic.png" target="_new"&gt;&lt;img align="left" alt="EasyPic Ethernet Adapter schematic" border="0" height="298" hspace="5" src="http://www.micro-examples.com/pics/094-EP2-ETHERNET-schematic.png" style="height: 150px; width: 312px;" vspace="5" width="1246" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As you can see, it is pretty simple : &lt;br /&gt;
The ENC controller is connected to  the network through a magnetic adapter.&lt;br /&gt;
It needs a 25 Mhz crystal for its  internal clock, resistors &amp;amp; capacitors for terminations, a 2.7K bias  resistor, and a&amp;nbsp;10 µF capacitor to stabilize its internal 2.5V power  supply.&lt;br /&gt;
The controller can directly drive two programmable LEDs through  current limitation resistors.&lt;br /&gt;
It is connected to the PIC through a  5&amp;nbsp;lines bus : reset line (RESET), chip select line (CS), SPI clock (CLK),  SPI data input (SI), SPI data output (S0).&lt;br /&gt;
There are also 2 control lines  that are not used in this exemple, but you can add them if you want, they are  the interrupt line (INT) and the wake up on lan line (WOL). They can be used to  trigger PIC interrupts, but in this example we operate using the polling method  and we don't need them.&lt;br /&gt;
The most frequently asked question about this controler is the voltage level  adaptation. The controller operates at 3.3V and the PIC on the board operates at  5.0V.&lt;br /&gt;
So, the question is : how to adapt ENC voltage levels to PIC voltage  level ?&lt;br /&gt;
&lt;br /&gt;
We must consider both sides :&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;PIC output voltage&amp;nbsp;for logical 1 is 5V&lt;/i&gt;&lt;/b&gt; :  does ENC accepts 5V on its inputs, whereas it is 3.3V powered ?&lt;br /&gt;
The answer is  yes, ENC inputs are 5V compliant, so that there is no risk for the controller to  apply 5V on its inputs, and they will correspond to logical  1.&lt;br /&gt;
&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;i&gt;ENC output voltage&amp;nbsp;for logical 1 is&amp;nbsp;3.3V&lt;/i&gt;&lt;/b&gt;  : will the inputs of the PIC turn high or low when 3.3V coming from the ENC  outputs&amp;nbsp;is applied ? &lt;br /&gt;
The answer is : it depends on the inputs of the  PIC. TTL inputs give logical 1 above 2.05V, and will not require voltage level  shifting. Schmitt trigger inputs give logical 1 above 3.5V, and will require  voltage level shifting.&lt;br /&gt;
In fact, we can consider that if we connect ENC outputs to PIC TTL inputs  only, the voltage level adapter is... a wire.&lt;br /&gt;
Most of PICs have TTL inputs  and integrated SPI on PORTC, so we will connect all ENC line to this port.&lt;br /&gt;
&lt;div align="center"&gt;&lt;span class="titre1"&gt;Assembly&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;img align="right" alt="Prototype area with ethernet circuit" border="0" height="536" hspace="5" src="http://www.micro-examples.com/pics/94-EP2-ETHERNET-ethernetcloseup2.jpg" style="height: 267px; width: 357px;" vspace="5" width="357" /&gt;&lt;br /&gt;
&lt;div align="right"&gt;After soldering, you should get something that looks like this  :&lt;/div&gt;&lt;div align="right"&gt;As you can see, I used a red/green bicolor LED instead of the two  LEDs.&lt;/div&gt;&lt;div align="right"&gt;The jumper socket is placed just in front of the five lines that  are connected to the PIC, so that removing the jumper isolates the ethernet  circuit from the PIC, and PORTC can be used for other purposes.&lt;/div&gt;&lt;div align="right"&gt;The 3.3V regulator is mounted on a tulip socket : I&amp;nbsp;have  only one for now, and it is shared with another test&amp;nbsp;board.&lt;/div&gt;&lt;div align="right"&gt;The 25 Mhz crystal is also mounted on a tulip socket, to save  place for the two 15 pF capacitors hidden behind.&lt;/div&gt;&lt;div align="right"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="right"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="right"&gt;&lt;img align="left" alt="Ethernet protoype area, back side" border="0" height="536" hspace="5" src="http://www.micro-examples.com/pics/94-EP2-ETHERNET-ep2aftercloseup2.jpg" style="height: 269px; width: 356px;" vspace="5" width="356" /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="left"&gt;I'm a little bit ashamed, but I show you the back side anyway.  Sorry for the mess ;-)&lt;/div&gt;Take care to respect the receive circuit polarity, because ENC is not able to  detect it correctly due to a silicon bug. That's why I used color wires. If you  connect it wrong, you may either have receive problem, or no receive at all.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;img align="right" alt="Bus connected to PORTC" border="0" height="536" hspace="5" src="http://www.micro-examples.com/pics/94-EP2-ETHERNET-ep2portsolder.jpg" style="height: 269px; width: 357px;" vspace="5" width="357" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align="right"&gt;The bus is connected to the PORTC pins of the DIP28 socket.&lt;/div&gt;&lt;div align="right"&gt;Note that my cable deserves to be shortened...&lt;/div&gt;&lt;div align="right"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="right"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="right"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="right"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="right"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="right"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="left"&gt;Finally, this is what it looks like :&lt;/div&gt;&lt;table border="0" cellpadding="5" cellspacing="5"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;Front side&lt;/td&gt; &lt;td&gt;Back side&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;img alt="EasyPic with Ethernet front side" border="0" height="150" hspace="5" src="http://www.micro-examples.com/pics/94-EP2-ETHERNET-ep2after.jpg" vspace="5" width="200" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="EasyPic Ethernet Back Side" border="0" height="150" hspace="5" src="http://www.micro-examples.com/pics/94-EP2-ETHERNET-ep2after2.jpg" vspace="5" width="200" /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&amp;nbsp;And now...&lt;br /&gt;
&lt;div align="center" style="color: #cc0000;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span class="titre1"&gt;Testing the Ethernet board with a source  code example&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;It's time ! &lt;br /&gt;
First, check and double-check all connections.&lt;br /&gt;
Don't plug the ENC28J60 in  its socket, then power the board and verify the 3.3V power supply on each pin of  the ENC.&lt;br /&gt;
Then turn the board off, put a 40 pins PIC as a PIC16F877A or a PIC18F452 in  its socket, and clock it at its maximum speed.&lt;br /&gt;
Plug the ENC28J60 in its  socket, and set the fiver jumpers to enable bus line between PIC and ENC.&lt;br /&gt;
&lt;div style="background-color: white; color: #cc0000; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://sites.google.com/site/engrworld/testing-the-ethernet-board-with-a-source-code-example" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://www.cleanmypcs.com/wp-content/uploads/2010/07/246x82_ANIMATED_BUTTON_download.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="background-color: white; color: #cc0000; text-align: left;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; font-size: x-large;"&gt;Get complete code&lt;/span&gt;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="titre3"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;script type="text/javascript"&gt;
&lt;!--
google_ad_client = "pub-6422839594307580";
/* 468x60, created 3/25/10 */
google_ad_slot = "9308692918";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt; &lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;
&lt;/script&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><author>aslam.obf@gmail.com (Unknown)</author><enclosure length="1715036" type="application/pdf" url="http://ww1.microchip.com/downloads/en/DeviceDoc/39662a.pdf"/><itunes:explicit>clean</itunes:explicit><itunes:subtitle>Turn your EasyPic2 development board into an ENC28J60 Ethernet Toolkit&amp;nbsp;You will be surprised to see how simple it is ! &amp;nbsp;&amp;nbsp;The EasyPic2 : A good candidate for this enhancement This is good old EasyPic2 development board from MikroElektronika. But it is still healthy and does a lot of good job. For those who don't know this board, here is a little review of its main features&amp;nbsp;: On-board USB fast programmer DIP8 to DIP40 PIC sockets 32 LEDs and 32 buttons,&amp;nbsp;connected to I/O pins 4 digits 7 segments LED display Socket for 2x16 LCD text display 2 trimmers for A/D conversion 5 connectors, directly connected to I/O pins with pull-up/pull-down resistor arrays RS232 adaptor and connector What do we see bottom right ? Let's have a look closer.. &amp;nbsp;&amp;nbsp; There was space left on the board, so MikroElektronika had the good idea to make a prototype area for users. 210 plated-trough holes, both sides solder mask : until this day I never used this area.&amp;nbsp; On the back side, we see that the upper row is connected to the +5V power line, and the lower row to the ground line. Good ! Nature hates empty spaces isn't it ? Me too !What do we need ?Almost all that you need is on this picture. The heart of the circuit is the ENC28J60 Microchip Serial Ethernet Adapter, it is now widely available, and its DIP28 package is very convenient for prototyping. Other important part is the 3.3V voltage regulator (transistor-like 3-pins plastic case on the picture) : the ENC28J60 can't operate directly with the +5V provided by the board. The 25 Mhz crystal for ENC28J60 clock is easy to find&amp;nbsp;at your usual supplier. You will have also to find a magnetic for ethernet network (black rectangular box left to the RJ-45 socket), this one comes from an old ethernet hub board, as well as other parts seen on this picture. There are now RJ-45 sockets with integrated LEDs and magnetic, if you want to save more space on your board. And now, go shopping&amp;nbsp;: Quantity Part # or value Type 1 ENC28J60 (Microchip) Serial Ethernet Controller 1 LP2950CZ-3.3 +3.3V voltage regulator 1 25 MHz crystal 1 Green LED 1 Red LED 1 10 µF 25V capacitor 1 47 µF 25V capacitor 2 10 nF capacitor 2 15 pF capacitor 1 100 nF capacitor 1 1 nF 2KV capacitor 4 50 Ohm 1% precision resistor 1 2.7 K 1% precision resistor 2 470 Ohm resistor 1 FB2022 TX/RX magnetic filter 1 ferrite bead (value not critical) inductor 1 DIP 28 pins IC socket 1 RJ45 female solderable socket 1 2x5 pins connector + 5 jumpers used as switch The circuit schematicThe circuit schematic comes from the datasheet of the ENC28J60 : http://ww1.microchip.com/downloads/en/DeviceDoc/39662a.pdf As you can see, it is pretty simple : The ENC controller is connected to the network through a magnetic adapter. It needs a 25 Mhz crystal for its internal clock, resistors &amp;amp; capacitors for terminations, a 2.7K bias resistor, and a&amp;nbsp;10 µF capacitor to stabilize its internal 2.5V power supply. The controller can directly drive two programmable LEDs through current limitation resistors. It is connected to the PIC through a 5&amp;nbsp;lines bus : reset line (RESET), chip select line (CS), SPI clock (CLK), SPI data input (SI), SPI data output (S0). There are also 2 control lines that are not used in this exemple, but you can add them if you want, they are the interrupt line (INT) and the wake up on lan line (WOL). They can be used to trigger PIC interrupts, but in this example we operate using the polling method and we don't need them. The most frequently asked question about this controler is the voltage level adaptation. The controller operates at 3.3V and the PIC on the board operates at 5.0V. So, the question is : how to adapt ENC voltage levels to PIC voltage level ? We must consider both sides : PIC output voltage&amp;nbsp;for logical 1 is 5V : does ENC accepts 5V on its inputs, whereas it is 3.3V powered ? The answer is yes, ENC inputs are 5V compliant, so that there is no risk for the controller to apply 5V on its inputs, and they will correspond to logical 1. ENC output voltage&amp;nbsp;for logical 1 is&amp;nbsp;3.3V : will the inputs of the PIC turn high or low when 3.3V coming from the ENC outputs&amp;nbsp;is applied ? The answer is : it depends on the inputs of the PIC. TTL inputs give logical 1 above 2.05V, and will not require voltage level shifting. Schmitt trigger inputs give logical 1 above 3.5V, and will require voltage level shifting. In fact, we can consider that if we connect ENC outputs to PIC TTL inputs only, the voltage level adapter is... a wire. Most of PICs have TTL inputs and integrated SPI on PORTC, so we will connect all ENC line to this port. Assembly After soldering, you should get something that looks like this :As you can see, I used a red/green bicolor LED instead of the two LEDs.The jumper socket is placed just in front of the five lines that are connected to the PIC, so that removing the jumper isolates the ethernet circuit from the PIC, and PORTC can be used for other purposes.The 3.3V regulator is mounted on a tulip socket : I&amp;nbsp;have only one for now, and it is shared with another test&amp;nbsp;board.The 25 Mhz crystal is also mounted on a tulip socket, to save place for the two 15 pF capacitors hidden behind. I'm a little bit ashamed, but I show you the back side anyway. Sorry for the mess ;-)Take care to respect the receive circuit polarity, because ENC is not able to detect it correctly due to a silicon bug. That's why I used color wires. If you connect it wrong, you may either have receive problem, or no receive at all. The bus is connected to the PORTC pins of the DIP28 socket.Note that my cable deserves to be shortened... Finally, this is what it looks like : Front side Back side &amp;nbsp;And now... Testing the Ethernet board with a source code exampleIt's time ! First, check and double-check all connections. Don't plug the ENC28J60 in its socket, then power the board and verify the 3.3V power supply on each pin of the ENC. Then turn the board off, put a 40 pins PIC as a PIC16F877A or a PIC18F452 in its socket, and clock it at its maximum speed. Plug the ENC28J60 in its socket, and set the fiver jumpers to enable bus line between PIC and ENC. Get complete code&amp;nbsp;&amp;nbsp;</itunes:subtitle><itunes:author>aslam.obf@gmail.com (Unknown)</itunes:author><itunes:summary>Turn your EasyPic2 development board into an ENC28J60 Ethernet Toolkit&amp;nbsp;You will be surprised to see how simple it is ! &amp;nbsp;&amp;nbsp;The EasyPic2 : A good candidate for this enhancement This is good old EasyPic2 development board from MikroElektronika. But it is still healthy and does a lot of good job. For those who don't know this board, here is a little review of its main features&amp;nbsp;: On-board USB fast programmer DIP8 to DIP40 PIC sockets 32 LEDs and 32 buttons,&amp;nbsp;connected to I/O pins 4 digits 7 segments LED display Socket for 2x16 LCD text display 2 trimmers for A/D conversion 5 connectors, directly connected to I/O pins with pull-up/pull-down resistor arrays RS232 adaptor and connector What do we see bottom right ? Let's have a look closer.. &amp;nbsp;&amp;nbsp; There was space left on the board, so MikroElektronika had the good idea to make a prototype area for users. 210 plated-trough holes, both sides solder mask : until this day I never used this area.&amp;nbsp; On the back side, we see that the upper row is connected to the +5V power line, and the lower row to the ground line. Good ! Nature hates empty spaces isn't it ? Me too !What do we need ?Almost all that you need is on this picture. The heart of the circuit is the ENC28J60 Microchip Serial Ethernet Adapter, it is now widely available, and its DIP28 package is very convenient for prototyping. Other important part is the 3.3V voltage regulator (transistor-like 3-pins plastic case on the picture) : the ENC28J60 can't operate directly with the +5V provided by the board. The 25 Mhz crystal for ENC28J60 clock is easy to find&amp;nbsp;at your usual supplier. You will have also to find a magnetic for ethernet network (black rectangular box left to the RJ-45 socket), this one comes from an old ethernet hub board, as well as other parts seen on this picture. There are now RJ-45 sockets with integrated LEDs and magnetic, if you want to save more space on your board. And now, go shopping&amp;nbsp;: Quantity Part # or value Type 1 ENC28J60 (Microchip) Serial Ethernet Controller 1 LP2950CZ-3.3 +3.3V voltage regulator 1 25 MHz crystal 1 Green LED 1 Red LED 1 10 µF 25V capacitor 1 47 µF 25V capacitor 2 10 nF capacitor 2 15 pF capacitor 1 100 nF capacitor 1 1 nF 2KV capacitor 4 50 Ohm 1% precision resistor 1 2.7 K 1% precision resistor 2 470 Ohm resistor 1 FB2022 TX/RX magnetic filter 1 ferrite bead (value not critical) inductor 1 DIP 28 pins IC socket 1 RJ45 female solderable socket 1 2x5 pins connector + 5 jumpers used as switch The circuit schematicThe circuit schematic comes from the datasheet of the ENC28J60 : http://ww1.microchip.com/downloads/en/DeviceDoc/39662a.pdf As you can see, it is pretty simple : The ENC controller is connected to the network through a magnetic adapter. It needs a 25 Mhz crystal for its internal clock, resistors &amp;amp; capacitors for terminations, a 2.7K bias resistor, and a&amp;nbsp;10 µF capacitor to stabilize its internal 2.5V power supply. The controller can directly drive two programmable LEDs through current limitation resistors. It is connected to the PIC through a 5&amp;nbsp;lines bus : reset line (RESET), chip select line (CS), SPI clock (CLK), SPI data input (SI), SPI data output (S0). There are also 2 control lines that are not used in this exemple, but you can add them if you want, they are the interrupt line (INT) and the wake up on lan line (WOL). They can be used to trigger PIC interrupts, but in this example we operate using the polling method and we don't need them. The most frequently asked question about this controler is the voltage level adaptation. The controller operates at 3.3V and the PIC on the board operates at 5.0V. So, the question is : how to adapt ENC voltage levels to PIC voltage level ? We must consider both sides : PIC output voltage&amp;nbsp;for logical 1 is 5V : does ENC accepts 5V on its inputs, whereas it is 3.3V powered ? The answer is yes, ENC inputs are 5V compliant, so that there is no risk for the controller to apply 5V on its inputs, and they will correspond to logical 1. ENC output voltage&amp;nbsp;for logical 1 is&amp;nbsp;3.3V : will the inputs of the PIC turn high or low when 3.3V coming from the ENC outputs&amp;nbsp;is applied ? The answer is : it depends on the inputs of the PIC. TTL inputs give logical 1 above 2.05V, and will not require voltage level shifting. Schmitt trigger inputs give logical 1 above 3.5V, and will require voltage level shifting. In fact, we can consider that if we connect ENC outputs to PIC TTL inputs only, the voltage level adapter is... a wire. Most of PICs have TTL inputs and integrated SPI on PORTC, so we will connect all ENC line to this port. Assembly After soldering, you should get something that looks like this :As you can see, I used a red/green bicolor LED instead of the two LEDs.The jumper socket is placed just in front of the five lines that are connected to the PIC, so that removing the jumper isolates the ethernet circuit from the PIC, and PORTC can be used for other purposes.The 3.3V regulator is mounted on a tulip socket : I&amp;nbsp;have only one for now, and it is shared with another test&amp;nbsp;board.The 25 Mhz crystal is also mounted on a tulip socket, to save place for the two 15 pF capacitors hidden behind. I'm a little bit ashamed, but I show you the back side anyway. Sorry for the mess ;-)Take care to respect the receive circuit polarity, because ENC is not able to detect it correctly due to a silicon bug. That's why I used color wires. If you connect it wrong, you may either have receive problem, or no receive at all. The bus is connected to the PORTC pins of the DIP28 socket.Note that my cable deserves to be shortened... Finally, this is what it looks like : Front side Back side &amp;nbsp;And now... Testing the Ethernet board with a source code exampleIt's time ! First, check and double-check all connections. Don't plug the ENC28J60 in its socket, then power the board and verify the 3.3V power supply on each pin of the ENC. Then turn the board off, put a 40 pins PIC as a PIC16F877A or a PIC18F452 in its socket, and clock it at its maximum speed. Plug the ENC28J60 in its socket, and set the fiver jumpers to enable bus line between PIC and ENC. Get complete code&amp;nbsp;&amp;nbsp;</itunes:summary><itunes:keywords>shift,cells,plc,logic,controllers,Programable,hydraulic,turbine,embedded,transistor,components,generators,circuits,analysis,powerplant,semiconductor,air,pollution,microcontroler,turbines,microcontroller,power,adapter,water,pollution,tele</itunes:keywords></item><item><title>VR Stamp development kit by mikroElektronika</title><link>http://ieeebooks.blogspot.com/2011/04/vr-stamp-development-kit-by.html</link><category>VR Stamp development kit by mikroElektronika</category><pubDate>Sat, 30 Apr 2011 13:35:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-7641489437821266567</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img align="baseline" alt="Easy VR-Stamp development kit" border="0" height="301" hspace="5" src="http://www.micro-examples.com/pics/250-VR-STAMP-kit.JPG" vspace="5" width="400" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;For those who dream about embedding speech, music &amp;amp; voice  recognition&amp;nbsp;in their systems, Sensory Inc. has built a powerful RSC-4128  based stamp.&lt;br /&gt;
MikroElektronika released in March 2006 a complete  development kit system for this stamp, with&amp;nbsp;a board named Easy-VR Stamp,  and a C compiler named RSC-4x mikroC compiler.&lt;br /&gt;
As a user of this tools, here is a little review of what you have to know about it.&lt;br /&gt;
Later, I will add some VR Stamp C source code examples, just like I do for PICs.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="titre3"&gt;1/ What comes with the MikroElektronika Easy VR-Stamp development system&lt;/span&gt;&lt;br /&gt;
Unpacking the box, here is what I found :&lt;br /&gt;
From top to bottom, and from left to right :&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;the CD with software. I did not use it, I explain why below  &lt;/li&gt;
&lt;li&gt;the most important : the board, with&amp;nbsp;a VR Stamp plugged into its socket  &lt;/li&gt;
&lt;li&gt;a 2 lines x 16 characters LCD display (not included in the base package, sold separately)  &lt;/li&gt;
&lt;li&gt;the USB cable to connect the on-board programmer to the host computer  &lt;/li&gt;
&lt;li&gt;a serial cable to connect the VR Stamp to a host computer (RS232 level adapter is on the board)  &lt;/li&gt;
&lt;li&gt;the board manual with schematic.&lt;/li&gt;
&lt;/ul&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
As usual with MikroElektronika, the board looks great ! Let's have a closer look.&lt;br /&gt;
&lt;span class="titre3"&gt;2/ The Easy-VR Stamp board&lt;/span&gt;&lt;br /&gt;
Here is a view of the board :&lt;br /&gt;
&lt;img align="baseline" alt="Easy-VR Stamp board" border="0" height="480" hspace="5" src="http://www.micro-examples.com/pics/250-VR-STAMP-board.JPG" vspace="5" width="640" /&gt;&lt;br /&gt;
As you can see, it looks funny : it is not usual to have a speaker  system on development board, but MikroElektronika dared to include a  speaker and a microphone on its board. &lt;br /&gt;
You understand immediately that you have nothing to add to start working !&lt;br /&gt;
From top to bottom, and from left to right, you can see on the board :&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;the speaker system : thanks to its big case, the speaker sounds  good. An audio out connector is also available if you want to connect  your own speaker  &lt;/li&gt;
&lt;li&gt;the audio amplifier, with a little pot to adjust the volume  level.&amp;nbsp;Some jumpers select either DAC or PWM coming from the VR Stamp  &lt;/li&gt;
&lt;li&gt;the RS232 socket and level adapter (MAX232)  &lt;/li&gt;
&lt;li&gt;the USB programmer : binary files for VR Stamp are big, and a  high-speed programmer is needed, for&amp;nbsp;tests &amp;amp;&amp;nbsp;firmware updates as  quick as possible  &lt;/li&gt;
&lt;li&gt;the power supply : the board may be powered either by USB  connection, or by external low voltage AD or DC supply, depending on a  jumper state  &lt;/li&gt;
&lt;li&gt;the real time clock and its battery cell : it is based on&amp;nbsp;the popular PCF8583 I²C chip  &lt;/li&gt;
&lt;li&gt;the VR Stamp socket, with all pins clearly identified  &lt;/li&gt;
&lt;li&gt;the microphone, with its associated jumpers to select gain or external microphone  &lt;/li&gt;
&lt;li&gt;three sets of 2x5 ICD connectors, with all pins marked. They  give access to the MCU I/O pins, and to the 3.3V power supply. I/O may  either be pull-up or pulled-down (resistor arrays are on board) with  jumpers, PORT2 has its&amp;nbsp;own&amp;nbsp;DIP switch  &lt;/li&gt;
&lt;li&gt;24 leds, to display the MCU I/O pins state  &lt;/li&gt;
&lt;li&gt;a DIP switch to configure some I/O pins  &lt;/li&gt;
&lt;li&gt;a 5V &amp;lt;=&amp;gt; 3.3V level adapter for the LCD display, with a contrast pot  &lt;/li&gt;
&lt;li&gt;the 3.3V regulator  &lt;/li&gt;
&lt;li&gt;the reset switch  &lt;/li&gt;
&lt;li&gt;the external microphone connector  &lt;/li&gt;
&lt;li&gt;24 buttons are connected to the MCU I/O pins, buttons are globally set for pull-up or pull-down with a jumper  &lt;/li&gt;
&lt;li&gt;the 2x16 LCD area, with plugs  &lt;/li&gt;
&lt;li&gt;a Compact Flash Memory Card slot : some applications may require external data storage for voice, music, logs...&lt;/li&gt;
&lt;/ul&gt;The board reflects the quality we can expect from MikroElektronika,  and users of others of their boards will immediately feel familiar with  it.&lt;br /&gt;
&lt;span class="titre3"&gt;3/ Pluging the board&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The board  comes with a ready-programmed VR Stamp. So when you power the board for  the first time, the board starts immediately to run a program example. I  don't remember which one ! But you immediately hear something from the  board. The jumpers are also accorded to this first example.&lt;br /&gt;
&lt;span class="titre3"&gt;4/ Installing USB Drivers &amp;amp; Flash software&lt;/span&gt;&lt;br /&gt;
I usually download software from web sites, instead of using the CDs  that come with the packages, just to be sure to have the latest  releases.&lt;br /&gt;
First, I downloaded the &lt;b&gt;USB Drivers&lt;/b&gt; and the &lt;b&gt;VRStamp Flash Software&lt;/b&gt; from this page : &lt;br /&gt;
&lt;div class="downloadbox"&gt;&lt;ul class="iconlist normal"&gt;&lt;li class="zip"&gt;             &lt;a href="http://www.mikroe.com/eng/downloads/get/141/rsc4xflash_programmer.zip"&gt;VRStamp Flash software and drivers for Windows&lt;/a&gt;                                [1.18MB]                                                        &lt;/li&gt;
&lt;li class="zip"&gt;             &lt;a href="http://www.mikroe.com/eng/downloads/get/142/rsc4xflash_drivers_v102.zip"&gt;Drivers for VRStamp Flash software&lt;/a&gt;                                [1.51MB]                                                        &lt;/li&gt;
&lt;li class="pdf"&gt;             &lt;a href="http://www.mikroe.com/eng/downloads/get/143/easyvrstamp_manual.pdf"&gt;Easy-VRStamp Manual&lt;/a&gt;                                [1.43MB]                                                        &lt;/li&gt;
&lt;li class="pdf"&gt;             &lt;a href="http://www.mikroe.com/eng/downloads/get/8/installing_usb_drivers_v101.pdf"&gt;Installing USB drivers&lt;/a&gt;                                [420.79KB]                                                        &lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;After installing these softwares, the Easy VR Stamp USB programmer  was correctly detected, and the VRStamp Flash programmer software was  able to communicate with the board.&lt;br /&gt;
&lt;span class="titre3"&gt;5/ Installing RSC-4x mikroC compiler&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
This step is not difficult but you will have to pay attention to the mikroC manual to do it right.&lt;br /&gt;
I did it for you !&lt;br /&gt;
The RSC-4x mikroC compiler is based on a third-party assembler and  linker : you have to install them properly. Just follow these steps :&lt;br /&gt;
&lt;i&gt;&lt;b&gt;First, download the RSC-4x mikroC compiler from this web page :&lt;br /&gt;
&lt;a href="http://www.mikroe.com/eng/downloads/get/862/rsc4x_mikroc_2_0_0_0.zip"&gt;http://www.mikroe.com/eng/downloads/get/862/rsc4x_mikroc_2_0_0_0.zip&lt;/a&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;
&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
It comes with the complete IDE, a built-in manual, libraries : just follow the instructions and install it on your computer.&lt;br /&gt;
The download is free, without registration form. &lt;br /&gt;
Without  a licence key, the .HEX ouptput is limited to 64K of program words  (RSC-4128 small memory model), that is enough to do the first tests.&lt;br /&gt;
If you launch the compiler and try to build the example,&amp;nbsp;you will get  an error message : of course, there is no assembler nor linker !&lt;br /&gt;
&lt;b&gt;&lt;i&gt;Second, you will have to install the development package for Sensory RSC MCU (MCA-SE assembler &amp;amp; MCLINK linker) :&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
Just follow the instructions given by the built-in help of the RSC4x  mikroC compiler when you try to build the example, here is the package  to download :&lt;br /&gt;
&lt;b&gt;&lt;a href="http://www.phyton.com/downloads/project-se.zip" target="_blank"&gt;&lt;u&gt;http://www.phyton.com/downloads/project-se.zip&lt;/u&gt;&lt;/a&gt;.&lt;/b&gt;&lt;br /&gt;
The package is free, without registration form.&lt;br /&gt;
Close the compiler and install the package on your computer.&lt;br /&gt;
&lt;br /&gt;
Then, launch the compiler and don't forget to give the path of the package to the compiler : &lt;br /&gt;
&lt;i&gt;Tools-&amp;gt; Options -&amp;gt; Preferences -&amp;gt; Corss Tools -&amp;gt; External assembler &amp;amp; linker path&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
This done, you will be able to build the mikroC examples : press the build button, it works ! The .HEX output file is generated.&lt;br /&gt;
Load it into the VRStamp Flash Software and press the "Write" button :  the program will be flashed into the VR Stamp, and then it starts to  run.&lt;br /&gt;
That's a good step !&lt;br /&gt;
&lt;b&gt;&lt;i&gt;Third, The FluentChip library :&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
Now,&amp;nbsp;open a project in the __Senory_Examples directory and try to  build it : you will have a lot of errors, there is still something wrong  !&lt;br /&gt;
The Sensory's FluentChip library is the missing part, you will  need it to use the advanced speech, music &amp;amp; voice recognition  features of the chip.&lt;br /&gt;
&lt;br /&gt;
The  default paths that come with the compiler are wrong, because a new  version of the FluentChip library has been released since the packaging  of the mE compiler.&lt;br /&gt;
&lt;br /&gt;
This done, you are ready to work, and you  will be able to compile some short Sensory examples, the biggest ones  will need a RSC-4x mC licence key.&lt;br /&gt;
Anyway, if you don't have a MikroC  licence key, all the Sensory examples are ready to be flashed : just  select the .HEX file with the programmer, and you will hear the smooth  voice of your favorite board !&lt;br /&gt;
&lt;span class="titre3"&gt;6/ My opinion&lt;/span&gt;&lt;br /&gt;
&lt;span class="normal"&gt;I have been very impressed by the speaker  independent speech recognition example (simple math quizz t2simath  example in the __Sensory_Examples directory), which works fine in a  noisy room. &lt;/span&gt;&lt;br /&gt;
&lt;span class="normal"&gt;Exploring all the possibilities of the board  (including sound effects, Karaoke, MIDI &amp;amp; DTMF features...) will  need a little bit more time,&amp;nbsp;but it is worth the time.&lt;/span&gt;&lt;br /&gt;
The MikroC for RSC-4x shares the same IDE than the MikroC for PIC, with some interesting&amp;nbsp;extra features. &lt;br /&gt;
For example, you can reduce &amp;amp; expand a C block in the editor :&lt;br /&gt;
&lt;img align="left" alt="" border="0" hspace="5" src="http://www.micro-examples.com/pics/250-VR-STAMP-mcomp.JPG" vspace="5" /&gt;&lt;br /&gt;
&lt;br /&gt;
As you can see, the while(1) {} block is reduced and its content is  displayed in a pop-up frame when the cursor enters the block.&lt;br /&gt;
Just click on the + or - symbols in front of the line to expand or reduce the blocks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div align="left"&gt;&lt;br /&gt;
With a few words, I liked very much :&lt;/div&gt;&lt;ul&gt;&lt;li&gt;the on-board speaker &amp;amp; microphone : as far as I know, this is a unique feature for a VR Stamp development system  &lt;/li&gt;
&lt;li&gt;the quality &amp;amp; finition of the board  &lt;/li&gt;
&lt;li&gt;the fast USB programmer  &lt;/li&gt;
&lt;li&gt;the comfortable IDE of the compiler&lt;/li&gt;
&lt;/ul&gt;I found no real weakness in this development system, but a little bit  more care in the manual&amp;nbsp;to explain the rules and installation&amp;nbsp;of  external assembler, linker and libraries would have been helpful.&lt;/div&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item><item><title>Automatic LED display dimmer  | microcontroller Project</title><link>http://ieeebooks.blogspot.com/2011/04/automatic-led-display-dimmer.html</link><category>Automatic LED display dimmer</category><pubDate>Fri, 29 Apr 2011 17:15:00 +0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1465709680186664593.post-3976252848944682794</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="intro"&gt;This example shows how to use a simple&amp;nbsp;LED as light sensor, and to dim a 7-segments LED display with PWM &lt;/span&gt;&lt;span class="intro"&gt;automatically in the dark.&lt;/span&gt; &lt;br /&gt;
&lt;span class="intro"&gt;You will&amp;nbsp;use :&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class="intro"&gt;the PIC analog input and its ADC &lt;/span&gt; &lt;/li&gt;
&lt;li&gt;&lt;span class="intro"&gt;the PIC timer 0 &lt;/span&gt; &lt;/li&gt;
&lt;li&gt;&lt;span class="intro"&gt;a&amp;nbsp;4 digits 7 segments LED display &lt;/span&gt; &lt;/li&gt;
&lt;li&gt;&lt;span class="intro"&gt;2&amp;nbsp;buttons &lt;/span&gt; &lt;/li&gt;
&lt;li&gt;&lt;span class="intro"&gt;a simple LED diode&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span class="normal"&gt;Did you ever use 7 segments LED display ? Of course yes.&lt;/span&gt;&lt;br /&gt;
Then you surely adjusted the brightness of the LED, so that it is clearly readable in the day light.&lt;br /&gt;
But what happens in the dark ? Your display is simply too much bright !&lt;br /&gt;
How to know if it is bright or dark, without adding&amp;nbsp;an analog extra-circuit ?&lt;br /&gt;
How to control the brightness of the display, without adding an analog extra-circuit ?&lt;br /&gt;
&lt;div style="color: #cc0000; font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span class="titre2"&gt;1. A LED as light sensor ?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
This&amp;nbsp;is not big news : &lt;br /&gt;
A&amp;nbsp;LED emits light when electricity passes from its anode&amp;nbsp;to its cathode.&lt;br /&gt;
This may be an interesting news : &lt;br /&gt;
A&amp;nbsp;LED emits electricity when light is applied to its silicon  junction. How much electricity ? Not that much, but enough for our  purpose, a few tenth of milliVolts at most. This could easily be read by  the ADC of a PIC, by connecting its cathode to the ground and its anode  to the input pin of the PIC.&lt;br /&gt;
But this is the real trick : &lt;br /&gt;
We will reverse the connections of the LED : its cathode will be  connected to the input pin of the PIC, and its anode to the ground.&lt;br /&gt;
Why ? Shall we have to read a negative voltage value ? Will the PIC  be destroyed by the negative voltage ? Will the LED fry, because it is  reversed ?&lt;br /&gt;
Not at all !&lt;br /&gt;
Connecting the diode in reverse polarity to the PIC ADC input will have the effect :&lt;br /&gt;
In the dark : the silicon junction does not receive any light, and no  voltage is present between its pin. In fact, the diode acts like an  open circuit. Due to its internal structure (a charged capacitor), the  PIC ADC will read in this case a 'phantom' voltage, and its value will  be returned by the conversion.&lt;br /&gt;
In the light : the silicon junction of the LED is excited and a  little voltage appears between its pins. As it is reversed to the  'phantom' voltage, the result voltage will be less than zero, and the  PIC ADC will return a null value.&lt;br /&gt;
Of course, this reverse voltage is far away from being dangerous for  your PIC, and no current drives through the LED to fry it&amp;nbsp;: your circuit  is safe !&lt;br /&gt;
&lt;div style="color: #cc0000; font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span class="titre2"&gt;2. Dimming the display&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;To dim the display, we have to reduce the amount of current that drives through the LED display.&lt;br /&gt;
To reduce the amount of current, the first idea is to reduce the  current itself. Of course it is possible, but it would need some extra  analog circuitry.&lt;br /&gt;
A better idea would be to reduce the period during which the current  is supplied to the LEDs. The amount of current received by the display  during a time unit will be less, and the display will dim. This can be  done with software : 7 segments LED displays are usually  time-multiplexed, some adjustments in the software will do the job, and  no extra circuitry will be needed.&lt;br /&gt;
The software will do a kind of PWM (Pulse Width Modulation) : by  adjusting its duty cycle, we control the brightness of the display.&lt;br /&gt;
With a 0% duty cycle, the display is switched off (the LEDs receive  no current), with a 100% duty cycle, the display is turned on (the LEDs  receive all the available current), otherwise the LEDs light  proportionally to the duty cycle.&lt;br /&gt;
The software PWM for LED display is not that hard to code, because  the PWM frequency involved is not very high, and not time-critical too. &lt;br /&gt;
&lt;div style="color: #cc0000; font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span class="titre2"&gt;3. Build the circuit&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;All that you have to do, is to insert the LED into the DIP28 socket  of your Easypic. This socket has the advantage to have the RA5 pin and  the Ground pin side by side, so that we don't need extra circuitry.&lt;br /&gt;
Plug the cathode of the diode into the RA5 hole, and the anode into the Ground hole. This should look like this :&lt;br /&gt;
&lt;img align="left" alt="LED as light sensor on EasyPic3" border="0" hspace="5" src="http://www.micro-examples.com/pics/096-LED-LIGHT-SENSOR-ledlightsensor.JPG" vspace="5" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Your light sensor is ready to use&amp;nbsp;!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then set up your EP3 board as follows :&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;put a pic16f877a in the dip40 socket  &lt;/li&gt;
&lt;li&gt;put a 8 Mhz crystal in the oscillator socket  &lt;/li&gt;
&lt;li&gt;enable PORTC LEDs  &lt;/li&gt;
&lt;li&gt;enable 7 segments LED display  &lt;/li&gt;
&lt;li&gt;set pull-down to PORTD  &lt;/li&gt;
&lt;li&gt;set pull-up to keyboard&lt;/li&gt;
&lt;/ul&gt;&lt;div style="color: #cc0000; font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;b&gt;&lt;span class="titre2" style="font-size: large;"&gt;3. The&amp;nbsp;program&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;You can download &lt;a href="https://sites.google.com/site/engrworld/led-light-sensor-c-source-code" target="_blank"&gt;the C source code for PIC 16F877 from this page&lt;/a&gt;.&lt;/b&gt;&lt;br /&gt;
This C source code will allow you to experiment your new light  sensor. You can compile it with the MikroC compiler, it fits within the  2k demo limit (in fact less than 300 bytes of ROM), so that you don't  need a licence key to build the binary file.&lt;br /&gt;
If you don't have already MikroC compiler for PIC on your PC, then download it now for free :&lt;br /&gt;
&lt;b&gt;&lt;a href="http://www.mikroe.com/eng/downloads/get/29/mikroc_pro_pic_2011_v460_setup.zip"&gt;DOWNLOAD.Zip&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #cc0000; font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span class="titre2"&gt;4. Run the program&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #cc0000; font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;iframe allowfullscreen="" frameborder="0" height="349" src="http://www.youtube.com/embed/PwLXWxViX2A" width="425"&gt;&lt;/iframe&gt;&lt;/div&gt;Just turn off the light of the room and see the result on the display.&lt;br /&gt;
The LED is a very sensitive sensor : the display will dim only if there is no light at all.&lt;br /&gt;
The message "HIGH" is printed on the display when the LED sensor  receives the light of a lamp, and then the message "DIMM" is printed  with a dimmed brightness when the light goes off.&lt;br /&gt;
(WMV, 1.2 Mo)&lt;br /&gt;
&lt;br /&gt;
To adjust the brightness of the dimmed display, press the RD0 or RD1  keys : the PWM duty cycle will change and the brightness of the display  too.&lt;br /&gt;
If you enable PORTC LEDs, the duty cycle is shown as a bar graph.&lt;br /&gt;
&lt;span class="titre2"&gt;5. Try other LEDS&lt;/span&gt;&lt;br /&gt;
Try with all LEDs you have : depending on their diameters and colors, sensitivity may vary.&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://img.youtube.com/vi/PwLXWxViX2A/default.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><author>aslam.obf@gmail.com (Unknown)</author></item></channel></rss>