воскресенье, 23 января 2011 г.



Данная статься посвящена написанию программы, для МК семейства PIC под ОС Linux.<br>
Является частью моего дневника, по этому за дату проверки источника не серчайте.
Для написания программы, я использовал ОС Ubuntu 10.10 и ассемблер для PIC написанный Тимо Росси picasm. Установить его можно командой sudo apt-get install picasm.<br>
Теперь, для поклонников MPASM рассмотрим отличия оного от picasm.<br>
<table border=1>
 <tr>
  <td>Mpasm</td><td>picasm</td>
 </tr>
 <tr>
  <td>LIST p=16c84</td><td>device pic16f84</td>
 </tr>
 <tr>
  <td>__CONFIG 11h</td><td>CONFIG  CP=off,WDT=off,PWRT=on,OSC=xt</td>
 </tr>
 <tr>
  <td>#include &lt;c:\mplab\p16c84.inc\&gt;</td><td>picasm</td>
 </tr>
 <tr>
  <td>CONSTANT DATA_PIN=0</td><td>DATA_PIN SET 0</td>
 </tr>
 <tr>
  <td>" " (so MOVLW "#")</td><td>' ' (so MOVLW '#')</td>
 </tr>
 <tr>
  <td>MOVFW I_BYTE</td><td>MOVF I_BYTE,W</td>
 </tr>
 <tr>
  <td>.120</td><td>120</td>
 </tr>
</table>
Далее расмотрим простую программу, которая мигает светодиодом подключенным к ножке RA0 (где расположена эта ножка смотри выше, вообще RA0 — это двунаправленный порт ввода/вывода, а не ножка):
<code>
; first.asm<br>
; Мигающий светодиод подключенный к RA0<br>
<br>
device  pic16f84<br>
<br>
; конфигурация<br>
config  CP=off,WDT=on,PWRT=on,OSC=xt<br>
<br>
;Константы<br>
<br>
porta&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;equ&emsp;0x05<br>
ncount&emsp;&emsp;&emsp;&emsp;&emsp;equ&emsp;0x0d<br>
mcount&emsp;&emsp;&emsp;&emsp;&emsp;equ&emsp;0x0e<br>
f&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;equ&emsp;1<br>
<br>
;начальная точка работы памяти<br>
&emsp;org&emsp;&emsp;0x000<br>
;начало программы<br>
start&emsp;movlw&emsp;&emsp;0x00&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;Помещаем в аккумулятор константу 0x00<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;tris&emsp;&emsp;porta&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;Помещаем значение рабочего регистра (аккумулятора) в<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;регистр PORTA, если точнее в регистр PORTA, мы<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;поместили значение 0x00<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;clrf    &emsp;porta&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;По сути делаем тоже что и за прошлые две команды<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;правда называется это обнулением регистра<br>
<br>
;loop start<br>
go&emsp;&emsp;&emsp;&emsp;bsf&emsp;&emsp;&emsp;porta,0&emsp;&emsp;&emsp;&emsp;;После перехода по метке go мы устанавливаем значение<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;0-го бита в регистре PORTA<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;call&emsp;&emsp;delay&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;Вызываем процедуру delay 3 раза подряд<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;call&emsp;&emsp;delay<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;call&emsp;&emsp;delay<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;bcf&emsp;&emsp;&emsp;porta,0&emsp;&emsp;&emsp;&emsp;;После чего обнуляем 0-й бит регистра PORTA<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;call&emsp;&emsp;delay&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;Снова вызываем процедуру delay<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;goto&emsp;&emsp;go&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;Безусловный переход к метке go<br>
;loop end<br>
<br>
;delay loop<br>
delay&emsp;movlw&emsp;&emsp;0xff&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;Помещаем в аккумулятор число 0xFF или в десятичной<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;системе счисления 255<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;movwf&emsp;&emsp;mcount&emsp;&emsp;&emsp;&emsp;;Далее в регистр общего назначение помещаем значение<br>

&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;0xFF<br>
loadn&emsp;movlw&emsp;&emsp;0xff&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;В результате перехода по метке loadn снова загружаем в<br>

&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;аккумулятор 0xFF<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;movwf&emsp;&emsp;ncount&emsp;&emsp;&emsp;&emsp;;После чего это значение заносим в другой регистр общего<br>

&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;назначения<br>
repeat&emsp;decfsz&emsp;&emsp;ncount,f&emsp;;Когда мы перейдем по метке repeat мы выполним<br>

&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;операцию декремента, т. е. dest = ncount — 1, и т. к.<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;f = 1 то dest = ncount, если бы f = 0, то dest = W или<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;рабочему регистру, т. е. аккумулятору<br>

&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;goto&emsp;&emsp;repeat&emsp;&emsp;&emsp;&emsp;&emsp;;Выполняем операцию декремента пока ncount = 0,<br>

&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;как только ncount станет равным 0, эта команда будет<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;пропущена<br>

&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;decfsz&emsp;&emsp;mcount,f&emsp;;Выполняем те же действия, что и над регистром ncount<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;goto&emsp;&emsp;loadn&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;Только в итоге переходим к метке loadn, а не repeat<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;return&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;Возврат из подпрограммы<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;end&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;;Директива завершения сегмента кода<br>
</code>
Теперь я опишу пояснения к коду:<br>
Для начала символ точки с запятой «;» есть символ комментария, то что указано после него не компилируется.
device  pic16f84 — эта строчка показывает тип устройства для которого написана программа.<br>
<br>
Далее идет настройка конфигурационных битов, их всего два:<br>
<br>
config  CP=off,WDT=on,PWRT=on,OSC=xt<br>
<br>
Так как документация к данному МК не переведена на русский, снова переводить. Только из-за этого пришлось выучить басурманский язык.<br>
<br>
Ну начнем конфигурационные биты расположены в памяти программ по адресу 2007h . Адресс 2007h расположен за пределами программы пользователя, и принадлежит специальной тест/конфигурационной пространству памяти (2000h — 3FFFh). Это пространство доступно только во время программирования МК.<br>
<br>
<PRE CLASS="western" STYLE="widows: 2; orphans: 2"></PRE>
<TABLE WIDTH=657 CELLPADDING=4 CELLSPACING=0>
<COL WIDTH=62>
<COL WIDTH=31>
<COL WIDTH=31>
<COL WIDTH=31>
<COL WIDTH=31>
<COL WIDTH=31>
<COL WIDTH=31>
<COL WIDTH=31>
<COL WIDTH=31>
<COL WIDTH=31>
<COL WIDTH=31>
<COL WIDTH=45>
<COL WIDTH=39>
<COL WIDTH=41>
<COL WIDTH=40>
<TR>
<TD WIDTH=62 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>Права
на запись</FONT></FONT></P>
</TD>
<TD WIDTH=31 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>R/P-u
</FONT></FONT>
</P>
</TD>
<TD WIDTH=31 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>R/P-u
</FONT></FONT>
</P>
</TD>
<TD WIDTH=31 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>R/P-u
</FONT></FONT>
</P>
</TD>
<TD WIDTH=31 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>R/P-u
</FONT></FONT>
</P>
</TD>
<TD WIDTH=31 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>R/P-u
</FONT></FONT>
</P>
</TD>
<TD WIDTH=31 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>R/P-u
</FONT></FONT>
</P>
</TD>
<TD WIDTH=31 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>R/P-u
</FONT></FONT>
</P>
</TD>
<TD WIDTH=31 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>R/P-u
</FONT></FONT>
</P>
</TD>
<TD WIDTH=31 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>R/P-u
</FONT></FONT>
</P>
</TD>
<TD WIDTH=31 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>R/P-u
</FONT></FONT>
</P>
</TD>
<TD WIDTH=45 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>R/P-u
</FONT></FONT>
</P>
</TD>
<TD WIDTH=39 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>R/P-u
</FONT></FONT>
</P>
</TD>
<TD WIDTH=41 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>R/P-u
</FONT></FONT>
</P>
</TD>
<TD WIDTH=40 STYLE="border: 1px solid #000000; padding: 0.1cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>R/P-u
</FONT></FONT>
</P>
</TD>
</TR>
<TR>
<TD WIDTH=62 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>Имя
бита</FONT></FONT></P>
</TD>
<TD WIDTH=31 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>CP
</FONT></FONT>
</P>
</TD>
<TD WIDTH=31 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>CP
</FONT></FONT>
</P>
</TD>
<TD WIDTH=31 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>CP
</FONT></FONT>
</P>
</TD>
<TD WIDTH=31 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>CP
</FONT></FONT>
</P>
</TD>
<TD WIDTH=31 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>CP
</FONT></FONT>
</P>
</TD>
<TD WIDTH=31 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>CP
</FONT></FONT>
</P>
</TD>
<TD WIDTH=31 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>CP
</FONT></FONT>
</P>
</TD>
<TD WIDTH=31 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>CP
</FONT></FONT>
</P>
</TD>
<TD WIDTH=31 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>CP
</FONT></FONT>
</P>
</TD>
<TD WIDTH=31 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>CP
</FONT></FONT>
</P>
</TD>
<TD WIDTH=45 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>PWRTE
</FONT></FONT>
</P>
</TD>
<TD WIDTH=39 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>WDTE</FONT></FONT></P>
</TD>
<TD WIDTH=41 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>FOSC1</FONT></FONT></P>
</TD>
<TD WIDTH=40 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>FOSC0</FONT></FONT></P>
</TD>
</TR>
<TR>
<TD WIDTH=62 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>Нумерация</FONT></FONT></P>
</TD>
<TD WIDTH=31 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="13" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>13</FONT></FONT></P>
</TD>
<TD WIDTH=31 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="12" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>12</FONT></FONT></P>
</TD>
<TD WIDTH=31 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="11" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>11</FONT></FONT></P>
</TD>
<TD WIDTH=31 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="10" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>10</FONT></FONT></P>
</TD>
<TD WIDTH=31 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="9" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>9</FONT></FONT></P>
</TD>
<TD WIDTH=31 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="8" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>8</FONT></FONT></P>
</TD>
<TD WIDTH=31 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="7" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>7</FONT></FONT></P>
</TD>
<TD WIDTH=31 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="6" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>6</FONT></FONT></P>
</TD>
<TD WIDTH=31 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="5" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>5</FONT></FONT></P>
</TD>
<TD WIDTH=31 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="4" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>4</FONT></FONT></P>
</TD>
<TD WIDTH=45 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="3" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>3</FONT></FONT></P>
</TD>
<TD WIDTH=39 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="2" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>2</FONT></FONT></P>
</TD>
<TD WIDTH=41 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>1</FONT></FONT></P>
</TD>
<TD WIDTH=40 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm" SDVAL="0" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman, serif"><FONT SIZE=2>0</FONT></FONT></P>
</TD>
</TR>
</TABLE>
<PRE CLASS="western" STYLE="widows: 2; orphans: 2">
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">bit 13:4 CP: Бит защиты кода</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> 1 = Защита кода отключена</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> 0 = Вся память кода защищена</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">bit 3 PWRTE: </SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">Бит разрешения работы таймера включения питания</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> 1 = </SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">Таймер выключен</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> 0 = </SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">Таймер включен</SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> </SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">bit 2 WDTE: </SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">Бит разрешения работы сторожевого таймера</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> 1 = WDT </SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">включен</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> 0 = WDT </SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">выключен</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">bit 1:0 FOSC1:FOSC0: </SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">Биты выбора режима тактового генератора</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> 11 = RC </SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">генератор</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> 10 = HS </SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">генератор</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> 01 = XT </SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">генератор</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> 00 = LP </SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">генератор</SPAN></SPAN></FONT></FONT></FONT></EM>
</PRE><P STYLE="font-style: normal; font-weight: normal; widows: 2; orphans: 2">
<FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3>Зная
это мы можем понять, что значит строчка
кода:</FONT></FONT></FONT></P>
<PRE CLASS="western" STYLE="widows: 2; orphans: 2"><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">config  CP=off,WDT=on,PWRT=on,OSC=xt</SPAN></SPAN></FONT></FONT></FONT></EM>

<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">В нашем МК отключена защита кода, включен сторожевой таймер WDT, включен таймер включения питания, и в качестве режима тактового генератора, используется режим XT-генератора.</SPAN></SPAN></FONT></FONT></FONT></EM></PRE><P STYLE="font-style: normal; font-weight: normal; widows: 2; orphans: 2">
<FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3>Далее
рассмотрим раздел констант:</FONT></FONT></FONT></P>
<PRE CLASS="western" STYLE="widows: 2; orphans: 2">
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">porta equ 0x05</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">ncount equ 0x0d</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">mcount equ 0x0e</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">f equ 1</SPAN></SPAN></FONT></FONT></FONT></EM>

<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">Директива equ это присвоения значения константе, по-русски равно. Почему porta = 0x05? Для этого нужно посмотреть карту памяти для данного МК. Как видно из карты памяти регистр PORTA расположен по адресу 05h это тоже самое, что 0x05. Согласитесь, что легче обратиться к регистру по имени PORTA, нежели обращаться к нему по его адресу в памяти 05h. </SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">Оставшиеся две константы если смотреть по карте памяти указывают на регистры общего назначения, у которых нету имен, по этому имена взяли произвольные.</SPAN></SPAN></FONT></FONT></FONT></EM></PRE>
<a target="_blank" href="http://radikal.ru/F/s004.radikal.ru/i205/1101/7f/0232e7f91b6e.png.html"><img src="http://s004.radikal.ru/i205/1101/7f/0232e7f91b6et.jpg" ></a>
<PRE CLASS="western" STYLE="widows: 2; orphans: 2"><IMG SRC="Untitled%201_html_42175296.png" NAME="Графический объект3" ALIGN=LEFT WIDTH=311 HEIGHT=668 BORDER=0><BR CLEAR=LEFT><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">;</SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">начальная точка работы памяти</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000">        </FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">org     0x000</SPAN></SPAN></FONT></FONT></FONT></EM></PRE><P STYLE="font-style: normal; font-weight: normal; widows: 2; orphans: 2">
<FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3>Для
чего используется директива ORG я еще
сам не сильно разобрался.</FONT></FONT></FONT></P>
<PRE CLASS="western" STYLE="widows: 2; orphans: 2"><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">Рассмотрим следующий участок кода:</SPAN></SPAN></FONT></FONT></FONT></EM>

<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">start   movlw   0x00</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000">        </FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">tris    porta</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000">        </FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">clrf    porta</SPAN></SPAN></FONT></FONT></FONT></EM>

<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">MOVLW — это команда загружает в рабочий регистр (его еще называют аккумулятор значение константы)</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">TRIS — </SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">это устаревшая команда, она используется для того, чтобы загрузить значение аккумулятора в один из 3-х регистров, в случае с нашим МК этой командой мы можем загрузить значение аккумулятора в регистры PORTA или PORTB, если бы использовался регистр с адресом 0x07 то и туда могли бы загрузить, но увы он недоступен для использования в данном типе МК</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">CLRF — команда обнуления регистра</SPAN></SPAN></FONT></FONT></FONT></EM>

<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">;loop start</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">go bsf porta,0</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> call delay</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> call delay</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> call delay</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> bcf porta,0</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> call delay</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> goto go</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">;loop end</SPAN></SPAN></FONT></FONT></FONT></EM>

<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">GOTO — безусловный переход</SPAN></SPAN></FONT></FONT></FONT></EM>

<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">BSF — установить  бит в нашем случае мы устанавливаем бит 0 равным единице в регистре PORTA</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">H: bsf porta,0</SPAN></SPAN></FONT></FONT></FONT></EM>

<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">CALL — вызов подпрограммы</SPAN></SPAN></FONT></FONT></FONT></EM>

<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">BCF — обнулить бит, синтаксис такой же как и у BSF</SPAN></SPAN></FONT></FONT></FONT></EM>

<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">Все остальное даже для меня остается загадкой</SPAN></SPAN></FONT></FONT></FONT></EM>

<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">Осталось рассмотреть подпрограмму delay</SPAN></SPAN></FONT></FONT></FONT></EM>

<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">;delay loop</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">delay movlw 0xff</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> movwf mcount</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">loadn movlw 0xff</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> movwf ncount</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">repeat decfsz ncount,f</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> goto repeat</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> decfsz mcount,f</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> goto loadn</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> return</SPAN></SPAN></FONT></FONT></FONT></EM>
<EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> end</SPAN></SPAN></FONT></FONT></FONT></EM>
</PRE><P STYLE="font-style: normal; font-weight: normal; widows: 2; orphans: 2">
<FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3>После
написания программы скомпилируем ее
командой:</FONT></FONT></FONT></P>
<P STYLE="widows: 2; orphans: 2"><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">'</SPAN></SPAN></FONT></FONT></FONT><STRONG><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">picasm
first.asm</SPAN></SPAN></FONT></FONT></FONT></STRONG><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">'</SPAN></SPAN></FONT></FONT></FONT></P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<BR><BR>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">После
компиляции ассемблерного кода получили
*.hex файл со следующим содержанием:</FONT></FONT></P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<BR><BR>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">:1000000000306500850105140A200A200A20051029
</FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">:100010000A200328FF308E00FF308D008D0B0E2844
</FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">:060020008E0B0C28080005
</FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">:02400E00F53F7C </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">:00000001FF</FONT></FONT></P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<BR><BR>
</P>
<P ALIGN=LEFT STYLE="font-style: normal; font-weight: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman">Дальше
программа прошивается в память МК.
Теперь рассмотрим, как должен быть
устроено оное устройство.</FONT></FONT></P>
<P ALIGN=LEFT STYLE="font-style: normal; font-weight: normal; widows: 2; orphans: 2">
<FONT COLOR="#000000"><FONT FACE="Times New Roman"><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">Для
этого, нам опять же потребуется даташит
правда уже для семейства микроконтроллеров
PIC16F* он небольшой, всего 601 страницу, и
что меня радует переведен на русский.
По сути из данного руководства нам
потребуется узнать следующее </SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">как
подключить питание и </SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">как
построить генератор, с учетом того что
в конфигурационных битах мы указали,
что у нас режим генератора XT.</SPAN></SPAN></FONT></FONT></FONT></EM></FONT></FONT></P>
<a target="_blank" href="http://radikal.ru/F/s005.radikal.ru/i210/1101/b9/94449d7d1b77.png.html"><img src="http://s005.radikal.ru/i210/1101/b9/94449d7d1b77t.jpg" ></a>
<P ALIGN=LEFT STYLE="font-style: normal; font-weight: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman">В
таблице приведенной выше нас интересует
столбец I/O/P Type, по-русски Вход/Выход/Питание
вот там где стоит буква P туда мы и пошлем
наше питание. Правда она стоит для трех
портов. Рассмотрим их более подробно.</FONT></FONT></P>
<P ALIGN=LEFT STYLE="font-style: normal; font-weight: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman"><SPAN STYLE="text-decoration: overline">MCLR</SPAN>
- Вход сброса микроконтроллера или вход
напряжения программирования. Сброс
микроконтроллера происходит при низком
логическом уровне сигнала на </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="font-style: normal; font-weight: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman">входе.
</FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="font-style: normal; font-weight: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman">Vss
- Общий вывод для внутренней логики и
портов ввода/вывода. (такой перевод в
документации, для среднего семейства,
но чтоб было понятнее, это земля или
минус)</FONT></FONT></P>
<P ALIGN=LEFT STYLE="font-style: normal; font-weight: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman">V<FONT SIZE=1>DD</FONT>
- Положительное напряжение питания для
внутренней логики и портов ввода/вывода
.</FONT></FONT></P>
<P ALIGN=LEFT STYLE="font-style: normal; font-weight: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman">Теперь
мы знаем как подключить питание, остался
только генератор и светодиод к RA0. Со
светодиодом все просто, подключаем
дополнительное сопротивление, если
боимся, что он может перегореть и
подключаем далее светодиод к порту RA0.
А вот с генератором сложнее.</FONT></FONT></P>
<P ALIGN=LEFT STYLE="font-style: normal; font-weight: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman"><EM><FONT SIZE=3><SPAN STYLE="font-style: normal">Как
я уже говорил в конфигурационных битах
стоит значение генератора XT.</SPAN></FONT></EM><EM><FONT SIZE=3><SPAN STYLE="font-style: normal">
Да и вообще, что значит, это XT, так вот
XT - стандартный кварцевый/керамический
резонатор . </SPAN></FONT></EM><EM><FONT SIZE=3><SPAN STYLE="font-style: normal">Теперь
посмотрим на то, как он должен быть
подключен к нашему МК:</SPAN></FONT></EM></FONT></FONT></P>
<a target="_blank" href="http://radikal.ru/F/i067.radikal.ru/1101/0d/8cdee340058c.png.html"><img src="http://i067.radikal.ru/1101/0d/8cdee340058ct.jpg" ></a><br>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">Примечания:
</FONT></FONT>
</P>
<OL>
<LI><P ALIGN=LEFT STYLE="font-style: normal; font-weight: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman">Для
некоторых типов резонаторов может
потребоваться последовательно включенный
резистор Rs. </FONT></FONT>
</P>
<LI><P ALIGN=LEFT STYLE="font-style: normal; font-weight: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman">Значение
резистора обратной связи RF колеблется
от 2МОм до 10МОм в зависимости от режима
генератора. </FONT></FONT>
</P>
<LI><P ALIGN=LEFT STYLE="font-style: normal; font-weight: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman">В
зависимости от типа микроконтроллера
буфер подключения к внутренней логике
может быть на входе или на выходе
инвертора. </FONT></FONT>
</P>
</OL>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm"><FONT COLOR="#000000"><FONT FACE="Times New Roman"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">Схему
думаю рисовать необязательно, думаю
итак понятно, как, что подключить.</SPAN></SPAN></FONT></FONT></P>
<H2 CLASS="western">Проект №1</H2>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">То что
рассматривалось в предыдущей главе,
есть лишь не больше чем введение. Я
начала с проекта, который в списке
литературы значится 4-м номером. Рассмотрим
поподробнее программу описанную на
данном сайте и так, как она написана под
MPASM перепишем ее для свободного
программного обеспечения, т.&nbsp;е. для
PICASM.</FONT></FONT></P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<BR><BR>
</P>
<PRE CLASS="western" STYLE="font-style: normal; font-weight: normal; text-align: left"><FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">;======================== «ШАПКА» ПРОГРАММЫ ======================</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">;=========================================</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">; Имя файла: main.asm</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">; Дата: 28.05.07</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">; Автор: Ирков Алексей Николаевич</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">; E-mail: nsuirkov@ngs.ru</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">;==================================================================</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">; Используется микроконтроллер PIC16F877. Частота кварца 20 МГц.</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">;==================================================================</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">; Описание программы</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">; Данная программа заставляет все светодиоды загореться</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">;==================================================================</FONT></FONT></FONT>


<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">;================================================</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">; Настройка и конфигурация микроконтроллера</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">;================================================</FONT></FONT></FONT>
<FONT COLOR="#000000">        <FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">LIST  p=16F877</SPAN></SPAN></FONT></FONT></FONT>
<FONT COLOR="#000000">        <FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">__CONFIG H'3F72'</SPAN></SPAN></FONT></FONT></FONT>

<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">;================================================</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">; Инициализация регистров специального назначения</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">;================================================</FONT></FONT></FONT>

<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">INTCON                  equ 0x0B</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">STATUS                  equ 0x03</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">PORTB                   equ 0x06</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">TRISB                   equ 0x86</FONT></FONT></FONT>

<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">;================================================</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">; Инициализация констант</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">;================================================</FONT></FONT></FONT>

<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">RP0                     equ 0x05</FONT></FONT></FONT>

<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">;================================================</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">; Инициализация переменных в памяти данных</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">;================================================</FONT></FONT></FONT>

<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">;================================================</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">; Начало программы</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">;================================================</FONT></FONT></FONT>
<FONT COLOR="#000000">        <FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">ORG 0x00</SPAN></SPAN></FONT></FONT></FONT>
<FONT COLOR="#000000">        <FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">goto Start</SPAN></SPAN></FONT></FONT></FONT>


<FONT COLOR="#000000">        <FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">ORG 0x05</SPAN></SPAN></FONT></FONT></FONT>

<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">Start:</FONT></FONT></FONT>
<FONT COLOR="#000000">        <FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">clrf INTCON                     ;запрещаем все прерывания</SPAN></SPAN></FONT></FONT></FONT>

<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">;===============================================</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">; Настраиваем линии порта PORTB на выход</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">;===============================================</FONT></FONT></FONT>

<FONT COLOR="#000000">        <FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">bsf STATUS, RP0                         ;переходим в банк 1</SPAN></SPAN></FONT></FONT></FONT>
<FONT COLOR="#000000">        </FONT>
<FONT COLOR="#000000">        <FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">movlw b'00000000'               ;помещаем в аккумулятор число 0 </SPAN></SPAN></FONT></FONT></FONT>
<FONT COLOR="#000000">        <FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">movwf TRISB                     ;устанавливаем линии порта </SPAN></SPAN></FONT></FONT></FONT>
<FONT COLOR="#000000">                                        <FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">;PortB на выход</SPAN></SPAN></FONT></FONT></FONT>

<FONT COLOR="#000000">        <FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">bcf STATUS, RP0                 ;переходив в банк 0</SPAN></SPAN></FONT></FONT></FONT>

<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">;===============================================</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">; Закончили настройку</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">;===============================================</FONT></FONT></FONT>


<FONT COLOR="#000000">        <FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">movlw .255                      ;помещаем в аккумулятор число 255</SPAN></SPAN></FONT></FONT></FONT>
<FONT COLOR="#000000">        <FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">movwf PORTB                     ;перемещаем число из аккумулятора </SPAN></SPAN></FONT></FONT></FONT>
<FONT COLOR="#000000">                                        <FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">;в регистр DelL</SPAN></SPAN></FONT></FONT></FONT>

<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">Loop:   </FONT></FONT></FONT>
<FONT COLOR="#000000">        <FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">nop                             ;ничего не делаем</SPAN></SPAN></FONT></FONT></FONT>
<FONT COLOR="#000000">        <FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">goto Loop                       ;переходим на метку Loop</SPAN></SPAN></FONT></FONT></FONT>

<FONT COLOR="#000000">        <FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">End</SPAN></SPAN></FONT></FONT></FONT></PRE><P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">К сожаления
в том магазине, где я покупал МК не было
PIC16F877, и поэтому в своем первом проекте
я использовал PIC16F873. Разница незначительная
у моего МК ножек не 40, а 28 и соответственно
функциональность меньше. Ну что, начнем
переделку.</FONT></FONT></P>
<PRE CLASS="western" STYLE="font-style: normal; font-weight: normal; widows: 2; orphans: 2"><FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">;================================================</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">; Настройка и конфигурация микроконтроллера</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">;================================================</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"> LIST  p=16F877</FONT></FONT></FONT>
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"> __CONFIG H'3F72'</FONT></FONT></FONT></PRE><P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<BR><BR>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">Как было
описано в буржуйской статье. Строку</FONT></FONT></P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">LIST
 p=16F877</FONT></FONT> </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">заменяем
на ее аналог</FONT></FONT></P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">device
pic16f873</FONT></FONT></FONT></P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">а вот со
строкой</FONT></FONT></P>
<PRE CLASS="western" STYLE="font-style: normal; font-weight: normal; text-align: left; widows: 2; orphans: 2"><FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"> __CONFIG H'3F72'</FONT></FONT></FONT></PRE><P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">придется
помучиться, что значит запись </FONT></FONT>
</P>
<PRE CLASS="western" STYLE="font-style: normal; font-weight: normal; text-align: left; widows: 2; orphans: 2"><FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"> H'3F72'</FONT></FONT></FONT></PRE><P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">это значит,
что конфигурационные биты, создатель
скрипта решил записать в шестнадцатеричном
формате. С какой целью? Это его надо
спросить, по мне удобнее записывать все
как есть. Это число нам нужно перевести
в двоичный формат.</FONT></FONT></P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">Мы получим</FONT></FONT></P>
<PRE CLASS="western" STYLE="font-style: normal; font-weight: normal; text-align: left; widows: 2; orphans: 2"><FONT COLOR="#000000"><FONT FACE="Times New Roman"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"> </FONT></FONT><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">B</FONT></FONT><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">'</FONT></FONT><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">11111101110010</FONT></FONT><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt">'</FONT></FONT></FONT></FONT></PRE><P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">теперь
разобьем это число на таблицу</FONT></FONT></P>
<TABLE WIDTH=100% CELLPADDING=4 CELLSPACING=0>
<COL WIDTH=49*>
<COL WIDTH=15*>
<COL WIDTH=15*>
<COL WIDTH=15*>
<COL WIDTH=15*>
<COL WIDTH=15*>
<COL WIDTH=15*>
<COL WIDTH=15*>
<COL WIDTH=15*>
<COL WIDTH=15*>
<COL WIDTH=15*>
<COL WIDTH=15*>
<COL WIDTH=15*>
<COL WIDTH=15*>
<COL WIDTH=15*>
<TR VALIGN=TOP>
<TD WIDTH=19% STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=LEFT><FONT FACE="Times New Roman">Нумерация</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="13" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">13</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="12" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">12</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="11" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">11</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="10" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">10</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="9" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">9</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="8" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">8</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="7" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">7</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="6" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">6</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="5" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">5</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="4" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">4</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="3" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">3</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="2" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">2</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border: 1px solid #000000; padding: 0.1cm" SDVAL="0" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">0</FONT></P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD WIDTH=19% STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=LEFT><FONT FACE="Times New Roman">Конфигурация</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="0" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">0</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="0" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">0</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="0" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">0</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=6% STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm" SDVAL="0" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">0</FONT></P>
</TD>
</TR>
</TABLE>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">Дальше для
того, чтобы понять, что значит этот набор
нулей и единиц потребуется документация
к МК PIC16F877, к моему счастью она переведена
на русский и еще, данная конфигурация
одинакова для PIC16F877 и PIC16F873, что тоже
радует. Теперь приведу, информацию,
которую я выкопал в руководстве к данным
микроконтроллерам.</FONT></FONT></P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">Теперь
рассмотрим ту таблицу, что составили
выше и сопоставим с даташитом.</FONT></FONT></P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; font-style: normal; font-weight: normal">
<BR><BR>
</P>
<TABLE WIDTH=655 CELLPADDING=4 CELLSPACING=0>
<COL WIDTH=83>
<COL WIDTH=24>
<COL WIDTH=24>
<COL WIDTH=47>
<COL WIDTH=17>
<COL WIDTH=28>
<COL WIDTH=26>
<COL WIDTH=24>
<COL WIDTH=46>
<COL WIDTH=23>
<COL WIDTH=23>
<COL WIDTH=49>
<COL WIDTH=38>
<COL WIDTH=41>
<COL WIDTH=39>
<TR VALIGN=TOP>
<TD WIDTH=83 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=LEFT><FONT FACE="Times New Roman"><FONT SIZE=2>Наименование</FONT></FONT></P>
</TD>
<TD WIDTH=24 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman"><FONT SIZE=2>CP1</FONT></FONT></P>
</TD>
<TD WIDTH=24 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman"><FONT SIZE=2>CP0</FONT></FONT></P>
</TD>
<TD WIDTH=47 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman"><FONT SIZE=2>DEBUG</FONT></FONT></P>
</TD>
<TD WIDTH=17 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman"><FONT SIZE=2>-</FONT></FONT></P>
</TD>
<TD WIDTH=28 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman"><FONT SIZE=2>WRT</FONT></FONT></P>
</TD>
<TD WIDTH=26 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman"><FONT SIZE=2>CPD</FONT></FONT></P>
</TD>
<TD WIDTH=24 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman"><FONT SIZE=2>LVP</FONT></FONT></P>
</TD>
<TD WIDTH=46 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman"><FONT SIZE=2>BODEN</FONT></FONT></P>
</TD>
<TD WIDTH=23 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman"><FONT SIZE=2>CP1</FONT></FONT></P>
</TD>
<TD WIDTH=23 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman"><FONT SIZE=2>CP0</FONT></FONT></P>
</TD>
<TD WIDTH=49 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman"><FONT SIZE=2>-PWRTE</FONT></FONT></P>
</TD>
<TD WIDTH=38 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman"><FONT SIZE=2>WDTE</FONT></FONT></P>
</TD>
<TD WIDTH=41 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman"><FONT SIZE=2>FOSC1</FONT></FONT></P>
</TD>
<TD WIDTH=39 STYLE="border: 1px solid #000000; padding: 0.1cm">
<P ALIGN=CENTER><FONT FACE="Times New Roman"><FONT SIZE=2>FOSC0</FONT></FONT></P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD WIDTH=83 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=LEFT><FONT FACE="Times New Roman"><FONT SIZE=2>Конфигурация</FONT></FONT></P>
</TD>
<TD WIDTH=24 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=24 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=47 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=17 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=28 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=26 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=24 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="0" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">0</FONT></P>
</TD>
<TD WIDTH=46 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=23 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=23 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=49 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="0" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">0</FONT></P>
</TD>
<TD WIDTH=38 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="0" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">0</FONT></P>
</TD>
<TD WIDTH=41 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=39 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm" SDVAL="0" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">0</FONT></P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD WIDTH=83 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<P ALIGN=LEFT><FONT FACE="Times New Roman"><FONT SIZE=2>Нумерация</FONT></FONT></P>
</TD>
<TD WIDTH=24 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="13" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">13</FONT></P>
</TD>
<TD WIDTH=24 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="12" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">12</FONT></P>
</TD>
<TD WIDTH=47 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="11" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">11</FONT></P>
</TD>
<TD WIDTH=17 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="10" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">10</FONT></P>
</TD>
<TD WIDTH=28 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="9" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">9</FONT></P>
</TD>
<TD WIDTH=26 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="8" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">8</FONT></P>
</TD>
<TD WIDTH=24 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="7" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">7</FONT></P>
</TD>
<TD WIDTH=46 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="6" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">6</FONT></P>
</TD>
<TD WIDTH=23 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="5" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">5</FONT></P>
</TD>
<TD WIDTH=23 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="4" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">4</FONT></P>
</TD>
<TD WIDTH=49 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="3" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">3</FONT></P>
</TD>
<TD WIDTH=38 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="2" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">2</FONT></P>
</TD>
<TD WIDTH=41 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm" SDVAL="1" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">1</FONT></P>
</TD>
<TD WIDTH=39 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm" SDVAL="0" SDNUM="1049;">
<P ALIGN=CENTER><FONT FACE="Times New Roman">0</FONT></P>
</TD>
</TR>
</TABLE>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<BR>
</P>
<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-style: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman"><B>биты
13-10: CP1:CP0: Биты защита памяти программ </B></FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-style: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman"><B>биты
5-4 </B></FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">11 = защита
памяти программ выключена </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">10 = защищена
память программ с адресами 1F00h-1FFFh
(PIC16F877/876) </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">10 = защищена
память программ с адресами 0F00h-0FFFh
(PIC16F874/873) </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">01 = защищена
память программ с адресами 1000h-1FFFh
(PIC16F877/876) </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">01 = защищена
память программ с адресами 0800h-0FFFh
(PIC16F874/873) </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">00 = защищена
память программ с адресами 0000h-1FFFh
(PIC16F877/876) </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">00 = защищена
память программ с адресами 0000h-0FFFh
(PIC16F874/873) </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-style: normal; font-weight: normal">
<BR>
</P>
<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-style: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman"><B>бит
11: DEBUG: Бит включения режима внутрисхемной
отладки </B></FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">1 = внутрисхемная
отладка выключена, выводы RB6 и RB7 работают
как каналы вводы/вывода </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">0 = внутрисхемная
отладка включена, выводы RB6 и RB7 используются
отладчиком </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-style: normal; font-weight: normal">
<BR>
</P>
<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-style: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman"><B>бит
10: Не реализован: читается как '1' </B></FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-style: normal; font-weight: normal">
<BR>
</P>
<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-style: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman"><B>бит
9: WRT: Бит разрешения записи во FLASH память
программ </B></FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">1 = разрешена
запись во FLASH память программ через
регистры управления EECON </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">0 = запрещена
запись во FLASH память программ через
регистры управления EECON </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-style: normal; font-weight: normal">
<BR>
</P>
<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-style: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman"><B>бит
8: CPD: Бит защиты EEPROM памяти данных </B></FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">1 = защита
памяти данных выключена </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">0 = защита
памяти данных включена </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<BR>
</P>
<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-style: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman"><B>бит
7: LVP: Бит разрешения низковольтного
программирования </B></FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">1 = вывод
RB3/PGM работает как PGM, режим низковольтного
программирования включен </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">0 = вывод
RB3/PGM работает как цифровой порт
ввода/вывода, вывод HV используется для
программирования микроконтроллера  
                                                                    
                                                                    
              </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<BR>
</P>
<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-style: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman"><B>бит
6: BODEN: Бит разрешения сброса по снижению
напряжения питания </B></FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">1 = разрешен
сброс BOR </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">0 = запрещен
сброс BOR </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-style: normal; font-weight: normal">
<BR>
</P>
<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-style: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman"><B>бит
3: -PWRTE: Бит разрешения работы таймера
включения питания </B></FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">1 = PWRT выключен
</FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">0 = PWRT включен
</FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<BR>
</P>
<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-style: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman"><B>бит
2: WDTE: Бит разрешения работы сторожевого
таймера </B></FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">1 = WDT включен
</FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">0 = WDT выключен
</FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<BR>
</P>
<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-style: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman"><B>биты
1-0: FOSC1:FOSC0: Биты выбора режима тактового
генератора </B></FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">11 = RC генератор
</FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">10 = HS генератор
</FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">01 = XT генератор
</FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">00 = LP генератор
</FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<BR>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman"><B>Примечания:
</B></FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">1. При стирании
всей памяти микроконтроллера в слово
конфигурации записывается значение
3FFFh. </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">2. Чтобы
установить защиту памяти программ, все
пары CP1:CP0 должны иметь одинаковое
значение. </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">3. При
возникновении сброса по снижению
напряжения питания (BOR) автоматически
запускается таймер </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">PWRT, независимо
от состояния бита -PWRTE. </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<BR>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">Теперь
смотрим данные из руководства. Для нас
стало известно, что защита памяти
программ выключена. Code Protection = off, т.&nbsp;е.
CP = off. Далее нам известно, что внутрисхемная
отладка выключена, выводы RB6 и RB7 работают
как каналы ввода/вывода. То есть DEBUG =
off. Бит 10 не реализован, по этому это
вечная единица. Его можно пропустить.
Смотрим дальше. У нас разрешена запись
во FLASH память программ через регистры
управления EECON . Извиняюсь, но я сам пока
не понимаю, что это значит. Как я это
понимаю, запись в FLASH память возможно
посредством записи в регистр EECON. То
есть данный регистр является посредником
для нас, чтобы записать, что-либо во
FLASH-память, где это используется узнаем
чуть-позже. Пока, что нас это не сильно
интересует. Следующий бит говорит нам
о том, что защита памяти данных включенных
CPD = on. Затем мы смотрим, возможность
низковольтного программирования и
видим, что вывод RB3/PGM работает как
цифровой порт ввода/вывода, вывод HV
используется для программирования
микроконтроллера. Правда здесь, даже
для меня представляет сложность описать
это в нашей программе. Как я понимаю
либо LVP = off, либо LVP = hv. Но думаю первое
более вероятно. У нас разрешен сброс по
снижению уровня питания, т.&nbsp;е. BODEN =
on. Разрешена работа таймера включения
питания PWRT = on. Работа сторожевого таймера
запрещена WDT = off. И используется HS
генератор OSC = hs. Теперь запишем инструкцию
настройки конфигурации нашего МК.</FONT></FONT></P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<BR>
</P>
<PRE CLASS="western" STYLE="text-align: left; widows: 2; orphans: 2"><EM><FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"> config  CP=off</SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">,DEBUG=off,CPD=on,LVP=off,BODEN=on</SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">,WDT=o</SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">ff</SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">,PWRT=on,OSC=</SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Courier"><FONT SIZE=2 STYLE="font-size: 10pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">hs</SPAN></SPAN></FONT></FONT></FONT></EM></PRE><P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<BR>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">Если нигде
не ошибся, то как-то так должна выглядеть
строка настройки.</FONT></FONT></P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">Все остальное
вроде бы изменению не подлежит.</FONT></FONT></P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">После
компиляции все прошло успешно, если не
считать одного НО. Данный компилятор
уверенно видит ошибку при работе с
регистром TRISB. Чем вызвана такая проблема
одному богу известно. В результате в
терминале я увидел следующее</FONT></FONT></P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">username-laptop:~$
picasm main.asm </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">main.asm:66: </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman"> clrf TRISB </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">Error: Register
file address out of range </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">1 error found </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">Если перевести
на русский, то это значит, что данный
регистр находится за пределами. Почему,
вот это вопрос, по этому снова залезем
в документацию.</FONT></FONT></P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">Если убрать
всю эту муть с настройкой регистра PORTB
на выход, то программа компилируется
без ошибок.</FONT></FONT></P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">И мы получаем
вот такой шестнадцатеричный hex-код:</FONT></FONT></P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<BR>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">:020000000528D1 </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">:0A000A008B01FF308600000008287B
</FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">:02400E00723E00 </FONT></FONT>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman">:00000001FF</FONT></FONT></P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<BR>
</P>
<P ALIGN=LEFT STYLE="text-indent: 1.52cm; margin-bottom: 0cm; font-style: normal; font-weight: normal">
<FONT COLOR="#000000"><FONT FACE="Times New Roman"><EM><FONT SIZE=3><SPAN STYLE="font-style: normal">Для
удобства, чтобы проверить эту программу,
нам потребуется симулятор для нашего
МК. </SPAN></FONT></EM><EM><FONT SIZE=3><SPAN STYLE="font-style: normal">Занимаясь
поисками симулятора, я понял, какую
ошибку я совершил, выбрав, этот тип
компилятора для ассемблера, потому, что
найти симулятор нормальный мне так и
не удалось. </SPAN></FONT></EM><EM><FONT SIZE=3><SPAN STYLE="font-style: normal">Так
как в gEDA я не нашел интересующего
микроконтроллера я собрал схему из
предыдущей главы данного повествования.
</SPAN></FONT></EM><EM><FONT SIZE=3><SPAN STYLE="font-style: normal">Но
в итоге я узнал такую истину, что gEDA
только для рисования схем, она не
поддерживает симуляцию микроконтроллеров,
и поэтому, пришлось искать альтернативу,
я извиняюсь перед читателем, что ему
пришлось 13 страниц, потратить на всякую
муть, но думаю, эта муть будет полезна
в дальнейшем. И уж постольку, поскольку,
коль я пришел к выбору окончательного
софта для изучения, дабы заниматься
разработкой устройств под Linux системами,
начну перечисление, для рисования схем,
а также для симуляции микроконтроллеров
подойдет KtechLab она работает с пиками и
вообще интересная вещь, НО в ней не надо
самому подключать питание и резонатор
к микроконтроллеру. В качестве компиляторов
кода для данного семейства микроконтроллеров,
используется GPASM и SDCC, что касается
первого его вы найдете в пакете программ
GPUTILS.</SPAN></FONT></EM></FONT></FONT></P>
<H2 CLASS="western" STYLE="page-break-before: always">Источники:</H2>
<OL>
<LI><P ALIGN=LEFT><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">Henry
Palonen</SPAN></SPAN></FONT></FONT></FONT></EM><FONT COLOR="#000000"><FONT FACE="Times New Roman"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">.
«Penguin PIC'n»: [Электронный документ]  //
-29,10,2010 (</SPAN></SPAN></FONT></FONT></FONT><A HREF="http://www.yty.net/pic/"><FONT SIZE=3>http://www.yty.net/pic/</FONT></A><FONT COLOR="#000000"><FONT FACE="Times New Roman"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">).
Проверено 04.12.2010.</SPAN></SPAN></FONT></FONT></FONT></P>
<LI><P ALIGN=LEFT STYLE="font-style: normal; font-weight: normal"><FONT COLOR="#000000"><FONT FACE="Times New Roman"><FONT FACE="Times New Roman, serif"><FONT SIZE=3>Справочник
по всем микроконтроллерам PIC16: [Электронный
документ] //
</FONT></FONT><FONT SIZE=3>(<A HREF="http://www.microchip.ru/files/d-sheets-rus/PIC16_Manual.pdf">http://www.microchip.ru/files/d-sheets-rus/PIC16_Manual.pdf</A>).
Проверено</FONT><FONT SIZE=3>:</FONT><FONT SIZE=3>
</FONT><FONT SIZE=3>0</FONT><FONT SIZE=3>5.12.2010</FONT></FONT></FONT></P>
<LI><P ALIGN=LEFT><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">PIC16F84
datasheet: </SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">[Электронный
документ] //
</SPAN></SPAN></FONT></FONT></FONT></EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal"><BR>(</SPAN></SPAN></FONT></FONT></FONT><A HREF="http://www.datasheetcatalog.org/datasheet/microchip/30430c.pdf"><FONT COLOR="#881280"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">http://www.datasheetcatalog.org/datasheet/microchip/30430c.pdf</SPAN></SPAN></FONT></FONT></FONT></A><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">)
Проверено: 05.12.2010</SPAN></SPAN></FONT></FONT></FONT></P>
<LI><P ALIGN=LEFT><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">Первая
программа на ассемблере для PIC16F877:
[Э</SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">лек</SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">тро</SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">нны</SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">й
</SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">до</SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">к</SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">у</SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">м</SPAN></SPAN></FONT></FONT></FONT></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">ент]
//(</SPAN></SPAN></FONT></FONT></FONT></EM><EM><A HREF="http://www.pcports.ru/articles/picASM1.php"><FONT COLOR="#000000"><FONT FACE="Times New Roman"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">http://www.pcports.ru/articles/picASM1.php</SPAN></SPAN></FONT></FONT></FONT></A></EM><EM><FONT COLOR="#000000"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: normal">)
Проверено: 05.12.2010</SPAN></SPAN></FONT></FONT></FONT></EM></P>
</OL>


Комментариев нет:

Отправить комментарий