tag:blogger.com,1999:blog-73335498657743075972024-03-24T16:31:59.322-07:00Electronics ProjectsWowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.comBlogger56125tag:blogger.com,1999:blog-7333549865774307597.post-80481341307653147262014-06-29T23:52:00.000-07:002014-06-29T23:58:34.166-07:00Device Controlling Using Android<div dir="ltr" style="text-align: left;" trbidi="on">
The purpose of this project is to demonstrate the basic principles of external device controlling using your android phone.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2AY3ntKffYqtZ9dk3DbmaAwHsxN5-4YOcFw4gKG2a84A5wfbqVWAWu9bLPPJtaIiLsL6pRyA5cUe82A-sMFkcKOCZXYLgTIbuzZdx1YLthRWoD2lrmEpn6H21pbVgPc86wZgYga6uGjDq/s1600/sample.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2AY3ntKffYqtZ9dk3DbmaAwHsxN5-4YOcFw4gKG2a84A5wfbqVWAWu9bLPPJtaIiLsL6pRyA5cUe82A-sMFkcKOCZXYLgTIbuzZdx1YLthRWoD2lrmEpn6H21pbVgPc86wZgYga6uGjDq/s1600/sample.png" height="203" width="400" /></a></div>
<br />
The basic principle in this project is that by interfacing an Android phone with a Arduino Board we can turn "off" or "on" some relays.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMUj5AvLvDDuoAJ-iGzhbPl04FiRLl7Wdua3zdwieWxtOn0oUlJgGm7b5PF6gZ0RYCs94gm61eGYdD8QYMASGA7hLPCFbD0VUwEBIE3f44l4rYcXkyGHTekEhGtY99V40enYgv5Avv5M8r/s1600/principle.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMUj5AvLvDDuoAJ-iGzhbPl04FiRLl7Wdua3zdwieWxtOn0oUlJgGm7b5PF6gZ0RYCs94gm61eGYdD8QYMASGA7hLPCFbD0VUwEBIE3f44l4rYcXkyGHTekEhGtY99V40enYgv5Avv5M8r/s1600/principle.png" height="215" width="400" /></a></div>
Components Required<br />
<br />
<ul>
<li><span style="font-size: 7pt; text-indent: -18pt;"> </span><span style="text-indent: -18pt;">Serial Port Bluetooth Module( TTL )</span></li>
<li><span style="font-size: 7pt; text-indent: -18pt;"> </span><span style="text-indent: -18pt;">Arduino Microcontroller Board (</span><b><span style="background: none repeat scroll 0% 0% rgb(255, 204, 204); color: blue; font-size: 10pt; line-height: 115%;">ET-BASEAVR EASY328</span></b><span style="text-indent: -18pt;"> ) Arduino Compatible Board</span></li>
<li><span style="font-size: 7pt; text-indent: -18pt;"> </span><span style="text-indent: -18pt;">8 channel Output Relay Board</span></li>
</ul>
<span style="text-indent: -18pt;"> Connection Diagrams</span><br />
<span style="text-indent: -18pt;"><br /></span>
<span style="text-indent: -18pt;"><br /></span>
<span style="text-indent: -18pt;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7uZ_KpCduTwr-S4IzASxXHomKrxiw77ZNbcFePBMv3GDFvvaa76A4mZSbG3gylLM3ocY6x6tLm38DHkJXDmHHz9LTMyS3YQhFMv0SXV77xQqHLNCL9DwSv2T3nAzNiaZtb6CK-Zotug7W/s1600/Connect+Diagram+jpg.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7uZ_KpCduTwr-S4IzASxXHomKrxiw77ZNbcFePBMv3GDFvvaa76A4mZSbG3gylLM3ocY6x6tLm38DHkJXDmHHz9LTMyS3YQhFMv0SXV77xQqHLNCL9DwSv2T3nAzNiaZtb6CK-Zotug7W/s1600/Connect+Diagram+jpg.jpg" height="320" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDg9shwJcyfnaQznhfLY6Lx6bcHWdA3shvSv8ezAZA1qleh-k5UylH8oSIpW8i1rM8gnRnTmJ6ArAxtps4Sk5DSAcBoLxnG7g0O-KyWRS-yXMQx13yiC-TLnCBXfrDSyRs_OAAxRi0gl0_/s1600/wiring_diagram.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDg9shwJcyfnaQznhfLY6Lx6bcHWdA3shvSv8ezAZA1qleh-k5UylH8oSIpW8i1rM8gnRnTmJ6ArAxtps4Sk5DSAcBoLxnG7g0O-KyWRS-yXMQx13yiC-TLnCBXfrDSyRs_OAAxRi0gl0_/s1600/wiring_diagram.png" height="272" width="320" /></a></div>
<br />
<span style="text-indent: -18pt;"><br /></span>
<span style="text-indent: -18pt;"><br /></span>
<span style="text-indent: -18pt;">Source Code For Arduino Board</span><br />
<span style="text-indent: -18pt;"><br /></span>
<span style="text-indent: -18pt;"><br /></span>
<br />
<div class="MsoNormal">
<b style="color: blue;">For Arduino Microcontroller Board Source code</b><br />
<br />
#define LED_PIN1 4<br />
#define LED_PIN2 5<br />
#define LED_PIN3 6<br />
#define LED_PIN4 7<br />
<br />
#define LED_PIN5 8<br />
#define LED_PIN6 9<br />
#define LED_PIN7 10<br />
#define LED_PIN8 11<br />
<br />
int firstSensor = 0; <span style="color: #3d85c6;">// first analog sensor</span><br />
int secondSensor = 0; <span style="color: #3d85c6;">// second analog sensor</span><br />
int thirdSensor = 0; <span style="color: #3d85c6;"> // digital sensor</span><br />
int inByte = 0; <span style="color: #3d85c6;"> // incoming serial byte</span><br />
boolean status_unlock;<br />
boolean status_bluetooth;<br />
<br />
long interval = 1000; <span style="color: #3d85c6;"> // interval at which to blink (milliseconds)</span><br />
long previousMillis = 0; <span style="color: #6fa8dc;"> // will store last time LED was update</span><br />
int minite,sec;<br />
<br />
<br />
void setup()<br />
{<br />
// start serial port at 9600 bps:<br />
Serial.begin(9600);<br />
//pinMode(2, INPUT); <span style="color: #3d85c6;">// digital sensor is on digital pin 2</span><br />
//establishContact(); <span style="color: #3d85c6;">// send a byte to establish contact until receiver responds</span> <br />
<br />
pinMode(LED_PIN1, OUTPUT);<br />
pinMode(LED_PIN2, OUTPUT);<br />
pinMode(LED_PIN3, OUTPUT);<br />
pinMode(LED_PIN4, OUTPUT);<br />
<br />
pinMode(LED_PIN5, OUTPUT);<br />
pinMode(LED_PIN6, OUTPUT);<br />
pinMode(LED_PIN7, OUTPUT);<br />
pinMode(LED_PIN8, OUTPUT);<br />
<br />
digitalWrite(LED_PIN1, LOW); <span style="color: #3d85c6;">// switch off LED</span><br />
digitalWrite(LED_PIN2, LOW); <span style="color: #6fa8dc;">// switch off LED</span><br />
digitalWrite(LED_PIN3, LOW); <span style="color: #3d85c6;">// switch off LED</span><br />
digitalWrite(LED_PIN4, LOW); <span style="color: #3d85c6;">// switch off LED</span><br />
<br />
digitalWrite(LED_PIN5, LOW); <span style="color: #3d85c6;">// switch off LED</span><br />
digitalWrite(LED_PIN6, LOW); <span style="color: #3d85c6;">// switch off LED</span><br />
digitalWrite(LED_PIN7, LOW); <span style="color: #3d85c6;">// switch off LED</span><br />
digitalWrite(LED_PIN8, LOW); <span style="color: #3d85c6;">// switch off LED </span><br />
<br />
status_bluetooth = true;<br />
status_unlock = false;<br />
sec = 0;<br />
}<br />
<br />
void loop()<br />
{<br />
if (Serial.available() > 0) { <br />
<br />
inByte = Serial.read(); <span style="color: #3d85c6;"> // get incoming byte: </span><br />
<br />
if(inByte == 'A'){ <br />
digitalWrite(LED_PIN1, HIGH); <span style="color: #3d85c6;">// switch on LED</span><br />
Serial.print('A', BYTE); <span style="color: #3d85c6;">// send a char</span><br />
delay(800);<br />
digitalWrite(LED_PIN1, LOW); <span style="color: #3d85c6;">// switch off LED</span><br />
status_unlock = false;<br />
inByte = 0; <br />
}<br />
<br />
if(inByte == 'a'){ <br />
digitalWrite(LED_PIN2, HIGH); <span style="color: #3d85c6;">// switch on LED</span><br />
Serial.print('a', BYTE); <span style="color: #3d85c6;">// send a char</span><br />
delay(800);<br />
digitalWrite(LED_PIN2, LOW); <span style="color: #3d85c6;">// switch off LED</span><br />
<br />
status_unlock = true;<br />
sec = 0;<br />
inByte = 0; <br />
}<br />
<br />
if(inByte == 'B'){ <br />
digitalWrite(LED_PIN3, HIGH); <span style="color: #3d85c6;">// switch on LED</span><br />
Serial.print('B', BYTE); <span style="color: #3d85c6;">// send a char</span><br />
inByte = 0; <br />
}<br />
<br />
if(inByte == 'b'){ <br />
digitalWrite(LED_PIN3, LOW); <span style="color: #3d85c6;"> // switch off LED</span><br />
Serial.print('b', BYTE); <span style="color: #3d85c6;">// send a char</span><br />
inByte = 0; <br />
}<br />
<br />
if(inByte == 'C'){ <br />
digitalWrite(LED_PIN4, HIGH); <span style="color: #3d85c6;">// switch on LED</span><br />
Serial.print('C', BYTE); <span style="color: #6fa8dc;">// send a char</span><br />
inByte = 0; <br />
}<br />
<br />
if(inByte == 'c'){ <br />
digitalWrite(LED_PIN4, LOW); <span style="color: #3d85c6;"> // switch off LED</span><br />
Serial.print('c', BYTE); <span style="color: #3d85c6;">// send a char</span><br />
inByte = 0; <br />
}<br />
<br />
if(inByte == 'D'){ <br />
digitalWrite(LED_PIN5, HIGH); <span style="color: #3d85c6;">// switch on LED</span><br />
Serial.print('D', BYTE); <span style="color: #3d85c6;"> // send a char</span><br />
inByte = 0; <br />
}<br />
<br />
if(inByte == 'd'){ <br />
digitalWrite(LED_PIN5, LOW); <span style="color: #3d85c6;">// switch off LED</span><br />
Serial.print('d', BYTE); <span style="color: #3d85c6;">// send a char</span><br />
inByte = 0; <br />
}<br />
<br />
if(inByte == 'E'){ <br />
digitalWrite(LED_PIN6, HIGH); <span style="color: #6fa8dc;">// switch on LED</span><br />
Serial.print('E', BYTE); <span style="color: #3d85c6;">// send a char</span><br />
inByte = 0; <br />
}<br />
<br />
if(inByte == 'e'){ <br />
digitalWrite(LED_PIN6, LOW); <span style="color: #3d85c6;">// switch off LED</span><br />
Serial.print('e', BYTE); <span style="color: #3d85c6;">// send a char</span><br />
inByte = 0; <br />
}<br />
<br />
if(inByte == 'F'){ <br />
digitalWrite(LED_PIN7, HIGH); <span style="color: #3d85c6;"> // switch on LED</span><br />
Serial.print('F', BYTE); <span style="color: #3d85c6;">// send a char</span><br />
inByte = 0; <br />
}<br />
<br />
if(inByte == 'f'){ <br />
digitalWrite(LED_PIN7, LOW); <span style="color: #3d85c6;">// switch off LED</span><br />
Serial.print('f', BYTE); <span style="color: #3d85c6;">// send a char</span><br />
inByte = 0; <br />
}<br />
<br />
if(inByte == 'G'){ <br />
digitalWrite(LED_PIN8, HIGH); <span style="color: #3d85c6;"> // switch on LED</span><br />
Serial.print('G', BYTE); <span style="color: #3d85c6;">// send a char</span><br />
inByte = 0; <br />
}<br />
<br />
if(inByte == 'g'){ <br />
digitalWrite(LED_PIN8, LOW); <span style="color: #3d85c6;"> // switch off LED</span><br />
Serial.print('g', BYTE); <span style="color: #3d85c6;">// send a char</span><br />
inByte = 0; <br />
} <br />
<br />
if(inByte == 'S'){ <br />
<br />
Serial.print('S', BYTE); // send a char<br />
status_bluetooth = true;<br />
sec = 0;<br />
<br />
} <br />
} // if(Serial<br />
<br />
/*<br />
unsigned long currentMillis = millis();<br />
<br />
if(currentMillis - previousMillis > interval) { <br />
previousMillis = currentMillis; <span style="color: #3d85c6;">// save the last time you blinked the LED </span><br />
<br />
sec++;<br />
<br />
if(status_unlock==true){<br />
<br />
if(sec== 11){<br />
<br />
digitalWrite(LED_PIN1, HIGH); <span style="color: #3d85c6;">// switch on LED</span><br />
<br />
delay(800);<br />
digitalWrite(LED_PIN1, LOW); <span style="color: #3d85c6;">// switch off LED</span><br />
<br />
status_unlock = false; <br />
sec = 0;<br />
}<br />
}<br />
else sec = 0; <br />
<br />
}<br />
<br />
*/ <br />
<br />
} //Loop<br />
<br />
void establishContact() {<br />
while (Serial.available() <= 0) {<br />
Serial.print('.', BYTE); <span style="color: #3d85c6;"> // send a capital A</span><br />
delay(500);<br />
}<br />
}</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal" style="text-align: center;">
ANDROID BLUETOOTH CONTROLLED DEVICE</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6EIBYLx1UGi41wCw3CvKCQzTQBaia8Lo2_M_S5eFBlPM7tKUu3_4OKSUClFtvTkqEsc9Bma419xPCIZbQlyJkioaVbs2SiJ-ySALraSSpadpAoei6DvN79obeQHcx1zxYHnRdB3OYbjTu/s1600/Screen1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6EIBYLx1UGi41wCw3CvKCQzTQBaia8Lo2_M_S5eFBlPM7tKUu3_4OKSUClFtvTkqEsc9Bma419xPCIZbQlyJkioaVbs2SiJ-ySALraSSpadpAoei6DvN79obeQHcx1zxYHnRdB3OYbjTu/s1600/Screen1.png" height="320" width="192" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
Android Bluetooth control application helps to control up to 8 external electrical or electronic devices. <span class="hps"><span lang="EN">Use Android Bluetooth mobile device to remote control your device with Bluetooth Receiver hardware Device.</span></span></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<b>Main features of the program</b>
<br />
<ul style="text-align: left;">
<li>
<span lang="EN"><span class="hps">It can control </span> up to <span class="hps"> 8 device</span>s.<br />
<span class="hps">These devices can be turned off /on by</span><span class="hps"> setting Timer to</span> <span class="hps">ON</span> <span class="hps">/ OFF</span> <span class="hps">the</span> <span class="hps">device</span> and<span class="hps"> show the time.(</span>the timer can
be <span class="hps">set</span> <span class="hps">to</span> <span class="hps">1</span>
<span class="hps">minute,</span> <span class="hps">15</span> <span class="hps">minutes</span>,
<span class="hps">30</span> <span class="hps">minutes</span>, <span class="hps">1</span>
<span class="hps">hour</span>, <span class="hps">2</span> <span class="hps">hours,</span>
<span class="hps">4 hours)</span>.<br />
<span class="hps">Use with</span> <span class="hps">Receiving</span>
<span class="hps">device</span> <span class="hps">(Bluetooth Receiver Hardware Device see below).</span></span>
</li>
<li>
<span class="hps"><span lang="EN">Design</span></span><span lang="EN"> <span class="hps">for the</span> <span class="hps">Android version 4</span> <span class="hps">and a screen</span> <span class="hps">resolution of</span> <span class="hps">480 x 800 (WVGA).</span></span>
</li>
<li>
Freeware with AD (free software)</li>
</ul>
</div>
<div>
<br /></div>
</div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-14820234425645081702014-06-12T20:06:00.005-07:002014-06-12T20:06:43.182-07:00 Interfacing LED's with a micro controller(AT89c51)<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;">In this chapter we will learn how to interface LED using Micro controller. Here I have used the micro controller AT89c51. </span></span></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;">The AT89C51 is a low-power, high-performance C MOS 8-bit microcomputer with 4K</span></span></div>
<div data-angle="0" data-canvas-width="629.6545369674683" data-font-name="Helvetica" dir="ltr" style="left: 59.8px; text-align: justify; top: 507.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.02206, 1);">
<span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;">bytes
of Flash programmable and erasable read only memory (PEROM). The device
is manufactured using Atmel’s high-density nonvolatile memory
technology and is compatible with the industry-standard MCS-51
instruction set and pin-out. The on-chip Flash allows the program memory
to be reprogrammed in-system or by a conventional nonvolatile memory
programmer. By combining a versatile 8-bit CPU with Flash</span></span></div>
<div data-angle="0" data-canvas-width="629.5217436325072" data-font-name="Helvetica" dir="ltr" style="left: 59.8px; text-align: justify; top: 527.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01744, 1);">
<span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;">on a monolithic chip, the Atmel AT89C51 is a powerful microcomputer which provides</span></span></div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" dir="ltr" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
<span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;">a highly-flexible and cost-effective solution to many embedded control applications.</span></span></div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" dir="ltr" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
</div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" dir="ltr" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
<span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;">First let's see the architecture of AT89c51</span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgtKtNAqM_0zUAYjVrGkOFyi8c9AvNqY0kx2b5ckKzKTI9JFxqTNcwrKAI8wh8aY9HevVu1IwrFq7qn7ULJlSEdbz04SD0vKeAz6o4rBGwlYItnCd7ZEUpv_hrvBrPfyp_eAwwUKib6rGN/s1600/AT89C51_1.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgtKtNAqM_0zUAYjVrGkOFyi8c9AvNqY0kx2b5ckKzKTI9JFxqTNcwrKAI8wh8aY9HevVu1IwrFq7qn7ULJlSEdbz04SD0vKeAz6o4rBGwlYItnCd7ZEUpv_hrvBrPfyp_eAwwUKib6rGN/s1600/AT89C51_1.jpg" height="313" width="320" /></a></div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" dir="ltr" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
</div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" dir="ltr" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
</div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" dir="ltr" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
</div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" dir="ltr" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
<span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;"> As
you can see, the controller has 40 pins, of them 32 pins are the
parallel ports that are used for interfacing. These 32 pins are divided
into 4 ports having 8pins for each. They are named as port 1, port 2,
port 3, port 4. </span></span></div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" dir="ltr" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
<span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;">Port 1:- p0.0,p0.1,p0.2,p0.3,p0.4,p0.5,p0.6,p0.7 ( pin no: 39-32)</span></span></div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" dir="ltr" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
</div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" dir="ltr" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
<span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;">Port 2- p1.0,p1.1,p1.2,p1.3,p1.4,p1.5,p1.6,p1.7 ( pin no: 1-8)</span></span></div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" dir="ltr" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
</div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" dir="ltr" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
<span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;"><span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;">Port 3:- p2.0,p2.1,p2.2,p2.3,p2.4,p2.5,p2.6,p2.7 ( pin no: </span></span></span></span><span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;"><span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;"><span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;">28-21</span></span>)</span></span></span></span></div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" dir="ltr" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
</div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" dir="ltr" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
<span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;"><span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;"><span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;">Port 4:- p3.0,p3.1,p3.2,p3.3,p3.4,p3.5,p3.6,p3.7 ( pin no: 10-17)</span></span> </span></span></span></span></div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" dir="ltr" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
</div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" dir="ltr" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
<span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;"><span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;">Pin 18 and 19 are for connecting crystal oscillator, pin 20 is ground and 40 is vcc. </span></span> </span></span></div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" dir="ltr" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
<span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;">You can use any/all of the 4 ports to interface LED's. In this experiment i had selected the Port 1:(p 0.0 - p0.7).</span></span></div>
<br />
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
In this experiment we are going to interface 8 LED's. </div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
<br /></div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" dir="ltr" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
<h4>
<span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;">Components required:- </span></span></h4>
<h4>
</h4>
<br /></div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
<span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%; text-indent: -0.25in;">1.<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal;">
</span></span><span style="text-indent: -0.25in;"><span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%;">8 LEDs.</span></span>
<br />
<span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%; text-indent: -0.25in;">2.<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal;">
</span></span><span style="text-indent: -0.25in;"><span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%;">Micro controller AT89c51.</span></span>
<br />
<span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%; text-indent: -0.25in;">3.<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal;">
</span></span><span style="text-indent: -0.25in;"><span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%;">8 registers.</span></span>
(330 ohm)<br />
<span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%; text-indent: -0.25in;">4.<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal;">
</span></span><span style="text-indent: -0.25in;"><span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%;">12MHz crystal oscillator.</span></span>
<br />
<span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%; text-indent: -0.25in;">5.<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal;">
</span></span><span style="text-indent: -0.25in;"><span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%;">10 KΩ fixed register.</span></span>
<br />
<span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%; text-indent: -0.25in;">6.<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal;">
</span></span><span style="text-indent: -0.25in;"><span style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 115%;">10 μf (25v) capacitor.</span></span></div>
</div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
<h4>
Circuit diagram</h4>
<h4>
</h4>
<h4>
</h4>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY8RUyWmDmSfaoanqVWP8_fCVAfeLl-p65XohulHBaLuFgiSiV9hXCAdAuxiFkmdXYkBLTGk_iapYDsYS5YHcQdYWHTzhhdida_uft8w24HjW2Pji88-t_4Z8hWzqiWa2gELMlyrxqLI9J/s1600/How+to+interface+LEDs+with+AT89C51.gif" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY8RUyWmDmSfaoanqVWP8_fCVAfeLl-p65XohulHBaLuFgiSiV9hXCAdAuxiFkmdXYkBLTGk_iapYDsYS5YHcQdYWHTzhhdida_uft8w24HjW2Pji88-t_4Z8hWzqiWa2gELMlyrxqLI9J/s1600/How+to+interface+LEDs+with+AT89C51.gif" height="342" width="400" /></a></div>
<h4>
<span style="font-weight: normal;"><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif; line-height: 115%;">
Connections are made as per the circuit diagram. Here LED's are running
of negative
logic. That means normally every pin of port 1 have +5v as output. Here
cathode of every LED is connected with Micro controller port pin and
anode of all the LED's are connected to +5v supply. Thus both the legs
of LED are supplied with +5v. So we required to give 0v at the output
of micro controller in order to 'ON' the LED's.</span>
</span></span></h4>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif; line-height: 115%;"> We are
sending the sequence of 0x055 and 0x0AA alternatively with some delay. Delay is
in the range of few milliseconds.</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif; line-height: 115%;"><br /></span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span style="line-height: 18px;">Code :</span></span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span style="line-height: 18px;"><br /></span></span></span></div>
<span style="font-size: small;">
</span>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> #include<reg51.h></span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><br /></span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>void delay(int time) //This function produces a delay in msec.</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>{</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>int i,j;</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>for(i=0;i<time;i++)</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>for(j=0;j<1275;j++);</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>}</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><br /></span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>void main()</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>{</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>while(1)</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>{</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>P1=0x00; // this code turns ON the LED's</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>delay(100);</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>P1=0xff; </span></span><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;">// this code turns OFF the LED's</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>delay(100); </span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>}</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>}</span></span></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<h4>
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;">If port 2 is used then the code becomes :-</span></span></h4>
</div>
<h4>
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"> #include<reg51.h></span></span><span style="font-size: small;">
</span></h4>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><br /></span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>void delay(int time) </span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>{</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>int i,j;</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>for(i=0;i<time;i++)</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>for(j=0;j<1275;j++);</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>}</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><br /></span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>void main()</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>{</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>while(1)</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>{</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>P2=0x00; // P1 changed to P2. If p3 is used then write P3 here.</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>delay(100);</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>P2=0xff;</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>delay(100);</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>}</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>}</span></span></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<h3>
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"> If more than one port is used then the circuit diagram becomes:-</span></span></h3>
</div>
<div class="MsoNormal">
<h3>
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"> </span></span></h3>
</div>
<div class="MsoNormal">
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggQyNUKtQcxcmzzPLQ976C7bxLmt3247VD5A5hYMlZ4XtyqIdWlctVsOx2ODZtGLPfjNUv_4z2tWvqLsamolT-0kcdGvFgFpk7WKewcr7ncMI3XL6WRObaGuGrUntSkbrLE74R38DXshZj/s1600/How+to+interface+LEDs+with+AT89C512.gif" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggQyNUKtQcxcmzzPLQ976C7bxLmt3247VD5A5hYMlZ4XtyqIdWlctVsOx2ODZtGLPfjNUv_4z2tWvqLsamolT-0kcdGvFgFpk7WKewcr7ncMI3XL6WRObaGuGrUntSkbrLE74R38DXshZj/s1600/How+to+interface+LEDs+with+AT89C512.gif" height="320" width="272" /></a></span></span></div>
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;">
</span></span></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"> Here Port 1 and Port 3 are together used for interfacing 16 LED's. </span></span></div>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><br /></span></span></div>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><br /></span></span></div>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><br /></span></span></div>
<div class="MsoNormal">
<br />
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span style="line-height: 18px;">Code (All 16 turned ON at a times)</span></span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span style="line-height: 18px;"><br /></span></span></span></div>
<span style="font-size: small;">
</span>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> #include<reg51.h></span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><br /></span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>void delay(int time) </span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>{</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>int i,j;</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>for(i=0;i<time;i++)</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>for(j=0;j<1275;j++);</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>}</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><br /></span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>void main()</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>{</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>while(1)</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>{</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>P1=0x00; // this code turns ON the LED's in Port 1</span></span></div>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"> P3=0x00; // this code turns ON the LED's</span></span> in Port 3</span></span></div>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>delay(100);</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>P1=0xff; </span></span><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;">// this code turns OFF the LED's</span></span><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"> in Port 1</span></span></div>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"> P3=0xff; </span></span><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;">// this code turns OFF the LED's </span></span></span></span><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;">in Port 3</span></span></span></span> </span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>delay(100); </span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>}</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>}</span></span></div>
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span style="line-height: 18px;">Code (Only 8 LED's turned ON at a times)</span></span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span style="line-height: 18px;"><br /></span></span></span></div>
<span style="font-size: small;">
</span>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> #include<reg51.h></span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><br /></span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>void delay(int time) </span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>{</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>int i,j;</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>for(i=0;i<time;i++)</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>for(j=0;j<1275;j++);</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>}</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><br /></span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>void main()</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>{</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>while(1)</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>{</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>P1=0x00; // this code turns ON the LED's in Port 1</span></span></div>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"> </span></span></span></span><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;">P3=0xff; </span></span><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;">// this code turns OFF the LED's </span></span></span></span><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;">in Port 3</span></span></span></span> </span></span></div>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>delay(100);</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>P1=0xff; </span></span><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;">// this code turns OFF the LED's</span></span><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"> in Port 1</span></span></div>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"> P3=0x00; // this code turns ON the LED's</span></span> in Port 3</span></span> </span></span></div>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"> </span></span></span></span><span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"> </span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>delay(100); </span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;">
<span style="font-family: 'Times New Roman',serif;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>}</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>}</span></span></div>
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: 'Times New Roman',serif;"><i><span style="font-size: xx-small;">tags:
interfacing LED with PIC, embedded projects for beginners, embedded
tutorials for beginners, LED interfacing circuits, LED tutorials, LED
blinking circuits, LED blinking tutorials, AT89c51 beginners projects,
AT89c51 tutorials, micro controller tutorial projects, micro controller
circuits for beginners</span></i></span></span></div>
</div>
<div data-angle="0" data-canvas-width="610.6634301513675" data-font-name="Helvetica" dir="ltr" style="left: 59.8px; text-align: justify; top: 547.203px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.01828, 1);">
<span style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;"> </span></span></div>
</div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-87275000248861790852014-06-12T20:06:00.002-07:002014-06-12T20:06:19.023-07:00Parallel Ports Basics<div dir="ltr" style="text-align: left;" trbidi="on">
In this chapter we will discuss about the parallel ports.<br />
<br />
Parallel
ports are a set of pins used to interface external devices. The number
of such ports are different for different micro controllers. Simply it
can be defined as, we know that a micro controller is a programmed
device which will perform as per the program. So in order to perform
some actions the controller should be connected to some device/ circuit.
As an example, in circuit we want to blink an LED for 5 seconds whens a
key is pressed.Then we have to connect a switch and a LED to the
controller. So we use the parallel ports to connect these components.
The below picture shows the basic structure to connect an LED and switch
to the controller.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnB2Q0HslPSQvXapBbBIF-QjNAdEYlgOgZnqcS-2M6gTEpUx905Yo3pheVhxmxvXD3cOVDm5ZdCAyxDjps7xe7VdH57nIevZKFEjLXIx8WSOgIVrvUXixSaQLBwUJemIA42-BLt3rmhPOK/s1600/Parallel+ports.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnB2Q0HslPSQvXapBbBIF-QjNAdEYlgOgZnqcS-2M6gTEpUx905Yo3pheVhxmxvXD3cOVDm5ZdCAyxDjps7xe7VdH57nIevZKFEjLXIx8WSOgIVrvUXixSaQLBwUJemIA42-BLt3rmhPOK/s1600/Parallel+ports.jpg" height="420" width="640" /></a></div>
<br />
<br />
We
can choose any two pins( depends on the type of controller) and assign
one pin(say pin-1) for the switch and the other(pin-2) for connecting
the LED. And the a program is written in a manner that when the switch
is pressed blink the LED for next five seconds.<br />
<br />
Program
logic: when the switch is closed the pin is actually connected to
ground. That means a 'zero' is given as input. Then as per the program
when a 'zero' is detected in pin-1, a loop/timer starts counting till 5
seconds, and an output is given to the pin-2 till the loop/timer ends.
Out put means a 'one' is given to the pin-2 which is +5 volts causes the
LED to blink.<br />
<br />
<br />
<b>Uses of parallel ports</b>:<br />
<br />
Usually
micro controllers are not used in simple circuits as stated above. They
are always used in much bigger circuits and devices that have lots of
functions depending on the situations. Situations simply mean the
conditions that are given by the user.<br />
<br />
As example
suppose we want a device, when temperature in a room is becomes higher
than a particular value, which will turn on the air conditioner and if
the temperature falls beyond a value then turn offs the air conditioner.
Then we have got two conditions that are, two temperatures. Using a
digital thermometer we continuously check the temperature and the
readings are given to the micro controller through any one pin of the
micro controllers parallel port. Then we wright the program to detect
the condition ( both the values of temperature) and also what to do for
that conditions.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwEV0L4xNPvcDl2qlKyWL6snUf1yn6DdO2ar3dzPyFv7cJ6SlL3hU66lUiFLMN03mk6Godc8wHZ_xH57OByc5sdhTkQXowzDmTqRRQp7MYgwdl_LAOxCTcqMzPVhn-DO40EOc4TOh2po7p/s1600/8051-Architecture_4.gif" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwEV0L4xNPvcDl2qlKyWL6snUf1yn6DdO2ar3dzPyFv7cJ6SlL3hU66lUiFLMN03mk6Godc8wHZ_xH57OByc5sdhTkQXowzDmTqRRQp7MYgwdl_LAOxCTcqMzPVhn-DO40EOc4TOh2po7p/s1600/8051-Architecture_4.gif" height="450" width="640" /></a></div>
<br />
<br />
Or
in some other devices we have to detect several conditions and have to
perform so many functions. Also these ports are used to interface other
chips and external memory. That will be discussed in the following
chapters.</div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-32103913751703355292014-06-12T20:05:00.002-07:002014-06-12T20:05:44.082-07:00What is a microcontroller<div dir="ltr" style="text-align: left;" trbidi="on">
<div data-angle="0" data-canvas-width="968.650917485058" data-font-name="Times" style="font-family: serif; left: 192.135px; text-align: left; top: 145.744px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.08546, 1);">
<span style="font-size: small;">In the first chapter we will discuss about - what is a micro controller?</span><br />
<br />
<span style="font-size: small;">So
first let me tell you what is the difference between an IC and a micro
controller or what is the difference between normal IC controlled
circuit and a micro controller controlled circuit.</span><br />
<br />
<br />
<span style="font-size: small;">A normal IC is </span><span style="font-size: small;">or integrated circuit , sometimes called a <i>chip</i>
or microchip, is a semiconductor wafer on which thousands or millions
of tiny resistors, capacitors, and transistors are fabricated. An
IC can function as an amplifier, oscillator, timer, counter, computer
memory, or microprocessor. A particular IC
is categorized as either linear (analog) or digital, depending on its
intended
application.</span><br />
<span style="font-size: small;">Such an IC is pre programmed or
the purpose of its application is defined by the manufactures and those
IC's can be used only for that purpose.</span><br />
<br />
<br />
<br />
<span style="font-size: small;">Now come to micro controller </span><br />
<br />
<span style="font-size: small;">A micro controller is a small, low-cost computer-on-a-chip which usually</span></div>
<div data-angle="0" data-canvas-width="121.4796634735465" data-font-name="Times" style="font-family: serif; left: 192.135px; text-align: left; top: 182.932px; transform-origin: 0% 0% 0px; transform: rotate(0deg) scale(1.08464, 1);">
<span style="font-size: small;">includes:–</span></div>
<ul style="text-align: left;">
<li><span style="font-size: small;">An 8 or 16 bit microprocessor (CPU)</span></li>
<li><span style="font-size: small;">A small amount of RAM</span></li>
<li><span style="font-size: small;">Programmable ROM and/or flash memory</span></li>
<li><a href="http://embedded-tutorials.blogspot.com/2014/03/chapter-2-parallel-ports-basics.html"><span style="font-size: small;">Parallel and/or serial I/O</span></a></li>
<li><span style="font-size: small;">Timers and signal generators</span></li>
<li><span style="font-size: small;">Analog to Digital (A/D) and/or Digital to Analog (D/A) conversion.</span></li>
</ul>
<span style="font-size: small;"> In a micro controller, the device is user
programmable. That is the user can write programs as per his needs and
can be loaded into the micro controller. So a single micro controller
can be used for various purposes by changing the program written into
it. </span><br />
<span style="font-size: small;">It is also called</span><span style="font-size: small;"> embedded controllers,</span><span style="font-size: small;"> because the micro controller and support</span><span style="font-size: small;"> circuits are often built into, or embedded in, the devices they control.</span>Embedded products are designed to allow the<span style="font-size: small;"> user to provide input and receive results.</span><br />
<br />
<br />
<br />
<h4 style="text-align: left;">
<span style="font-size: small;">Basic structure of a micro controller </span></h4>
<h4 style="text-align: left;">
<span style="font-size: small;"><br /></span></h4>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5SkGH5KJle7Ze1wuD4YGHQWdFyxlJ6b2Vr_kp8xYz-1UyyY34mwLoh_yOvCOwHmkvz3aNGCy_KuO0G5vR9avQ87EoORZugJ270xBKdC_WLTz80-4pPFQVDxOQxIrF-j8RKb1whv8HQy29/s1600/MICRO+CONTROLLER+BLOCK.gif" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5SkGH5KJle7Ze1wuD4YGHQWdFyxlJ6b2Vr_kp8xYz-1UyyY34mwLoh_yOvCOwHmkvz3aNGCy_KuO0G5vR9avQ87EoORZugJ270xBKdC_WLTz80-4pPFQVDxOQxIrF-j8RKb1whv8HQy29/s1600/MICRO+CONTROLLER+BLOCK.gif" height="480" width="640" /></a></div>
<h4 style="text-align: left;">
<span style="font-size: small;">Block diagram explanation:</span></h4>
<div style="text-align: left;">
<span style="font-size: small;">Crystal
oscillator:- It has the same function as that of a human heart. It
generates the clock pulses through which the entire functions of the
micro controller are carried out. </span></div>
<div style="text-align: left;">
<span style="font-size: small;"><br /></span></div>
<div style="text-align: left;">
<span style="font-size: small;">ADC/DAC:-
Since the micro controller is a digital device, the ADC/DAC port/pin is
used for interfacing the external analog devices</span></div>
<div style="text-align: left;">
<span style="font-size: small;"><br /></span></div>
<div style="text-align: left;">
<span style="font-size: small;">Timers/Counters:- </span>The timer TMR0 has a wide range of applications in practice. Very few
programs don't use it in some way. It is very convenient and easy to use
for writing programs or subroutines for generating pulses of arbitrary
duration, time measurement or counting external pulses (events) with
almost no limitations.</div>
<div style="text-align: left;">
<br /></div>
<div class="MsoBodyText">
<a href="http://embedded-tutorials.blogspot.com/2014/03/chapter-2-parallel-ports-basics.html">Parallel I/O ports:</a>- have a wide range of alternative
functions:</div>
<div class="BulletList" style="margin-left: 22.5pt;">
<span style="font-size: small;"><span lang="X-NONE" style="font-family: "Times New Roman","serif";">•</span><span lang="X-NONE">
UART
Universal
asynchronous receiver/transmitter</span></span></div>
<span style="font-size: small;">
</span>
<br />
<div class="BulletList" style="margin-left: 22.5pt;">
<span style="font-size: small;"><span lang="X-NONE" style="font-family: "Times New Roman","serif";">•</span><span lang="X-NONE"> SSI
Synchronous
serial interface</span></span></div>
<span style="font-size: small;">
</span>
<br />
<div class="BulletList" style="margin-left: 22.5pt;">
<span style="font-size: small;"><span lang="X-NONE" style="font-family: "Times New Roman","serif";">•</span><span lang="X-NONE"> I<sup>2</sup>C
Inter-integrated circuit</span></span></div>
<span style="font-size: small;">
</span>
<br />
<div class="BulletList" style="margin-left: 22.5pt;">
<span style="font-size: small;"><span lang="X-NONE" style="font-family: "Times New Roman","serif";">•</span><span lang="X-NONE">
Timer
Periodic
interrupts, input capture, and output compare </span></span></div>
<span style="font-size: small;">
</span>
<br />
<div class="BulletList" style="margin-left: 22.5pt;">
<span style="font-size: small;"><span lang="X-NONE" style="font-family: "Times New Roman","serif";">•</span><span lang="X-NONE">
PWM
Pulse
width modulation</span></span></div>
<span style="font-size: small;">
</span>
<br />
<div class="BulletList" style="margin-left: 22.5pt;">
<span style="font-size: small;"><span lang="X-NONE" style="font-family: "Times New Roman","serif";">•</span><span lang="X-NONE"> ADC
Analog
to digital converter, measure analog signals </span></span></div>
<span style="font-size: small;">
</span>
<br />
<div class="BulletList" style="margin-left: 22.5pt;">
<span style="font-size: small;"><span lang="X-NONE" style="font-family: "Times New Roman","serif";">•</span><span lang="X-NONE">
Analog Comparator
Compar</span>e<span lang="X-NONE"> two analog
signals</span></span></div>
<span style="font-size: small;">
</span>
<br />
<div class="BulletList" style="margin-left: 22.5pt;">
<span style="font-size: small;"><span lang="X-NONE" style="font-family: "Times New Roman","serif";">•</span><span lang="X-NONE">
QEI
Quadrature
encoder interface</span></span></div>
<span style="font-size: small;">
</span>
<br />
<div class="BulletList" style="margin-left: 22.5pt;">
<span style="font-size: small;"><span lang="X-NONE" style="font-family: "Times New Roman","serif";">•</span><span lang="X-NONE">
USB
Universal
serial bus</span></span></div>
<span style="font-size: small;">
</span>
<br />
<div class="BulletList" style="margin-left: 22.5pt;">
<span style="font-size: small;"><span lang="X-NONE" style="font-family: "Times New Roman","serif";">•</span><span lang="X-NONE">
Ethernet
High-speed network</span></span></div>
<span style="font-size: small;">
</span>
<br />
<div class="BulletList" style="margin-left: 22.5pt;">
<span style="font-size: small;"><span lang="X-NONE" style="font-family: "Times New Roman","serif";">•</span><span lang="X-NONE">
CAN
Controller
area network</span></span></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<span style="font-size: small;"><span lang="X-NONE">Detailed explanation of the block diagram will be published in the following posts, thank you.</span></span></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<br /></div>
<div class="BulletList" style="margin-left: 22.5pt;">
<span style="font-size: small;"><span lang="X-NONE"><span style="font-size: xx-small;">tags:
embedded for beginners, embedded tutorials, micro controller tutorials,
micro controller basics, micro controller tutorials, micro controller
basics</span></span></span></div>
</div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-50963347695864733132013-11-06T01:50:00.002-08:002013-11-06T01:50:15.976-08:00PIC Serial Communication Tutorial (UART)<div dir="ltr" style="text-align: left;" trbidi="on">
First, a quick history of RS232. What is RS232? It's just a name for a
standard that has propagated from generation to generation of computers.
The first computers had serial ports that used RS232, and even current
computers have serial ports (or at least USB ports that act like RS232
ports). Back in the day, serial information needed to be passed from
devices like printers, joysticks, scanners, etc to the computer. The
simplest way to do this was to pass a series of 1s and 0s to the
computer. Both the computer and the device agreed on a speed of
information - 'bits per second'. A computer would pass image data to a
printer at 9600 bits per second and the printer would listen for this
stream of 1s and 0s expecting a new bit every 1/9600 = 104us (104
micro-seconds, 0.000104 seconds). As long as the computer output bits at
the pre-determined speed, the printer could listen. <br />
Zoom forward to today. Electronics have changed a bit. Before they were
relatively high power, high voltage devices. The standard that is
'RS232' dictates that a bit ranges from -12V to +12V. Modern electronics
do not operate at such high positive and negative voltages. In fact,
our PIC runs 0V to 5V. So how do we get our 5V micro to talk the RS232
+/-12V voltages? This problem has been solved by the IC manufacturers of
the world. They have made an IC that is generically known as the MAX232
(very close to RS232, no?).<br />
The MAX232 is an IC originally designed by a company called Maxim IC
that converts the +/-12V signals of RS232 down to the 0/5V signals that
our PIC can understand. It also boosts the voltage of our PIC to the
needed +/-12V of the RS232 protocol so that a computer can understand
our PIC and vice versa. To get our PIC IC sending serial characters to
a computer, we have to send these serial signals through a MAX232
circuit so that the computer receives +/-12V RS232 signals. Don't worry
if you're working with a chip labeled 'ICL232' or 'ST232' - these are
just generics of the MAX232. Everyone says 'MAX232'. The ICs all
function the same and nearly all have the same pinout.<br />
<br />
<br />
<h2 style="text-align: left;">
<a href="http://www.facebook.com/groups/EmbeddedProjects/" target="_blank"> Discussion Group</a></h2>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 2;">
</div>
<div class="MsoNormal" style="line-height: normal;">
</div>
<div class="MsoNormal" style="line-height: normal;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Circuit </span></b></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 2;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_00-k44yfnQuB8vQJyqSWjXxaSXFRmX5a3EJBmBqU_y-a8w7117yiBfpN5xL0Yxt5ls4_dcdn0KkATCmeXZhZP1w0NY6yJ_Qtb1-nO5yjShsMRnWuAeOJ7_svkHVUhmv4nydiO6hCRF-f/s1600/sche.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_00-k44yfnQuB8vQJyqSWjXxaSXFRmX5a3EJBmBqU_y-a8w7117yiBfpN5xL0Yxt5ls4_dcdn0KkATCmeXZhZP1w0NY6yJ_Qtb1-nO5yjShsMRnWuAeOJ7_svkHVUhmv4nydiO6hCRF-f/s640/sche.JPG" width="584" /> </a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://microcontrollerprojects00.blogspot.in/2012/03/pic-serial-communication-tutorial-uart.html" target="_blank"> </a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://microcontrollerprojects00.blogspot.in/2012/03/pic-serial-communication-tutorial-uart.html" target="_blank">Read full article</a></div>
</div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-91667349478990304532013-11-06T01:36:00.000-08:002013-11-06T01:36:19.981-08:00FM Radio jammer<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<h2>
FM Radio jammer</h2>
<br /><div style="text-align: justify;">
<strong>Description.</strong><br />
Circuit shown here can be used to jam FM radios in its vicinity. The
circuit is nothing but a classic single transistor oscillator operating
in the VHF region. Working principle of the circuit is very simple and
straight forward. Powerful VHF oscillations from the circuit will
interfere with the FM signals to nullify it. Jammer circuits like this
are illegal in many countries and you must assemble this circuit on your
own responsibility. This circuit is intended only for fun and i request
you not to misuse it.<br />
<strong>Circuit diagram.</strong></div>
<div style="text-align: justify;">
<img alt="FM radio jammer" class="alignleft size-full wp-image-2724" height="339" src="http://www.circuitstoday.com/wp-content/uploads/2009/12/FM-radio-jammer.png" title="FM radio jammer" width="524" /><br />
<strong> </strong></div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
<strong>Notes.</strong></div>
<ul>
<li> For L1 make 6 turns of 16AWG enamelled copper wire on a 9mm plastic former.</li>
<li>The circuit can be powered using a 9V PP3 battery.</li>
<li>For extended range, use an antenna.</li>
<li>A 30cm long wire connected anywhere on the coil will do for the antenna.</li>
<li>For better performance, assemble the circuit on a good PCB.</li>
</ul>
<br />
<br />
<br />
<br />
Reference : www.circuitstoday.com, www.wikipedia.com, www.microcontrollerprojects00.blogspot.in </div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-63915833276526840682013-09-01T00:05:00.004-07:002013-09-01T00:05:53.100-07:00Heart rate monitor using 8051<div dir="ltr" style="text-align: left;" trbidi="on">
In this article we are listing all the projects and circuits we have
developed using the 8051 micro controller. We have tested all of these
projects in our lab and verified the working . All these projects are
made to solve a real world requirement or problem. Engineering students
& other diploma students will find these projects useful for their
mini project and main project requirements.<br />
All the 8051 projects listed below are made using the 8051 compliant
microcontroller from Atmel – AT89S51. We have given the correct circuit
diagram, working and software code (in assembly language) for each and
every project. You can use all of them freely for your project &
learning requirements. In case you are using a controller other than
AT89S51 – please be sure to check the hardware of your controller and
compare it with that of AT89S51. This is necessary because we have
developed all the software in assembly language. If you are not that
good at assembly language, you can convert the software into C language
& use it with any compliant 8051 controller.<br />
<a href="http://www.circuitstoday.com/wp-content/uploads/2013/02/robots.jpg"><img alt="8051 micro controller based projects & circuits " class="aligncenter size-large wp-image-9069" height="768" src="http://www.circuitstoday.com/wp-content/uploads/2013/02/robots-1024x768.jpg" title="8051 micro controller based projects & circuits " width="1024" /></a><br />
<span style="text-decoration: underline;"><a href="http://letsmakerobots.com/">Image Source</a></span><br />
<strong>1.</strong><span style="text-decoration: underline;"><strong><a href="http://www.circuitstoday.com/ultrasonic-range-finder-using-8051"> Ultrasonic Range Finder using 8051</a></strong></span>
– This project as the name says, is an application to measure distance
of an object. It uses an ultrasonic transducer module HC-SR04 to measure
the distance and the controller AT89S51 to make the necessary
processing. This project can be used to make applications like
Automotive parking sensor, Obstacle warning systems, Terrain monitoring
robots etc. This ultrasonic range finder can measure distances upto 2.5
meters with an accuracy of 1 cm.<br />
<strong>2.</strong> <span style="text-decoration: underline;"><strong><a href="http://www.circuitstoday.com/digital-tachometer-using-8051">Digital Tachometer using 8051</a></strong></span>
– This project is a digital tachometer which can be used to measure
the revolutions per second of any object like a rotating wheel or a disc
or a shaft. This application built using 8051 micro controller can
measure upto 255 revolutions/second with an accuracy of 1 rev/sec. This
application has 3 important sections – 1) is the optical pickup designed
to pick the revolutions of the object using a photo transistor and LED.
2) is the processing stage designed using 8051 and the associated
software 3) is the display section using 7 segment displays.<br />
<strong>3. <a href="http://www.circuitstoday.com/water-level-controller-using-8051">Water Level Controller using 8051</a></strong>
– This is one of the most popular project we have published using 8051
controller. This water level controller monitors the level of the over
head tank and automatically switches on the water pump when ever the
level goes below a preset limit. The level of the over head tank is
indicated using 5 leds and the pump is switched of when the over head
tank is filled. We have given an illustrated circuit diagram with
working explained in detail. You will also find the software codes
written in assemble language.<br />
<strong>4. <span style="text-decoration: underline;"><a href="http://www.circuitstoday.com/voltmeter-using-8051z">Voltmeter using 8051</a> </span> - </strong>We
all must have used a multimeter from our young days. Have you ever
bothered to create one ? So here is one such an interesting project. A
Voltmeter using 8051 micro controller. Even though its quiet simple and
an easy to make one, you shall find it really interesting. This can be
used as an application at the mini project level for engineering and
diploma students. This digital voltmeter can measure 0 to 5 volts and
has a sensitivity of 200mV which is a bit low but this project is meant
for demonstrating how an ADC and seven segment display can be
interfaced to 8051 to obtain a digital readout of the input
voltage. ADC0804 is the ADC and AT89S51 is the controller used in this
project.<br />
<strong>5.</strong> <a href="http://www.circuitstoday.com/thermometer-using-8051"><strong>Thermometer using 8051</strong> </a>-
This is an interesting project designed to measure temperature using
8051. Its a simple 0-100°C digital thermometer with 1°C resolution using
8051. The circuit is based on LM35 analog temperature sensor, ADC0804
and AT89S51 microcontroller. LM35 is an analogue temperature sensor IC
which can measure a temperature range of -55 to 150°C. Its output
voltage varies 10mV per °C change in temperature.<br />
<strong>Knowledge Resources:-</strong> The articles below given are
basics on how to work with 8051 micro controller. You can refer them if
you come across a road block anywhere!<br />
<strong>1.</strong> <span style="text-decoration: underline;"><strong><a href="http://www.circuitstoday.com/interfacing-seven-segment-display-to-8051">Interfacing 7 segment display to 8051</a></strong></span> – A good tutorial on interfacing 7 segment display to 8051 micro controller.<br />
<strong>2.</strong> <span style="text-decoration: underline;"><strong><a href="http://www.circuitstoday.com/interfacing-16x2-lcd-with-8051">Interfacing LCD display to 8051</a></strong></span> – Explains how to interface a 16×2 LCD display with 8051 micro controller.<br />
<strong>3.</strong> <span style="text-decoration: underline;"><strong><a href="http://www.circuitstoday.com/interfacing-dc-motor-to-8051">Interfacing DC motor to 8051</a></strong></span> – Explains how to interface a DC motor with 8051 micro controller.<br />
<strong>4.</strong> <span style="text-decoration: underline;"><strong><a href="http://www.circuitstoday.com/interfacing-led-using-push-button-switch-to-8051">Interfacing push button switch to 8051</a></strong></span> – Interfacing LED & Push button switch to 8051 micro controller.<br />
<strong>5.</strong> <span style="text-decoration: underline;"><strong><a href="http://www.circuitstoday.com/interfacing-adc-to-8051">Interfacing ADC to 8051</a></strong></span>
– This articles gives you a good detail on how to interface ADC to 8051
micro controller. ADC 0804 is used to explain the interfacing procedure
with an example software routine.<br />
<table><tbody>
<tr><td>
<ins style="border: none; display: inline-table; height: 280px; margin: 0; padding: 0; position: relative; visibility: visible; width: 336px;"><ins id="aswift_2_anchor" style="border: none; display: block; height: 280px; margin: 0; padding: 0; position: relative; visibility: visible; width: 336px;"></ins></ins>
</td>
<td>
</td></tr>
</tbody></table>
</div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com1tag:blogger.com,1999:blog-7333549865774307597.post-70199500819951182032013-09-01T00:02:00.000-07:002013-09-01T00:02:15.529-07:00Alcohol Breathalyzer circuit using 8051 microcontroller (AT89S51).<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
This article is about a breathalyzer
circuit using 8051 microcontroller which outputs the blood alcohol
content (BAC) from the breath. The BAC is displayed in percentage on a 3
digit seven segment display. The microcontroller used if AT89S51 which
belongs to the 8051 family and the alcohol sensor is MQ135 gas sensor
from Futurelec.</div>
<h4>
MQ135 gas sensor.</h4>
<div style="text-align: justify;">
MQ135 is a stable and sensitive gas
sensor which can detect ammonia, carbon dioxide, alcohol, smoke,
nitrogen dioxide etc. The sensor consists of a tin dioxide sensitive
layer inside aluminium oxide micro tubes, measuring electrode and a
heating element inside a tubular aluminium casing. The front end of the
sensor is covered using a stainless steel net and the rear side holds
the connection terminals.</div>
<div style="text-align: justify;">
The ethyl alcohol present in the breath
is oxidized into acetic acid while passing over the heating element.
This ethyl alcohol falls on the tin dioxide sensing layer and as a
result its resistance decreases. This resistance variation is converted
into a suitable voltage variation using an external load resistor. The
typical connection arrangement of an MQ135 alcohol sensor is shown
below.</div>
<div class="wp-caption aligncenter" id="attachment_9199" style="width: 249px;">
<a href="http://www.circuitstoday.com/wp-content/uploads/2013/06/mq135-connection-diagram.png"><img alt="mq135 alcohol sensor" class="size-full wp-image-9199" height="228" src="http://www.circuitstoday.com/wp-content/uploads/2013/06/mq135-connection-diagram.png" width="239" /></a><div class="wp-caption-text">
MQ135 alcohol sensor</div>
</div>
<div style="text-align: justify;">
MQ135 has different resistance values at
different temperature and different concentration of gases. The
manufacturer recommends to calibrate the sensor at 100ppm of ammonia or
50ppm of alcohol. The recommended value of the load resistor is between
10K to 47K.</div>
<h4>
Circuit diagram.</h4>
<div class="wp-caption aligncenter" id="attachment_9200" style="width: 1188px;">
<div class="wp-caption-text">
Breathalyzer using 8051</div>
</div>
<br />
<div style="text-align: justify;">
The voltage output of the alcohol sensor is converted into a digital format using the ADC0804 (IC1). The V<em>ref/2</em> pin of the ADC is held at 1.28V using the voltage divider network made of R14 and R15. V<em>ref/2</em>
=1.28V means the step size of the ADC will be 10mV and the output of
the ADC will increment by one bit for every 10mV increment in the analog
input. Refer the datasheet of ADC0804 for a better grasp. Digital out
of the ADC (D0 to D7) is interfaced to Port1 of the microcontroller.
Control signals CS, RD, WR, INTR are obtained from the microcontrollers
P3.7, P3.6, P3.5, P3.4 pins respectively. R9 and C1 are associated with
the clock circuitry of the ADC0804.</div>
<div style="text-align: justify;">
Capacitor C3 connected between V<em>in+</em> and V<em>in-</em>
of the ADC0804 filters of noise (if any) in the sensor output. If C3 is
not used the digital output of the ADC will not be stable. This filter
capacitor will surely induce some lag in the ADC response but it is not
very relevant in this entry level application. The microcontroller
performs required manipulations on the ADC digital output in order to
convert it into BAC % and displays it on the three digit seven segment
display. Port0 of the microcontroller is interfaced to the multiplexed
three digit seven segment display. The drive signals for the threes
digits are obtained from the microcontroller’s P3.0, P3.1, P3.2 pins
respectively.</div>
<h4>
Program.</h4>
<pre>ORG 00H
MOV P1,#11111111B
MOV P0,#00000000B
MOV P3,#00000000B
MOV DPTR,#LUT
MAIN: MOV R4,#250D
CLR P3.7
SETB P3.6
CLR P3.5
SETB P3.5
WAIT: JB P3.4,WAIT
CLR P3.7
CLR P3.6
MOV A,P1
MOV R5,A
SUBB A,#86
JC NEXT
SETB P3.3
CLR PSW.7
NEXT: MOV A,R5
SUBB A,#115D
JNC LABEL
MOV A,#00000000B
CLR PSW.7
LABEL: MOV B,#5D
MUL AB
MOV B,#8D
DIV AB
MOV B,#10D
DIV AB
MOV R6,A
MOV R7,B
DLOOP:SETB P3.0
MOV P0,#01000000B
ACALL DELAY
CLR P3.0
SETB P3.1
MOV A,R6
ACALL DISPLAY
MOV P0,A
ACALL DELAY
CLR P3.1
SETB P3.2
MOV A,R7
ACALL DISPLAY
MOV P0,A
ACALL DELAY
CLR P3.2
DJNZ R4,DLOOP
SJMP MAIN
DELAY: MOV R3,#255D
LABEL1: DJNZ R3,LABEL1
RET
DISPLAY: MOVC A,@A+DPTR
CPL A
RET
LUT: DB 3FH
DB 06H
DB 5BH
DB 4FH
DB 66H
DB 6DH
DB 7DH
DB 07H
DB 7FH
DB 6FH
END</pre>
<h4>
Notes.</h4>
<ul>
<li>The MQ135 gas sensor requires around 5 minutes of preheat before the first use.</li>
<li>The MQ135 takes few minutes to retrace back to its normal condition after a positive test (alcohol present in the breath).</li>
<li>If there is no alcohol in the breath the sensor output will swing back to its normal condition very fast.</li>
<li>Read these articles Interfacing seven segment display to 8051 microcontroller , Interfacing ADC to 8051 microcontroller before attempting this project.</li>
<li>This breathalyzer circuit is just an entry level one and is not
suitable for high end applications such as law enforcement or laboratory
application.</li>
<li>The logic for converting the digital output of ADC into BAC percentage was obtained using approximation techniques.</li>
</ul>
</div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-10042563387077256702013-08-01T08:03:00.001-07:002013-08-01T08:03:21.733-07:00Online Work<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="art-layout-cell art-content">
<article class="art-post art-article post-419 page type-page status-publish hentry" id="post-419">
<h1 class="art-postheader">
<br /></h1>
<strong><span style="font-size: large;">Are you interested in making money online ???</span> </strong><br /><br /><div class="art-postcontent clearfix">
<script type="text/javascript"><!--
google_ad_client = "ca-pub-0309356661943582";
/* inside leader */
google_ad_slot = "9931819752";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
Thanks to the Internet there are now hundreds of opportunities to work
online from home using your ordinary computer. Our company is doing
online job consultancy for everyone and we wants that you can make money
online working from home using these methods and our guidance. These
opportunities are open to all including working, housewives, teens*,
students etc.<br />
<br />
<ins style="border: none; display: inline-table; height: 60px; margin: 0; padding: 0; position: relative; visibility: visible; width: 468px;"><ins id="aswift_0_anchor" style="border: none; display: block; height: 60px; margin: 0; padding: 0; position: relative; visibility: visible; width: 468px;"></ins></ins><br />
A computer and an internet connection is the basic requirement.<br />
<br />
<table border="0" cellpadding="0" cellspacing="0" style="width: 550px;">
<tbody>
<tr>
<td><b>If you want…</b></td>
</tr>
<tr>
<td>
<ul>
<li>If you want to do PART-TIME or FULL TIME JOB from Home</li>
</ul>
</td>
</tr>
<tr>
<td>
<ul>
<li>If you want a Very Good Monthly Income Easily at home</li>
</ul>
</td>
</tr>
<tr>
<td>
<ul>
<li>If you are tired to work hard to earn your daily needs</li>
</ul>
</td>
</tr>
<tr>
<td>
<ul>
<li>If you don’t want to go any office and want to work from home</li>
</ul>
</td>
</tr>
<tr>
<td>
<ul>
<li>If you are tired to obey Boss rules</li>
</ul>
</td>
</tr>
<tr>
<td>
<ul>
<li>If you tired with your daily routine life and want a financial change.</li>
</ul>
</td>
</tr>
<tr>
<td>
<ul>
<li>If you can spare only 1 to 2-3 hours daily</li>
</ul>
</td>
</tr>
<tr>
<td>
<ul>
<li>If you really want to do Easy Online Computer Based Jobs</li>
</ul>
</td>
</tr>
</tbody>
</table>
<br />
<b> </b><br />
<br />
<ins style="border: none; display: inline-table; height: 60px; margin: 0; padding: 0; position: relative; visibility: visible; width: 468px;"><ins id="aswift_1_anchor" style="border: none; display: block; height: 60px; margin: 0; padding: 0; position: relative; visibility: visible; width: 468px;"></ins></ins><br />
<b>Can Anyone Make Money Online Working From Home?</b><br />
<br />
Of course. Many thousands of people do. You might have friends or
family members who make a living with a home-based Internet business
already.<br />
<br />
<b>Who can start this business?</b><br />
<br />
<table border="0" cellpadding="0" cellspacing="0" style="width: 626px;">
<tbody>
<tr>
<td width="626"><b> </b>Now the question comes that Who can start this business ?</td>
</tr>
<tr>
<td width="626">
<ul>
<li>You will only need a internet connection on your computer.</li>
</ul>
</td>
</tr>
<tr>
<td width="626">
<ul>
<li>No issue if you are using internet very first time, or you are a good experienced.</li>
</ul>
</td>
</tr>
<tr>
<td width="626">
<ul>
<li>You can do it with your own computer or anywhere like cyber-cafe.</li>
</ul>
</td>
</tr>
<tr>
<td width="626">
<ul>
<li>You will have to give some minutes to few hours only to do this all</li>
</ul>
</td>
</tr>
<tr>
<td width="626">
<ul>
<li>No skill on computer is required whether you are a housewife, a
student, retired person,already working in a company, own business etc.
anyone can start working.</li>
</ul>
</td>
</tr>
</tbody>
</table>
<br />
<em>If you want to start NOW… then you are at right place…</em><br />
<br />
<div align="center">
<strong><br /></strong></div>
<br />
<ins style="border: none; display: inline-table; height: 60px; margin: 0; padding: 0; position: relative; visibility: visible; width: 468px;"><ins id="aswift_2_anchor" style="border: none; display: block; height: 60px; margin: 0; padding: 0; position: relative; visibility: visible; width: 468px;"></ins></ins><br />
<div style="text-align: center;">
<strong></strong></div>
<strong>
</strong><strong></strong><br />
</div>
</article>
</div>
</div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-73141151685127800232013-06-16T07:55:00.000-07:002013-06-16T07:55:34.242-07:00STM32F4 Discovery Tutorial 1 Using NETMF - Setting Up the Environment <div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKrta7c7M-BmOxOWUJco4ag_3nEBF_Wuyc0iMP5i9SYGxXwsnTnrlhul3ZWz4chARiB9gTMzqnzp2TG_FLFAC3n3X0LuIrI12oKMq5HgFVt82XrG6XGDy8kMqUJQgs-9R1ZwiqGK3gplNG/s1600/url.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKrta7c7M-BmOxOWUJco4ag_3nEBF_Wuyc0iMP5i9SYGxXwsnTnrlhul3ZWz4chARiB9gTMzqnzp2TG_FLFAC3n3X0LuIrI12oKMq5HgFVt82XrG6XGDy8kMqUJQgs-9R1ZwiqGK3gplNG/s640/url.jpg" width="406" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">STM32F4 Discovery</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<span style="color: black;"><span style="font-size: 14.0pt; line-height: 115%;">I received
my STM32F4 Discovery board few days ago. During these days I am searching for a
good compiler for the STM32 which is free or provide a better code sized free
version. I am already working in .Net environment using C#, and I it is pretty
good. In Google search I saw STM32F4 programming using<span style="mso-spacerun: yes;"> </span>.Net, the below link.</span></span>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw854wrom_WeR1N0jd8ZgeM5rB08yyjTEOOQPFoNni1_eTauKIWrXixBY-PjArHZnHcruxEdDHJZjkBmKTPAqUy3t61kb0ICo4LERBNiX62Y8JfSbKb4e5LYx18iLohkrvMIFmqgEF0BeT/s1600/device.jpg" style="margin-left: 1em; margin-right: 1em;">
</a><br />
<div class="MsoNormal">
<a href="http://netmf4stm32.codeplex.com/"><span style="color: blue; font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-IN;">http://netmf4stm32.codeplex.com/</span></a></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-IN;">We are
using a .net port for STM32F4, it is .Net micro framework. </span></b><br />
<b style="mso-bidi-font-weight: normal;"><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-IN;">I am using Visual
Studio Ultimate 2010 (Compatibility of others is not known).</span></b></div>
<div class="MsoNormal">
<a href="http://www.microsoft.com/visualstudio/eng/downloads#d-2010-express"><b style="mso-bidi-font-weight: normal;"><span style="font-family: "Times New Roman","serif"; font-size: 16.0pt; line-height: 115%; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-IN;">Download Visual Studio</span></b></a><b style="mso-bidi-font-weight: normal;"><span style="font-family: "Times New Roman","serif"; font-size: 16.0pt; line-height: 115%; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-IN;"></span></b></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-IN;">I hope
you have an STM32F4 Discovery Board.</span></b></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-size: 16.0pt; line-height: 115%;">Necessary Tools </span></b></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">1.<span style="font: 7.0pt "Times New Roman";">
</span></span></span></b><b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt; line-height: 115%;"><span style="color: red;">STM32 ST-LINK Utility</span><span style="mso-spacerun: yes;"> </span></span></b><a href="http://www.st.com/internet/com/SOFTWARE_RESOURCES/TOOL/DEVICE_PROGRAMMER/stm32_st-link_utility.zip"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt; line-height: 115%;">Get It -></span></b></a><b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt; line-height: 115%;"> </span></b></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">2.<span style="font: 7.0pt "Times New Roman";">
</span></span></span></b><b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt; line-height: 115%;">USB Micro and USB Mini cable. </span></b></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">3.<span style="font: 7.0pt "Times New Roman";"> <span style="color: red;">
</span></span></span></span></b><b style="mso-bidi-font-weight: normal;"><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-IN;"><span style="color: red;">.NET
MicroFramework SDK</span><span style="mso-spacerun: yes;"> </span></span></b><a href="http://netmf.codeplex.com/releases/view/91594"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt; line-height: 115%;">Get It -> </span></b></a><b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt; line-height: 115%;"> </span></b></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">4.<span style="font: 7.0pt "Times New Roman";">
</span></span></span></b><a href="http://www.facebook.com/groups/EmbeddedProjects/332672443517957/"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt; line-height: 115%;">Download these files</span></b></a><b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt; line-height: 115%;"> (</span></b><span style="font-size: 12.0pt; line-height: 115%;">Evaluation purpose only driver)</span></div>
<div class="MsoListParagraphCxSpLast" style="margin-left: 108.0pt; mso-add-space: auto; mso-list: l0 level3 lfo1; mso-text-indent-alt: -9.0pt; text-indent: -108.0pt;">
<b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;"><span style="font: 7.0pt "Times New Roman";">
</span>i.<span style="font: 7.0pt "Times New Roman";">
</span></span></span></b><a href="http://www.facebook.com/groups/EmbeddedProjects/"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt; line-height: 115%;">If you are not a
member, join</span></b></a><b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt; line-height: 115%;"></span></b></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt; line-height: 115%;">Install all the softwares.</span></b></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt; line-height: 115%;"> </span></b></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt; line-height: 115%;">Steps to follow: <a href="http://microcontrollerprojects00.blogspot.in/2013/02/stm32f4-discovery-tutorial-1-using.html" target="_blank">Click here</a></span></b></div>
</div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-71017808446263634732013-06-16T07:51:00.000-07:002013-06-16T07:52:25.612-07:00Smart Home : The Project<div dir="ltr" style="text-align: left;" trbidi="on">
<div align="center" class="MsoNormal" style="background-color: #f3f3f3; color: #474747; font-family: Arial, Verdana; font-size: 14px; line-height: 21px; margin-bottom: 0in; text-align: center;">
<b><span lang="EN-IN" style="font-family: 'Times New Roman', serif; font-size: 16pt; line-height: 31px;">ABSTRACT</span></b></div>
<div class="MsoNormal" style="background-color: #f3f3f3; color: #474747; font-family: Arial, Verdana; font-size: 14px; line-height: 21px; margin-bottom: 0in; text-align: justify; text-indent: 0.5in;">
</div>
<div class="MsoNormal" style="background-color: #f3f3f3; color: #474747; font-family: Arial, Verdana; font-size: 14px; line-height: 21px; margin-bottom: 0in; text-align: justify; text-indent: 0.5in;">
<span lang="EN-IN" style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 24px;">Smart
home technology has proved to contribute to increased independence and
safety. Smart Home Technology is a collective term for information and
communication technology in homes, where the components are
communicating through a local network. The technology may be used for
monitoring, alarming and executing actions, according to the programmed
criteria. These project includes a high level security system informs
the authorized person and to the police station by a dedicated software
using internet. The heart of the project is a Web Server running on an
ARM Cortex M4 microcontroller. There are various sensors, devices
connected to this device for security system, control and monitoring.
Dedicated softwares are there for user (.Net and Android) and police
station (.Net). The user software can control the devices in home, view
various sensor readings, status of security system, change configuration
etc. The application used in the police station use maps of local area
to provide the intruder alert. The software used in police station will
be communicating with this home server and if an intruder is detected,
it will be shown in the software as a location in map and a notification
message which makes their duty easily. Same time the house owner will
be informed by the user software. The software communicates to the Smart
Home Device using UDP protocol. The user software is compatible for
future developments like camera interfaces. </span></div>
<div class="MsoNormal" style="background-color: #f3f3f3; color: #474747; font-family: Arial, Verdana; font-size: 14px; line-height: 21px; margin-bottom: 0in; text-align: justify; text-indent: 0.5in;">
<span lang="EN-IN" style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 24px;"><br /></span></div>
<div class="MsoNormal" style="background-color: #f3f3f3; color: #474747; font-family: Arial, Verdana; font-size: 14px; line-height: 21px; margin-bottom: 0in; text-align: justify; text-indent: 0.5in;">
<span lang="EN-IN" style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 24px;"><br /></span></div>
<div class="MsoNormal" style="background-color: #f3f3f3; color: #474747; font-family: Arial, Verdana; font-size: 14px; line-height: 21px; margin-bottom: 0in; text-align: justify; text-indent: 0.5in;">
<span lang="EN-IN" style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 24px;"><br /></span></div>
<div class="MsoNormal" style="background-color: #f3f3f3; color: #474747; font-family: Arial, Verdana; font-size: 14px; line-height: 21px; margin-bottom: 0in; text-align: justify; text-indent: 0.5in;">
<span lang="EN-IN" style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 24px;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTfs_b5rMYlj40fq0TYyDOdCRnts_kFOCJbtIogfaW2R231deXLbZaAh7_6_a1Xdd18-4wD_vY7-e62Kh2_Z5fDYy6axKdObXHt6g0Wn0IzmoZNzWKL1HeJ5wZYYshxDDPL4pd1TSX4frp/s1600/smg2.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTfs_b5rMYlj40fq0TYyDOdCRnts_kFOCJbtIogfaW2R231deXLbZaAh7_6_a1Xdd18-4wD_vY7-e62Kh2_Z5fDYy6axKdObXHt6g0Wn0IzmoZNzWKL1HeJ5wZYYshxDDPL4pd1TSX4frp/s640/smg2.jpg" width="640" /></a></div>
<div class="MsoNormal" style="background-color: #f3f3f3; color: #474747; font-family: Arial, Verdana; font-size: 14px; line-height: 21px; margin-bottom: 0in; text-align: justify; text-indent: 0.5in;">
<span lang="EN-IN" style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 24px;"><br /></span></div>
<div class="MsoNormal" style="background-color: #f3f3f3; color: #474747; font-family: Arial, Verdana; font-size: 14px; line-height: 21px; margin-bottom: 0in; text-align: justify; text-indent: 0.5in;">
<span lang="EN-IN" style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 24px;">courtesy : http://microcontrollerprojects00.blogspot.in</span><br />
<span lang="EN-IN" style="font-family: 'Times New Roman', serif; font-size: 12pt; line-height: 24px;"><a href="http://microcontrollerprojects00.blogspot.in/2013/04/my-smart-home-project.html" target="_blank">read full</a></span></div>
</div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-5174284384562108492013-06-04T22:09:00.003-07:002013-06-04T22:09:46.142-07:00Multidoor Cordless Alarm<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Verdana; font-size: x-small;">Thwart the attempt of burglary by
detecting intrusion with this alarm circuit. Each door is protected by a
separate circuit built around an independent 555 timer IC in
conjunction with reed switch magnet. All the three units are powered
from a single power source. The buzzer can be plugged into the earth
line of a socket in any room of the same building having proper earth
line connection. There is no need of laying external wires up to the
buzzer unit from different rooms.<br /><table align="center" border="0" cellpadding="3" cellspacing="3" style="width: 100pixelspx;"><tbody>
<tr><td><img border="" height="662" hspace="3" src="http://www.electronicsforu.com/electronicsforu/circuitarchives/my_documents/my_pictures/A8F_1.jpg" vspace="3" width="400" /><br /><span style="font-size: xx-small;"><i><b>Fig. 1: Cordless multidoor alarm</b></i></span></td></tr>
</tbody></table>
For
door-1 alarm unit, connect reed switch S1 near the magnet of gate 1.
Wire IC1 as a frequency oscillator and set door-1 alarm unit to the
desired frequency, say, between 1 Hz and 3 Hz, using VR1. For door-2
alarm unit, connect reed switch S2 near the magnet of gate 2. Wire IC2
also as a frequency oscillator and set door-2 alarm frequency between 5
and 7 Hz using VR2. For door-3 alarm unit, connect reed switch S3 near
the magnet of gate 3. Wire IC3 also as a frequency oscillator and set
door-3 alarm frequency between 10 and 12 Hz using VR3.<br /><br />The power
supply required to operate the alarm circuits consists of a bridge
rectifier and filter capacitor C10. In normal condition, i.e., when all
the doors are closed, reset pin 4 of IC1 through IC3 remains low. As a
result, these do not oscillate and piezobuzzer PZ1 remains silent.<br /><br />When
door 1 is opened, the magnet moves away from reed switch S1. IC1
generates 1-3Hz signals and the piezobuzzer beeps to indicate that door 1
has been opened. When door 2 is opened, IC2 generates 5-7Hz signals and
the piezobuzzer beeps to indicate that door 2 has been opened.
Similarly, when door 3 is opened, the piezobuzzer beeps at the rate of
10 to 12 Hz, indicating that door 3 has been opened.<br /><table align="center" border="0" cellpadding="3" cellspacing="3" style="width: 100pixelspx;"><tbody>
<tr><td><img border="" height="124" hspace="3" src="http://www.electronicsforu.com/electronicsforu/circuitarchives/my_documents/my_pictures/8E8_2.jpg" vspace="3" width="300" /><span style="font-family: Verdana; font-size: x-small;"><span style="font-size: xx-small;"><i><b><br />Fig. 2: Circuit of remote buzzer unit</b></i></span></span></td></tr>
</tbody></table>
Thus
sitting in a room where the buzzer unit is fitted, you can easily know
(through the typical sound of the buzzer) which room has someone gained
entry into.<br /><br />Assemble the circuit on a general-purpose PCB and
connect the output to any socket (SOC1) inside the building as shown in
Fig. 1. Mains line wire is not connected to SOC1. Live and neutral wires
are connected to the primary of the step-down transformer, which is a
part of the power supply. All the three units connected are powered from
a single rectified power supply. Connect the reed switch near the
particular gate magnet through an external wire.<br /><br />Plug-in the
piezobuzzer into the earth and neutral lines of socket (SOC2) fitted in
the desired room of the same building. There is no need of laying
external wires up to the buzzer unit. This project will work off the
power line within the building.<br /><br /><b>EFY lab. </b>In the buzzer
unit, a zener diode (ZD1) is used as the voltage between earth and
neutral is around 9V instead of 0V. If you find the ideal voltage
difference of zero volt between earth and neutral lines, the circuit
will work even without ZD1 in the circuit</span></div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-39498334305571239792013-05-23T10:02:00.001-07:002013-05-23T10:02:25.858-07:00Convert WASTE BASKET into a spy robot<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPck6MsgmyCHON93L6gb4dKONuBD1qpb0hZRbS_l5O1p5Y4OXUE3hyphenhyphen3eiDPVK-46vOW9B6fYtaDTas6L972-tMmzQKZvAyYkeh2xLhTJLbUXnWrnTMqDWERBRN0Tr-08y9OApW_Ip8dk6l/s1600/New+folder1+%5B800x600%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPck6MsgmyCHON93L6gb4dKONuBD1qpb0hZRbS_l5O1p5Y4OXUE3hyphenhyphen3eiDPVK-46vOW9B6fYtaDTas6L972-tMmzQKZvAyYkeh2xLhTJLbUXnWrnTMqDWERBRN0Tr-08y9OApW_Ip8dk6l/s320/New+folder1+%5B800x600%5D.jpg" width="320" /></a></div>
Circuit Theory<br />
<div align="center" class="MsoNormal" style="text-align: center;">
<br />
<br />
<div align="center" class="MsoNormal" style="text-align: center;">
<b><span style="font-size: 16pt; line-height: 115%;"> </span></b><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEPN4e6Dne8iwq73qoxBGDZSJ1ibuwWNTRDCb1Z4lFwe88IIM1OMkZ7WN8b9EvzOHH6eg7YRZGgyXqBGJAsACETyOeofApgUvO-78fE45Am7w6FEb1Yhy_wX4GoSPS2s-WBLkJ8-VblLJg/s400/block.png" width="400" /></div>
<br />
<br />
<br />
<b><span style="font-size: 16pt; line-height: 115%;">Circuit</span></b><br />
<br />
<b><span style="font-size: 16pt; line-height: 115%;"><img border="0" height="382" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwxPSXdeACvSOuNvIHV4zfsPqS7rg_CxAAFK3uxJ1rSZvAjIaJr5iEMVMz3X5o60-wGGoD9bd6-YKIs9FQKXORNHf8gsv2dmPKGNPT2gm1q9hKsFnTeMiAE9BbpaSVA5GYVxTxyzVj_4-j/s400/txm.png" width="400" /> </span></b><br />
<br />
<b><span style="font-size: 16pt; line-height: 115%;"> </span></b><img border="0" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCAHpHlL007XImQLTUrmn4Kn8G2Q2315XUaxMfjRxItGF3WBreaZ5FVJs5p5ETnV93LYX-sDme2-nI1Sh5hXLpms1hAlswmMtdEJNcrVxgxaTEi6sXFST9A7uOqoWVkP-MyKWzmy_SHEyE/s400/rxr.png" width="400" /><br />
<br />
<b><span style="font-size: 16pt; line-height: 115%;"> Description</span></b><br />
<br />
<div style="text-align: left;">
<span style="font-size: small; line-height: 115%;">For </span><b><span style="font-size: 16pt; line-height: 115%;"><span style="font-size: small;"> </span></span></b><span style="font-size: 16pt; line-height: 115%;"><span style="font-size: small;">description please <a href="http://myfreetimehobbies.blogspot.in/2012/05/normal-0-false-false-false-en-us-x-none.html" target="_blank">click here</a></span></span></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<span style="font-size: 16pt; line-height: 115%;"><span style="font-size: small;">tags: spy robots, electronics projects, inventory projects </span></span></div>
<b><span style="font-size: 16pt; line-height: 115%;"> </span></b><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</div>
</div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-22324782758644258122012-10-09T20:53:00.005-07:002012-10-09T20:53:39.834-07:00High power LED torch<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1Mf07y0s5Gid_juBJEZtzBR00GUn9XvTN6QeLqiVzOFMlrTDbBZHuE9-l6GR3ybDiUl5vY_bIK6S8riXjTYDBLT36uN5eWAHuBd20r26U7-NKMuvXCRxvThXsNUYDNpIewr1NZeVdV4fr/s1600/552680_392137434191697_1184573576_n.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="241" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1Mf07y0s5Gid_juBJEZtzBR00GUn9XvTN6QeLqiVzOFMlrTDbBZHuE9-l6GR3ybDiUl5vY_bIK6S8riXjTYDBLT36uN5eWAHuBd20r26U7-NKMuvXCRxvThXsNUYDNpIewr1NZeVdV4fr/s320/552680_392137434191697_1184573576_n.jpg" width="320" /></a></div>
This is a simple and very old circuit idea, even though i am publishing here for those who haven't seen this before and for beginners in electronics circuits. It' s nothing but an ordinary LED of 1.5 V circuit realized using salvaged components!!<br />
<br />
<a name='more'></a><br />
<br />
<br />
<br />
<br />
<span style="font-size: xx-small;"><i>tags: basic electronics, simple electronics circuits, high power LED torch , bright light circuits, LED torch circuit, how to make an LED torch</i></span></div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-47322059948753792952012-10-09T08:29:00.003-07:002012-10-09T08:45:23.396-07:00 PIC Serial Communication Tutorial (UART)<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<br />
<br />
This is a study of the PIC serial communication. First we should study about RS232. It's just a name for a
standard that has propagated from generation to generation of computers.
The first computers had serial ports that used RS232, and even current
computers have serial ports (or at least USB ports that act like RS232
ports). Back in the day, serial information needed to be passed from
devices like printers, joysticks, scanners, etc to the computer. The
simplest way to do this was to pass a series of 1s and 0s to the
computer. Both the computer and the device agreed on a speed of
information - 'bits per second'. A computer would pass image data to a
printer at 9600 bits per second and the printer would listen for this
stream of 1s and 0s expecting a new bit every 1/9600 = 104us (104
micro-seconds, 0.000104 seconds). As long as the computer output bits at
the pre-determined speed, the printer could listen. <br />
Zoom forward to today. Electronics have changed a bit. Before they were
relatively high power, high voltage devices. The standard that is
'RS232' dictates that a bit ranges from -12V to +12V. Modern electronics
do not operate at such high positive and negative voltages. In fact,
our PIC runs 0V to 5V. So how do we get our 5V micro to talk the RS232
+/-12V voltages? This problem has been solved by the IC manufacturers of
the world. They have made an IC that is generically known as the MAX232
(very close to RS232, no?).<br />
The MAX232 is an IC originally designed by a company called Maxim IC
that converts the +/-12V signals of RS232 down to the 0/5V signals that
our PIC can understand. It also boosts the voltage of our PIC to the
needed +/-12V of the RS232 protocol so that a computer can understand
our PIC and vice versa. To get our PIC IC sending serial characters to
a computer, we have to send these serial signals through a MAX232
circuit so that the computer receives +/-12V RS232 signals. Don't worry
if you're working with a chip labeled 'ICL232' or 'ST232' - these are
just generics of the MAX232. Everyone says 'MAX232'. The ICs all
function the same and nearly all have the same pinout. <br />
<br />
<a name='more'></a><br /><br />
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 2;">
<br /></div>
<div class="MsoNormal" style="line-height: normal;">
<br /></div>
<div class="MsoNormal" style="line-height: normal;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Circuit </span></b></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 2;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_00-k44yfnQuB8vQJyqSWjXxaSXFRmX5a3EJBmBqU_y-a8w7117yiBfpN5xL0Yxt5ls4_dcdn0KkATCmeXZhZP1w0NY6yJ_Qtb1-nO5yjShsMRnWuAeOJ7_svkHVUhmv4nydiO6hCRF-f/s1600/sche.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_00-k44yfnQuB8vQJyqSWjXxaSXFRmX5a3EJBmBqU_y-a8w7117yiBfpN5xL0Yxt5ls4_dcdn0KkATCmeXZhZP1w0NY6yJ_Qtb1-nO5yjShsMRnWuAeOJ7_svkHVUhmv4nydiO6hCRF-f/s400/sche.JPG" width="365" /></a></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 2;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 2;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UART Library</span></b></div>
<br />
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">The
UART hardware module is available with a number of PIC compliant MCUs.
The mikroC PRO for PIC UART Library provides comfortable work with the
Asynchronous (full duplex) mode.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">You
can easily communicate with other devices via RS-232 protocol (for
example with PC, see the figure at the end of the topic – RS-232 HW
connection). You need a PIC MCU with hardware integrated UART, for
example 16F887. Then, simply use the functions listed below.</span></div>
<div class="MsoNormal" style="background: #F5F2EC; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;"><img align="absMiddle" border="0" height="32" src="file:///C:/DOCUME%7E1/ADMINI%7E1/LOCALS%7E1/Temp/msohtmlclip1/01/clip_image001.gif" width="32" /><b> Important :</b> </span></div>
<ul type="disc">
<li class="MsoNormal" style="background: #F5F2EC; line-height: normal; mso-list: l5 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UART
library routines require you to specify the module you want to
use. To select the desired UART module, simply change the letter <b>x</b> in the routine prototype for a number from <b>1</b> to <b>2</b>. </span></li>
<li class="MsoNormal" style="background: #F5F2EC; line-height: normal; mso-list: l5 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Switching between the UART modules in the UART library is done by the <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart_set_active">UART_Set_Active</a> function (UART modules have to be previously initialized). </span></li>
<li class="MsoNormal" style="background: #F5F2EC; line-height: normal; mso-list: l5 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Number
of UART modules per MCU differs from chip to chip. Please, read
the appropriate datasheet before utilizing this library. </span></li>
</ul>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Library Routines</span></b></div>
<ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l0 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"><a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_init">UARTx_Init</a> </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l0 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"><a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_data_ready">UARTx_Data_Ready</a> </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l0 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"><a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_tx_idle">UARTx_Tx_Idle</a> </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l0 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"><a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_read">UARTx_Read</a> </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l0 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"><a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_read_text">UARTx_Read_Text</a> </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l0 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"><a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_write">UARTx_Write</a> </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l0 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"><a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_write_text">UARTx_Write_Text</a> </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l0 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"><a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart_set_active">UART_Set_Active</a> </span></li>
</ul>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 4;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Generic Routines</span></b></div>
<ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l9 level1 lfo3; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"><a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uartx_data_ready_gen">UART_Data_Ready</a> </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l9 level1 lfo3; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"><a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uartx_tx_idle_gen">UART_Tx_Idle</a> </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l9 level1 lfo3; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"><a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uartx_read_gen">UART_Read</a> </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l9 level1 lfo3; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"><a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uartx_read_text_gen">UART_Read_Text</a> </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l9 level1 lfo3; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"><a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uartx_write_gen">UART_Write</a> </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l9 level1 lfo3; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"><a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uartx_write_text_gen">UART_Write_Text</a> </span></li>
</ul>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UARTx_Init</span></b></div>
<table border="0" cellpadding="0" class="MsoNormalTable" style="mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 100.0%;"><tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: .3pt;" valign="top" width="0"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Prototype</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: 100.0%;" valign="top" width="100%"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">void</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> UARTx_Init(<b>const</b> <b>unsigned long</b> baud_rate);</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 1;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Returns</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Nothing.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 2;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Description</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Initializes
desired hardware UART module with the desired baud rate. Refer to the
device data sheet for baud rates allowed for specific </span><span style="font-family: "Courier New"; font-size: 12pt;">Fosc</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">. If you specify the unsupported baud rate, compiler will report an error.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 3;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Requires</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">You need PIC MCU with hardware UART.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 12pt;">UARTx_Init</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> needs to be called before using other functions from UART Library.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Parameters : </span></div>
<ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l1 level1 lfo4; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">baud_rate:</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> requested baud rate </span></li>
</ul>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Refer to the device data sheet for baud rates allowed for specific Fosc.</span></div>
<div class="MsoNormal" style="background: #F5F2EC; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;"><b> Note :</b>
Calculation of the UART baud rate value is carried out by the
compiler, as it would produce a relatively large code if performed on
the library level. <br />
Therefore, compiler needs to know the value of the parameter in the
compile time. That is why this parameter needs to be a constant, and
not a variable. </span></div>
</td> </tr>
<tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Example</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<i><span style="font-family: "Courier New"; font-size: 12pt;">// Initialize hardware UART1 and establish communication at 9600 bps</span></i><span style="font-family: "Courier New"; font-size: 12pt;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">UART1_Init(9600);</span></div>
</td> </tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UARTx_Data_Ready</span></b></div>
<table border="0" cellpadding="0" class="MsoNormalTable" style="mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 100.0%;"><tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: .3pt;" valign="top" width="0"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Prototype</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: 100.0%;" valign="top" width="100%"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">char</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> UARTx_Data_Ready();</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 1;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Returns</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l6 level1 lfo5; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">1</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> if data is ready for reading </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l6 level1 lfo5; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">0</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> if there is no data in the receive register </span></li>
</ul>
</td> </tr>
<tr style="mso-yfti-irow: 2;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Description</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Use the function to test if data in receive buffer is ready for reading.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 3;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Requires</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UART HW module must be initialized and communication established before using this function. See <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_init">UARTx_Init</a>.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Example</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<i><span style="font-family: "Courier New"; font-size: 12pt;">// If data is ready, read it:</span></i><span style="font-family: "Courier New"; font-size: 12pt;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 12pt;">if</span></b><span style="font-family: "Courier New"; font-size: 12pt;"> (UART1_Data_Ready() == 1) { </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> receive = UART1_Read();</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> }</span></div>
</td> </tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UARTx_Tx_Idle</span></b></div>
<table border="0" cellpadding="0" class="MsoNormalTable" style="mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 100.0%;"><tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: .3pt;" valign="top" width="0"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Prototype</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: 100.0%;" valign="top" width="100%"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">char</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> UARTx_Tx_Idle();</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 1;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Returns</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l11 level1 lfo6; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">1</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> if the data has been transmitted </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l11 level1 lfo6; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">0</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> otherwise </span></li>
</ul>
</td> </tr>
<tr style="mso-yfti-irow: 2;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Description</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Use the function to test if the transmit shift register is empty or not.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 3;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Requires</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UART HW module must be initialized and communication established before using this function. See <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_init">UARTx_Init</a>.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Example</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<i><span style="font-family: "Courier New"; font-size: 12pt;">// If the previous data has been shifted out, send next data:</span></i><span style="font-family: "Courier New"; font-size: 12pt;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 12pt;">if</span></b><span style="font-family: "Courier New"; font-size: 12pt;"> (UART1_Tx_Idle() == 1) { </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> UART1_Write(_data);</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> }</span></div>
</td> </tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UARTx_Read</span></b></div>
<table border="0" cellpadding="0" class="MsoNormalTable" style="mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 100.0%;"><tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: .3pt;" valign="top" width="0"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Prototype</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: 100.0%;" valign="top" width="100%"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">char</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> UARTx_Read();</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 1;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Returns</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Returns the received byte.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 2;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Description</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Function receives a byte via UART. Use the function <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_data_ready">UARTx_Data_Ready</a> to test if data is ready first.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 3;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Requires</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UART HW module must be initialized and communication established before using this function. See <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_init">UARTx_Init</a>.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Example</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<i><span style="font-family: "Courier New"; font-size: 12pt;">// If data is ready, read it:</span></i><span style="font-family: "Courier New"; font-size: 12pt;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 12pt;">if</span></b><span style="font-family: "Courier New"; font-size: 12pt;"> (UART1_Data_Ready() == 1) { </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> receive = UART1_Read();</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> }</span></div>
</td> </tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UARTx_Read_Text</span></b></div>
<table border="0" cellpadding="0" class="MsoNormalTable" style="mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 100.0%;"><tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: .3pt;" valign="top" width="0"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Prototype</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: 100.0%;" valign="top" width="100%"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">void</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> UARTx_Read_Text(<b>char</b> *Output, <b>char</b> *Delimiter, <b>char</b> Attempts);</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 1;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Returns</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Nothing.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 2;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Description</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Reads characters received via UART until the delimiter sequence is detected. The read sequence is stored in the parameter </span><span style="font-family: "Courier New"; font-size: 12pt;">output</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">; delimiter sequence is stored in the parameter </span><span style="font-family: "Courier New"; font-size: 12pt;">delimiter</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">This is a blocking call: the delimiter sequence is expected, otherwise the procedure exits (if the delimiter is not found).</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Parameters : </span></div>
<ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l10 level1 lfo7; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">Output:</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> received text </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l10 level1 lfo7; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">Delimiter:</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> sequence of characters that identifies the end of a received string </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l10 level1 lfo7; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">Attempts:</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> defines number of received characters in which </span><span style="font-family: "Courier New"; font-size: 12pt;">Delimiter</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> sequence is expected. If </span><span style="font-family: "Courier New"; font-size: 12pt;">Attempts</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> is set to 255, this routine will continuously try to detect the </span><span style="font-family: "Courier New"; font-size: 12pt;">Delimiter</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> sequence. </span></li>
</ul>
</td> </tr>
<tr style="mso-yfti-irow: 3;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Requires</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UART HW module must be initialized and communication established before using this function. See <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_init">UARTx_Init</a>.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Example</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Read text until the sequence “OK” is received, and send back what’s been received:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">UART1_Init(4800); // <i>initialize UART1 module</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">Delay_ms(100);</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 12pt;">while</span></b><span style="font-family: "Courier New"; font-size: 12pt;"> (1) {</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> <b>if</b> (UART1_Data_Ready() == 1) { // <i>if data is received</i> </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> UART1_Read_Text(output, "OK", 10); // <i>reads text until 'OK' is found</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> UART1_Write_Text(output); // <i>sends back text</i> </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> }</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">}</span></div>
</td> </tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UARTx_Write</span></b></div>
<table border="0" cellpadding="0" class="MsoNormalTable" style="mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 100.0%;"><tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: .3pt;" valign="top" width="0"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Prototype</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: 100.0%;" valign="top" width="100%"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">void</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> UARTx_Write(<b>char</b> data_);</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 1;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Returns</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Nothing.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 2;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Description</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">The function transmits a byte via the UART module.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Parameters : </span></div>
<ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l3 level1 lfo8; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">_data:</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> data to be sent </span></li>
</ul>
</td> </tr>
<tr style="mso-yfti-irow: 3;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Requires</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UART HW module must be initialized and communication established before using this function. See <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_init">UARTx_Init</a>.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Example</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 12pt;">unsigned char</span></b><span style="font-family: "Courier New"; font-size: 12pt;"> _data = 0x1E;</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">...</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">UART1_Write(_data);</span></div>
</td> </tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UARTx_Write_Text</span></b></div>
<table border="0" cellpadding="0" class="MsoNormalTable" style="mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 100.0%;"><tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: .3pt;" valign="top" width="0"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Prototype</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: 100.0%;" valign="top" width="100%"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">void</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> UARTx_Write_Text(<b>char</b> * UART_text);</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 1;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Returns</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Nothing.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 2;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Description</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Sends text via UART. Text should be zero terminated.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Parameters : </span></div>
<ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l13 level1 lfo9; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">UART_text:</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> text to be sent </span></li>
</ul>
</td> </tr>
<tr style="mso-yfti-irow: 3;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Requires</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UART HW module must be initialized and communication established before using this function. See <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_init">UARTx_Init</a>.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Example</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Read text until the sequence “OK” is received, and send back what’s been received:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">UART1_Init(4800); // <i>initialize UART1 module</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">Delay_ms(100);</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 12pt;">while</span></b><span style="font-family: "Courier New"; font-size: 12pt;"> (1) {</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> <b>if</b> (UART1_Data_Ready() == 1) { // <i>if data is received</i> </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> UART1_Read_Text(output, "OK", 10); // <i>reads text until 'OK' is found</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> UART1_Write_Text(output); // <i>sends back text</i> </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> }</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">}</span></div>
</td> </tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UART_Set_Active</span></b></div>
<table border="0" cellpadding="0" class="MsoNormalTable" style="mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 100.0%;"><tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: .3pt;" valign="top" width="0"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Prototype</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: 100.0%;" valign="top" width="100%"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">void</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> UART_Set_Active(<b>char</b> (*read_ptr)(), <b>void</b> (*write_ptr)(<b>unsigned char</b> data_), <b>char</b> (*ready_ptr)(), <b>char</b> (*tx_idle_ptr)())</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 1;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Returns</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Nothing.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 2;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Description</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Sets active UART module which will be used by the UART library routines.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Parameters : </span></div>
<ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l8 level1 lfo10; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">read_ptr:</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_read">UARTx_Read</a> handler </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l8 level1 lfo10; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">write_ptr:</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_write">UARTx_Write</a> handler </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l8 level1 lfo10; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">ready_ptr:</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_data_ready">UARTx_Data_Ready</a> handler </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l8 level1 lfo10; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">tx_idle_ptr:</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_tx_idle">UARTx_Tx_Idle</a> handler </span></li>
</ul>
</td> </tr>
<tr style="mso-yfti-irow: 3;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Requires</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Routine is available only for MCUs with two UART modules.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Used UART module must be initialized before using this routine. See <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_init">UARTx_Init</a> routine</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Example</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">UART1_Init(9600); <i>// initialize UART1 module</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">UART2_Init(9600); <i>// initialize UART2 module</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">RS485Master_Init(); <i>// initialize MCU as Master</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">UART_Set_Active(&UART1_Read, &UART1_Write, &UART1_Data_Ready, &UART1_Tx_Idle); <i>// set UART1 active</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">RS485Master_Send(dat,1,160); <i>// send message through UART1</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">UART_Set_Active(&UART2_Read, &UART2_Write, &UART2_Data_Ready, &UART2_Tx_Idle); <i>// set UART2 active</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">RS485Master_Send(dat,1,160); <i>// send through UART2</i></span></div>
</td> </tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UART_Data_Ready</span></b></div>
<table border="0" cellpadding="0" class="MsoNormalTable" style="mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 100.0%;"><tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: .3pt;" valign="top" width="0"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Prototype</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: 100.0%;" valign="top" width="100%"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">char</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> UART_Data_Ready();</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 1;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Returns</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l12 level1 lfo11; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">1</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> if data is ready for reading </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l12 level1 lfo11; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">0</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> if there is no data in the receive register </span></li>
</ul>
</td> </tr>
<tr style="mso-yfti-irow: 2;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Description</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Use the function to test if data in receive buffer is ready for reading.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">This is a generic routine which uses the active UART module previously activated by the <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart_set_active">UART_Set_Active</a> routine.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 3;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Requires</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UART HW module must be initialized and communication established before using this function. See <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_init">UARTx_Init</a>.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Example</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<i><span style="font-family: "Courier New"; font-size: 12pt;">// If data is ready, read it:</span></i><span style="font-family: "Courier New"; font-size: 12pt;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 12pt;">if</span></b><span style="font-family: "Courier New"; font-size: 12pt;"> (UART_Data_Ready() == 1) { </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> receive = UART_Read();</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> }</span></div>
</td> </tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UART_Tx_Idle</span></b></div>
<table border="0" cellpadding="0" class="MsoNormalTable" style="mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 100.0%;"><tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: .3pt;" valign="top" width="0"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Prototype</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: 100.0%;" valign="top" width="100%"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">char</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> UART_Tx_Idle();</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 1;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Returns</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l14 level1 lfo12; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">1</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> if the data has been transmitted </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l14 level1 lfo12; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">0</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> otherwise </span></li>
</ul>
</td> </tr>
<tr style="mso-yfti-irow: 2;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Description</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Use the function to test if the transmit shift register is empty or not.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">This is a generic routine which uses the active UART module previously activated by the <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart_set_active">UART_Set_Active</a> routine.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 3;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Requires</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UART HW module must be initialized and communication established before using this function. See <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_init">UARTx_Init</a>.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Example</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<i><span style="font-family: "Courier New"; font-size: 12pt;">// If the previous data has been shifted out, send next data:</span></i><span style="font-family: "Courier New"; font-size: 12pt;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 12pt;">if</span></b><span style="font-family: "Courier New"; font-size: 12pt;"> (UART_Tx_Idle() == 1) { </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> UART_Write(_data);</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> }</span></div>
</td> </tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UART_Read</span></b></div>
<table border="0" cellpadding="0" class="MsoNormalTable" style="mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 100.0%;"><tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: .3pt;" valign="top" width="0"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Prototype</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: 100.0%;" valign="top" width="100%"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">char</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> UART_Read();</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 1;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Returns</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Returns the received byte.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 2;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Description</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Function receives a byte via UART. Use the function <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uartx_data_ready_gen">UART_Data_Ready</a> to test if data is ready first.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">This is a generic routine which uses the active UART module previously activated by the <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart_set_active">UART_Set_Active</a> routine.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 3;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Requires</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UART HW module must be initialized and communication established before using this function. See <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_init">UARTx_Init</a>.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Example</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<i><span style="font-family: "Courier New"; font-size: 12pt;">// If data is ready, read it:</span></i><span style="font-family: "Courier New"; font-size: 12pt;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 12pt;">if</span></b><span style="font-family: "Courier New"; font-size: 12pt;"> (UART_Data_Ready() == 1) { </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> receive = UART_Read();</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> }</span></div>
</td> </tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UART_Read_Text</span></b></div>
<table border="0" cellpadding="0" class="MsoNormalTable" style="mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 100.0%;"><tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: .3pt;" valign="top" width="0"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Prototype</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: 100.0%;" valign="top" width="100%"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">void</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> UART_Read_Text(<b>char</b> *Output, <b>char</b> *Delimiter, <b>char</b> Attempts);</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 1;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Returns</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Nothing.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 2;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Description</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Reads characters received via UART until the delimiter sequence is detected. The read sequence is stored in the parameter </span><span style="font-family: "Courier New"; font-size: 12pt;">output</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">; delimiter sequence is stored in the parameter </span><span style="font-family: "Courier New"; font-size: 12pt;">delimiter</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">This is a blocking call: the delimiter sequence is expected, otherwise the procedure exits (if the delimiter is not found).</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">This is a generic routine which uses the active UART module previously activated by the <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart_set_active">UART_Set_Active</a> routine.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Parameters : </span></div>
<ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l7 level1 lfo13; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">Output:</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> received text </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l7 level1 lfo13; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">Delimiter:</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> sequence of characters that identifies the end of a received string </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l7 level1 lfo13; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">Attempts:</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> defines number of received characters in which </span><span style="font-family: "Courier New"; font-size: 12pt;">Delimiter</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> sequence is expected. If </span><span style="font-family: "Courier New"; font-size: 12pt;">Attempts</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> is set to 255, this routine will continuously try to detect the </span><span style="font-family: "Courier New"; font-size: 12pt;">Delimiter</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> sequence. </span></li>
</ul>
</td> </tr>
<tr style="mso-yfti-irow: 3;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Requires</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UART HW module must be initialized and communication established before using this function. See <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_init">UARTx_Init</a>.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Example</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Read text until the sequence “OK” is received, and send back what’s been received:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">UART1_Init(4800); // <i>initialize UART1 module</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">Delay_ms(100);</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 12pt;">while</span></b><span style="font-family: "Courier New"; font-size: 12pt;"> (1) {</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> <b>if</b> (UART_Data_Ready() == 1) { // <i>if data is received</i> </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> UART_Read_Text(output, "OK", 10); // <i>reads text until 'OK' is found</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> UART_Write_Text(output); // <i>sends back text</i> </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> }</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">}</span></div>
</td> </tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UART_Write</span></b></div>
<table border="0" cellpadding="0" class="MsoNormalTable" style="mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 100.0%;"><tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: .3pt;" valign="top" width="0"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Prototype</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: 100.0%;" valign="top" width="100%"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">void</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> UART_Write(<b>char</b> data_);</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 1;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Returns</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Nothing.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 2;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Description</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">The function transmits a byte via the UART module.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">This is a generic routine which uses the active UART module previously activated by the <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart_set_active">UART_Set_Active</a> routine.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Parameters : </span></div>
<ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l4 level1 lfo14; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">_data:</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> data to be sent </span></li>
</ul>
</td> </tr>
<tr style="mso-yfti-irow: 3;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Requires</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UART HW module must be initialized and communication established before using this function. See <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_init">UARTx_Init</a>.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Example</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 12pt;">unsigned char</span></b><span style="font-family: "Courier New"; font-size: 12pt;"> _data = 0x1E;</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">...</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">UART_Write(_data);</span></div>
</td> </tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UART_Write_Text</span></b></div>
<table border="0" cellpadding="0" class="MsoNormalTable" style="mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 100.0%;"><tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: .3pt;" valign="top" width="0"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Prototype</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt; width: 100.0%;" valign="top" width="100%"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">void</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> UART_Write_Text(<b>char</b> * UART_text);</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 1;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Returns</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Nothing.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 2;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Description</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Sends text via UART. Text should be zero terminated.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">This is a generic routine which uses the active UART module previously activated by the <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart_set_active">UART_Set_Active</a> routine.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Parameters : </span></div>
<ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l2 level1 lfo15; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Courier New"; font-size: 12pt;">UART_text:</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> text to be sent </span></li>
</ul>
</td> </tr>
<tr style="mso-yfti-irow: 3;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Requires</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">UART HW module must be initialized and communication established before using this function. See <a href="mk:@MSITStore:C:%5CProgram%20Files%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/uart_library.htm#uart1_init">UARTx_Init</a>.</span></div>
</td> </tr>
<tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;"> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Example</span></b></div>
</td> <td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Read text until the sequence “OK” is received, and send back what’s been received:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">UART1_Init(4800); // <i>initialize UART1 module</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">Delay_ms(100);</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 12pt;">while</span></b><span style="font-family: "Courier New"; font-size: 12pt;"> (1) {</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> <b>if</b> (UART_Data_Ready() == 1) { // <i>if data is received</i> </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> UART_Read_Text(output, "OK", 10); // <i>reads text until 'OK' is found</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> UART_Write_Text(output); // <i>sends back text</i> </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> }</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">}</span></div>
</td> </tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">This
program demonstrates a simple data exchange via UART. When PIC MCU
receives data, it immediately sends it back. If PIC is connected to the
PC (see the figure below), you can test the example from the mikroC PRO
for PIC terminal for RS-232 communication, menu choice <b>Tools › Terminal</b>.</span><br />
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> </span><br />
<h2 style="text-align: left;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Code</span></b></h2>
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> </span></b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 12pt;">char</span></b><span style="font-family: "Courier New"; font-size: 12pt;"> uart_rd;</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 12pt;">void</span></b><span style="font-family: "Courier New"; font-size: 12pt;"> main() {</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> ANSEL = 0; <i>// Configure AN pins as digital</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> ANSELH = 0;</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> UART1_Init(9600); <i>// Initialize UART module at 9600 bps</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> Delay_ms(100); <i>// Wait for UART module to stabilize</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> UART1_Write_Text("Start");</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> UART1_Write(10);</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> UART1_Write(13);</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> <b>while</b> (1) { <i>// Endless loop</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> <b>if</b> (UART1_Data_Ready()) { <i>// If data is received,</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> uart_rd = UART1_Read(); <i>// read the received data,</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> UART1_Write(uart_rd); <i>// and send data via UART</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> }</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;"> }</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 12pt;">}</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<span style="font-size: x-small;"><span style="font-family: "Courier New";">courtesy: microcontrollerprojects00.blogspot.in </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-size: xx-small;"><i><span style="font-family: "Courier New";">tags: pic tutorial, serial communication tutorial, UART tutorial, UART sample circuits and programs, learn UART, learn PIC, PIC basics,</span><span style="font-family: "Courier New";"> Microcontroller Tutorial, Tutorial, PIC Tutorial, MikroC, PIC, MikroC, Embedded Tutorial, Microcontroller, Embedded </span></i></span></div>
</div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-26359833954479259472012-10-09T08:22:00.000-07:002012-10-09T08:22:08.462-07:00USB to Serial Converter using AVR microcontrollers<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisCBn12SXsdS53oF2AL-YPHhWnTYPACW5LR7FwDoIJ8wYpe6hFJqLJMwH2IvBAQFFEz6bd408nd472VBGClQxY_AHw3kpOxRuIhICBT7oZYYkAV4TfxR3Sf4UEcnMhCRWo_Tb9Kys5YaHT/s1600/index-1.gif" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisCBn12SXsdS53oF2AL-YPHhWnTYPACW5LR7FwDoIJ8wYpe6hFJqLJMwH2IvBAQFFEz6bd408nd472VBGClQxY_AHw3kpOxRuIhICBT7oZYYkAV4TfxR3Sf4UEcnMhCRWo_Tb9Kys5YaHT/s400/index-1.gif" width="400" /></a></div>
<div class="MsoNormal">
<br />
<span style="letter-spacing: 1pt;"><span style="font-family: Times New Roman; font-size: xx-small;"> </span></span></div>
<div class="MsoNormal">
This project is based on the AVR microcontrollers, which can be used to make a USB to Serial port converter based on Object
Deveopment's V-USB (Software-USB on AVR), and the CDC (Communication
Device Class) protocol was extended over it
<span style="letter-spacing: 1pt;"><span style="font-family: Times New Roman; font-size: xx-small;"> </span></span></div>
<div class="MsoNormal">
The AVR-CDC
converts USB and RS-232C signals using the AVR micro- controller which
has no on-chip USB interface. . AVR-CDC enables PC to
communicate with the USB device through virtual COM port.</div>
<div class="MsoNormal">
The
basic idea of using CDC protocol over Low-speed USB is based on Kyosuke
Ishikawa's experiment in 2005. To make it stable and practical,
Christian Starkjohann in Object Development helped me modifying his
V-USB stack. Since three endpoints and the bulk transfer on low-speed
device violates the USB standard, I added a tiny patch driver on
Windows' USB stack.</div>
<div class="MsoNormal">
Although this
technology is quite experimental, it may be useful to interface your
original system to PC easily. </div>
<div class="MsoNormal">
Basically the circuit is very simple, but it
requires a certain amount of skills to control. If you need practical or
stable solutions, or you are not familiar with electronics nor
installing drivers, use the dedicated chip from vendors like FTDI.</div>
<div class="MsoNormal">
The
back door to the low-speed bulk transfer is gradually closing on the
newer OS. After enjoying this USB technology, switch to the HID protocol
or to MCU having on-chip USB controller.</div>
<div class="MsoNormal">
<br />
</div>
<div class="MsoNormal">
<br />
</div>
<div class="MsoNormal">
<br />
</div>
<div class="MsoNormal">
<br />
</div>
<div class="MsoNormal">
<br />
</div>
<div class="MsoNormal">
<b>CDC-232</b></div>
<div class="MsoNormal">
CDC-232
creates a virtual COM port on PC that doesn't have real RS- 232C port.
It enables RS-232C communication (without control lines), after
connecting the device and installing the driver.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWeCBlknsZ-1f2Bh__gIL2qjAexxfh9hR5g4asDzc_VbrR0ukdjpf8mup5Fw2cw-XtA2ttVHDvtsEDKZ5DwA2lFk64eR1aFyXmzjMFg9Dy4JHZcJfJx3Y8DYxfBWxkFW3XVfBoYTubAmHs/s1600/cdc232-fig.gif" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="139" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWeCBlknsZ-1f2Bh__gIL2qjAexxfh9hR5g4asDzc_VbrR0ukdjpf8mup5Fw2cw-XtA2ttVHDvtsEDKZ5DwA2lFk64eR1aFyXmzjMFg9Dy4JHZcJfJx3Y8DYxfBWxkFW3XVfBoYTubAmHs/s320/cdc232-fig.gif" width="320" /></a></div>
<div class="MsoNormal">
<br />
</div>
<div class="MsoNormal">
<br />
</div>
<div class="MsoNormal">
Virtual COM Port over Software-USB</div>
<div class="MsoNormal">
<br />
</div>
<div class="MsoNormal">
<br />
</div>
<div class="MsoNormal">
<br />
</div>
<div class="MsoNormal">
<b>Usage</b></div>
<div class="MsoNormal">
Write
the program to AVR, build the circuit, and connect the device to PC's
USB port. Install the driver on Windows. Access the device through
generated virtual COM port from terminal software or your application.
Control lines (DTR, DTS, RTS, CTS) are not used by the host application.
Set the terminal software as "no flow-control".<br />
Windows requests the driver installation again when connected to other
USB port. Detect the previously installed driver automatically. Another
COM number will be assigned. If you set serial number in AVR (rebuild
with modified usbconfig.h), you can get the same COM port at any USB
port. However, you cannot connect multiple CDC devices of the same
serial number.<br />
Before detaching the device, close the COM port in terminal software or
in your application. Otherwise, you cannot connect to the device again
because of the broken file handle. Restart the terminal software or your
application then. Switch to the fast transfer mode using "lowcdc.vbs"
to get the baudrate higher than 9600bps.</div>
<div class="MsoNormal">
<br />
</div>
<div class="MsoNormal">
Loop-back test on ATtiny45 version</div>
<div class="MsoNormal">
<b>Schematics</b></div>
<div class="MsoNormal">
These
schematics are for ATtiny45/85, ATtiny2313/AT90S2313, and
ATmega8/48/88/168. Their firmware are all ISP-programmable. The red LED
drops the USB voltage from 5V to 3.3V, and provides to AVR. The current
is about 10mA, and is not enough to drive other circuit. When connecting
to other MCU, connect Gnd and connect TxD and RxD in crossing way. R4
limits the leak current when the MCU's Vcc is 5V. You can omit if the
Vcc is equal. R5 protects the TxD pin when it shortened to Gnd. You can
omit both R4 and R5 if you connect to the RS- 232C driver like MAX232.
Use crystal oscillator. Although ceramic resonator works well in most
cases, it becomes unstable if the frequency deviation is bigger. </div>
<div class="MsoNormal">
<br />
</div>
<div class="MsoNormal">
CDC-232 for ATtiny45-20</div>
<div class="MsoNormal">
ATtiny45/85
uses internal RC oscillator and PLL. It is calibrated by USB signal
when connected. UART is implemented by software. It is not enough for
high speed data transfer. If the TxD and the RxD are inverted (rebuild
with -DUART_INVERT option), you can directly connect to RS-232C
line. 1200 - 4800bps, 8N1<br />
</div>
<div class="MsoNormal">
<br />
</div>
<div class="MsoNormal">
<br />
</div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 11pt; line-height: 115%;">CDC-232 for ATtiny2313-20</span> <br />
<br />
</div>
<div class="MsoNormal">
ATtiny2313/AT90S2313 has 2KB program
memory. Although the baudrate is configured automatically, some
functions are omitted. 600 - 38400bps, 8N1</div>
<div class="MsoNormal">
<br />
CDC-232 for ATmega8/48/88-20</div>
<div class="MsoNormal">
ATmega8/48/88's internal UART is configured from the PC. The flow-control (RTS/CTS) is supported.<br />
600 - 38400bps, data 7/8, parity N/E/O, stop 1/2</div>
<div class="MsoNormal">
<br />
<br />
</div>
<div class="MsoNormal">
<b>Schematics</b><br />
</div>
<br />
<div class="MsoNormal">
CDC-232 for ATtiny45-20</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtX6BlXOiMXceKnAiuSMr1hwusfqPaNltvKf6Xw6N7dQsiR0EogGIP6LUZTLEeIqVXX9osaMHDpIU6yUFj__7Z0wryh3UCb79k7x9BtF71_qm2fZYApZ5FQhtW1agm7WjJRSBNWn42r9uW/s1600/cdc232-t45.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="126" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtX6BlXOiMXceKnAiuSMr1hwusfqPaNltvKf6Xw6N7dQsiR0EogGIP6LUZTLEeIqVXX9osaMHDpIU6yUFj__7Z0wryh3UCb79k7x9BtF71_qm2fZYApZ5FQhtW1agm7WjJRSBNWn42r9uW/s400/cdc232-t45.png" width="400" /> </a></div>
<div class="separator" style="clear: both; text-align: center;">
<br />
</div>
<div class="separator" style="clear: both; text-align: center;">
<br />
</div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "Calibri","sans-serif"; font-size: 11pt; line-height: 115%;">CDC-232 for ATtiny2313-20</span> </div>
<div class="separator" style="clear: both; text-align: center;">
<br />
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYT87BNR64nSfg9BUK2NnKTeJkuDRulc2tSiHQ9ihwVUU5xArUtl_Xr5cfviHMWuyOpxszVbP6VwdYcSZzhioweFBfRQbIjPpfSxG1aAtbHGVuTbL2C7Zx5LkvitLjJ33112ZOLPtbv_F6/s1600/cdc232-2313.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYT87BNR64nSfg9BUK2NnKTeJkuDRulc2tSiHQ9ihwVUU5xArUtl_Xr5cfviHMWuyOpxszVbP6VwdYcSZzhioweFBfRQbIjPpfSxG1aAtbHGVuTbL2C7Zx5LkvitLjJ33112ZOLPtbv_F6/s400/cdc232-2313.png" width="400" /></a></div>
<div class="MsoNormal">
<br />
</div>
<div class="MsoNormal">
<br />
</div>
<div class="MsoNormal">
<br />
</div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 11pt; line-height: 115%;">CDC-232 for ATmega8/48/88-20</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 11pt; line-height: 115%;"> </span> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijXwHg_9OIOVxRAHF_dohFAiqUZtlkmmbyAV_DP9vKcAALjxyEgCLUuTijqoN9Jws3jw6Ib4voHKMKEFR4-vKJQymMYir5suoHa8_VcVyXCZEnbyN4FC0R3PqCikxPHhK2KHADcXGbfruy/s1600/cdc232-mega.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="201" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijXwHg_9OIOVxRAHF_dohFAiqUZtlkmmbyAV_DP9vKcAALjxyEgCLUuTijqoN9Jws3jw6Ib4voHKMKEFR4-vKJQymMYir5suoHa8_VcVyXCZEnbyN4FC0R3PqCikxPHhK2KHADcXGbfruy/s400/cdc232-mega.png" width="400" /></a></div>
<div class="MsoNormal">
<br />
</div>
<div class="MsoNormal">
<b><br /></b>
</div>
<div class="MsoNormal">
<b>Driver and code <a href="http://www.recursion.jp/avrcdc/index.html" target="_blank">click here</a> for CDC home page</b></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
courtesy : microcontrollerprojects00.blogspot.in</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<span style="font-size: xx-small;"><i>tags: Serial Communication, Uart Project, USB to RS 232 converter, USB projects, USB circuits, USB to UART, Embedded projects, AVR, Atmega8, RS 232projects, Atiny</i></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
</div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-14744854818457747972012-10-09T08:12:00.004-07:002012-10-09T08:12:53.582-07:00Make your own Extra UART For Your PIC<div dir="ltr" style="text-align: left;" trbidi="on">
<h2>
<a href="http://www.blogger.com/blogger.g?blogID=1748793996153674366" name="top_of_page">Software <acronym title="Universal Asynchronous Receiver-Transmitter">UART</acronym>
Library</a></h2>
<br />
The mikroC PRO for PIC provides routines for implementing Software <acronym title="Universal Asynchronous Receiver-Transmitter">UART</acronym>
communication. These routines are hardware independent and can be used with any
MCU. <br />
The Software <acronym title="Universal Asynchronous Receiver-Transmitter">UART</acronym> Library
provides easy communication with other devices via the RS232 protocol.<br />
<table>
<tbody>
<tr align="left">
<td bgcolor="#f5f2ec"><b>Important :</b>
The Software <acronym title="Universal Asynchronous Receiver-Transmitter">UART</acronym> library
implements time-based activities, so interrupts need to be disabled when using
it.<br />
</td></tr>
</tbody></table>
<h3>
Library Routines</h3>
<ul>
<li><a href="http://www.blogger.com/blogger.g?blogID=1748793996153674366#soft_uart_init">Soft_UART_Init</a>
</li>
<li><a href="http://www.blogger.com/blogger.g?blogID=1748793996153674366#soft_uart_read">Soft_UART_Read</a>
</li>
<li><a href="http://www.blogger.com/blogger.g?blogID=1748793996153674366#soft_uart_write">Soft_UART_Write</a>
</li>
<li><a href="http://www.blogger.com/blogger.g?blogID=1748793996153674366#soft_uart_break">Soft_UART_Break</a> </li>
</ul>
<div class="MsoNormal" style="line-height: normal;">
</div>
<div class="MsoNormal" style="line-height: normal;">
</div>
<div class="MsoNormal" style="line-height: normal;">
</div>
<div class="MsoNormal" style="line-height: normal;">
</div>
<div class="MsoNormal" style="line-height: normal;">
</div>
<div class="MsoNormal" style="line-height: normal;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 13.5pt;">Soft_UART_Init</span></b></div>
<table border="0" cellpadding="0" class="MsoNormalTable" style="mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 100.0%;">
<tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;">
<td style="background: white; padding: .75pt .75pt .75pt .75pt; width: .3pt;" valign="top" width="0"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Prototype</span></b></div>
</td>
<td style="background: white; padding: .75pt .75pt .75pt .75pt; width: 100.0%;" valign="top" width="100%"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">char</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> Soft_UART_Init(<b>char</b> *port, <b>char</b> rx_pin, <b>char</b>
tx_pin, <b>unsigned long</b> baud_rate, <b>char</b> inverted);</span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Returns</span></b></div>
</td>
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l2 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt;"><span style="font-family: "Courier New"; font-size: 10pt;">2</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> - error, requested baud rate
is too low </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l2 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt;"><span style="font-family: "Courier New"; font-size: 10pt;">1</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> - error, requested baud rate
is too high </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l2 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt;"><span style="font-family: "Courier New"; font-size: 10pt;">0</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> - successful initialization </span></li>
</ul>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Description</span></b></div>
</td>
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Configures and initializes the
software UART module.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Parameters : </span></div>
<ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l3 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt;"><span style="font-family: "Courier New"; font-size: 10pt;">port:</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> port to be used. </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l3 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt;"><span style="font-family: "Courier New"; font-size: 10pt;">rx_pin:</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> sets rx_pin to be used. </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l3 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt;"><span style="font-family: "Courier New"; font-size: 10pt;">tx_pin:</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> sets tx_pin to be used. </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l3 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt;"><span style="font-family: "Courier New"; font-size: 10pt;">baud_rate:</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> baud rate to be set. Maximum
baud rate depends on the MCU’s clock and working conditions. </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l3 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt;"><span style="font-family: "Courier New"; font-size: 10pt;">inverted:</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> inverted output flag. When
set to a non-zero value, inverted logic on output is used. </span></li>
</ul>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Software UART routines use <a href="mk:@MSITStore:C:%5CUsers%5CPublic%5CDocuments%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/built-in_routines.htm#delay_cyc"><span style="color: blue;">Delay_Cyc</span></a> routine. If requested baud rate is
too low then calculated parameter for calling </span><span style="font-family: "Courier New"; font-size: 10pt;">Delay_Cyc</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> exceeds
</span><span style="font-family: "Courier New"; font-size: 10pt;">Delay_Cyc</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> argument range.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">If requested baud rate is too high
then rounding error of </span><span style="font-family: "Courier New"; font-size: 10pt;">Delay_Cyc</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> argument corrupts Software UART timings.</span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 3;">
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Requires</span></b></div>
</td>
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Nothing.</span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;">
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Example</span></b></div>
</td>
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">This will initialize software UART
and establish the communication at 14400 bps:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 10pt;">char</span></b><span style="font-family: "Courier New"; font-size: 10pt;"> error;</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;">...</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;">error = Soft_UART_Init(&PORTC, 7, 6, 14400, 0); // Initialize Soft UART at 14400 bps</span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 13.5pt;">Soft_UART_Read</span></b></div>
<table border="0" cellpadding="0" class="MsoNormalTable" style="mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 100.0%;">
<tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;">
<td style="background: white; padding: .75pt .75pt .75pt .75pt; width: .3pt;" valign="top" width="0"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Prototype</span></b></div>
</td>
<td style="background: white; padding: .75pt .75pt .75pt .75pt; width: 100.0%;" valign="top" width="100%"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">char</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> Soft_UART_Read(<b>char</b> * error);</span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Returns</span></b></div>
</td>
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Byte received via UART.</span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Description</span></b></div>
</td>
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">The function receives a byte via
software UART.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">This is a blocking function call
(waits for start bit). Programmer can unblock it by calling <a href="mk:@MSITStore:C:%5CUsers%5CPublic%5CDocuments%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/software_uart_library.htm#soft_uart_break"><span style="color: blue;">Soft_UART_Break</span></a> routine.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Parameters : </span></div>
<ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l1 level1 lfo3; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt;"><span style="font-family: "Courier New"; font-size: 10pt;">error: </span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Error flag. Error code is
returned through this variable. </span></li>
<ul type="circle">
<li class="MsoNormal" style="line-height: normal; mso-list: l1 level2 lfo3; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt;"><span style="font-family: "Courier New"; font-size: 10pt;">0</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> - no error </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l1 level2 lfo3; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt;"><span style="font-family: "Courier New"; font-size: 10pt;">1</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> - stop bit error </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l1 level2 lfo3; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt;"><span style="font-family: "Courier New"; font-size: 10pt;">255</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> - user abort, <a href="mk:@MSITStore:C:%5CUsers%5CPublic%5CDocuments%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/software_uart_library.htm#soft_uart_break"><span style="color: blue;">Soft_UART_Break</span></a> called </span></li>
</ul>
</ul>
</td>
</tr>
<tr style="mso-yfti-irow: 3;">
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Requires</span></b></div>
</td>
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Software UART must be initialized
before using this function. See the <a href="mk:@MSITStore:C:%5CUsers%5CPublic%5CDocuments%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/software_uart_library.htm#soft_uart_init"><span style="color: blue;">Soft_UART_Init</span></a> routine.</span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;">
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Example</span></b></div>
</td>
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 10pt;">char</span></b><span style="font-family: "Courier New"; font-size: 10pt;"> data_, error;</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;">...</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<i><span style="font-family: "Courier New"; font-size: 10pt;">// wait until data is received</span></i><span style="font-family: "Courier New"; font-size: 10pt;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 10pt;">do</span></b><span style="font-family: "Courier New"; font-size: 10pt;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;"> data =
Soft_UART_Read(&error);</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 10pt;">while</span></b><span style="font-family: "Courier New"; font-size: 10pt;"> (error);</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<i><span style="font-family: "Courier New"; font-size: 10pt;">// Now we can work with data:</span></i><span style="font-family: "Courier New"; font-size: 10pt;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 10pt;">if</span></b><span style="font-family: "Courier New"; font-size: 10pt;"> (data_) {...}</span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 13.5pt;">Soft_UART_Write</span></b></div>
<table border="0" cellpadding="0" class="MsoNormalTable" style="mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 100.0%;">
<tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;">
<td style="background: white; padding: .75pt .75pt .75pt .75pt; width: .3pt;" valign="top" width="0"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Prototype</span></b></div>
</td>
<td style="background: white; padding: .75pt .75pt .75pt .75pt; width: 100.0%;" valign="top" width="100%"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">void</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> Soft_UART_Write(<b>char</b> udata);</span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Returns</span></b></div>
</td>
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Nothing.</span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Description</span></b></div>
</td>
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">This routine sends one byte via
the Software UART bus.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Parameters : </span></div>
<ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l0 level1 lfo4; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt;"><span style="font-family: "Courier New"; font-size: 10pt;">udata:</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> data to be sent. </span></li>
</ul>
</td>
</tr>
<tr style="mso-yfti-irow: 3;">
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Requires</span></b></div>
</td>
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Software UART must be initialized
before using this function. See the <a href="mk:@MSITStore:C:%5CUsers%5CPublic%5CDocuments%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/software_uart_library.htm#soft_uart_init"><span style="color: blue;">Soft_UART_Init</span></a> routine.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Be aware that during transmission,
software UART is incapable of receiving data – data transfer protocol must be
set in such a way to prevent loss of information.</span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;">
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Example</span></b></div>
</td>
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 10pt;">char</span></b><span style="font-family: "Courier New"; font-size: 10pt;"> some_byte = 0x0A;</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;">...</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<i><span style="font-family: "Courier New"; font-size: 10pt;">// Write a byte via Soft UART</span></i><span style="font-family: "Courier New"; font-size: 10pt;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;">Soft_UART_Write(some_byte);</span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 13.5pt;">Soft_UART_Break</span></b></div>
<table border="0" cellpadding="0" class="MsoNormalTable" style="mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 100.0%;">
<tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;">
<td style="background: white; padding: .75pt .75pt .75pt .75pt; width: .3pt;" valign="top" width="0"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Prototype</span></b></div>
</td>
<td style="background: white; padding: .75pt .75pt .75pt .75pt; width: 100.0%;" valign="top" width="100%"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">void</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> Soft_UART_Break();</span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Returns</span></b></div>
</td>
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Nothing.</span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Description</span></b></div>
</td>
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;"><a href="mk:@MSITStore:C:%5CUsers%5CPublic%5CDocuments%5CMikroelektronika%5CmikroC%20PRO%20for%20PIC%5CmikroC_PRO_PIC.chm::/software_uart_library.htm#soft_uart_read"><span style="color: blue;">Soft_UART_Read</span></a> is blocking routine and it can
block the program flow. Calling this routine from the interrupt will unblock
the program execution. This mechanism is similar to WDT.</span></div>
<div class="MsoNormal" style="background: #F5F2EC; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;"><b> Note :</b>
Interrupts should be disabled before using Software UART routines again (see
note at the top of this page). </span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 3;">
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Requires</span></b></div>
</td>
<td style="background: white; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Nothing. </span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;">
<td style="background: #F8F8F8; padding: .75pt .75pt .75pt .75pt;" valign="top"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Example</span></b></div>
</td>
<td style="background: #F8F8F8; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 10pt;">char</span></b><span style="font-family: "Courier New"; font-size: 10pt;"> data1, error,
counter = 0;</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 10pt;">void</span></b><span style="font-family: "Courier New"; font-size: 10pt;"> interrupt() {</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;"> <b>if</b> (INTCON.T0IF)
{</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;"> <b>if</b>
(counter >= 20) {</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;">
Soft_UART_Break();</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;"> counter =
0; <i>// reset counter</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;"> }</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;"> <b>else</b></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;">
counter++; <i>//
increment counter</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;"> INTCON.T0IF =
0; <i>// Clear Timer0
overflow interrupt flag</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;"> }</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;">}</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<b><span style="font-family: "Courier New"; font-size: 10pt;">void</span></b><span style="font-family: "Courier New"; font-size: 10pt;"> main() {</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;"> OPTION_REG =
0x04; <i>// TMR0 prescaler
set to 1:32</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;"> ...</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;"> <b>if</b>
(Soft_UART_Init(&PORTC, 7, 6, 9600, 0) == 0)</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;">
Soft_UART_Write(0x55);</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;"> ...</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;"> <i>// try
Soft_UART_Read with blocking prevention mechanism</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;"> INTCON.GIE = 1; <i>// Global interrupt enable</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;"> INTCON.T0IE =
1; <i>// Enable Timer0
overflow interrupt</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;"> data1 =
Soft_UART_Read(&error);</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;"> INTCON.GIE =
0; <i>// Global interrupt
disable</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10pt;">}</span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<span style="font-family: Georgia,"Times New Roman",serif;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 16pt; line-height: 115%;">Example Program use two UART</span></b></span></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<br />
</div>
<div class="MsoNormal">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3EcpbFl-TesBmNvUpV4cCCRksuEytAAiHjft1v_vSZhrlDo2A37k4L43X_pe9QbQebCvevjqHcLHyK9_OePxlACP8x8UGJfYmJTw88rqUOEMI6Sr738Dk994XkSYYl7g5pN23_eleZ7La/s1600/index3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="287" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3EcpbFl-TesBmNvUpV4cCCRksuEytAAiHjft1v_vSZhrlDo2A37k4L43X_pe9QbQebCvevjqHcLHyK9_OePxlACP8x8UGJfYmJTw88rqUOEMI6Sr738Dk994XkSYYl7g5pN23_eleZ7La/s400/index3.jpg" width="400" /></a></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
/* This program inputs from on chip UART and output to Soft
UART*/</div>
<div class="MsoNormal" style="text-align: left;">
char i, error, byte_read='1',uart_rd='1'; // Auxiliary variables</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
void main(){</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
TRISB = 0x00; // Set PORTB as
output (error signalization)</div>
<div class="MsoNormal" style="text-align: left;">
PORTB = 0; </div>
<div class="MsoNormal" style="text-align: left;">
UART1_Init(9600); // No error</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
error =
Soft_UART_Init(&PORTC,1 , 0, 9600, 0); // Initialize Soft UART at 14400 bps</div>
<div class="MsoNormal" style="text-align: left;">
if (error > 0) {</div>
<div class="MsoNormal" style="text-align: left;">
PORTB =
error; //
Signalize Init error</div>
<div class="MsoNormal" style="text-align: left;">
while(1) ; // Stop program</div>
<div class="MsoNormal" style="text-align: left;">
}</div>
<div class="MsoNormal" style="text-align: left;">
Delay_ms(100);</div>
<div class="MsoNormal" style="text-align: left;">
UART1_Write_Text("Enter Text Here (0 to exit)");</div>
<div class="MsoNormal" style="text-align: left;">
do {</div>
<div class="MsoNormal" style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
if
(UART1_Data_Ready()) {</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
UART1_Write(10);</div>
<div class="MsoNormal" style="text-align: left;">
UART1_Write(13);</div>
<div class="MsoNormal" style="text-align: left;">
uart_rd =
UART1_Read();</div>
<div class="MsoNormal" style="text-align: left;">
Soft_UART_Write(uart_rd);</div>
<div class="MsoNormal" style="text-align: left;">
Delay_ms(100);</div>
<div class="MsoNormal" style="text-align: left;">
}</div>
<div class="MsoNormal" style="text-align: left;">
}while(uart_rd!='0');</div>
<div style="text-align: left;">
}</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<span style="font-size: xx-small;"><i>tags: extra UART, circuit for extra UART, sample program for UART, UART circuit, PIC Tutorial, MikroC PIC Tutorial, <a class="label" href="http://www.blogger.com/blogger.g?blogID=7333549865774307597" target="_self">Extra UART</a>, <a class="label" href="http://www.blogger.com/blogger.g?blogID=7333549865774307597" target="_self">2 UART</a>, <a class="label" href="http://www.blogger.com/blogger.g?blogID=7333549865774307597" target="_self">Additional UART,</a> <a class="label" href="http://www.blogger.com/blogger.g?blogID=7333549865774307597" target="_self">Embedded Tutorial,</a> <a class="label" href="http://www.blogger.com/blogger.g?blogID=7333549865774307597" target="_self">Embedded</a></i></span> </div>
</div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-25810540278257804932012-10-09T08:05:00.002-07:002012-10-09T08:05:41.255-07:00Using RB0 External Interrupt of PIC 16F877A<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvuBlM-GdChMHYX_2yo1zYAJjBgcvWb8ji-3TcJs3XurGluD83ulwuz3bW41JsbOhXpICmjXGRvBWgHRCNjfXaAKu0siL_gsvBYaHPXX-CIvye5QDWu4Ym7ExwIwVpHkczGKoFM0F2SF4-/s1600/index.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="315" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvuBlM-GdChMHYX_2yo1zYAJjBgcvWb8ji-3TcJs3XurGluD83ulwuz3bW41JsbOhXpICmjXGRvBWgHRCNjfXaAKu0siL_gsvBYaHPXX-CIvye5QDWu4Ym7ExwIwVpHkczGKoFM0F2SF4-/s400/index.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
This is a demonstration for the RB0 external interrupt of PIC 16F877A, below are features of the external interrupt that we are using.<br />
<br />
An input ( depending on how we
set it up ) on the RB0 triggers the interrupt, either the signal goes from 0 to 1, called the rising edge, or as the
signal goes from 1 to 0, called the falling edge. This sets the interrupt flag,
and if the interrupt is enabled ( and we are not already in an interrupt ) the
microcontroller goes to the interrupt subroutine.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitqclMMjzQY4O21Y1cDVMfzN0G0p4gBcZGsxx7VKLRoQl3dfkRD4H3f_SIkVZ5zuBaSAS0P2iaE4vDcouXZP1Zhdii3JqetLG2I_fs4UE7ZjdtZw5LNrPMpfnKSqTLCs_WC5FrhgpeV5y0/s1600/index1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitqclMMjzQY4O21Y1cDVMfzN0G0p4gBcZGsxx7VKLRoQl3dfkRD4H3f_SIkVZ5zuBaSAS0P2iaE4vDcouXZP1Zhdii3JqetLG2I_fs4UE7ZjdtZw5LNrPMpfnKSqTLCs_WC5FrhgpeV5y0/s400/index1.jpg" width="400" /></a></div>
<br />
<br />
<br />
The use of the RB0/Int to should be clear that the use of RB0/Int function of a picmicro requires
the setting of the:<br />
<b>GIE</b>(7): set to 1 to enable global interrupts<br />
<b>INTE</b>(4): set to 1 to enable interrupts on pin RB0<br />
<b>PEIE</b>(6): to disable other periferal interrupts<br />
and the set of the <b>INTEDG</b> bit(6) of the<b> OPTION_REG</b>
register simply to select the rising or falling edge, of the signal.<br />
<br />
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
When switch is pressed RB0 goes from 0 to 1 causing an interrupt
which calls the interrupt() routine. The interrupt routine increment the value
of PORD by one. </div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<h3 class="MsoNormal" style="text-align: left;">
<span style="font-size: medium;"><b style="font-family: Times,"Times New Roman",serif;">Code </b></span></h3>
<div class="MsoNormal">
</div>
<div class="MsoNormal" style="font-family: Times,"Times New Roman",serif; line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
<span style="mso-spacerun: yes;"> </span>void interrupt(void)</div>
<div class="MsoNormal" style="font-family: Times,"Times New Roman",serif; line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
{</div>
<div class="MsoNormal" style="font-family: Times,"Times New Roman",serif; line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
<span style="mso-spacerun: yes;"> </span>PORTD++;<span style="mso-spacerun: yes;"> </span>//Increment PORTD value by one</div>
<div class="MsoNormal" style="font-family: Times,"Times New Roman",serif; line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
<span style="mso-spacerun: yes;"> </span>//delay_ms(500);</div>
<div class="MsoNormal" style="font-family: Times,"Times New Roman",serif; line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
<span style="mso-spacerun: yes;"> </span>INTCON.INTF = 0;<span style="mso-spacerun: yes;"> </span>// clear the interrupt flag</div>
<div class="MsoNormal" style="font-family: Times,"Times New Roman",serif; line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
}</div>
<div class="MsoNormal" style="font-family: Times,"Times New Roman",serif; line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
</div>
<div class="MsoNormal" style="font-family: Times,"Times New Roman",serif; line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
void main(void)</div>
<div class="MsoNormal" style="font-family: Times,"Times New Roman",serif; line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
{</div>
<div class="MsoNormal" style="font-family: Times,"Times New Roman",serif; line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
<span style="mso-spacerun: yes;"> </span>TRISB = 0x01;</div>
<div class="MsoNormal" style="font-family: Times,"Times New Roman",serif; line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
<span style="mso-spacerun: yes;"> </span>TRISD = 0x00;</div>
<div class="MsoNormal" style="font-family: Times,"Times New Roman",serif; line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
<span style="mso-spacerun: yes;"> </span>INTCON.GIE = 1;<span style="mso-spacerun: yes;"> </span>//Enable Global Interrupt</div>
<div class="MsoNormal" style="font-family: Times,"Times New Roman",serif; line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
<span style="mso-spacerun: yes;"> </span>INTCON.INTE = 1;<span style="mso-spacerun: yes;"> </span>//Enable RB0/INT external
Interrupt</div>
<div class="MsoNormal" style="font-family: Times,"Times New Roman",serif; line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
<span style="mso-spacerun: yes;"> </span>INTCON.PEIE = 0;<span style="mso-spacerun: yes;"> </span>//Disable all unmasked
peripheral interrupt</div>
<div class="MsoNormal" style="font-family: Times,"Times New Roman",serif; line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
<span style="mso-spacerun: yes;"> </span>OPTION_REG.INTEDG = 1;<span style="mso-spacerun: yes;"> </span>//Interrupt on rising edge</div>
<div class="MsoNormal" style="font-family: Times,"Times New Roman",serif; line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
<span style="mso-spacerun: yes;"> </span>PORTD=0;</div>
<div class="MsoNormal" style="font-family: Times,"Times New Roman",serif; line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
do</div>
<div class="MsoNormal" style="font-family: Times,"Times New Roman",serif; line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
<span style="mso-spacerun: yes;"> </span>{</div>
<div class="MsoNormal" style="font-family: Times,"Times New Roman",serif; line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
</div>
<div class="MsoNormal" style="font-family: Times,"Times New Roman",serif; line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
<span style="mso-spacerun: yes;"> </span>} while(1);</div>
<div class="MsoNormal" style="font-family: Times,"Times New Roman",serif; text-align: left;">
}</div>
<br />
<br />
<br />
<br />
<br />
<span style="font-size: xx-small;"><i>tags: PIC, PIC 16F877A, PIC 16F877A circuits, PIC 16F877A external interupt, PIC 16F877A projects, MikroC PIC Tutorial, pic interrupt, PIC Microcontroller Interrupt, MikroC, Microcontroller</i></span></div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-82257846750711235942012-09-17T10:36:00.002-07:002012-09-18T06:31:10.771-07:00 DFT and IDFT using MATLAB<div dir="ltr" style="text-align: left;" trbidi="on">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><br />
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:TargetScreenSize>800x600</o:TargetScreenSize>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>ML</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="0" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
</style>
<![endif]-->
<br />
<div class="MsoNormal" style="line-height: 150%; text-align: justify;">
<b><i><u><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">AIM:</span></u></i></b></div>
<div class="MsoNormal" style="line-height: 150%; text-align: justify; text-indent: .5in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">To find DFT and IDFT of a sequence.</span></div>
<div class="MsoNormal" style="line-height: 150%; text-align: justify;">
<b><i><u><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">APPARATUS REQUIRED:</span></u></i></b></div>
<div class="MsoNormal" style="line-height: 150%; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">Hard ware: IBM PC or compatible</span></div>
<div class="MsoNormal" style="line-height: 150%; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">Soft ware : Matlab 6.5 or higher</span></div>
<div class="MsoNormal" style="line-height: 150%; text-align: justify;">
<b><i><u><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">THEORY:</span></u></i></b></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: 5.0pt; margin-left: 0in; margin-right: 0in; margin-top: 5.0pt; text-align: justify; text-indent: .5in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">In mathematics, the discrete Fourier
transform (DFT) is a specific kind of discrete transform, used in Fourier
analysis. It transforms one function into another, which is called the
frequency domain representation, or simply the DFT, of the original function
(which is often a function in the time domain). The DFT requires an input
function that is discrete. Such inputs are often created by sampling a
continuous function, such as a person's voice. The discrete input function must
also have a limited (finite) duration, such as one period of a periodic
sequence or a windowed segment of a longer sequence. Unlike the discrete-time
Fourier transform (DTFT), the DFT only evaluates enough frequency components to
reconstruct the finite segment that was analyzed. The inverse DFT cannot
reproduce the entire time domain, unless the input happens to be periodic.
Therefore it is often said that the DFT is a transform for Fourier analysis of
finite-domain discrete-time functions.</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: 5.0pt; margin-left: 0in; margin-right: 0in; margin-top: 5.0pt; text-align: justify; text-indent: .5in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: 5.0pt; margin-left: 0in; margin-right: 0in; margin-top: 5.0pt; text-align: justify; text-indent: .5in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">FFT algorithms are so commonly
employed to compute DFTs that the term "FFT" is often used to mean
"DFT" in colloquial settings. Formally, there is a clear distinction:
"DFT" refers to a mathematical transformation or function, regardless
of how it is computed, whereas "FFT" refers to a specific family of
algorithms for computing DFTs. The terminology is further blurred by the (now
rare) synonym finite Fourier transform for the DFT, which apparently predates
the term "fast Fourier transform"</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: 5.0pt; margin-left: 0in; margin-right: 0in; margin-top: 5.0pt; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">The<b> discrete Fourier transform (DFT)</b> is given by:</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; text-align: justify;">
<img height="50" src="file:///C:\Users\A-J\AppData\Local\Temp\msohtmlclip1\01\clip_image001.gif" width="188" /><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: 5.0pt; margin-left: 0in; margin-right: 0in; margin-top: 5.0pt; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">The <b>inverse discrete Fourier transform (IDFT)</b> is
given by:</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; text-align: justify;">
<img height="51" src="file:///C:\Users\A-J\AppData\Local\Temp\msohtmlclip1\01\clip_image002.gif" width="214" /><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: 150%; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 150%; text-align: justify;">
<b><i><u><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">PROGRAM:</span></u></i></b></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">clc;</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">clear
</span><span style="color: #a020f0; font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">all</span><span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">;</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">close
</span><span style="color: #a020f0; font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">all</span><span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">;</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">x=input(</span><span style="color: #a020f0; font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">'enter the sequence'</span><span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">);</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">x1=fft(x);</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">subplot(2,2,1);</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">stem(imag(x1));</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">title(</span><span style="color: #a020f0; font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">'imaginary fft'</span><span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">);</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">disp(</span><span style="color: #a020f0; font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">'fft'</span><span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">);</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">disp(x1);</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">subplot(2,2,2);</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">stem(real(x1));</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">title(</span><span style="color: #a020f0; font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">'real fft'</span><span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">);</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">y=ifft(x1);</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">subplot(2,2,3);</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">stem(imag(y));</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">title(</span><span style="color: #a020f0; font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">'imaginary ifft'</span><span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">);</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">disp(</span><span style="color: #a020f0; font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">'ifft'</span><span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">);</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">disp(y);</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">subplot(2,2,4);</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">stem(real(y));</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">title(</span><span style="color: #a020f0; font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">'real ifft'</span><span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">);</span></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";"><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";">Enter the sequence<span style="mso-spacerun: yes;"> </span>[1<span style="mso-spacerun: yes;">
</span>2<span style="mso-spacerun: yes;"> </span>3<span style="mso-spacerun: yes;"> </span>4]</span></span><br />
<br />
<br />
<div class="MsoNormal" style="line-height: 150%; text-align: justify;">
<span style="font-size: x-small;"><i><br /></i></span></div>
<span style="font-size: x-small;"><i>Tags: MATLAB basics, MATLAB programs, MATLAB signal generation, Learn MATLAB, IDFT, DFT, IDFT using MATLAB, DFT using MATLAB, IDFT programs, DFT programs, IDFT and DFT programs</i></span><span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";"><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 150%; mso-fareast-font-family: "Times New Roman";"> </span> </span></div>
</div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-85995350007426724452012-09-17T10:20:00.004-07:002012-09-17T10:20:47.397-07:00Two-digit LED counter using PIC<div dir="ltr" style="text-align: left;" trbidi="on">
<h3 style="color: black; font-style: normal; font-variant: normal; letter-spacing: normal; margin: 0px 0px 10px; orphans: 2; padding: 2px 0px 2px 5px; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></span></h3>
<div style="color: black; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 1.5em; margin: 0px 0px 1.1em; orphans: 2; padding: 0px 5px; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Here the PIC16F887 is used as a two-digit counter . The variable i is incremented (slow enough to be visible) and its value is displayed on a two-digit LED display (99-0). The challenge is to enable a binary number to be converted in decimal and split it in two digits (tens and ones). Since the LED display segments are connected in parallel, it is necessary to ensure that they change fast in order to make impression of simultaneous light emission (time-division multiplexing).</span></span></div>
<div style="color: black; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 1.5em; margin: 0px 0px 1.1em; orphans: 2; padding: 0px 5px; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">In this example, timer TMR0 is in charge of the time-division multiplexing, while the<span class="Apple-converted-space"> </span><i style="margin: 0px; padding: 0px;">mask</i><span class="Apple-converted-space"> </span>function converts a binary number into decimal format.</span></span></div>
<div class="center" style="color: black; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; margin: 0px; orphans: 2; padding: 0px; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><img alt="Example 9" height="301" src="http://www.mikroe.com/img/publication/pic-books/programming-in-c/chapter/04/fig4-42.gif" style="border: 0px none; margin: 0px; padding: 0px;" title="Example 9" width="400" /></span></span></div>
<pre class="code" style="background-color: #f0f0f3; border: 1px solid rgb(204, 221, 221); color: #006600; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; margin: 1.4em 5px; orphans: 2; padding: 0.8em; text-align: start; text-indent: 0px; text-transform: none; widows: 2; width: 765px; word-spacing: 0px;"><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><i style="margin: 0px; padding: 0px;">/*Header******************************************************/</i>
<b style="margin: 0px; padding: 0px;">unsigned short</b> mask(<b style="margin: 0px; padding: 0px;">unsigned short</b> num);
<b style="margin: 0px; padding: 0px;">unsigned short</b> digit_no, digit10, digit1, digit, i;
<b style="margin: 0px; padding: 0px;">void</b> interrupt() {
<b style="margin: 0px; padding: 0px;">if</b> (digit_no==0) {
PORTA = 0; <i style="margin: 0px; padding: 0px;">// Turn off both displays</i>
PORTD = digit1; <i style="margin: 0px; padding: 0px;">// Set mask for displaying ones on PORTD</i>
PORTA = 1; <i style="margin: 0px; padding: 0px;">// Turn on display for ones (LSD)</i>
digit_no = 1;
} <b style="margin: 0px; padding: 0px;">else</b> {
PORTA = 0; <i style="margin: 0px; padding: 0px;">// Turn off both displays</i>
PORTD = digit10; <i style="margin: 0px; padding: 0px;">// Set mask for displaying tens on PORTD</i>
PORTA = 2; <i style="margin: 0px; padding: 0px;">// Turn on display for tens (MSD)</i>
digit_no = 0;
}
TMR0 = 0; <i style="margin: 0px; padding: 0px;">// Reset counter TMRO</i>
INTCON = 0x20; <i style="margin: 0px; padding: 0px;">// Bit T0IF=0, T0IE=1</i>
}
<b style="margin: 0px; padding: 0px;">void</b> main() {
OPTION_REG = 0x80; <i style="margin: 0px; padding: 0px;">// Set timer TMR0</i>
TMR0 = 0;
INTCON = 0xA0; <i style="margin: 0px; padding: 0px;">// Disable interrupt PEIE,INTE,RBIE,T0IE</i>
PORTA = 0; <i style="margin: 0px; padding: 0px;">// Turn off both displays</i>
TRISA = 0; <i style="margin: 0px; padding: 0px;">// All port A pins are configured as outputs</i>
PORTD = 0; <i style="margin: 0px; padding: 0px;">// Turn off all display segments</i>
TRISD = 0; <i style="margin: 0px; padding: 0px;">// All port D pins are configured as outputs</i>
<b style="margin: 0px; padding: 0px;">do</b> {
<b style="margin: 0px; padding: 0px;">for</b> (i = 0; i<=99; i++) { <i style="margin: 0px; padding: 0px;">// Count from 0 to 99</i>
digit = i % 10u;
digit1 = mask(digit); <i style="margin: 0px; padding: 0px;">// Prepare mask for displaying ones</i>
digit = (<b style="margin: 0px; padding: 0px;">char</b>)(i / 10u) % 10u;
digit10 = mask(digit); <i style="margin: 0px; padding: 0px;">// Prepare mask for displaying tens</i>
Delay_ms(1000);
}
} <b style="margin: 0px; padding: 0px;">while</b> (1); <i style="margin: 0px; padding: 0px;">// Endless loop</i>
}</span></span></pre>
<div style="color: black; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 1.5em; margin: 0px 0px 1.1em; orphans: 2; padding: 0px 5px; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><b style="margin: 0px; padding: 0px;">mask.c</b><span class="Apple-converted-space"> </span>file:</span></span></div>
<pre class="code" style="background-color: #f0f0f3; border: 1px solid rgb(204, 221, 221); color: #006600; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; margin: 1.4em 5px; orphans: 2; padding: 0.8em; text-align: start; text-indent: 0px; text-transform: none; widows: 2; width: 765px; word-spacing: 0px;"><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><i style="margin: 0px; padding: 0px;">/*Header******************************************************/</i>
<b style="margin: 0px; padding: 0px;">unsigned short</b> mask(<b style="margin: 0px; padding: 0px;">unsigned short</b> num) {
<b style="margin: 0px; padding: 0px;">switch</b> (num) {
<b style="margin: 0px; padding: 0px;">case</b> 0 : <b style="margin: 0px; padding: 0px;">return</b> 0x3F;
<b style="margin: 0px; padding: 0px;">case</b> 1 : <b style="margin: 0px; padding: 0px;">return</b> 0x06;
<b style="margin: 0px; padding: 0px;">case</b> 2 : <b style="margin: 0px; padding: 0px;">return</b> 0x5B;
<b style="margin: 0px; padding: 0px;">case</b> 3 : <b style="margin: 0px; padding: 0px;">return</b> 0x4F;
<b style="margin: 0px; padding: 0px;">case</b> 4 : <b style="margin: 0px; padding: 0px;">return</b> 0x66;
<b style="margin: 0px; padding: 0px;">case</b> 5 : <b style="margin: 0px; padding: 0px;">return</b> 0x6D;
<b style="margin: 0px; padding: 0px;">case</b> 6 : <b style="margin: 0px; padding: 0px;">return</b> 0x7D;
<b style="margin: 0px; padding: 0px;">case</b> 7 : <b style="margin: 0px; padding: 0px;">return</b> 0x07;
<b style="margin: 0px; padding: 0px;">case</b> 8 : <b style="margin: 0px; padding: 0px;">return</b> 0x7F;
<b style="margin: 0px; padding: 0px;">case</b> 9 : <b style="margin: 0px; padding: 0px;">return</b> 0x6F;
}
}</span></span></pre>
</div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-43766052935889965782012-09-16T10:31:00.001-07:002012-09-18T09:52:30.764-07:00LCD based digital alarm clock using 89S51 MC<div dir="ltr" style="text-align: left;" trbidi="on">
<h3 class="post-title entry-title">
<span style="font-family: Arial,Helvetica,sans-serif;">LCD based digital alarm clock using 89S51 MicroController</span><br /><span style="font-family: Arial,Helvetica,sans-serif;"></span>
</h3>
<div class="post-header">
</div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif; margin-left: 1em; margin-right: 1em;">
<img alt="" height="276" src="data:image/jpeg;base64,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+CGmnFC9t/df3GpoSX1pNMYVaJ5Iyu504x3FaNx9s02cySx5gYneY+nPfHY/z9qib5tjtwk7t32Zq26tOqskquj8qwHUYqAwGXVgoZm2FS30AP8AVh+VTZnRe10zUa3GCQp46ZJ64qGYJGhIUZA54zTsjPmbKFvOGnVNo27uffr/AIVs2zLuAJ3Z5x6U4tEyTNEAKhIHB4HNUrghXJPIFUSc7I7k7iwGSfeozk7fmJ6gbB/9aszRErCR2/1TknOMnGaaYJNwPlqOv3qLMLokkhbnlR14HNK9uAhJkK8HoMe1PUWgyO2jIUEsxI/nxVn7GhPzRgY5+bn2p2JuLBHGshBTBJ/P/OKbJH5bE9/p0o2AsRzxBRnh+2KLudJEfaB6YZev+elDkUomTbXT6ZtKR7rZyQVHb6f4Vq6EN5kuG+9NllPoAf8A6+fxpI2qL3Obv+hpuOp6cc9vxrCv2bz5DC3H1/z7U2Yx8yGxK7lZmCYBwT246fzrcs0UN29Tz+n+fSpsO7NNZVKeWmeBwayriT5zkZz0J6ZqzO3c/9n/7RPqUGhvdG9zaG9wIDMuMAA4QklNA+0KUmVzb2x1dGlvbgAAAAAQAEgAAAABAAEASAAAAAEAAThCSU0EDRhGWCBHbG9iYWwgTGlnaHRpbmcgQW5nbGUAAAAABAAAAB44QklNBBkSRlggR2xvYmFsIEFsdGl0dWRlAAAAAAQAAAAeOEJJTQPzC1ByaW50IEZsYWdzAAAACQAAAAAAAAAAAQA4QklNBAoOQ29weXJpZ2h0IEZsYWcAAAAAAQAAOEJJTScQFEphcGFuZXNlIFByaW50IEZsYWdzAAAAAAoAAQAAAAAAAAACOEJJTQP1F0NvbG9yIEhhbGZ0b25lIFNldHRpbmdzAAAASAAvZmYAAQBsZmYABgAAAAAAAQAvZmYAAQChmZoABgAAAAAAAQAyAAAAAQBaAAAABgAAAAAAAQA1AAAAAQAtAAAABgAAAAAAAThCSU0D+BdDb2xvciBUcmFuc2ZlciBTZXR0aW5ncwAAAHAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAOEJJ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KSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJT/AP/Q8qSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSU/wD/0fKkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklP8A/9LypJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJT/AP/T8qSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkk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" width="320" /><br />
<b><span style="font-size: x-small;">Circuit Diagram</span></b></span></div>
<div style="color: red;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"><img border="0" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvhjdq9EHO85B4kWeauMg5rpj1gKxeiXvMv1ZCvQ_i6il495GQRp7IFvSB3KAFFzy-0k0zMEKa04_IKyymhO6uoFqDjJdqiR02QbGePQ54gJdGEhMAu2BCFV2Kqz4b9io4EJpJVJ_1-211/s320/clk.JPG" width="320" /></span></div>
<span style="font-family: Arial,Helvetica,sans-serif;">
An alarm clock is a clock that indicates a pre-set time by producing
sound at that time. This functionality of digital clock is used to
awaken people or remind them of something. A digital clock is one that
displays time digitally. The project explained here, displays time on a
16x2 LCD module. The LCD is interfaced with 8051 microcontroller
(AT89S51). This circuit can be used in cars, houses, offices etc.</span><br />
<br />
<br />
<div style="text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"><a href="http://microcontrollerprojects00.blogspot.in/2012/03/lcd-based-digital-alarm-clock-using.html" target="_blank"><b>Read Full Article </b></a></span><br />
<br />
<br />
<br />
<br />
<div style="text-align: left;">
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: x-small;"><i>Tags: microcontroller projects, digital alarm, 89S51 microcontroller, <span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: x-small;"><i>89S51 microcontroller projects, <span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: x-small;"><i>89S51 microcontroller circuits, project circuits</i></span></span></i></span></span></i></span></span><span style="font-family: Arial,Helvetica,sans-serif;"><b> </b></span></div>
</div>
</div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-38477129033693835862012-09-16T10:19:00.003-07:002012-09-16T10:19:57.263-07:00PIC Serial Communication Tutorial (UART) <div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Arial,Helvetica,sans-serif;">First, a quick history of RS232. What is RS232? It's just a name for a
standard that has propagated from generation to generation of computers.
The first computers had serial ports that used RS232, and even current
computers have serial ports (or at least USB ports that act like RS232
ports). Back in the day, serial information needed to be passed from
devices like printers, joysticks, scanners, etc to the computer. The
simplest way to do this was to pass a series of 1s and 0s to the
computer. Both the computer and the device agreed on a speed of
information - 'bits per second'. A computer would pass image data to a
printer at 9600 bits per second and the printer would listen for this
stream of 1s and 0s expecting a new bit every 1/9600 = 104us (104
micro-seconds, 0.000104 seconds). As long as the computer output bits at
the pre-determined speed, the printer could listen. <br />
Zoom forward to today. Electronics have changed a bit. Before they were
relatively high power, high voltage devices. The standard that is
'RS232' dictates that a bit ranges from -12V to +12V. Modern electronics
do not operate at such high positive and negative voltages. In fact,
our PIC runs 0V to 5V. So how do we get our 5V micro to talk the RS232
+/-12V voltages? This problem has been solved by the IC manufacturers of
the world. They have made an IC that is generically known as the MAX232
(very close to RS232, no?).<br />
The MAX232 is an IC originally designed by a company called Maxim IC
that converts the +/-12V signals of RS232 down to the 0/5V signals that
our PIC can understand. It also boosts the voltage of our PIC to the
needed +/-12V of the RS232 protocol so that a computer can understand
our PIC and vice versa. To get our PIC IC sending serial characters to
a computer, we have to send these serial signals through a MAX232
circuit so that the computer receives +/-12V RS232 signals. Don't worry
if you're working with a chip labeled 'ICL232' or 'ST232' - these are
just generics of the MAX232. Everyone says 'MAX232'. The ICs all
function the same and nearly all have the same pinout. </span>
<br />
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 2;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
</div>
<div class="MsoNormal" style="line-height: normal;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
</div>
<div class="MsoNormal" style="line-height: normal;">
<span style="font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: 12pt;">Circuit </span></b></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 2;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
</div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_00-k44yfnQuB8vQJyqSWjXxaSXFRmX5a3EJBmBqU_y-a8w7117yiBfpN5xL0Yxt5ls4_dcdn0KkATCmeXZhZP1w0NY6yJ_Qtb1-nO5yjShsMRnWuAeOJ7_svkHVUhmv4nydiO6hCRF-f/s400/sche.JPG" width="365" /> </span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"> </span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial,Helvetica,sans-serif;"><a href="http://microcontrollerprojects00.blogspot.in/2012/03/pic-serial-communication-tutorial-uart.html" target="_blank"><b>Read Full Article </b></a></span></div>
</div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-61806122553006629072012-09-15T22:10:00.003-07:002012-09-15T22:10:37.806-07:00Presentation Topics on POWER GENERATION FROM ROAD SPEED BREAKER AND FROM SHOES<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Arial,Helvetica,sans-serif;">Energy is subject to the <b>law of conservation of energy</b>. According to this law, energy can neither be created (produced) nor destroyed by itself. It can only be transformed.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;">Most kinds of energy (with gravitational energy being a notable exception)<sup class="reference" id="cite_ref-9"><a href="http://en.wikipedia.org/wiki/Energy#cite_note-9"><span>[</span>10<span>]</span></a></sup>
are subject to strict local conservation laws as well. In this case,
energy can only be exchanged between adjacent regions of space, and all
observers agree as to the volumetric density of energy in any given
space. There is also a global law of conservation of energy, stating
that the total energy of the universe cannot change; this is a corollary
of the local law, but not vice versa.<sup class="reference" id="cite_ref-RPF1_5-1"><a href="http://en.wikipedia.org/wiki/Energy#cite_note-RPF1-5"><span>[</span>6<span>]</span></a></sup><sup class="reference" id="cite_ref-thermo-laws_10-0"><a href="http://en.wikipedia.org/wiki/Energy#cite_note-thermo-laws-10"><span>[</span>11<span>]</span></a></sup> <a href="http://en.wikipedia.org/wiki/Conservation_of_energy" title="Conservation of energy">Conservation of energy</a> is the mathematical consequence of <a href="http://en.wikipedia.org/wiki/Translational_symmetry" title="Translational symmetry">translational symmetry</a> of <a href="http://en.wikipedia.org/wiki/Time" title="Time">time</a> (that is, the indistinguishability of time intervals taken at different time)<sup class="reference" id="cite_ref-11"><a href="http://en.wikipedia.org/wiki/Energy#cite_note-11"><span>[</span>12<span>]</span></a></sup> - see <a href="http://en.wikipedia.org/wiki/Noether%27s_theorem" title="Noether's theorem">Noether's theorem</a>.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;">According to <a href="http://en.wikipedia.org/wiki/Conservation_of_energy" title="Conservation of energy">Conservation of energy</a>
the total inflow of energy into a system must equal the total outflow
of energy from the system, plus the change in the energy contained
within the system.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;">This law is a fundamental principle of physics. It follows from the <a href="http://en.wikipedia.org/wiki/Translational_symmetry" title="Translational symmetry">translational symmetry</a> of <a href="http://en.wikipedia.org/wiki/Time" title="Time">time</a>,
a property of most phenomena below the cosmic scale that makes them
independent of their locations on the time coordinate. Put differently,
yesterday, today, and tomorrow are physically indistinguishable.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;">This is because energy is the quantity which is <a class="mw-redirect" href="http://en.wikipedia.org/wiki/Canonical_conjugate" title="Canonical conjugate">canonical conjugate</a>
to time. This mathematical entanglement of energy and time also results
in the uncertainty principle - it is impossible to define the exact
amount of energy during any definite time interval. The uncertainty
principle should not be confused with energy conservation - rather it
provides mathematical limits to which energy can in principle be defined
and measured.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;">Researches show that the world has already had its enough shares
of its energy resources. Fossil fuels pollute the environment. Nuclear
energy requires careful handling of both raw as well as waste material.
The focus now is shifting more and more towards the renewable sources of
energy, which are essentially, nonpolluting.</span>
<div class="wp-caption alignnone" id="attachment_789" style="width: 428px;">
<span style="font-family: Arial,Helvetica,sans-serif;"><img alt="Mechanical Seminar Topics" class="size-full wp-image-789" height="143" src="http://www.presentationtopics.in/wp-content/uploads/2012/06/mechanical-mini-projects4.png" title="Mechanical mini projects" width="418" /></span><div class="wp-caption-text">
<span style="font-family: Arial,Helvetica,sans-serif;">presentation Topics on recent trends in power generation</span></div>
</div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Energy conservation is the cheapest new
source of energy. It is an attractive technology for optimal use of
available sources. This project attempts to show how energy can be
tapped and used at a commonly used system, the road-speed breakers. The
number of vehicles passing over the speed breaker in roads is increasing
day by day. There is possibility of tapping the energy and generating
power by making the speed breaker as a power generation unit.</span></div>
<ul style="text-align: justify;">
<li><span style="font-family: Arial,Helvetica,sans-serif;"> The generated power can be used for the lamps near the speed breakers.</span></li>
</ul>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Hence, a project work has been done in
our institution, implementing this idea practically under the title
“Design and Development of Power Generation Unit in Speed Breakers”.
This project explains clearly, the working principle of the designed
system, its practical implementation, and its advantages.</span></div>
<div class="wp-caption alignnone" style="width: 216px;">
<span style="font-family: Arial,Helvetica,sans-serif;"><img alt="Mechanical mini projects" height="180" src="http://www.presentationtopics.in/wp-content/uploads/2012/06/mechanical-mini-projects1.png" title="mechanical mini projects" width="206" /></span><div class="wp-caption-text">
<span style="font-family: Arial,Helvetica,sans-serif;">Power generation with shoe</span></div>
</div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Design of each component has been
carried out using standard procedures, and the components have been
fabricated and assembled. A similar model of the system has been modeled
using Pro-E. Practical testing of the system has been done with
different loads at different speeds. Taking the various criteria that
determine the power generation, graphs have been plotted. The second
project will show you how to create a shoe that generates electricity.
It does this by using your energy when you walk and converts it into
electricity. Its just a simple craft that every one should know it.</span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="margin-left: 1em; margin-right: 1em;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="margin-left: 1em; margin-right: 1em;">
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="color: blue;"><b><a href="http://www.presentationtopics.in/seminar-topics-mechanical-mini-projects-presentation-topics-power-generation-from-road-speed-breaker-and-from-shoes/" target="_blank">Read Full Article</a></b></span></span></div>
<br />
</div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-45941072819476159442012-09-15T21:52:00.002-07:002012-09-18T06:02:15.438-07:00Mains Failure Alarm<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidJzpzULwDR3-kFdZqRoEpCRWZYllGsdprGOosjdv5_cFmi3e4pg4KYqWqGUjRHglCIoLoq01-KJ_giqdWEHIcVCC1MBgYnivecDR4t2LKVc3Mvr4ubkrJ5d1HgiGcNkW10YLjOFe-voch/s1600/422954_414694218590855_891851205_n.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="157" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidJzpzULwDR3-kFdZqRoEpCRWZYllGsdprGOosjdv5_cFmi3e4pg4KYqWqGUjRHglCIoLoq01-KJ_giqdWEHIcVCC1MBgYnivecDR4t2LKVc3Mvr4ubkrJ5d1HgiGcNkW10YLjOFe-voch/s400/422954_414694218590855_891851205_n.jpg" width="400" /></a></div>
<span style="font-family: Arial,Helvetica,sans-serif;">This is a simple circuit diagram of a mains failure alarm. This circuit generates alarm when there is any failure in the main supply. So it can used as a safety alarm at the time of mains failure.</span><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;"><i><span style="font-size: x-small;">Tags: electronics circuits, electronics circuit ideas, circuit ideas, safety circuits, circuits for beginners, alarm circuits, mains failure alarm, mains failure alarm circuits, simple circuits, safety alarm</span></i></span></div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com0tag:blogger.com,1999:blog-7333549865774307597.post-2553855469609760002012-09-11T10:37:00.001-07:002012-09-18T05:59:14.710-07:00PIC Microcontroller Based Electronic Lock <div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdZ-Nqd7ktliHS0pGeU8exJ3ruWLYDXNG3Cew_F04G9QwX2CGA5RGHQFqh2P60OdzaCay588vducLNy5NQ24QX5wmHJ3mxlV59nN6mZ8jTpd0362mK_RlSdz5FS9nCETosStRebTUEUnQc/s1600/D+Lock.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdZ-Nqd7ktliHS0pGeU8exJ3ruWLYDXNG3Cew_F04G9QwX2CGA5RGHQFqh2P60OdzaCay588vducLNy5NQ24QX5wmHJ3mxlV59nN6mZ8jTpd0362mK_RlSdz5FS9nCETosStRebTUEUnQc/s320/D+Lock.JPG" width="298" /> </a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal">
Security is a prime concern in our day-today life. Everyone wants to be
as much secure as possible. An access control for doors forms a vital
link in a security chain. The microcontroller based digital lock for
Doors is an access control system that allows only authorized persons to
access a restricted area. </div>
<div class="MsoNormal">
An <b><span style="font-family: "Calibri","sans-serif";">electronic lock</span></b> or <b><span style="font-family: "Calibri","sans-serif";">digital lock</span></b> is a device which has an electronic control assembly attached to it. They are provided with an access control <span style="color: black;">system.
This system allows the user to unlock the device with a password. The
password is entered by making use of a keypad. The user can also set his
password to ensure better protection. The major components include a
Keypad, LCD and the controller PIC16F877A. This article describes the
making of an electronic code lock using the 16F877A microcontroller.</span></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<span style="color: black;">For complete circuit and description click on the link below</span></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<span style="color: black;"><a href="http://microcontrollerprojects00.blogspot.in/2012/03/pic-microcontroller-based-electronic.html" target="_blank">http://microcontrollerprojects00.blogspot.in/2012/03/pic-microcontroller-based-electronic.html </a></span><br />
<br />
<br />
<span style="color: black;"><i><span style="font-size: x-small;">Tags: microcontroller projects, electronic projects, final year engineering projects, electronics mini projects, engineering projects, electronics circuits, microcontroller based projects, embeded projects, PIC projects, PIC circuits , Security locks, lock circuits, security circuits, electronic lock, microcontroller lock, electronic lock witth PIC, digital lock, digital security systems, PIC16F877A projects, PIC16F877A</span></i></span></div>
</div>
Wowhttp://www.blogger.com/profile/06968512591236905866noreply@blogger.com9