Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОМТ (на редактировании).doc
Скачиваний:
31
Добавлен:
17.05.2015
Размер:
3.86 Mб
Скачать

Порядок выполнения работы

В данной лабораторной работе необходимо разработать и отладить программу, измеряющую напряжение на выходе потенциометра R1. Конкретное задание выдается преподавателем.

В качестве примера рассмотрим следующее задание. В исходном состоянии все светодиоды погашены. При повороте ручки потенциометра R1 на одно из делений с 1-го по 6-е включается соответствующий светодиод (HL1...HL6), остальные светодиоды гаснут.

Постановка задачи

Для решения данной задачи вполне достаточно 8-разрядной точности аналого-цифрового преобразования. Соответственно, весь диапазон цифровых отсчетов составляет 256 значений, а на одно деление шкалы потенциометра приходится 256/10=26 дискретных значений. Зависимость включения светодиодов от результатов аналого-цифрового преобразования можно представить в виде таблицы (см. табл. 6.1).

Таблица 6.1

Состояние светодиодов в зависимости от значения на выходе АЦП

Значение на выходе АЦП

HL1

HL2

HL3

HL4

HL5

HL6

0...25

0

0

0

0

0

0

26...51

1

0

0

0

0

0

52...77

0

1

0

0

0

0

78...103

0

0

1

0

0

0

104...129

0

0

0

1

0

0

130...155

0

0

0

0

1

0

156...255

0

0

0

0

0

1

Разработка алгоритма программы

Алгоритм программы приведен на рис. 6.5.

В первом блоке осуществляется настройка портов ввода-вывода и аналого-цифрового преобразователя на соответствующие режимы работы и включение модуля АЦП. Нулевой разряд порта А настраивается на ввод информации, а остальные разряды порта А и порт С – на вывод. АЦП настраивается на работу с аналоговым входом AN0 и напряжением источника питания микроконтроллера в качестве источника опорного напряжения. При частоте кварцевого генератора 4 МГц выбирается FOSC/8. Для обеспечения 8-разрядного преобразования выбирается левое выравнивание результата, при этом достаточно анализировать значение регистра ADRESH.

Рис. 6.5. Блок-схема алгоритма основной программы

Во втором блоке запускается аналого-цифровое преобразование, а в третьем ожидается его завершение.

В блоках 4, 6, 8, 10, 12 и 14 производится сравнение результата аналого-цифрового преобразования с рассчитанными ранее порогами.

В блоке 5 выключаются все светодиоды, поскольку уровень измеряемого сигнала ниже первого порога.

В блоках 7, 9, 11, 13, 15 и 16 гасятся все светодиоды, кроме одного, в соответствии с табл. 6.1.

Далее программа возвращается к запуску следующего аналого-цифрового преобразования

Написание текста программы на языке Ассемблер

Исходный текст программы приведен далее:

;предварительные настройки

#include p16f873a.inc

__CONFIG _HS_OSC ;высокочаятотный кварцевый резонатор

ORG H'000' ;вектор сброса

GOTO BEGIN ;переход на начало основной программы

;начало основной программы

ORGH’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 ;конец программы

Трансляция текста программы в машинные коды

Процесс создания нового проекта и компиляции программы подробно описан в лабораторной работе 1.

Тестирование и отладка

На этапе отладки программы необходимо выявить и устранить все возникшие на предыдущих этапах ошибки. Описание процесса программирования микроконтроллера и запуска программы приведен в лабораторной работе 1.

Сопровождение

Поскольку все программы, разрабатываемые при изучении курса ОМТ носят чисто учебный характер, то их работоспособность необходимо поддерживать лишь до момента защиты лабораторной работы преподавателю.