PIC-Контроллеры. Воробьева Г.С - 25 стр.

UptoLike

25
контроллера и периферии отлаживаемой системы. Принципиальную
схему демонстрационной платы можно найти в приложении 4.
В программе используется модуль АЦП, описание регистров
управления которого приведено ниже.
list p=16f877
include "p16f877.inc"
org 0x000 ; Начало программы на вектор сброса
nop
Start
banksel PORTC ; Выбор 0 банка памяти данных
clrf PORTC ; Очистка регистра порта С
movlw B'01000000' ; Включение АЦП. Частота Fosc/8
movwf ADCON0
banksel TRISC ; Выбор 1 банка памяти данных
movlw B'10000111' ;Установка предделителя перед TMR0
movwf OPTION_REG ; коэффициент деления 1:256
clrf TRISC ; Настройка порта С на вывод
movlw B'00001110' ;Настройка АЦПлевое выравнивание
movwf ADCON1 ; аналоговый канал RA0
banksel PORTC ; Выбор 0 банка памяти данных
Main
btfss INTCON,T0IF ; Ждать переполнения TMR0
goto Main
bcf INTCON,T0IF ;Сбросить флаг прерывания от TMR0
bsf ADCON0,GO ; Запуск АЦП
Wait
btfss PIR1,ADIF ; Ждать окончания преобразования
goto Wait
movf ADRESH,W ;Вывод результата преобразования
movwf PORTC ; на светодиоды порта С
WaitPush
btfss PORTB,0 ; Ждать нажатия на кнопку RB0
goto WaitPush
goto Main ; Повтор программы
end
5.4. Запустите программу в PIC16F877. Изменяйте положение
RA3, светодиоды должны отображать в двоичном коде напряжение
потенциометра. У Вас этого не происходит. В программе намеренно
сделана ошибка, и мы попробуем с ней разобраться. Любая из ниже
перечисленных причин не позволит корректно работать программе.
Значение преобразования АЦП не выводится на светодиоды
(в PORTC).
АЦП не включен или преобразование не запускается.
В алгоритме программы имеется ошибка.