МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
Учреждение образования «Гомельский государственный
университет им. П. О. Сухого»
Кафедра «Промышленная электроника»
Лабораторная работа № 9 по дисциплине: «МПТ»
«Программная реализация типовых функций управления»
Выполнил студент гр. ПМ-31
Принял преподаватель
Гомель 2010
Лабораторная работа № 9
Цель работы: Изучить типовые функции управления и их программную реализацию для микроконтроллеров семейства МК51. Исследовать типовые функции управления с помощью симулятора AVSIM51 на персональном компьютере.
Решения задач для самостоятельной работы
1. Определите длительность задержки, выполняемой подпрограммой DELAY при тактовой частоте работы МК fclk = 10 Мгц.
DELAY: MOV R1, # 00H
MOV R0, # 00H
LOOP: DJNZ R0, LOOP
DJNZ R1, LOOP
RET
Следовательно длительность задержки составляет 158 мс.
2. Модернизируйте программу ALARM следующим образом. Состояние каждого датчика, подключенного к входам Вх1 – Вх8, отображается соответствующим светодиодом VD1 – VD8. Например, если сигнал на входе P1.0 = 0, то диод VD1 не горит, если же P1.0 = 1, то VD1 горит, и так далее для остальных светодиодов. Напишите программу, которая периодически опрашивает состояние датчиков и включает соответствующие светодиоды. Период опроса – 10 секунд.
Текст программы |
ALARM: MOV SP,#70H READIN: MOV A,P1 ;Загрузка из порта Р1 в А XRL A,#11111111B ;Инвертирование битов MOV P2,A ;Включение соответствующих светодиодов CALL DEL10S ; Вызов задержки 10 с JMP READIN DEL10S: MOV R4, #10 ; Загрузка в R4 числа вызовов подпрограммы DEL1S LOOP: CALL DEL1S ; Задержка на 1 с DJNZ R4, LOOP ; Декремент R4 и цикл, если (R4) ? 0 RET DEL1S: MOV R7, #8 ; R7 – счетчик внешнего цикла MOV R5, #0 ; R5 – счетчик внутреннего цикла LOOP2: MOV R6, #243 ; R6 – счетчик среднего цикла LOOP1: DJNZ R5, LOOP1 ; LOOP1 выполняется DJNZ R6, LOOP1 ; за 125 мс (при fclk = 12 МГц) DJNZ R7, LOOP2 ; LOOP2 выполняет LOOP1 8 раз RET |
Рис.1 Блок схемы программы и подпрограмм
3. Требуется разработать МКУ, которое вырабатывает периодические импульсы типа меандр различной частоты для управления работой вибростенда, предназначенного для испытания изделий на механическую прочность.
Текст программы |
START: MOV SP,#70H MOV A,#11100001B ANL P2,A SBROS: CLR P2.0 ;включение светодиода "Готов" WTPRS: JB P1.0,G1 ;Проверка на JB P1.1,G2 ;выбор одного JB P1.2,G3 ;из режимов JB P1.3,G4 ;работы генератора JMP WTPRS ;Цикл ожидания выбора частоты ;Обработка первого генератора G1: SETB P2.0 ;Выключение светодиода "Готов" CALL WTST GMND1: CPL P2.1 CALL DEL5S ;Вызов задержки соответсвующей частоты JB P3.1,GMND1 ;Генерация меандра, пока не будет нажата "Стоп" CALL DEL20MS ;Борьба с дребезгом клавиши "Стоп" JMP SBROS ;Обработка второго генератора G2: SETB P2.0 ;Выключение светодиода "Готов" CALL WTST GMND2: CPL P2.2 CALL DEL05S ;Вызов задержки соответсвующей частоты JB P3.1,GMND2 ;Генерация меандра, пока не будет нажата "Стоп" CALL DEL20MS ;Борьба с дребезгом клавиши "Стоп" JMP SBROS ;Обработка третьего генератора G3: SETB P2.0 ;Выключение светодиода "Готов" CALL WTST GMND3: CPL P2.3 CALL DEL50MS ;Вызов задержки соответсвующей частоты JB P3.1,GMND3 ;Генерация меандра, пока не будет нажата "Стоп" CALL DEL20MS ;Борьба с дребезгом клавиши "Стоп" JMP SBROS ;Обработка четвертого генератора G4: SETB P2.0 ;Выключение светодиода "Готов" CALL WTST GMND4: CPL P2.3 CALL DEL5MS ;Вызов задержки соответсвующей частоты JB P3.1,GMND4 ;Генерация меандра, пока не будет нажата "Стоп" CALL DEL20MS ;Борьба с дребезгом клавиши "Стоп" JMP SBROS ;Блок циклов задержки WTST: JB P3.0, WTST ; Ожидание замыкания контакта "Старт" CALL DEL20MS ; Подпрограмма задержки на 20 мс RET DEL20MS: MOV R1, #39 ; Счетчик внешних циклов LOOPEX: MOV R2, #255 ; Счетчик внутренних циклов LOOPIN: DJNZ R2, LOOPIN ; Декремент R2 и внутренний цикл, если (R2)≠0 DJNZ R1, LOOPEX ; Декремент R1 и внешний цикл, если (R1)≠0 RET DEL5S: MOV R4, #5 ; Загрузка в R4 числа вызовов подпрограммы DEL1S LOOP: CALL DEL1S ; Задержка на 1 с DJNZ R4, LOOP ; Декремент R4 и цикл, если (R4)≠0 RET DEL1S: MOV R7, #8 ; R7 – счетчик внешнего цикла MOV R5, #0 ; R5 – счетчик внутреннего цикла LOOP2: MOV R6, #243 ; R6 – счетчик среднего цикла LOOP1: DJNZ R5, LOOP1 ; LOOP1 выполняется DJNZ R6, LOOP1 ; за 125 мс (при fclk = 12 МГц) DJNZ R7, LOOP2 ; LOOP2 выполняет LOOP1 8 раз RET DEL05S: MOV R7, #4 ; R7 – счетчик внешнего цикла MOV R5, #0 ; R5 – счетчик внутреннего цикла LOOP4: MOV R6, #243 ; R6 – счетчик среднего цикла LOOP3: DJNZ R5, LOOP3 ; LOOP1 выполняется DJNZ R6, LOOP3 ; за 125 мс (при fclk = 12 МГц) DJNZ R7, LOOP4 ; LOOP2 выполняет LOOP1 8 раз RET DEL50MS: MOV R3,#5 ; Загрузка в R3 числа вызовов подпрограммы DEL10MS LOOP5: CALL DEL10MS ; Задержка на 10 мс DJNZ R3,LOOP5 ; Декремент R3 и цикл, если (R3)≠0 RET DEL10MS: MOV R1, #19 ; Счетчик внешних циклов LOOPOUT: MOV R2, #255 ; Счетчик внутренних циклов LOOPINP: DJNZ R2, LOOPINP ; Декремент R2 и внутренний цикл, если (R2)≠0 DJNZ R1, LOOPOUT ; Декремент R1 и внешний цикл, если (R1)≠0 RET DEL5MS: MOV R1, #10 ; Счетчик внешних циклов LOOP7: MOV R2, #255 ; Счетчик внутренних циклов LOOP6: DJNZ R2, LOOP6 ; Декремент R2 и внутренний цикл, если (R2)≠0 DJNZ R1, LOOP7 ; Декремент R1 и внешний цикл, если (R1)≠0 RET |
Рис. 2. Блок схема основной программы
Принципиальная схема МКУ:
Вывод: Изучили типовые функции управления и их программную реализацию для микроконтроллеров семейства МК51. Исследовали типовые функции управления с помощью симулятора AVSIM51 на персональном компьютере.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.