Микросхема ADC0832 представляет собой двухканальный 8-разрядный аналого-цифровой преобразователь
последовательных приближений. Благодаря простому трехпроводному последовательному интерфейсу
NSC MICROWIRE(tm) позволяет создавать недорогие приложения, в которых необходимо
измерение аналоговых величин, используя минимальное количество портов микроконтроллера.
  Выпускается National Semiconductor
 Подробнее об ADC0832....
  Ниже приведена подпрограмма для работы ADC0832 совместно с PIC-
микроконтроллером, написанная на ассемблере и встроенная в код для С-компиллятора
С2С.
  Схема включения АЦП:
выводы PORTA
RA0 - DATA OUT ADC
RA1 - CS ADC
RA2 - DATA IN ADC
RA3 - CLOCK ADC
  Подключениe DATA OUT критично по отношению к алгоритму (см. asm)
/*-------------начало примера------------ требуется 3 байта ОЗУ: cfg - конфигурация АЦП cfg=0 - измерение разницы CH0-CH1 cfg=1 - измерение разницы CH1-CH0 cfg=2 - измерение CH0 cfg=3 - измерение CH1 result - результат измерения; tmp - счетчик, используемый в цикле; char readADC(char cfg) { char result; asm { bcf STATUS, RP0; CLK DI CS DO movlw b'10100'; setting up initial movwf PORTA; bsf PORTA, 3; CLK - up; enter start bit bcf PORTA, 3; CLK - down bsf PORTA, 2; DI -> 1 btfss param00_readADC, 1; 1 ? bcf PORTA, 2; no, DI -> 0 bsf PORTA, 3; CLK - up bcf PORTA, 3; CLK - down bsf PORTA, 2; DI -> 1 btfss param00_readADC, 0; 1 ? bcf PORTA, 2; no, DI -> 0 bsf PORTA, 3; CLK - up bcf PORTA, 3; CLK - down bsf PORTA, 3; movlw 0x09; CLK DI CS DO movwf _tmp get_ADC bsf PORTA, 3; CLK - up bcf PORTA, 3; CLK - down movfw PORTA; andlw 0x01; rlf _result_readADC, F; addwf _result_readADC; decfsz _tmp goto get_ADC; movlw b'10110'; CS - up - reset ADC movwf PORTA; movfw _result_readADC; } } /*-----------окончание примера------------*/
  Функция возвращает байт - результат измерения.
  Далее приведен пример использования функции.
/*-----------начало примера------------*/ . . . while (1) { adc = readADC(2) // измеряем напряжение на CH0 . . // делаем что-то с adc... . } /*-----------окончание примера------------*/