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

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

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

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

Добавлен: 01.12.2023

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

Скачиваний: 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- переход на метка ZXCRET- обеспечение выхода в монитор по окончании выполнения программы

;

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


  1. Отладить и запустить циклическую программу вывода в порт Р1 «бегущей единицы». Направление сдвига задавать входом Р3.2. Управлять частотой сдвига входом Р3.5, обнаруживая перепад 1/0. Подключить к Р3.5 сигнал генератора макета. Наблюдать осциллограммы на выводах порта Р1 и выходе ЦАП1, меняя частоту генератора и сигнал на входе Р3.2.
ORG 4000H- адрес, указанный директивой ORG, в который размещаетсяMOV A,#1- запись 1 в ACCZXC: JB P3.5,ZXC - в метке ZXC осуществляется вызов подпрограммы, перехода на метку ZXC при 1 иначе переход на следующую строку;ARC: JNB P3.5,ARC - в метке ARC осуществляется вызов подпрограммы, перехода на метку ARC при 0 иначе переход на следующую строку;JNB P3.2,NEKORR A- циклический сдвиг вправо;MOV P1,A – запись в P1 АССJMP ZXC- переход на метка ZXCNEKO:RL A циклический сдвиг влево ;MOV P1,A запись в P1 АСС;JMP ZXC- переход на метка ZXCRET- обеспечение выхода в монитор по окончании выполнения программы;END- директива завершения текста программы.

  1. Составить программу формирования на выходе ЦАП1 частотно-манипулированного сигнала с одинаковой длительностью посылок «0» и «1». Использовать массив TABSIN. Логический «0» передавать одним периодом синусоиды, логическую «1» – двумя. Модулирующую информацию вводить, последовательно опрашивая входы Р3.2 ... Р3.5. Соединить один или два входа с шиной «Общий». Наблюдать сигнал на выходе ЦАП1.;
ORG 4000H- адрес, указанный директивой ORG, в который размещаетсяMOV DPTR,#TABSIN- запись TABSIN в DPTRMOV R7,#0- запись 0 в R7ZXC: MOV C,P3.2 - в метке ZXC осуществляется вызов подпрограммы, пересылки в бит переноса бита P3.2 CALL ARC – вызов подпрограммы в метке ARCMOV C,P3.3 - пересылки в бит переноса бита P3.3CALL ARC – вызов подпрограммы в метке ARCMOV C,P3.4 - пересылки в бит переноса бита P3.4CALL ARC – вызов подпрограммы в метке ARCMOV C,P3.5 - пересылки в бит переноса бита P3.5CALL ARC – вызов подпрограммы в метке ARCJMP ZXC - переход в метку ZXCARC: JC NEKO - в метке ARC осуществляется вызов подпрограммы, перехода на метку NEKO при 0 флага переноса переход на следующую строку;GULA: CLR A- сброс ACCMOVC A,@A+DPTR- пересылка в АСС байта адрес которой равен ACC+DPTR ;MOV P1,A – запись в P1 АССINC DPL- инкремент DPLINC DPL- инкремент DPL DJNZ R7,GULA декремент R7 и переход на метку GULA если не 0 иначе следующая команда ;RET- обеспечение выхода в монитор по окончании выполнения программы;

NEKO: CLR A- сброс ACCMOVC 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 в DPTRMOV R7,#0- запись 0 в R7ZXC: MOV C,P3.2 - в метке ZXC осуществляется вызов подпрограммы, пересылки в бит переноса бита P3.2 CALL ARC – вызов подпрограммы в метке ARCMOV C,P3.3 - пересылки в бит переноса бита P3.3CALL ARC – вызов подпрограммы в метке ARCMOV C,P3.4 - пересылки в бит переноса бита P3.4CALL ARC – вызов подпрограммы в метке ARCMOV C,P3.5 - пересылки в бит переноса бита P3.5CALL ARC – вызов подпрограммы в метке ARCJMP ZXC - переход в метку ZXCARC: JC NEKO - в метке ARC осуществляется вызов подпрограммы, перехода на метку NEKO при 0 флага переноса переход на следующую строку;GULA: CLR A- сброс ACCMOVC A,@A+DPTR- пересылка в АСС байта адрес которой равен ACC+DPTR ;MOV P1,A – запись в P1 АССCPL A – инверсия ACCINC DPL- инкремент DPLDJNZ R7,GULA декремент R7 и переход на метку GULA если не 0 иначе следующая команда ;RET- обеспечение выхода в монитор по окончании выполнения программы;NEKO: CLR A- сброс ACCMOVC A,@A+DPTR- пересылка в АСС байта адрес которой равен ACC+DPTR ;CPL A – инверсия ACCMOV 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 в DPTRMOV R7,#0- запись 0 в R7ZXC: MOV C,P3.2 - в метке ZXC осуществляется вызов подпрограммы, пересылки в бит переноса бита P3.2 CALL ARC – вызов подпрограммы в метке ARCMOV C,P3.3 - пересылки в бит переноса бита P3.3
CALL ARC – вызов подпрограммы в метке ARCMOV C,P3.4 - пересылки в бит переноса бита P3.4CALL ARC – вызов подпрограммы в метке ARCMOV C,P3.5 - пересылки в бит переноса бита P3.5CALL ARC – вызов подпрограммы в метке ARCJMP ZXC - переход в метку ZXCARC: JC NEKO - в метке ARC осуществляется вызов подпрограммы, перехода на метку NEKO при 0 флага переноса переход на следующую строку;GULA: CLR A- сброс ACCMOVC A,@A+DPTR- пересылка в АСС байта адрес которой равен ACC+DPTR ;MOV P1,A – запись в P1 АССMOV B,#4 – запись в B 4DIV AB – деление ACC на B частное в ACC остаток в BADD A,#96 – сложение ACC с 96INC DPL- инкремент DPLDJNZ R7,GULA декремент R7 и переход на метку GULA если не 0 иначе следующая команда ;RET- обеспечение выхода в монитор по окончании выполнения программы;NEKO: CLR A- сброс ACCMOVC A,@A+DPTR- пересылка в АСС байта адрес которой равен ACC+DPTR ;MOV P1,A – запись в P1 АССDIV AB – деление ACC на B частное в ACC остаток в BADD A,#96 – сложение ACC с 96INC DPL- инкремент DPLDJNZ 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 в 30HZXC: CAL LFM – вызов LFMJMP ZXC – переход на ZXC RETENDВывод.В ходе лабораторной работы были написаны и запущены программы на языке Ассемблер, осуществляющие требования с пункта 3.2 до 3.7.