Программная реализация типовых функций управления. Типовые функции управления с помощью симулятора AVSIM51 на персональном компьютере

Страницы работы

Содержание работы

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

Учреждение образования «Гомельский государственный

университет им. П. О. Сухого»

Кафедра   «Промышленная электроника»

Лабораторная работа № 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

Определение стека,Начало,(A)ß(P1),Инверсия (A),(Р2)ß(А),DELAY10S
DELAY10SЗагрузка числа 10 в регистр R4DELAY1SДекремент регистра R4(R4)=0
?
Возврат


     Нет

                               Да
                                                      

Возврат(R7)=0 ?
?

(R5)=0 ?

?
Декремент R7

Декремент R5

Загрузка 0 в R5

Загрузка 8 в R7DELAY1S                                                     

 


Рис.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 на персональном компьютере.

Похожие материалы

Информация о работе