Читайте также:
|
|
Исходный текст программы приведен далее:
;предварительные настройки
#include p16f873a.inc
__CONFIG _HS_OSC;высокочаятотный кварцевый резонатор
ORG H'000';вектор сброса
GOTO BEGIN;переход на начало основной программы
;начало основной программы
ORG H’005’
BEGIN: BSF STATUS,RP0;выбираем банк регистров 1
;задаем режимы работы параллельных портов
MOVLW B'00000001';PORTA, 7-1 выходы, PORTA, 0 вход
MOVWF TRISA;программируем регистр направления PORTA
MOVLW B'11000000';PORTC,7-6 вход, PORTC,5-0 выходы
MOVWF TRISC;программируем регистр направления PORTC
;задаем режим работы АЦП
MOVLW B'00001110';задаем аналоговый вход PORTA,0, левое выравн.
MOVWF ADCON1;программируем регистр АЦП 1
BCF STATUS,RP0;выбираем банк регистров 0
MOVLW B'01000001';задаем аналоговый вход PORTA,0 и включаем АЦП
MOVWF ADCON0;программируем регистр АЦП 0
NOP;пауза 4 мкс
NOP;|
NOP;|
NOP;|
;основная программа
M10: BSF ADCON0,GO;запуск преобразования
M20: BTFSC ADCON0,GO;ожидание окончания преобразования
GOTO M20;|
MOVLW D'26';первый порог сравнения
SUBWF ADRESH,W;сравнение результата преобразования с порогом
BTFSS STATUS,C;скачек, если выше порога
GOTO M30;переход к гашению всех светодиодов
MOVLW D'52';второй порог сравнения
SUBWF ADRESH,W;сравнение результата преобразования с порогом
BTFSS STATUS,C;скачек, если выше порога
GOTO M40;переход к вкюч. HL1 и гашению остальных светод.
MOVLW D'78';третий порог сравнения
SUBWF ADRESH,W;сравнение результата преобразования с порогом
BTFSS STATUS,C;скачек, если выше порога
GOTO M50;переход к вкюч. HL2 и гашению остальных светод.
MOVLW D'104';четвертый порог сравнения
SUBWF ADRESH,W;сравнение результата преобразования с порогом
BTFSS STATUS,C;скачек, если выше порога
GOTO M60;переход к вкюч. HL3 и гашению остальных светод.
MOVLW D'130';пятый порог сравнения
SUBWF ADRESH,W;сравнение результата преобразования с порогом
BTFSS STATUS,C;скачек, если выше порога
GOTO M70;переход к вкюч. HL4 и гашению остальных светод.
MOVLW D'156';второй порог сравнения
SUBWF ADRESH,W;сравнение результата преобразования с порогом
BTFSS STATUS,C;скачек, если выше порога
GOTO M80;переход к вкюч. HL5 и гашению остальных светод.
BCF PORTA,5;гашение HL1
CLRF PORTC;гашение HL2...HL6
BSF PORTC,5;включение HL6
GOTO M10;возврат к началу основной программы
M30: BCF PORTA,5;гашение HL1
CLRF PORTC;гашение HL2...HL6
GOTO M10;возврат к началу основной программы
M40: BSF PORTA,5;включение HL1
CLRF PORTC;гашение HL2...HL6
GOTO M10;возврат к началу основной программы
M50: BCF PORTA,5;гашение HL1
CLRF PORTC;гашение HL2...HL6
BSF PORTC,0;включение HL2
GOTO M10;возврат к началу основной программы
M60: BCF PORTA,5;гашение HL1
CLRF PORTC;гашение HL2...HL6
BSF PORTC,1;включение HL3
GOTO M10;возврат к началу основной программы
M70: BCF PORTA,5;гашение HL1
CLRF PORTC;гашение HL2...HL6
BSF PORTC,3;включение HL4
GOTO M10;возврат к началу основной программы
M80: BCF PORTA,5;гашение HL1
CLRF PORTC;гашение HL2...HL6
BSF PORTC,4;включение HL5
GOTO M10;возврат к началу основной программы
END;конец программы
Дата добавления: 2015-07-08; просмотров: 173 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Разработка алгоритма программы | | | Режим широтно-импульсной модуляции |