Главная страница
Навигация по странице:

  • Теоретические сведения.

  • Программно-логическая модель МК-51 и работа с ней

  • Практическая часть.

  • Контрольные вопросы

  • Практическая работа №36. Исследование логических элементов (система прерываний). Цель работы

  • Практическая часть

  • Практическая работа №37. Параллельный интерфейс. Цель работы

  • Методические указания для практических занятий по дисциплине мдк. 02. 01


    Скачать 7.37 Mb.
    НазваниеМетодические указания для практических занятий по дисциплине мдк. 02. 01
    Дата09.09.2022
    Размер7.37 Mb.
    Формат файлаpdf
    Имя файлаMetod_Mikroprocessornye-sistemy_PZ_09.02.01_2020.pdf
    ТипМетодические указания
    #669073
    страница24 из 43
    1   ...   20   21   22   23   24   25   26   27   ...   43
    Практическая работа №35. Микроконтроллеры семейства МК51 (типы операндов).
    Цель работы: изучить систему команд 8-разрядного микроконтроллера семейства МК51, а также программно-логическую модель МК-51 и работу с ней.
    Теоретические сведения.

    187
    Микроконтроллер имеет 111 базовых команд передачи данных, арифметических и побитных операций, передачи управления и операций с битами. Большинство команд выполняются за 1 или 2 машинных цикла при fтак=12Mгц и длительности машинного цикла 1 мкс. Первый байт команды всегда содержит код операции (КОП), второй и третий байты - либо адреса операндов, либо непосредственные операнды.
    Перечень команд МК-51 приводится в таблице 4.
    Таблица 4 - Система команд
    Мнемокод
    КОП Мнемокод
    КОП Мнемокод
    КОП
    ACALL 0ххН
    11
    AJMP 5XXH
    A1
    DA A
    D4
    ACALL 1xxH
    31
    AJMP 6XXH
    C1
    DEC A
    14
    ACALL 2xxH
    51
    AJMP 7XXH
    El
    DEC ad
    15
    ACALL 3ххН
    71
    ANL A , ad
    55
    DEC R0 18
    ACALL 4xxH
    91
    ANL A, R0 58
    DEC R1 19
    ACALL 5xxH
    B1
    ANL A, R1 59
    DEC R2 1A
    ACAlL 6xxH
    D1
    ANL A, R2 5A
    DEC R3 1B
    ACALL 7xxH
    FI
    ANL A, R3
    SB
    DEC R4 1С
    ADD A, ad
    25
    ANL A, R4 5C
    DEC R5 1D
    ADD A, R0 28
    ANL A, R5 5D
    DEC R6 1E
    ADD A , R1 29
    ANL A, R6 5E
    DEC R7 1F
    ADD A, R2 2A
    ANL A, R7 5F
    DEC @R0 16
    ADD A, R3 2B
    ANL A, @R0 56
    DEC @R1 17
    ADD A, R4 2C
    ANL A, @R1 57
    DIV AВ
    84
    ADD A, R5 2D
    ANL A, #d
    54
    DJNZ ad, rel
    D5
    ADD A, R6 2E
    ANL ad, A
    52
    DJNZ R0, rel
    D8
    ADDA, R7 2F
    ANL ad, #d
    S3
    DJNZ R1, rel
    D9
    ADD A, @R0 26
    ANL C, bit
    82
    DJNZ R2, rel
    DA
    ADD A, @R1 27
    ANL C, /bit
    BO
    DJNZ R3, rel
    DB
    ADD A, #d
    34
    CJNE A, ad, rel
    B5
    DJNZ R4, rel
    DC
    ADDC A, ad
    35
    CJNE A, #d, rel
    B4
    DJNZ R5, rel
    DD
    ADDC A, R0 38
    CJNE R0, #d, rel B8
    DJNZ R6, rel
    DE
    ADDC A, R0 39
    CJNE R1, #d, rel B9
    DJNZ R7, rel
    DF
    ADDC A, RO
    ЗА
    CJNE R2, #d, rel BA
    INC a
    04
    ADDC A , R0 3B
    CJNE R3, #d, rel BB
    INC ad
    05
    ADDC A, R0
    ЗС
    CJNE R4, #d, rel ВС
    INC DPTR
    A3
    ADDC A, R0 3D
    CJNE R5, #d, rel BD
    INC R0 08
    ADDC A, R0 3E
    CJNE R6, #d , rel BE
    INC R1 09
    ADDC A , R0 3F
    CJNE R7 , #d, ret BF
    INC R2
    OA
    ADDC A, @R0 36
    CJNE @R0, #d, rel
    B6
    INC R3
    OB
    ADDC A, @R1 37
    CJNE @R1, #d, rel
    B7
    INCR4 0С
    ADDC A, #d
    24
    CLR A
    E4
    INC R5 0D
    AJMP 0XXH
    01
    CLR bit
    C2
    INC R6 0E
    AJMP 1XXH
    21
    CLR C
    C3
    INC R7
    OF
    AJMP 2XXH
    41
    CPL A
    F4
    INC @R0 06

    188
    AJMP 3XXH
    61
    CPL bit
    B2
    INC @R1 07
    AJMP 4XXH
    81
    CPL С
    B3
    JB bit, rel
    20
    JBC bit, rel
    10
    Продолжение таблицы 2
    Мнемокод
    КОП Мнемокод
    КОП Мнемокод
    КОП
    JC rel
    40
    MOV ad , @R0 86
    MOV R7 , ad
    AF
    JMP@A+DPTR 73
    MOV ad, @R1 87
    MOV R7, #d
    7F
    JNB bit , rel
    30
    MOV ad, #d
    75
    MOV @R0 , A
    F6
    JNC rel
    50
    MOV ad, ads
    85
    MOV@R0, ad
    A6
    JNZrel
    70
    MOV bit, C
    92
    MOV@R0, #d
    76
    JZ rel
    60
    MOV C, bit
    A2
    MOV @R1 , A
    F7
    LCALL ad16 12
    MOV DPTR, #dl6 90
    MOV@R1, ad
    A7
    LJMP ad 16 02
    MOV R0, A
    F8
    MOV @R1, #d
    77
    MOV A , ad
    E5
    МОV R0, ad
    A8
    MOVC
    A,
    @+DPTR
    93
    MOV A , RO
    E8
    MOV R0, #d
    78
    MOVC
    A
    ,
    @+PC
    83
    MOV A, R1
    E9
    MOV R1 , A
    F9
    MOVX
    A
    ,
    @DPTR
    EO
    MOV A , R2
    EA
    MOV R1 , ad
    A9
    MOVX A, @R0 E2
    MOV A , R3
    EB
    MOV Rl , #d
    79
    MOVX A, @R1 E3
    MOV A , R4
    EC
    MOV R2, A
    FA
    MOVX @DPTR,
    A
    F0
    MOV A , R5
    ED
    MOV R2, ad
    AA
    MOVX @R0 , A F2
    MOV A , R6
    ЕЕ
    MOV R2, #d
    7A
    MOVX @R1, A F3
    MOV A , R7
    EF
    MOV R3 , A
    FB
    MUL AB
    A4
    MOV A , @R0
    Е6
    MOV R3 , ad
    AB
    NOP
    00
    MOV A, @R1
    E7
    MOV R3 , #d
    7B
    ORL A , ad
    45
    MOV a , #d
    74
    MOV R4, A
    FC
    ORL A , R0 48
    MOV ad , A
    F5
    MOV R4 , ad
    AC
    ORL A, R1 49
    MOV ad , R0 88
    MOV R4, #d
    7C
    ORL A, R2 4A
    MOV ad , R1 89
    MOV R5, A
    FD
    ORL A , R3 4B
    MOV ad , R2 8A
    MOV R5 , ad
    AD
    ORL A, R4 4C
    MOV ad, R3 8B
    MOV R5 , #d
    7D
    ORL A, R5 4D
    MOV ad , R4 8C
    MOV R6 , A
    FE
    ORL A, R6 4E
    MOV ad , R5 8D
    MOV R6, ad
    AE
    ORL A, R7 4F
    MOV ad , R6 8E
    MOV R6, #d
    7E
    ORL A, @R0 46
    MOV ad , R7 8F
    MOV R7 , A
    FF
    ORL A , @R0 47
    ORL A, #d
    44
    RRC A
    13
    SUBB A , R7 9F
    ORL ad , A
    42
    SETB bit
    D2
    SUBB A , @R0 96
    ORL ad , #d
    43 setb c
    D3
    SUBB A, @R1 97
    ORL С , bit
    72
    SJMP rel
    80
    SWAP A
    C4
    ORL С, /bit
    АО
    SUBB A, ad
    95
    XCH A , ad
    C5
    POP ad
    DO
    SUBB A, R0 98
    XCH A, R0
    C8

    189
    PUSH ad
    CO
    SUBB A, R1 99
    XCH A, R1
    C9
    RET
    22
    SUBB A , R2 9A
    XCH A , R2
    CA
    RETI
    32
    SUBB A , R3 9B
    XCH A , R3
    CB
    RL A
    23
    SUBB A, R4 9C
    XCH A , R4
    CC
    RLC A
    33
    SUliB A , R5 9D
    XCH A , R5
    CD
    RR A
    03
    SUBB A, R6 9E
    XCH A , R6
    CE
    XCH A, R7
    CF
    XRL A, R1 69
    XRL A , R7 6F
    XCH A, @R0 06
    XRL A,
    6A
    XRL A , @)R0 66
    XCH A, @Rl
    C7
    XRL A, R3 6B
    XRL A, @R1 67
    XCHD A, @R0
    D6
    XRL A, R4 6C
    XRL A, #d
    64
    XCHD A, @R1
    D7
    XRL A, R5 6D
    XRL ad , A
    62
    XRL A, ad
    65
    XRL A , R6 6E
    XRL ad, #d
    63
    XRL A, R0 68
    Программно-логическая модель МК-51 и работа с ней
    Программно-логическая модель микроконтроллера
    K18I6BE51 реализуется с использованием PC. Программа SCM (Single-Chip Machine) представляет собой систему моделирования однокристальных микроконтроллеров.
    Система моделирования Single-Chip Machine 1.22 предназначена для исследования поведения внутренних и внешних сигналов указанных микросхем.
    Программа SCM (Single-Chip Machine) выполнена в виде независимого запускаемого модуля, работоспособного под управлением операционной системы MS Window NT/XP. SCM включает средства отладки и редактирования программ на ассемблере. Выполнение программы пользователя осуществляется с максимальным приближением к действительности с помощью имитационной модели. Кроме того, пользователю предоставляется такие средства, как временные диаграммы внутренних и внешних сигналов, имитация внешних сигналов, возможность изменения значений узлов МК в процессе работы модели и др.
    Пользователь набирает программу в редакторе программ, затем нажимает кнопку
    “компиляция”. Текст программы переводится в машинные коды и записывается в одноименный файл (с исходным текстом) с расширением “.MPM”. Расширение “.MPM”, расшифровывается как
    Microcontroller Program Memory, однако существует стандартный формат представления памяти программ - так называемый формат HEX.
    Программа обеспечивает: выполнение прикладной программы для ОЭВМ в пошаговом режиме, в режиме прогона с остановом по контрольным точкам; доступ ко всем внутренним ресурсам ОЭВМ, внешней памяти программ и данных.
    Практическая часть.
    Ход работы:
    1.
    Изучение программы эмулятора SCM.
    2.
    Запуск программы. Знакомство и изучение основного меню программы, ознакомление с возможностями и способами редактирования внутренних и внешних ресурсов эмулятора.
    3.
    Изучение процесса программирования микроконтроллера, ввода и отладки программ, и также их выполнения.
    4.
    Запуск программы - эмулятора и практическое закрепление полученных знаний.
    Контрольные вопросы:
    1. Архитектура микроконтроллера. Основные узлы и блоки.
    2. Максимальный объем ОЗУ и ПЗУ, используемый данным контроллером.

    190 3. Способы редактирования с помощью программы - эмулятора ОЗУ, ПЗУ, системных ресурсов.
    4. Команды выполнения программы. Результаты выполнения.
    5. Возможности отладки МПУ.
    6. Между какими частями микроконтроллера осуществляется передача данных.
    7. Методы адресации, используемые в ОЭВМ.
    8. Типы портов микроконтроллера.
    9. Как происходит адресация внешнего ОЗУ и ПЗУ?
    Практическая работа №36. Исследование логических элементов (система
    прерываний).
    Цель работы: исследование системы прерываний микроконтроллеров семейства MCS-51 с помощью персонального компьютера и программных средств отладки.
    Практическая часть
    1. Зафиксировать содержимое регистров, флагов и ячеек памяти микроконтроллера после загрузки эмулятора (avsim51 -c1 a). Чему равно содержимое указателя стека? Разрешены ли прерывания? На какой режим настроены таймеры? Какая установлена скорость выполнения программы?
    2. Составить комментарий к программе преобразования двоичного числа, задаваемого на линиях порта Р1, в двоично-десятичное содержимое регистра DPTR:
    MOV
    A,P1
    MOV
    B,#100
    DIV
    AB
    MOV
    DPH,A
    MOV
    A,#10
    XCH
    A,B
    DIV
    AB
    SWAP A
    ORL
    A,B
    MOV
    A,B
    В режиме Patch Code ввести текст программы в эмулятор и проверить ее работу в пошаговом (F10) режиме. Как выполняется команда деления? Какие флаги PSW изменяются при выполнении программы?
    3. Записать в первые две ячейки памяти программ программу, состоящую из одной команды SJMP 0 (80 FE), и запустить ее на выполнение в автоматическом режиме. Почему не работают таймеры Т/С0 и Т/С1?
    Установив TR0=1, проверить работу Т/С0 в режиме таймера (скорость счета изменяется клавишей F5) и счетчика событий (TMOD.2=1). Перепады на линии Т0 (Р3.4) формировать с помощью клавиши Insert. В каком диапазоне изменяется содержимое регистров TL0 и TH0 при работе T/C0 в режиме 0? Когда устанавливается флаг TF0?
    Проверить работу Т/С1 в режиме 1. Установив TR1=1 и GATE1=1, проверить возможность аппаратного управления работой таймера уровнем сигнала на входе INT1 (P3.3).
    Перевести Т/С0 в режим 2 (8-битный автоперезагружаемый таймер/счетчик). Установив
    (ТН0)=0D5H, проследить работу Т/С0 в режиме таймера и счетчика событий.
    Перевести Т/С0 в режим 3 (TL0 и ТН0 функционируют как два независимых 8-битных счетчика). Возможно ли в этом режиме использование прерываний от Т/С1?
    4. В режиме Patch Code ввести в эмулятор текст программы, при реализации которой регистры R0, R1, R2, R3, R4 фиксируют число выполнения подпрограмм обслуживания прерываний от различных источников, а аккумулятор работает в режиме двоичного счетчика:

    191
    ORG 00H
    INC A
    SJMP 0
    ORG 03H
    INC R0
    RETI
    ORG 0BH
    INC R1
    RETI
    ORG 13H
    INC R2
    RETI
    ORG 1BH
    INC R3
    RETI
    ORG 23H
    INC R4
    CLR SCON.0
    CLR SCON.1
    RETI
    Разрешить прерывания по входу INT0, установив в режиме окна ЕА=1 и ЕХ0=1. При работе программы в автоматическом режиме исследовать различие механизма обработки прерывания при IT0=0 и IT0=1 (по уровню и по срезу Р3.2).
    Разрешить прерывания и по входу INT1. При IT0=IT1=0 установить INT0=INT1=0 и запустить программу. Почему не выполняется подпрограмма обслуживания прерываний по входу
    INT1? Повторить работу программы, установив в регистре приоритетов прерываний РХ1=1.
    Разрешить все прерывания. Установить TR0=TR1=IT0=IT1=1. Запустить программу на выполнение. Убедиться, что периодически выполняются подпрограммы обслуживания прерываний по переполнению таймеров. Что происходит при изменении содержимого буферных регистров приемника и передатчика последовательного порта SBUF? Проимитировать внешние прерывания по входам INT0 и INT1.
    Остановить выполнение программы. Установить все флаги прерываний (IE0, IE1, TF0,
    TF1, RI и TI). Продолжить выполнение программы в пошаговом режиме. Объяснить поведение микроконтроллера. В какой момент сбрасываются флаги IE0, IE1, TF0, TF1(при передаче управления подпрограмме обслуживания или по команде RETI)? Повторить эксперимент, установив в регистре приоритетов PS=1. Объяснить новую последовательность выполнения подпрограмм обслуживания прерываний. Что будет, если при выполнении подпрограммы обслуживания прерываний пришел запрос прерываний с большим приоритетом? Нужно ли сбрасывать программно флаги TF0, TF1, RI и TI?
    5. Испытать на эмуляторе работу следующей программы, формирующей в аккумуляторе двоично-десятичный код длительности импульса (единицы и десятые доли мс) на входе INT0:
    ORG 00H
    ; RESET
    MOV TH0,#156
    ; Загрузка регистров Т/С0
    MOV TL0,#0
    MOV TMOD,#0AH ; Настройка Т/С0 на режим 2
    SJMP M1
    ORG 0BH
    ; Вектор прерывания от Т/С0

    192
    ADD A,#1
    ;
    Подпрограмма обслуживания
    DA
    A
    ; прерываний
    RETI
    ; Возврат из подпрограммы
    M1:
    CLR A
    ; Очистка аккумулятора
    MOV IE,#82H
    ;Разрешение прерываний от
    Т/С0
    SETB TR0
    ; Запуск таймера Т/С0
    SJMP $
    ; Зацикливание программы
    Начиная с адреса 0ВН записана подпрограмма обслуживания прерываний по таймеру
    Т/С0. После каждого переполнения таймера (т.е. через каждые 100 мкс при частоте кварца 12
    МГц) содержимое двоично-десятичного счетчика, организованного в аккумуляторе, увеличивается на единицу. Основная программа начинается с нулевой ячейки, при выполнении обходит ячейки, занятые подпрограммой, и заканчивается командой SJMP $.
    Таймер Т/С0 настраивается на режим 8-разрядного счетчика с автоперезагрузкой и возможностью аппаратного запуска логической 1 на входе INT0 (перед запуском программы на этом входе надо зафиксировать логический 0). В регистр ТН0 загружается дополнительный код числа минус 100.
    Проимитировав на входе INT0 импульс длительностью 10 мс, измерить секундомером реальное время работы программы при наивысшей скорости (HI). Во сколько раз скорость воспроизведения программы с помощью эмулятора отличается от реального масштаба времени?
    Контрольные вопросы
    1. Разрешены ли прерывания после системного сброса?
    2. Может ли быть прервано выполнение программы обработки прерывания с высоким уровнем приоритета?
    3. Транслировать команду JB ТF0,$+5.
    4. Что происходит при выполнении команды CJNE A,#40,M1?
    5. Какой флаг устанавливается после выполнения команды MOV SBUF,B?
    6. Какими командами можно загрузить в Т/С0 дополнительный код числа 10000?
    Практическая работа №37. Параллельный интерфейс.
    Цель работы: изучение схем динамической и статической индикации
    Краткие теоретические сведения
    В состав интегральной микросхемы К580ВВ55 (ИМС) программируемого параллельного интерфейса входит:
    1. устройство управления вводом-выводом;
    2. двухнаправленнй буфер данных;
    3. порты А и В, 8-ми разрядные регистры с шинными формирователями;
    4. порт С, два 4-ех разрядных регистра с шинами формирователями;
    5. регистр управляющего слова.
    Порт А и старшая половина порта С может объединятся в группу А. Порт В и младшая половина порта С может объединятся в группу В. Для обеспечения работоспособности ИМС необходимо записать управляющее слово.
    Формат управляющего слова инициализации.
    Управляющее слово инициализации определяет режим работы и направление передачи данных.
    Бит

    193
    D7
    Определяет либо установку режимов работы каналов D7-
    "1", либо работу ППИ в режиме сброса/установки отдельных разрядов порта С
    D6
    Режим
    0
    Режим
    1
    Режим
    2
    Группа
    А
    D5
    D4
    Вывод
    РА(7-0)
    Ввод
    РА(7-
    0)
    D3
    Вывод
    РС(7-4)
    Ввод
    РС(7-4)
    D2
    Режим
    0
    Режим
    1
    Группа
    В
    D1
    Вывод
    РВ(7-0)
    Ввод
    РВ(7-0)
    D0
    Вывод
    РС(3-0)
    Ввод
    РС(3-0)
    Простейшими приборами отображения информации в цифровых устройствах являются светодиоды и цифровые индикаторы.
    Включение единичных индикаторов.
    В полупроводниковых светодиодах используется свойство p-n перехода излучать свет в видимой части спектра при протекании через него прямого тока (I
    пр
    =5-20мА, U
    пр
    =2-3В).
    Варианты включения индикаторов на рис5.
    Для отображения цифровой информации наибольшее распространение получили семи сегментные индикаторы, в которых изображение цифры составляют из семи линейных светодиодных сегментов расположенных в виде цифры 8.
    На основе светодиодов и семи сегментных индикаторов строятся подсистемы отображения информации. При построении подсистем отображения информации различают два подхода, динамическая и статическая индикация.
    Статическая индикация заключается в постоянной подсветке индикаторов HL1-n от одного источника информации рис.6.

    194
    DA – дешифратор адреса, необходим для выборки соответствующего регистра
    R1-R3- регистры, в которых временно хранится значение кода числа для отображения
    (соответствующий регистр выбирается DA).
    DC1-DC3 – семи сегментные дешифраторы, преобразующие двоичный код в семи сегментный код.
    HL1-HL3 – семи сегментные индикаторы.
    ШД – шина данных, по ней осуществляется передача данных на индикацию.
    Структурная схема статической индикации.
    В такой системе каждый индикатор HL1-n подключен через собственный дешифратор
    DC1-n и регистр-защелку RG1-n к шине данных, выборка регистров RG1-n производится при помощи селектора адреса СА. Аппаратные затраты при такой организации составляют n пар регистр + дешифратор при n десятичных разрядов индикатора.
    В стенде адресация реализована с помощью дешифратора микросхему КР555ИД7, выходные сигналыCS2, CS3, т.к. адреса индикаторов находятся в поле адресации внешней памяти данных, то для выборки используется сигнал WR с процессора. Микросхемы индикации
    КР490ИП2 содержат в себе регистр и семи сегментный дешифратор.
    Сущность динамической индикации заключается в поочередном циклическом подключении каждого индикатора HL1-n к источнику информации через общую шину данных, рис 7.
    Выборка индикатора осуществляется дешифратором DА. В регистре RD хранится цифровой код, предназначенный для отображения. В регистре RA хранится адрес индикатора.
    Структурная схема динамической индикации
    RD- регистр данных для временного хранения отображаемого числа либо символа.
    RA- регистр адреса для временного хранения двоичного кода адреса выбираемого индикатора.
    DA-для преобразования адреса задаваемого двоичным кодом а позиционный код.
    HL1-HL4- семи сегментные индикаторы.
    При таком включении значительно уменьшаются аппаратные затраты. Но необходимо обеспечить достаточное время свечения одного индикатора, для того чтобы не уменьшалась яркость. Также необходимо обеспечить такую частоту перебора индикаторов, чтобы не было заметно мерцание. Преимущества такого способа заметны при количестве десятичных разрядов индикации больше 5.

    195
    На стенде статическая индикация реализована на четырех статических семи сегментных двоично-десятичных индикаторах (HG1 – HG4). Обращение к ним производится, как к ячейкам памяти с адресами А000h , В000h. Передача данных на индикаторы осуществляется с ОЭВМ по шине данных AD(0-7). Сигналы выборки микросхем индикации CS2, CS2.
    Динамическая индикация реализована с помощью двух семи сегментных индикаторов
    HG2, HG3. Управление динамической индикацией осуществляется с помощью элементов DD4,
    DD3.4, DD3.5 (линия данных А,B,C,D,E,F,G,H, -РВ0, РВ1, РВ2, РВ3, РВ4, РВ5, РВ6 ,РВ7) сигналы поступают с порта РВ микросхемы параллельного приемопередатчика DD10 (см. схему электрическую стенда приложение 1) , сигналы выборки соответствующего индикатора поступают от линии порта РС микросхемы DD10 к транзисторам VT2 и VT3.
    Также на плате расширения установлены матрица 5х7 светодиодов HG1, и линейка светодиодов HL1-HL8. Светодиоды зажигаются записью логических единиц в соответствующие разряды порта РА микросхемы параллельного приемопередатчика DD10.
    Управление светодиодной матрицей осуществляется по линиям РА0-РА4 параллельного приемопередатчика DD10 и Р1.0-Р1.6. Например для того чтоб засветить точку с координатами
    [1;1] необходимо вставить уровень логической единицы на линии РА0, и уровень логического нуля на линии Р1.0.
    1   ...   20   21   22   23   24   25   26   27   ...   43


    написать администратору сайта