Цитата(студент ю @ Nov 22 2011, 17:45)

... PIC16F877...
АЦП меряет все время напряжение и заносит результат в регистры (AdresL) и (AdresH), только я не пойму если АЦП 10-разрядное (десятичное число выглядит как 1023) то как записывается туда результат.
Об этом вполне доступно написано в документации (
http://ww1.microchip.com/downloads/en/devicedoc/30292c.pdf ).
Если в регистре ADCON1 7-й бит - единичка, результат выравнивается вправо:
ADRESH ADRESL
000000xx xxxxxxxx
если наоборот, 7-й бит - ноль, результат выравнивается влево:
ADRESH ADRESL
xxxxxxxx xx000000
Цитата(студент ю @ Nov 22 2011, 17:45)

...если результат измерения меньше числа .106, то ...
Есть много вариантов. Самый простой вариант - предположим, что АЦП 8-битное. Тогда и результат, и граничные значения влезают в регистр, с ними удобно работать. Для этого надо выровнять результат влево и пользоваться только ADRESH, игнорируя младшие биты в ADRESL.
Второй вариант - рассматривать надо обе "половинки" числа. Ассембер пиков я тоже крайний раз видел в институте, поэтому только в общих словах:
берём старшие части результата и границы; получаем три (в общем случае) варианта
- старшая часть результата больше. Значит, весь результат тоже больше границы
- старшая часть результата меньше. Соответственно, всё значение также меньше границы.
- старшие части равны. Надо рассматривать младшие части, там тоже будет три варианта.
Для этого алгоритма, мне кажется, удобнее выравнивать результат АЦП вправо.
PS а самое удобное - доверить компилятору Си "склеить" эти результаты в одно 16-битное число ;-)