Отладка программ для «учебного» микроконтроллера (аналого-цифровой преобразователь)

Цель работы: закрепление знаний по данной теме, полученных на лекционных занятиях.

Пояснения к работе

Ниже приводится пример программы по данной теме.

 


; ацп последовательных приближений

; R3 - 2^i, i=7..0

; R4 - текущий результат

; R7 - счетчик циклов

; установка начальных значений

CONVRT: MOV R7,#08H; 8 циклов

CLR A; очистка A

MOV R3,A;    R3

MOV R4,A;    R4

CLR C; установ-

CPL C; ка (C)=1

; формирование числа 2^I

LOOP: MOV A,R3; сдвиг R3

RRC A;         вправо

MOV R3,A;      через C

; формирование текущего результата

ADD A,R4; (A)<--(A)+(R4), (A)=2^i

;выдача тек-го результата через P1 в цап

OUTL P1,A

; сравнение Uцап и U

JT0 ENOUGH; при Uцап > U обход;сохранения текущего результата

; сохранение текущего результата

MOV R4,A

ENOUGH: DJNZ R7,LOOP

; вывод результата

MOV A,R4

OUTL BUS,A

; переход на новый цикл измерений

JMP CONVRT

END




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

1. Набрать исходный текст примера программы, произвести его трансляцию. Запустить отладчик-симулятор, загрузить программу в НЕХ-формате.

2. Получить у преподавателя значение входного напряжения U.

3. Выполняя программу в пошаговом режиме (клавиша F10), прослеживать логику выполнения программы, наблюдать за соответствующими изменениями содержимого аккумулятора, регистров, портов, признака С. Результат сравнения Uцап и U: подача на вход Т0 нуля, если Uцап < U, и единицы, если Uцап > U.

4. Проверить полученный результат.

5. Повторить пп.2-4 для других данных.

Лабораторная работа №9

ОТЛАДКА ПРОГРАММ ДЛЯ «УЧЕБНОГО» МИКРОКОНТРОЛЛЕРА (ЧАСТОТОМЕР)

Цель работы: закрепление знаний по данной теме, полученных на лекционных занятиях.

Пояснения к работе

Ниже приводится пример программы по данной теме.


;частотомер

; диапазон: 0-255 гц,

; длительность имп-са - 500 мкс

; вход - INT, выход - P1

; R5 - счетчик импульсов на входе

; R6 - счетчик числа переполнений T;

;  49 переполнений=1 003 520 мкс

; R7- счетчик циклов задержки 750 мкс

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

NOP

JMP INT ; вектор 3

NOP

NOP

JMP TIME; вектор 7

; установка начальных значений

START: CLR A; очистка A

MOV R5,A;    R5

MOV R6,A;    R6

EN TCNTI; разрешение прерываний;от Т/С ((tie)=1)

MOV A,#2CH; запись вТ 44;(44*80=3520 мкс)

MOV T,A;    т.е. лишнее время

; ожидание первого импульса

WAIT: JNI ST

JMP WAIT

; запуск таймера

ST: STRT T

; задержка 750 мкс

CALL Z750; для окончания имп-са

; разрешений внешних прерываний

EN I; (ie)=1

; выдержка 1 сек

M0: MOV A,R6; проверка (R6)

XRL A,#31H; на 49 переполнений

JNZ M0    ; переход, если не 49

; запрещение внешних прерываний

DIS I         ; (ie)=0

; останов таймера/счетчика

STOP TCNT

; вывод результата

MOV A,R5

OUTL P1,A

; переход к новому циклу измерений

JMP START

; п/п обработки внешних прерываний

INT: INC R5

CALL Z750; задержка 750 мкс для;окончания импульса

RETR

; п/п обработки прерываний от таймера

TIME: INC R6

RETR

; п/п задержки на 750 мкс

Z750: MOV R7,#96H

Z0: DJNZ R7,Z0

     RET

     END




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

1. Набрать исходный текст примера программы, произвести его трансляцию. Запустить отладчик-симулятор, загрузить программу в НЕХ-формате.

2. Установить динамическую точку останова на второй команде JMP START (клавиши F2-вверх, F4-вниз, F3-установка).

3. Чередуя выполнение программы в пошаговом режиме (клавиша F10) и непрерывном (F1, скорость-F5), прослеживать логику выполнения программы. При этом приход импульса имитировать подачей нуля на вход INT, снятие импульса производить при выполнении временной задержки 750 мкс. Наблюдать за логикой обработки прерываний (внешнего по входу INT и от таймера при его переполнении). Наблюдать за соответствующими изменениями содержимого аккумулятора, регистров, таймера, счетчика команд РС, стека, указателя стека SP, признаков ie, tie, tov. Для сокращения времени выполнения одного цикла измерения остановить выполнение программы, занести в регистр R6 число 2FH, продолжить выполнение программы до динамической точки останова.

4. Проверить выведенный результат (порт Р1).

 

Практическое занятие №1


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: