Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MK2.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
281.42 Кб
Скачать

Состояние старт и стоп

Процедура обмена начинается с того, что ведущий формирует состояние СТАРТ: генерирует переход сигнала линии SDA из ВЫСОКОГО состояния в НИЗКОЕ при ВЫСОКОМ уровне на линии SCL. Этот переход воспринимается всеми устройствами, подключенными к шине, как признак начала процедуры обмена. Генерация синхросигнала — это всегда обязанность ведущего; каждый ведущий генерирует свой собственный сигнал синхронизации при пересылке данных по шине. Процедура обмена завершается тем, что ведущий формирует состояние СТОП — переход состояния линии SDA из низкого состояния в ВЫСОКОЕ при ВЫСОКОМ состоянии линии SCL. Состояния СТАРТ и СТОП всегда вырабатываются ведущим. Считается, что шина занята после фиксации состояния СТАРТ.

Подтверждение

Таким образом передача 8 бит данных от передатчика к приемнику завершаются дополнительным циклом (формированием 9-го тактового импульса линии SCL), при котором приемник выставляет низкий уровень сигнала на линии SDA, как признак успешного приема байта.

Подтверждение при передаче данных обязательно, кроме случаев окончания передачи ведомой стороной. Соответствующий импульс синхронизации генерируется ведущим. Передатчик отпускает (ВЫСОКОЕ) линию SDA на время синхроимпульса подтверждения. Приёмник должен удерживать линию SDA в течение ВЫСОКОГО состояния синхроимпульса подтверждения в стабильном НИЗКОМ состоянии.

Синхронизация

Синхронизация выполняется с использованием подключения к линии SCL по правилу монтажного И. Это означает, что ведущий не имеет монопольного права на управление переходом линии SCL из НИЗКОГО состояния в ВЫСОКОЕ. В том случае, когда ведомому необходимо дополнительное время на обработку принятого бита, он имеет возможность удерживать линию SCL в низком состоянии до момента готовности к приему следующего бита. Таким образом, линия SCL будет находиться в НИЗКОМ состоянии на протяжении самого длинного НИЗКОГО периода синхросигналов.

Адресация в шине I²c

Каждое устройство, подключённое к шине, может быть программно адресовано по уникальному адресу. Для выбора приемника сообщения ведущий использует уникальную адресную компоненту в формате посылки. При использовании однотипных устройств, ИС часто имеют дополнительный селектор адреса, который может быть реализован как в виде дополнительных цифровых входов селектора адреса, так и в виде аналогового входа. При этом адреса таких однотипных устройств оказываются разнесены в адресном пространстве устройств, подключенных к шине.

В обычном режиме используется 7-битная адресация.

I²C находит применение в устройствах, предусматривающих простоту разработки и низкую себестоимость изготовления при относительно неплохой скорости работы.

Преимущества

необходим всего один микроконтроллер для управления набором устройств;

используется всего две линии ввода-вывода общего назначения;

стандарт предусматривает «горячее» подключение и отключение устройств в процессе работы системы;

встроенный в микросхемы фильтр подавляет всплески, обеспечивая целостность данных.

Недостатки

ограничение на ёмкость линии — 400 пФ;

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

Особливості виводу даних на LCD індикатор

Блок-схема роботи виводу даних на LСD(LED) індикатор

Что такое и зачем нужен светодиодный LED индикатор?

Светодиодный семисегментный индикатор предназначен для отображения цифр. Он состоит, как видно из названия, из семи сегментов. Каждый сегмент может зажигаться и гаснуть по отдельности. Это позволяет создавать изображение цифр. Светодиодные индикаторы имеют также восьмой сегмент, который изображен в виде точки или запятой. Поэтому некоторые покупатели называют их восьмисегментные индикаторы (8 сегментные). Эта часть служит для отображения дробной части в числах. Каждый сегмент, от первого до седьмого, имеет буквенное обозначение соответственно от A до G. 

Виды цифровых индикаторов

Световые индикаторы на светодиодах бывают одноциферные (односимвольные), двухциферные (двухсимвольные), трехциферные (трехсимвольные) и четырехциферные (четырехсимвольные). Одним из отличий является фоновый цвет семисегментного индикатора, зачастую он серый, но может быть и черный.

Типы индикации

Светодиодные цифровые индикаторы, у которых две и более цифры, могут быть со статической индикацией и с динамической индикацией. В первом случае у светодиодного индикатора есть два общих контакта (если это двухциферный индикатор) и по одному контакту для подключение каждого сегмента. Всего получается 18 контактов. Во втором случае также есть два общих контакта, а остальные контакты подключены паралельно, т.е два сегмента из разных цифр на один контакт. Итого выходит 10 контактов. Более подробная схема подключения светодиодного индикатора находится в прикрепленном к каждому товару файле с характеристиками.

Какого цвета бывают 7 сегментные индикаторы?

Наиболее распространенными являются зеленые и красные светодиодные сегментные индикаторы. Бывают следующие размеры светодиодных световых индикаторов: 0.36 дюйма, 0.39 дюйма, 0.56 дюйма, 0.8 дюйма, 1 дюйм, 1.5 дюйма, 2.3 дюйма, 3 дюйма, 4 дюйма и 5 дюймов. Этот размер означает высоту цифры индикатора.

Матричные световые индикаторы и их применение

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

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

Зачастую их применяют для изготовления бегущих строк. RGB светодиодные матрицы применяются и изготовлении бегущих светодиодных строк, различных информационных табло, а также светодиодных экранов.Наиболее широкое применение светодиодные индикаторы нашли в различных циферных табло на автозаправочных станциях, пунктах обмена валют и т. д.

  1. На мові асемблера МК51 написати фрагмент програми переводу двійкового числа з порту 2 в двійково-десятковий формат і видачі результатів в порт 3, якщо бі­ти 1 і 3 порту 1 встановлені в логічну "1".

  1. На мові асемблера МК51 написати фрагмент програми для реалізації дешифратора 2→4. Входи і виходи дешифрато­ра – виводи порту 2.

  2. На мові асемблера МК51 написати фрагмент програми для реалізації шифратора 4→2. Входи і виходи дешифрато­ра – виводи порту 0.

Main:

mov P.0,#0

jnb P0.0, M1

M1:

jnb P0.1, M2

setb P0.4

M2:

jnb P0.2,M3

setb P0.5

M3:

jnb P0.3, M4

setb P0.4

M4:

setb P0.5

Jmp Main

  1. На мові асемблера МК51 написати фрагмент програми для вимірювання часового інтервалу між приходом двох імпульсів на входи Р2.2 і Р2.3 програмно. Результат в мікросекундах видати в порт 1.

  1. На мові асемблера МК51 написати фрагмент програми очікування заданого коду 0816 на лініях порту 1 і коду 0916 на лініях порту 2. Після приходу цих кодів встановити біт 3 порту 3 в логічний "0".

Main:

M1:

mov A,#08h

cjnc A,P1, M1

mov A,#09h

cjnc A,P2,M1

clr P3.3

jmp Main

  1. На мові асемблера МК51 написати фрагмент програми зчитування молодшої тетради даних з пор­ту 1 і видачі її у старшу тетраду порту 2, якщо дані не рівні ну­лю.

main:

clr A

mov acc.0, P1.0

mov acc.1, P1.1

mov acc.2, P1.2

mov acc.3, P1.3

xrl A, #0

jz main

rlc A

rlc A

rlc A

rlc A

mov P2, A

jmp Main

  1. На мові асемблера МК51 написати фрагмент програми переводу двійкового числа з порту 2 в двійково-десятковий формат і видачі результатів в порт 3, якщо бі­ти 1 і 3 порту 1 встановлені в логічну "1".

  1. На мові асемблера МК51 написати фрагмент програми для реалізації періодичного вихідного сигналу (меандр) на виводі Р1.0 з періодом 120 мікросекунд за допомогою таймера/лічильника 0.

  1. На мові асемблера МК51 написати фрагмент програми для реалізації затримки на 8 мілісекунд імпульсів, що поступають на вхід Р1.0, і видачі їх на Р1.1 за допомогою таймера/лічильника 0.

Main:

mov C,P1.0

call Delay

mov P1.1,C

jmp Main

Delay:

Mov R0,#31

M1:

mov P1,#255

M2:

djnz R1,M2

djnz R0,M1

ret

  1. На мові асемблера МК51 написати фрагмент програми для реалізації регістра пам’яті на 7 розрядів. Входи – порт 2, виходи – порт 0.

Main:

mov A,P2

mov R0,A

mov P0,A

M1:

mov A,P2

xrl A,R0

jz M1

jmp Main

  1. На мові асемблера МК51 написати фрагмент програми для реалізації D-тригера, входи і виходи – виводи порту 2.

Main:

mov C,P2.0

anl C,P2.1

mov ACC.0,C

mov C,/P2.1

anl C,P2.2

orl C,ACC.0

mov P2.2,C mov P2.3,/C

jmp Main

  1. На мові асемблера МК51 написати фрагмент програми для реалізації синхронного RS-тригера, входи і виходи – виводи порту 1.

Main:

mov C,P1.2

orl C,P1.1

anl C, /P1.0

mov P1.2,C

mov P1.3,/C

anl C,P1.0

anl C,P1.1

orl C,P1.2

mov P1.2,C

mov P1.3,/C

jmp Main

  1. На мові асемблера МК51 написати фрагмент програми для реалізації мультиплексора 4→1. Входи і виходи – виводи порту 1.

main: mov acc.0, P1.5

mov acc.1, P1.6

xrl A, #0

jz M2

jnz M1

M1: mov P1.4, P1.0

jmp main

M2: xrl A, #1

jz M4

jnz M5

M3: mov P1.4, P1.1

Jmp main

M4: xrl A, #2

Jz M6

Jnz M5

M5: mov P1.4, P1.2

Jmp main

M6: xrl A, #3

Mov P1.4, P1.3

Jmp main

  1. Н а мові асемблера МК51 написати фрагмент програми для реалізації JK-тригера. Входи і виходи – виводи порту 2

main:

mov acc.0, P2.0

mov acc.1, P2.1

mov acc.2, P2.3

xlr c, acc.0

xlr c, acc.1

mov P2.2, c

xrl c, acc.0

mov P2.3, c

jmp Main

  1. На мові асемблера МК51 написати фрагмент програми для реалізації періодичного сигналу (меандр) з періодом 1 с на виводі Р1.0.

  2. На мові асемблера МК51 написати фрагмент програми для вимірювання часового інтервалу між приходом двох імпульсів на входи Р2.2 і Р2.3 програмно. Результат в мікросекундах видати в порт 1.

main:

mov c, P2.2

jc Timer

jmp main

Timer:

Mov Tmod, #01110000b

M1: mov c, P2.3

Jc M2

jmp M1

M2: mov A, TL

mov P1.0, acc.0

mov P1.1, acc.1

mov P1.2, acc.2

mov P1.3, acc.3

mov P1.4, acc.4

mov P1.5, acc.5

mov P1.6, acc.6

mov P1.7, acc.7

jmp Main

  1. Скласти схему мікропроцесорної системи на базі мікро-ЕОМ КР1813ВЕ1А. Реалізувати на мові асемблера цифровий фільтр другого порядку (цифровий резонатор) з параметрами

частота дискретизації 8 кГц;

середня частота смуги пропускання 300 Гц;

добротність 60;

максимальний коефіцієнт підсилення 0,85

Призначення та особливості роботи таймерів-лічильників КР1816ВЕ51. Яким чином встановити Т/Л в режим 0 ? Вказати, при яких умовах він функціонує як лічильник.

В базовых моделях семейства имеются два программируемых 16-битных таймера/счетчика (T/C0 и T/C1), которые могут быть использованы как в качестве таймеров, так и в качестве счетчиков внешних событий. В первом случае содержимое соответствующего таймера/счетчика (далее для краткости Т/С) инкрементируется в каждом машинном цикле, т.е. через каждые 12 периодов колебаний кварцевого резонатора, во втором оно инкрементируется под воздействием перехода из 1 в 0 внешнего входного сигнала, подаваемого на соответствующий (T0,T1) вывод микро-ЭВМ 8051. Так как на распознавание периода требуются два машинных цикла, максимальная частота подсчета входных сигналов равна 1/24 частоты резонатора. На длительность периода входных сигналов ограничений сверху нет. Для гарантированного прочтения входной сигнал должен удерживать значение 1, как минимум, в течение одного машинного цикла микро-ЭВМ. Для управления режимами работы Т/С и для организации их взаимодействия с системой прерываний используются два регистра специальных функций (TMOD и TCON).

  • Режим 0.Перевод любого Т/С в режим 0 делает его похожим на таймер КМ1816ВЕ48 (восьми битный счетчик), к входу которого подключен пяти-битный предделитель частоты на 32. Работу Т/С в режиме 0 на примере T/C1 иллюстрирует рис а. В этом режиме таймерный регистр имеет разрядность 13 бит. При переходе из состояния "все единицы" в состояние "все нули" устанавливается флаг прерывания от таймера TF 1. Входной синхросигнал таймера 1 разрешен (поступает на вход Т/С1), когда управляющий бит TR1 установ­лен в 1 либо управляющий бит GATE (блокировка) равен 0, либо на внешний вывод запроса прерывания INT1 поступает уровень 1. Отметим попутно, что установка бита GATE в 1 позволяет использовать таймер для измерения длительности импульсного сигнала подаваемого на вход запроса прерывания.

  • Режим 1. Работа любого Т/С в этом режиме такая же, как и в режиме 0, за исключением того, что таймерный регистр имеет разрядность 16 бит.

  • Режим 2. В этом режиме работа организована таким образом, что переполнение (переход из состояния "все единицы" в состояние, "все нули") восьмибитного счетчика TL1 приводит не только к установке флага TF1 (см. рис. б), но и автоматически перезагружает в TL1 содержимое старшего байта (TH 1) таймерного регистра, которое предварительно было задано программным путем. Перегрузка оставляет содержимое TH1 неизменным. В режиме 2 Т/С0 и Т/С1 также работают совершенно одинаково.

  • Режим 3. В режиме 3 Т/С0 и Т/С1 работают по-разному. Т/С1 сохраняет неизменным свое текущее содержимое. Иными словами, эффект такое же как и при сбросе управляющего бита TR1 в 0. Работу Т/С0 иллюстрирует рис. в. В режиме 3 TL0 и TH0 функционируют как два независимых восьмибитных счетчика. Работу TL0 определяют управляющие биты Т/С0 (С/Т, GATE TR0), входной сигнал INT0 и флаг переполнения TF0. Работу TH0, который может выполнять только функции таймера (подсчёт машинных циклов микро-ЭВМ), определяет управляющий бит TR1. При этом TH0 использует флаг переполнения TF1. Режим 3 используется в тех случаях, когда требуется наличие дополнительного восьми битного таймера или счетчика событий. Можно считать, что в этом режиме микро-ЭВМ 8051 имеет в своем составе три таймера/счетчика. В случае же, если Т/С0 используется в режиме 3, Т/С1 может быть или выключен, или переведен в режим 0, 1 или 2, или может быть использован последовательным портом в качестве генератора частоты передачи.

  • Описати механізми обробки переривань в процесорі КР1816ВЕ51. На мові асемблера КР1816ВЕ51 написати фрагмент програми для приоритетної обробки переривань, переривання від IE1 заборонені, вищий пріоритет у ТF1. Яка послідовність обробки переривань, що поступили одночасно?

Классический микроконтроллер 8051 имеет 5 источников прерываний: два внешних прерывания, инициированных сигналами на входах, – INT0 (вывод P3.2) и INT1 (вывод P3.3); два

прерывания таймеров – 0 и 1; прерывание последовательного порта (см. рис. 1.8). Очеред$

ность выполнения двух и более одновременно поступивших прерываний определяется их приоритетами.

Если предположить, что все прерывания имеют одинаковые установки приоритета, то при

одновременном возникновении нескольких прерываний они обрабатываются так, как пока$

зано на рис. 1.8. Например, прерывание INT0 имеет наивысший приоритет (ему соответствует

условное обозначение 1 на рис. 1.8), прерывание таймера 0 имеет более низкий приоритет по

сравнению с INT0 (обозначено цифрой 2) и т.д. Самый низкий приоритет в устройстве 8051

имеет прерывание последовательного порта (обозначено цифрой 5 на рисунке)

Для изменения приоритетов выполнения прерываний следует устанавливать специальные флаги в регистре приоритетов IP

  • Внешние прерывания INT 0 и INT 1 могут быть вызваны либо уровнем, либо переходом сигнала из 1 в 0 на входах 8051 в зависимости от значений управляющих бит IT0 и IT1 в регистре TCON. От внешних прерываний устанавливаются флаги IE0 и IE1 в регистре TCON, которые инициируют вызов соответствующей программы обслуживания прерывания. Сброс этих флагов выполняется аппаратно только в том случае, если прерывание было вызвано по переходу (срезу) сигнала. Если же прерывание вызвано уровнем входного сигнала, то сбросом флага I должна управлять соответствующая подпрограмма обслуживания прерывания путем воздействия на источник прерывания с целью снятия им запроса.

  • Флаги запросов прерывания от таймеров TF0 и TF1 сбрасываются автоматически при передаче управления подпрограмме обслуживания. Флаги запросов прерывания RI и TI устанавливаются блоком управления приемопередатчика аппаратно, но сбрасываться должны программным путем.

  • Прерывания могут быть вызваны или отменены программой, так как все названные флаги программно доступны и могут быть установлены/ сброшены программой с тем же результатом, как если бы они были установлены/сброшены аппаратными средствами.

  • В блоке регистров специальных функций есть два регистра, предназначенных для управления режимом прерываний IE и уровнями приоритета IP. Возможность программной установки/сброса любого управляющего бита в этих двух регистрах делает систему прерываний 8051 исключительно гибкой.

  • В более сложных модификациях микроконтроллеров семейства MCS-51 количество периферийных устройств увеличено, что приводит к необходимости использовать один вектор прерывания для нескольких устройств (разделение подпрограмм обслуживания прерываний в этом случае необходимо реализовать программно), либо добавить еще два регистра - режима (маски) и приоритета прерываний.

cseg at 0

jmp start

int0Isr:

org 03h

setb P3.2

nop

reti

start:

mov SCON, #50h

clr RI

mov TH1, #0FDh

orl TMOD, #20h

setb TR1

setb EX0

setb EA

again:

jnb RI, $

mov A, SBUF

clr RI

cjne A,#0dh, skip

clr P3.2

skip:

jmp again

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]