{"id":326571,"date":"2021-07-16T21:00:11","date_gmt":"2021-07-16T21:00:11","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=326571"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=326571","title":{"rendered":"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u044b\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 IN74HC595AD"},"content":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p>\u0427\u0430\u0441\u0442\u043e \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0440\u0430\u0434\u0438\u043e-\u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043b\u0438\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u0441 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u043d\u044b\u043c\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435 \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b -55\u2026+55 \u00baC. \u0418 \u044d\u0442\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0445 \u043f\u0430\u043d\u0435\u043b\u0435\u0439 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c. \u0420\u0430\u0431\u043e\u0447\u0438\u0435 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u0416\u041a \u0438\u043d\u0434\u0438\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 -20&#8230;+70 \u00baC  , \u043b\u044e\u043c\u0438\u043d\u0438\u0441\u0446\u0435\u043d\u0442\u043d\u044b\u0445 \u0433\u0430\u0437\u043e\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u044b\u0445 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 -40..+70 \u00baC. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u043f\u0430\u043d\u0435\u043b\u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c-\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0445 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432, \u043e\u0434\u043d\u043e\u0446\u0432\u0435\u0442\u043d\u044b\u0445 \u0438 \u0434\u0432\u0443\u0445\u0446\u0432\u0435\u0442\u043d\u044b\u0445 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u0432. \u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0430\u043a\u0438\u0445 \u043e\u0440\u0433\u0430\u043d\u043e\u0432 \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u0441\u0445\u0435\u043c\u043e\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0415\u0441\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0445\u043e\u0447\u0443 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0441\u0432\u043e\u0439 \u043e\u043f\u044b\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0445\u0435\u043c\u043d\u043e-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<h3>C\u0445\u0435\u043c\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438<\/h3>\n<p>\u041d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u043c\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0445 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432, \u043e\u0434\u043d\u043e\u0446\u0432\u0435\u0442\u043d\u044b\u0445 \u0438 \u0434\u0432\u0443\u0445\u0446\u0432\u0435\u0442\u043d\u044b\u0445 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u0432 \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043d\u0430 \u043b\u0438\u0446\u0435\u0432\u0443\u044e \u043f\u0430\u043d\u0435\u043b\u044c. \u0412\u0441\u0435 \u0443\u0437\u043b\u044b \u0441\u043e\u0431\u0440\u0430\u043d\u044b \u043d\u0430 \u043e\u0442\u0435\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0430\u0446\u0438\u0438. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0445 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u044b 3\u041b\u0421324\u04111, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u0443\u0444\u0435\u0440\u043d\u044b\u0445 \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u044b\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 IN74HC595AD. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u044b \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c. \u0414\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u043c\u0438 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0430\u043c\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e 5 \u0432\u044b\u0432\u043e\u0434\u043e\u0432 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 (\u043c\u043e\u0436\u043d\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0434\u043e \u0442\u0440\u0435\u0445, \u0435\u0441\u043b\u0438 OE \u0432\u044b\u0445\u043e\u0434 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a \u043c\u0438\u043d\u0443\u0441\u0443, \u0430 MR \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a \u043f\u043b\u044e\u0441\u0443), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043a \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0430\u043c IN74HC595AD. \u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u044d\u0442\u0438\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u0434\u0430\u0442\u0430\u0448\u0438\u0442\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u0443\u044e \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0443, \u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0435 1.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c46\/4aa\/992\/c464aa9920881efe9d5a357bc8836282.jpg\" width=\"567\" height=\"621\"><figcaption><\/figcaption><\/figure>\n<p>\u041c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u044b \u0438\u043c\u0435\u044e\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u0445\u043e\u0434 Q7\u2019, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043a\u043e \u0432\u0445\u043e\u0434\u0443 DS \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u044b \u0434\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0446\u0435\u043b\u043e\u0439 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u044b\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442 \u043e\u0434\u043d\u043e\u0439 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u044b \u043a \u0434\u0440\u0443\u0433\u043e\u0439. \u0415\u0441\u043b\u0438 \u043a\u043e\u043b-\u0432\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0438\u0442 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0443 \u043f\u0440\u0435\u0432\u044b\u0441\u0438\u0442 8, \u0442\u043e \u044d\u0442\u0430 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0430 \u043d\u0430\u0447\u043d\u0435\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043d\u044f\u0442\u044b\u0439 \u0431\u0430\u0439\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u044b \u0447\u0435\u0440\u0435\u0437 \u0432\u044b\u0445\u043e\u0434 Q7\u2019, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u0442\u0440\u043e\u0431\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c \u0437\u0430\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0435\u043d\u044b. \u0421\u0445\u0435\u043c\u0430, \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u0430\u044f \u043d\u0438\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b-\u0432\u043e \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432, \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0440\u0430\u0431\u043e\u0442\u044b. \u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442, \u0433\u0434\u0435 \u043a\u043e\u043b-\u0432\u043e \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442 63 \u0448\u0442\u0443\u043a \u0438 \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u0435\u0434\u0435\u043b, \u043f\u0440\u0438\u0447\u0435\u043c \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043f\u0430\u043d\u0435\u043b\u0438))) \u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u044b.<\/p>\n<h3>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438<\/h3>\n<p>\u0414\u043b\u044f \u0443\u0434\u043e\u0431\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0421++. \u0418\u0435\u0440\u0430\u0440\u0445\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u0433\u043e \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 Indicator, \u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u044e\u0442\u0441\u044f \u043a\u043b\u0430\u0441\u0441\u044b Led (\u043e\u0434\u043d\u043e\u0446\u0432\u0435\u0442\u043d\u044b\u0439 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434), LedDual (\u0434\u0432\u0443\u0445\u0446\u0432\u0435\u0442\u043d\u044b\u0439 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434), Digit (\u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440). \u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 Indication, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043c\u0435\u0442\u043e\u0434 Show \u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u044b Indication_v1, Indication_v2 \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u044b Update \u0438 Test \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043f\u0430\u043d\u0435\u043b\u0438 \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 \u043e\u0434\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435.<\/p>\n<p>\u0412 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0435 1 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f Show \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 Indication. \u042d\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441\u043e \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u044b\u043c\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043c\u0438 \u0438 \u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0443\u0434\u043e\u0431\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432. \u0426\u0438\u043a\u043b for \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c j \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u0442 \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b Indicator. \u0426\u0438\u043a\u043b for \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c i \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u043e\u043c \u0432\u0441\u0435\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0431\u0438\u0442 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 Indicator, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u0442\u0438\u043f\u0443 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0443 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u0432\u043e\u0435 \u043a\u043e\u043b-\u0432\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u044b\u0445 \u043d\u043e\u0436\u0435\u043a \u0441\u0434\u0432\u0438\u0433\u0430\u044e\u0449\u0438\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432.<\/p>\n<p>\u041b\u0438\u0441\u0442\u0438\u043d\u04331. \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u0443\u0444\u0435\u0440\u043d\u044b\u043c\u0438 \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u044b\u043c\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043c\u0438 74HC595RM13TR.<\/p>\n<pre><code class=\"cpp\">#define OE_H \t        PORT_WriteBit ( MDR_PORTA, OE, Bit_SET ) #define OE_L \t        PORT_WriteBit ( MDR_PORTA, OE, Bit_RESET ) #define MR_H \t        PORT_WriteBit ( MDR_PORTA, MR, Bit_SET ) #define MR_L \t        PORT_WriteBit ( MDR_PORTA, MR, Bit_RESET ) #define STCP_H        PORT_WriteBit ( MDR_PORTA, STCP, Bit_SET ) #define STCP_L        PORT_WriteBit ( MDR_PORTA, STCP, Bit_RESET ) #define SHCP_H        PORT_WriteBit ( MDR_PORTA, SHCP, Bit_SET ) #define SHCP_L        PORT_WriteBit ( MDR_PORTA, SHCP, Bit_RESET ) #define DS_H \t        PORT_WriteBit ( MDR_PORTA, DS, Bit_SET ) #define DS_L\t        PORT_WriteBit ( MDR_PORTA, DS, Bit_RESET ) #define RESET_74HC595 MR_L; STCP_H; STCP_L; MR_H; OE_L; #define TOUT          10 #define PAUSE         Delay(TOUT)  void Indication::Show() { \t\/\/ \u041f\u0435\u0440\u0435\u0431\u043e\u0440 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \tfor(uint8_t j = 0;j &lt; count;j++) \t{ \t\/\/ \u041f\u0435\u0440\u0435\u0431\u043e\u0440 \u0432\u0441\u0435\u0445 \u0431\u0438\u0442\u043e\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f value \u0438\u043d\u0434\u0438\u043a\u0442\u043e\u0440\u0430 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c \t\/\/ \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0431\u0438\u0442\u0430 \u0432 \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u044b\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440. \t\tfor(uint8_t i = indicators[j]-&gt;Bits();i &gt; 0;i--) \t\t{ \t\t\tSHCP_L; \t\t\tPAUSE; \t\t\t(indicators[j]-&gt;Value()&amp;(1&lt;&lt;(i-1)))? DS_H:DS_L; \t\t\tPAUSE; \t\t\tSHCP_H; \t\t\tPAUSE; \t\t} \t} \t\/\/ \u0421\u0442\u0440\u043e\u0431\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0438\u043c\u043f\u0443\u043b\u044c\u0441 \u043d\u0430 \u0432\u044b\u0434\u0430\u0447\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0430 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u0445\u043e\u0434 \tSTCP_H; \tPAUSE; \tSTCP_L; \tPAUSE; } <\/code><\/pre>\n<p>\u0412 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0435 2 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0439 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 Indicator \u0438 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u044b Led, LedDual \u0438 Digit. \u0427\u043b\u0435\u043d value \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u2013 \u044d\u0442\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438, bits \u2013 \u043a\u043e\u043b-\u0432\u043e \u0431\u0438\u0442 \u0434\u043b\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438. \u041a\u043b\u0430\u0441\u0441\u044b Led, LedDual, Digit \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u044e\u0442\u0441\u044f \u043e\u0442 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u0433\u043e \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 Indicator. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u044d\u0442\u0438\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 value \u0438 bits \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0412 Led::value \u0437\u0430\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\/\u0432\u043a\u043b\u044e\u0447\u0435\u043d, \u0430 bits = 1. \u0414\u043b\u044f LedDual::value \u0437\u0430\u0434\u0430\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\/\u0432\u043a\u043b\u044e\u0447\u0435\u043d \u0437\u0435\u043b\u0435\u043d\u044b\u0439\/\u0432\u043a\u043b\u044e\u0447\u0435\u043d \u043a\u0440\u0430\u0441\u043d\u044b\u0439\/\u043c\u0438\u0433\u0430\u044e\u0449\u0438\u0439 \u0437\u0435\u043b\u0435\u043d\u044b\u0439\/\u043c\u0438\u0433\u0430\u044e\u0449\u0438\u0439 \u043a\u0440\u0430\u0441\u043d\u044b\u0439, bits = 2. \u0414\u043b\u044f Digit::value \u2013 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u0438\u043c\u043e\u0435 \u043d\u0430 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0435, \u0430 bits = 8. \u0412\u0441\u044e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u0438\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0432 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445 \u043a\u043b\u0430\u0441\u0441\u0430\u0445, \u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u044d\u0442\u0438\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0431\u0443\u0434\u0435\u043c \u0447\u0435\u0440\u0435\u0437 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441!<\/p>\n<p>\u041b\u0438\u0441\u0442\u0438\u043d\u0433 2. \u041a\u043b\u0430\u0441\u0441 Indicator.<\/p>\n<pre><code class=\"cpp\">class Indicator { protected: \tuint8_t value; \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \tuint8_t bits; \/\/ \u041a\u043e\u043b-\u0432\u043e \u0431\u0438\u0442 \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 public: \tIndicator(){} \t\/\/ \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \tuint8_t Value() { return value; } \t\/\/ \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \tvirtual void SetValue(uint8_t val) = 0; \t\/\/ \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043b-\u0432\u043e \u0431\u0438\u0442. \tuint8_t Bits() { return bits; } \t\/\/ \u041f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0430 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0440\u0430\u0432\u043d\u043e. \tvirtual void operator=(uint8_t val) = 0; };  class Led : public Indicator { public: \t\tLed() {    \t\tbits = 1;        value = 0;     }     void operator=(uint8_t val) { value = val;}     void SetValue(uint8_t val) { value = val;}     void Off() { value = 0;}     void On() { value = 1;} };  class LedDual : public Indicator {   public: \tLedDual() {         \tbits = 2;          \tvalue = 0;   }   void operator=(uint8_t val) { SetValue(val); }   \/\/ Set val as \t\/\/ 0 - off \t\/\/ 1 - on green \t\/\/ 2 - on red \t\/\/ 3 - blink green \t\/\/ 4 - blink red \tvoid SetValue(uint8_t val) {  \t\tif      ( val == 3 ) value = (value &amp; 1)^ 1; \t\telse if ( val == 4 ) value = (value &amp; 2)^ 2; \t\telse if ( val == 1 ) value = 1; \t\telse if ( val == 2 ) value = 2; \t\telse value = 0; } void Off() { value = 0;} void Green() { value = 1;} void Red() { value = 2;} void BlinkGreen() { value = 3;} void BlinkRed() { value = 4;} };  class Digit : public Indicator { \tstatic const uint8_t segCode[]; public: \tDigit() {         bits = 8;          value = 0;     }   void operator=(uint8_t val) { value = segCode[val];} \tvoid SetValue(uint8_t val) { value = segCode[val];} };  #define A_ (uint8_t)(1&lt;&lt;1) #define B_ (uint8_t)(1&lt;&lt;4) #define C_ (uint8_t)(1&lt;&lt;5) #define D_ (uint8_t)(1&lt;&lt;0) #define E_ (uint8_t)(1&lt;&lt;3) #define F_ (uint8_t)(1&lt;&lt;6) #define G_ (uint8_t)(1&lt;&lt;7) #define H_ (uint8_t)(1&lt;&lt;2)  const uint8_t Digit::segCode[] = { \/* \u0431\u0435\u0437 \u0442\u043e\u0447\u043a\u0438 *\/ \/*00*\/ \/*0 *\/(uint8_t)(~(A_|B_|C_|D_|E_|F_)), \/*01*\/ \/*1 *\/(uint8_t)(~(B_|C_)), \/*02*\/ \/*2 *\/(uint8_t)(~(A_|B_|D_|E_|G_)), \/*03*\/ \/*3 *\/(uint8_t)(~(A_|B_|C_|D_|G_)), \/*04*\/ \/*4 *\/(uint8_t)(~(B_|C_|F_|G_)), \/*05*\/ \/*5 *\/(uint8_t)(~(A_|C_|D_|F_|G_)), \/*06*\/ \/*6 *\/(uint8_t)(~(A_|C_|D_|E_|F_|G_)), \/*07*\/ \/*7 *\/(uint8_t)(~(A_|B_|C_)), \/*08*\/ \/*8 *\/(uint8_t)(~(A_|B_|C_|D_|E_|F_|G_)), \/*09*\/ \/*9 *\/(uint8_t)(~(A_|B_|C_|D_|F_|G_)), \/* \u0441 \u0442\u043e\u0447\u043a\u043e\u0439 *\/ \/*10*\/ \/*0.*\/(uint8_t)(~(A_|B_|C_|D_|E_|F_|H_)), \/*11*\/ \/*1.*\/(uint8_t)(~(B_|C_|H_)), \/*12*\/ \/*2.*\/(uint8_t)(~(A_|B_|D_|E_|G_|H_)), \/*13*\/ \/*3.*\/(uint8_t)(~(A_|B_|C_|D_|G_|H_)), \/*14*\/ \/*4.*\/(uint8_t)(~(B_|C_|F_|G_|H_)), \/*15*\/ \/*5.*\/(uint8_t)(~(A_|C_|D_|F_|G_|H_)), \/*16*\/ \/*6.*\/(uint8_t)(~(A_|C_|D_|E_|F_|G_|H_)), \/*17*\/ \/*7.*\/(uint8_t)(~(A_|B_|C_|H_)), \/*18*\/ \/*8.*\/(uint8_t)(~(A_|B_|C_|D_|E_|F_|G_|H_)), \/*19*\/ \/*9.*\/(uint8_t)(~(A_|B_|C_|D_|F_|G_|H_)), \/*20*\/ \/*_ *\/(uint8_t)(~(D_)), \/*21*\/ \/*P *\/(uint8_t)(~(A_|B_|E_|F_|G_)), \/*22*\/ \/*t *\/(uint8_t)(~(E_|D_|F_|G_)), \/*23*\/ \/*\u00b0 *\/(uint8_t)(~(A_|B_|F_|G_)), \/*24*\/ \/*\u041f *\/(uint8_t)(~(A_|B_|C_|E_|F_)), \/*25*\/ \/*\u0441 *\/(uint8_t)(~(D_|E_|G_)), \/*26*\/ \/*S *\/(uint8_t)(~(A_|C_|D_|F_|G_)), \/*27*\/ \/*\u0421 *\/(uint8_t)(~(A_|D_|F_|E_)), \/*28*\/ \/*E *\/(uint8_t)(~(A_|E_|D_|F_|G_)), \/*29*\/ \/*U *\/(uint8_t)(~(B_|C_|D_|E_|F_)), \/*30*\/ \/*  *\/(uint8_t)(0xFF), \/*31*\/ \/*- *\/(uint8_t)(~(G_)), \/*32*\/ \/*H *\/(uint8_t)(~(B_|C_|E_|F_|G_)) }; <\/code><\/pre>\n<p>\u041a\u043b\u0430\u0441\u0441 Indication \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u043c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0442 \u043d\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u043c\u0438 \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 Update \u0438 Test. \u0412 \u0444\u0443\u043d\u043a\u0446\u0438\u044e Update \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043d\u0434\u0438\u0446\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<p>\u041b\u0438\u0441\u0442\u0438\u043d\u0433 3. \u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 Indication.<\/p>\n<pre><code class=\"cpp\">#define SHCP\tPORT_Pin_0 #define DS\t\tPORT_Pin_1 #define STCP\tPORT_Pin_2 #define MR\t\tPORT_Pin_3 #define OE\t\tPORT_Pin_4  class Indication { \tint count; \/\/ \u043a\u043e\u043b-\u0432\u043e \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \tIndicator** indicators; \/\/ \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439   \/\/ \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 Indicator public: \tIndication(); \t\/\/ \u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0447\u043b\u0435\u043d\u043e\u0432 \u043a\u043b\u0430\u0441\u0441\u0430. \tvirtual void Update(const state_t &amp; state){} \t\/\/ \u0417\u0430\u0441\u0432\u0435\u0442\u0438\u0442\u044c \u0432\u0441\u0435 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u044b, \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438. \tvirtual void Test(){} \t\/\/ \u041d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u044b\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b.   void Show(); \t\/\/ \u0421\u0431\u0440\u043e\u0441-\u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432.   void Reset() { RESET_74HC595;}   \/\/ \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u043e\u043b-\u0432\u043e \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432   void SetCount(int n) { count = n; }   \/\/ \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439   void SetIndicators(Indicator** ind) { indicators = ind;} \tvoid HGgroup(uint32_t v, Digit &amp; d1, Digit &amp; d2, Digit &amp; d3, uint8_t isDigit) \t{\t \t\td1 = v \/ 100; \t\td2 = (v % 100)\/10 + (isDigit ? 10 : 0); \t\td3 = v % 10; \t} }; <\/code><\/pre>\n<p>\u041b\u0438\u0441\u0442\u0438\u043d\u0433 4. \u0414\u043e\u0447\u0435\u0440\u043d\u0438\u0439 \u043a\u043b\u0430\u0441\u0441 Indication_v1.<\/p>\n<pre><code class=\"cpp\">class Indication_v1 : public Indication {   Led HL1;   Led HL2;   LedDual HL3;   LedDual HL4;   LedDual HL5; \tDigit HG3; \tDigit HG2; \tDigit HG1; \tenum{n = 8}; \tIndicator* indicators[n];  public: \tIndication_v1(); \tvoid Update(const state_t &amp; arg); \tvoid Test(); };  Indication_v1::Indication_v1()     :Indication() { \tindicators[0] = &amp;HL5; \tindicators[1] = &amp;HL4; \tindicators[2] = &amp;HL3; \tindicators[3] = &amp;HL2; \tindicators[4] = &amp;HL1; \tindicators[5] = &amp;HG3; \tindicators[6] = &amp;HG2; \tindicators[7] = &amp;HG1;    \t Indication::SetCount(n);     \tIndication::SetIndicators(indicators); }  void Indication_v1::Update(const state_t &amp; arg) { \t\t\tint voltage = 285;     \tHGgroup(voltage, HG1, HG2, HG3, 1);     \tHL1.On();     \tHL2.On();     \tHL3.Red();     \tHL4.Green();     \tHL5.BlinkGreen();}  void Indication_v1::Test() { \/\/ \u0417\u0430\u0436\u0438\u0433\u0430\u0435\u043c \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0432\u0441\u0435 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u044b. \/\/ \u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445. \/\/ \u0417\u0430\u0436\u0438\u0433\u0430\u0435\u043c \u043a\u0440\u0430\u0441\u043d\u044b\u0435 \t\t\tHL3.Red();     \tHL4.Red();    \t\tHL5.Red();     \tHG1 = 18;     \tHG2 = 18;     \tHG3 = 18;     \tShow();     \tDelay (0x1FFFFFF); \/\/ \u0417\u0430\u0436\u0438\u0433\u0430\u0435\u043c \u0437\u0435\u043b\u0435\u043d\u044b\u0435     \tHL3.Green();     \tHL4.Green();     \tHL5.Green();     \tHL1.On();     \tHL2.On();    \t\tShow();     \tDelay (0x1FFFFFF); } <\/code><\/pre>\n<p>\u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0432\u0438\u0434\u0435:<\/p>\n<pre><code class=\"cpp\">#if ( VERS == 0 ) Indication_v1 indication; #elif ( VERS == 1)\t Indication_v2 indication; #endif  indication.Reset(); while(1) { \tindication.Update(arg); \tindication.Show();   sleep() } <\/code><\/pre>\n<p>\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0430\u043c\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0438\u0445 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 (HL1 = 1 \u0438\u043b\u0438 HL1.Red()), \u0442.\u0435. \u0432\u0430\u0448\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u0445\u0435\u043c\u0435 \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u0441\u0445\u0435\u043c\u0435. \u0427\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e. \u0418\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u0447\u0430\u0441\u0442\u044c, \u0442\u0430\u043a\u0430\u044f \u043a\u0430\u043a \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u0430\u043d\u0435\u043b\u0438 \u0438\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441, \u0447\u0442\u043e \u0434\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b \u043f\u0430\u043d\u0435\u043b\u0435\u0439 Indication_v2, Indication_v3, \u043d\u0435 \u043f\u043e\u0440\u0442\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u0443\u0436\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u043d\u0435\u043b\u0435\u0439.<\/p>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/568162\/\"> https:\/\/habr.com\/ru\/post\/568162\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p>\u0427\u0430\u0441\u0442\u043e \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0440\u0430\u0434\u0438\u043e-\u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043b\u0438\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u0441 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u043d\u044b\u043c\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435 \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b -55\u2026+55 \u00baC. \u0418 \u044d\u0442\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0445 \u043f\u0430\u043d\u0435\u043b\u0435\u0439 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c. \u0420\u0430\u0431\u043e\u0447\u0438\u0435 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u0416\u041a \u0438\u043d\u0434\u0438\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 -20&#8230;+70 \u00baC  , \u043b\u044e\u043c\u0438\u043d\u0438\u0441\u0446\u0435\u043d\u0442\u043d\u044b\u0445 \u0433\u0430\u0437\u043e\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u044b\u0445 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 -40..+70 \u00baC. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u043f\u0430\u043d\u0435\u043b\u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c-\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0445 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432, \u043e\u0434\u043d\u043e\u0446\u0432\u0435\u0442\u043d\u044b\u0445 \u0438 \u0434\u0432\u0443\u0445\u0446\u0432\u0435\u0442\u043d\u044b\u0445 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u0432. \u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0430\u043a\u0438\u0445 \u043e\u0440\u0433\u0430\u043d\u043e\u0432 \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u0441\u0445\u0435\u043c\u043e\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0415\u0441\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0445\u043e\u0447\u0443 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0441\u0432\u043e\u0439 \u043e\u043f\u044b\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0445\u0435\u043c\u043d\u043e-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<h3>C\u0445\u0435\u043c\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438<\/h3>\n<p>\u041d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u043c\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0445 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432, \u043e\u0434\u043d\u043e\u0446\u0432\u0435\u0442\u043d\u044b\u0445 \u0438 \u0434\u0432\u0443\u0445\u0446\u0432\u0435\u0442\u043d\u044b\u0445 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u0432 \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043d\u0430 \u043b\u0438\u0446\u0435\u0432\u0443\u044e \u043f\u0430\u043d\u0435\u043b\u044c. \u0412\u0441\u0435 \u0443\u0437\u043b\u044b \u0441\u043e\u0431\u0440\u0430\u043d\u044b \u043d\u0430 \u043e\u0442\u0435\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0430\u0446\u0438\u0438. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0445 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u044b 3\u041b\u0421324\u04111, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u0443\u0444\u0435\u0440\u043d\u044b\u0445 \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u044b\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 IN74HC595AD. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u044b \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c. \u0414\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u043c\u0438 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0430\u043c\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e 5 \u0432\u044b\u0432\u043e\u0434\u043e\u0432 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 (\u043c\u043e\u0436\u043d\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0434\u043e \u0442\u0440\u0435\u0445, \u0435\u0441\u043b\u0438 OE \u0432\u044b\u0445\u043e\u0434 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a \u043c\u0438\u043d\u0443\u0441\u0443, \u0430 MR \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a \u043f\u043b\u044e\u0441\u0443), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043a \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0430\u043c IN74HC595AD. \u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u044d\u0442\u0438\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u0434\u0430\u0442\u0430\u0448\u0438\u0442\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u0443\u044e \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0443, \u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0435 1.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u044b \u0438\u043c\u0435\u044e\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u0445\u043e\u0434 Q7\u2019, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043a\u043e \u0432\u0445\u043e\u0434\u0443 DS \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u044b \u0434\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0446\u0435\u043b\u043e\u0439 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u044b\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442 \u043e\u0434\u043d\u043e\u0439 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u044b \u043a \u0434\u0440\u0443\u0433\u043e\u0439. \u0415\u0441\u043b\u0438 \u043a\u043e\u043b-\u0432\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0438\u0442 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0443 \u043f\u0440\u0435\u0432\u044b\u0441\u0438\u0442 8, \u0442\u043e \u044d\u0442\u0430 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0430 \u043d\u0430\u0447\u043d\u0435\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043d\u044f\u0442\u044b\u0439 \u0431\u0430\u0439\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u044b \u0447\u0435\u0440\u0435\u0437 \u0432\u044b\u0445\u043e\u0434 Q7\u2019, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u0442\u0440\u043e\u0431\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c \u0437\u0430\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0435\u043d\u044b. \u0421\u0445\u0435\u043c\u0430, \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u0430\u044f \u043d\u0438\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b-\u0432\u043e \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432, \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0440\u0430\u0431\u043e\u0442\u044b. \u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442, \u0433\u0434\u0435 \u043a\u043e\u043b-\u0432\u043e \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442 63 \u0448\u0442\u0443\u043a \u0438 \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u0435\u0434\u0435\u043b, \u043f\u0440\u0438\u0447\u0435\u043c \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043f\u0430\u043d\u0435\u043b\u0438))) \u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u044b.<\/p>\n<h3>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438<\/h3>\n<p>\u0414\u043b\u044f \u0443\u0434\u043e\u0431\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0421++. \u0418\u0435\u0440\u0430\u0440\u0445\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u0433\u043e \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 Indicator, \u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u044e\u0442\u0441\u044f \u043a\u043b\u0430\u0441\u0441\u044b Led (\u043e\u0434\u043d\u043e\u0446\u0432\u0435\u0442\u043d\u044b\u0439 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434), LedDual (\u0434\u0432\u0443\u0445\u0446\u0432\u0435\u0442\u043d\u044b\u0439 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434), Digit (\u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440). \u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 Indication, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043c\u0435\u0442\u043e\u0434 Show \u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u044b Indication_v1, Indication_v2 \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u044b Update \u0438 Test \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043f\u0430\u043d\u0435\u043b\u0438 \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 \u043e\u0434\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435.<\/p>\n<p>\u0412 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0435 1 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f Show \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 Indication. \u042d\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441\u043e \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u044b\u043c\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043c\u0438 \u0438 \u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0443\u0434\u043e\u0431\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432. \u0426\u0438\u043a\u043b for \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c j \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u0442 \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b Indicator. \u0426\u0438\u043a\u043b for \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c i \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u043e\u043c \u0432\u0441\u0435\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0431\u0438\u0442 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 Indicator, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u0442\u0438\u043f\u0443 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0443 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u0432\u043e\u0435 \u043a\u043e\u043b-\u0432\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u044b\u0445 \u043d\u043e\u0436\u0435\u043a \u0441\u0434\u0432\u0438\u0433\u0430\u044e\u0449\u0438\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432.<\/p>\n<p>\u041b\u0438\u0441\u0442\u0438\u043d\u04331. \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u0443\u0444\u0435\u0440\u043d\u044b\u043c\u0438 \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u044b\u043c\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043c\u0438 74HC595RM13TR.<\/p>\n<pre><code class=\"cpp\">#define OE_H \t        PORT_WriteBit ( MDR_PORTA, OE, Bit_SET ) #define OE_L \t        PORT_WriteBit ( MDR_PORTA, OE, Bit_RESET ) #define MR_H \t        PORT_WriteBit ( MDR_PORTA, MR, Bit_SET ) #define MR_L \t        PORT_WriteBit ( MDR_PORTA, MR, Bit_RESET ) #define STCP_H        PORT_WriteBit ( MDR_PORTA, STCP, Bit_SET ) #define STCP_L        PORT_WriteBit ( MDR_PORTA, STCP, Bit_RESET ) #define SHCP_H        PORT_WriteBit ( MDR_PORTA, SHCP, Bit_SET ) #define SHCP_L        PORT_WriteBit ( MDR_PORTA, SHCP, Bit_RESET ) #define DS_H \t        PORT_WriteBit ( MDR_PORTA, DS, Bit_SET ) #define DS_L\t        PORT_WriteBit ( MDR_PORTA, DS, Bit_RESET ) #define RESET_74HC595 MR_L; STCP_H; STCP_L; MR_H; OE_L; #define TOUT          10 #define PAUSE         Delay(TOUT)  void Indication::Show() { \t\/\/ \u041f\u0435\u0440\u0435\u0431\u043e\u0440 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \tfor(uint8_t j = 0;j &lt; count;j++) \t{ \t\/\/ \u041f\u0435\u0440\u0435\u0431\u043e\u0440 \u0432\u0441\u0435\u0445 \u0431\u0438\u0442\u043e\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f value \u0438\u043d\u0434\u0438\u043a\u0442\u043e\u0440\u0430 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c \t\/\/ \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0431\u0438\u0442\u0430 \u0432 \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u044b\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440. \t\tfor(uint8_t i = indicators[j]-&gt;Bits();i &gt; 0;i--) \t\t{ \t\t\tSHCP_L; \t\t\tPAUSE; \t\t\t(indicators[j]-&gt;Value()&amp;(1&lt;&lt;(i-1)))? DS_H:DS_L; \t\t\tPAUSE; \t\t\tSHCP_H; \t\t\tPAUSE; \t\t} \t} \t\/\/ \u0421\u0442\u0440\u043e\u0431\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0438\u043c\u043f\u0443\u043b\u044c\u0441 \u043d\u0430 \u0432\u044b\u0434\u0430\u0447\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0430 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u0445\u043e\u0434 \tSTCP_H; \tPAUSE; \tSTCP_L; \tPAUSE; } <\/code><\/pre>\n<p>\u0412 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0435 2 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0439 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 Indicator \u0438 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u044b Led, LedDual \u0438 Digit. \u0427\u043b\u0435\u043d value \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u2013 \u044d\u0442\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438, bits \u2013 \u043a\u043e\u043b-\u0432\u043e \u0431\u0438\u0442 \u0434\u043b\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438. \u041a\u043b\u0430\u0441\u0441\u044b Led, LedDual, Digit \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u044e\u0442\u0441\u044f \u043e\u0442 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u0433\u043e \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 Indicator. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u044d\u0442\u0438\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 value \u0438 bits \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0412 Led::value \u0437\u0430\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\/\u0432\u043a\u043b\u044e\u0447\u0435\u043d, \u0430 bits = 1. \u0414\u043b\u044f LedDual::value \u0437\u0430\u0434\u0430\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\/\u0432\u043a\u043b\u044e\u0447\u0435\u043d \u0437\u0435\u043b\u0435\u043d\u044b\u0439\/\u0432\u043a\u043b\u044e\u0447\u0435\u043d \u043a\u0440\u0430\u0441\u043d\u044b\u0439\/\u043c\u0438\u0433\u0430\u044e\u0449\u0438\u0439 \u0437\u0435\u043b\u0435\u043d\u044b\u0439\/\u043c\u0438\u0433\u0430\u044e\u0449\u0438\u0439 \u043a\u0440\u0430\u0441\u043d\u044b\u0439, bits = 2. \u0414\u043b\u044f Digit::value \u2013 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u0438\u043c\u043e\u0435 \u043d\u0430 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0435, \u0430 bits = 8. \u0412\u0441\u044e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u0438\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0432 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445 \u043a\u043b\u0430\u0441\u0441\u0430\u0445, \u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u044d\u0442\u0438\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0431\u0443\u0434\u0435\u043c \u0447\u0435\u0440\u0435\u0437 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441!<\/p>\n<p>\u041b\u0438\u0441\u0442\u0438\u043d\u0433 2. \u041a\u043b\u0430\u0441\u0441 Indicator.<\/p>\n<pre><code class=\"cpp\">class Indicator { protected: \tuint8_t value; \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \tuint8_t bits; \/\/ \u041a\u043e\u043b-\u0432\u043e \u0431\u0438\u0442 \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 public: \tIndicator(){} \t\/\/ \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \tuint8_t Value() { return value; } \t\/\/ \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \tvirtual void SetValue(uint8_t val) = 0; \t\/\/ \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043b-\u0432\u043e \u0431\u0438\u0442. \tuint8_t Bits() { return bits; } \t\/\/ \u041f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0430 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0440\u0430\u0432\u043d\u043e. \tvirtual void operator=(uint8_t val) = 0; };  class Led : public Indicator { public: \t\tLed() {    \t\tbits = 1;        value = 0;     }     void operator=(uint8_t val) { value = val;}     void SetValue(uint8_t val) { value = val;}     void Off() { value = 0;}     void On() { value = 1;} };  class LedDual : public Indicator {   public: \tLedDual() {         \tbits = 2;          \tvalue = 0;   }   void operator=(uint8_t val) { SetValue(val); }   \/\/ Set val as \t\/\/ 0 - off \t\/\/ 1 - on green \t\/\/ 2 - on red \t\/\/ 3 - blink green \t\/\/ 4 - blink red \tvoid SetValue(uint8_t val) {  \t\tif      ( val == 3 ) value = (value &amp; 1)^ 1; \t\telse if ( val == 4 ) value = (value &amp; 2)^ 2; \t\telse if ( val == 1 ) value = 1; \t\telse if ( val == 2 ) value = 2; \t\telse value = 0; } void Off() { value = 0;} void Green() { value = 1;} void Red() { value = 2;} void BlinkGreen() { value = 3;} void BlinkRed() { value = 4;} };  class Digit : public Indicator { \tstatic const uint8_t segCode[]; public: \tDigit() {         bits = 8;          value = 0;     }   void operator=(uint8_t val) { value = segCode[val];} \tvoid SetValue(uint8_t val) { value = segCode[val];} };  #define A_ (uint8_t)(1&lt;&lt;1) #define B_ (uint8_t)(1&lt;&lt;4) #define C_ (uint8_t)(1&lt;&lt;5) #define D_ (uint8_t)(1&lt;&lt;0) #define E_ (uint8_t)(1&lt;&lt;3) #define F_ (uint8_t)(1&lt;&lt;6) #define G_ (uint8_t)(1&lt;&lt;7) #define H_ (uint8_t)(1&lt;&lt;2)  const uint8_t Digit::segCode[] = { \/* \u0431\u0435\u0437 \u0442\u043e\u0447\u043a\u0438 *\/ \/*00*\/ \/*0 *\/(uint8_t)(~(A_|B_|C_|D_|E_|F_)), \/*01*\/ \/*1 *\/(uint8_t)(~(B_|C_)), \/*02*\/ \/*2 *\/(uint8_t)(~(A_|B_|D_|E_|G_)), \/*03*\/ \/*3 *\/(uint8_t)(~(A_|B_|C_|D_|G_)), \/*04*\/ \/*4 *\/(uint8_t)(~(B_|C_|F_|G_)), \/*05*\/ \/*5 *\/(uint8_t)(~(A_|C_|D_|F_|G_)), \/*06*\/ \/*6 *\/(uint8_t)(~(A_|C_|D_|E_|F_|G_)), \/*07*\/ \/*7 *\/(uint8_t)(~(A_|B_|C_)), \/*08*\/ \/*8 *\/(uint8_t)(~(A_|B_|C_|D_|E_|F_|G_)), \/*09*\/ \/*9 *\/(uint8_t)(~(A_|B_|C_|D_|F_|G_)), \/* \u0441 \u0442\u043e\u0447\u043a\u043e\u0439 *\/ \/*10*\/ \/*0.*\/(uint8_t)(~(A_|B_|C_|D_|E_|F_|H_)), \/*11*\/ \/*1.*\/(uint8_t)(~(B_|C_|H_)), \/*12*\/ \/*2.*\/(uint8_t)(~(A_|B_|D_|E_|G_|H_)), \/*13*\/ \/*3.*\/(uint8_t)(~(A_|B_|C_|D_|G_|H_)), \/*14*\/ \/*4.*\/(uint8_t)(~(B_|C_|F_|G_|H_)), \/*15*\/ \/*5.*\/(uint8_t)(~(A_|C_|D_|F_|G_|H_)), \/*16*\/ \/*6.*\/(uint8_t)(~(A_|C_|D_|E_|F_|G_|H_)), \/*17*\/ \/*7.*\/(uint8_t)(~(A_|B_|C_|H_)), \/*18*\/ \/*8.*\/(uint8_t)(~(A_|B_|C_|D_|E_|F_|G_|H_)), \/*19*\/ \/*9.*\/(uint8_t)(~(A_|B_|C_|D_|F_|G_|H_)), \/*20*\/ \/*_ *\/(uint8_t)(~(D_)), \/*21*\/ \/*P *\/(uint8_t)(~(A_|B_|E_|F_|G_)), \/*22*\/ \/*t *\/(uint8_t)(~(E_|D_|F_|G_)), \/*23*\/ \/*\u00b0 *\/(uint8_t)(~(A_|B_|F_|G_)), \/*24*\/ \/*\u041f *\/(uint8_t)(~(A_|B_|C_|E_|F_)), \/*25*\/ \/*\u0441 *\/(uint8_t)(~(D_|E_|G_)), \/*26*\/ \/*S *\/(uint8_t)(~(A_|C_|D_|F_|G_)), \/*27*\/ \/*\u0421 *\/(uint8_t)(~(A_|D_|F_|E_)), \/*28*\/ \/*E *\/(uint8_t)(~(A_|E_|D_|F_|G_)), \/*29*\/ \/*U *\/(uint8_t)(~(B_|C_|D_|E_|F_)), \/*30*\/ \/*  *\/(uint8_t)(0xFF), \/*31*\/ \/*- *\/(uint8_t)(~(G_)), \/*32*\/ \/*H *\/(uint8_t)(~(B_|C_|E_|F_|G_)) }; <\/code><\/pre>\n<p>\u041a\u043b\u0430\u0441\u0441 Indication \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u043c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0442 \u043d\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u043c\u0438 \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 Update \u0438 Test. \u0412 \u0444\u0443\u043d\u043a\u0446\u0438\u044e Update \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043d\u0434\u0438\u0446\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<p>\u041b\u0438\u0441\u0442\u0438\u043d\u0433 3. \u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 Indication.<\/p>\n<pre><code class=\"cpp\">#define SHCP\tPORT_Pin_0 #define DS\t\tPORT_Pin_1 #define STCP\tPORT_Pin_2 #define MR\t\tPORT_Pin_3 #define OE\t\tPORT_Pin_4  class Indication { \tint count; \/\/ \u043a\u043e\u043b-\u0432\u043e \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \tIndicator** indicators; \/\/ \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439   \/\/ \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 Indicator public: \tIndication(); \t\/\/ \u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0447\u043b\u0435\u043d\u043e\u0432 \u043a\u043b\u0430\u0441\u0441\u0430. \tvirtual void Update(const state_t &amp; state){} \t\/\/ \u0417\u0430\u0441\u0432\u0435\u0442\u0438\u0442\u044c \u0432\u0441\u0435 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u044b, \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438. \tvirtual void Test(){} \t\/\/ \u041d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u044b\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b.   void Show(); \t\/\/ \u0421\u0431\u0440\u043e\u0441-\u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432.   void Reset() { RESET_74HC595;}   \/\/ \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u043e\u043b-\u0432\u043e \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432   void SetCount(int n) { count = n; }   \/\/ \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439   void SetIndicators(Indicator** ind) { indicators = ind;} \tvoid HGgroup(uint32_t v, Digit &amp; d1, Digit &amp; d2, Digit &amp; d3, uint8_t isDigit) \t{\t \t\td1 = v \/ 100; \t\td2 = (v % 100)\/10 + (isDigit ? 10 : 0); \t\td3 = v % 10; \t} }; <\/code><\/pre>\n<p>\u041b\u0438\u0441\u0442\u0438\u043d\u0433 4. \u0414\u043e\u0447\u0435\u0440\u043d\u0438\u0439 \u043a\u043b\u0430\u0441\u0441 Indication_v1.<\/p>\n<pre><code class=\"cpp\">class Indication_v1 : public Indication {   Led <\/code><\/pre>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-326571","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/326571","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=326571"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/326571\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=326571"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=326571"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=326571"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}