{"id":261323,"date":"2015-07-13T19:40:02","date_gmt":"2015-07-13T15:40:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=261323"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=261323","title":{"rendered":"\u0423\u041c\u041a \u043d\u0430 ATmega16"},"content":{"rendered":"<p>     \t<b>\u0421\u043f\u043e\u0439\u043b\u0435\u0440<\/b>: \u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0435 \u0432\u044b\u0434\u0430\u0432\u0438\u0442 \u043d\u043e\u0441\u0442\u0430\u043b\u044c\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u043b\u0435\u0437\u044b. <\/p>\n<p>  \u0420\u0435\u0448\u0438\u0432 \u043d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u0431\u043b\u0438\u0436\u0435 (\u043f\u043e\u0441\u043b\u0435 Arduino) \u0441 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 <br \/>  \u0438 \u0441 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438 ATmega \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u044f \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0447\u0438\u0442\u0430\u0442\u044c \u043e \u041c\u041a, <br \/>  \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u0442\u044c \u043a\u043e\u0434 \u0432 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435, \u00ab\u043c\u043e\u0440\u0433\u0430\u0442\u044c \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u043c\u00bb \u2014 \u044d\u0442\u043e \u043a\u0430\u043a-\u0442\u043e \u043d\u0435 \u0442\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b <br \/>  \u00ab\u0437\u0430\u043f\u0438\u043b\u0438\u0442\u044c\u00bb \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c \u2014 \u043f\u0443\u0441\u0442\u044c \u0434\u0430\u0436\u0435 \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u2014 \u043f\u0440\u043e\u0435\u043a\u0442, \u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441\u043e \u0432\u0441\u0435\u043c<br \/>  \u0443\u0436\u0435 \u043f\u043e \u0445\u043e\u0434\u0443 \u0434\u0435\u043b\u0430. \u041d\u0430 \u0443\u043c \u043f\u0440\u0438\u0448\u043b\u0438 \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u043c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u044b\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c <br \/>  \u0438 \u0443\u0447\u0435\u0431\u043d\u044b\u0439 \u0441\u0442\u0435\u043d\u0434, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u044d\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438\u0441\u044c \u2014 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0443\u0447\u0435\u0431\u043d\u044b\u0439 \u043c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u044b\u0439<br \/>  \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 (\u0423\u041c\u041a), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443 \u043d\u0430\u0441 \u0437\u0432\u0430\u043b\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u00ab\u0423\u043c\u043a\u043e\u0439\u00bb.<\/p>\n<h4>\u041f\u0440\u043e \u0423\u041c\u041a<\/h4>\n<p>  \u0418\u0442\u0430\u043a, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0432\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 (\u0435\u0441\u043b\u0438 \u0432\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u2014 \u0442\u043e \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0430\u043c \u043d\u0438\u0436\u0435), \u0442\u043e <br \/>  \u00ab\u0423\u043c\u043a\u0430\u00bb \u044d\u0442\u043e \u043c\u0438\u043a\u0440\u043e-\u042d\u0412\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u043c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u041a580\u0418\u041a80\u0410, \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u043b\u0441\u044f \u0432 80-\u0445 \u0433\u043e\u0434\u0430\u0445 <br \/>  \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0432\u0435\u043a\u0430 (\u043c\u043d\u0435 \u0436\u0435 \u043f\u043e\u0441\u0447\u0430\u0441\u0442\u043b\u0438\u0432\u0438\u043b\u043e\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043d\u0438\u043c \u0432 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0430\u043b\u0451\u043a\u043e\u043c 2009 \u0433\u043e\u0434\u0443), <br \/>  \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0437 \u0441\u0435\u0431\u044f \u0432\u0435\u0441\u043e\u043c\u044b\u0439 \u0442\u0430\u043a\u043e\u0439 \u044f\u0449\u0438\u043a. \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u00ab\u0423\u043c\u043e\u043a\u00bb <br \/>  \u0438 \u043f\u0440\u043e\u0447\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043f\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435 \u043d\u0438\u0436\u0435. \u0412\u043e\u0442 \u0442\u0430\u043a \u043e\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f22\/9be\/872\/f229be872be8422da9d77e280a93e9ba.jpg\"\/><a name=\"habracut\"><\/a><br \/>  (\u0424\u043e\u0442\u043e \u043d\u0430\u0433\u043b\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432\u0437\u044f\u0442\u043e \u043f\u043e \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435 \u043d\u0438\u0436\u0435, \u0431\u043e\u043b\u044c\u0448\u0435 \u0444\u043e\u0442\u043e \u2014 \u043f\u043e \u0442\u043e\u0439 \u0436\u0435 <br \/>  \u0441\u0441\u044b\u043b\u043a\u0435)<\/p>\n<p>  \u0427\u0442\u043e \u0442\u0443\u0442 \u0435\u0441\u0442\u044c: \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044f \u0448\u0438\u043d \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0430\u0434\u0440\u0435\u0441\u0430, \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, <br \/>  \u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u044f\u0447\u0435\u0435\u043a \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0432\u0432\u043e\u0434\u0438\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043d\u043e\u043f\u043a\u0438 \u0432\u0432\u043e\u0434\u0430 <br \/>  \u0434\u0430\u043d\u043d\u044b\u0445. \u0414\u0432\u0430 \u0441\u0442\u043e\u043b\u0431\u0438\u043a\u0430 \u043a\u043d\u043e\u043f\u043e\u043a \u043b\u0435\u0432\u0435\u0435 \u2014 \u044d\u0442\u043e \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u044b \u0432\u0448\u0438\u0442\u043e\u0439 \u0432 \u00ab\u0423\u043c\u043a\u0443\u00bb <br \/>  \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u00ab\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u00bb \u2014 \u043e\u043d\u0438-\u0442\u043e \u0438 \u0441\u0442\u0430\u043b\u0438 \u0446\u0435\u043b\u044c\u044e \u043c\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (\u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u044b, \u043d\u0435 \u043a\u043d\u043e\u043f\u043a\u0438). <br \/>  \u041a\u043e\u0440\u043e\u0442\u043a\u043e \u043e \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430\u0445. \u0422\u0443\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0435\u0442. <br \/>  \u00ab\u041f\u00bb \u2014 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u044f\u0447\u0435\u0439\u043a\u0438 \u043f\u0430\u043c\u044f\u0442\u0438: \u0432\u0432\u043e\u0434\u0438\u043c \u0430\u0434\u0440\u0435\u0441 \u044f\u0447\u0435\u0439\u043a\u0438, \u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u0442\u0430\u043c <br \/>  \u043b\u0435\u0436\u0438\u0442, \u043f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438 \u2014 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0434\u0440\u0443\u0433\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.<br \/>  \u00ab\u0420\u0413\u00bb \u2014 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432: \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0443 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u044f\u0447\u0435\u0435\u043a. \u0412 \u043c\u043e\u0435\u0439 <br \/>  \u00ab\u0432\u0435\u0440\u0441\u0438\u0438\u00bb \u044d\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442: \u0432 \u043d\u0435\u0439 \u043d\u0435\u0442 \u043e\u0441\u043e\u0431\u043e\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u043f\u043e\u0442\u043e\u043c\u0443 \u043a\u0430\u043a \u0432 <br \/>  ATmega \u041e\u0417\u0423, \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u043e\u0431\u0449\u0435\u0433\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0439\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 <br \/>  \u043e\u0434\u043d\u043e\u043c \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435, \u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043a \u043d\u0438\u043c \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 <br \/>  \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0443 \u00ab\u041f\u00bb.<br \/>  \u00ab\u041a\u0421\u00bb \u2014 \u043f\u043e\u0434\u0441\u0447\u0451\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0434\u0430\u043d\u043d\u044b\u0445: \u0432\u0432\u043e\u0434\u0438\u043c \u0430\u0434\u0440\u0435\u0441 \u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430, <br \/>  \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u0441\u0443\u043c\u043c\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u044f\u0447\u0435\u0435\u043a \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u0434\u0438\u0441\u043f\u043b\u0435\u0439. <br \/>  \u00ab\u0417\u041a\u00bb \u2014 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043f\u0430\u043c\u044f\u0442\u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043e\u0439: \u0432\u0432\u043e\u0434\u0438\u043c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441, \u0432\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 <br \/>  \u0430\u0434\u0440\u0435\u0441 \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u0432\u0432\u043e\u0434\u0438\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u2014 \u044f\u0447\u0435\u0439\u043a\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u044d\u0442\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439.<br \/>  \u00ab\u041f\u041c\u00bb \u2014 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043f\u0430\u043c\u044f\u0442\u0438: \u0432\u0432\u043e\u0434\u0438\u043c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 <br \/>  \u043f\u0430\u043c\u044f\u0442\u0438, \u0432\u0432\u043e\u0434\u0438\u043c \u0435\u0433\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441, \u0432\u0432\u043e\u0434\u0438\u043c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u2014 \u043c\u0430\u0441\u0441\u0438\u0432 <br \/>  \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u0438, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0443\u044e\u0441\u044f \u0441 \u0432\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f. <br \/>  \u0414\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0443 \u00ab\u0421\u0422\u00bb \u2014 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u2014 \u044f \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b, \u043e\u0431 \u044d\u0442\u043e\u043c \u043d\u0438\u0436\u0435.<br \/>  \u041a\u043d\u043e\u043f\u043a\u0430 \u00ab\u0412\u041f\u00bb \u2014 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u044b, \u043a\u043d\u043e\u043f\u043a\u0430 &quot;_&quot; \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438 \u0432\u0432\u043e\u0434\u0435, \u00ab\u0421\u0411\u00bb \u2014 \u043a\u043d\u043e\u043f\u043a\u0430<br \/>  \u0441\u0431\u0440\u043e\u0441\u0430. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u0432\u0432\u043e\u0434\u0435 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432 \u2014 \u0442\u0443\u0442: <a href=\"http:\/\/e-lib.kemtipp.ru\/uploads\/03\/app022.pdf\">\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443\u043c<\/a>.<\/p>\n<p>  <a href=\"http:\/\/sfrolov.livejournal.com\/136290.html\">sfrolov.livejournal.com\/136290.html<\/a> \u2014 \u0444\u043e\u0442\u043e \u0423\u041c\u041a, \u0432\u043e\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f, \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u044f. <br \/>  <a href=\"http:\/\/www.computer-museum.ru\/histussr\/umk_sorucom_2011.htm\">www.computer-museum.ru\/histussr\/umk_sorucom_2011.htm<\/a> \u2014 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0438.<\/p>\n<h4>\u0427\u0442\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u043e\u0441\u044c<\/h4>\n<p>  \u0426\u0435\u043b\u044c\u044e \u043c\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0431\u044b\u043b\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u044d\u0442\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u044b \u0438 <br \/>  \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043d\u0430 \u0434\u0438\u0441\u043f\u043b\u0435\u0439, \u044d\u0434\u0430\u043a\u0430\u044f lite-\u0432\u0435\u0440\u0441\u0438\u044f \u00ab\u0423\u043c\u043a\u0438\u00bb (\u043d\u0443 \u043e\u0447\u0435\u043d\u044c-\u043e\u0447\u0435\u043d\u044c lite). <br \/>  \u0427\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435:<br \/>  <b>1.<\/b> \u041c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 ATmega16. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435 \u0432 AVRStudio.<br \/>  <b>2.<\/b> \u041c\u0430\u0442\u0440\u0438\u0447\u043d\u0430\u044f \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u041a\u043e\u0434 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u043e\u0439 \u044f \u043d\u0430\u0448\u0451\u043b <br \/>  <a href=\"http:\/\/eugenemcu.ru\/publ\/10-1-0-45\">\u0437\u0434\u0435\u0441\u044c<\/a> (\u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0430\u0432\u0442\u043e\u0440\u0443), \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043b \u0435\u0433\u043e \u043d\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u041e\u0417\u0423 ATmega16 <br \/>  \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0430\u0434\u0440\u0435\u0441\u043e\u043c $045F, \u0442\u043e \u0432\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0442\u0440\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0446\u0438\u0444\u0440\u044b. \u041a\u0441\u0442\u0430\u0442\u0438, \u0434\u0430\u043d\u043d\u044b\u0435\/\u0430\u0434\u0440\u0435\u0441\u0430<br \/>   \u0432\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0438 \u0432\u044b\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435.<br \/>  <b>3.<\/b> LCD \u0434\u0438\u0441\u043f\u043b\u0435\u0439 16\u04452 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 HD44780. \u0420\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0434\u0438\u0441\u043f\u043b\u0435\u044f \u043f\u043e\u043c\u043e\u0433\u043b\u0438 \u044d\u0442\u0438 <br \/>  \u0434\u0432\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u2014 <a href=\"http:\/\/easyelectronics.ru\/avr-uchebnyj-kurs-podklyuchenie-k-avr- lcd-displeya-hd44780.html\">\u0432\u043e\u0442<\/a> \u0438 <a href=\"http:\/\/makesystem.net\/?p=9#.VaOWTfntmko\">\u0432\u043e\u0442<\/a> (\u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0430\u0432\u0442\u043e\u0440\u0430\u043c), \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0436\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u043f\u043e\u043c\u043e\u0433 \u0434\u0430\u0442\u0430\u0448\u0438\u0442. <br \/>  <b>4.<\/b> \u041f\u0440\u043e\u0441\u0442\u044b\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u0434\u043b\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432. \u0422\u0430\u043a\u0436\u0435 \u0431\u044b\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0435\u0449\u0451 \u043e\u0434\u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0430 \u2014 \u00abEnter\u00bb (\u043d\u0430 <br \/>  \u0444\u043e\u0442\u043e \u043e\u043d\u0430 \u0441\u043e \u0441\u0442\u0440\u0435\u043b\u043e\u0447\u043a\u043e\u0439): \u043d\u0443\u0436\u043d\u0430 \u0434\u043b\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u0432\u0432\u043e\u0434\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0446\u0438\u0444\u0440\u044b \u0430\u0434\u0440\u0435\u0441\u0430 \u0438\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 <br \/>   \u2014 \u044d\u0434\u0430\u043a\u0430\u044f \u0437\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 \u0434\u0440\u0435\u0431\u0435\u0437\u0433\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u043e\u0439 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b (\u0431\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0436\u043d\u043e <br \/>  \u0431\u044b\u043b\u043e \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c, \u043d\u043e \u0443\u043c\u043d\u0430\u044f \u043c\u044b\u0441\u043b\u044f, \u043a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043e\u043f\u043e\u0441\u043b\u044f).<\/p>\n<h4>\u0427\u0442\u043e \u0432 \u0438\u0442\u043e\u0433\u0435<\/h4>\n<p>  \u0423\u0434\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0441\u0442\u0438\u0447\u044c \u0432\u0441\u0435\u0433\u043e, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043e: \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c <br \/>  \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u041e\u0417\u0423 \u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u041c\u041a, \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 \u044f\u0447\u0435\u0435\u043a, \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c <br \/>  \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0443\u044e \u0441\u0443\u043c\u043c\u0443 \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u044f\u0447\u0435\u0435\u043a (\u0432\u043e\u0442 \u0440\u0430\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435-\u0442\u043e *sarcastic*); <br \/>  \u0437\u0430\u043f\u0438\u0441\u044c\/\u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043a\u0443\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c \u0437\u0430 \u0430\u0434\u0440\u0435\u0441 $0440 (\u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e) \u0432\u043d\u043e\u0441\u0438\u0442 \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u044b\u0439 <br \/>  \u0445\u0430\u043e\u0441 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0441\u0442\u0435\u043a\u0430. \u041c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0430\u0436 \u0448\u0435\u0441\u0442\u044c \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0438\u0437 <br \/>  \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443\u043c\u0430 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u0432\u044b\u0448\u0435.<br \/>  \u0421\u0443\u0434\u044f \u043f\u043e \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u00ab\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u00bb, \u0437\u0430\u0448\u0438\u0442\u0430\u044f \u0432 \u00ab\u0423\u043c\u043a\u0443\u00bb, \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 1\u041a\u0431\u0430\u0439\u0442. <br \/>  \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0437\u0430\u0434\u0430\u0447 \u0431\u044b\u043b\u043e \u0443\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0432 1 \u041a\u0431\u0430\u0439\u0442, \u0447\u0442\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0443\u0434\u0430\u043b\u043e\u0441\u044c (\u0434\u0430\u0436\u0435 \u0441 <br \/>  \u0437\u0430\u043f\u0430\u0441\u043e\u043c), \u043d\u043e \u0438\u0437-\u0437\u0430 LCD-\u0434\u0438\u0441\u043f\u043b\u0435\u044f \u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0451 \u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u043a\u043e\u0434 <br \/>  \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b\u0441\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0434\u0432\u043e\u0435. <br \/>  \u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u00ab\u0423\u043c\u043a\u0430\u00bb (professional edition) \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043d\u0430 <br \/>  \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435 \u043c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u041a580\u0418\u041a80\u0410, \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u043a\u043e\u0434\u044b \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434, <br \/>   \u0438 \u0437\u0430\u0442\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0435\u0451 \u043b\u0438\u0431\u043e \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e, \u043b\u0438\u0431\u043e \u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u0438. \u042f \u043d\u0435 \u0437\u043d\u0430\u044e, \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u044b\u043b\u043e <br \/>  \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0432 \u00ab\u0423\u043c\u043a\u0435\u00bb, \u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043c\u043d\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0430\u043a\u043e\u0439 \u043e\u043f\u0446\u0438\u0438 \u0432 <br \/>  \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043d\u0435\u0442 (\u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u0432\u043f\u0440\u043e\u0447\u0435\u043c, \u043c\u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u043b\u043e \u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432), \u0441 \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u0435\u043c \u043f\u0440\u0438\u043c\u0443 <br \/>  \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u044d\u0442\u043e\u0433\u043e. \u0417\u0430 \u044d\u0442\u043e \u044f \u043b\u0430\u0441\u043a\u043e\u0432\u043e \u043f\u0440\u043e\u0437\u0432\u0430\u043b \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0435\u0435\u0441\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u00ab\u041d\u0435\u0434\u043e\u0443\u043c\u043a\u043e\u0439\u00bb. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/baa\/9af\/65c\/baa9af65c48d4deaa00a3adb462ae402.jpg\"\/><\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u042d\u0442\u043e \u043a\u043e\u0434<\/b><\/p>\n<div class=\"spoiler_text\">.include \u00abm16def.inc\u00bb<br \/>  .device ATmega16<br \/>  .def count = r18; r18 \u2014 \u0441\u0447\u0451\u0442\u0447\u0438\u043a<br \/>  .def mode = r19; r19 \u2014 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u0440\u0435\u0436\u0438\u043c\u043e\u0432<br \/>  .def buf = r25; \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439<br \/>  .def rLCD = r22; \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 LCD<br \/>  .def rKey = r20; \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0438 \u043f\u043e \u043c\u0435\u043b\u043e\u0447\u0438<\/p>\n<p>  ; \u043a\u043e\u043c\u0430\u043d\u0434\u044b LCD<br \/>  .equ off = 0b00001000 ;off<br \/>  .equ clrSc = 0b00000001 ;clear<br \/>  .equ config = 0b00111000; 8bit, 2 lines<br \/>  .equ incr = 0b00000110; addr+ (\u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u0430, \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d)<br \/>  .equ on = 0b00001100 ;on<br \/>  .equ right = 0b00010100; \u0441\u0434\u0432\u0438\u0433 \u0432\u043f\u0440\u0430\u0432\u043e<br \/>  .equ down = 0b11000000; \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0432\u0442\u043e\u0440\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443<br \/>  .equ up = 0b10000000; \u043d\u0430 \u043f\u0435\u0440\u0432\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443<br \/>  .equ cursor = 0b00001111; \u043c\u0438\u0433\u0430\u044e\u0449\u0438\u0439 \u043a\u0443\u0440\u0441\u043e\u0440<br \/>  .equ noCursor = 0b00001100<br \/>  .equ left = 0b00010000; \u0432\u043b\u0435\u0432\u043e<\/p>\n<p>  ; \u0434\u0430\u043d\u043d\u044b\u0435 LCD (\u043f\u043e\u0440\u0442 D)<br \/>  .equ _dp = DDRD <br \/>  .equ _dpo = PORTD<br \/>  .equ _dpi = PIND<\/p>\n<p>  ; \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 LCD (\u043f\u043e\u0440\u0442 \u0421)<br \/>  .equ _cp = DDRC <br \/>  .equ _cpo = PORTC<br \/>  .equ rs = 0<br \/>  .equ rw = 1<br \/>  .equ e = 7<\/p>\n<p>  ; \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430 (\u043f\u043e\u0440\u0442 A)<br \/>  .equ _mp = DDRA<br \/>  .equ _mpi = PINA <br \/>  .equ _mpo = PORTA<\/p>\n<p>  ; \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u044b (\u043f\u043e\u0440\u0442 B)<br \/>  .equ BUT = PINB <br \/>  .equ BUTddr = DDRB<br \/>  .equ BUTp = PORTB<br \/>  .equ P = 0; \u043a\u043d\u043e\u043f\u043a\u0430 \u041f (\u0440\u0435\u0436\u0438\u043c \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430\/\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u043f\u0430\u043c\u044f\u0442\u0438)<br \/>  .equ quit = 1; \u0432\u044b\u0445\u043e\u0434<br \/>  .equ exe = 2; \u043a\u043d\u043e\u043f\u043a\u0430 \u0412\u041f (\u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435)<br \/>  .equ enter = 3; \u043a\u043d\u043e\u043f\u043a\u0430 \u0432\u0432\u043e\u0434\u0430<br \/>  .equ space = 4; \u043a\u043d\u043e\u043f\u043a\u0430 &quot;_&quot;<br \/>  .equ CF = 5; \u043a\u043d\u043e\u043f\u043a\u0430 \u0417\u041a (\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043e\u0439)<br \/>  .equ CS = 6; \u043a\u043d\u043e\u043f\u043a\u0430 \u041a\u0421 (\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430)<br \/>  .equ AM = 7; \u043a\u043d\u043e\u043f\u043a\u0430 \u041f\u041c (\u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430)<br \/>  ; \u0444\u043b\u0430\u0433 \u0422 \u2014 \u0440\u0435\u0436\u0438\u043c \u0432\u0432\u043e\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<p>  ;======================= \u043c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u043e\u043f\u0440\u043e\u0441\u0430 \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u043e\u0439 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b====================<br \/>  .macro matrix<br \/>  rcall _exit<br \/>  ldi rKey, 0 <br \/>  ldi r16, 0xff; \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0435\u0434\u0438\u043d\u0438\u0446 \u0432 r16<br \/>  cbi _mpo,  @0; \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0431\u0438\u0442, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0441\u0442\u043e\u043b\u0431\u0446\u0443<br \/>  out _mpo, r16; \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u0432 portd<br \/>  in r16, _mpi; \u0447\u0442\u0435\u043d\u0438\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0440\u0442\u0430 D<br \/>  cpi r16,  @1 <br \/>  breq ein <br \/>  cpi r16,  @2 <br \/>  breq zwei <br \/>  cpi r16,  @3 <br \/>  breq drei <br \/>  cpi r16,  @4<br \/>  breq vier <br \/>  sbi _mpo,  @0; \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0431\u0438\u0442, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0441\u0442\u043e\u043b\u0431\u0446\u0443 (\u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u0432 \u0438\u0441\u0445. \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435)<br \/>  rjmp  @9; \u0435\u0441\u043b\u0438 \u043d\u0438 \u043e\u0434\u043d\u0430 \u0438\u0437 \u043a\u043d\u043e\u043f\u043e\u043a \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435 \u043d\u0435 \u0431\u044b\u043b\u0430 \u043d\u0430\u0436\u0430\u0442\u0430, <br \/>  ; \u0442\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u043c\u0435\u0442\u043a\u0443 \u2014 \u043c\u0430\u043a\u0440\u043e\u0441 \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u043b\u0438\u0431\u043e \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u043e\u043f\u0440\u043e\u0441\u0430<\/p>\n<p>  ein: <br \/>  ldi rKey,  @5; \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0432 rKey \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043d\u0430\u0436\u0430\u0442\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<br \/>  ldi rLCD,  @5; \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0442\u043e\u0433\u043e \u0436\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d<br \/>  rcall _BF<br \/>  rcall _charInput<br \/>  sbi _mpo,  @0; \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0431\u0438\u0442, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0441\u0442\u043e\u043b\u0431\u0446\u0443 (\u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u0432 \u0438\u0441\u0445. \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435)<br \/>  rjmp _check; \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u043c\u0435\u0442\u043a\u0443 view<\/p>\n<p>  zwei: <br \/>  ldi rKey,  @6<br \/>  ldi rLCD,  @6<br \/>  rcall _BF<br \/>  rcall _charInput<br \/>  sbi _mpo,  @0<br \/>  rjmp _check<\/p>\n<p>  drei:<br \/>  ldi rKey,  @7<br \/>  ldi rLCD,  @7<br \/>  rcall _BF<br \/>  rcall _charInput<br \/>  sbi _mpo,  @0<br \/>  rjmp _check<\/p>\n<p>  vier:<br \/>  ldi rKey,  @8<br \/>  ldi rLCD,  @8<br \/>  rcall _BF<br \/>  rcall _charInput<br \/>  sbi _mpo,  @0<br \/>  rjmp _check<br \/>  .endmacro<\/p>\n<p>  .cseg<\/p>\n<p>  .org 0<\/p>\n<p>  ; \u0441\u0442\u0435\u043a<br \/>  ldi r16, Low(RAMEND)<br \/>  out SPL, r16<br \/>  ldi r16, High(RAMEND)<br \/>  out SPH, r16<\/p>\n<p>  sbi _cp, 0 ;rs<br \/>  sbi _cp, 1 ;rw<br \/>  sbi _cp, 7 ;e<\/p>\n<p>  ; \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u0440\u0442\u043e\u0432<br \/>  ldi r16, 0b00001111<br \/>  out _mp, r16; DDRA \u2014 \u0432\u0445\u043e\u0434<br \/>  ldi r16, 0b11110000 <br \/>  out _mpo, r16; \u0441 \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u043e\u0439<\/p>\n<p>  ldi r16, 0x00<br \/>  out BUTddr, r16; DDRB \u2014 \u0432\u0445\u043e\u0434<br \/>  ldi r16, 0xff<br \/>  out BUTp, r16; \u0441 \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u043e\u0439<\/p>\n<p>  ; \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u0438\u0441\u043f\u043b\u0435\u044f<br \/>  rcall altInit<\/p>\n<p>  ;================================= \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0446\u0438\u043a\u043b ==============================<br \/>  go:<br \/>  rcall _resetLCD<br \/>  ldi xl, 0x00<br \/>  ldi xh, 0x00<br \/>  ldi yl, 0x00<br \/>  ldi yh, 0x00<br \/>  ldi zl, 0x00<br \/>  ldi zh, 0x00<br \/>  clt <br \/>  clc<br \/>  clh<br \/>  clr mode <br \/>  clr buf<br \/>  ldi count, 1 <\/p>\n<p>  ; ========================== \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0440\u0435\u0436\u0438\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u044b =============================<br \/>  modeCheck:<br \/>  sbis BUT, P; \u0440\u0435\u0436\u0438\u043c \u041f<br \/>  rjmp _P<br \/>  sbis BUT, CF; \u0440\u0435\u0436\u0438\u043c \u0417\u041a<br \/>  rjmp _setConst <br \/>  sbis BUT, CS; \u0440\u0435\u0436\u0438\u043c \u041a\u0421<br \/>  rjmp _setSum<br \/>  sbis BUT, AM; \u0440\u0435\u0436\u0438\u043c \u041f\u041c<br \/>  rjmp _setArray<br \/>  rjmp modeCheck <\/p>\n<p>  _setConst: <br \/>  sbr mode, 1; \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u0440\u0435\u0436\u0438\u043c\u0430 \u0417\u041a<br \/>  ; \u0432\u044b\u0432\u043e\u0434 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0440\u0435\u0436\u0438\u043c\u0435 <br \/>  rcall _clear<br \/>  rcall _labelWrite; write<br \/>  rcall _labelSpace; _<br \/>  rcall _labelConst; const<br \/>  rcall _point;.<br \/>  rcall _down <br \/>  rcall _labelAddr; address<br \/>  rcall _labelOne; 1<br \/>  rcall _colon;:<br \/>  rcall _labelZero; 0<br \/>  rcall _cursor<br \/>  rjmp scan<\/p>\n<p>  _setSum: <br \/>  sbr mode, 5; \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u0440\u0435\u0436\u0438\u043c\u0430 \u041a\u0421<br \/>  rcall _clear<br \/>  rcall _labelSum; checksum<br \/>  rcall _down <br \/>  rcall _labelAddr; address<br \/>  rcall _labelOne; 1<br \/>  rcall _colon;:<br \/>  rcall _labelZero; 0<br \/>  rcall _cursor<br \/>  rjmp scan<\/p>\n<p>  _setArray:<br \/>  sbr mode, 9; \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u0440\u0435\u0436\u0438\u043c\u0430 \u041f\u041c<br \/>  rcall _clear<br \/>  rcall _mArray<br \/>  rcall _down<br \/>  rcall _labelAddr<br \/>  rcall _labelOne<br \/>  rcall _colon<br \/>  rcall _labelZero<br \/>  rcall _cursor<br \/>  rjmp scan<\/p>\n<p>  _check:; \u043f\u043e\u0441\u043b\u0435 \u0432\u0432\u043e\u0434\u0430 \u0446\u0438\u0444\u0440\u044b \u2014 \u0441\u044e\u0434\u0430<br \/>  sbrc mode, 0; \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0440\u0435\u0436\u0438\u043c<br \/>  rjmp _const; \u0435\u0441\u043b\u0438 \u0417\u041a, \u041a\u0421 \u0438\u043b\u0438 \u041f\u041c, \u0442\u043e \u0441\u044e\u0434\u0430<br \/>  rjmp _view<\/p>\n<p>  _P:; \u0440\u0435\u0436\u0438\u043c \u041f<br \/>  rcall _clear<br \/>  rcall _browse<br \/>  rcall _labelSpace<br \/>  rcall _labelZero<br \/>  rcall _cursor<\/p>\n<p>  scan:; \u043e\u043f\u0440\u043e\u0441 \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u043e\u0439 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b<br \/>  rcall _exit<br \/>  rcall _cursor<br \/>  matrix 0, 0b11101110, 0b11011110, 0b10111110, 0b01111110, 3, 7, 11, 15, next<\/p>\n<p>  next: <br \/>  matrix 1, 0b11101101, 0b11011101, 0b10111101, 0b01111101, 2, 6, 10, 14, next1<\/p>\n<p>  next1:<br \/>  matrix 2, 0b11101011, 0b11011011, 0b10111011, 0b01111011, 1, 5, 9, 13, next2 <\/p>\n<p>  next2:<br \/>  matrix 3, 0b11100111, 0b11010111, 0b10110111, 0b01110111, 0, 4, 8, 12, scan<\/p>\n<p>  rjmp scan<br \/>  ; ==========================================================================<\/p>\n<p>  ;========================== \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 \u0432\u0432\u043e\u0434\u0430====================<br \/>  _view:<br \/>  brts _input; \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 input, \u0435\u0441\u043b\u0438 \u0422-\u0444\u043b\u0430\u0433 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d (\u0442.\u0435. \u0440\u0435\u0436\u0438\u043c \u0432\u0432\u043e\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0445)<br \/>  rcall _exit<br \/>  sbic BUT, enter; \u0435\u0441\u043b\u0438 \u043d\u0435 \u043d\u0430\u0436\u0430\u0442\u0430 \u043a\u043d\u043e\u043f\u043a\u0430 \u0432\u0432\u043e\u0434\u0430,<br \/>  rjmp _view; \u0442\u043e \u0437\u0430\u043c\u044b\u043a\u0430\u0435\u043c \u0446\u0438\u043a\u043b \u0438 \u043e\u0436\u0438\u0434\u0430\u0435\u043c \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043d\u043e\u043f\u043e\u043a \u0412\u042b\u041f., \u0441\u0431\u0440\u043e\u0441\u0430 \u0438\u043b\u0438 \u0432\u0432\u043e\u0434\u0430<br \/>  cpi count, 1; \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430: \u0435\u0441\u043b\u0438 1,<br \/>  breq one; \u0442\u043e \u0432\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u0430\u044f \u0446\u0438\u0444\u0440\u0430<br \/>  cpi count, 2; \u0435\u0441\u043b\u0438 2,<br \/>  breq two; \u0442\u043e \u0432\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u0442\u043e\u0440\u0430\u044f<br \/>  cpi count, 3; \u0435\u0441\u043b\u0438 3,<br \/>  breq three; \u0442\u043e \u0432\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0446\u0438\u0444\u0440\u0430<br \/>  rjmp _view <\/p>\n<p>  ; \u0432\u0432\u043e\u0434 \u043f\u0435\u0440\u0432\u043e\u0439 \u0446\u0438\u0444\u0440\u044b \u0430\u0434\u0440\u0435\u0441\u0430<br \/>  one:<br \/>  mov xh, rKey <br \/>  inc count <br \/>  rjmp scan; \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a \u043e\u043f\u0440\u043e\u0441\u0443 \u043c\u0430\u0442. \u043a\u043b\u0430\u0432.<\/p>\n<p>  ; \u0432\u0432\u043e\u0434 \u0432\u0442\u043e\u0440\u043e\u0439 \u0446\u0438\u0444\u0440\u044b \u0430\u0434\u0440\u0435\u0441\u0430<br \/>  two:<br \/>  mov xl, rKey <br \/>  swap xl <br \/>  inc count <br \/>  rjmp scan<\/p>\n<p>  ; \u0432\u0432\u043e\u0434 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0446\u0438\u0444\u0440\u044b \u0430\u0434\u0440\u0435\u0441\u0430<br \/>  three:<br \/>  rcall _noCursor; \u043a\u0443\u0440\u0441\u043e\u0440 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d<br \/>  add xl, rKey <br \/>  inc count <br \/>  rjmp finish; \u043f\u043e\u0441\u043b\u0435 \u0432\u0432\u043e\u0434\u0430 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0446\u0446\u0444\u0440\u044b, \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 finish<br \/>  ;==================================================================================<\/p>\n<p>  ;================================== \u0440\u0435\u0436\u0438\u043c \u0432\u0432\u043e\u0434\u0430 ================================<br \/>  _input:<br \/>  rcall _exit<br \/>  sbic BUT, enter; \u0435\u0441\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u0430 \u043a\u043d\u043e\u043f\u043a\u0430 \u0432\u0432\u043e\u0434\u0430, \u0442\u043e \u043f\u0435\u0440\u0435\u043f\u0440\u044b\u0433\u0438\u0432\u0430\u0435\u043c \u043d\u0430 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430<br \/>  rjmp _input <br \/>  cpi count, 1; \u0435\u0441\u043b\u0438 \u0441\u0447\u0451\u0442\u0447\u0438\u043a \u0440\u0430\u0432\u0435\u043d 1, \u0442\u043e \u0432\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u0430\u044f \u0446\u0438\u0444\u0440\u0430<br \/>  breq first<br \/>  cpi count, 2; \u0435\u0441\u043b\u0438 2, \u0442\u043e \u0432\u0442\u043e\u0440\u0430\u044f<br \/>  breq second<br \/>  rjmp _input<\/p>\n<p>  first:; \u0432\u0432\u043e\u0434 \u043f\u0435\u0440\u0432\u043e\u0439 \u0446\u0438\u0444\u0440\u044b<br \/>  mov buf, rKey <br \/>  swap buf <br \/>  inc count <br \/>  rjmp scan<\/p>\n<p>  second:; \u0432\u0432\u043e\u0434 \u0432\u0442\u043e\u0440\u043e\u0439 \u0446\u0438\u0444\u0440\u044b<br \/>  rcall _noCursor<br \/>  add buf, rKey <br \/>  inc count <br \/>  rjmp _waitFor<br \/>  ;=================================================================================<\/p>\n<p>  ;======================= \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0432\u0432\u043e\u0434\u0430 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0446\u0438\u0444\u0440\u044b ======================<br \/>  finish:; \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0441\u044e\u0434\u0430 \u043f\u043e\u0441\u043b\u0435 \u0432\u0432\u043e\u0434\u0430 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0446\u0438\u0444\u0440\u044b<br \/>  brts link; \u0435\u0441\u043b\u0438 \u0422-\u0444\u043b\u0430\u0433 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d, \u0442\u043e \u044d\u0442\u043e \u0440\u0435\u0436\u0438\u043c \u0432\u0432\u043e\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u2014 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 scan<br \/>  rcall _exit<br \/>  sbis BUT, exe; \u043a\u043d\u043e\u043f\u043a\u0430 \u0412\u042b\u041f.<br \/>  rjmp view; \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 view, \u0435\u0441\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u0430 \u0412\u042b\u041f.<br \/>  sbic BUT, space; \u043a\u043d\u043e\u043f\u043a\u0430 &quot;_&quot;<br \/>  rjmp finish<br \/>  ldi count, 1; \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c \u0441\u0447\u0451\u0442\u0447\u0438\u043a<br \/>  set; \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0422-\u0444\u043b\u0430\u0433 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u0430<br \/>  ; \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u00abWRITE DATA\u00bb<br \/>  rcall _clear<br \/>  rcall _labelWrite<br \/>  rcall _labelSpace<br \/>  rcall _labelData<br \/>  ; \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0432\u0442\u043e\u0440\u0443\u044e,<br \/>  rcall _down<br \/>  ; \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u0443\u0440\u0441\u043e\u0440<br \/>  rcall _cursor<br \/>  rjmp finish<br \/>  link:<br \/>  rjmp scan<br \/>  ; ============================================================================<\/p>\n<p>  ; =============== \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u044f\u0447\u0435\u0439\u043a\u0438 (\u043f\u043e\u0441\u043b\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 \u0412\u042b\u041f. -&gt; \u0441\u044e\u0434\u0430)<br \/>  view: <br \/>  ; \u0432\u044b\u0432\u043e\u0434 \u043d\u0430\u0434\u043f\u0438\u0441\u0438 \u00abBROWSE XXXX\u00bb<br \/>  rcall _clear<br \/>  rcall _browse; BROWSE<br \/>  rcall _labelSpace; _<br \/>  mov rLCD, xh; \u043f\u0435\u0440\u0432\u044b\u0435 XX <br \/>  rcall _charFromMemory<br \/>  mov rLCD, xl; \u0432\u0442\u043e\u0440\u044b\u0435 XX<br \/>  rcall _charFromMemory<br \/>  ; \u0432\u044b\u0432\u043e\u0434 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u044f\u0447\u0435\u0439\u043a\u0438 \u043f\u0430\u043c\u044f\u0442\u0438<br \/>  rcall _noCursor<br \/>  rcall _down<br \/>  ld rLCD, X+<br \/>  rcall _charFromMemory<br \/>  view1:<br \/>  rcall _exit<br \/>  ldi count, 1 <br \/>  sbic BUT, space; \u0435\u0441\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u0430 \u043a\u043d\u043e\u043f\u043a\u0430 &quot;_&quot;., \u0442\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u044f\u0447\u0435\u0439\u043a\u0435 \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u043d\u0430 1 \u0431\u043e\u043b\u044c\u0448\u0435<br \/>  rjmp view1<br \/>  rcall _delay1<br \/>  rjmp view<br \/>  ; =============================================================================<\/p>\n<p>  ; ========================= \u0437\u0430\u043f\u0438\u0441\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u043f\u0430\u043c\u044f\u0442\u0438 =======================<br \/>  input: <br \/>  st X, buf <br \/>  clt; \u043e\u0447\u0438\u0449\u0430\u0435\u043c \u0422-\u0444\u043b\u0430\u0433 \u043f\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u0440\u0435\u0436\u0438\u043c\u0430 \u0432\u0432\u043e\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<br \/>  rjmp go<br \/>  ;==================================================================================<\/p>\n<p>  ; ========== \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u0412\u042b\u041f. \u043b\u0438\u0431\u043e &quot;_&quot; \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u044f \u0432\u0432\u043e\u0434\u0430 ===============<br \/>  _waitFor:; \u043f\u043e\u0441\u043b\u0435 \u0432\u0432\u043e\u0434\u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u0446\u0438\u0444\u0440\u044b (\u0434\u0430\u043d\u043d\u044b\u0435) \u2014 \u0441\u044e\u0434\u0430<br \/>  sbrc mode, 0<br \/>  rjmp _WC <br \/>  rcall _exit<br \/>  sbis BUT, exe; \u0435\u0441\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u0430 \u0412\u042b\u041f., \u0442\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 input<br \/>  rjmp input<br \/>  sbic BUT, space; \u0435\u0441\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u0430 &quot;_&quot;,<br \/>  rjmp _waitFor; \u0442\u043e \u043f\u0435\u0440\u0435\u043f\u0440\u044b\u0433\u0438\u0432\u0430\u0435\u043c \u044d\u0442\u043e,<br \/>  st X+, buf; \u043f\u0438\u0448\u0435\u043c \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u0432\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435,<br \/>  ldi count, 1; \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c \u0441\u0447\u0451\u0442\u0447\u0438\u043a<br \/>  rcall _clear<br \/>  rcall _labelWrite<br \/>  rcall _labelSpace<br \/>  rcall _labelData<br \/>  rcall _down<br \/>  rjmp scan<\/p>\n<p>  _WC:<br \/>  rcall _exit<br \/>  sbic BUT, exe <br \/>  rjmp _WC<br \/>  rjmp _execConst<br \/>  ; ==============================================================================<\/p>\n<p>  ; =============================== \u0440\u0435\u0436\u0438\u043c \u0417\u041a (\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043e\u0439) ==================<br \/>  _const:<br \/>  brts to_input<br \/>  rcall _exit<br \/>  sbic BUT, enter; \u0435\u0441\u043b\u0438 \u043d\u0435 \u043d\u0430\u0436\u0430\u0442\u0430 \u043a\u043d\u043e\u043f\u043a\u0430 \u0432\u0432\u043e\u0434\u0430,<br \/>  rjmp _const; \u0442\u043e \u0437\u0430\u043c\u044b\u043a\u0430\u0435\u043c \u0446\u0438\u043a\u043b \u0438 \u043e\u0436\u0438\u0434\u0430\u0435\u043c \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043d\u043e\u043f\u043e\u043a \u0412\u042b\u041f., \u0441\u0431\u0440\u043e\u0441\u0430 \u0438\u043b\u0438 \u0432\u0432\u043e\u0434\u0430<br \/>  cpi count, 1; \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430: \u0435\u0441\u043b\u0438 1,<br \/>  breq _one; \u0442\u043e \u0432\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u0430\u044f \u0446\u0438\u0444\u0440\u0430<br \/>  cpi count, 2; \u0435\u0441\u043b\u0438 2,<br \/>  breq _two; \u0442\u043e \u0432\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u0442\u043e\u0440\u0430\u044f<br \/>  cpi count, 3; \u0435\u0441\u043b\u0438 3,<br \/>  breq _three; \u0442\u043e \u0432\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0446\u0438\u0444\u0440\u0430<br \/>  rjmp _const; \u0432 \u0446\u0438\u043a\u043b<br \/>  to_input:<br \/>  rjmp _input<\/p>\n<p>  ; \u0432\u0432\u043e\u0434 \u043f\u0435\u0440\u0432\u043e\u0439 \u0446\u0438\u0444\u0440\u044b \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430<br \/>  _one:<br \/>  sbrc mode, 4; \u0435\u0441\u043b\u0438 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d 2-\u0439 \u0431\u0438\u0442 (\u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0432\u0432\u043e\u0434\u0430 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430),<br \/>  rjmp _ad31; &lt; \u2014 \u0434\u0432\u0438\u0433\u0430\u0435\u043c \u0441\u044e\u0434\u0430<br \/>  sbrc mode, 1; \u0435\u0441\u043b\u0438 \u043d\u0435 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d 1-\u0439 \u0431\u0438\u0442 \u0432 r19 (\u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0432\u0432\u043e\u0434\u0430 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430),<br \/>  rjmp inpConst1; \u0442\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u044d\u0442\u043e<br \/>  mov xh, rKey <br \/>  inc count <br \/>  rjmp scan <br \/>  ; \u0432\u0432\u043e\u0434 \u043f\u0435\u0440\u0432\u043e\u0439 \u0446\u0438\u0444\u0440\u044b \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430<br \/>  inpConst1:<br \/>  mov yh, rKey<br \/>  inc count<br \/>  rjmp scan<\/p>\n<p>  ; \u0432\u0432\u043e\u0434 \u0432\u0442\u043e\u0440\u043e\u0439 \u0446\u0438\u0444\u0440\u044b \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430<br \/>  _two:<br \/>  sbrc mode, 4; \u0435\u0441\u043b\u0438 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d 2-\u0439 \u0431\u0438\u0442 (\u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0432\u0432\u043e\u0434\u0430 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430),<br \/>  rjmp _ad32; &lt; \u2014 \u0434\u0432\u0438\u0433\u0430\u0435\u043c \u0441\u044e\u0434\u0430<br \/>  sbrc mode, 1; \u0435\u0441\u043b\u0438 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d 1-\u0439 \u0431\u0438\u0442 \u0432 r19 (\u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0432\u0432\u043e\u0434\u0430 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430),<br \/>  rjmp inpConts2; \u0442\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 inpConst1<br \/>  mov xl, rKey <br \/>  swap xl <br \/>  inc count<br \/>  rjmp scan<br \/>  ; \u0432\u0432\u043e\u0434 \u0432\u0442\u043e\u0440\u043e\u0439 \u0446\u0438\u0444\u0440\u044b \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430<br \/>  inpConts2:<br \/>  mov yl, rKey <br \/>  swap yl <br \/>  inc count <br \/>  rjmp scan<\/p>\n<p>  ; \u0432\u0432\u043e\u0434 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0446\u0438\u0444\u0440\u044b \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430<br \/>  _three:<br \/>  sbrc mode, 4; \u0435\u0441\u043b\u0438 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d 2-\u0439 \u0431\u0438\u0442 (\u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0432\u0432\u043e\u0434\u0430 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430),<br \/>  rjmp _ad33; &lt; \u2014 \u0434\u0432\u0438\u0433\u0430\u0435\u043c \u0441\u044e\u0434\u0430<br \/>  sbrc mode, 1<br \/>  rjmp inpConst3<br \/>  rcall _noCursor<br \/>  add xl, rKey; rKey -&gt; \u0432 \u043c\u043b\u0430\u0434\u0448\u0443\u044e \u0442\u0435\u0442\u0440\u0430\u0434\u0443 \u043c\u043b\u0430. \u0431\u0430\u0439\u0442\u0430 \u0440\u0435\u0433. \u043f\u0430\u0440\u044b X<br \/>  inc count <br \/>  rjmp constEnd; \u043f\u043e\u0441\u043b\u0435 \u0432\u0432\u043e\u0434\u0430 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0446\u0446\u0444\u0440\u044b, \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 constEnd<br \/>  ; \u0432\u0432\u043e\u0434 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0446\u0438\u0444\u0440\u044b \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430<br \/>  inpConst3:<br \/>  rcall _noCursor<br \/>  add yl, rKey<br \/>  inc count<br \/>  rjmp constEnd<\/p>\n<p>  constEnd:; \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0441\u044e\u0434\u0430 \u043f\u043e\u0441\u043b\u0435 \u0432\u0432\u043e\u0434\u0430 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0446\u0438\u0444\u0440\u044b<br \/>  brts _link; \u0435\u0441\u043b\u0438 \u0422-\u0444\u043b\u0430\u0433 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d, \u0442\u043e \u044d\u0442\u043e \u0440\u0435\u0436\u0438\u043c \u0432\u0432\u043e\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u2014 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 scan<br \/>  sbrc mode, 1; \u0435\u0441\u043b\u0438 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0432\u0432\u043e\u0434\u0430 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430,<br \/>  rjmp _ad2; \u0442\u043e \u0441\u044e\u0434\u0430<br \/>  sbrc mode, 2; \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0440\u0435\u0436\u0438\u043c\u0430 \u00ab\u041a\u0421\u00bb \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d,<br \/>  rjmp _ifCheckSum; \u0442\u043e \u0441\u044e\u0434\u0430<br \/>  sbrc mode, 3; \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0440\u0435\u0436\u0438\u043c\u0430 \u00ab\u041f\u041c\u00bb \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d,<br \/>  rjmp _ifArray; \u0442\u043e \u0441\u044e\u0434\u0430<br \/>  rcall _exit<br \/>  sbic BUT, space; \u0435\u0441\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u0430 \u043a\u043d\u043e\u043f\u043a\u0430 &quot;_&quot;,<br \/>  rjmp constEnd; \u0442\u043e \u043f\u0435\u0440\u0435\u043f\u0440\u044b\u0433\u0438\u0432\u0430\u0435\u043c \u044d\u0442\u043e,<br \/>  ldi count, 1; \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c \u0441\u0447\u0451\u0442\u0447\u0438\u043a<br \/>  sbr mode, 3; \u0432 r19 \u0442\u0435\u043f\u0435\u0440\u044c 0b00000011 (\u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0432\u0432\u043e\u0434\u0430 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u0432 \u0417\u041a)<br \/>  ; \u043e\u0431\u043b\u0430\u0433\u043e\u0440\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u044d\u043a\u0440\u0430\u043d\u0430<br \/>  ;address2<br \/>  rcall _down<br \/>  rcall _labelAddr<br \/>  rcall _labelTwo<br \/>  rcall _colon<br \/>  rcall _labelZero<br \/>  rcall _labelSpace<br \/>  rcall _labelSpace<br \/>  rcall _labelSpace<br \/>  rcall _left<br \/>  rcall _left<br \/>  rcall _left<br \/>  rjmp scan<\/p>\n<p>  _ad2:; \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0441\u044e\u0434\u0430 \u043f\u043e\u0441\u043b\u0435 \u0432\u0432\u043e\u0434\u0430 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430<br \/>  sbrc mode, 2; \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u00ab\u041a\u0421\u00bb \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d, \u0442\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438<br \/>  rjmp _toCheckSum <br \/>  sbrc mode, 3; \u0435\u0441\u043b\u0438 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u00ab\u041f\u041c\u00bb,<br \/>  rjmp _toArray; &lt; \u2014 \u0441\u044e\u0434\u0430<br \/>  rcall _exit<br \/>  sbic BUT, space; \u0435\u0441\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u0430 \u043a\u043d\u043e\u043f\u043a\u0430 &quot;_&quot;,<br \/>  rjmp _ad2; \u0442\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u044d\u0442\u043e,<br \/>  ldi count, 1; \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c \u0441\u0447\u0451\u0442\u0447\u0438\u043a<br \/>  set; \u0438 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0432\u0432\u043e\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<br \/>  ; \u043e\u0431\u043b\u0430\u0433\u043e\u0440\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u044d\u043a\u0440\u0430\u043d\u0430<br \/>  ; const<br \/>  rcall _down<br \/>  rcall _labelConst<br \/>  rcall _colon<br \/>  rcall _labelSpace<br \/>  rcall _labelSpace<br \/>  rcall _labelSpace<br \/>  rcall _labelSpace<br \/>  rcall _labelSpace<br \/>  rcall _labelSpace<br \/>  rcall _labelSpace<br \/>  rcall _left<br \/>  rcall _left<br \/>  rcall _left<br \/>  rcall _left<br \/>  rcall _left<br \/>  rcall _left<br \/>  rcall _left<br \/>  rjmp constEnd; -&gt; \u0432 \u0446\u0438\u043a\u043b<\/p>\n<p>  _link: <br \/>  rjmp scan<\/p>\n<p>  _ifCheckSum:; \u0432\u0435\u0442\u043a\u0430 \u043e\u0442 \u00ab\u0417\u041a\u00bb \u043a \u00ab\u041a\u0421\u00bb, \u0435\u0441\u043b\u0438 2-\u0439 \u0431\u0438\u0442 \u0432 mode \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d<br \/>  sbic BUT, space<br \/>  rjmp _ifCheckSum<br \/>  ldi count, 1<br \/>  ; \u043e\u0431\u043b\u0430\u0433\u043e\u0440\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u044d\u043a\u0440\u0430\u043d\u0430:<br \/>  ; address2<br \/>  rcall _down<br \/>  rcall _labelAddr<br \/>  rcall _labelTwo<br \/>  rcall _colon<br \/>  rcall _labelZero<br \/>  rcall _labelSpace<br \/>  rcall _labelSpace<br \/>  rcall _labelSpace<br \/>  rcall _left<br \/>  rcall _left<br \/>  rcall _left<br \/>  sbr mode, 7; \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0432\u0432\u043e\u0434\u0430 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u00ab\u041a\u0421\u00bb<br \/>  rjmp scan<\/p>\n<p>  _toCheckSum:; \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u00ab\u041a\u0421\u00bb<br \/>  rcall _exit<br \/>  sbic BUT, exe; \u0435\u0441\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u0430 \u00ab\u0412\u042b\u041f\u00bb, \u0442\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u00ab\u041a\u0421\u00bb<br \/>  rjmp _toCheckSum<br \/>  ldi rKey, 0x00; \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u043d\u0443\u043b\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b<br \/>  ldi buf, 0x00<br \/>  rjmp _SUM<\/p>\n<p>  _ifArray:; \u0432\u0435\u0442\u043a\u0430 \u043e\u0442 \u00ab\u041a\u0421\u00bb \u043a \u00ab\u041f\u041c\u00bb<br \/>  sbic BUT, space<br \/>  rjmp _ifArray <br \/>  ldi count, 1<br \/>  ; \u043e\u0431\u043b\u0430\u0433\u043e\u0440\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u044d\u043a\u0440\u0430\u043d\u0430<br \/>  ;address2<br \/>  rcall _down<br \/>  rcall _labelAddr<br \/>  rcall _labelTwo<br \/>  rcall _colon<br \/>  rcall _labelZero<br \/>  rcall _labelSpace<br \/>  rcall _labelSpace<br \/>  rcall _labelSpace<br \/>  rcall _left<br \/>  rcall _left<br \/>  rcall _left<br \/>  sbr mode, 11<br \/>  rjmp scan<\/p>\n<p>  _toArray:; \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043f\u043e\u0441\u043b\u0435 \u0432\u0432\u043e\u0434\u0430 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430<br \/>  ldi count, 1<br \/>  sbr mode, 27; 0b00011011 -&gt; r19 \u2014 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0432\u0432\u043e\u0434\u0430 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430<br \/>  rcall _exit<br \/>  sbic BUT, space<br \/>  rjmp _toArray<br \/>  ; \u043e\u0431\u043b\u0430\u0433\u043e\u0440\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u044d\u043a\u0440\u0430\u043d\u0430<br \/>  ; address3<br \/>  rcall _down<br \/>  rcall _labelAddr<br \/>  rcall _labelThree<br \/>  rcall _colon<br \/>  rcall _labelZero<br \/>  rcall _labelSpace<br \/>  rcall _labelSpace<br \/>  rcall _labelSpace<br \/>  rcall _left<br \/>  rcall _left<br \/>  rcall _left<br \/>  rjmp scan<\/p>\n<p>  ; \u043f\u0435\u0440\u0432\u0430\u044f \u0446\u0438\u0444\u0440\u0430 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 (\u041f\u041c)<br \/>  _ad31:<br \/>  mov zh, rKey<br \/>  inc count<br \/>  rjmp scan<\/p>\n<p>  ; \u0432\u0442\u043e\u0440\u0430\u044f \u0446\u0438\u0444\u0440\u0430 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430<br \/>  _ad32:<br \/>  mov zl, rKey<br \/>  swap zl <br \/>  inc count<br \/>  rjmp scan <\/p>\n<p>  ; \u0442\u0440\u0435\u0442\u044c\u044f \u0446\u0438\u0444\u0440\u0430 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430<br \/>  _ad33:<br \/>  rcall _noCursor<br \/>  add zl, rKey<br \/>  inc count<br \/>  rjmp _arrayEnd<\/p>\n<p>  ; \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u0412\u041f \u043f\u043e\u0441\u043b\u0435 \u0432\u0432\u043e\u0434\u0430 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430<br \/>  _arrayEnd:<br \/>  rcall _exit<br \/>  sbic BUT, exe<br \/>  rjmp _arrayEnd<br \/>  ldi buf, 0x00; \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043e\u0431\u043d\u0443\u043b\u0435\u043d\u0438\u0435 buf<br \/>  rjmp _execArray<\/p>\n<p>  ; =============================== \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0417\u041a =================================<br \/>  _execConst: <br \/>  ; \u043f\u0435\u0440\u0432\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435<br \/>  _ccp1:; yh &gt; xh?<br \/>  cp yh, xh<br \/>  brlo _errConst; if yh &lt; xh<br \/>  breq _eq1; if yh = xh<br \/>  rjmp _ccp2<\/p>\n<p>  _eq1:; if yh = xh<br \/>  cp yl, xl; yl &gt; xl?<br \/>  brlo _errConst; if yl &lt; xl<\/p>\n<p>  ; \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e, <br \/>  ; \u0442\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a\u043e \u0432\u0442\u043e\u0440\u043e\u043c\u0443 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e<br \/>  _ccp2:; if yh &gt; xh<br \/>  cp yh, xh; yh &gt; xh?<br \/>  breq _ccp22; if yh = xh<br \/>  st X+, buf<br \/>  rjmp _ccp2<\/p>\n<p>  _ccp22:; if yh = xh<br \/>  cp yl, xl; yl &gt; xl?<br \/>  brlo _end; if xl &gt; yl<br \/>  st X+, buf<br \/>  rjmp _ccp22<\/p>\n<p>  _errConst:; \u00abERROR\u00bb, \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e<br \/>  rcall _clear<br \/>  rcall _labelWrite<br \/>  rcall _labelSpace<br \/>  rcall _labelConst<br \/>  rcall _point<br \/>  rcall _down<br \/>  rcall _noCursor<br \/>  rcall _labelErr<br \/>  rjmp _wait<\/p>\n<p>  _end:; \u0432\u044b\u0445\u043e\u0434<br \/>  rjmp go<\/p>\n<p>  ; ====================== \u043f\u043e\u0434\u0441\u0447\u0451\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 ========================<br \/>  _SUM:<br \/>  ; \u043f\u0435\u0440\u0432\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435<br \/>  _scp1:; yh &gt; xh?<br \/>  cp yh, xh<br \/>  brlo _errSum; if yh &lt; xh<br \/>  breq _eq2; if yh = xh<br \/>  rjmp _scp2<\/p>\n<p>  _eq2:; if yh = xh<br \/>  cp yl, xl; yl &gt; xl?<br \/>  brlo _errSum; if yl &lt; xl<\/p>\n<p>  ; \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e, <br \/>  ; \u0442\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a\u043e \u0432\u0442\u043e\u0440\u043e\u043c\u0443 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e<br \/>  _scp2:; if yh &gt; xh<br \/>  cp yh, xh; yh &gt; xh?<br \/>  breq _scp22; if yh = xh<br \/>  rcall _exCS<br \/>  brcs _overflow<br \/>  rjmp _scp2<\/p>\n<p>  _scp22:; if yh = xh<br \/>  cp yl, xl; yl &gt; xl?<br \/>  brlo _showSum; if xl &gt; yl<br \/>  rcall _exCS<br \/>  brcs _overflow<br \/>  rjmp _scp22<\/p>\n<p>  _showSum:; \u0432\u044b\u0432\u043e\u0434 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u043d\u0430 \u044d\u043a\u0440\u0430\u043d<br \/>  rcall _clear<br \/>  rcall _labelSum<br \/>  rcall _down<br \/>  rcall _noCursor<br \/>  mov rLCD, rKey<br \/>  rcall _charFromMemory<br \/>  _wait:<br \/>  rcall _exit<br \/>  rjmp _wait<\/p>\n<p>  _errSum:; \u00abERROR\u00bb, \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e<br \/>  rcall _clear<br \/>  rcall _labelSum<br \/>  rcall _down<br \/>  rcall _noCursor<br \/>  rcall _labelErr<br \/>  rjmp _wait<\/p>\n<p>  _overflow:; \u043f\u0440\u0438 \u043f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0438\u0438 \u041a\u0421 255 \u2014 \u0441\u044e\u0434\u0430<br \/>  ; \u0441\u0431\u0440\u043e\u0441 \u0444\u043b\u0430\u0433\u043e\u0432 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u0438 \u043f\u043e\u043b\u0443\u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 (\u043d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439)<br \/>  clh<br \/>  clc<br \/>  ldi rKey, 0xff; \u0435\u0441\u043b\u0438 \u041a\u0421 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c 0xFF, \u0442\u043e \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f FF<br \/>  rjmp _showSum<\/p>\n<p>  _exCS:; \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u041a\u0421<br \/>  ld buf, X+ <br \/>  add rKey, buf<br \/>  ;rcall _cpixl<br \/>  ret<\/p>\n<p>  ; ============================ \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 ===============================<br \/>  _execArray:<br \/>  ; \u043f\u0435\u0440\u0432\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435<br \/>  _acp1:; yh &gt; xh?<br \/>  cp yh, xh<br \/>  brlo _errArr; if yh &lt; xh<br \/>  breq _eq3; if yh = xh<br \/>  rjmp _acp2<\/p>\n<p>  _eq3:; if yh = xh<br \/>  cp yl, xl; yl &gt; xl?<br \/>  brlo _errArr; if yl &lt; xl<\/p>\n<p>  ; \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e, <br \/>  ; \u0442\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a\u043e \u0432\u0442\u043e\u0440\u043e\u043c\u0443 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e<br \/>  _acp2:; if yh &gt; xh<br \/>  cp yh, xh; yh &gt; xh?<br \/>  breq _acp22; if yh = xh<br \/>  rcall _exMA<br \/>  rjmp _acp2<\/p>\n<p>  _acp22:; if yh = xh<br \/>  cp yl, xl; yl &gt; xl?<br \/>  brlo _end; if xl &gt; yl<br \/>  rcall _exMA<br \/>  rjmp _acp22<\/p>\n<p>  _errArr:; \u00abERROR\u00bb, \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e<br \/>  rcall _clear<br \/>  rcall _mArray<br \/>  rcall _down<br \/>  rcall _noCursor<br \/>  rcall _labelErr<br \/>  rjmp _wait<\/p>\n<p>  _exMA:; \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u041f\u041c<br \/>  ld rKey, X+<br \/>  st Z+, rKey<br \/>  ret<br \/>  ; ===================================================================<\/p>\n<p>  _exit:<br \/>  sbis BUT, quit; \u0435\u0441\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u0430 \u043a\u043d\u043e\u043f\u043a\u0430 \u0432\u044b\u0445\u043e\u0434\u0430,<br \/>  rjmp go; \u0442\u043e \u0432\u044b\u0445\u043e\u0434\u0438\u043c \u0438\u0437 \u0440\u0435\u0436\u0438\u043c\u0430 \u043d\u0430 go<br \/>  ret<br \/>  ; ====================================================================<\/p>\n<p>  ; \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u044d\u043a\u0440\u0430\u043d\u043e\u043c<\/p>\n<p>  ; \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f LCD<br \/>  altInit:<br \/>  rcall _delay1<br \/>  ldi rLCD, config; \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0434\u0438\u0441\u043f\u043b\u0435\u044f: 8 \u0431\u0438\u0442, 2 \u0441\u0442\u0440\u043e\u043a\u0438, 5\u04458<br \/>  rcall _cWrite <\/p>\n<p>  rcall _delay1<br \/>  ldi rLCD, on; \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u0438\u0441\u043f\u043b\u0435\u0439<br \/>  rcall _cWrite<\/p>\n<p>  rcall _delay1<br \/>  ldi rLCD, clrSc; \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u044d\u043a\u0440\u0430\u043d\u0430<br \/>  rcall _cWrite<\/p>\n<p>  rcall _delay1<br \/>  ldi rLCD, incr; \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u0430, \u044d\u043a\u0440\u0430\u043d \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u043d<br \/>  rcall _cWrite<br \/>  ret<\/p>\n<p>  ; \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0431\u0438\u0442\u0430 \u0437\u0430\u043d\u044f\u0442\u043e\u0441\u0442\u0438<br \/>  _BF: <br \/>  rcall _portIn; \u043f\u043e\u0440\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0432\u0445\u043e\u0434<br \/>  rcall _modeB; \u0440\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b<br \/>  _loop:<br \/>  sbi _cpo, e<br \/>  rcall _delay <br \/>  cbi _cpo, e<br \/>  in r24, _dpi; \u0447\u0442\u0435\u043d\u0438 \u0448\u0438\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0445<br \/>  andi r24, 0x80; \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 7-\u043e\u0433\u043e \u0431\u0438\u0442\u0430<br \/>  brne _loop<br \/>  ret<\/p>\n<p>  ; \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430<br \/>  _delay:<br \/>  ldi r23, 20<br \/>  _del:<br \/>  dec r23<br \/>  brne _del<br \/>  ret<\/p>\n<p>  \/\/\u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u043e\u0431\u043e\u043b\u044c\u0448\u0435<br \/>  _delay1:<br \/>  ldi r24, 0xff ;255<br \/>  _d:<br \/>  ldi r23, 0xff ;255<br \/>  _cmp_d:<br \/>  dec r23<br \/>  brne _cmp_d<br \/>  dec r24<br \/>  brne _cmp_d<br \/>  ret<\/p>\n<p>  ; \u0437\u0430\u043f\u0438\u0441\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b<br \/>  _cWrite:<br \/>  rcall _modeC<br \/>  rcall _portOut<br \/>  out _dpo, rLCD<br \/>  rcall _delay<br \/>  cbi _cpo, e<br \/>  ret<\/p>\n<p>  ; \u0437\u0430\u043f\u0438\u0441\u044c \u0434\u0430\u043d\u043d\u044b\u0445<br \/>  _dWrite:<br \/>  rcall _modeD<br \/>  rcall _portOut<br \/>  out _dpo, rLCD<br \/>  rcall _delay<br \/>  cbi _cpo, e<br \/>  ret<\/p>\n<p>  ; \u043f\u043e\u0440\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434<br \/>  _portOut:<br \/>  ldi r23, 0xff<br \/>  out _dp, r23<br \/>  ret<\/p>\n<p>  ; \u043f\u043e\u0440\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0441 \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u043e\u0439<br \/>  _portIn:<br \/>  ldi r23, 0x00<br \/>  out _dp, r23<br \/>  ldi r23, 0xff<br \/>  out _dpo, r23<br \/>  ret<\/p>\n<p>  ; \u0440\u0435\u0436\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u0438 \u043a\u043e\u043c\u0430\u043d\u0434<br \/>  _modeC:<br \/>  cbi _cpo, rw<br \/>  cbi _cpo, rs<br \/>  sbi _cpo, e<br \/>  ret<\/p>\n<p>  ; \u0440\u0435\u0436\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u0430\u043d\u043d\u044b\u0445<br \/>  _modeD:<br \/>  sbi _cpo, rs<br \/>  cbi _cpo, rw<br \/>  sbi _cpo, e<br \/>  ret<\/p>\n<p>  ; \u0440\u0435\u0436\u0438\u043c \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f BF<br \/>  _modeB:<br \/>  sbi _cpo, rw; \u0447\u0442\u0435\u043d\u0438\u0435<br \/>  cbi _cpo, rs; \u043a\u043e\u043c\u0430\u043d\u0434\u044b<br \/>  ret<\/p>\n<p>  ; \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u043f\u0440\u0438 \u0432\u0432\u043e\u0434\u0435 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0438 \u0434\u0430\u043d\u043d\u044b\u0445<br \/>  _charInput:<br \/>  cpi rLCD, 0x0a; \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0441 10<br \/>  brge _grt; \u0435\u0441\u043b\u0438 \u0431\u043e\u043b\u044c\u0448\u0435, \u0442\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 _grtA<br \/>  rcall _lstA<br \/>  rjmp _return<br \/>  _grt:<br \/>  rcall _grtA<br \/>  _return:<br \/>  ret<\/p>\n<p>  _lstA:<br \/>  ldi r21, 0x30; \u0435\u0441\u043b\u0438 \u043c\u0435\u043d\u044c\u0448\u0435,<br \/>  add rLCD, r21; \u0442\u043e \u043f\u0440\u0438\u0431\u0430\u0432\u0438\u0442\u044c 48 <br \/>  rcall _dWrite; \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 LCD<br \/>  ret<\/p>\n<p>  _grtA:; \u0435\u0441\u043b\u0438 \u0447\u0438\u0441\u043b\u043e \u043e\u0442 \u0410&#8230;F<br \/>  ldi r21, 0x37; 55 \u2014 \u043f\u0440\u0438\u0431\u0430\u0432\u0438\u0442\u044c \u043a rLCD, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u0434 \u0441\u0438\u043c\u0432\u043e\u043b\u0430<br \/>  add rLCD, r21;<br \/>  rcall _dWrite; \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 LCD<br \/>  ret<\/p>\n<p>  ; \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u043f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438 \u0438\u0437 \u043f\u0430\u043c\u044f\u0442\u0438<br \/>  ; \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 rLCD<br \/>  _charFromMemory:<br \/>  push rLCD; \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u0432 \u0441\u0442\u0435\u043a<br \/>  ; \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u0440\u0448\u0435\u0433\u043e \u0431\u0430\u0439\u0442\u0430<br \/>  andi rLCD, 0xf0; \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u043c\u043b\u0430\u0434\u0448\u0438\u0439 \u043d\u0438\u0431\u0431\u043b<br \/>  swap rLCD; \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0438\u0431\u0431\u043b\u044b \u043c\u0435\u0441\u0442\u0430\u043c\u0438<br \/>  rcall _BF<br \/>  rcall _charInput<br \/>  ; \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u0440\u0448\u0435\u0433\u043e \u0431\u0430\u0439\u0442\u0430<br \/>  pop rLCD; \u0434\u043e\u0441\u0442\u0430\u0442\u044c \u0438\u0437 \u0441\u0442\u0435\u043a\u0430<br \/>  andi rLCD, 0x0f; \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0441\u0442\u0430\u0440\u0448\u0438\u0439 \u043d\u0438\u0431\u0431\u043b<br \/>  rcall _BF<br \/>  rcall _charInput<br \/>  ret <\/p>\n<p>  ; ========================================== \u0432\u0441\u044f\u0447\u0435\u0441\u043a\u0438\u0435 \u043d\u0430\u0434\u043f\u0438\u0441\u0438 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u044d\u043a\u0440\u0430\u043d\u0430 ===============================<\/p>\n<p>  ; &quot;-&quot;<br \/>  _none:<br \/>  ;rcall _up<br \/>  ldi rLCD, 0x2D<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ret<\/p>\n<p>  ; \u043d\u0430 \u0432\u0442\u043e\u0440\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443<br \/>  _down:<br \/>  ldi rLCD, down<br \/>  rcall _BF<br \/>  rcall _cWrite<br \/>  ret<\/p>\n<p>  ; \u043d\u0430\u0434\u043f\u0438\u0441\u044c \u00abBROWSE\u00bb<br \/>  _browse:<br \/>  ldi rLCD, 0x42; B<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x52; R<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x4f; O<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x57; W<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x53; S<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x45; E<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ret<\/p>\n<p>  ; \u043d\u0430\u0434\u043f\u0438\u0441\u044c \u00abMOVE ARRAY\u00bb<br \/>  _mArray:<br \/>  ldi rLCD, 0x4d; M<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x4f; O<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x56; V<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x45; E <br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  rcall _labelSpace<br \/>  ldi rLCD, 0x41; A<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x52; R<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x52; R<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x41; A<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x59; Y<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ret<\/p>\n<p>  ; \u043d\u0430\u0434\u043f\u0438\u0441\u044c \u00abDATA\u00bb<br \/>  _labelData:<br \/>  ldi rLCD, 0x44; D<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x41; A<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x54; T<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x41; A<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ret<\/p>\n<p>  ; \u043d\u0430\u0434\u043f\u0438\u0441\u044c \u00abWRITE\u00bb<br \/>  _labelWrite:<br \/>  ldi rLCD, 0x57; W<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x52; R<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x49; I<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x54; T<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x45; E<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ret<\/p>\n<p>  ; \u043d\u0430\u0434\u043f\u0438\u0441\u044c \u00abCONST\u00bb<br \/>  _labelConst:<br \/>  ldi rLCD, 0x43; C<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x4f; O<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x4e; N<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x53; S<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x54; T<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ret<\/p>\n<p>  ; \u043d\u0430\u0434\u043f\u0438\u0441\u044c \u00abADDRESS\u00bb<br \/>  _labelAddr:<br \/>  ldi rLCD, 0x41; A<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x44; D<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x44; D<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x52; R<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x45; E<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x53; S<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x53; S<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ret<\/p>\n<p>  ; \u043d\u0430\u0434\u043f\u0438\u0441\u044c \u00abCHECKSUM\u00bb<br \/>  _labelSum:<br \/>  ldi rLCD, 0x43; C<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x48; H<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x45; E<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x43; C<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x4b; K<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x53; S<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x55; U<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x4d; M<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ret<\/p>\n<p>  ; \u043d\u0430\u0434\u043f\u0438\u0441\u044c \u00abERROR\u00bb<br \/>  _labelErr:<br \/>  ldi rLCD, 0x45; E<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x52; R<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x52; R<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x4f; O<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ldi rLCD, 0x52; R<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ret<\/p>\n<p>  ; \u00ab0\u00bb<br \/>  _labelZero:<br \/>  ldi rLCD, 0x30<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ret <\/p>\n<p>  ; \u00ab1\u00bb<br \/>  _labelOne:<br \/>  ldi rLCD, 0x31<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ret<\/p>\n<p>  ; \u00ab2\u00bb<br \/>  _labelTwo:<br \/>  ldi rLCD, 0x32<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ret<\/p>\n<p>  ; \u00ab3\u00bb<br \/>  _labelThree:<br \/>  ldi rLCD, 0x33<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ret<\/p>\n<p>  ; \u043f\u0440\u043e\u0431\u0435\u043b<br \/>  _labelSpace: <br \/>  ldi rLCD, 0x20<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ret<\/p>\n<p>  ; \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u043e\u0431\u0435\u0438\u0445 \u0441\u0442\u0440\u043e\u043a<br \/>  _clear:<br \/>  ldi rLCD, clrSc<br \/>  rcall _BF<br \/>  rcall _cWrite<br \/>  ret<\/p>\n<p>  ; \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 \u0438 \u0432\u044b\u0432\u043e\u0434 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 &quot;-&quot;<br \/>  _resetLCD:<br \/>  rcall _clear<br \/>  rcall _noCursor; \u0431\u0435\u0437 \u043a\u0443\u0440\u0441\u043e\u0440\u0430<br \/>  rcall _BF<br \/>  ;rcall _cWrite<br \/>  rcall _none<br \/>  ret<\/p>\n<p>  ; \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043c\u0438\u0433\u0430\u044e\u0449\u0435\u0433\u043e \u043a\u0443\u0440\u0441\u043e\u0440\u0430<br \/>  _cursor:<br \/>  ldi rLCD, cursor<br \/>  rcall _BF<br \/>  rcall _cWrite<br \/>  ret<\/p>\n<p>  ; \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u0443\u0440\u0441\u043e\u0440\u0430<br \/>  _noCursor:<br \/>  ldi rLCD, noCursor<br \/>  rcall _BF<br \/>  rcall _cWrite<br \/>  ret<\/p>\n<p>  ; &quot;.&quot;<br \/>  _point:<br \/>  ldi rLCD, 0x2e<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ret<\/p>\n<p>  ; &quot;:&quot;<br \/>  _colon:<br \/>  ldi rLCD, 0x3a<br \/>  rcall _BF<br \/>  rcall _dWrite<br \/>  ret<\/p>\n<p>  ; \u0441\u0434\u0432\u0438\u0433 \u043a\u0443\u0440\u0441\u043e\u0440\u0430 \u0432\u043f\u0440\u0430\u0432\u043e<br \/>  _right:<br \/>  ldi rLCD, right<br \/>  rcall _BF<br \/>  rcall _cWrite<br \/>  ret<\/p>\n<p>  ; \u0441\u0434\u0432\u0438\u0433 \u043a\u0443\u0440\u0441\u043e\u0440\u0430 \u0432\u043b\u0435\u0432\u043e<br \/>  _left:<br \/>  ldi rLCD, left<br \/>  rcall _BF<br \/>  rcall _cWrite<br \/>  ret <\/div>\n<\/div>\n<p>  \u0410 \u044d\u0442\u043e \u0432\u0438\u0434\u0435\u043e, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u044f\u0447\u0435\u0439\u043a\u0438 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0437\u0430 \u043d\u0435\u0439 \u044f\u0447\u0435\u0435\u043a.<br \/>  <iframe loading=\"lazy\" width=\"560\" height=\"349\" src=\"\/\/www.youtube.com\/embed\/MASR714qLJE?wmode=opaque\" frameborder=\"0\" allowfullscreen><\/iframe>     \t<\/p>\n<div class=\"clear\"><\/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=\"http:\/\/habrahabr.ru\/post\/262463\/\"> http:\/\/habrahabr.ru\/post\/262463\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>     \t<b>\u0421\u043f\u043e\u0439\u043b\u0435\u0440<\/b>: \u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0435 \u0432\u044b\u0434\u0430\u0432\u0438\u0442 \u043d\u043e\u0441\u0442\u0430\u043b\u044c\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u043b\u0435\u0437\u044b. <\/p>\n<p>  \u0420\u0435\u0448\u0438\u0432 \u043d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u0431\u043b\u0438\u0436\u0435 (\u043f\u043e\u0441\u043b\u0435 Arduino) \u0441 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 <br \/>  \u0438 \u0441 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438 ATmega \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u044f \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0447\u0438\u0442\u0430\u0442\u044c \u043e \u041c\u041a, <br \/>  \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u0442\u044c \u043a\u043e\u0434 \u0432 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435, \u00ab\u043c\u043e\u0440\u0433\u0430\u0442\u044c \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u043c\u00bb \u2014 \u044d\u0442\u043e \u043a\u0430\u043a-\u0442\u043e \u043d\u0435 \u0442\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b <br \/>  \u00ab\u0437\u0430\u043f\u0438\u043b\u0438\u0442\u044c\u00bb \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c \u2014 \u043f\u0443\u0441\u0442\u044c \u0434\u0430\u0436\u0435 \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u2014 \u043f\u0440\u043e\u0435\u043a\u0442, \u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441\u043e \u0432\u0441\u0435\u043c<br \/>  \u0443\u0436\u0435 \u043f\u043e \u0445\u043e\u0434\u0443 \u0434\u0435\u043b\u0430. \u041d\u0430 \u0443\u043c \u043f\u0440\u0438\u0448\u043b\u0438 \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u043c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u044b\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c <br \/>  \u0438 \u0443\u0447\u0435\u0431\u043d\u044b\u0439 \u0441\u0442\u0435\u043d\u0434, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u044d\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438\u0441\u044c \u2014 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0443\u0447\u0435\u0431\u043d\u044b\u0439 \u043c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u044b\u0439<br \/>  \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 (\u0423\u041c\u041a), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443 \u043d\u0430\u0441 \u0437\u0432\u0430\u043b\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u00ab\u0423\u043c\u043a\u043e\u0439\u00bb.<\/p>\n<h4>\u041f\u0440\u043e \u0423\u041c\u041a<\/h4>\n<p>  \u0418\u0442\u0430\u043a, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0432\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 (\u0435\u0441\u043b\u0438 \u0432\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u2014 \u0442\u043e \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0430\u043c \u043d\u0438\u0436\u0435), \u0442\u043e <br \/>  \u00ab\u0423\u043c\u043a\u0430\u00bb \u044d\u0442\u043e \u043c\u0438\u043a\u0440\u043e-\u042d\u0412\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u043c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u041a580\u0418\u041a80\u0410, \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u043b\u0441\u044f \u0432 80-\u0445 \u0433\u043e\u0434\u0430\u0445 <br \/>  \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0432\u0435\u043a\u0430 (\u043c\u043d\u0435 \u0436\u0435 \u043f\u043e\u0441\u0447\u0430\u0441\u0442\u043b\u0438\u0432\u0438\u043b\u043e\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043d\u0438\u043c \u0432 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0430\u043b\u0451\u043a\u043e\u043c 2009 \u0433\u043e\u0434\u0443), <br \/>  \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0437 \u0441\u0435\u0431\u044f \u0432\u0435\u0441\u043e\u043c\u044b\u0439 \u0442\u0430\u043a\u043e\u0439 \u044f\u0449\u0438\u043a. \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u00ab\u0423\u043c\u043e\u043a\u00bb <br \/>  \u0438 \u043f\u0440\u043e\u0447\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043f\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435 \u043d\u0438\u0436\u0435. \u0412\u043e\u0442 \u0442\u0430\u043a \u043e\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f22\/9be\/872\/f229be872be8422da9d77e280a93e9ba.jpg\"\/><\/p>\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-261323","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/261323","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=261323"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/261323\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=261323"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=261323"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=261323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}