{"id":98939,"date":"2021-05-11T21:49:28","date_gmt":"2021-05-11T15:49:28","guid":{"rendered":"http:\/\/rcl-radio.ru\/?p=98939"},"modified":"2022-01-08T01:49:13","modified_gmt":"2022-01-07T19:49:13","slug":"attiny13-lcd1602_i2c-arduino","status":"publish","type":"post","link":"http:\/\/rcl-radio.ru\/?p=98939","title":{"rendered":"ATtiny13 + LCD1602_I2C (Arduino)"},"content":{"rendered":"<p>\u041c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 ATtiny13 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 Flash \u043f\u0430\u043c\u044f\u0442\u044c\u044e (1 \u043a\u0411), \u0438\u043c\u0435\u0435\u0442 \u0432\u0441\u0435\u0433\u043e 8 \u0432\u044b\u0432\u043e\u0434\u043e\u0432, 2 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0438\u0442\u0430\u043d\u0438\u0435. \u0422\u0430\u043a \u0436\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 ATtiny13 \u0438\u043c\u0435\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043d\u0438\u0437\u043a\u0443\u044e \u0446\u0435\u043d\u0443. \u041d\u043e \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0434\u0430\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u0438 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0430\u043c\u0438. \u041d\u0430 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u043f\u043b\u0435\u0439 LCD1602 \u043e\u0441\u043d\u0430\u0449\u0435\u043d\u043d\u044b\u043c \u043c\u043e\u0434\u0443\u043b\u0435\u043c \u043d\u0430 PCF8574, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u0434\u0438\u0441\u043f\u043b\u0435\u0439 1602 \u043a \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0443 ATtiny13 \u0432\u0441\u0435\u0433\u043e \u043f\u043e \u0434\u0432\u0443\u043c \u043f\u0440\u043e\u0432\u043e\u0434\u0430\u043c SDA \u0438 SCL (I2C).<\/p>\n<p>\u041c\u043e\u0434\u0443\u043b\u044c \u043d\u0430 \u0431\u0430\u0437\u0435 PCF8574 \u0438\u043c\u0435\u0435\u0442 \u0442\u0430\u043a\u043e\u0435 \u0436\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u043e\u0432 \u043a\u0430\u043a \u0438 \u0432\u044b\u0432\u043e\u0434\u044b LCD1602, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044c \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u043f\u0430\u044f\u0442\u044c \u0432 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u044b\u0435 \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u044f \u0434\u0438\u0441\u043f\u043b\u0435\u044f LCD1602.<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr>\n<td style=\"width: 50%;\"><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-210532.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-98940\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-210532.png\" alt=\"\" width=\"599\" height=\"287\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-210532.png 599w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-210532-200x96.png 200w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-210532-500x240.png 500w\" sizes=\"auto, (max-width: 599px) 100vw, 599px\" \/><\/a><\/td>\n<td style=\"width: 50%;\"><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-210712.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-98941\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-210712.png\" alt=\"\" width=\"568\" height=\"272\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-210712.png 568w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-210712-200x96.png 200w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-210712-500x239.png 500w\" sizes=\"auto, (max-width: 568px) 100vw, 568px\" \/><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center;\">\u0421\u0445\u0435\u043c\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f<\/p>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-210304.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-98942\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-210304.png\" alt=\"\" width=\"832\" height=\"483\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-210304.png 832w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-210304-200x116.png 200w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-210304-500x290.png 500w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-210304-768x446.png 768w\" sizes=\"auto, (max-width: 832px) 100vw, 832px\" \/><\/a><\/p>\n<p>\u041c\u043e\u0434\u0443\u043b\u044c \u043d\u0430 PCF8574 \u043f\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f 5\u0412, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0448\u0438\u043d\u044b I2C \u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 \u0448\u0438\u043d\u044b \u0432 100 \u043a\u0413\u0446. \u0413\u0440\u0443\u043f\u043f\u0430 \u043f\u0435\u0440\u0435\u043c\u044b\u0447\u0435\u043a PJ1&#8230;JP3 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c \u0430\u0434\u0440\u0435\u0441 I2C (0\u044527 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e).<\/p>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-211722.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-98943\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-211722.png\" alt=\"\" width=\"542\" height=\"235\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-211722.png 542w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-211722-200x87.png 200w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-211722-500x217.png 500w\" sizes=\"auto, (max-width: 542px) 100vw, 542px\" \/><\/a><\/p>\n<p>\u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 LCD1602_I2C \u0441\u043e\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0441\u0445\u0435\u043c\u0443:<\/p>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-212841.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-98944\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-212841.png\" alt=\"\" width=\"436\" height=\"291\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-212841.png 436w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-212841-200x133.png 200w\" sizes=\"auto, (max-width: 436px) 100vw, 436px\" \/><\/a><\/p>\n<p>\u041a\u0430\u043a \u043f\u0440\u043e\u0448\u0438\u0442\u044c ATtiny13 \u0447\u0435\u0440\u0435\u0437 Arduino IDE \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0432\u00a0 <a href=\"http:\/\/rcl-radio.ru\/?p=98729\">http:\/\/rcl-radio.ru\/?p=98729<\/a><\/p>\n<p>\u041f\u0435\u0440\u0435\u0434 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u043e\u0439 \u0432 Arduino IDE \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 <strong>9,6 MHz internal<\/strong> \u0438 <strong>EEPROM not retained\u00a0<\/strong><\/p>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/1a970a55975116856d7df8f8fdc12c2b.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-98945\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/1a970a55975116856d7df8f8fdc12c2b.png\" alt=\"\" width=\"657\" height=\"299\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/1a970a55975116856d7df8f8fdc12c2b.png 657w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/1a970a55975116856d7df8f8fdc12c2b-200x91.png 200w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/1a970a55975116856d7df8f8fdc12c2b-500x228.png 500w\" sizes=\"auto, (max-width: 657px) 100vw, 657px\" \/><\/a><\/p>\n<div id=\"marketWidget\"><\/div>\n<pre class=\"actionscript\" style=\"font-family: monospace; font-size: 10px;\"><span style=\"color: #808080; font-style: italic;\">#define ADDR    0x27<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define SDA 3 \/\/ PB3<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define SCL 4 \/\/ PB4<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define RS      0<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define E       2<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define LED     3<\/span>\r\n\u00a0\r\nbyte led_b,h<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #cc66cc;\">8<\/span><span style=\"color: #66cc66;\">]<\/span>;\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> setup<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span>LED<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #808080; font-style: italic;\">\/\/ \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0443<\/span>\r\n    lcdInit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> loop<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n   lcdCurs<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">3<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   lcdString<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"ATtiny__13\"<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   lcdCurs<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span>,<span style=\"color: #cc66cc;\">3<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   lcdLong<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1234567890<\/span><span style=\"color: #66cc66;\">)<\/span>;  \r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> lcdSend<span style=\"color: #66cc66;\">(<\/span>bool rs, byte <span style=\"color: #0066cc;\">data<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>rs==<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span>RS<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span>RS<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #808080; font-style: italic;\">\/\/RS<\/span>\r\n\u00a0\r\n    del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">7<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">7<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">7<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">6<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">6<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">6<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    e_pin<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">3<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">7<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">7<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">6<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">6<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    e_pin<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> lcdInit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span> \r\n    del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    lcd<span style=\"color: #66cc66;\">(<\/span>0x03<span style=\"color: #66cc66;\">)<\/span>;delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">4500<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    lcd<span style=\"color: #66cc66;\">(<\/span>0x03<span style=\"color: #66cc66;\">)<\/span>;delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">4500<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    lcd<span style=\"color: #66cc66;\">(<\/span>0x03<span style=\"color: #66cc66;\">)<\/span>;delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">200<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n\u00a0\r\n    lcd<span style=\"color: #66cc66;\">(<\/span>0b00000010<span style=\"color: #66cc66;\">)<\/span>;del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    lcd<span style=\"color: #66cc66;\">(<\/span>0b00001100<span style=\"color: #66cc66;\">)<\/span>;del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    lcdClear<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #66cc66;\">}<\/span> \r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> lcdClear<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>lcd<span style=\"color: #66cc66;\">(<\/span>0b00000001<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> \r\n<span style=\"color: #0066cc;\">void<\/span> lcd<span style=\"color: #66cc66;\">(<\/span>uint8_t cmd<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>lcdSend<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #000000; font-weight: bold;\">true<\/span>, cmd<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #0066cc;\">void<\/span> lcdChar<span style=\"color: #66cc66;\">(<\/span>const char <span style=\"color: #0066cc;\">chr<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>lcdSend<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #000000; font-weight: bold;\">false<\/span>, <span style=\"color: #66cc66;\">(<\/span>uint8_t<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #0066cc;\">chr<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #0066cc;\">void<\/span> lcdString<span style=\"color: #66cc66;\">(<\/span>const char<span style=\"color: #66cc66;\">*<\/span> str<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span><span style=\"color: #b1b100;\">while<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">*<\/span>str <span style=\"color: #66cc66;\">!<\/span>= <span style=\"color: #ff0000;\">'<span style=\"color: #000099; font-weight: bold;\">\\0<\/span>'<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;lcdChar<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">*<\/span>str<span style=\"color: #66cc66;\">)<\/span>;str++;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #0066cc;\">void<\/span> del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1000<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #0066cc;\">void<\/span> e_pin<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #0066cc;\">E<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;del<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #0066cc;\">E<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> lcdCurs<span style=\"color: #66cc66;\">(<\/span>byte str, byte mesto<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>str==<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>lcd<span style=\"color: #66cc66;\">(<\/span>0b10000000+mesto<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>str==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>lcd<span style=\"color: #66cc66;\">(<\/span>0b11000000+mesto<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #66cc66;\">}<\/span>  \r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> lcdLong<span style=\"color: #66cc66;\">(<\/span>long int_x<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n   byte h<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #cc66cc;\">8<\/span><span style=\"color: #66cc66;\">]<\/span>;\r\n   long int_y=int_x;\r\n   <span style=\"color: #0066cc;\">int<\/span> i,i_kol;\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>int_x<span style=\"color: #66cc66;\">&lt;<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>int_x=<span style=\"color: #0066cc;\">abs<\/span><span style=\"color: #66cc66;\">(<\/span>int_x<span style=\"color: #66cc66;\">)<\/span>;lcdChar<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">'-'<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>    <span style=\"color: #808080; font-style: italic;\">\/\/ \u0435\u0441\u043b\u0438 \u043c\u0438\u043d\u0443\u0441<\/span>\r\n  <span style=\"color: #b1b100;\">for<\/span><span style=\"color: #66cc66;\">(<\/span>i_kol=<span style=\"color: #cc66cc;\">0<\/span>;int_x<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">0<\/span>;i_kol++<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>int_x=int_x<span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">10<\/span>;<span style=\"color: #66cc66;\">}<\/span>  <span style=\"color: #808080; font-style: italic;\">\/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043a\u043e\u043b-\u0432\u043e \u0446\u0438\u0444\u0440 \u0432 long<\/span>\r\n  <span style=\"color: #b1b100;\">for<\/span><span style=\"color: #66cc66;\">(<\/span>i=<span style=\"color: #cc66cc;\">0<\/span>;i<span style=\"color: #66cc66;\">&lt;<\/span>i_kol;i++<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>h<span style=\"color: #66cc66;\">[<\/span>i<span style=\"color: #66cc66;\">]<\/span>=int_y<span style=\"color: #66cc66;\">%<\/span>10; int_y=int_y<span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">10<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #808080; font-style: italic;\">\/\/ \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u043c \u0447\u0438\u0441\u043b\u043e \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0446\u0438\u0444\u0440\u044b<\/span>\r\n  <span style=\"color: #b1b100;\">for<\/span><span style=\"color: #66cc66;\">(<\/span>i=i_kol-<span style=\"color: #cc66cc;\">1<\/span>;i<span style=\"color: #66cc66;\">&gt;<\/span>=<span style=\"color: #cc66cc;\">0<\/span>;i--<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>lcdChar<span style=\"color: #66cc66;\">(<\/span>h<span style=\"color: #66cc66;\">[<\/span>i<span style=\"color: #66cc66;\">]<\/span> +<span style=\"color: #ff0000;\">'0'<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #808080; font-style: italic;\">\/\/ \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u0447\u0438\u0441\u043b\u0430 \u0432 char<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>i_kol==<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>lcdChar<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">'0'<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #808080; font-style: italic;\">\/\/ \u0435\u0441\u043b\u0438 long = 0, \u0442\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u043e\u043b\u044c<\/span>\r\n  <span style=\"color: #66cc66;\">}<\/span>  \r\n\u00a0\r\nbool i2c_read_bit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    bool i2c_bit = <span style=\"color: #cc66cc;\">1<\/span>;        \r\n    DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>;            \r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>; \r\n    DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;                \r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>PINB <span style=\"color: #66cc66;\">&gt;&gt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> i2c_bit=<span style=\"color: #cc66cc;\">0<\/span>;                            \r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>;  \r\n    DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;              \r\n    <span style=\"color: #b1b100;\">return<\/span> i2c_bit;  \r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\nbyte i2c_write_byte<span style=\"color: #66cc66;\">(<\/span>byte <span style=\"color: #0066cc;\">data<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #b1b100;\">for<\/span> <span style=\"color: #66cc66;\">(<\/span>byte i=<span style=\"color: #cc66cc;\">0<\/span>; i<span style=\"color: #66cc66;\">&lt;<\/span><span style=\"color: #cc66cc;\">8<\/span>; i++<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write_bit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>data<span style=\"color: #66cc66;\">&amp;<\/span>0x80<span style=\"color: #66cc66;\">)<\/span>==<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;data<span style=\"color: #66cc66;\">&lt;&lt;<\/span>=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">}<\/span>    \r\n    <span style=\"color: #b1b100;\">return<\/span> i2c_read_bit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>; \r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> i2c_write_bit<span style=\"color: #66cc66;\">(<\/span>byte b<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>b<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #b1b100;\">else<\/span><span style=\"color: #66cc66;\">{<\/span>DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;       \r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> i2c_start<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n     delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>;  \r\n     DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>; DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>; \r\n     delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>; \r\n     DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>;  PORTB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>;\r\n     delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>; \r\n     DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;  PORTB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;   \r\n     delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> i2c_stop<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>  <span style=\"color: #66cc66;\">{<\/span>\r\n     DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>;            \r\n     delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n     DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;               \r\n     delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>; \r\n     DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>;             \r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> i2c_write<span style=\"color: #66cc66;\">(<\/span>byte lcd<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n     i2c_start<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n     i2c_write_byte<span style=\"color: #66cc66;\">(<\/span>ADDR<span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n     i2c_write_byte<span style=\"color: #66cc66;\">(<\/span>lcd<span style=\"color: #66cc66;\">)<\/span>;\r\n     i2c_stop<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #66cc66;\">}<\/span><\/pre>\n<blockquote><p>\u0421\u043a\u0435\u0442\u0447 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 840 \u0431\u0430\u0439\u0442 (82%) \u043f\u0430\u043c\u044f\u0442\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0412\u0441\u0435\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e 1024 \u0431\u0430\u0439\u0442.<br \/>\n\u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 13 \u0431\u0430\u0439\u0442 (20%) \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f 51 \u0431\u0430\u0439\u0442 \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445. \u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c: 64 \u0431\u0430\u0439\u0442.<\/p><\/blockquote>\n<p>\u0414\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0441\u0442\u0440\u043e\u043a\u0438 <strong>String<\/strong> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <strong>lcdString()<\/strong>, \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0447\u0438\u0441\u043b\u0430 <strong>long<\/strong> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <strong>lcdLong()<\/strong>, \u0434\u043b\u044f <strong>char<\/strong> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 <strong>lcdChar()<\/strong>.<\/p>\n<p>\u041e\u0447\u0438\u0441\u0442\u043a\u0430 \u044d\u043a\u0440\u0430\u043d\u0430<strong> lcdClear()<\/strong>. \u041f\u043e\u0437\u0438\u0446\u0438\u044f \u043a\u0443\u0440\u0441\u043e\u0440\u0430 <strong>lcdCurs(0,1)<\/strong> , 0 &#8212; \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438, 1 &#8212; \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0435\u0441\u0442\u0430.<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b DS18B20, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0447\u0430\u0441\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0447\u0430\u0441\u043e\u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d DS1307 (DS3231).<\/p>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-213842.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-98946\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-213842.png\" alt=\"\" width=\"798\" height=\"351\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-213842.png 798w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-213842-200x88.png 200w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-213842-500x220.png 500w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-213842-768x338.png 768w\" sizes=\"auto, (max-width: 798px) 100vw, 798px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-214028.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-98947\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-214028.png\" alt=\"\" width=\"543\" height=\"284\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-214028.png 543w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-214028-200x105.png 200w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-214028-500x262.png 500w\" sizes=\"auto, (max-width: 543px) 100vw, 543px\" \/><\/a><\/p>\n<pre class=\"actionscript\" style=\"font-family: monospace; font-size: 10px;\"><span style=\"color: #808080; font-style: italic;\">#define ADDR    0x27<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define SDA 3 \/\/ PB3<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define SCL 4 \/\/ PB4<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define OUT 0 \/\/ PB0<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define RS      0<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define E       2<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define LED     3<\/span>\r\n\u00a0\r\nbyte led_b;\r\n<span style=\"color: #0066cc;\">int<\/span> t;\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> setup<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span>LED<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #808080; font-style: italic;\">\/\/ \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0443<\/span>\r\n    lcdInit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> loop<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n   t = read_temp<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   lcdCurs<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">3<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   lcdChar<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">84<\/span><span style=\"color: #66cc66;\">)<\/span>;lcdChar<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">69<\/span><span style=\"color: #66cc66;\">)<\/span>;lcdChar<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">77<\/span><span style=\"color: #66cc66;\">)<\/span>;lcdChar<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">80<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   lcdCurs<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span>,<span style=\"color: #cc66cc;\">3<\/span><span style=\"color: #66cc66;\">)<\/span>; \r\n   lcdChar<span style=\"color: #66cc66;\">(<\/span>t<span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">100<\/span> +<span style=\"color: #ff0000;\">'0'<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   lcdChar<span style=\"color: #66cc66;\">(<\/span>t<span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">%<\/span>10 +<span style=\"color: #ff0000;\">'0'<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   lcdChar<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">46<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   lcdChar<span style=\"color: #66cc66;\">(<\/span>t<span style=\"color: #66cc66;\">%<\/span>10 +<span style=\"color: #ff0000;\">'0'<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   lcdChar<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">32<\/span><span style=\"color: #66cc66;\">)<\/span>;lcdChar<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">67<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1000<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> lcdSend<span style=\"color: #66cc66;\">(<\/span>bool rs, byte <span style=\"color: #0066cc;\">data<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>rs==<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span>RS<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span>RS<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #808080; font-style: italic;\">\/\/RS<\/span>\r\n\u00a0\r\n    delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">7<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">7<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">7<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">6<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">6<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">6<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    e_pin<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">3<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">7<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">7<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">6<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">6<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    e_pin<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> lcdInit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span> \r\n    lcd<span style=\"color: #66cc66;\">(<\/span>0x03<span style=\"color: #66cc66;\">)<\/span>;delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    lcd<span style=\"color: #66cc66;\">(<\/span>0x03<span style=\"color: #66cc66;\">)<\/span>;delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    lcd<span style=\"color: #66cc66;\">(<\/span>0x03<span style=\"color: #66cc66;\">)<\/span>;delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">200<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    lcd<span style=\"color: #66cc66;\">(<\/span>0b00000010<span style=\"color: #66cc66;\">)<\/span>;delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    lcd<span style=\"color: #66cc66;\">(<\/span>0b00001100<span style=\"color: #66cc66;\">)<\/span>;delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    lcdClear<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #66cc66;\">}<\/span> \r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> lcdClear<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>lcd<span style=\"color: #66cc66;\">(<\/span>0b00000001<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> \r\n<span style=\"color: #0066cc;\">void<\/span> lcd<span style=\"color: #66cc66;\">(<\/span>uint8_t sett<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>lcdSend<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #000000; font-weight: bold;\">true<\/span>, sett<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #0066cc;\">void<\/span> lcdChar<span style=\"color: #66cc66;\">(<\/span>const char <span style=\"color: #0066cc;\">chr<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>lcdSend<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #000000; font-weight: bold;\">false<\/span>, <span style=\"color: #66cc66;\">(<\/span>uint8_t<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #0066cc;\">chr<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #0066cc;\">void<\/span> e_pin<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #0066cc;\">E<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #0066cc;\">E<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> lcdCurs<span style=\"color: #66cc66;\">(<\/span>byte str, byte mesto<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>str==<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>lcd<span style=\"color: #66cc66;\">(<\/span>0b10000000+mesto<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>str==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>lcd<span style=\"color: #66cc66;\">(<\/span>0b11000000+mesto<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #66cc66;\">}<\/span>  \r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/ i2c \/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n\u00a0\r\nbool i2c_read_bit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    bool i2c_bit = <span style=\"color: #cc66cc;\">1<\/span>;        \r\n    DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>;            \r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>; \r\n    DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;                \r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>PINB <span style=\"color: #66cc66;\">&gt;&gt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> i2c_bit=<span style=\"color: #cc66cc;\">0<\/span>;                            \r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>;  \r\n    DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;              \r\n    <span style=\"color: #b1b100;\">return<\/span> i2c_bit;  \r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\nbyte i2c_write_byte<span style=\"color: #66cc66;\">(<\/span>byte <span style=\"color: #0066cc;\">data<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #b1b100;\">for<\/span> <span style=\"color: #66cc66;\">(<\/span>byte i=<span style=\"color: #cc66cc;\">0<\/span>; i<span style=\"color: #66cc66;\">&lt;<\/span><span style=\"color: #cc66cc;\">8<\/span>; i++<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write_bit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>data<span style=\"color: #66cc66;\">&amp;<\/span>0x80<span style=\"color: #66cc66;\">)<\/span>==<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;data<span style=\"color: #66cc66;\">&lt;&lt;<\/span>=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">}<\/span>    \r\n    <span style=\"color: #b1b100;\">return<\/span> i2c_read_bit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>; \r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> i2c_write_bit<span style=\"color: #66cc66;\">(<\/span>byte b<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>b<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #b1b100;\">else<\/span><span style=\"color: #66cc66;\">{<\/span>DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;       \r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> i2c_start<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n     delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>;  \r\n     DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>; DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>; \r\n     delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>; \r\n     DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>;  PORTB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>;\r\n     delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>; \r\n     DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;  PORTB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;   \r\n     delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> i2c_stop<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>  <span style=\"color: #66cc66;\">{<\/span>\r\n     DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>;            \r\n     delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n     DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;               \r\n     delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>; \r\n     DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>;             \r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> i2c_write<span style=\"color: #66cc66;\">(<\/span>byte lcd<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n     i2c_start<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n     i2c_write_byte<span style=\"color: #66cc66;\">(<\/span>ADDR<span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n     i2c_write_byte<span style=\"color: #66cc66;\">(<\/span>lcd<span style=\"color: #66cc66;\">)<\/span>;\r\n     i2c_stop<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #66cc66;\">}<\/span>   \r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/\/\/\/ ds18b20 \/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ reset<\/span>\r\nuint8_t therm_reset<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    uint8_t i;\r\n    PORTB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> OUT<span style=\"color: #66cc66;\">)<\/span>;\r\n    DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> OUT<span style=\"color: #66cc66;\">)<\/span>;\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">480<\/span><span style=\"color: #66cc66;\">)<\/span>;  \r\n    DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> OUT<span style=\"color: #66cc66;\">)<\/span>;\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">60<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    i=<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>PINB <span style=\"color: #66cc66;\">&gt;&gt;<\/span> OUT<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">420<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">return<\/span> i;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ write bit<\/span>\r\n<span style=\"color: #0066cc;\">void<\/span> therm_write_bit<span style=\"color: #66cc66;\">(<\/span>uint8_t bit<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    PORTB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> OUT<span style=\"color: #66cc66;\">)<\/span>;\r\n    DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> OUT<span style=\"color: #66cc66;\">)<\/span>;\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>bit<span style=\"color: #66cc66;\">)<\/span> DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> OUT<span style=\"color: #66cc66;\">)<\/span>;\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">60<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> OUT<span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ read bit<\/span>\r\nuint8_t therm_read_bit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">void<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    uint8_t bit=<span style=\"color: #cc66cc;\">0<\/span>;\r\n    PORTB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> OUT<span style=\"color: #66cc66;\">)<\/span>;\r\n    DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> OUT<span style=\"color: #66cc66;\">)<\/span>;\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> OUT<span style=\"color: #66cc66;\">)<\/span>;\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">14<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>PINB <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> OUT<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span> bit=<span style=\"color: #cc66cc;\">1<\/span>;\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">45<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">return<\/span> bit;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ read byte<\/span>\r\nuint8_t therm_read_byte<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">void<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    uint8_t i=<span style=\"color: #cc66cc;\">8<\/span>, n=<span style=\"color: #cc66cc;\">0<\/span>;\r\n    <span style=\"color: #b1b100;\">while<\/span><span style=\"color: #66cc66;\">(<\/span>i--<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>n<span style=\"color: #66cc66;\">&gt;&gt;<\/span>=<span style=\"color: #cc66cc;\">1<\/span>;n<span style=\"color: #66cc66;\">|<\/span>=<span style=\"color: #66cc66;\">(<\/span>therm_read_bit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">7<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">return<\/span> n;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ write byte<\/span>\r\n<span style=\"color: #0066cc;\">void<\/span> therm_write_byte<span style=\"color: #66cc66;\">(<\/span>uint8_t byte<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    uint8_t i=<span style=\"color: #cc66cc;\">8<\/span>;\r\n    <span style=\"color: #b1b100;\">while<\/span><span style=\"color: #66cc66;\">(<\/span>i--<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>therm_write_bit<span style=\"color: #66cc66;\">(<\/span>byte<span style=\"color: #66cc66;\">&amp;<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;byte <span style=\"color: #66cc66;\">&gt;&gt;<\/span>= <span style=\"color: #cc66cc;\">1<\/span>;\r\n    <span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ read temp<\/span>\r\n<span style=\"color: #0066cc;\">int<\/span> read_temp<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    uint8_t temperature<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">]<\/span>;\r\n    <span style=\"color: #0066cc;\">int<\/span> temper;\r\n    therm_reset<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    therm_write_byte<span style=\"color: #66cc66;\">(<\/span>0xCC<span style=\"color: #66cc66;\">)<\/span>;\r\n    therm_write_byte<span style=\"color: #66cc66;\">(<\/span>0x44<span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">while<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">!<\/span>therm_read_bit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    therm_reset<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    therm_write_byte<span style=\"color: #66cc66;\">(<\/span>0xCC<span style=\"color: #66cc66;\">)<\/span>;\r\n    therm_write_byte<span style=\"color: #66cc66;\">(<\/span>0xBE<span style=\"color: #66cc66;\">)<\/span>;\r\n    temperature<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">]<\/span>=therm_read_byte<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    temperature<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">]<\/span>=therm_read_byte<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    therm_reset<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    temper = <span style=\"color: #66cc66;\">(<\/span>temperature<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">]<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> <span style=\"color: #cc66cc;\">8<\/span> <span style=\"color: #66cc66;\">|<\/span> temperature<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">]<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">*<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">16<\/span>;\r\n    <span style=\"color: #b1b100;\">return<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">int<\/span><span style=\"color: #66cc66;\">)<\/span>temper;\r\n<span style=\"color: #66cc66;\">}<\/span><\/pre>\n<blockquote><p>\u0421\u043a\u0435\u0442\u0447 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 946 \u0431\u0430\u0439\u0442 (92%) \u043f\u0430\u043c\u044f\u0442\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0412\u0441\u0435\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e 1024 \u0431\u0430\u0439\u0442.<br \/>\n\u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 3 \u0431\u0430\u0439\u0442 (4%) \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f 61 \u0431\u0430\u0439\u0442 \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445. \u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c: 64 \u0431\u0430\u0439\u0442.<\/p><\/blockquote>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-214504.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-98949\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-214504.png\" alt=\"\" width=\"672\" height=\"308\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-214504.png 672w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-214504-200x92.png 200w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-214504-500x229.png 500w\" sizes=\"auto, (max-width: 672px) 100vw, 672px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-214655.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-98950\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-214655.png\" alt=\"\" width=\"460\" height=\"399\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-214655.png 460w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-05-11-214655-200x173.png 200w\" sizes=\"auto, (max-width: 460px) 100vw, 460px\" \/><\/a><\/p>\n<pre class=\"actionscript\" style=\"font-family: monospace; font-size: 10px;\"><span style=\"color: #808080; font-style: italic;\">#define ADDR    0x27<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define ADDR_T  0b1101000<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define SDA 3 \/\/ PB3<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define SCL 4 \/\/ PB4<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define RS      0<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define E       2<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define LED     3<\/span>\r\n\u00a0\r\nbyte led_b,init_t;\r\n\u00a0\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> setup<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    lcdInit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span>LED<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #808080; font-style: italic;\">\/\/ \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0443<\/span>\r\n  <span style=\"color: #808080; font-style: italic;\">\/\/   set_time(21,2,5,11,15,47,0);\/\/ \u0433\u043e\u0434 00-99, \u0414\u041d 1-7 (1=\u0412\u0421), \u043c\u0435\u0441\u044f\u0446 1-12, \u0434\u0430\u0442\u0430 1-31, \u0447\u0430\u0441 0-23, \u043c\u0438\u043d\u0443\u0442\u044b 0-59, \u0441\u0435\u043a\u0443\u043d\u0434\u044b 0-59<\/span>\r\n   delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">500<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> loop<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n   byte sec =  <span style=\"color: #66cc66;\">(<\/span>ds_read<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> 0x0F<span style=\"color: #66cc66;\">)<\/span> + <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>ds_read<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> 0x70<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">*<\/span> <span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   byte <span style=\"color: #0066cc;\">min<\/span> =  <span style=\"color: #66cc66;\">(<\/span>ds_read<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> 0x0F<span style=\"color: #66cc66;\">)<\/span> + <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>ds_read<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> 0x70<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">*<\/span> <span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   byte hour = <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>ds_read<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> 0x0F<span style=\"color: #66cc66;\">)<\/span> + <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>ds_read<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> 0x70<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">*<\/span> <span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   byte datat = <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>ds_read<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> 0x0F<span style=\"color: #66cc66;\">)<\/span> + <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>ds_read<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> 0x70<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">*<\/span> <span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   byte mont = <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>ds_read<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> 0x0F<span style=\"color: #66cc66;\">)<\/span> + <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>ds_read<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> 0x70<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">*<\/span> <span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   byte year = <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>ds_read<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">6<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> 0x0F<span style=\"color: #66cc66;\">)<\/span> + <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>ds_read<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">6<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> 0x70<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">*<\/span> <span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   lcdCurs<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   lcdChar<span style=\"color: #66cc66;\">(<\/span>hour<span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">10<\/span>+<span style=\"color: #ff0000;\">'0'<\/span><span style=\"color: #66cc66;\">)<\/span>;lcdChar<span style=\"color: #66cc66;\">(<\/span>hour<span style=\"color: #66cc66;\">%<\/span>10+<span style=\"color: #ff0000;\">'0'<\/span><span style=\"color: #66cc66;\">)<\/span>;lcdChar<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">58<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   lcdChar<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">min<\/span><span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">10<\/span>+<span style=\"color: #ff0000;\">'0'<\/span><span style=\"color: #66cc66;\">)<\/span>;lcdChar<span style=\"color: #66cc66;\">(<\/span>min<span style=\"color: #66cc66;\">%<\/span>10+<span style=\"color: #ff0000;\">'0'<\/span><span style=\"color: #66cc66;\">)<\/span>;lcdChar<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">58<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   lcdChar<span style=\"color: #66cc66;\">(<\/span>sec<span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">10<\/span>+<span style=\"color: #ff0000;\">'0'<\/span><span style=\"color: #66cc66;\">)<\/span>;lcdChar<span style=\"color: #66cc66;\">(<\/span>sec<span style=\"color: #66cc66;\">%<\/span>10+<span style=\"color: #ff0000;\">'0'<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   lcdCurs<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span>,<span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span>; \r\n   lcdChar<span style=\"color: #66cc66;\">(<\/span>datat<span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">10<\/span>+<span style=\"color: #ff0000;\">'0'<\/span><span style=\"color: #66cc66;\">)<\/span>;lcdChar<span style=\"color: #66cc66;\">(<\/span>datat<span style=\"color: #66cc66;\">%<\/span>10+<span style=\"color: #ff0000;\">'0'<\/span><span style=\"color: #66cc66;\">)<\/span>;lcdChar<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">45<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   lcdChar<span style=\"color: #66cc66;\">(<\/span>mont<span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">10<\/span>+<span style=\"color: #ff0000;\">'0'<\/span><span style=\"color: #66cc66;\">)<\/span>;lcdChar<span style=\"color: #66cc66;\">(<\/span>mont<span style=\"color: #66cc66;\">%<\/span>10+<span style=\"color: #ff0000;\">'0'<\/span><span style=\"color: #66cc66;\">)<\/span>;lcdChar<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">45<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   lcdChar<span style=\"color: #66cc66;\">(<\/span>year<span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">10<\/span>+<span style=\"color: #ff0000;\">'0'<\/span><span style=\"color: #66cc66;\">)<\/span>;lcdChar<span style=\"color: #66cc66;\">(<\/span>year<span style=\"color: #66cc66;\">%<\/span>10+<span style=\"color: #ff0000;\">'0'<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n   delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">200<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> lcdSend<span style=\"color: #66cc66;\">(<\/span>bool rs, byte <span style=\"color: #0066cc;\">data<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>rs==<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span>RS<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span>RS<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #808080; font-style: italic;\">\/\/RS<\/span>\r\n\u00a0\r\n    delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">7<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">7<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">7<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">6<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">6<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">6<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    e_pin<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">3<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">7<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">7<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">6<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">6<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span> <span style=\"color: #66cc66;\">&gt;&gt;<\/span> <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> ==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    e_pin<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> lcdInit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span> \r\n    lcd<span style=\"color: #66cc66;\">(<\/span>0x03<span style=\"color: #66cc66;\">)<\/span>;delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    lcd<span style=\"color: #66cc66;\">(<\/span>0x03<span style=\"color: #66cc66;\">)<\/span>;delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    lcd<span style=\"color: #66cc66;\">(<\/span>0x03<span style=\"color: #66cc66;\">)<\/span>;delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">200<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    lcd<span style=\"color: #66cc66;\">(<\/span>0b00000010<span style=\"color: #66cc66;\">)<\/span>;delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    lcd<span style=\"color: #66cc66;\">(<\/span>0b00001100<span style=\"color: #66cc66;\">)<\/span>;delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    lcdClear<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #66cc66;\">}<\/span> \r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> lcdClear<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>lcd<span style=\"color: #66cc66;\">(<\/span>0b00000001<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span> \r\n<span style=\"color: #0066cc;\">void<\/span> lcd<span style=\"color: #66cc66;\">(<\/span>uint8_t sett<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>lcdSend<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #000000; font-weight: bold;\">true<\/span>, sett<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #0066cc;\">void<\/span> lcdChar<span style=\"color: #66cc66;\">(<\/span>const char <span style=\"color: #0066cc;\">chr<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>lcdSend<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #000000; font-weight: bold;\">false<\/span>, <span style=\"color: #66cc66;\">(<\/span>uint8_t<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #0066cc;\">chr<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #0066cc;\">void<\/span> e_pin<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #0066cc;\">E<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;i2c_write<span style=\"color: #66cc66;\">(<\/span>led_b <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #0066cc;\">E<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> lcdCurs<span style=\"color: #66cc66;\">(<\/span>byte str, byte mesto<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>str==<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>lcd<span style=\"color: #66cc66;\">(<\/span>0b10000000+mesto<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>str==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>lcd<span style=\"color: #66cc66;\">(<\/span>0b11000000+mesto<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #66cc66;\">}<\/span>  \r\n\u00a0\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/ i2c \/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n\u00a0\r\nbool i2c_read_bit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    bool i2c_bit = <span style=\"color: #cc66cc;\">1<\/span>;        \r\n    DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>;            \r\n  <span style=\"color: #808080; font-style: italic;\">\/\/  delayMicroseconds(10); <\/span>\r\n    DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;                \r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>PINB <span style=\"color: #66cc66;\">&gt;&gt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&amp;<\/span> <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> i2c_bit=<span style=\"color: #cc66cc;\">0<\/span>;                            \r\n  <span style=\"color: #808080; font-style: italic;\">\/\/  delayMicroseconds(10);  <\/span>\r\n    DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;              \r\n    <span style=\"color: #b1b100;\">return<\/span> i2c_bit;  \r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\nbyte i2c_write_byte<span style=\"color: #66cc66;\">(<\/span>byte <span style=\"color: #0066cc;\">data<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #b1b100;\">for<\/span> <span style=\"color: #66cc66;\">(<\/span>byte i=<span style=\"color: #cc66cc;\">0<\/span>; i<span style=\"color: #66cc66;\">&lt;<\/span><span style=\"color: #cc66cc;\">8<\/span>; i++<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i2c_write_bit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>data<span style=\"color: #66cc66;\">&amp;<\/span>0x80<span style=\"color: #66cc66;\">)<\/span>==<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;data<span style=\"color: #66cc66;\">&lt;&lt;<\/span>=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">}<\/span>    \r\n    <span style=\"color: #b1b100;\">return<\/span> i2c_read_bit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>; \r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\nbyte i2c_read_byte<span style=\"color: #66cc66;\">(<\/span>byte a<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    byte i, <span style=\"color: #0066cc;\">data<\/span>=<span style=\"color: #cc66cc;\">0<\/span>;                \r\n    <span style=\"color: #b1b100;\">for<\/span><span style=\"color: #66cc66;\">(<\/span>i=<span style=\"color: #cc66cc;\">0<\/span>; i<span style=\"color: #66cc66;\">&lt;<\/span><span style=\"color: #cc66cc;\">8<\/span>; i++<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span><span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">!<\/span>i2c_read_bit<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #0066cc;\">data<\/span>++;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>i<span style=\"color: #66cc66;\">!<\/span>=<span style=\"color: #cc66cc;\">7<\/span><span style=\"color: #66cc66;\">)<\/span> data<span style=\"color: #66cc66;\">&lt;&lt;<\/span>=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">}<\/span>        \r\n    i2c_write_bit<span style=\"color: #66cc66;\">(<\/span>a<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #b1b100;\">return<\/span> <span style=\"color: #0066cc;\">data<\/span>;  \r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> i2c_write_bit<span style=\"color: #66cc66;\">(<\/span>byte b<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>b<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #b1b100;\">else<\/span><span style=\"color: #66cc66;\">{<\/span>DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;       \r\n    delayMicroseconds<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> i2c_start<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n     DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>; DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;\r\n     DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>;  PORTB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>;\r\n     DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;  PORTB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> i2c_stop<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>  <span style=\"color: #66cc66;\">{<\/span>\r\n     DDRB <span style=\"color: #66cc66;\">|<\/span>= <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>;           \r\n     DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SCL<span style=\"color: #66cc66;\">)<\/span>;            \r\n     DDRB <span style=\"color: #66cc66;\">&amp;<\/span>= ~<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&lt;&lt;<\/span> SDA<span style=\"color: #66cc66;\">)<\/span>;           \r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> i2c_write<span style=\"color: #66cc66;\">(<\/span>byte lcd<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n     i2c_start<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n     i2c_write_byte<span style=\"color: #66cc66;\">(<\/span>ADDR<span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n     i2c_write_byte<span style=\"color: #66cc66;\">(<\/span>lcd<span style=\"color: #66cc66;\">)<\/span>;\r\n     i2c_stop<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #66cc66;\">}<\/span>   \r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> ds_write<span style=\"color: #66cc66;\">(<\/span>byte reg, byte <span style=\"color: #0066cc;\">data<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n     i2c_start<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n     i2c_write_byte<span style=\"color: #66cc66;\">(<\/span>ADDR_T<span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n     i2c_write_byte<span style=\"color: #66cc66;\">(<\/span>reg<span style=\"color: #66cc66;\">)<\/span>;\r\n     i2c_write_byte<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">data<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n     i2c_stop<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #66cc66;\">}<\/span>  \r\n\u00a0\r\nbyte ds_read<span style=\"color: #66cc66;\">(<\/span>byte reg<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n     byte dat=<span style=\"color: #cc66cc;\">0<\/span>;\r\n     i2c_start<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n     i2c_write_byte<span style=\"color: #66cc66;\">(<\/span>ADDR_T<span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n     i2c_write_byte<span style=\"color: #66cc66;\">(<\/span>reg<span style=\"color: #66cc66;\">)<\/span>;\r\n     i2c_start<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>; \r\n     i2c_write_byte<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">(<\/span>ADDR_T<span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">|<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>; \r\n     dat = i2c_read_byte<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n     i2c_stop<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n     <span style=\"color: #b1b100;\">return<\/span> dat;\r\n  <span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> set_time<span style=\"color: #66cc66;\">(<\/span>byte years, byte days, byte monts, byte datas, byte hours ,byte minute, byte second<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    ds_write<span style=\"color: #66cc66;\">(<\/span>0x00,<span style=\"color: #66cc66;\">(<\/span>second<span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span>+second<span style=\"color: #66cc66;\">%<\/span>10<span style=\"color: #66cc66;\">)<\/span>;\r\n    ds_write<span style=\"color: #66cc66;\">(<\/span>0x01,<span style=\"color: #66cc66;\">(<\/span>minute<span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span>+minute<span style=\"color: #66cc66;\">%<\/span>10<span style=\"color: #66cc66;\">)<\/span>;\r\n    ds_write<span style=\"color: #66cc66;\">(<\/span>0x02,<span style=\"color: #66cc66;\">(<\/span>hours<span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span>+hours<span style=\"color: #66cc66;\">%<\/span>10<span style=\"color: #66cc66;\">)<\/span>;\r\n    ds_write<span style=\"color: #66cc66;\">(<\/span>0x03,days<span style=\"color: #66cc66;\">)<\/span>;\r\n    ds_write<span style=\"color: #66cc66;\">(<\/span>0x04,<span style=\"color: #66cc66;\">(<\/span>datas<span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span>+datas<span style=\"color: #66cc66;\">%<\/span>10<span style=\"color: #66cc66;\">)<\/span>;\r\n    ds_write<span style=\"color: #66cc66;\">(<\/span>0x05,<span style=\"color: #66cc66;\">(<\/span>monts<span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span>+monts<span style=\"color: #66cc66;\">%<\/span>10<span style=\"color: #66cc66;\">)<\/span>;\r\n    ds_write<span style=\"color: #66cc66;\">(<\/span>0x06,<span style=\"color: #66cc66;\">(<\/span>years<span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">&lt;&lt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span>+years<span style=\"color: #66cc66;\">%<\/span>10<span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #66cc66;\">}<\/span><\/pre>\n<blockquote><p>\u0421\u043a\u0435\u0442\u0447 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 950 \u0431\u0430\u0439\u0442 (92%) \u043f\u0430\u043c\u044f\u0442\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0412\u0441\u0435\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e 1024 \u0431\u0430\u0439\u0442.<br \/>\n\u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 1 \u0431\u0430\u0439\u0442 (1%) \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f 63 \u0431\u0430\u0439\u0442 \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445. \u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c: 64 \u0431\u0430\u0439\u0442.<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>\u041c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 ATtiny13 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 Flash \u043f\u0430\u043c\u044f\u0442\u044c\u044e (1 \u043a\u0411), \u0438\u043c\u0435\u0435\u0442 \u0432\u0441\u0435\u0433\u043e 8 \u0432\u044b\u0432\u043e\u0434\u043e\u0432, 2 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0438\u0442\u0430\u043d\u0438\u0435. \u0422\u0430\u043a \u0436\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 ATtiny13 \u0438\u043c\u0435\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043d\u0438\u0437\u043a\u0443\u044e \u0446\u0435\u043d\u0443. \u041d\u043e \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0434\u0430\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u0438 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0430\u043c\u0438. \u041d\u0430 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u043f\u043b\u0435\u0439 LCD1602 \u043e\u0441\u043d\u0430\u0449\u0435\u043d\u043d\u044b\u043c \u043c\u043e\u0434\u0443\u043b\u0435\u043c \u043d\u0430 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":98949,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[239,21],"tags":[],"class_list":["post-98939","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-21"],"views":7863,"_links":{"self":[{"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts\/98939","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=98939"}],"version-history":[{"count":10,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts\/98939\/revisions"}],"predecessor-version":[{"id":111133,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts\/98939\/revisions\/111133"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/media\/98949"}],"wp:attachment":[{"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=98939"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=98939"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=98939"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}