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

  • Блок таймеров / счетчиков

  • Блок последовательного интерфейса

  • Блок прерываний

  • Метод указания на КР (заочники). Учебнометодическое пособие для студентов заочного обучения по специальности 18. 04. 04 Эксплуатация электрооборудования и средств автоматики


    Скачать 492.6 Kb.
    НазваниеУчебнометодическое пособие для студентов заочного обучения по специальности 18. 04. 04 Эксплуатация электрооборудования и средств автоматики
    Дата21.02.2022
    Размер492.6 Kb.
    Формат файлаdocx
    Имя файлаМетод указания на КР (заочники).docx
    ТипУчебно-методическое пособие
    #369487
    страница2 из 4
    1   2   3   4

    Внутренняя память данных.

    Адресное пространство внутренней памяти данных складывается из 128 ячеек собственно ОЗУ и двадцати адресуемых регистров специального назначения, имеющих адреса со 128 по 255 (рис. 6 ).




    Рис.6 Адресное пространство внутренней памяти данных.

    В ОЗУ размещается стек, используемый для хранения содержимого счетчика команд при вызове подпрограмм, а также для временного хранения данных. Глубина стека, определяемая восьмиразрядным указателем стека SP, ограничена только объемом внутреннего ОЗУ.

    Первые 32 ячейки ОЗУ разбиты на 4 банка по 8 ячеек в каждом - регистры общего назначения. В каждом банке регистры имеют собственные имена, соответственно R0-R7.

    Выбор нужного банка регистров осуществляется программно. Номер банка задается разрядами PSW.3 и PSW.4 регистра PSW.

    Структура ОЗУ позволяет работать не только с отдельными ячейками памяти (байтовая адресация), но и с отдельными битами (побитовая адресация). Прямоадресуемые биты с адресами 0 – 127 (0 – 7FH) расположены в блоке из 32 ячеек внутреннего ОЗУ, имеющих адреса 20Н – 2FH.

    Таким же образом можно работать с регистрами специального назначения. Адреса и названия регистров специального назначения указаны на рис.3.

    Команды, оперирующие с битами, позволяют каждый бит установить в 1, сбросить в 0, проинвертировать и протестировать, организовать переходы по состоянию любого бита, реализовать побитные логические операции и т.п. Такая архитектура позволяет реализовывать оптимальные по объему и быстродействию программы.
    Блок таймеров / счетчиков

    Два 16-разрядных регистра (ТН0,TL0) и (TH1,TL1) выполняют функцию считающих элементов. Регистры TH0,TH1 – старшие, TL0, TL1 – младшие 8 разрядов 16-разрядных регистров. Каждый из 8-разрядных регистров имеет свой адрес и может использоваться как регистр общего назначения (РОН), если таймер/счетчики не используются.

    Управление работой таймеров/счетчиков осуществляется с помощью регистров специального назначения – регистра режимов TMOD и регистра управления TCON, а также схемы управления.

    Число, с которого начинается счет, заносится в регистры таймеров/счетчиков программно. В процессе счета содержимое регистров Т/С0 и Т/С1 инкрементируется. При переполнении регистров Т/С0 и Т/С1 (переход от состояния «все единицы» к состоянию «все нули») формируется флаг переполнения.

    При работе в качестве таймера, содержимое Т/С0 и Т/С1 инкрементируется каждый машинный цикл, т.е. частота счета равна fQ/12 , где fQ – частота тактового генератора.

    При работе Т/С0 и Т/С1 в качестве счетчиков внешних событий (сигналы поступают на входы Р3.4 и Р3.5) , содержимое счетчиков инкрементируется при переходе из «1» в «0» сигналов на счетных входах.

    Логика работы таймера счетчика в режимах 0,1,2 приведена на рис.7.



    Рис.7. Логика работы таймеров/счетчиков в режимах 0, 1 и 2.


    Регистр режимов TMOD определяет:

    • режим работы каждого таймера/счетчика – используемую разрядность считающего элемента;

    • источник импульсов для счета – работу в качестве таймера или счетчика;

    • разрешение управления запуском таймера / счетчика от внешнего входа.

    Назначение разрядов регистра TMOD приведено в таблице 1. Биты 0-3 относятся к Т/С0,биты 4-7 – к Т/С1.

    Табица.1

    Биты

    7

    6

    5

    4

    3

    2

    1

    0

    Обозн.

    GATE1

    C/T1

    M1.1

    M0.1

    GATE0

    C/T0

    M1.0

    M0.0

    Назначение битов М0,М1 (режим работы, отдельно для Т/С1 и Т/С0):

    • М1, М0=00 (режим 0), используется 13-разрядный считающий элемент 8рTH0+5рTL0;

    • М1, М0=01 (режим 1), используется 16-разрядный считающий элемент 8рTH0+8рTL0;

    • М1, М0=10 (режим 2), используется 8-разрядный считающий элемент TL0. TH0 хранит константу перезагрузки. При переполнении TL0 автоматически перезагружается;

    • М1, М0=11 (режим 3), для Т/С1 не используется. Т/С0 работает как два независимых 8-разрядных счетчика TH0 и TL0.

    Биты С/Т0,С/Т1 определяют работу в качестве таймера (С/Т0 или С/Т1 = 0) или счетчика (С/Т0 или С/Т1 = 1).

    Бит GATE разрешает управлять таймером от внешнего вывода INT0 – для Т/С0, INT1 – для Т/С1. Если GATE = 0 – управление запрещено;GATE = 1 – управление разрешено.

    Регистр управления ТCON предназначен для приема и хранения управляющего слова. Обозначение и назначение разрядов регистра приведено в табл. 2.

    Таблица 2

    Биты

    7

    6

    5

    4

    3

    2

    1

    0

    Обозн.

    TF1

    TR1

    TF0

    TR0

    IE1

    IT1

    IE0

    IT0


    Назначение битов:

    • TR0, TR1 – биты включения Т/С, отдельно для Т/С0 и Т/С1. Если TR = 0 - выключен, TR = 1 – включен. Биты устанавливаются и сбрасываются программно

    • TF0, TF1 – флаги переполнения Т/С. Биты сбрасываются и устанавливаются аппаратно и программно.

    • IT0, IT1 – биты, определяющие вид прерывания по входам INT0, INT1. IT=0 – прерывание по уровню (низкому); IT = 1 – прерывание по фронту (переход из «1» в «0»). Биты устанавливаются и сбрасываются программно.

    • IE0, IE1 – флаги запроса внешних прерываний по входам INT0, INT1 Биты сбрасываются и устанавливаются аппаратно и программно.

    Все биты регистра ТCON доступны по чтению. Биты 4,5 относятся к Т/С0,биты 6,7 – к Т/С1.Биты 0,1 определяют внешние прерывания по входу INT0, биты 2,3 – по входу INT1.

    Т/С1 аппаратно связан с блоком синхронизации последовательного интерфейса (ПИ), он используется для управления скоростью приема/передачи последовательных данных.

    Блок последовательного интерфейса

    Блок последовательного интерфейса (ПИ) предназначен для организации ввода-вывода последовательных потоков информации с возможностью дуплексного включения (возможность одновременного приема и передачи данных). ПИ может работать в четырех режимах.

    Режим 0. Информация выдается и принимается через вход приемника RxD ( вывод Р3.0). Через выход передатчика ТхD (вывод Р3.1) выдаются импульсы синхронизации, стробирующие каждый передаваемый или принимаемый бит информации. Формат посылки – 8 бит. Частота приема и передачи – fBQ/12, где fBQ – частота тактового генератора микроконтроллера.

    Режим 1. Информация передается через выход передатчика TxD, а принимается через вход приемника RxD. Формат посылки 10 бит: старт-бит (ноль), 8 бит данных и стоп-бит (единица). Частота приема и передачи задается Т/С1.

    Режим 2. Информация передается через выход передатчика TxD, а принимается через вход приемника RxD. Формат посылки 11 бит: старт-бит (ноль), 8 бит данных, программируемый девятый бит и стоп-бит (единица). Передаваемый девятый бит данных принимает значение бита ТВ8 из регистра управления SCON. Бит ТВ8 может быть программно установлен в «0» или в «1». В него также можно занести значение бита Р из регистра PSW (контроль на четность для повышения достоверности передачи данных). При приеме девятый бит принятой посылки поступает в бит RB8 регистра SCON. Частота приема и передачи задается программно и может быть равна fBQ /32 или fBQ/64.

    Режим 3. Режим 3 идентичен режиму 2 за исключением скорости приема и передачи, которая в режиме 3 задается Т/С1.

    Работой ПИ управляет регистр специального назначения SCON. Все разряды этого регистра доступны по записи и чтению. Обозначение разрядов регистра SCON приведено в табл. 3.

    Таблица 3

    Биты

    7

    6

    5

    4

    3

    2

    1

    0

    Обозн.

    SM0

    SM1

    SM2

    REN

    TB8

    RB8

    TI

    RI


    Назначение разрядов:

    • SM0, SM1 – задают режим работы ПИ 0, 1, 2 или 3;

    SM0

    SM1

    Режим

    Наименование

    Скорость передачи

    0

    0


    1

    1

    0

    1


    0

    1

    0

    1


    2

    3

    Сдвиговый регистр 8–битовый универсальный асинхронный приёмопередатчик (УАПП)

    9 – битовый УАПП

    9 – битовый УАПП

    fBQ/12

    переменная, задается Т/С1

    fBQ/64 илиfBQ/32

    переменная, задается Т/С1




    • SM2 – разрешение многопроцессорной работы. В режимах 2 и 3 при SM2=1 флаг RI не активизируется, если девятый принятый бит данных равен «0». В режиме 1 при SM2=1 флаг RI не активизируется, если не принят стоп-бит, равный «1». В режиме 0 SM2 должен быть установлен в «0»;

    • REN - разрешение приема последовательных данных. Устанавливается и сбрасывается программным обеспечением, соответственно, для разрешения и запрета приема;

    • ТВ8 – девятый бит передаваемых данных в режимах 2 и 3. Устанавливается и сбрасывается программным обеспечением;

    • RB8 – девятый бит принятых данных в режимах 2 и 3.В режиме 1, если SM2 =0, RB8 является принятым стоп-битом. В режиме 0 бит RB не используется;

    • ТI – флаг прерывания передатчика. Устанавливается аппаратно в конце времени выдачи 8-го бита в режиме 0 или в начале стоп-бита в других режимах. Сбрасывается программным обеспечением;

    • RI – флаг прерывания приемника. Устанавливается аппаратно в конце времени приема 8-го бита в режиме 0 или через половину интервала стоп-бита в режимах 1, 2, 3 при SM2=0. При SM2=1 см. описание для бита SM2.

    Передаваемые данные записываются программно в буфер передатчика, затем отправляются в сдвиговый регистр, откуда в соответствии с выбранной скоростью передачи побитно выставляются на линию ТхD.

    Прием с линии RxD осуществляет бит-детектор, который трижды считывает входное состояние и на основании 2 из 3 измерений определяет значение принятого бита, затем записывает этот бит в сдвиговый регистр приемника. После приема всего байта данных происходит запись в буфер приемника, откуда могут быть программно считаны.

    Буфер приемника и буфер передатчика при программном доступе имеют одинаковое имя SBUF и адрес 99Н.

    Если команда использует SBUF как регистр источника, то обращение происходит к буферу приемника.

    Если команда использует SBUF как регистр назначения, то обращение происходит к буферу передатчика. Во всех режимах работы ПИ передача инициируется любой командой, которая использует SBUF как регистр назначения.

    Последовательный порт может принимать очередной байт, даже если очередной принятый до этого байт не был прочитан из буфера приемника. Однако, если до окончания приема, находящийся в буфере байт не будет прочитан, принятый байт теряется.

    Прием и передача начинаются с младшего разряда и заканчиваются старшим разрядом.

    Скорость приема и передачи зависят от используемого кварцевого генератора и выбранного режима приема/передачи. Для режимов, в которых скорость определяется таймером/счетчиком 1, константы программирования таймера приведены в таблице 4.

    Таблица4

    Режим работы ПИ

    Скорость

    приема/

    передачи,

    Кбод

    fBQ,

    МГц

    SMOD

    Разряды

    TMOD

    ТН1

    Приме-чание

    С/Т

    М1

    М0

    0

    2

    1,3

    Макс.1000

    Макс: 375

    62,5

    19,2

    9,6

    4,8

    2,4

    1,2

    0,1375

    0,110

    0,110

    12

    12

    12

    11,059

    11,059

    11,059

    11,059

    11,059

    11,986

    6

    12

    Х

    1

    1

    1

    0

    0

    0

    0

    0

    0

    0

    Х

    Х

    0

    0

    0

    0

    0

    0

    0

    0

    0

    Х

    Х

    1

    1

    1

    1

    1

    1

    1

    1

    0

    Х

    Х

    0

    0

    0

    0

    0

    0

    0

    0

    1


    X

    X

    FFH

    FDH

    FDH

    FAH

    E4H

    E8H

    18H

    72H

    FEH



    TL1=

    EBH


    Блок прерываний

    Механизм прерываний позволяет автоматически реагировать на внешние и внутренние события (переполнение таймер/счетчиков, завершение последовательного обмена). Поступление запросов прерывания возможно от следующих источников: внешний вход INT0, таймер/счетчик T0, внешний вход INT1, таймер/счетчик T1, последовательный канал TI/RI.

    Каждое из внешних прерываний INT0, INT1 может быть активизировано по уровню «0» или по фронту (переход из «1» в «0») сигналов на выводах Р3.2, Р3.3, что определяется состоянием битов IT0 и IT1 регистра TCON. При поступлении запроса внешнего прерывания INT0 или INT1 устанавливается флаг IE0 или IE1 регистра TCON. Установка этих флагов вызывает соответствующее прерывание. Очистка флагов IT0 и IT1 производится следующим образом:

    • при прерывании по фронту IT0 и IT1 сбрасываются аппаратно (автоматически) при обращении к соответствующей подпрограмме обработки прерываний;

    • при прерывании по уровню флаги очищаются при снятии запроса внешнего прерывания (т.е. IT0 и IT1 отслеживают состояние входов INT0 или INT1).

    Прерывания от таймеров/счетчиков вызываются установкой флагов TF0 и TF1 регистра TCON, которые устанавливаются при переполнении соответствующих регистров таймер/счетчиков (за исключением режима 3). Очистка флагов TF0 и TF1 происходит аппаратно (автоматически) при переходе к подпрограмме обслуживания прерываний.

    Прерывание от последовательного порта вызывается установкой флага запроса прерывания приемника RI или передатчика ТI в регистре SCON (см. табл. 3). В отличие от всех остальных флагов, RI и ТI сбрасываются только программным путем, обычно в программе обработки прерывания, где определяется по какому из флагов RI или ТI произошло прерывание.

    Каждый из перечисленных источников прерываний может быть глобально или индивидуально разрешен, либо запрещен установкой или сбросом соответствующих битов регистра разрешения прерываний IE. Формат и описание регистра IE приведено в таблице 5.

    Таблица.5.

    Биты

    7

    6

    5

    4

    3

    2

    1

    0

    Обозн.

    ЕА

    X

    X

    ЕS

    ET1

    EX1

    ET0

    EX0




    • ЕА – общее разрешение прерываний, если ЕА=0, то все прерывания запрещены; если ЕА=1, то прерывания могут быть разрешены индивидуальными разрешениями EX0, ET0, EX1, ET1 или ES;

    • ES – разрешение прерывания от последовательного порта;

    • ЕТ1 – разрешение прерывания от Т/С1;

    • ЕХ1 – разрешение прерывания от внешнего источника INT1;

    • ЕТ0 – разрешение прерывания от Т/С0;

    • ЕХ0 - разрешение прерывания от внешнего источника INT0;

    • Х – резервные разряды.

    Для всех разрядов 1 – разрешение, 0 – запрещение.

    Адреса размещения команд перехода на программы обработки прерывания (векторы прерывания) представлены в таблице 6.

    Таблица.6

    Источник прерывания

    Вектор прерывания

    Внешнее прерывание INT0

    0003Н

    Таймер/счетчик Т/С0

    000ВН

    Внешнее прерывание INT1

    0013Н

    Таймер/счетчик Т/С1

    001ВН

    Последовательный порт

    0023Н


    Для каждого из источников прерываний может быть установлен высший приоритет в регистре приоритетов прерываний IP. Структура регистра IP приведена в таблице 7.

    Таблица. 7.

    Биты

    7

    6

    5

    4

    3

    2

    1

    0

    Обозн.

    Х

    Х

    Х

    PS

    PT1

    PX1

    PT0

    PX0




    • PX0 – установка высшего приоритета прерыванию от внешнего источника INT0;

    • РТ0 – установка высшего приоритета прерыванию от таймера/счетчика Т/С0;

    • PX1 – установка высшего приоритета прерыванию от внешнего источника INT1;

    • РТ1 – установка высшего приоритета прерыванию от таймера/счетчика Т/С1;

    • PS - установка высшего приоритета прерыванию от последовательного порта;

    • Х – резерв.

    Наличие в соответствующем разряде регистра IP «1» устанавливает для соответствующего источника высокий уровень приоритета, «0» - низкий уровень.

    Программа обработки прерывания с низким уровнем приоритета может быть прервана запросом прерывания с высоким уровнем приоритета, но не может быть прервана другим запросом прерывания с низким уровнем приоритета. Программа обработки прерывания с высоким уровнем приоритета не может быть прервана никаким другим запросом прерывания. Если два запроса прерывания с разными приоритетами приняты одновременно, сначала будет обслужен запрос с высоким уровнем приоритета. Если одновременно приняты запросы с одинаковым уровнем приоритета, обработка их будет производиться в порядке, задаваемом последовательностью внутреннего опроса флагов прерываний. Таким образом, в пределах одного приоритетного уровня существует еще одна структура приоритетов (табл.8).
    Таблица. 8

    Источник

    Приоритет внутри уровня

    IE0 (внешний вход INT0)

    высший

    TF0 (таймер/счетчик 0)




    IE1(внешний вход INT1)




    TF1(таймер/счетчик 1)




    RI+TI (последовательный канал)

    низший


    Приоритет внутри уровня работает только в том случае, если определена последовательность обслуживания запросов прерывания, которые приняты одновременно и при этом имеют одинаковый уровень приоритета.
    1   2   3   4


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