<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6492043148642544250</id><updated>2026-10-02T04:38:31.894-03:00</updated><category term="PIC"/><category term="Tutoriais"/><category term="Projetos"/><category term="Bibliotecas"/><category term="MikroC"/><category term="AVR"/><category term="Arduino"/><category term="Biblioteca"/><category term="Sensores"/><category term="Downloads"/><category term="SPI"/><category term="I2C"/><category term="Sensor"/><category term="Termometro"/><category term="7 Segmentos"/><category term="ADC"/><category term="Apostilas e Livros"/><category term="Circuitos"/><category term="DAC"/><category term="Download"/><category term="Games"/><category term="LCD"/><category term="Potenciometro"/><category term="Projeto"/><category term="Tutorial"/><category term="Wireless"/><category term="74HC595"/><category term="C"/><category term="Componentes"/><category term="EEPROM"/><category term="Higrometro"/><category term="Proteus"/><category term="Termostato"/><category term="Timer"/><title type='text'>Microcontrolandos</title><subtitle type='html'>Aprenda a programar microcontroladores de verdade.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Tiago Henrique</name><uri>http://www.blogger.com/profile/09385302997357057888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DEIRSvuNsOgEgq7JXn5GkdO-CDD6izks1hc_VMd7mTD4rBAOkMNByPefn7OZeLmaf0RIOHpI8xFnf1jmsc43yivpk3htzCpsOeCAbrh1krZWA3uMPVzq7rVBXNmJtN8/s1600/*'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>136</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-6011413193995382598</id><published>2018-04-02T10:31:00.002-03:00</published><updated>2018-04-03T08:23:42.984-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Download"/><category scheme="http://www.blogger.com/atom/ns#" term="MikroC"/><category scheme="http://www.blogger.com/atom/ns#" term="PIC"/><title type='text'>MikroC PRO for PIC 7</title><content type='html'>&lt;img class=&quot;post-banner&quot; src=&quot;https://www.dropbox.com/s/pxobfra2yg00366/download-mikroc-pro-7.png?dl=1&quot; /&gt;&lt;br /&gt;
&lt;div class=&quot;markdown&quot;&gt;
&lt;textarea style=&quot;height: 91px; margin: 0px; width: 658px;&quot;&gt;&lt;br /&gt;
Esta é a nova versão do [MikroC PRO for PIC](https://www.mikroe.com/mikroc-pic). Contendo mais de 1000 funções em suas bibliotecas e suportando cerca de 800 microcontroladores PIC, é considerado um dos melhores compiladores existente no mercado.&lt;br /&gt;
&lt;br /&gt;
Obviamente que este maravilhoso compilador não sai de graça, e sugiro à aqueles que querem se profissionalizar no ramo, compre este software. É baratinho, apenas **U$249,00** rsrs.&lt;br /&gt;
&lt;br /&gt;
### Instalação&lt;br /&gt;
1. Baixe e instale o executável clicando [aqui](https://download.mikroe.com/setups/compilers/mikroc/pic/mikroc-pic-setup-v720.zip);&lt;br /&gt;
&lt;br /&gt;
### Crackeando&lt;br /&gt;
1. Baixe o crack clicando [aqui](https://rebrand.ly/mikroc-pro-pic-7-crack);&lt;br /&gt;
2. Copie e cole o arquivo `HIDDongleDLL.dll` na pasta onde você instalou o MikroC. Irá aparecer uma janela de diálogo perguntando se você quer substituir o arquivo. Substitua-o;&lt;br /&gt;
&lt;!-- --&gt;&lt;br /&gt;
Pronto! Agora vocês podem se divertir sem aquela limitação de 2k de código!!!&lt;br /&gt;
&lt;/textarea&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/6011413193995382598/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2018/04/download-mikroc-pro-for-pic-7.html#comment-form' title='10 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/6011413193995382598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/6011413193995382598'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2018/04/download-mikroc-pro-for-pic-7.html' title='MikroC PRO for PIC 7'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/12456371589981650356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-5506617460760751551</id><published>2018-03-11T10:55:00.000-03:00</published><updated>2018-03-11T14:39:12.651-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Biblioteca"/><category scheme="http://www.blogger.com/atom/ns#" term="DAC"/><category scheme="http://www.blogger.com/atom/ns#" term="MikroC"/><category scheme="http://www.blogger.com/atom/ns#" term="PIC"/><category scheme="http://www.blogger.com/atom/ns#" term="SPI"/><title type='text'>PIC: MCP4922</title><content type='html'>&lt;img class=&quot;post-banner&quot; src=&quot;https://www.dropbox.com/s/5sbsftvtsk3mmqf/pic-mcp4922.png?dl=1&quot; /&gt;

&lt;br /&gt;
&lt;div class=&quot;markdown&quot;&gt;
&lt;textarea&gt;
[MCP4922](http://ww1.microchip.com/downloads/en/DeviceDoc/22250A.pdf) é um conversor digital-analógico (DAC) de 12-bits da Microchip.

### Características
* Tensão de operação: 2.7V até 5.5V;
* Comunicação via SPI;
* Resolução de 12-bits;
* 2 canais de saída;
* Ganho de saída (1x ou 2x);

### Funcionamento
O MCP4922 converte um valor digital de 12 bits em um valor de tensão de 0V até `VREF`. Ainda é possível ter um ganho de saída de `2 * VREF`. Cada canal possui um pino `VREF` externo.

O pino `SHDN` tem a finalidade de colocar ambos as saídas no modo *shutdown*. Também é possível configurá-los individualmente pelo registro de configuração. No modo *shutdown* a maioria dos circuitos internos são desligados e a saída é configurada para ter uma resistência de 500k.

O cálculo para a tensão de saída é: `((VREF * Valor) / 4096) * Ganho`.

Para definir o valor de um determinado canal:
* Definimos o pino `CS` com nível lógico baixo para habilitar a transmissão dos dados;
* Enviamos 16 bits:
![](https://www.dropbox.com/s/x2sgx9rbcyqxa2e/pic-mcp4922-write-command-register.png?dl=1)
   * O bit 15 seleciona o canal: `0` é o canal 0 e `1` é o canal 1;
   * O bit 13 indica o ganho de saída: `0` = ganho de 2x e `1` = não há ganho;
   * O bit 12 define se o canal selecionado será colocado no modo *shutdown*. `0` = modo shutdown e `1` = modo normal;
   * Os bit 11-0 sãos os 12 bits que definem o valor de saída do canal selecionado.
* Definimos o pino `CS` com nível lógico alto para finalizar a transmissão dos dados;

&gt; Um projeto legal que poderíamos montar é um player de músicas no formato WAV (Mono ou Stereo) lidos de um SD Card.

### Download
[MCP4922.zip](http://bit.ly/2IjO33E)

### Código

&lt;div data-gist=&quot;https://gist.github.com/tiagohm/5d0b035ac4d8fa9d2431794e581950f4&quot;&gt;&lt;/div&gt;
&lt;/textarea&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/5506617460760751551/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2018/03/pic-mcp4922.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/5506617460760751551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/5506617460760751551'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2018/03/pic-mcp4922.html' title='PIC: MCP4922'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/12456371589981650356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-2418351003182351694</id><published>2018-03-03T10:19:00.001-03:00</published><updated>2018-03-11T14:38:14.094-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Biblioteca"/><category scheme="http://www.blogger.com/atom/ns#" term="MikroC"/><category scheme="http://www.blogger.com/atom/ns#" term="PIC"/><category scheme="http://www.blogger.com/atom/ns#" term="Sensor"/><category scheme="http://www.blogger.com/atom/ns#" term="Termometro"/><title type='text'>PIC: TC1047A</title><content type='html'>&lt;img class=&quot;post-banner&quot; src=&quot;https://www.dropbox.com/s/aqwmz0g54nzsy0j/pic-tc1047a.png?dl=1&quot; /&gt;

&lt;br /&gt;
&lt;div class=&quot;markdown&quot;&gt;
&lt;textarea style=&quot;height: 165px; width: 670px;&quot;&gt;[TC1047A](http://ww1.microchip.com/downloads/en/DeviceDoc/21498D.pdf) é um sensor de temperatura.

### Características
* Tensão de operação: 2.5V até 5.5V;
* Acurácia de ±2°C;
* Faixa mensurável de temperatura: -40°C até 125°C;
* Baixo consumo de energia: 35uA.

### Funcionamento
O TC1047 converte o valor de temperatura em um valor de tensão linearmente proporcional. Cada 10mV corresponde a 1°C.

![](https://www.dropbox.com/s/bc2jxmy957gxlbn/pic-tc1047a-voltage-vs-temperature.png?dl=1)

Através do canal analógico do microcontrolador, iremos ler o valor digital da temperatura. Numa temperatura de -40°C o TC1047A tem uma tensão de saída de 0,1V. A 0°C o TC1047A tem uma tensão de saída de 0,5V e a 125°C tem uma tensão de saída de 1,75V.
Precisamos converter o valor lido do canal analógico em um valor de temperatura. Para isso vamos converter o valor lido em um valor de tensão. No caso de um microcontrolador com um ADC de 10 bits, o valor de tensão (em mV) será: `ADC * 5000 / 1024`. Ainda temos que subtrair `500`mV (pois a 0°C a tensão de saída é 0,5V). Como a resolução da tensão de saída é de 10mV/°C, temos que dividir tudo por `10`. Então nossa fórmula fica assim: `ADC * 500 / 1024 - 50`.

### Download
[TC1047A.zip](http://bit.ly/2GfTz6J)

### Código
&lt;div data-gist=&quot;https://gist.github.com/tiagohm/4d1418020960e1707e214187bee5b214&quot;&gt;
&lt;/div&gt;
&lt;/textarea&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/2418351003182351694/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2018/03/pic-tc1047a.html#comment-form' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/2418351003182351694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/2418351003182351694'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2018/03/pic-tc1047a.html' title='PIC: TC1047A'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/12456371589981650356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-6216734146070415447</id><published>2018-02-28T20:42:00.000-03:00</published><updated>2018-03-11T14:36:43.729-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Biblioteca"/><category scheme="http://www.blogger.com/atom/ns#" term="MikroC"/><category scheme="http://www.blogger.com/atom/ns#" term="PIC"/><category scheme="http://www.blogger.com/atom/ns#" term="Potenciometro"/><category scheme="http://www.blogger.com/atom/ns#" term="SPI"/><title type='text'>PIC: AD5206</title><content type='html'>&lt;img class=&quot;post-banner&quot; src=&quot;https://www.dropbox.com/s/3ewy7jc9ql5ngh7/pic-ad5206.png?dl=1&quot; /&gt;

&lt;br /&gt;
&lt;div class=&quot;markdown&quot;&gt;
&lt;textarea style=&quot;height: 132px; width: 677px;&quot;&gt;[AD5206](http://www.analog.com/media/en/technical-documentation/data-sheets/AD5204_5206.pdf) é um potenciômetro digital de 6 canais.

### Características
* Comunicação via SPI;
* 256 posições;
* Tensão de operação: 2.7V à 5.5V;

### Funcionamento

O AD5206 possui 6 canais. Cada canal contém um potênciômetro de 10k, 50k ou 100k. Cada potênciômetro possui três terminais: 2 fixos representados pelas letras `A` e `B` e um móvel representado pela letra `W`.

Para definir o valor do potenciômetro de um determinado canal, devemos enviar pelo menos 11 bits via comunicação SPI. Se mais de 11 bits forem enviados, somente os últimos 11 bits serão utilizados.

![](https://www.dropbox.com/s/db2ix2bjj4qi9f2/pic-ad5206-serial-data-word-format.png?dl=1)

* Os três bits mais significativos definem o endereço de um canal (de 0 à 5);
* Os 8 bits menos significativos definem o valor do potenciômetro (de 0 à 255).

Antes de iniciar a transmissão dos dados é necessário colocar o pino `CS` em nível lógico baixo e logo após o fim da transmissão, colocar em nível lógico alto, assim os 11 bits enviados serão armazenados num registrador interno e usados por um decodificador para selecionar o canal e definir o valor do potenciômetro.

### Download
[AD5206.zip](http://bit.ly/2Hrf0B7)

### Código
&lt;div data-gist=&quot;https://gist.github.com/tiagohm/e6eff6aa1b080218de99678326c28cd3&quot;&gt;
&lt;/div&gt;
&lt;/textarea&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/6216734146070415447/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2018/02/pic-ad5206.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/6216734146070415447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/6216734146070415447'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2018/02/pic-ad5206.html' title='PIC: AD5206'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/12456371589981650356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-8520996871856311636</id><published>2018-02-25T18:29:00.001-03:00</published><updated>2018-03-11T14:39:41.657-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Biblioteca"/><category scheme="http://www.blogger.com/atom/ns#" term="Higrometro"/><category scheme="http://www.blogger.com/atom/ns#" term="I2C"/><category scheme="http://www.blogger.com/atom/ns#" term="MikroC"/><category scheme="http://www.blogger.com/atom/ns#" term="PIC"/><category scheme="http://www.blogger.com/atom/ns#" term="Sensor"/><category scheme="http://www.blogger.com/atom/ns#" term="Termometro"/><title type='text'>PIC: TH02</title><content type='html'>&lt;img class=&quot;post-banner&quot; src=&quot;https://www.dropbox.com/s/ontufppfdl0kv5m/pic-th02.png?dl=1&quot; /&gt;

&lt;br /&gt;
&lt;div class=&quot;markdown&quot;&gt;
&lt;textarea&gt;[TH02](http://www.hoperf.com/upload/sensor/TH02_V1.1.pdf) é um sensor de temperatura e umidade.

![](https://www.dropbox.com/s/uerpkju4cmkcqkf/pic-th02-real.png?dl=1)

Apesar de ser desconhecido para mim, ele aparenta ser um excelente sensor. Baixo consumo de energia, rapidez na medição e boa resolução são os pontos destacáveis desse dispositivo.

### Características

* Tensão de operação: 2.1V à 3.6V;
* Comunicação via I2C;
* Acurácia de 0.5°C para temperatura e 4.5% para umidade;
* Faixa de operação: -40°C à 85°C e 0% - 100%;
* Baixo consumo de energia: 240uA à 320uA durante a conversão;
* Resolução de 14 ou 13 bits para temperatura;
* Resolução de 12 ou 11 bits para umidade;
* Tempo de conversão: 35ms no modo normal e 18ms no modo rápido.

### Funcionamento

O TH02 possui um registro de configuração `CONFIG` (0x03) na qual utilizamos para definir se estamos querendo ler a temperatura ou a umidade (`TEMP`), selecionar a velocidade da conversão (`FAST`) e iniciar a conversão (`START`).

![](https://www.dropbox.com/s/0nshs6vjx9z2siz/pic-th02-config-register.png?dl=1)

O bit `FAST` reduz o tempo de conversão de 35ms para 18ms e o consumo de energia. Além disso reduz a resolução da medição.

![](https://www.dropbox.com/s/tnpi9lkj2wt8wke/pic-th02-fast-conversion-mode.png?dl=1)

Então sempre que quisermos realizar uma leitura de temperatura ou umidade, devemos escrever no registro `CONFIG`.

Os valores de temperatura e umidade se encontram nos registros `DATAH` (0x01) e `DATAL` (0x02).

![](https://www.dropbox.com/s/lodm65682v1chtm/pic-th02-temp-register.png?dl=1)

![](https://www.dropbox.com/s/pmgembesbcgtjz4/pic-th02-humidity-register.png?dl=1)

A sequência para iniciar a conversão e ler os valores é:
* Iniciar a transmissão (pulso de START);
* Enviar o endereço do dispositivo (0x80) + modo de escrita (0);
* Enviar o endereço do registro `CONFIG`;
* Enviar o valor do registro `CONFIG`: Ler temperatura ou umidade, modo rápido ou normal, iniciar a conversão;
* Encerrar a transmissão (pulso de STOP);
* Aguardar o fim da conversão;
* Iniciar a transmissão (pulso de START);
* Enviar o endereço do dispositivo (0x80) + modo de escrita (0);
* Enviar o endereço do registro `DATAH`;
* Encerrar a transmissão (pulso de STOP);
* Iniciar a transmissão (pulso de START);
* Enviar o endereço do dispositivo (0x80) + modo de leitura (1);
* Ler os dois bytes (MSB e LSB);
* Encerrar a transmissão (pulso de STOP);

### Download
[TH02.zip](http://bit.ly/2tEVbo6)

### Código

&lt;div data-gist=&quot;https://gist.github.com/tiagohm/30ad4e16a281563ca42ea114fe2cfec6&quot;&gt;
&lt;/div&gt;
&lt;/textarea&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/8520996871856311636/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2018/02/pic-th02.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/8520996871856311636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/8520996871856311636'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2018/02/pic-th02.html' title='PIC: TH02'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/12456371589981650356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-4557642593965942339</id><published>2018-02-21T22:14:00.000-03:00</published><updated>2018-03-11T14:40:27.679-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ADC"/><category scheme="http://www.blogger.com/atom/ns#" term="Biblioteca"/><category scheme="http://www.blogger.com/atom/ns#" term="DAC"/><category scheme="http://www.blogger.com/atom/ns#" term="I2C"/><category scheme="http://www.blogger.com/atom/ns#" term="MikroC"/><category scheme="http://www.blogger.com/atom/ns#" term="PIC"/><title type='text'>PIC: PCF8591</title><content type='html'>&lt;img class=&quot;post-banner&quot; src=&quot;https://www.dropbox.com/s/uz8zoxj63bljivs/pic-pcf8591.png?dl=1&quot; /&gt;

&lt;br /&gt;
&lt;div class=&quot;markdown&quot;&gt;
&lt;textarea&gt;[PCF8591](https://www.nxp.com/docs/en/data-sheet/PCF8591.pdf) é tanto um conversor analógico-digital (ADC) quanto um conversor digital-analógico (DAC).

Possui 3 pinos (A0, A1, A2) responsáveis pelo seu endereçamento no barramento I2C, permitindo conectar até 8 dispositivos.

### Pinagem

![](https://www.dropbox.com/s/tyk4ey5q1wdm9tj/pic-pcf8591-pinagem.png?dl=1)

* AIN0-AIN3: São as entradas analógicas;
* A0-A2: Pinos de endereçamento;
* AOUT: É a saída anlógica;
* VREF: Tensão de referência das entradas e saídas analógicas;
* AGND: Terra das entradas e saídas analógicas.

### Características

* Tensão de operação: 2.5V à 6V;
* Comunicação via I2C;
* Entradas analógicas configuráveis;
* Resolução de 8 bits.
* 4 entradas analógicas;

### Funcionamento

O primeiro byte enviado para o dispositivo é o byte de endereço.

![](https://www.dropbox.com/s/74czoszxj3pa0ui/pic-pc8591-address-byte.png?dl=1)

O segundo byte enviado para o dispositivo é responsável por habilitar a saída analógica, configurar as entrada analógicas e selecionar o canal analógico.

![](https://www.dropbox.com/s/zn45gv3zfekno3f/pic-pcf8591-control-byte.png?dl=1)

* Bit 0-1: Seleciona os canais analógicos de 0 a 3;
* Bit 2: Se for igual à `1`, o número do canal analógico é incrementado automaticamente após cada conversão AD. Em toda a leitura o canal selecionado será o canal 0;
* Bit 4-5: Define o modo de configuração das entradas analógicas. Veja a figura acima;
* Bit 6: Habilita com `1` a saída analógica.

O terceiro byte enviado, quando quiser usar o DAC, é armazenado no registro do conversor digital-analógico (DAC) e é convertido para o valor correspondende de tensão. O DAC nada mais é do que uma série de resistores formando vários divisores de tensão de até 256 níveis.

A fórmula para o cálculo da tensão de saída é `AGND + ((VREF - AGND) / 256) * valor armazenado no DAC`.

&gt; O Datasheet indica um erro de compensação de 50mv.

&lt;!-- --&gt;
### Download
[PCF8591.zip](http://bit.ly/2Il2T9R)

### Código

&lt;div data-gist=&quot;https://gist.github.com/tiagohm/0c8a20bcf025c95a543558b8fd2c38ca&quot;&gt;
&lt;/div&gt;
&lt;/textarea&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/4557642593965942339/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2018/02/pic-pcf8591.html#comment-form' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/4557642593965942339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/4557642593965942339'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2018/02/pic-pcf8591.html' title='PIC: PCF8591'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/12456371589981650356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-3855768308507777548</id><published>2015-06-06T20:57:00.000-03:00</published><updated>2018-03-11T14:41:23.911-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ADC"/><category scheme="http://www.blogger.com/atom/ns#" term="Biblioteca"/><category scheme="http://www.blogger.com/atom/ns#" term="MikroC"/><category scheme="http://www.blogger.com/atom/ns#" term="PIC"/><category scheme="http://www.blogger.com/atom/ns#" term="SPI"/><title type='text'>PIC: MCP3201</title><content type='html'>&lt;img class=&quot;post-banner&quot; src=&quot;https://www.dropbox.com/s/jmgg7zvcg2i2ugf/pic-mcp3201.png?dl=1&quot; /&gt;
&lt;br /&gt;
&lt;div class=&quot;markdown&quot;&gt;
&lt;textarea style=&quot;height: 115px; width: 661px;&quot;&gt;[MCP3201](http://ww1.microchip.com/downloads/en/DeviceDoc/21290D.pdf) é um Conversor Analógico/Digital de 12 bits com interface SPI.

### Características
* 12 bits de resolução;
* Comunicação via SPI;
* Tensão de operação: 2.7V - 5.5V;

### Funcionamento

A comunicação com o dispositivo funciona através da interface SPI. Inicialmente habilitamos a comunicação colocando o pino `CS` em nível lógico baixo. Iremos ler os 15 bits, dos quais 12 bits correspondem ao valor da entrada analógica, começando do bit MSB até o bit LSB. A leitura de cada bit é feita após cada borda de descida do pulso de clock. Por fim, desabilitamos a comunicação colocando o pino `CS` em nível lógico alto.

O cálculo real da tensão de entrada é: `Vin = ADC * Vref / 4096`, sendo `Vin = [V+] – [V-]`. Caso `V-` seja igual a `0V`, `Vin = V+`.

### Download
[MCP3201.zip](http://bit.ly/2p7mHoJ)

### Código

&lt;div data-gist=&quot;https://gist.github.com/tiagohm/6005024956b28cc68d4701bac57024d0&quot;&gt;
&lt;/div&gt;
&lt;/textarea&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/3855768308507777548/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2015/06/pic-mcp3201.html#comment-form' title='17 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/3855768308507777548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/3855768308507777548'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2015/06/pic-mcp3201.html' title='PIC: MCP3201'/><author><name>Tiago Henrique</name><uri>http://www.blogger.com/profile/09385302997357057888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DEIRSvuNsOgEgq7JXn5GkdO-CDD6izks1hc_VMd7mTD4rBAOkMNByPefn7OZeLmaf0RIOHpI8xFnf1jmsc43yivpk3htzCpsOeCAbrh1krZWA3uMPVzq7rVBXNmJtN8/s1600/*'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-3097938628324882356</id><published>2015-04-26T17:29:00.000-03:00</published><updated>2018-03-07T09:03:10.337-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Biblioteca"/><category scheme="http://www.blogger.com/atom/ns#" term="I2C"/><category scheme="http://www.blogger.com/atom/ns#" term="MikroC"/><category scheme="http://www.blogger.com/atom/ns#" term="PIC"/><category scheme="http://www.blogger.com/atom/ns#" term="Sensor"/><category scheme="http://www.blogger.com/atom/ns#" term="Termometro"/><category scheme="http://www.blogger.com/atom/ns#" term="Termostato"/><title type='text'>PIC: DS1631</title><content type='html'>&lt;img class=&quot;post-banner&quot; src=&quot;https://www.dropbox.com/s/bey1r2qqutg3zw5/pic-ds1631.png?dl=1&quot; /&gt;
&lt;br /&gt;
&lt;div class=&quot;markdown&quot;&gt;
&lt;textarea style=&quot;height: 66px; width: 657px;&quot;&gt;[DS1631](https://datasheets.maximintegrated.com/en/ds/DS1631-DS1731.pdf) é um termômetro/termostato digital que realiza a leitura de temperaturas entre -55°C e 125°C com resolução ajustável de 9, 10, 11 ou 12 bits.

A comunicação é feita através da inteface I2C.

### Características
* Acurácia de ±0.5°C;
* Tensão de alimentação: 3V a 5,5V;
* Baixo consumo de energia.

### Registros
Possui 4 registros, `TH` e `TL` (ambos 2 bytes) usados no modo Termostato, o registro `T` (2 bytes) usado no modo Termômetro e o registro de Configuração `CONFIG` (1 byte).

Os registros `TH`, `TL` e `T` são formados pelos seguintes bits:
![](https://www.dropbox.com/s/wtvt1sxe3z7z1it/pic-ds1631-temperature-registers.png?dl=1)

### Modo Termômetro
Por meio de um conversor analógico Delta-Sigma coverte a temperatura num valor digital de 9, 10, 11 ou 12 bits, configurados pelos bits `R0` e `R1` do registro de `CONFIG`. A conversão demora um certo tempo dependendo da resolução, veja a tabela abaixo:

###### bits de resolução e tempo de conversão
![](https://www.dropbox.com/s/8hcsx2eths4xixj/pic-ds1631-bits-resolucao.png?dl=1)

O DS1631 inicia em *stand-by* (modo de baixo consumo), e através de um comando enviado, realiza a conversão da temperatura em modo *contínuo* ou *one-shot*.

No modo *one-shot* a conversão da temperatura é feita sempre que recebe o comando `START CONVERT`.

No modo *contínuo* a conversão é realiza continuamente. É necessário enviar `START CONVERT` pelo menos uma vez só pra dar aquele empurrão inicial.

Podemos configurá-los através do bit `ONE-SHOT` do registro `CONFIG`. Setando com `1` estaremos definindo com o modo *one-shot* e com `0` para o modo *contínuo*.

Para encerrar a conversão usamos o comando `STOP CONVERT`. Isto faz com que entre no modo *stand-by*. Isto é útil quando está no modo *contínuo* e não queremos mais ler o valor de temperatura, fazendo o dispositivo economizar em energia. No modo *one-shot* não é necessário enviar este comando, pois após a conversão automaticamente o dispositivo entra em *stand-by*.

Para ler a temperatura use o comando `READ TEMPERATURE`.

### Modo Termostato
No modo termostato temos dois registros, `TH` e `TL`, que são usados para armazenar os dois valores de temperatura. Quando a temperatura ultrapassar o valor de `TH` o pino `TOUT` é `ativado`. O pino `TOUT` permanece ativado até que a temperatura caia e fique abaixo de `TL`. 

Podemos configurar se o pino `TOUT` será ativado com nível lógico `alto` ou `baixo`, através do bit `POL` do registro `CONFIG`. Defina com `1` para ativá-lo com nivel lógico `alto`.

### Endereçamento
O DS1631 possui três pinos `A0`, `A1` e `A2` responsáveis por alterar seu endereço no barramento.

O bit `0` define se nós iremos ler(1) ou escrever(0) no dispositivo.

O endereço é composto por:
![](https://www.dropbox.com/s/yl16shd45db1zw4/pic-ds1631-endereco.png?dl=1)

### Biblioteca

&lt;div data-gist=&#39;https://gist.github.com/tiagohm/ceac11241c44bdb177fda87d8a4607cd&#39;&gt;
&lt;/div&gt;
&lt;/textarea&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/3097938628324882356/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2015/04/pic-ds1631.html#comment-form' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/3097938628324882356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/3097938628324882356'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2015/04/pic-ds1631.html' title='PIC: DS1631'/><author><name>Tiago Henrique</name><uri>http://www.blogger.com/profile/09385302997357057888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DEIRSvuNsOgEgq7JXn5GkdO-CDD6izks1hc_VMd7mTD4rBAOkMNByPefn7OZeLmaf0RIOHpI8xFnf1jmsc43yivpk3htzCpsOeCAbrh1krZWA3uMPVzq7rVBXNmJtN8/s1600/*'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-5725805248199111261</id><published>2015-03-30T11:24:00.000-03:00</published><updated>2018-03-01T07:54:26.993-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="7 Segmentos"/><category scheme="http://www.blogger.com/atom/ns#" term="AVR"/><category scheme="http://www.blogger.com/atom/ns#" term="MikroC"/><category scheme="http://www.blogger.com/atom/ns#" term="Projeto"/><title type='text'>AVR: Display 7 Segmentos</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvGIbf1ozXHlIPrErHd4mmvjGvyoxLu0e-PvzR_ueU5MoFhpQsVkAGT1sAykZICWR3b_f3qr6t_9I-pd4osAyUg5BWZUc8AzIRUqQ48lLJopy5eruKnN6v4fiS2LXCLqVzppw12hwBd8vi/s1600/avr_display_7_segmentos.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;422&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvGIbf1ozXHlIPrErHd4mmvjGvyoxLu0e-PvzR_ueU5MoFhpQsVkAGT1sAykZICWR3b_f3qr6t_9I-pd4osAyUg5BWZUc8AzIRUqQ48lLJopy5eruKnN6v4fiS2LXCLqVzppw12hwBd8vi/s1600/avr_display_7_segmentos.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;markdown&quot;&gt;
&lt;textarea style=&quot;height: 58px; width: 660px;&quot;&gt;Mais um projeto envolvendo o ATMEGA328P. Desta vez iremos criar um simples contador de 0 até 99 acionado por um botão.

O projeto utiliza um display de 7 segmentos de 2 dígitos com catodo comum (cada segmento tem em comum um pino GND, são os pinos 1 e 2, um para cada dígito). Um segmento é aceso quando aplicamos uma corrente em seu pino de entrada (pinos A ao G).

Se vocês perceberam, não dá pra exibir dois números ao mesmo tempo, já que compartilham os mesmos pinos de entrada. Por isso precisamos intercalar a exibição de um dígito. Nós setamos os pinos de entrada para que possa exibir algo e habilitamos o primeiro dígito e desabilitamos o segundo digito. Algum tempo depois, nós setamos os pinos de entrada para o segundo dígito e desabilitamos o primeiro e habilitamos o segundo dígito. E o ciclo se repete. Todo o tempo de transição de um digito para o outro deve ser feito de modo que nossos olhos não perceba essa mudança.

### Código

&lt;div data-gist=&quot;https://gist.github.com/tiagohm/69d68aac5f58733669fe0548805f258d&quot;&gt;
&lt;/div&gt;
&lt;/textarea&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/5725805248199111261/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2015/03/avr-display-7-segmentos.html#comment-form' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/5725805248199111261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/5725805248199111261'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2015/03/avr-display-7-segmentos.html' title='AVR: Display 7 Segmentos'/><author><name>Tiago Henrique</name><uri>http://www.blogger.com/profile/09385302997357057888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DEIRSvuNsOgEgq7JXn5GkdO-CDD6izks1hc_VMd7mTD4rBAOkMNByPefn7OZeLmaf0RIOHpI8xFnf1jmsc43yivpk3htzCpsOeCAbrh1krZWA3uMPVzq7rVBXNmJtN8/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvGIbf1ozXHlIPrErHd4mmvjGvyoxLu0e-PvzR_ueU5MoFhpQsVkAGT1sAykZICWR3b_f3qr6t_9I-pd4osAyUg5BWZUc8AzIRUqQ48lLJopy5eruKnN6v4fiS2LXCLqVzppw12hwBd8vi/s72-c/avr_display_7_segmentos.png" height="72" width="72"/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-2105387750649666958</id><published>2015-03-26T21:07:00.001-03:00</published><updated>2018-03-01T08:17:57.212-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AVR"/><category scheme="http://www.blogger.com/atom/ns#" term="MikroC"/><category scheme="http://www.blogger.com/atom/ns#" term="Tutorial"/><title type='text'>AVR: Pull-ups</title><content type='html'>&lt;img class=&quot;post-banner&quot; src=&quot;https://www.dropbox.com/s/qxy57newy6hwiwt/avr-pull-ups.png?dl=1&quot;&gt;&lt;/img&gt;

&lt;div class=&quot;markdown&quot;&gt;
&lt;textarea style=&quot;height: 143px; width: 672px;&quot;&gt;Os resistores de pull-up são resistores conectados no nível lógico alto (5V). São utilizados para evitar a flutuação do nível lógico das entradas quando nenhum dispositivo estiver conectado.

O microcontrolador [ATMEGA328P](http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf) possui resistores de pull-up interno em todos os pino I/O. Mas como ativamos? Primeiramente precisamos definir o pino como entrada `DDRx.Bn = 0`. Quando fizermos isso, o bit correspondente do registro `PORTx` terá uma nova função, que é de ativar/desativar o resistor de pull-up do pino.

&gt; O bit `PUD` do registro `MCUCR` é o interruptor geral dos resistores de pull-up. É habilitado com `0`. Por padrão seu valor inicial é `0`.

### Código
&lt;div data-gist=&quot;https://gist.github.com/tiagohm/4980b31293322a7fb5b94cfeec8f8758&quot;&gt;
&lt;/div&gt;
&lt;/textarea&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/2105387750649666958/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2015/03/avr-pull-ups.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/2105387750649666958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/2105387750649666958'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2015/03/avr-pull-ups.html' title='AVR: Pull-ups'/><author><name>Tiago Henrique</name><uri>http://www.blogger.com/profile/09385302997357057888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DEIRSvuNsOgEgq7JXn5GkdO-CDD6izks1hc_VMd7mTD4rBAOkMNByPefn7OZeLmaf0RIOHpI8xFnf1jmsc43yivpk3htzCpsOeCAbrh1krZWA3uMPVzq7rVBXNmJtN8/s1600/*'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-9027256089910747427</id><published>2015-03-23T10:15:00.000-03:00</published><updated>2015-03-26T21:08:07.289-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AVR"/><category scheme="http://www.blogger.com/atom/ns#" term="Projetos"/><category scheme="http://www.blogger.com/atom/ns#" term="Tutoriais"/><title type='text'>Pisca-Pisca com ATMEGA328P</title><content type='html'>&lt;h1 style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;AVR: P&lt;span style=&quot;font-weight: normal;&quot;&gt;isca&lt;/span&gt;-P&lt;span style=&quot;font-weight: normal;&quot;&gt;isca com&lt;/span&gt; AT&lt;span style=&quot;font-weight: normal;&quot;&gt;MEGA&lt;/span&gt;328&lt;span style=&quot;font-weight: normal;&quot;&gt;P&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeucIAPizCc_YYnAaQOHpiG85-srstvFSuawO1rB9DDvEhhQy14-F6HABKo7PiCJL1Wa99LjwnnLdu_YL6d1hNmA-K-pmBTxRHL13Y1ZOzXpRCX_ha7_cq-WCgNrfuMgJzy2gjaDixoXXx/s1600/avr_pisca_pisca_com_atmega328p.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeucIAPizCc_YYnAaQOHpiG85-srstvFSuawO1rB9DDvEhhQy14-F6HABKo7PiCJL1Wa99LjwnnLdu_YL6d1hNmA-K-pmBTxRHL13Y1ZOzXpRCX_ha7_cq-WCgNrfuMgJzy2gjaDixoXXx/s1600/avr_pisca_pisca_com_atmega328p.png&quot; height=&quot;338&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Olá de novo! Está começando a série de projetos com AVR.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Este primeiro projeto será de um pisca-pisca com o microcontrolador ATMEGA328P ( o mesmo utilizado no Arduino Uno ).&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Precisamos ter um conhecimento básico sobre pinos I/O, então, clique &lt;a href=&quot;http://microcontrolandos.blogspot.com.br/2013/07/avr-portas-io.html&quot; target=&quot;_blank&quot;&gt;aqui&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Para criar um simples pisca-pisca, não tem nenhum segredo né! Precisamos apenas de um resistor de 220Ohms e um LED. A conexão é vista na imagem acima.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Neste primeiro exemplo utilizamos o método trivial para fazer o led piscar. Dentro de um loop infinito, ligamos e desligamos o led num intervalo de 500ms.
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;github-code&quot;&gt;
&lt;script src=&quot;https://gist.github.com/tiagohm/86db563af8fd789c1989.js&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Outro jeito de fazer o led piscar é utilizar o operador de complemento &quot;~&quot;.
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;github-code&quot;&gt;
&lt;script src=&quot;https://gist.github.com/tiagohm/4f7be026ed687c76ab65.js&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Também podemos assim: Quando escrevemos 1 num determinado bit do registro PINB, estamos alternando o valor do bit correspondente do registro PORTB.
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;github-code&quot;&gt;
&lt;script src=&quot;https://gist.github.com/tiagohm/338bfb95cfed4c03feb5.js&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;b&gt;またね、バイバイ&lt;/b&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/9027256089910747427/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2015/03/pisca-pisca-com-atmega328p.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/9027256089910747427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/9027256089910747427'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2015/03/pisca-pisca-com-atmega328p.html' title='Pisca-Pisca com ATMEGA328P'/><author><name>Tiago Henrique</name><uri>http://www.blogger.com/profile/09385302997357057888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DEIRSvuNsOgEgq7JXn5GkdO-CDD6izks1hc_VMd7mTD4rBAOkMNByPefn7OZeLmaf0RIOHpI8xFnf1jmsc43yivpk3htzCpsOeCAbrh1krZWA3uMPVzq7rVBXNmJtN8/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeucIAPizCc_YYnAaQOHpiG85-srstvFSuawO1rB9DDvEhhQy14-F6HABKo7PiCJL1Wa99LjwnnLdu_YL6d1hNmA-K-pmBTxRHL13Y1ZOzXpRCX_ha7_cq-WCgNrfuMgJzy2gjaDixoXXx/s72-c/avr_pisca_pisca_com_atmega328p.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-4361363246740057144</id><published>2015-01-05T13:09:00.001-02:00</published><updated>2018-02-28T08:25:42.652-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Biblioteca"/><category scheme="http://www.blogger.com/atom/ns#" term="EEPROM"/><category scheme="http://www.blogger.com/atom/ns#" term="MikroC"/><category scheme="http://www.blogger.com/atom/ns#" term="PIC"/><category scheme="http://www.blogger.com/atom/ns#" term="SPI"/><title type='text'>PIC: 25XX320</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ95n42gamuNuizRdCoAyyWyplnc1_ygRycqQkVpche24Lhq-l3OtabwIPz9Goar-79KC3dFz5g-5YJzgQgfuZQdosX2R5Nt-XRo-N7TXSSvP9MKIugU47ymv-YYpN2aNi4BBXR43f7lKI/s1600/PIC.25XX320.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;322&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ95n42gamuNuizRdCoAyyWyplnc1_ygRycqQkVpche24Lhq-l3OtabwIPz9Goar-79KC3dFz5g-5YJzgQgfuZQdosX2R5Nt-XRo-N7TXSSvP9MKIugU47ymv-YYpN2aNi4BBXR43f7lKI/s1600/PIC.25XX320.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;markdown&quot;&gt;
&lt;textarea style=&quot;height: 100px; width: 675px;&quot;&gt;[25XX320](http://ww1.microchip.com/downloads/en/DeviceDoc/21227E.pdf) corresponde as memórias eeprom&#39;s (25AA320, 25LC320, 25C320) de 32Kb da Microchip. Comunica-se via SPI, utilizando apenas 4 fios (CLK, SDO, SDI, CS).

### Características
* Tensão de alimentação: 5V;
* 4096 x 8 bit;
* Tempo de escrita: 5ms;
* Proteção de memória;

### Funcionamento

![](https://www.dropbox.com/s/3m2kgi7d7xm27c2/pic-25x320-sequence.png?dl=1)

Para realizar a escrita:
1. Habilitar o dispositivo (CS = 0);
2. Enviar a instrução de escrita;
3. Enviar um endereço de 16 bits. Enviar os 8 bits mais significativos, depois os 8 bits menos significativos.
4. Enviar o dado (1 byte) que será gravado no endereço.
5. Desabilitar o dispositivo (CS = 1);

&gt; Antes de cada operação de escrita é necessário enviar o comando que dá a permição de escrita e após a operação de escrita é necessário enviar o comando que revoga a permissão de escrita.

Para realizar a leitura:
1. Habilitar o dispositivo (CS = 0);
2. Enviar a instrução de leitura;
3. Enviar um endereço de 16 bits. Enviar os 8 bits mais significativos, depois os 8 bits menos significativos.
4. Realizar a leitura de 1 byte do endereço.
5. Desabilitar o dispositivo (CS = 1);

O dispositivo possui o seguinte registro de `STATUS`:

![](https://www.dropbox.com/s/s5cfg1wy9s5erl5/pic-25x320-status-register.png?dl=1)

`WPEN`: Habilita/Desabilita a proteção de escrita. Trabalha em conjunto com o pino externo WP. Para mais detalhes, veja a tabela 3-3 do datasheet.  
`BP1-BP0`: Protege um bloco de memória. 00 - nenhum bloco está protegido; 01 - 0x0C00 até 0x0FFF está protegido; 10 - 0x0800 até 0x0FFF está protegido. 11 - todos os blocos estão protegidos.  
`WEL`: Indica se está autorizado a realizar uma operação de escrita.  
`WIP`: Indica se está ocorrendo uma operação de escrita.  

### Biblioteca

&lt;div data-gist=&quot;https://gist.github.com/tiagohm/5b1b376a2efd434d347355598cf41803&quot;&gt;&lt;/div&gt;
&lt;/textarea&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/4361363246740057144/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2015/01/pic-25xx320.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/4361363246740057144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/4361363246740057144'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2015/01/pic-25xx320.html' title='PIC: 25XX320'/><author><name>Tiago Henrique</name><uri>http://www.blogger.com/profile/09385302997357057888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DEIRSvuNsOgEgq7JXn5GkdO-CDD6izks1hc_VMd7mTD4rBAOkMNByPefn7OZeLmaf0RIOHpI8xFnf1jmsc43yivpk3htzCpsOeCAbrh1krZWA3uMPVzq7rVBXNmJtN8/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ95n42gamuNuizRdCoAyyWyplnc1_ygRycqQkVpche24Lhq-l3OtabwIPz9Goar-79KC3dFz5g-5YJzgQgfuZQdosX2R5Nt-XRo-N7TXSSvP9MKIugU47ymv-YYpN2aNi4BBXR43f7lKI/s72-c/PIC.25XX320.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-5967995998829786529</id><published>2014-12-30T11:17:00.002-02:00</published><updated>2015-01-22T14:10:43.517-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Bibliotecas"/><category scheme="http://www.blogger.com/atom/ns#" term="PIC"/><title type='text'>PIC: RDA5807</title><content type='html'>&lt;h1 style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;b&gt;PIC: RDA5&lt;/b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;80&lt;/span&gt;&lt;b&gt;7&lt;/b&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih7DKaAXb91hoosPodX0qMYvGKKxQnWaD_d3I8hn2mflhePI3TNi_CpRvftLQXJ_ALISYWc9vTOq9BkSycZgs4WrNJvLvb82gN6eSWr8OjFWzyDWwu3JEoktCbysKJHPrUoQl1aNb5KNbJ/s1600/PIC.RDA5807.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih7DKaAXb91hoosPodX0qMYvGKKxQnWaD_d3I8hn2mflhePI3TNi_CpRvftLQXJ_ALISYWc9vTOq9BkSycZgs4WrNJvLvb82gN6eSWr8OjFWzyDWwu3JEoktCbysKJHPrUoQl1aNb5KNbJ/s1600/PIC.RDA5807.png&quot; height=&quot;340&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLWVJmVEdHT1VWMlk/view?usp=sharing&quot; target=&quot;_blank&quot;&gt;RDA5807P &lt;/a&gt;é um circuito integrado que é capaz de sintonizar emissoras de rádio FM, operando na faixa de 76MHz até 108MHz.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;b&gt;CARACTERÍSTICAS&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Duas bandas de&amp;nbsp;frequência;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Mono ou Stereo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Indicador de força do sinal ( RSSI );&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Controle de volume;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Comunicação I2C;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Tensão de alimentação: 5V;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;VANTAGENS&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Este chip possui as mesmas características do &lt;a href=&quot;http://microcontrolandos.blogspot.com.br/2014/06/pic-tea5767-radio-fm.html&quot; target=&quot;_blank&quot;&gt;TEA5767&lt;/a&gt;. A vantagem de utilizá-lo é que eu encontrei uma placa pronta para utilizar, precisando apenas conectar os fios, ao contrário do TEA5767 ( talvez exista um módulo para ele, mas não encontrei ) que precisa soldar os fios e correr o risco de destruir a plaquinha ( acabei arrancando uns componentes, rs ). Outra vantagem do RDA5807P é que é possível controlar o volume da saída, mesmo utilizando fones de ouvido, o som é muito alto.&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;b&gt;FUNCIONAMENTO&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Possui 4 registradores internos de 16 bits, utilizados para sua configuração, como a frequência atual, volume, seleção da banda, ativar o modo de busca, entre outros. Para realizar a operação de escrita, basta enviar o endereço do dispositivo ( 0x20 ) e os 8 bytes.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilJm_7SeVefvGj_bjI1DcHnkK_kCcRM4JrmpBvDznBZuzH8B8DV_ybR_0GtESp9UQoDsC5QbAe_IpgY0-d8jDvhHFy2IWoEKgyp94GUvo8m2ohIYze8bnvs4byV9O5c2P4ZIDKBioOThW6/s1600/PIC.RDA5807.WREG.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilJm_7SeVefvGj_bjI1DcHnkK_kCcRM4JrmpBvDznBZuzH8B8DV_ybR_0GtESp9UQoDsC5QbAe_IpgY0-d8jDvhHFy2IWoEKgyp94GUvo8m2ohIYze8bnvs4byV9O5c2P4ZIDKBioOThW6/s1600/PIC.RDA5807.WREG.png&quot; height=&quot;64&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Para poder sintonizar uma frequência, devemos escrever nos bits CHAN, setar o bit TUNE e enviar os todos os bytes. Podemos calcular o valor da frequência através dessa fórmula: F = SPACE * CHAN + ( 87000 ou 76000 );&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Para realizar uma busca, devemos definir a direção da busca ( pra cima ou pra baixo ) definindo um valor para o bit SEEKUP. Também devemos setar o bit SEEK e enviar todos os bytes.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Também possui 2 registradores de 16 bits, que são utilizados para leitura, informando a frequência atual, a força do sinal captado e contendo vários bits de sinalização.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdcwDxqBcLn_KwiEQu2rpTGYHttYMBhaXI_owYoNqxJvsVThwLrpmLef-n1XtJxfynW3h1IINnsvqwpExsLJM10tvXU9FkQ2_V6CoEoxsZauU4gootsUzoLZz3MLX14UJ0pdKFj_X5jvv8/s1600/PIC.RDA5807.RREG.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdcwDxqBcLn_KwiEQu2rpTGYHttYMBhaXI_owYoNqxJvsVThwLrpmLef-n1XtJxfynW3h1IINnsvqwpExsLJM10tvXU9FkQ2_V6CoEoxsZauU4gootsUzoLZz3MLX14UJ0pdKFj_X5jvv8/s1600/PIC.RDA5807.RREG.png&quot; height=&quot;38&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;CÓDIGO DA BIBLIOTECA&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #999999; font-family: Trebuchet MS, sans-serif; font-size: x-small;&quot;&gt;MikroC PRO PIC
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;github-code&quot;&gt;
&lt;script src=&quot;https://gist.github.com/Microcontrolandos/171d6a5535dbea99c2d7.js&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;EXEMPLO:
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY1mA3ug9JT6eJZNIohZAS5cjpxir9Fc5js8lXeDKjn1xyJ0SGSiHE0Oc1FNclrOBKqudc3oAr090cpdX9GKeM3ZY45sup23VKwfUuOvirPy7-jhFKtsVflxCjf4xy6LHCkvIzGrm-hXYI/s1600/PIC.RDA5807.TESTE.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY1mA3ug9JT6eJZNIohZAS5cjpxir9Fc5js8lXeDKjn1xyJ0SGSiHE0Oc1FNclrOBKqudc3oAr090cpdX9GKeM3ZY45sup23VKwfUuOvirPy7-jhFKtsVflxCjf4xy6LHCkvIzGrm-hXYI/s1600/PIC.RDA5807.TESTE.jpg&quot; height=&quot;400&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div class=&quot;github-code&quot;&gt;
&lt;script src=&quot;https://gist.github.com/Microcontrolandos/9c0753e7a83390957cab.js&quot;&gt;&lt;/script&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/5967995998829786529/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2014/12/pic-rda5807.html#comment-form' title='14 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/5967995998829786529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/5967995998829786529'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2014/12/pic-rda5807.html' title='PIC: RDA5807'/><author><name>Tiago Henrique</name><uri>http://www.blogger.com/profile/09385302997357057888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DEIRSvuNsOgEgq7JXn5GkdO-CDD6izks1hc_VMd7mTD4rBAOkMNByPefn7OZeLmaf0RIOHpI8xFnf1jmsc43yivpk3htzCpsOeCAbrh1krZWA3uMPVzq7rVBXNmJtN8/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih7DKaAXb91hoosPodX0qMYvGKKxQnWaD_d3I8hn2mflhePI3TNi_CpRvftLQXJ_ALISYWc9vTOq9BkSycZgs4WrNJvLvb82gN6eSWr8OjFWzyDWwu3JEoktCbysKJHPrUoQl1aNb5KNbJ/s72-c/PIC.RDA5807.png" height="72" width="72"/><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-8506677979877738732</id><published>2014-12-26T20:45:00.000-02:00</published><updated>2015-01-22T21:28:40.861-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Bibliotecas"/><category scheme="http://www.blogger.com/atom/ns#" term="PIC"/><title type='text'>PIC: SSD1306</title><content type='html'>&lt;h1 style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;PIC: SSD1&lt;span style=&quot;font-weight: normal;&quot;&gt;30&lt;/span&gt;6&lt;/span&gt;&lt;/h1&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOx0APJ7zUzysG0WqZk1b4MGs-wV6eCRkuCgBssIA6yBXRnDkM8kOUJdTqAZ9WB4NARizJoHBK7g9JeMV1w2HJhDydglxyA8NTSdLxdIxk-0x8URDV8tSrZTNg8d_cXa74qXOn17nKM5EY/s1600/PIC.SSD1306.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOx0APJ7zUzysG0WqZk1b4MGs-wV6eCRkuCgBssIA6yBXRnDkM8kOUJdTqAZ9WB4NARizJoHBK7g9JeMV1w2HJhDydglxyA8NTSdLxdIxk-0x8URDV8tSrZTNg8d_cXa74qXOn17nKM5EY/s1600/PIC.SSD1306.png&quot; height=&quot;398&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;a href=&quot;https://www.adafruit.com/datasheets/SSD1306.pdf&quot; target=&quot;_blank&quot;&gt;SSD1306&lt;/a&gt;&amp;nbsp;é um controlador para display OLED. Este display pode ser encontrado no Mercado Livre, possui uma resolução de 128x64 pixels e tem o mesmo tamanho de uma moeda de 1 real.&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Comunica-se através do barramento I2C, por isso utiliza apenas dois fios ( Clock e Data ).&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;b&gt;CARACTERÍSTICAS&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Resolução de 128x64 pixels;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Tensão de alimentação: 3.3V ou 5V ( O display que eu comprei no Mercado Livre suporta esta tensão. Verifique se o seu display também suporta ).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Contraste ajustável;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;FUNCIONAMENTO&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;A interface I2C com o display consiste no envio de um endereço ( &lt;b&gt;0b011110XY &lt;/b&gt;), na qual o bit &lt;b&gt;X &lt;/b&gt;corresponde ao endereço do display ( 0 ou 1 ). Na parte de trás do display há um jumper com um pingo de solda, selecionando por padrão o endereço 0. Com isso, você é capaz de ligar até dois displays no mesmo barramento. O bit &lt;b&gt;Y &lt;/b&gt;informa se a operação será de escrita(0) ou leitura(1). Após isso, é necessário enviar no mínimo dois bytes ( um de comando e outro de dado ). O byte de comando ( &lt;b&gt;0bXY000000 &lt;/b&gt;) é composto pelo bit &lt;b&gt;X&lt;/b&gt; que, uma vez setado, você poderá enviar &lt;i&gt;n&lt;/i&gt; dados na sequência. O bit &lt;b&gt;Y &lt;/b&gt;quando for igual a 1, diz que o próximo dado corresponde a um comando interno do display. Quando for igual à 0, diz que o próximo dado corresponde a uma carácter, por exemplo, que é gravado na&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;i&gt;GDDRAM &lt;/i&gt;( memoria utilizada pelo display para exibir as informações na tela ).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;b&gt;CÓDIGO DA BIBLIOTECA&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;color: #666666; font-family: Trebuchet MS, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;MikroC PRO PIC&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;github-code&quot;&gt;
&lt;script src=&quot;https://gist.github.com/Microcontrolandos/84324a916df880382e70.js&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;EXEMPLO&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf2V5_NNMW18MstxjWDAV9uSR9FN_P9dNLaCBIvIxxHNrBFoZGNph44mkqsBqsENtwiUVF2cBByfMlmMV-np9O09RjpyQ6exs4KnKCa0H5zEBSxtsaZwE-nXGAw-adb49WC8hJTUTq1xJF/s1600/PIC.SSD1306.TESTE.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf2V5_NNMW18MstxjWDAV9uSR9FN_P9dNLaCBIvIxxHNrBFoZGNph44mkqsBqsENtwiUVF2cBByfMlmMV-np9O09RjpyQ6exs4KnKCa0H5zEBSxtsaZwE-nXGAw-adb49WC8hJTUTq1xJF/s1600/PIC.SSD1306.TESTE.jpg&quot; height=&quot;400&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #999999; font-family: Trebuchet MS, sans-serif; font-size: x-small;&quot;&gt;MikroC PRO PIC&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;github-code&quot;&gt;
&lt;script src=&quot;https://gist.github.com/Microcontrolandos/71d7c9faec9f35199fab.js&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/8506677979877738732/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2014/12/pic-ssd1306.html#comment-form' title='17 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/8506677979877738732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/8506677979877738732'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2014/12/pic-ssd1306.html' title='PIC: SSD1306'/><author><name>Tiago Henrique</name><uri>http://www.blogger.com/profile/09385302997357057888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DEIRSvuNsOgEgq7JXn5GkdO-CDD6izks1hc_VMd7mTD4rBAOkMNByPefn7OZeLmaf0RIOHpI8xFnf1jmsc43yivpk3htzCpsOeCAbrh1krZWA3uMPVzq7rVBXNmJtN8/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOx0APJ7zUzysG0WqZk1b4MGs-wV6eCRkuCgBssIA6yBXRnDkM8kOUJdTqAZ9WB4NARizJoHBK7g9JeMV1w2HJhDydglxyA8NTSdLxdIxk-0x8URDV8tSrZTNg8d_cXa74qXOn17nKM5EY/s72-c/PIC.SSD1306.png" height="72" width="72"/><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-5046532784359371607</id><published>2014-11-03T10:09:00.004-02:00</published><updated>2015-01-22T14:40:23.067-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Bibliotecas"/><category scheme="http://www.blogger.com/atom/ns#" term="PIC"/><title type='text'>PIC: PCF8583</title><content type='html'>&lt;h1 style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;PIC: PCF8&lt;span style=&quot;font-weight: normal;&quot;&gt;5&lt;/span&gt;8&lt;span style=&quot;font-weight: normal;&quot;&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAfpxkPvrB-96jFAM0wieq_OS1VQhyMHeQaZhBQjTLMzkp-3a2V-utlCpR8ouLsPGaq8jqe_Ttml9Nt6ST4LjsRgWY13dVfpBW2Osit9gLqRjlv0EdHl5NcoL18DFS8_jm_WcIaFWhVwgp/s1600/PIC.PCF8583.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAfpxkPvrB-96jFAM0wieq_OS1VQhyMHeQaZhBQjTLMzkp-3a2V-utlCpR8ouLsPGaq8jqe_Ttml9Nt6ST4LjsRgWY13dVfpBW2Osit9gLqRjlv0EdHl5NcoL18DFS8_jm_WcIaFWhVwgp/s1600/PIC.PCF8583.png&quot; height=&quot;334&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;O &lt;a href=&quot;http://www.nxp.com/documents/data_sheet/PCF8583.pdf&quot; target=&quot;_blank&quot;&gt;PCF8583&lt;/a&gt; é um relógio/calendário e alarme digital da&amp;nbsp;&lt;a href=&quot;http://www.nxp.com/&quot; target=&quot;_blank&quot;&gt;NXP Semiconductors&lt;/a&gt;&amp;nbsp;com uma memória RAM de 256 x 8 bits, que controlado através de um microcontrolador, fornece data e hora em tempo real.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Utiliza o barramento I2C. Possui endereçamento selecionável através do pino A0, podendo assim, ligar até dois relógios no mesmo barramento.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbgrNiXMmdxO9v8DmRmCVX6lJuRR_Ic6uqYTr7nES2-9AvXzgokG_P8TZwvf4lA4PhrGF4gRamB1n6AInLkPgUy7LbxeU5XqvzYPCyJLZocHZH-Lx6kvRAJE76VaRSwb8QSqumDgP3k7wo/s1600/PCF8583.PINS.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbgrNiXMmdxO9v8DmRmCVX6lJuRR_Ic6uqYTr7nES2-9AvXzgokG_P8TZwvf4lA4PhrGF4gRamB1n6AInLkPgUy7LbxeU5XqvzYPCyJLZocHZH-Lx6kvRAJE76VaRSwb8QSqumDgP3k7wo/s1600/PCF8583.PINS.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; text-align: justify;&quot;&gt;O PCF8583 fornece informações do ano, mês, dia e dia da semana, hora, minuto, segundo e &amp;nbsp;centissegundo. Todos no formato BCD.&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;O endereço 0x00 é usado como um registro de controle e status. Os endereços de 0x01 até 0x07 são usados como contador para a função relógio. Os endereços de 0x08 até 0x0F podem ser programados como registro do alarme ou utilizado como memória RAM livre, quando o alarme está desativado.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;b&gt;CARACTERÍSTICAS&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Barramento I2C;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Tensão de alimentação de 1.0V à 6.0V. Isso permite adicionar uma pequena bateria de backup de 3V no caso de ocorrer uma falha de energia;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Memória RAM de 256 x 8 bits;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Função relógio com 4 anos ( incluindo ano bissexto );&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Formato de horas: 24h ou 12h ( AM/PM );&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Alarme e Timer com interrupção programável.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;b&gt;REGISTRO DE CONTROLE E STATUS&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Este registro contém as flags de interrupção do alarme e do timer, que são os bit &lt;b&gt;1 &lt;/b&gt;e &lt;b&gt;0&lt;/b&gt;, respectivamente. O bit &lt;b&gt;7 &lt;/b&gt;quando setado pausa o relógio. Os bits &lt;b&gt;5 &lt;/b&gt;e &lt;b&gt;4 &lt;/b&gt;configuram o clock. O bit &lt;b&gt;3 &lt;/b&gt;funciona como uma chave para habilitar/desabilitar todas as interrupções.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;b&gt;REGISTRO DE CONTROLE DO ALARME&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Este registro contém a configuração de contagem do timer ( bits &lt;b&gt;2&lt;/b&gt;, &lt;b&gt;1 &lt;/b&gt;e &lt;b&gt;0 &lt;/b&gt;). O bit &lt;b&gt;3 &lt;/b&gt;é usado para habilitar/desabilitar a interrupção do timer. Os bits &lt;b&gt;5 &lt;/b&gt;e &lt;b&gt;4 &lt;/b&gt;configuram o modo do alarme e o bit &lt;b&gt;7 &lt;/b&gt;habilita/desabilita a interrupção do alarme.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;b&gt;MODO ALARME&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;No modo alarme você define a hora para ele disparar. Quando a hora atual e a hora do alarme forem iguais uma interrupção será gerada, e a flag será setado. Esta flag deverá ser limpa via software. Para configurar como alarme você deve:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Definir a hora do alarme ( endereços 0x09 até 0x0E )&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Configurar o modo do alarme ( bits &lt;b&gt;5&lt;/b&gt; e &lt;b&gt;4 &lt;/b&gt;do &lt;i&gt;registro de controle do alarme&lt;/i&gt; )&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Habilitar a interrupção do alarme ( bit &lt;b&gt;7 &lt;/b&gt;do &lt;i&gt;registro de controle do alarme&lt;/i&gt; )&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;b&gt;MODO TIMER&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;No modo timer você define um tempo para ele disparar. Esse tempo pode ser incrementado de segundos em segundos, ou minutos ou horas ou dias, configurando os bits &lt;b&gt;2&lt;/b&gt;, &lt;b&gt;1&lt;/b&gt; e &lt;b&gt;0&lt;/b&gt; do &lt;i&gt;registro de controle do alarme&lt;/i&gt;. A contagem inicia a partir do valor definido pelo usuário até &lt;b&gt;99&lt;/b&gt;. Após isso ocorrerá um estouro, retornando a contagem para 0 e gerando uma interrupção. A flag também será setado. Esta flag deverá ser limpa via software, assim como o valor do timer. Para configurar o timer você deve:&lt;/span&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Definir um valor inicial do timer ( endereço 0x0F )&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Configurar o modo de contagem ( bits 2, 1 e 0 do &lt;i&gt;registro de controle do alarme&lt;/i&gt; )&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Habilitar a interrupção do timer ( bit 3 do &lt;i&gt;registro de controle do alarme&lt;/i&gt; )&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;b&gt;BIBLIOTECA&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;color: #666666; font-family: Trebuchet MS, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;MikroC PRO PIC&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;github-code&quot;&gt;
&lt;script src=&quot;https://gist.github.com/Microcontrolandos/db80d853c57ebc6a294f.js&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;EXEMPLO&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #666666; font-family: Trebuchet MS, sans-serif; font-size: x-small;&quot;&gt;MikroC PRO PIC
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;github-code&quot;&gt;
&lt;script src=&quot;https://gist.github.com/Microcontrolandos/2f9db42eec1578d82ff0.js&quot;&gt;&lt;/script&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/5046532784359371607/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2014/11/pic-pcf8583.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/5046532784359371607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/5046532784359371607'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2014/11/pic-pcf8583.html' title='PIC: PCF8583'/><author><name>Tiago Henrique</name><uri>http://www.blogger.com/profile/09385302997357057888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DEIRSvuNsOgEgq7JXn5GkdO-CDD6izks1hc_VMd7mTD4rBAOkMNByPefn7OZeLmaf0RIOHpI8xFnf1jmsc43yivpk3htzCpsOeCAbrh1krZWA3uMPVzq7rVBXNmJtN8/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAfpxkPvrB-96jFAM0wieq_OS1VQhyMHeQaZhBQjTLMzkp-3a2V-utlCpR8ouLsPGaq8jqe_Ttml9Nt6ST4LjsRgWY13dVfpBW2Osit9gLqRjlv0EdHl5NcoL18DFS8_jm_WcIaFWhVwgp/s72-c/PIC.PCF8583.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-2952931962993617760</id><published>2014-10-18T12:00:00.002-03:00</published><updated>2018-02-20T07:50:36.749-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C"/><category scheme="http://www.blogger.com/atom/ns#" term="Tutorial"/><title type='text'>TUTORIAL: Ellipsis</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLP-OPmb4GMBVcJa8R0SO8OfVEFR63GAac7Nfnmbj66oJNWcl0Tqy6Tk78SIbKHXMTl2K93ub_jS5-e7YqKxwiBoizbC4Ty6WAlenNUGF_FUOouRtq9oOlhI9hDHpqCMkyUH1t6GcTANip/s1600/programming-languages.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1067&quot; data-original-width=&quot;1600&quot; height=&quot;426&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLP-OPmb4GMBVcJa8R0SO8OfVEFR63GAac7Nfnmbj66oJNWcl0Tqy6Tk78SIbKHXMTl2K93ub_jS5-e7YqKxwiBoizbC4Ty6WAlenNUGF_FUOouRtq9oOlhI9hDHpqCMkyUH1t6GcTANip/s640/programming-languages.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;markdown&quot;&gt;
&lt;textarea&gt;Em todas as funções que criamos, o número de parâmetros deve ser conhecido com antecedência. Mas a linguagem C permite que passamos quantos parâmetros quiser para uma chamada de função. Para isso a linguagem fornece o especificador ellipsis ( ou reticências ).

A ellipsis deve ser sempre o último parâmetro da função e seus componentes devem ser do mesmo tipo.

A ellipsis &quot;informa&quot; ao compilador que a função CalcularMedia poderá conter x parâmetros. Você deve estar ciente que o compilador aloca os parâmetros sequencialmente, isto quer dizer que, na memória, supondo que o primeiro parâmetro (todos do tipo char, isto é, usam 1 byte) ocupa o endereço 44, o segundo parâmetro irá ocupar o endereço 45, o terceiro parâmetro irá ocupar o endereço 46 e, assim por diante. O que temos que fazer é simplesmente apontar para o primeiro parâmetro da sequência e &quot;caminhar&quot; nesta sequência, recuperando assim seus valores.

### Exemplo
&lt;/textarea&gt;
&lt;/div&gt;
&lt;script src=&quot;https://gist.github.com/tiagohm/848a86c10f12a6effd3459499b3ab77b.js&quot;&gt;&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/2952931962993617760/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2014/10/tutorial-ellipsis.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/2952931962993617760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/2952931962993617760'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2014/10/tutorial-ellipsis.html' title='TUTORIAL: Ellipsis'/><author><name>Tiago Henrique</name><uri>http://www.blogger.com/profile/09385302997357057888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DEIRSvuNsOgEgq7JXn5GkdO-CDD6izks1hc_VMd7mTD4rBAOkMNByPefn7OZeLmaf0RIOHpI8xFnf1jmsc43yivpk3htzCpsOeCAbrh1krZWA3uMPVzq7rVBXNmJtN8/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLP-OPmb4GMBVcJa8R0SO8OfVEFR63GAac7Nfnmbj66oJNWcl0Tqy6Tk78SIbKHXMTl2K93ub_jS5-e7YqKxwiBoizbC4Ty6WAlenNUGF_FUOouRtq9oOlhI9hDHpqCMkyUH1t6GcTANip/s72-c/programming-languages.jpg" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-8729718351335094738</id><published>2014-10-17T22:23:00.002-03:00</published><updated>2018-03-23T07:55:05.246-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Biblioteca"/><category scheme="http://www.blogger.com/atom/ns#" term="MikroC"/><category scheme="http://www.blogger.com/atom/ns#" term="PIC"/><category scheme="http://www.blogger.com/atom/ns#" term="Potenciometro"/><category scheme="http://www.blogger.com/atom/ns#" term="SPI"/><title type='text'>PIC: MCP41XXX</title><content type='html'>&lt;img class=&quot;post-banner&quot; src=&quot;https://www.dropbox.com/s/df2iy0ohc9c4w6f/pic-mcp41xxx.png?dl=1&quot; /&gt;  &lt;br /&gt;
&lt;div class=&quot;markdown&quot;&gt;&lt;textarea&gt;&lt;br /&gt;
[MCP41XXX](http://ww1.microchip.com/downloads/en/DeviceDoc/11195c.pdf) é uma família de potenciômetro digital de 256 posições e 1 canal.  A família é composta por MCP41010 (10k), MCP41050 (50k) e MCP41100 (100k).  A comunicação é feita via SPI.  &lt;br /&gt;
&lt;br /&gt;
### Funcionamento&lt;br /&gt;
Para definir o valor do potenciômetro é necessário enviar 2 bytes. &lt;br /&gt;
&lt;br /&gt;
O primeiro byte é o byte de comando:  &lt;br /&gt;
&lt;br /&gt;
![](https://www.dropbox.com/s/k70lw1ox5nip3za/pic-mcp41xxx-command-byte.png?dl=1)  &lt;br /&gt;
&lt;br /&gt;
* Os bits `C1` e `C0` são os bits de comando: `00` = comando de escrita, `01` coloca o dispositivo em *shutdown*; &lt;br /&gt;
* Os bits `P1` e `P0` são os bits que selecionam um potenciômetro. `01` seleciona o potenciômetro `0`.  &lt;br /&gt;
&lt;br /&gt;
O segundo byte define o valor do potenciômetro.  &lt;br /&gt;
&lt;br /&gt;
### Download&lt;br /&gt;
[MCP41XXX.zip](http://bit.ly/2FK6OyL)  &lt;br /&gt;
&lt;br /&gt;
### Código&lt;br /&gt;
&lt;div data-gist=&quot;https://gist.github.com/tiagohm/d0a6926d796f1063dcc7e31621bfb61a&quot;&gt;&lt;/div&gt;&lt;/textarea&gt; &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/8729718351335094738/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2014/10/pic-mcp41xxx.html#comment-form' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/8729718351335094738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/8729718351335094738'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2014/10/pic-mcp41xxx.html' title='PIC: MCP41XXX'/><author><name>Tiago Henrique</name><uri>http://www.blogger.com/profile/09385302997357057888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DEIRSvuNsOgEgq7JXn5GkdO-CDD6izks1hc_VMd7mTD4rBAOkMNByPefn7OZeLmaf0RIOHpI8xFnf1jmsc43yivpk3htzCpsOeCAbrh1krZWA3uMPVzq7rVBXNmJtN8/s1600/*'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-1824977827148366232</id><published>2014-10-14T13:24:00.004-03:00</published><updated>2016-12-14T08:51:46.774-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Arduino"/><category scheme="http://www.blogger.com/atom/ns#" term="Downloads"/><title type='text'>Arduino Uno para Proteus</title><content type='html'>&lt;h1 style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: red; font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;&quot;&gt;ARDUINO UNO PARA O PROTEUS&lt;/span&gt;&lt;/h1&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxeQFqIy-3bfI3sMdHkyzQWkcN_VnVHZEtc1lorkcMaR847bliWbyrXTqwuNR4ysa39FJfYg5Wo3BxQJayKbDQV8DbYDzB53-fhH_qQbGj404IKfePbrVn0jxxwwgf5G0Hh9v3ykoDUAce/s1600/ARDUINO.UNO.V3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;374&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxeQFqIy-3bfI3sMdHkyzQWkcN_VnVHZEtc1lorkcMaR847bliWbyrXTqwuNR4ysa39FJfYg5Wo3BxQJayKbDQV8DbYDzB53-fhH_qQbGj404IKfePbrVn0jxxwwgf5G0Hh9v3ykoDUAce/s1600/ARDUINO.UNO.V3.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;&quot;&gt;Esta é a nova versão do simulador de Arduino Uno R3 para o Proteus. Nessa nova versão modifiquei o design para ficar mais bonito, deixando seus novos projetos mais atraentes.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: red; font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;&quot;&gt;&lt;b&gt;INSTALAÇÃO&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;&quot;&gt;Copie o arquivo &lt;span style=&quot;color: blue;&quot;&gt;ARDUINO.LIB&lt;/span&gt; para a pasta:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;&quot;&gt;&lt;b&gt;C:\Arquivos de Programas\Labcenter Electronics\Proteus 8 Professional\LIBRARY&lt;/b&gt; ou &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;&quot;&gt;C:\ProgramData\Labcenter Electronics\Proteus 8 Professional\LIBRARY&lt;/span&gt;&lt;span style=&quot;color: #6aa84f; font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;&quot;&gt;.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;color: #6aa84f; font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: red; font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;&quot;&gt;&lt;b&gt;DOWNLOAD&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;&quot;&gt;Biblioteca Arduino para Proteus : &lt;b&gt;&lt;a href=&quot;https://microcontrolandos.wordpress.com/2016/11/17/arduino-uno-proteus/&quot; target=&quot;_blank&quot;&gt;Arduino.lib&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFeuhhAMvFjKo6xsJPZUBU5FZoXVdcYOD-hnqfrQ6fwm-X56wzaDBEvII7iZqPItgXhQiuuY-GkicO4E-fQld4vh3XRZA1kKkc0pQrXUHuBDgfv875BIZSRsF4yQgQxh8QPCmT2olIUodn/s1600/ARDUINO.UNO.V3.EXEMPLO.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;329&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFeuhhAMvFjKo6xsJPZUBU5FZoXVdcYOD-hnqfrQ6fwm-X56wzaDBEvII7iZqPItgXhQiuuY-GkicO4E-fQld4vh3XRZA1kKkc0pQrXUHuBDgfv875BIZSRsF4yQgQxh8QPCmT2olIUodn/s1600/ARDUINO.UNO.V3.EXEMPLO.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/1824977827148366232/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2014/10/arduino-uno-para-proteus.html#comment-form' title='43 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/1824977827148366232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/1824977827148366232'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2014/10/arduino-uno-para-proteus.html' title='Arduino Uno para Proteus'/><author><name>Tiago Henrique</name><uri>http://www.blogger.com/profile/09385302997357057888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DEIRSvuNsOgEgq7JXn5GkdO-CDD6izks1hc_VMd7mTD4rBAOkMNByPefn7OZeLmaf0RIOHpI8xFnf1jmsc43yivpk3htzCpsOeCAbrh1krZWA3uMPVzq7rVBXNmJtN8/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxeQFqIy-3bfI3sMdHkyzQWkcN_VnVHZEtc1lorkcMaR847bliWbyrXTqwuNR4ysa39FJfYg5Wo3BxQJayKbDQV8DbYDzB53-fhH_qQbGj404IKfePbrVn0jxxwwgf5G0Hh9v3ykoDUAce/s72-c/ARDUINO.UNO.V3.png" height="72" width="72"/><thr:total>43</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-7011486506913295393</id><published>2014-07-12T21:45:00.000-03:00</published><updated>2014-10-11T12:19:30.218-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Bibliotecas"/><category scheme="http://www.blogger.com/atom/ns#" term="PIC"/><category scheme="http://www.blogger.com/atom/ns#" term="Tutoriais"/><title type='text'>PIC: LCD com Menus</title><content type='html'>&lt;h1 style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;PIC: LCD &lt;span style=&quot;font-weight: normal;&quot;&gt;com &lt;/span&gt;M&lt;span style=&quot;font-weight: normal;&quot;&gt;enus&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4V70WQLfLaLQgvrwMr8LRMfzP9Fk46xuCd-uvp_U1nNDL8m4jPm3d7b8KUdNIroAAUYZkcx4Y57WLY1l4HARqDilGc4Exdny1m9iP9txhPoxUTjsfG6aA4gsiV2QmIJHxT_sWCBoh1p05/s1600/PIC.LCD.MENUS.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4V70WQLfLaLQgvrwMr8LRMfzP9Fk46xuCd-uvp_U1nNDL8m4jPm3d7b8KUdNIroAAUYZkcx4Y57WLY1l4HARqDilGc4Exdny1m9iP9txhPoxUTjsfG6aA4gsiV2QmIJHxT_sWCBoh1p05/s1600/PIC.LCD.MENUS.png&quot; height=&quot;404&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Como foi me pedido, neste post irei explicar como criar um menu, bem sofisticado, para um display de LCD.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Nesse menu, cada item pode conter um submenu, cada submenu pode conter outro submenu, e assim por diante, infinitamente( até acabar a memória ). Cada item pode&amp;nbsp;também&amp;nbsp;executar uma rotina ao ser selecionado.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Primeiramente cria-se um registro que irá armazenar as informações de cada item:
&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;mikroCCode&quot;&gt;struct MenuItem
{
        const Item** mItem;     //SubMenu
        char Texto[16];         //texto
        void(*Tarefa)(char);    //Funcao a ser executada
        char Parms;             //valor do parametro da funcao
};
&lt;/pre&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Depois criamos os items...&lt;/span&gt;&lt;br /&gt;
&lt;pre class=&quot;mikroCCode&quot;&gt;const  Item Menu01 = { Screen1, &quot;FUNCAO 1&quot;, &amp;amp;SuaFuncao, 0 };
const  Item Menu02 = { Screen2, &quot;FUNCAO 2&quot;, NULL, 0 };
&lt;/pre&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;span style=&quot;color: #3d85c6;&quot;&gt;&lt;b&gt;Screen1&lt;/b&gt;&lt;/span&gt; - é o vetor de itens do submenu. Se não possui um submenu colocar 0.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;span style=&quot;color: #3d85c6;&quot;&gt;&lt;b&gt;&quot;FUNCAO 1&quot;&lt;/b&gt;&lt;/span&gt; - É o texto do item a ser exibido.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;span style=&quot;color: #3d85c6;&quot;&gt;&lt;b&gt;&amp;amp;SuaFuncao&lt;/b&gt;&lt;/span&gt; - É o endereço da função a ser executada pelo item ao ser selecionado. Se não tiver, colocar 0.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;span style=&quot;color: #3d85c6;&quot;&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt; - é o valor do&amp;nbsp;parâmetro&amp;nbsp;a ser passado para a função dita anteriormente.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;e um vetor que armazena os itens da primeira tela a ser exibida.
&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;pre class=&quot;mikroCCode&quot;&gt;//Terminar sempre com 0(Zero).
const Item* TelaInicial[] = { &amp;amp;Menu01, &amp;amp;Menu02, 0 }; 
&lt;/pre&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Criamos tambem os itens de uma segunda, terceira, ... , tela:
&lt;/span&gt;&lt;br /&gt;
&lt;pre class=&quot;mikroCCode&quot;&gt;const Item Menu10 = { Screen3, &quot;Outra Funcao&quot;, 0, 0 };
const Item Menu11 = { NULL, &quot;Ativar Saidas&quot;, &amp;amp;DefinirSaidas, 255 };
const Item Menu12 = { NULL, &quot;Alternar Saidas&quot;, &amp;amp;AlternarSaidas, 0 };
const Item Menu13 = { NULL, &quot;Desligar Saidas&quot;, &amp;amp;DefinirSaidas, 0 };
const Item* Screen1[] ={ &amp;amp;Menu10, &amp;amp;Menu11, &amp;amp;Menu12, &amp;amp;Menu13, 0 }; 
&lt;/pre&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Esse código é mais fácil no sentido de poder acrescentar quantos itens e subitens quiser, sem ter que adicionar mais instruções &quot;if&quot;, &quot;else&quot;, &quot;switch&quot;, etc, deixando o código mais limpo. Por outro lado, é necessário um conhecimento sobre o uso de estruturas( struct ) e ponteiros. Vocês podem ficar espantados ao ver tanto asterisco, como nesse trecho do código &lt;i&gt;&quot;&lt;/i&gt;&lt;i&gt;static const Item*** MenuAnterior&quot;&lt;/i&gt;&lt;/span&gt;.&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt; Para quem quiser entender, irei explicar:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Com Apenas um asterisco: &lt;b&gt;Item*&lt;/b&gt; - É um simples ponteiro para um&amp;nbsp;&lt;i&gt;struct Item&lt;/i&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Com dois asterisco: &lt;b&gt;Item**&lt;/b&gt; - É um vetor de *&lt;i&gt;Item.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Com três asterisco: &lt;b&gt;Item***&lt;/b&gt; - É um vetor de **&lt;i&gt;Item&lt;/i&gt;. ( ou matriz de *&lt;i&gt;Item ).&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;CÓDIGO:
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;mikroCCode&quot;&gt;/*
  PROJETO: LCD com MENUS
  MCU: PIC18F4550
  CLOCK: 48MHz ( 20MHz + PLL )
  COMPILADOR: MIKROC PRO PIC
  AUTOR: Tiago Henrique
*/

#define NULL 0

//PINOS DO LCD
sbit LCD_RS at RB0_bit;
sbit LCD_EN at RB1_bit;
sbit LCD_D4 at RB2_bit;
sbit LCD_D5 at RB3_bit;
sbit LCD_D6 at RB4_bit;
sbit LCD_D7 at RB5_bit;

sbit LCD_RS_Direction at TRISB0_bit;
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D7_Direction at TRISB5_bit;


/*
       PROTOTIPOS
*/
typedef struct MenuItem Item;
static void LcdWriteFromROM( const char* texto );
//Suas Funcoes
void DefinirSaidas( char );
void AlternarSaidas( char );



struct MenuItem
{
        const Item** mItem;     //submenu
        char Texto[16];         //texto
        void(*Tarefa)(char);    //Funcao a ser executada
        char Parms;             //valor do parametro da funcao
};

/*
       VARIAVEIS GLOBAIS
*/
static char selecao = 0;        //posicao do item selecionado
static const Item** MenuAtual;  //Menu Atual
static const Item*** MenuAnterior; //Pilha de Menus
static unsigned Stack[16];      //Aloca memoria para a pilha



/*
       MENU
*/

//Terceiro Nivel
const Item Menu30 = { NULL, &quot;PORTD = 32&quot;, &amp;amp;DefinirSaidas, 32 };
const Item* Screen3[] = { &amp;amp;Menu30, 0 }; //Terminar sempre com o valor 0(NULO)

//Segundo Nivel
const  Item Menu10 = { Screen3, &quot;Outra Funcao&quot;, 0, 0 };
const  Item Menu11 = { NULL, &quot;Ativar Saidas&quot;, &amp;amp;DefinirSaidas, 255 };
const  Item Menu12 = { NULL, &quot;Alternar Saidas&quot;, &amp;amp;AlternarSaidas, 0 };
const  Item Menu13 = { NULL, &quot;Desligar Saidas&quot;, &amp;amp;DefinirSaidas, 0 };
const Item* Screen1[] = { &amp;amp;Menu10, &amp;amp;Menu11, &amp;amp;Menu12, &amp;amp;Menu13, 0 };  //Terminar sempre com o valor 0(NULO)

const  Item Menu20 = { NULL, &quot;PORTD = 1&quot;, &amp;amp;DefinirSaidas, 1 };
const  Item Menu21 = { NULL, &quot;PORTD = 2&quot;, &amp;amp;DefinirSaidas, 2 };
const  Item Menu22 = { NULL, &quot;PORTD = 4&quot;, &amp;amp;DefinirSaidas, 4 };
const  Item Menu23 = { NULL, &quot;PORTD = 8&quot;, &amp;amp;DefinirSaidas, 8 };
const Item* Screen2[] = { &amp;amp;Menu20, &amp;amp;Menu21, &amp;amp;Menu22, &amp;amp;Menu23, 0 }; //Terminar sempre com o valor 0(NULO)

//Primeiro Nivel
const  Item Menu01 = { Screen1, &quot;FUNCAO 1&quot;, NULL, 0 };
const  Item Menu02 = { Screen2, &quot;FUNCAO 2&quot;, NULL, 0 };
const Item* TelaInicial[] = { &amp;amp;Menu01, &amp;amp;Menu02, 0 }; //Terminar sempre com o valor 0(NULO)




/*
      Exibe os items do menu atual no display LCD
*/
static char MostrarItens( const Item* menu[], char sel )
{
char index = 0, row = 1;

     Lcd_Cmd( _LCD_CLEAR );

     if( menu == 0 )
         return 0;

     while( menu[index] )
     {
             if( index &amp;lt; sel ) { index++; continue; }
             if( index == sel ) Lcd_Chr( row, 1, &#39;&amp;gt;&#39; );
             else Lcd_Chr( row, 1, &#39; &#39; );
             row++;
             LcdWriteFromROM( menu[index++]-&amp;gt;Texto );
     }

     if( index &amp;lt;= sel )
         return 1;
     return 0;
}

static void LcdWriteFromROM( const char* texto )
{
    while( *texto )
    {
           Lcd_Chr_CP( *texto++ );
    }
}



void main()
{
char flags = 0; //flags dos botoes

    CMCON = 7;
    ADCON1 = 15;
    //Botoes
    TRISA.B0 = 1;
    TRISA.B1 = 1;
    TRISA.B2 = 1;
    TRISD = 0;
    PORTD = 0;
    
    Lcd_Init();
    Lcd_Cmd( _LCD_CURSOR_OFF );

    MenuAtual = TelaInicial; //A tela atual = tela inicial
    MenuAnterior = &amp;amp;Stack;   //Aponta para a pilha
    
    MostrarItens( MenuAtual, selecao ); //Exibe os itens

    while( 1 )
    {
         if( PORTA.B0 ) flags.B0 = 1;
         else if( PORTA.B1 ) flags.B1 = 1;
         else if( PORTA.B2 ) flags.B2 = 1;

         //Botao Proximo foi pressionado
         if( !PORTA.B0 &amp;amp;&amp;amp; flags.B0 )
         {
             ++selecao; //seleciona o proximo item
             //Exibe os itens da tela selecionada e
             //se o indice do item estourar
             //retorna para o primeiro item
             if( MostrarItens( MenuAtual, selecao ).B0 )
             {
                  selecao = 0;
                  MostrarItens( MenuAtual, selecao );
             }
             flags.B0 = 0;
         }
         
         //Botao Enter foi pressionado
         if( !PORTA.B1 &amp;amp;&amp;amp; flags.B1 )
         {
             //Recebe o ponteiro da funcao a ser executada
             void(*Func)(char) = MenuAtual[selecao]-&amp;gt;Tarefa;
             

             //Caso exista uma funcao a ser executada...
             if( Func != NULL )
             {
                 //Executa a função
                 Func( MenuAtual[selecao]-&amp;gt;Parms );
             }

             //Se existir um submenu
             if( MenuAtual[selecao]-&amp;gt;mItem != NULL )
             {
                 //Salva o menu atual no MenuAnteror
                 *MenuAnterior++ = MenuAtual;
                 //atualiza o menu atual com o proximo menu
                 MenuAtual = MenuAtual[selecao]-&amp;gt;mItem;
                 //Exibe os itens deste proximo menu
                 selecao = 0;
                 MostrarItens( MenuAtual, selecao );
             }
             
             flags.B1 = 0;
         }
         
         //Botao Voltar foi pressionado
         if( !PORTA.B2 &amp;amp;&amp;amp; flags.B2 )
         {
              selecao = 0;
              //Se não for o primeiro menu( Tela Inicial )
              if( ((unsigned*)&amp;amp;MenuAnterior)[0] &amp;gt; (unsigned)&amp;amp;Stack )
              {
                 //MenuAtual recebe o menu salvo no MenuAnterior
                 MenuAtual = *--MenuAnterior;
                 MostrarItens( MenuAtual, selecao );
              }
              flags.B2 = 0;
         }
    }

}

//Suas Funcoes

void DefinirSaidas( char valor )
{
    PORTD = valor;
}

void AlternarSaidas( char valor )
{
     PORTD = ~PORTD;
}
&lt;/pre&gt;
&lt;br /&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;b&gt;DOWNLOAD:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #3d85c6;&quot;&gt;Projeto:&lt;/span&gt;&lt;/b&gt; &lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLYTVRbFBqWWFUa2s/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;LCD_com_menus.rar&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;O código pode ser um pouco difícil de entender, então, qualquer dúvida é só perguntar. Até mais!!!!&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/7011486506913295393/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2014/07/pic-lcd-com-menus.html#comment-form' title='51 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/7011486506913295393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/7011486506913295393'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2014/07/pic-lcd-com-menus.html' title='PIC: LCD com Menus'/><author><name>Tiago Henrique</name><uri>http://www.blogger.com/profile/09385302997357057888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DEIRSvuNsOgEgq7JXn5GkdO-CDD6izks1hc_VMd7mTD4rBAOkMNByPefn7OZeLmaf0RIOHpI8xFnf1jmsc43yivpk3htzCpsOeCAbrh1krZWA3uMPVzq7rVBXNmJtN8/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4V70WQLfLaLQgvrwMr8LRMfzP9Fk46xuCd-uvp_U1nNDL8m4jPm3d7b8KUdNIroAAUYZkcx4Y57WLY1l4HARqDilGc4Exdny1m9iP9txhPoxUTjsfG6aA4gsiV2QmIJHxT_sWCBoh1p05/s72-c/PIC.LCD.MENUS.png" height="72" width="72"/><thr:total>51</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-6375170572359341713</id><published>2014-07-10T10:46:00.000-03:00</published><updated>2015-07-07T16:40:42.650-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Downloads"/><title type='text'>Livros Sobre Programação</title><content type='html'>&lt;h1 style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;L&lt;span style=&quot;font-weight: normal;&quot;&gt;ivros&lt;/span&gt; S&lt;span style=&quot;font-weight: normal;&quot;&gt;obre&lt;/span&gt; P&lt;span style=&quot;font-weight: normal;&quot;&gt;rogramação&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm43o6OgOpN4DU5cVRaXltG_AbhOdhxL_BJxI3UpPJSd_pscwy5lA6u6nfyZ8xI0V5ctoavc5PAZrydIos4_VlZy2BSHjvE3s8iAoKw0M_pcK6ZTl8FX40tDGfeN0aqmAvtqLiKmQRnSlY/s1600/LIVROS.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;308&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm43o6OgOpN4DU5cVRaXltG_AbhOdhxL_BJxI3UpPJSd_pscwy5lA6u6nfyZ8xI0V5ctoavc5PAZrydIos4_VlZy2BSHjvE3s8iAoKw0M_pcK6ZTl8FX40tDGfeN0aqmAvtqLiKmQRnSlY/s1600/LIVROS.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Quem quer aprender mais sobre programação, disponibilizo vários links de livros em pdf. São várias as linguagens de programação, desenvolvimento de aplicativos Mobile, programação Web e programação orientada à objetos. Também vou estar disponibilizando outros livros relacionadas à computação, pois irá ajudar muito para aqueles que estão cursando Ciência da Computação...Se você gostou de algum livro, sugiro que comprem, pois assim, estarão ajudando seus desenvolvedores.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;USE A CABEÇA - C#&lt;/span&gt;&lt;/b&gt; - &lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLZXBRRE5HbWpYVGc/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgptf7GIcYRnEMZFZslzfwj7-D8vEAP2_PyFgNNMx_Eg3rbZ8D0W3NRDrLidHMSdv6zqSgQ8GJtz5XblWh_AdYrBy66NsksCPND7TmcFBihfvuZDDJL-oAfCbnh6S23Sjz7EJPHmjRmoMab/s1600/livros_use_a_cabeca_csharp.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgptf7GIcYRnEMZFZslzfwj7-D8vEAP2_PyFgNNMx_Eg3rbZ8D0W3NRDrLidHMSdv6zqSgQ8GJtz5XblWh_AdYrBy66NsksCPND7TmcFBihfvuZDDJL-oAfCbnh6S23Sjz7EJPHmjRmoMab/s1600/livros_use_a_cabeca_csharp.png&quot; width=&quot;235&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;USE A CABEÇA&amp;nbsp;- AJAX&lt;/span&gt;&lt;/b&gt;&amp;nbsp;-&amp;nbsp;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLY2pKRXE5eXUyZlk/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLQMgiI6AcVK6AU2rJDa0OCrEenJOenn-HysPWXnXJYRBSqqt1Hv6Zj4SZ9-ZFwnqbIJk8LD7wLBqfnn7j6f_w13Z02ARn3nPGD3oVQWapMMOVlOQVPFL-PTAaVUr-FvYzFiAwgOxhs0Z2/s1600/livros_use_a_cabeca_ajax.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLQMgiI6AcVK6AU2rJDa0OCrEenJOenn-HysPWXnXJYRBSqqt1Hv6Zj4SZ9-ZFwnqbIJk8LD7wLBqfnn7j6f_w13Z02ARn3nPGD3oVQWapMMOVlOQVPFL-PTAaVUr-FvYzFiAwgOxhs0Z2/s1600/livros_use_a_cabeca_ajax.png&quot; width=&quot;246&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;USE A CABEÇA&amp;nbsp;- HTML com CSS&lt;/span&gt;&lt;/b&gt;&amp;nbsp;-&amp;nbsp;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLZmVRa29vaElENEU/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYzyL1w3rYKfdLsGtCdNmfF821TH5Axy7UFS2ufI9f_FA511O3wRVqukpUc6_p8rbUsWHEKP0qSNKaflehXxFBHXPy6eNtbabP3MB_NtS_ag2EGYeqlxqxmWJiajeacHIF7bJ1hxW5tXhf/s1600/livros_use_a_cabeca_html.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYzyL1w3rYKfdLsGtCdNmfF821TH5Axy7UFS2ufI9f_FA511O3wRVqukpUc6_p8rbUsWHEKP0qSNKaflehXxFBHXPy6eNtbabP3MB_NtS_ag2EGYeqlxqxmWJiajeacHIF7bJ1hxW5tXhf/s1600/livros_use_a_cabeca_html.png&quot; width=&quot;231&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;USE A CABEÇA&amp;nbsp;- JAVA&lt;/span&gt;&lt;/b&gt;&amp;nbsp;-&amp;nbsp;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLRnhRMm1FdGQ5RFE/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTo7J4bRscPkMP1VsX95IAm3YMK8CA9gFE_QdyckkhqW7oYlFMcnC0v8jq-ygWxt0D5GQMzq77snJA1Vf4jpaLOLKxNzv5vHh4h_EhCt1Livdju85VWzRwYTGvASMzpcduwB_juNE-A2Su/s1600/livros_use_a_cabeca_java.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTo7J4bRscPkMP1VsX95IAm3YMK8CA9gFE_QdyckkhqW7oYlFMcnC0v8jq-ygWxt0D5GQMzq77snJA1Vf4jpaLOLKxNzv5vHh4h_EhCt1Livdju85VWzRwYTGvASMzpcduwB_juNE-A2Su/s1600/livros_use_a_cabeca_java.png&quot; width=&quot;232&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;USE A CABEÇA&amp;nbsp;- JAVASCRIPT&lt;/span&gt;&lt;/b&gt;&amp;nbsp;-&amp;nbsp;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLMVQwZFBLT0xTSDg/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik8dIxT70d4Dl5KN9pH8wO01b2sBY0BZNDDckhPGbGe04xTk4In6o2Hhm8LXRkOmCgwUZst85AjxCWIbYbFnrTn9YePfPrmYInoDY-WBpGYKLTXCZdKQcTbZ9clEt2RSHQ3Nl0M-cvDqL8/s1600/livros_use_a_cabeca_javascript.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik8dIxT70d4Dl5KN9pH8wO01b2sBY0BZNDDckhPGbGe04xTk4In6o2Hhm8LXRkOmCgwUZst85AjxCWIbYbFnrTn9YePfPrmYInoDY-WBpGYKLTXCZdKQcTbZ9clEt2RSHQ3Nl0M-cvDqL8/s1600/livros_use_a_cabeca_javascript.png&quot; width=&quot;220&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;USE A CABEÇA&amp;nbsp;- PADRÕES DE PROJETO&lt;/span&gt;&lt;/b&gt;&amp;nbsp;-&amp;nbsp;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLUF8xbktPMnNYUFk/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0VqaDZB-MPEV8GTc1l7z-IEQiEfdtzmpoZFDk-NYWgVZHpB-crQvnfw0D8fbxq2QhsK2SHEr4R7qyD3UUq-BOfV-qmqVKntVphfQCTMbqf4jdUicguISAkiFdcd34t8KZ_QDnf2FDJ-BP/s1600/livros_use_a_cabeca_padroes_de_projetos.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0VqaDZB-MPEV8GTc1l7z-IEQiEfdtzmpoZFDk-NYWgVZHpB-crQvnfw0D8fbxq2QhsK2SHEr4R7qyD3UUq-BOfV-qmqVKntVphfQCTMbqf4jdUicguISAkiFdcd34t8KZ_QDnf2FDJ-BP/s1600/livros_use_a_cabeca_padroes_de_projetos.png&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;USE A CABEÇA&amp;nbsp;- PHP&lt;/span&gt;&lt;/b&gt;&amp;nbsp;-&amp;nbsp;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLUWUybW42QnBnQm8/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6gzI19oVnW9sx5kKL6KsYZAf_xwMlNdIIYvn82aBbSAZnIGfWYbJ1RX-y6bDWkwdS0tJKx6IY2OicnjhEelLD0j-yDM2YnL9fykbt8XF7U8lMZLvMMFW7W5579OcKzC4VD4_ddObXi72S/s1600/livros_use_a_cabeca_php.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6gzI19oVnW9sx5kKL6KsYZAf_xwMlNdIIYvn82aBbSAZnIGfWYbJ1RX-y6bDWkwdS0tJKx6IY2OicnjhEelLD0j-yDM2YnL9fykbt8XF7U8lMZLvMMFW7W5579OcKzC4VD4_ddObXi72S/s1600/livros_use_a_cabeca_php.png&quot; width=&quot;276&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;USE A CABEÇA - RAILS&lt;/span&gt;&lt;/b&gt; - &lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLYmwyaHpHakt3Rms/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt2E3Lu4X0tdYzFieXUyk1PoGWoBnN50AakGJEq2CCUEppjOVhJf6ijl9ViaGbUIp027K6OXiK_eLQm6CV0mbHjP7xqtLicB04hwK0vPTcCIkG8Z3rIW7AuyYKXaqlC8pXnVTOGrsRHMv8/s1600/livros_use_a_cabeca_rails.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt2E3Lu4X0tdYzFieXUyk1PoGWoBnN50AakGJEq2CCUEppjOVhJf6ijl9ViaGbUIp027K6OXiK_eLQm6CV0mbHjP7xqtLicB04hwK0vPTcCIkG8Z3rIW7AuyYKXaqlC8pXnVTOGrsRHMv8/s1600/livros_use_a_cabeca_rails.png&quot; width=&quot;221&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;USE A CABEÇA&amp;nbsp;- SQL&lt;/span&gt;&lt;/b&gt;&amp;nbsp;-&amp;nbsp;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLd2FhU2RlQlE4X0E/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdfrW3vpGhvSqjYOj7DFdYxc7BsW9DPPdCNLjXM3ftlMX7bOOTocS6jRdpgLKzoWErZEZZyKsA84QuRXZZw6uNHt8wUblDy_0KjlLK3HOcuuV16jBDNkzKwsDB7Pd_2M26BeeCE8kSIPZF/s1600/livros_use_a_cabeca_sql.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdfrW3vpGhvSqjYOj7DFdYxc7BsW9DPPdCNLjXM3ftlMX7bOOTocS6jRdpgLKzoWErZEZZyKsA84QuRXZZw6uNHt8wUblDy_0KjlLK3HOcuuV16jBDNkzKwsDB7Pd_2M26BeeCE8kSIPZF/s1600/livros_use_a_cabeca_sql.png&quot; width=&quot;228&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;DESENVOLVENDO APLICATIVOS MOBILE - ANDROID&lt;/span&gt;&lt;/b&gt;&amp;nbsp;-&amp;nbsp;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLNWViUkpmN293VEk/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrWmfwA6lXo9WUns25MqQDjPwHeNO7h4bhll3KnlwESPUnDn4C-ARzq3xhORw0X0srDTyP1qE0Eksb2i8KpMr8gKFBKM0dWv3M-QafgDR4Hn_arKTSRofS-JSimNu6y2T3QIT-I08C_dmp/s1600/livros_android_hachi.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrWmfwA6lXo9WUns25MqQDjPwHeNO7h4bhll3KnlwESPUnDn4C-ARzq3xhORw0X0srDTyP1qE0Eksb2i8KpMr8gKFBKM0dWv3M-QafgDR4Hn_arKTSRofS-JSimNu6y2T3QIT-I08C_dmp/s1600/livros_android_hachi.png&quot; style=&quot;border: 1px solid black;&quot; width=&quot;226&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;ORGANIZAÇÃO ESTRUTURA DE COMPUTADORES &lt;/span&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;- &lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLTjBtQkNVMjlMTzA/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3SOsVz55zG46Vk_4hkBfbp9jjoNcgHj911aoQccVPxDbBGKx-YF1JnhveILM-IdZ-DUmq265vvIwZVT90bXvqJxYz6pamQkQc0OKscvLqHPNKpiXjc74HDUs3q9-vZYzqUMFBQfV8uRim/s1600/livros_organizacao_estruturada_de_computadores.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3SOsVz55zG46Vk_4hkBfbp9jjoNcgHj911aoQccVPxDbBGKx-YF1JnhveILM-IdZ-DUmq265vvIwZVT90bXvqJxYz6pamQkQc0OKscvLqHPNKpiXjc74HDUs3q9-vZYzqUMFBQfV8uRim/s1600/livros_organizacao_estruturada_de_computadores.png&quot; style=&quot;border: 1px solid black;&quot; width=&quot;228&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;GOOGLE ANDROID&lt;/span&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt; - &lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLNkEzTmpMT0o4NFU/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT_w1NxmPlA0p07WDI7GljSIWnpGkKJBIEpuRUMyNO4NqrRfCI9rijaaPul5mslB4D-1GZ2ghwl7ArtAnuiTDsYDQFLyWxfEUZnCiCQuXxA9PqyXw-rFdyBr4yn-ZwTXO1AVIgP6QMlvCl/s1600/livros_google_android.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT_w1NxmPlA0p07WDI7GljSIWnpGkKJBIEpuRUMyNO4NqrRfCI9rijaaPul5mslB4D-1GZ2ghwl7ArtAnuiTDsYDQFLyWxfEUZnCiCQuXxA9PqyXw-rFdyBr4yn-ZwTXO1AVIgP6QMlvCl/s1600/livros_google_android.png&quot; width=&quot;231&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;APLICATIVOS WEB PRO ANDROID&lt;/span&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt; - &lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLTWViZWdGTFVKQnM/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpWcF3DSEcditSLwXtX5MSoPSDyvIHMhPu9X4KOLPG2aY0l1Jiv9CwRHSy6vtCy7ilF5_cm7zgQM2WGdIzWL12ZEhpuyb9UmViO_M8gDvlNu3pHqS7avffJivjW5GVKW1vcUEfWhNSAXKj/s1600/livros_aplicativos_web_pro_android.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpWcF3DSEcditSLwXtX5MSoPSDyvIHMhPu9X4KOLPG2aY0l1Jiv9CwRHSy6vtCy7ilF5_cm7zgQM2WGdIzWL12ZEhpuyb9UmViO_M8gDvlNu3pHqS7avffJivjW5GVKW1vcUEfWhNSAXKj/s1600/livros_aplicativos_web_pro_android.png&quot; width=&quot;221&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;PROGRAMMING ANDROID ( Inglês )&lt;/span&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt; - &lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLaUtEN2pwMnljY2M/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwWXJZHNuaIPgi9K04uPHfnZX13L_4rmVRnM2lVLzMTHZ879_r9V3hApp9EzssQPa3PHXKYwkNsro2ioF6JY2ioTfy9gU1Tsjla9DgZ5MLvbSbYE3x3tG4bl3OD5f4G8ocwhzVhAcvmVws/s1600/livros_programming_android.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwWXJZHNuaIPgi9K04uPHfnZX13L_4rmVRnM2lVLzMTHZ879_r9V3hApp9EzssQPa3PHXKYwkNsro2ioF6JY2ioTfy9gU1Tsjla9DgZ5MLvbSbYE3x3tG4bl3OD5f4G8ocwhzVhAcvmVws/s1600/livros_programming_android.png&quot; width=&quot;248&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b&gt;&lt;span style=&quot;color: orange; font-family: Trebuchet MS, sans-serif;&quot;&gt;NOVOS&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;DESENVOLVA JOGOS COM HTML5 e JAVASCRIPT&lt;/span&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLQ3I2Sm1sTlBzeE0/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkUDp5xrvUAjrfGewQ3JrZUpuJ72IA4WpHkTyQcG3tOUP8e9NrmFI-iB7oBQajJ0j0YsOLM6oEPISSkH4y9KHk3JGnk792mXZLPbJ4QIoHUkyjciJr2aMmDzY5rGBA90IL52vsFjo8uSiI/s1600/desenvolvendo-jogos-com-html5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkUDp5xrvUAjrfGewQ3JrZUpuJ72IA4WpHkTyQcG3tOUP8e9NrmFI-iB7oBQajJ0j0YsOLM6oEPISSkH4y9KHk3JGnk792mXZLPbJ4QIoHUkyjciJr2aMmDzY5rGBA90IL52vsFjo8uSiI/s1600/desenvolvendo-jogos-com-html5.png&quot; width=&quot;226&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;DOMINANDO JAVASCRIPT COM JQUERY&lt;/span&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLdG1hV2IzdFRWYlk/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz4YNkJnNpCnlpcIpFjaeTJTugHbrlV38_AK7nZISkxYXy5lZYFsNqJFkcYpmKKnGKAUEZxY6R5c5J2K59cgnfYDgWBe3NiXq7GvR0iilsPLiEeHLRGyt4-HAq6QvAeB1pt5lK-5fDd5Ii/s1600/dominado-javascript-com-jquery.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz4YNkJnNpCnlpcIpFjaeTJTugHbrlV38_AK7nZISkxYXy5lZYFsNqJFkcYpmKKnGKAUEZxY6R5c5J2K59cgnfYDgWBe3NiXq7GvR0iilsPLiEeHLRGyt4-HAq6QvAeB1pt5lK-5fDd5Ii/s1600/dominado-javascript-com-jquery.png&quot; width=&quot;227&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;JAVA 8 PRÁTICO&lt;/span&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLSk9xNmRrYWlTTEE/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1B0nyyeKb8EDOZPdXsmutLRjmm8dEphQlTgerCTHz5T8KT4i5a3J-HatM44bjqehkHidmaPpPwGZaoIQQtwLTpUqvHAux_KEbq4CfaB6wndItVUF3paxRx5gSxgJky5az4fM7-rX41tbC/s1600/java-8.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1B0nyyeKb8EDOZPdXsmutLRjmm8dEphQlTgerCTHz5T8KT4i5a3J-HatM44bjqehkHidmaPpPwGZaoIQQtwLTpUqvHAux_KEbq4CfaB6wndItVUF3paxRx5gSxgJky5az4fM7-rX41tbC/s1600/java-8.png&quot; width=&quot;226&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;COMPILADORES, PRINCÍPIOS, TÉCNICAS E FERRAMENTAS&lt;/span&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLOHpRRlpBMkdyalE/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-viUgYkW7IjGJYhkGamJrNTSJONSVZo_hvJnnqrn-b4mZNH_XwufKlheQaYClEdB_JkxNkd0mXjQJcwORqKdRklWTh8J2jfJtw1HDGq8EOlCaKpbJtVqkNb2J7JE4aw8Abse1x3lFvBbK/s1600/Compiladores-Principios-Tecnicas.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-viUgYkW7IjGJYhkGamJrNTSJONSVZo_hvJnnqrn-b4mZNH_XwufKlheQaYClEdB_JkxNkd0mXjQJcwORqKdRklWTh8J2jfJtw1HDGq8EOlCaKpbJtVqkNb2J7JE4aw8Abse1x3lFvBbK/s1600/Compiladores-Principios-Tecnicas.png&quot; width=&quot;242&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;JAVA - COMO PROGRAMAR - 8ª EDIÇÃO&lt;/span&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLbUh3RXQ0cXlpalU/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQBoLHVvyBm5N2MR9L1FvqUHAZhyQgtWc6L2uuEzwwp7Eva-YpejdH8rHNWDpc6I2fRLVpXkRASj40JfGn7XNdvlX2DXVQvGl0NAdZAABHAYD0td6wKPnmUGSyMHhlh5hP4s2zlv9WT8Ez/s1600/Java-Como-Programar.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQBoLHVvyBm5N2MR9L1FvqUHAZhyQgtWc6L2uuEzwwp7Eva-YpejdH8rHNWDpc6I2fRLVpXkRASj40JfGn7XNdvlX2DXVQvGl0NAdZAABHAYD0td6wKPnmUGSyMHhlh5hP4s2zlv9WT8Ez/s1600/Java-Como-Programar.jpg&quot; width=&quot;226&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;LÓGICA DE PROGRAMAÇÃO&lt;/span&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLOFQ5TEV6SWVMSU0/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiACcF7MdNo9G6d95x2OTJr1WvjLXtQlwNZ7qvC6vA1urY-ffp5uj65eMEIpQNZaBMjWfoWV84CBzitq36jYsAwsQfbd-_ikOBhEekfNcmuH8ZOuaXHg07gYQH0DDYbptlj747Apkhgfnrz/s1600/logica-de-programacao.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiACcF7MdNo9G6d95x2OTJr1WvjLXtQlwNZ7qvC6vA1urY-ffp5uj65eMEIpQNZaBMjWfoWV84CBzitq36jYsAwsQfbd-_ikOBhEekfNcmuH8ZOuaXHg07gYQH0DDYbptlj747Apkhgfnrz/s1600/logica-de-programacao.png&quot; width=&quot;226&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;PROGRAMANDO EM C/C++ - A BÍBLIA&lt;/span&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLVVVIT0pvOTRyVmM/view?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0NCtioGTI-yp5qnOyrbkXJI1vzcWtUG1pShkBj4X-Guf6RziAqXgRimVAJcZn5b5ECMQxha2EccVm8_wk70cULuJQnZwJ9K8EUMM4omCfhnpjlyvnz4WLADtZe0BUJWLa2MJrobpGaG_9/s1600/programando-em-c-a-biblia.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0NCtioGTI-yp5qnOyrbkXJI1vzcWtUG1pShkBj4X-Guf6RziAqXgRimVAJcZn5b5ECMQxha2EccVm8_wk70cULuJQnZwJ9K8EUMM4omCfhnpjlyvnz4WLADtZe0BUJWLa2MJrobpGaG_9/s1600/programando-em-c-a-biblia.jpg&quot; width=&quot;231&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;ALGORITMOS - TEORIA E PRÁTICA&lt;/span&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://drive.google.com/file/d/0B_-qufAUxAJLUG5telZFR1BZNWM/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSFItKuKnY8YtuWtBxEJDVJC8qNf5WGgoVm-xn_Dbiz68rvAdPKq2CIJ5vidMB-7mjwdHif5Tmt_GcT5OuzJBFSkYZ0xA6rsa1H663i2Ld6EKS45mxNy7qvCtwABaa8-pyUCHHI5pcMNkD/s1600/Algoritmos-teoria-e-pratica.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSFItKuKnY8YtuWtBxEJDVJC8qNf5WGgoVm-xn_Dbiz68rvAdPKq2CIJ5vidMB-7mjwdHif5Tmt_GcT5OuzJBFSkYZ0xA6rsa1H663i2Ld6EKS45mxNy7qvCtwABaa8-pyUCHHI5pcMNkD/s1600/Algoritmos-teoria-e-pratica.png&quot; width=&quot;241&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/6375170572359341713/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2014/07/livros-sobre-programacao.html#comment-form' title='39 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/6375170572359341713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/6375170572359341713'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2014/07/livros-sobre-programacao.html' title='Livros Sobre Programação'/><author><name>Tiago Henrique</name><uri>http://www.blogger.com/profile/09385302997357057888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DEIRSvuNsOgEgq7JXn5GkdO-CDD6izks1hc_VMd7mTD4rBAOkMNByPefn7OZeLmaf0RIOHpI8xFnf1jmsc43yivpk3htzCpsOeCAbrh1krZWA3uMPVzq7rVBXNmJtN8/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm43o6OgOpN4DU5cVRaXltG_AbhOdhxL_BJxI3UpPJSd_pscwy5lA6u6nfyZ8xI0V5ctoavc5PAZrydIos4_VlZy2BSHjvE3s8iAoKw0M_pcK6ZTl8FX40tDGfeN0aqmAvtqLiKmQRnSlY/s72-c/LIVROS.png" height="72" width="72"/><thr:total>39</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-8524563837925293487</id><published>2014-06-21T13:54:00.000-03:00</published><updated>2014-06-21T13:57:21.261-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PIC"/><title type='text'>PIC: Sensor PIR</title><content type='html'>&lt;h1 style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;PIC: S&lt;span style=&quot;font-weight: normal;&quot;&gt;ENSOR&lt;/span&gt; PIR&lt;/span&gt;&lt;/h1&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVGqt_8odoHJuyauL3hdU_lY45pzIGA5C0mD9vWp3fsQFH6H4OV0VHNa1tCvjGjAuB_bK4PDA7_wXX4gGec7TK54wng7vIUyEjrugYqDv-h7y1K7VFiAa5Tf2EeZj3B2tDTm0MOzCH6Rm3/s1600/PIC.SENSOR.PIR.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVGqt_8odoHJuyauL3hdU_lY45pzIGA5C0mD9vWp3fsQFH6H4OV0VHNa1tCvjGjAuB_bK4PDA7_wXX4gGec7TK54wng7vIUyEjrugYqDv-h7y1K7VFiAa5Tf2EeZj3B2tDTm0MOzCH6Rm3/s1600/PIC.SENSOR.PIR.png&quot; height=&quot;354&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Sensor PIR ( Passive Infra-Red ) são usados para detectar movimentos, através da radiação infravermelha liberada por uma pessoa. Podemos ligar este sensor&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&amp;nbsp;para acender uma lâmpada, acionar portas, portões, sirenes, etc.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMuUb_DG8-TmmJl-19JkaNlY3nQ4qro_TtGtMynwtZtSdMpiFuslPibhcLA7aF_Mx7JvhiV3_m-Bg0kbfp1ZT4MtyApyz0EUri5D_MVD_VFCUyj40M-DRJRps_YWmG-XTC9eMZUYd-rDlG/s1600/PIC.SENSOR.PIR.1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMuUb_DG8-TmmJl-19JkaNlY3nQ4qro_TtGtMynwtZtSdMpiFuslPibhcLA7aF_Mx7JvhiV3_m-Bg0kbfp1ZT4MtyApyz0EUri5D_MVD_VFCUyj40M-DRJRps_YWmG-XTC9eMZUYd-rDlG/s1600/PIC.SENSOR.PIR.1.jpg&quot; height=&quot;238&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Este módulo possui um ajuste de sensibilidade, podendo aumentar ou diminuir o alcance do sensor( 3 a 7 metros ). Também possui um ajuste do tempo que a saída permanecerá acionada ( nível alto ), variando de 5 a 200 segundos. Estes ajustes são feitos&amp;nbsp;através&amp;nbsp;de dois&amp;nbsp;potenciômetros:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuyS2X-RuGpsZVtAQLUiD-rcQ7oZDkNtkl-IcyEryq_gTSUyMI-BzjY7TRUvH9NIx6CaDcOZ4aV-phldB2bFXIWJNI2aXtbsSU6FstnQEdLzy8ncFevWbbmcdRO52QEck-WI4f7vq3cirq/s1600/PIC.SENSOR.PIR.2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuyS2X-RuGpsZVtAQLUiD-rcQ7oZDkNtkl-IcyEryq_gTSUyMI-BzjY7TRUvH9NIx6CaDcOZ4aV-phldB2bFXIWJNI2aXtbsSU6FstnQEdLzy8ncFevWbbmcdRO52QEck-WI4f7vq3cirq/s1600/PIC.SENSOR.PIR.2.png&quot; height=&quot;221&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Quando o sensor detecta a presença de alguém, a saída ( OUTPUT ) ficará em nível lógico alto. Após um determinado tempo ( ajustado pelo potenciômetro ) ele voltará para o estado lógico baixo.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;b&gt;EXEMPLO&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;color: #666666; font-family: Trebuchet MS, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;MikroC PRO PIC&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;pre class=&quot;mikroCCode&quot;&gt;//PROJETO: SENSOR DE MOVIMENTO
//MCU: PIC12F675
//CLOCK: 4MHz INTOSC
//COMPILADOR: MikroC PRO PIC
// Habilitar a seguinte biblioteca:
// - Sound

sbit Sensor at GPIO.B2;

void main()
{
    ANSEL = 0; //desabilita o canal analogico
    CMCON = 0; //desabilita o comparador analogico
    TRISIO.B2 = 1; //define o pino GP2 como entrada
    
    Sound_Init( &amp;amp;GPIO, 0 );

    while(1)
    {
        if( Sensor )
        {
            Sound_Play( 1500, 200 ); //toca um som relaxante
            Delay_ms( 400 );
        }
    }
}
&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/8524563837925293487/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2014/06/pic-sensor-pir.html#comment-form' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/8524563837925293487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/8524563837925293487'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2014/06/pic-sensor-pir.html' title='PIC: Sensor PIR'/><author><name>Tiago Henrique</name><uri>http://www.blogger.com/profile/09385302997357057888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DEIRSvuNsOgEgq7JXn5GkdO-CDD6izks1hc_VMd7mTD4rBAOkMNByPefn7OZeLmaf0RIOHpI8xFnf1jmsc43yivpk3htzCpsOeCAbrh1krZWA3uMPVzq7rVBXNmJtN8/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVGqt_8odoHJuyauL3hdU_lY45pzIGA5C0mD9vWp3fsQFH6H4OV0VHNa1tCvjGjAuB_bK4PDA7_wXX4gGec7TK54wng7vIUyEjrugYqDv-h7y1K7VFiAa5Tf2EeZj3B2tDTm0MOzCH6Rm3/s72-c/PIC.SENSOR.PIR.png" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-2708778882211978197</id><published>2014-06-20T17:00:00.000-03:00</published><updated>2015-01-22T14:11:25.493-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Bibliotecas"/><category scheme="http://www.blogger.com/atom/ns#" term="PIC"/><category scheme="http://www.blogger.com/atom/ns#" term="Projetos"/><title type='text'>PIC: TEA5767</title><content type='html'>&lt;h1 style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;PIC&lt;/span&gt;&lt;span style=&quot;color: red; font-weight: normal;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;T&lt;/span&gt;&lt;span style=&quot;color: red; font-weight: normal;&quot;&gt;EA&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;color: red; font-weight: normal;&quot;&gt;7&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;6&lt;/span&gt;&lt;span style=&quot;color: red; font-weight: normal;&quot;&gt;7&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXUEY_PbsGHm_dIl3SMMVSAtVN5wWAPoMSt3Ajoz_5_0fCUE-6hvrEFLGZ3ozO0pz92FABO0Y-i1Ijg6-kwfcXxIEeXiscWvnYwJ2MIcTPqT55RzWCOiGYwjhzdOFAVVpC6ksBD-D2cNrD/s1600/PIC.TEA5767.RADIO.FM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXUEY_PbsGHm_dIl3SMMVSAtVN5wWAPoMSt3Ajoz_5_0fCUE-6hvrEFLGZ3ozO0pz92FABO0Y-i1Ijg6-kwfcXxIEeXiscWvnYwJ2MIcTPqT55RzWCOiGYwjhzdOFAVVpC6ksBD-D2cNrD/s1600/PIC.TEA5767.RADIO.FM.png&quot; height=&quot;366&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; text-align: justify;&quot;&gt;Dessa vez, iremos montar um rádio FM digital, utilizando o módulo &lt;/span&gt;&lt;a href=&quot;http://www.voti.nl/docs/TEA5767.pdf&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; text-align: justify;&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;TEA5767&lt;/b&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; text-align: justify;&quot;&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;O circuito integrado &lt;b&gt;TEA5767 &lt;/b&gt;é um rádio FM estéreo em um único chip. Possui um baixo consumo de energia e não requer nenhum tipo de ajuste no circuito. Sintoniza bandas FM Japonesas( 76 - 91 MHz ) ou Europeias ( 87.5 - 108 MHz ). Comunica-se com o microcontrolador através de um barramento I2C.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;O módulo possui 10 pinos. O pino &lt;i&gt;BUS MODE&lt;/i&gt; quando em nível baixo habilita a comunicação via I2C. Para habilitar a comunicação 3-Wire apenas coloque o pino em nível alto. Os pinos &lt;i&gt;SDA &lt;/i&gt;( dados ) e &lt;i&gt;SCL &lt;/i&gt;( clock ) são os pinos da interface I2C. É alimentado com tensão entre 2.5V até 5V. Possui duas saídas para o áudio estéreo ( &lt;i&gt;LEFT &lt;/i&gt;e &lt;i&gt;RIGHT &lt;/i&gt;). O pino 10 é para a ligação de uma antena.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikp-ZqPCyZ3AfRbxdzIuBS40Vl5gfkZPc8VRHrIesxhjMPtuzPe-mQF4RqYsMz-WT0wJw6j7mJtyLIehnkHsV2QFa8p46XfkVQHVEVZlgPTI2XUCOXJ75JZ0WJ58H5zUoDC9zMPTnl-eex/s1600/PIC.TEA5767.RADIO.FM.PINOUT.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikp-ZqPCyZ3AfRbxdzIuBS40Vl5gfkZPc8VRHrIesxhjMPtuzPe-mQF4RqYsMz-WT0wJw6j7mJtyLIehnkHsV2QFa8p46XfkVQHVEVZlgPTI2XUCOXJ75JZ0WJ58H5zUoDC9zMPTnl-eex/s1600/PIC.TEA5767.RADIO.FM.PINOUT.png&quot; height=&quot;202&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;BIBLIOTECA
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;color: #666666; font-family: Trebuchet MS, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;MikroC PRO PIC&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;mikroCCode&quot;&gt;#define TEA5767_ADDRESS 0xC0

static char WriteBytes[5] = { 0x00, 0x00, 0xD0, 0x10, 0x00 };

struct
{
    union
    {
        char FREQUENCIA_H : 6;
        char SEARCH_MODE : 1;
        char MUTE : 1;
    };

    char FREQUENCIA_L;

    union
    {
        char SWP1 : 1;
        char MUTE_LEFT : 1;
        char MUTE_RIGHT : 1;
        char MONO_TO_STEREO : 1;
        char HLSI : 1;
        char SEARCH_STOP_LEVEL : 2;
        char SEARCH_UP_DOWN : 1;
    };

    union
    {
        char : 5;
        char BAND_LIMIT : 1;  //1 = Japan FM Band, 0 = US/Europe FM Band
        char STANDY_BY_ON : 1;
        char SWP2 : 1;
    };

} TEA5767 at WriteBytes;

void TEA5767_Write()
{
    Soft_I2C_Start();
    Soft_I2C_Write( TEA5767_ADDRESS );
    Soft_I2C_Write( WriteBytes[0] );
    Soft_I2C_Write( WriteBytes[1] );
    Soft_I2C_Write( WriteBytes[2] );
    Soft_I2C_Write( WriteBytes[3] );
    Soft_I2C_Write( WriteBytes[4] );
    Soft_I2C_Stop();
}

void TEA5767_Read( unsigned long *freq_hz, char *flags, char *sinal )
{
unsigned long Freq_Tmp = 0;
char ReadBytes[5];

    //Faz a leitura de 4 bytes
    Soft_I2C_Start();
    Soft_I2C_Write( TEA5767_ADDRESS | 1 );
    ReadBytes[0] = Soft_I2C_Read( 1 );
    ReadBytes[1] = Soft_I2C_Read( 1 );
    ReadBytes[2] = Soft_I2C_Read( 1 );
    ReadBytes[3] = Soft_I2C_Read( 1 );
    ReadBytes[4] = Soft_I2C_Read( 0 );
    Soft_I2C_Stop();

    //Calcula a frequencia em hz
    ((char*)&amp;amp;Freq_Tmp)[1] = ReadBytes[0] &amp;amp; 0x3F;
    ((char*)&amp;amp;Freq_Tmp)[0] = ReadBytes[1];

    Freq_Tmp &amp;lt;&amp;lt;= 13;

    if( TEA5767.HLSI )
          Freq_Tmp -= 225000;
      else
          Freq_Tmp += 225000;

    *freq_hz = Freq_Tmp;

    //Nivel do sinal recebido
    *sinal = ReadBytes[3] &amp;gt;&amp;gt; 4;

    //flags
    (*flags).B0 = ReadBytes[2].B7;  //mono ou stereo
    (*flags).B1 = ReadBytes[0].B7; //estacao foi encontrada, caso o scan estiver ativado
    (*flags).B2 = ReadBytes[0].B6;  //atingiu o limite de banda
}

void TEA5767_Sintonizar( unsigned long freq_hz )
{
      //Formula = 4 * ( FREQ + 225000 ) / 32768

      if( TEA5767.HLSI )
          freq_hz += 225000;
      else
          freq_hz -= 225000;

      freq_hz &amp;gt;&amp;gt;= 13;

      TEA5767.FREQUENCIA_H = ((char*)&amp;amp;freq_hz)[1];
      TEA5767.FREQUENCIA_L = ((char*)&amp;amp;freq_hz)[0];
      TEA5767.SEARCH_STOP_LEVEL = 1;

      TEA5767_Write();
}

void TEA5767_Scan( char direcao )
{
     TEA5767.SEARCH_MODE = 1;
     TEA5767.SEARCH_UP_DOWN = direcao.B0;
     TEA5767.SEARCH_STOP_LEVEL = 2;
     TEA5767_Write();
}
&lt;/pre&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;EXEMPLO&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;b style=&quot;color: #666666; font-family: &#39;Trebuchet MS&#39;, sans-serif; text-align: right;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b style=&quot;color: #666666; font-family: &#39;Trebuchet MS&#39;, sans-serif; text-align: right;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjZ6Er1SW6FwVmWHyqdqs2xmAaa0OlGNv-ztWuOMpBveki62aycUMeMKeH_laCvY4x_lSEd6kmLQLn7G3QZY0bfPwtBnGt-GRbM2E-KGwB1ekXSU-pnAYLkz0cj0zuI25NYjFoT4Ljncz3/s1600/PIC.TEA5767.TESTE.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjZ6Er1SW6FwVmWHyqdqs2xmAaa0OlGNv-ztWuOMpBveki62aycUMeMKeH_laCvY4x_lSEd6kmLQLn7G3QZY0bfPwtBnGt-GRbM2E-KGwB1ekXSU-pnAYLkz0cj0zuI25NYjFoT4Ljncz3/s1600/PIC.TEA5767.TESTE.jpg&quot; height=&quot;400&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;No exemplo, há dois botões, que são utilizados para sintonizar a frequência e, também para procura automática das estações de rádio. A procura das estações ocorre quando o botão é pressionado por mais de 1 segundo. Para sintonizar, basta pressionar o botão, que a frequência irá decrementar ou incrementar em 100KHz ( 0.1MHz ).&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;O Display de LCD exibirá a frequência da rádio, o tipo da saída de áudio ( Stereo ou Mono ) e também o nível do sínal recebido.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;color: #666666; font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;MikroC PRO PIC&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;pre class=&quot;mikroCCode&quot;&gt;//Projeto: Radio FM com TEA5767
//MCU: PIC18F4550
//CLOCK: 48MHz ( 20MHz + PLL )
//Autor: Tiago Henrique
//Compilador: MikroC PRO PIC
//Habilitar as seguintes bibliotecas:
// - Conversions
// - Software_I2C
// - LCD


//copie e cole o código da biblioteca aqui!!!

sbit Soft_I2C_Scl           at RD1_bit;
sbit Soft_I2C_Sda           at RD0_bit;
sbit Soft_I2C_Scl_Direction at TRISD1_bit;
sbit Soft_I2C_Sda_Direction at TRISD0_bit;

sbit LCD_RS at RD2_bit;
sbit LCD_EN at RD3_bit;
sbit LCD_D4 at RD4_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D7 at RD7_bit;

sbit LCD_RS_Direction at TRISD2_bit;
sbit LCD_EN_Direction at TRISD3_bit;
sbit LCD_D4_Direction at TRISD4_bit;
sbit LCD_D5_Direction at TRISD5_bit;
sbit LCD_D6_Direction at TRISD6_bit;
sbit LCD_D7_Direction at TRISD7_bit;

sbit ButtonUp at PORTB.B2;
sbit ButtonDown at PORTB.B3;

unsigned long frequencia = 103500000; //frequencia de uma rádio em Hz
char nivel;
char radio_flags = 0;
char texto[12];
char tempo = 0;

void main()
{
        ADCON1 = 0x0F;    //desativa o canal analogico
        CMCON = 7; //desativa o comparador analogico
        NOT_RBPU_Bit = 0; //habilita os resistores de pull-up da PORTB

        Soft_I2C_Init(); //inicializa a comunicacao I2C

        Lcd_Init(); //iniciliaza o display lcd
        Lcd_Cmd( _LCD_CURSOR_OFF );
        Lcd_Cmd( _LCD_CLEAR );

        TRISB.B3 = 1; //botao de sintonia ( - ), botao de procura ( down )
        TRISB.B2 = 1; //botao de sintonia ( + ), botao de procura ( up )

        TEA5767_Sintonizar( frequencia ); //Sintoniza o radio

        while( 1 )
        {
             if( !ButtonUp )
             {
              tempo = 0;

              while( !ButtonUp )//enquanto o botao estiver pressionado
              {
                tempo++;
                if( tempo &amp;gt;= 200 )
                    break;
                Delay_ms( 5 );
              }
               
              frequencia += 100000;
              TEA5767_Sintonizar( frequencia );
              
              if( tempo &amp;gt;= 200 )  //1 segundo pressionado?
              {
                   TEA5767_Scan( 1 );
                  Lcd_Out( 2, 8, &quot;SCAN&quot; );
              }
             }
             else if( !ButtonDown )
             {
              tempo = 0;

              while( !ButtonDown )//enquanto o botao estiver pressionado
              {
                tempo++;
                if( tempo &amp;gt;= 200 )
                    break;
                Delay_ms( 5 );
              }
               
               frequencia -= 100000;
               TEA5767_Sintonizar( frequencia );
               
               if( tempo &amp;gt;= 200 ) //1 segundo pressionado
               {
                  TEA5767_Scan( 0 );
                  Lcd_Out( 2, 8, &quot;SCAN&quot; );
               }
             }

             TEA5767_Read( &amp;amp;frequencia, &amp;amp;radio_flags, &amp;amp;nivel );
             
             //imprime no display lcd
             Lcd_Out( 1, 1, &quot;FREQ: &quot; );
             WordToStr( frequencia / 100000, texto );
             Lcd_Chr_CP( texto[1] );
             Lcd_Chr_CP( texto[2] );
             Lcd_Chr_CP( texto[3] );
             Lcd_Chr_CP( &#39;.&#39; );
             Lcd_Chr_CP( texto[4] );
             Lcd_Out_CP( &quot; MHz&quot; );
             
             ByteToStr( nivel, texto );
             Lcd_Out( 2, 12, texto );

             if( radio_flags.B0 )
                 Lcd_Out( 2, 1, &quot;STEREO&quot; );
             else
                 Lcd_Out( 2, 1, &quot; MONO &quot; );

             if( radio_flags.B1 )  //Estacao encontrada
             {
                   TEA5767.SEARCH_MODE = 0;
                   Lcd_Out( 2, 8, &quot;    &quot; );
             }
             
             Delay_ms( 50 );
        }
}
&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/2708778882211978197/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2014/06/pic-tea5767-radio-fm.html#comment-form' title='10 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/2708778882211978197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/2708778882211978197'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2014/06/pic-tea5767-radio-fm.html' title='PIC: TEA5767'/><author><name>Tiago Henrique</name><uri>http://www.blogger.com/profile/09385302997357057888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DEIRSvuNsOgEgq7JXn5GkdO-CDD6izks1hc_VMd7mTD4rBAOkMNByPefn7OZeLmaf0RIOHpI8xFnf1jmsc43yivpk3htzCpsOeCAbrh1krZWA3uMPVzq7rVBXNmJtN8/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXUEY_PbsGHm_dIl3SMMVSAtVN5wWAPoMSt3Ajoz_5_0fCUE-6hvrEFLGZ3ozO0pz92FABO0Y-i1Ijg6-kwfcXxIEeXiscWvnYwJ2MIcTPqT55RzWCOiGYwjhzdOFAVVpC6ksBD-D2cNrD/s72-c/PIC.TEA5767.RADIO.FM.png" height="72" width="72"/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-1981602109964925116</id><published>2014-06-18T21:39:00.000-03:00</published><updated>2018-03-23T08:43:23.654-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="74HC595"/><category scheme="http://www.blogger.com/atom/ns#" term="Biblioteca"/><category scheme="http://www.blogger.com/atom/ns#" term="LCD"/><category scheme="http://www.blogger.com/atom/ns#" term="MikroC"/><category scheme="http://www.blogger.com/atom/ns#" term="PIC"/><title type='text'>PIC: LCD com 74HC595</title><content type='html'>&lt;img class=&quot;post-banner&quot; src=&quot;https://www.dropbox.com/s/vhaltd79cmei5n3/pic-lcd595.png?dl=1&quot;&gt;&lt;/img&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;markdown&quot;&gt;&lt;textarea&gt;&lt;br /&gt;
Neste post mostrarei uma maneira de ligar um display de LCD a microcontroladores PIC que possuem poucos pinos de IO, como é o caso do PIC12F675.&lt;br /&gt;
&lt;br /&gt;
Utilizando um registrador de deslocamento (*Shift Register*), o 74HC595, funcionando como um expansor de portas I/O, é possível utilizar apenas 3 pinos do microcontrolador, ao invés de 6 pinos.&lt;br /&gt;
&lt;br /&gt;
&gt; Para o PIC12F675 é recomendável usar seu clock interno (*INTOSC Oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN*). Assim sobram mais pinos para serem usados como entrada analógica, ligar um botão ou um LED.&lt;br /&gt;
&lt;br /&gt;
&lt;!-- --&gt;&lt;br /&gt;
### Download&lt;br /&gt;
&lt;br /&gt;
[LCD595.zip](https://www.dropbox.com/s/g7dgnl9p0dnaypd/PIC-LCD595.zip?dl=1)&lt;br /&gt;
&lt;br /&gt;
### Código&lt;br /&gt;
&lt;br /&gt;
&lt;div data-gist=&quot;https://gist.github.com/tiagohm/ac1872ea46f7b21800723ad7f32f1da9&quot;&gt;&lt;/div&gt;&lt;/textarea&gt;&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/1981602109964925116/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2014/06/pic-lcd-com-74hc595.html#comment-form' title='6 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/1981602109964925116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/1981602109964925116'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2014/06/pic-lcd-com-74hc595.html' title='PIC: LCD com 74HC595'/><author><name>Tiago Henrique</name><uri>http://www.blogger.com/profile/09385302997357057888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DEIRSvuNsOgEgq7JXn5GkdO-CDD6izks1hc_VMd7mTD4rBAOkMNByPefn7OZeLmaf0RIOHpI8xFnf1jmsc43yivpk3htzCpsOeCAbrh1krZWA3uMPVzq7rVBXNmJtN8/s1600/*'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-1221388085523805235</id><published>2014-04-25T15:29:00.002-03:00</published><updated>2014-05-04T13:48:10.941-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PIC"/><category scheme="http://www.blogger.com/atom/ns#" term="Projetos"/><title type='text'>PIC: Controlando Motores DC com L293D</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;h1 style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;PIC: C&lt;span style=&quot;font-weight: normal;&quot;&gt;ontrolando&lt;/span&gt; M&lt;span style=&quot;font-weight: normal;&quot;&gt;otores&lt;/span&gt; DC &lt;span style=&quot;font-weight: normal;&quot;&gt;com&lt;/span&gt; L293D&lt;/span&gt;&lt;/h1&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpUXYJTTFfNLDz8hyjfwxgJyOMzYmNnqZL6VTbJxeg2eGAScWbKHRfwXzoZCWNjoePGbYowzUH5rZkry45G6F3D86zO22tW179aDjzjuBv1RSzevI6OmXl2tRu-gPIIPQD2Z-1DmwLnTRC/s1600/PIC.L293D.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpUXYJTTFfNLDz8hyjfwxgJyOMzYmNnqZL6VTbJxeg2eGAScWbKHRfwXzoZCWNjoePGbYowzUH5rZkry45G6F3D86zO22tW179aDjzjuBv1RSzevI6OmXl2tRu-gPIIPQD2Z-1DmwLnTRC/s1600/PIC.L293D.png&quot; height=&quot;376&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;O CI &lt;/span&gt;&lt;a href=&quot;http://pdf.datasheetcatalog.com/datasheet/stmicroelectronics/1330.pdf&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot; target=&quot;_blank&quot;&gt;L293D&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;é um controlador que possui duas&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://pt.wikipedia.org/wiki/Ponte_H&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot; target=&quot;_blank&quot;&gt;Ponte-H&lt;/a&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;. Pode controlar motores de corrente contínua (DC) de 4.5V até 36V. O L293D suporta uma corrente constante de 600mA e uma corrente de pico de 1.2A. Portanto, tome cuidado para não utilizar motores que exijam correntes maiores que 600mA. Também possuem diodos de proteção internamente.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;É possível ligar até dois motores ( ou três, para isso consulte o datasheet ).&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;FUNCIONAMENTO:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; style=&quot;background-color: white; border-radius: 5px; border: 3px solid gray;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;b&gt;EN1&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;b&gt;IN1&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;b&gt;IN2&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;b&gt;Função&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style=&quot;color: #3d85c6; font-family: Trebuchet MS, sans-serif;&quot;&gt;H&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: #3d85c6; font-family: Trebuchet MS, sans-serif;&quot;&gt;L&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: #3d85c6; font-family: Trebuchet MS, sans-serif;&quot;&gt;H&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: #6aa84f; font-family: Trebuchet MS, sans-serif;&quot;&gt;Girar para um lado&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style=&quot;color: #3d85c6; font-family: Trebuchet MS, sans-serif;&quot;&gt;H&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: #3d85c6; font-family: Trebuchet MS, sans-serif;&quot;&gt;H&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: #3d85c6; font-family: Trebuchet MS, sans-serif;&quot;&gt;L&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: #6aa84f; font-family: Trebuchet MS, sans-serif;&quot;&gt;Girar para outro lado&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style=&quot;color: #3d85c6; font-family: Trebuchet MS, sans-serif;&quot;&gt;H&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: #3d85c6; font-family: Trebuchet MS, sans-serif;&quot;&gt;L&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: #3d85c6; font-family: Trebuchet MS, sans-serif;&quot;&gt;L&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: #6aa84f; font-family: Trebuchet MS, sans-serif;&quot;&gt;Motor1 Parado&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style=&quot;color: #3d85c6; font-family: Trebuchet MS, sans-serif;&quot;&gt;H&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: #3d85c6; font-family: Trebuchet MS, sans-serif;&quot;&gt;H&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: #3d85c6; font-family: Trebuchet MS, sans-serif;&quot;&gt;H&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: #6aa84f; font-family: Trebuchet MS, sans-serif;&quot;&gt;Motor1 Parado&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style=&quot;color: #3d85c6; font-family: Trebuchet MS, sans-serif;&quot;&gt;L&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: #3d85c6; font-family: Trebuchet MS, sans-serif;&quot;&gt;X&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: #3d85c6; font-family: Trebuchet MS, sans-serif;&quot;&gt;X&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: #6aa84f; font-family: Trebuchet MS, sans-serif;&quot;&gt;Motor1 Parado&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;/center&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Os pinos 2 e 7 são a entrada de controle para um motor. Os pinos 10 e 15 são a entrada de controle para um segundo motor.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Os pinos 3 e 6 são a saída do motor 1 e os pinos 11 e 14 para o motor 2.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Os pinos 1 e 9 habitam as saídas dos motores 1 e 2, respectivamente.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;O pino 16 é a alimentação do circuito interno, 5V.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;O pino 8 é a alimentação do motor, de 4.5V a 36V.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Neste projeto há 4 botões: um para acionar ou desacionar o motor, outro para alterar a direção da rotação e outros dois para aumentar e diminuir a velocidade.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;A velocidade do motor é controlada através do canal PWM do PIC conectando no pino 1 (EN1) do L293D.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Para alterar o giro, é&amp;nbsp;só&amp;nbsp;alterar os&amp;nbsp;níveis&amp;nbsp;lógicos&amp;nbsp;nos pinos 2 (IN1) e 7 (IN2), de acordo com a tabela acima.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;b&gt;DOWNLOAD:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Projeto: &lt;a href=&quot;https://app.box.com/s/8rjt7a9ypsrhl1aatu9k&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;motor_dc_com_l293d.rar&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;CÓDIGO:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #999999; font-family: Trebuchet MS, sans-serif; font-size: x-small;&quot;&gt;MikroC PRO PIC&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;pre class=&quot;mikroCCode&quot;&gt;/*
  Autor: Tiago Henrique
  MCU: PIC16F628A
  Clock: INTOSC 4MHz
  
  Bibliotecas:
  PWM
*/

//Pinos de ligacao do L293D
sbit L293D_M1_P1 at RA1_Bit;
sbit L293D_M1_P2 at RA2_Bit;
sbit L293D_M1_P1_Direction at TRISA1_Bit;
sbit L293D_M1_P2_Direction at TRISA2_Bit;

void L293D_Init()
{
    L293D_M1_P1_Direction = 0;
    L293D_M1_P2_Direction = 0;
    L293D_M1_P1 = 0;
    L293D_M1_P2 = 0;
    PWM1_Init( 500 );
    PWM1_Set_Duty( 127 ); //Velocidade inicial 50%
    PWM1_Start();
}

//direcao == 1 -&amp;gt; gira para um lado
//direcao == 2 -&amp;gt; gira para outro lado
//direcao == 0 -&amp;gt; motor parado
void L293D_Girar( char direcao )
{
    //Define as saidas dos pinos
    L293D_M1_P1 = direcao.B0;
    L293D_M1_P2 = direcao.B1;
}

void main() 
{
char velocidade = 255; //100%
char flags = 0;

    L293D_Init();
    
    CMCON = 7; //Desativa o comparador analogico
    
    //Define os pinos como entrada
    TRISB1_Bit = 1;  //botao de giro
    TRISA4_Bit = 1;  //botao de ligar/ desligar
    TRISB4_Bit = 1;  //botao aumentar velocidade
    TRISB5_Bit = 1;  //botao dimunir velocidade

    while(1)
    {
       //botao RB0 pressionado = girar para direita
       //botao RB0 liberado = girar para esquerda
       //botao RA4 pressionado = motor ligado
       //botao RA4 liberado = motor desligado
       //Essa linha de comando ficou show hein!!!!
       L293D_Girar( PORTA.B4 &amp;lt;&amp;lt; PORTB.B0 );
       
       //controlando a velocidade
       
       if( PORTB.B4 ) flags.B0 = 1;
       else if( PORTB.B5 ) flags.B1 = 1;

       if( !PORTB.B4 &amp;amp;&amp;amp; flags.B0 )
       {
           flags.B0 = 0;
           velocidade += 5;
           PWM1_Set_Duty( velocidade );
       }
       else if( !PORTB.B5 &amp;amp;&amp;amp; flags.B1 )
       {
           flags.B1 = 0;
           velocidade -= 5;
           PWM1_Set_Duty( velocidade );
       }
    }
}
&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/1221388085523805235/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2014/04/pic-controlando-motores-dc-com-l293d.html#comment-form' title='19 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/1221388085523805235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/1221388085523805235'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2014/04/pic-controlando-motores-dc-com-l293d.html' title='PIC: Controlando Motores DC com L293D'/><author><name>Tiago Henrique</name><uri>http://www.blogger.com/profile/09385302997357057888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DEIRSvuNsOgEgq7JXn5GkdO-CDD6izks1hc_VMd7mTD4rBAOkMNByPefn7OZeLmaf0RIOHpI8xFnf1jmsc43yivpk3htzCpsOeCAbrh1krZWA3uMPVzq7rVBXNmJtN8/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpUXYJTTFfNLDz8hyjfwxgJyOMzYmNnqZL6VTbJxeg2eGAScWbKHRfwXzoZCWNjoePGbYowzUH5rZkry45G6F3D86zO22tW179aDjzjuBv1RSzevI6OmXl2tRu-gPIIPQD2Z-1DmwLnTRC/s72-c/PIC.L293D.png" height="72" width="72"/><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6492043148642544250.post-4464217643451101334</id><published>2014-04-14T21:26:00.000-03:00</published><updated>2014-04-14T21:26:28.762-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Bibliotecas"/><category scheme="http://www.blogger.com/atom/ns#" term="PIC"/><title type='text'>One-Wire com 74HC595</title><content type='html'>&lt;h1 style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;O&lt;span style=&quot;font-weight: normal;&quot;&gt;ne&lt;/span&gt;-W&lt;span style=&quot;font-weight: normal;&quot;&gt;ire&lt;/span&gt; com 74&lt;span style=&quot;font-weight: normal;&quot;&gt;HC&lt;/span&gt;595&lt;/span&gt;&lt;/h1&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgJZ_ALSIJHdpuxWfX_mucl68DGn1XhgGySypmill866L1413-a5Ma4V2pECtKMT0qw-geF3Lta0ESaJ94gvipBo1yMd_oJRkeKKr2gRC17f1ykEiXi5cQtQ02PYsI-r_ZeDH2JTj4fR1s/s1600/PIC.OneWire.74HC595.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgJZ_ALSIJHdpuxWfX_mucl68DGn1XhgGySypmill866L1413-a5Ma4V2pECtKMT0qw-geF3Lta0ESaJ94gvipBo1yMd_oJRkeKKr2gRC17f1ykEiXi5cQtQ02PYsI-r_ZeDH2JTj4fR1s/s1600/PIC.OneWire.74HC595.png&quot; height=&quot;350&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Navegando pela internet, achei um projeto muito interessante na qual utilizava um registrador de deslocamento, o 74HC595, comunicando com o PIC através apenas de 1 pino.( One-Wire )&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Com um pequeno circuito RC, proporciona um tempo de atraso para a linha de dados. Pulsos muito curto significa que foi deslocado o bit 1. Pulsos um pouco mais longo, significa bit 0. Pulsos muito longo é usado para pulsar o latch atualizando as saídas do registrador.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Veja o projeto completo &lt;a href=&quot;http://www.romanblack.com/shift1.htm&quot; target=&quot;_blank&quot;&gt;aqui&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Observações:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Funciona com clock superior ou igual à 8MHz;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;O Pino Q0 do 74HC595 será sempre 0.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Criei uma biblioteca mais enxuta. Veja:
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;b&gt;BIBLIOTECA&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;color: #666666; font-family: Trebuchet MS, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;MikroC PRO PIC
&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;mikroCCode&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
extern sfr sbit Ow74HC595_Out;&lt;/div&gt;
extern sfr sbit Ow74HC595_Out_Direction;

void OneWire74HC595_Init()
{
    Ow74HC595_Out_Direction = 0;
    Ow74HC595_Out = 1;
}

void OneWire74HC595_Write( char wData )
{
char i;
    Ow74HC595_Out = 1;
    for( i = 0; i &amp;lt; 8; i++ )
    {
        if( wData.B7 )
        {
           Ow74HC595_Out = 0;
           Delay_us( 1 );
           Ow74HC595_Out = 1;
           Delay_us( 15 );
        }
        else
        {
           Ow74HC595_Out = 0;
           Delay_us( 15 );
           Ow74HC595_Out = 1;
           Delay_us( 30 );
        }
        
        wData &amp;lt;&amp;lt;= 1;
        Delay_us( 30 );
    }
    //Latch
    Ow74HC595_Out = 0;
    Delay_us( 200 );
    Ow74HC595_Out = 1;
    Delay_us( 300 );
}

&lt;/pre&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-family: Trebuchet MS, sans-serif;&quot;&gt;Exemplo:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;mikroCCode&quot;&gt;sbit Ow74HC595_Out at RD0_Bit;
sbit Ow74HC595_Out_Direction at TRISD0_Bit;

//copie e cole o código da biblioteca aqui!!!

void main()
{
char i = 0;
 OneWire74HC595_Init();
 
 while( 1 )
 {
     OneWire74HC595_Write( i++ );
     Delay_ms( 1000 );
 }
}
&lt;/pre&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;color: #38761d; font-family: Trebuchet MS, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;Referência: &lt;a href=&quot;http://www.romanblack.com/shift1.htm&quot;&gt;http://www.romanblack.com/shift1.htm&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://microcontrolandos.blogspot.com/feeds/4464217643451101334/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://microcontrolandos.blogspot.com/2014/04/one-wire-com-74hc595.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/4464217643451101334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6492043148642544250/posts/default/4464217643451101334'/><link rel='alternate' type='text/html' href='http://microcontrolandos.blogspot.com/2014/04/one-wire-com-74hc595.html' title='One-Wire com 74HC595'/><author><name>Tiago Henrique</name><uri>http://www.blogger.com/profile/09385302997357057888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DEIRSvuNsOgEgq7JXn5GkdO-CDD6izks1hc_VMd7mTD4rBAOkMNByPefn7OZeLmaf0RIOHpI8xFnf1jmsc43yivpk3htzCpsOeCAbrh1krZWA3uMPVzq7rVBXNmJtN8/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgJZ_ALSIJHdpuxWfX_mucl68DGn1XhgGySypmill866L1413-a5Ma4V2pECtKMT0qw-geF3Lta0ESaJ94gvipBo1yMd_oJRkeKKr2gRC17f1ykEiXi5cQtQ02PYsI-r_ZeDH2JTj4fR1s/s72-c/PIC.OneWire.74HC595.png" height="72" width="72"/><thr:total>0</thr:total></entry></feed>