МПУ 4. Изучение принципов отладки программ с использованием резидентных средств микроконтроллера
Скачать 27.2 Kb.
|
МИНОБРНАУКИ РОССИИ Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина) Кафедра РЭС отчет по лабораторной работе № 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. |