Файл: Изучение принципов отладки программ с использованием резидентных средств микроконтроллера.docx

ВУЗ: Не указан

Категория: Отчет по практике

Дисциплина: Не указана

Добавлен: 01.12.2023

Просмотров: 14

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра РЭС

отчет

по лабораторной работе № 3

по дисциплине «Цифровые и микропроцессорные устройства»

Тема: Изучение принципов отладки программ с использованием резидентных средств микроконтроллера


Студенты гр.





Преподаватель








Санкт-Петербург

2023

Цель работы.

Написать и запустить программы в соответствии с требованием пунктов 3.2-3.7

Экспериментальные результаты и их обработка.

  1. Отладить и запустить циклическую программу анализа состояния входов порта Р3. Произвести в программе инкремент ячейки 30Н при наличии «0» на входе Р3.3 и декремент при наличии «0» на входе Р3.2. Вывести содержимое ячейки 30Н на экран в десятичном коде с помощью подпрограмм ACCDEC, CRLF и DSEC. Проверить работу программы, кратковременно подключая Р3.3 и Р3.2 к шине «Общий». Модифицировать программу, добавив вывод в Р3.2 инвертированного состояния входа Р3.3. Подключать к шине «Общий» только вход РЗ.3.

ORG 4000H- адрес, указанный директивой ORG, в который размещается исполняемый машинный код, преобразованный из текстового файла;

ZXC: JB INT0,ARC - в метке ZXC осуществляется вызов подпрограммы, перехода на метку ARC при 1 иначе переход на следующую строку;

INC 30H - инкремент 30 ячейки

ARC: JB INT1,NEKO - в метке ARC осуществляется вызов подпрограммы, перехода на метку NEKO при 1 иначе переход на следующую строку;

DEC 30H- Декремент 30 ячейки;

NEKO:MOV A, 30H- запись в аккумулятор значения 30 ячейки;

CALL ACCDEC - вывод символа из АСС на дисплей в десятичном виде;

CALL CRLF- перевод строки на экране;

CALL DSEC- задержка;

JMP ZXC- переход на метка ZXC

RET- обеспечение выхода в монитор по окончании выполнения программы
;

END- директива завершения текста программы.

  1. Отладить и запустить циклическую программу вывода в порт Р1 «бегущей единицы». Направление сдвига задавать входом Р3.2. Управлять частотой сдвига входом Р3.5, обнаруживая перепад 1/0. Подключить к Р3.5 сигнал генератора макета. Наблюдать осциллограммы на выводах порта Р1 и выходе ЦАП1, меняя частоту генератора и сигнал на входе Р3.2.

ORG 4000H- адрес, указанный директивой ORG, в который размещается
MOV A,#1- запись 1 в ACC

ZXC: JB P3.5,ZXC - в метке ZXC осуществляется вызов подпрограммы, перехода на метку ZXC при 1 иначе переход на следующую строку;

ARC: JNB P3.5,ARC - в метке ARC осуществляется вызов подпрограммы, перехода на метку ARC при 0 иначе переход на следующую строку;

JNB P3.2,NEKO

RR A- циклический сдвиг вправо;

MOV P1,A – запись в P1 АСС

JMP ZXC- переход на метка ZXC

NEKO:RL A циклический сдвиг влево ;

MOV P1,A запись в P1 АСС;

JMP ZXC- переход на метка ZXC

RET- обеспечение выхода в монитор по окончании выполнения программы;

END- директива завершения текста программы.

  1. Составить программу формирования на выходе ЦАП1 частотно-манипулированного сигнала с одинаковой длительностью посылок «0» и «1». Использовать массив TABSIN. Логический «0» передавать одним периодом синусоиды, логическую «1» – двумя. Модулирующую информацию вводить, последовательно опрашивая входы Р3.2 ... Р3.5. Соединить один или два входа с шиной «Общий». Наблюдать сигнал на выходе ЦАП1.;

ORG 4000H- адрес, указанный директивой ORG, в который размещается
MOV DPTR,#TABSIN- запись TABSIN в DPTR

MOV R7,#0- запись 0 в R7

ZXC: MOV C,P3.2 - в метке ZXC осуществляется вызов подпрограммы, пересылки в бит переноса бита P3.2

CALL ARC – вызов подпрограммы в метке ARC

MOV C,P3.3 - пересылки в бит переноса бита P3.3

CALL ARC – вызов подпрограммы в метке ARC

MOV C,P3.4 - пересылки в бит переноса бита P3.4

CALL ARC – вызов подпрограммы в метке ARC

MOV C,P3.5 - пересылки в бит переноса бита P3.5

CALL ARC – вызов подпрограммы в метке ARC

JMP ZXC - переход в метку ZXC

ARC: JC NEKO - в метке ARC осуществляется вызов подпрограммы, перехода на метку NEKO при 0 флага переноса переход на следующую строку;

GULA: CLR A- сброс ACC

MOVC A,@A+DPTR- пересылка в АСС байта адрес которой равен ACC+DPTR ;

MOV P1,A – запись в P1 АСС

INC DPL- инкремент DPL

INC DPL- инкремент DPL

DJNZ R7,GULA декремент R7 и переход на метку GULA если не 0 иначе следующая команда ;

RET- обеспечение выхода в монитор по окончании выполнения программы;



NEKO: CLR A- сброс ACC

MOVC A,@A+DPTR- пересылка в АСС байта адрес которой равен ACC+DPTR ;

MOV P1,A – запись в P1 АСС

INC DPL- инкремент DPL

INC B- инкремент B

DJNZ R7, NEKO декремент R7 и переход на метку NEKO если не 0 иначе следующая команда;

RET- обеспечение выхода в монитор по окончании выполнения программы;

END- директива завершения текста программы.

  1. Составить программу формирования фазоманипулированного сигнала на выходе ЦАП1. В качестве элементарной посылки сигнала использовать массив TABMOD. Модуляция – через входы Р3.2 ... Р3.5.


ORG 4000H- адрес, указанный директивой ORG, в который размещается
MOV DPTR,#TABMOD - запись TABSIN в DPTR

MOV R7,#0- запись 0 в R7

ZXC: MOV C,P3.2 - в метке ZXC осуществляется вызов подпрограммы, пересылки в бит переноса бита P3.2

CALL ARC – вызов подпрограммы в метке ARC

MOV C,P3.3 - пересылки в бит переноса бита P3.3

CALL ARC – вызов подпрограммы в метке ARC

MOV C,P3.4 - пересылки в бит переноса бита P3.4

CALL ARC – вызов подпрограммы в метке ARC

MOV C,P3.5 - пересылки в бит переноса бита P3.5

CALL ARC – вызов подпрограммы в метке ARC

JMP ZXC - переход в метку ZXC

ARC: JC NEKO - в метке ARC осуществляется вызов подпрограммы, перехода на метку NEKO при 0 флага переноса переход на следующую строку;

GULA: CLR A- сброс ACC

MOVC A,@A+DPTR- пересылка в АСС байта адрес которой равен ACC+DPTR ;

MOV P1,A – запись в P1 АСС

CPL A – инверсия ACC

INC DPL- инкремент DPL

DJNZ R7,GULA декремент R7 и переход на метку GULA если не 0 иначе следующая команда ;

RET- обеспечение выхода в монитор по окончании выполнения программы;

NEKO: CLR A- сброс ACC

MOVC A,@A+DPTR- пересылка в АСС байта адрес которой равен ACC+DPTR ;

CPL A – инверсия ACC

MOV P1,A – запись в P1 АСС

INC DPL- инкремент DPL

DJNZ R7, NEKO декремент R7 и переход на метку NEKO если не 0 иначе следующая команда;

RET- обеспечение выхода в монитор по окончании выполнения программы;

END- директива завершения текста программы

  1. Составить программу формирования амплитудно-манипулированного сигнала с соотношением уровней амплитуд огибающей сигнала 1 : 2. В качестве элементарной посылки сигнала использовать массив TABMOD. Управление модуляцией – через входы Р3.2 ... Р3.5.

ORG 4000H- адрес, указанный директивой ORG, в который размещается
MOV DPTR,#TABMOD - запись TABSIN в DPTR

MOV R7,#0- запись 0 в R7

ZXC: MOV C,P3.2 - в метке ZXC осуществляется вызов подпрограммы, пересылки в бит переноса бита P3.2

CALL ARC – вызов подпрограммы в метке ARC

MOV C,P3.3 - пересылки в бит переноса бита P3.3


CALL ARC – вызов подпрограммы в метке ARC

MOV C,P3.4 - пересылки в бит переноса бита P3.4

CALL ARC – вызов подпрограммы в метке ARC

MOV C,P3.5 - пересылки в бит переноса бита P3.5

CALL ARC – вызов подпрограммы в метке ARC

JMP ZXC - переход в метку ZXC

ARC: JC NEKO - в метке ARC осуществляется вызов подпрограммы, перехода на метку NEKO при 0 флага переноса переход на следующую строку;

GULA: CLR A- сброс ACC

MOVC A,@A+DPTR- пересылка в АСС байта адрес которой равен ACC+DPTR ;

MOV P1,A – запись в P1 АСС

MOV B,#4 – запись в B 4

DIV AB – деление ACC на B частное в ACC остаток в B

ADD A,#96 – сложение ACC с 96

INC DPL- инкремент DPL

DJNZ R7,GULA декремент R7 и переход на метку GULA если не 0 иначе следующая команда ;

RET- обеспечение выхода в монитор по окончании выполнения программы;

NEKO: CLR A- сброс ACC

MOVC A,@A+DPTR- пересылка в АСС байта адрес которой равен ACC+DPTR ;

MOV P1,A – запись в P1 АСС

DIV AB – деление ACC на B частное в ACC остаток в B

ADD A,#96 – сложение ACC с 96

INC DPL- инкремент DPL

DJNZ R7,GULA

INC DPL- инкремент DPL

DJNZ R7, NEKO декремент R7 и переход на метку NEKO если не 0 иначе следующая команда;

RET- обеспечение выхода в монитор по окончании выполнения программы;

END- директива завершения текста программы


  1. Вызвать бесконечном цикле подпрограмму формирования сигнала с линейно-частотной модуляцией (CAL LFM). В ячейку 30Н занести коэффициент изменения формирования сигнала (3..9).

ORG 4000H- адрес, указанный директивой ORG, в который размещается
MOV 30H,#3 - запись 3 в 30H

ZXC: CAL LFM – вызов LFM

JMP ZXC – переход на ZXC

RET

END
Вывод.

В ходе лабораторной работы были написаны и запущены программы на языке Ассемблер, осуществляющие требования с пункта 3.2 до 3.7.