Файл: Изучение принципов отладки программ с использованием резидентных средств микроконтроллера.docx
Добавлен: 01.12.2023
Просмотров: 14
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра РЭС
отчет
по лабораторной работе № 3
по дисциплине «Цифровые и микропроцессорные устройства»
Тема: Изучение принципов отладки программ с использованием резидентных средств микроконтроллера
Студенты гр. | | |
Преподаватель | | |
Санкт-Петербург
2023
Цель работы.
Написать и запустить программы в соответствии с требованием пунктов 3.2-3.7
Экспериментальные результаты и их обработка.
-
Отладить и запустить циклическую программу анализа состояния входов порта Р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 «бегущей единицы». Направление сдвига задавать входом Р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 частотно-манипулированного сигнала с одинаковой длительностью посылок «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. В качестве элементарной посылки сигнала использовать массив 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 : 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- директива завершения текста программы
-
Вызвать бесконечном цикле подпрограмму формирования сигнала с линейно-частотной модуляцией (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.