close

Вход

Забыли?

вход по аккаунту

?

Курсовой (2)

код для вставкиСкачать
Московский Энергетический Институт
(Технический Университет)
Институт Автоматики и Вычислительной Техники Кафедра ВМСС
Курсовой проект по дисциплине
"Проектирование МПС"
Выполнил Печко К.В.
Группа А - 8 - 01 Проверил Балашов В. Н. Морозов М. В.
Москва, 2004 г. Техническое задание на курсовой проект по дисциплине ТПМС
Разработка микропроцессорной системы для управления объектом
1. Формулировка задания и исходные данные:
Разработать структурную и принципиальную электрическую схемы микропроцессорной системы и программы, обеспечивающие выполнение заданного алгоритма управления, оценить параметры системы.
1. Тип ОМЭВМ: АТ89С52;
2. Булевы функции для дискретного выходного сигнала Y1:
* Y1 = X1+X2+X3+X4, где X1, ..., X4 - дискретные входные сигналы;
3. Длительность выходного сигнала при Y1 = 1: Т1 = 90 мс;
4. Реализуемая функция Q2:
* Q2 = макс (N5,N6+K), где N5, N6 - цифровая форма сигналов X5 и X6, поступающих с датчиков напряжения, K - код установки, задается с пульта управления оператором;
5. Длительность двоичных управляющих воздействий на выходах Y2 и Y3 соответственно:
* T2 = 40 мс;
* T3 = 20 мс;
6. Тип индикатора: ЖКИ Powertip;
7. Значения коэффициентов А0, А1, вводимых пользователем:
* А1 = 0.25;
* А0 = 0.17;
8. Вид узла аварийной сигнализации: световой с частотой 2 Гц;
9. Способ адресации внешних и интерфейсных устройств МПС: с отображением на память;
10. Использовать АЦП с параллельным выводом;
11. Время цикла управления: 0,5 с;
12. Построить временные диаграммы работы МПС в режиме считывания из ПЗУ;
13. В схеме управления используются микросхемы серии КР1533;
14. Затраты оборудования должны быть минимальны;
15. Состав разрабатываемых алгоритмов и программных модулей на языке В состав программы на ASSEMBLER входят: * инициализации МПС, т.е. установки режимов программируемых интерфейсных БИС; * логической обработки сигналов X1, ...,X4 и формирования управляющего сигнала Y1;
* ввода напряжения X5 и X6 и формирование сигналов Y2, Y3;
* ввода напряжения X7 и формирования сигнала Y4. где Y4 - напряжение, которое получается после преобразования цифрового кода в аналоговую форму;
* обработки сигналов прерывания;
* ввода с клавиатуры.
2. Рекомендуемая литература:
* Иванов А.В., Кленов С.И. Построение микропроцессорных систем на базе 16-разрядных процессоров. - М.: Моск. энерг. ин-т, 1988.-60с.
* Иванов А.В., Кленов С.И. Построение микропроцессорных систем на базе однокристальных микроЭВМ. - М.: Изд-во МЭИ, 1992.-52 с.
* Полупроводниковые приборы: Диоды, тиристоры, оптоэлектронные приборы. Справочник/ А.В. Баюков, Ф.Б. Гитцевич, А.А. Зайцев и др.; под общ. ред. Н.Н. Горюнова. - М.: Энергоатомиздат, 1985.-744 с. Дата выдачи задания:____/____/ 2004
Руководитель проекта: Балашов В.Н. /_______________/ Студент: Печко К.В. /_______________/ ВВЕДЕНИЕ
В настоящее время в микропроцессорной индустрии выделился самостоятельный класс больших интегральных схем (БИС) - однокристальные микроЭВМ (ОМЭВМ), предназначенные для "интеллектуализации" различных устройств. Скорость обработки данных не превышает 33 МГц. Важное достоинство - компактность и маленькая стоимость, а если учесть, что в одном корпусе кроме АЛУ находятся постоянное репрограммируемое запоминающее устройство программных кодов, оперативное запоминающее устройство данных, генератор тактовых сигналов, несколько таймеров-счетчиков и портов ввода-вывода, то можно прийти к выводу, что в некоторых случаях вся система управления будет состоять только из микросхемы ОМЭВМ.
Целью курсового проекта является разработка МПС, управляющей объектом, на базе ОМЭВМ Atmel AT89С52, которая совместима с микросхемами семейства MCS-51 фирмы Intel, Motorola. Управление осуществляется путем считывания параметров с внешних источников, их дальнейшей обработкой и выдачей управляющих сигналов. В качестве периферийных микросхем использованы микросхемы серии КР537, К573 и КР1533.
1. РАЗРАБОТКА АППАРАТНЫХ СРЕДСТВ МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ
1.1 Разработка структурной схемы
Структурная схема микропроцессорной системы (МПС) рисунок 1 состоит из микропроцессорного модуля (MPM), постоянного запоминающего устройства (ROM), энергонезависимого оперативного запоминающего устройства (RAM), блока ввода-вывода аналоговой и цифровой информации (IOU) и блока вывода дискретной информации, управления и индикации (CPAN).
В МПМ обеспечивается обработка, считывание и выдача данных по шине данных (BD), выдача адресных сигналов по шине адреса (BA), обмен данными с блоком ввода-вывода аналоговой и цифровой информации (IOU) по шине данных (BD), вывод дискретной информации через CPAN по шине данных (BD), а также выработка сигналов управления для всех элементов системы (шина BC). Шина BC включает в себя сигналы управления всеми периферийными устройствами, вырабатываемыми в системе: для ROM, , и CS для RAM, регистров, АЦП и ЦАП.
Входными сигналами для МПМ являются сигнал прерывания от аварийного датчика (INT0) и сигнал, поступающий при отказе внешнего источника питания (INT1). Выходными - шины (BD, BA) и сигналы управления (BC).
Постоянное запоминающее устройство (ПЗУ, ROM) предназначено для хранения управляющей программы МПС и постоянных данных (констант), используемых в процессе работы. Входными сигналами являются сигналы адреса (BA) и управляющий сигнал (на структурной схеме он включен в шину BC), а выходными - сигналы данных (BD).
Энергонезависимое оперативное запоминающее устройство (ЭОЗУ, RAM) предназначено для хранения данных, считываемых, обрабатываемых и выводимых в процессе функционирования МПС.
Входными сигналами ЭОЗУ являются сигналы адреса (BA), данных (BD) и управляющие сигналы , и . Выходными - сигналы данных (BD).
Блок ввода-вывода аналоговой и цифровой информации (IOU), предназначен для приема данных, аналого-цифровых и цифро-аналоговых преобразований и вывода выходных сигналов. Внешними входными сигналами являются X1, X2, X3, X4 (передаются по шине данных напрямую), X5, X6 и X7 (преобразовываются в ЦАП, затем передаются по шине данных), сигналы управления, передаваемые по шине (BC), а выходными - сигналы Y1, Y2, Y3, Y4. Y1, Y2, Y3 выводятся с порта P1 МПС минуя шину данных, Y4 передается по шине данных на ЦАП и только после преобразования подается на выход.
Рисунок 1 - Структурная схема микропроцессорной системы
Блок ввода-вывода дискретной информации, управления и индикации (CPAN), предназначен для управления МПС и индикации результатов ее функционирования. Входными сигналами являются внешние сигналы X1, X2, X3, X4, сигналы адреса (BА), данных (BD) и управления , и , а выходными - сигналы данных (BD), на основании которых в МПМ формируются соответствующие управляющие воздействия и Y1, Y2, Y3. CPAN также включает в себя устройство аварийной световой сигнализации.
1.2 Распределение адресного пространства микропроцессорной системы.
Исходя из требований технического задания по емкости и функциональному назначению памяти (ПЗУ и ОЗУ) и внешних устройств, в качестве ПЗУ МПС можно использовать память данных встроенную в ОМЭВМ AT89С52, но в соответствии с техническим заданием, будем использовать внешнюю память программ. Тогда для расширения ПЗУ и ОЗУ можно использовать микросхемы внешней ПЗУ (емкостью 8 Кб) и ОЗУ (емкостью 2 Кб). Тогда емкость ОЗУ МПС составит 2048 + 256 = 2304 байт, а емкость ПЗУ МПС - 8 Кб (при использовании внешней памяти программ внутренняя отключается), что позволит разместить все необходимые программы и данные. В качестве ЭОЗУ можно использовать БИС основного ОЗУ, имеющую малое потребление в режиме хранения, задействовав дополнительный источник питания.
Таблица 1 - Распределение адресного пространства МПС
УстройствоДиапазон адресовBA15BA14BA13BA12Внешнее ПЗУ 0000h - 1FFFh,000XВнутреннее ОЗУ 0000h - 00FFh,0000Внешнее энергонезависимое ОЗУ
8000h - 87FFh,1000АЦП
9XX0h - 9XX3h,1001ЦАП 0AXXXh1010Регистр опроса клавиатуры 1 C RG 10BXXXh = 01011Регистр опроса клавиатуры 2
C RG 40BXXXh = 01011Регистр вывода диск. данных
0CXXXh = 01100
Х - произвольное состояние разряда адреса.
1.3 Разработка модуля микропроцессорной системы.
Схема микропроцессорного модуля (МПМ) приведена на рисунке 2. Основной частью МПМ является однокристальная 8-разрядная микроЭВМ AT89C52 (DD3), работающая с тактовой частотой 6 МГц. Питание ОМЭВМ осуществляется от источника питания +5В 5% (ток потребления ICC<20 мА). Вход ОМЭВМ нужно заземлить для того, чтобы за кодами программ микропроцессорная система обращалась во внешнюю память.
Также в состав МПМ входят регистр КР1533ИР23 (DD7), используемый для фиксирования младшего байта адреса, дешифратор КР1355ИД7 (DD6), логические элементы 2ИЛИ-НЕ КР1533ЛЕ1 (DD8) и НЕ КР1533ЛН1 (DD5) служащие для выработки управляющих сигналов, а также схема сброса ОМЭВМ.
Схема сброса, необходимая для перевода ОМЭВМ в начальное состояние подключается на вход RST. Для выработки сбрасывающего импульса используется RC-цепочка. Требуется выдержать высокий уровень сигнала на входе RST в течение двух машинных циклов. Согласно рекомендациям, выберем R1 и C1, равные 8.2 КОм (С1-4-0,125 8.2 КОм  5%) и 10 мкФ (К10 - 9 - 25 В - 10 мкФ  20%) соответственно. Подобная задержка позволяет корректно осуществить сброс схемы в начальное состояние, учитывая переходные процессы во внутренних схемах ОМЭВМ. В качестве генератора тактовой частоты руководствуясь описанием производителя выберем кварцевый резонатор Q1 HC-49U-6.000 МГц и конденсаторы C3, C4 К10 - 9 - 25 В - 30 пФ  20%
Рисунок 2 - модуль микропроцессорной системы
Шина данных BD0 - BD7 формируется непосредственно с выхода порта P0, на который в цикле вывода ОМЭВМ выдаются данные для внешних устройств. Для формирования 16-разрядного адреса при обращении к внешним ОЗУ и ПЗУ необходимо к порту P0 подключить также регистр КР1533ИР23 (DD7), запоминающий младший байт адреса по сигналу ALE. Старшие 8 разрядов адреса выводятся через порт P2 и вместе с выходными 8-ю сигналами регистра КР1533ИР23 составляют шину адреса (BА) МПС.
Входными сигналами для МПМ являются два сигнала прерывания: внешний сигнал прерывания от аварийного датчика INT0 и сигнал прерывания при сбое питания INT1. Дополнительно обслуживаются внутренние прерывания по переполнению внутренних таймеров-счетчиков. Сигналы прерывания INT0 и INT1 подключены к входам Р3.2 и Р3.3 ОМЭВМ соответственно.
Выходными, кроме адреса и данных, являются управляющие сигналы. Для их выработки используется дешифратор КР1533ИД7 (DD6) и набор логических элементов. В качестве сигналов записи и считывания для микросхем памяти можно использовать сигналы ОМЭВМ с выходов и . Сигнал ОМЭВМ можно использовать как стробирующий сигнал для работы внешнего ПЗУ МПС.
1.4 Разработка постоянного запоминающего устройства
Модуль ПЗУ изображен на рисунке 3 и состоит из одной микросхемы репрограммируемого ПЗУ К573РФ6А (DD10) с ультрафиолетовым стиранием. Емкость ПЗУ 8 КБайт (организация 8К х 8). Микросхема имеет 13 адресных входов А0 - А12, на которые приходят сигналы (BА0 - BА12) по шине адреса (BA), а также управляющий вход , на который поступает сигнал с МПМ. По сигналу в каждом цикле считываются команды управления. Подавая на вход логическую единицу мы переводим выходы микросхемы в третье состояние, тем самым разрешая другим схемам МПС пользоваться шиной данных.
Основным динамическим параметром ПЗУ является время выборки относительно адреса и сигнала . Для данной микросхемы оно составляет не более 150 нс.
Рисунок 3 - Схема постоянного запоминающего устройства
1.5 Разработка энергонезависимого оперативного запоминающего устройства
Модуль энергонезависимого оперативного запоминающего устройства (ЭОЗУ) представлен на рисунке 4 и состоит из микросхемы ОЗУ КР537РУ10 (DD13) и схемы подключения источника бесперебойного питания. Микросхема КР537РУ10 обладает емкостью 2 КБайт (организация 2К х 8). Поэтому она имеет 11 адресных входов А0 - А10, на которые приходят сигналы (BА0 - BА10) с шины адреса (BA), 8 двунаправленных входов/выходов данных D0 - D7 с тремя состояниями, которые подсоединены к шине BD, и три входа управления: , и , которые подключены соответственно к выходам , и МПМ. Также на рисунок 4 представлена схема включения резервного источника питания. Исходя из требований микросхемы КР537РУ10 для хранения информации достаточно напряжения 25.5В, а для режима записи и чтения 55% В. Исходя из потребляемой мощности, выбираем диоды VD11 и VD12 - КД522. Падение напряжения на диоде от 0.8В до 1.2В при протекании прямого тока не более 74 мА. В этом случае нужно подключить основной источник +60.5% В и дополнительный +4.5В, который можно реализовать с помощью трех литиевых батареек типа AA, каждая из которых дает напряжение питания +1.5В. При столь малых токах потребления, батарейки смогут поддерживать содержимое памяти несколько лет.
Минимальное напряжение питания микросхемы DD13 при работе основного источника питания составит 5.97 - 1.2 = 4.77 В, а максимальное напряжение питания 6.03 - 0.8 = 5.23 В, что удовлетворяет требуемым параметрам источника питания микросхемы DD13. Для устранения низкочастотных скачков напряжения используем стабилизирующий конденсатор C19 номиналом 0.1 мкФ (КM6-H90-6,3В-0,1мкФ).
Рисунок 4 - Схема энергонезависимого оперативного запоминающего устройства
1.6 Разработка блока ввода-вывода аналоговой информации
Блок ввода-вывода аналоговой информации состоит из АЦП (DD11), ЦАП (DD14) и стабилизатора опорного напряжения (DD12) (рисунок 5). Согласно техническому заданию при вводе сигналов X5 - X7 требуется точность не менее 1%. Для этого нужно преобразовывать сигналы в 7-ми или более разрядный цифровой код (1/(27) = 0.0078). Тогда для преобразования этих сигналов выберем 8-разрядный АЦП, что даст максимальную погрешность 1/(28) = 0.0039 = 0.39%. Так как требуется вводить 3 аналоговых значения, удобно взять четырехканальный АЦП, чтобы не использовать дополнительное оборудование в виде аналогового мультиплексора (коммутатора).
Рисунок 5 - Схема устройства ввода-вывода
В качестве АЦП выберем микросхему фирмы Analog Devices AD7825. Она представляет собой четырехканальную восьмиразрядную БИС аналого-цифровой системы сбора и преобразования данных, в которую входят четырехканальный аналоговый коммутатор, АЦП и восьмиразрядный параллельный интерфейс. Схема измеряет напряжение от 0 до Vref, для выработки Vref согласно рекомендациям производителя используем высокоточный стабилизатор Analog Devices AD780 в режиме 2.5 В. БИС имеет режим пониженного энергопотребления, для перевода ее в режим auto power-down (автоматическое отключение) вывод замкнем на Ucc через резистор R13, чей номинал возьмем равным 1 КОм, так как IIH=1 мкА, то мощность, рассеиваемая на резисторе P13 = 103*10-6 = 1 мВт. Тогда в качестве R13 возьмем элемент С1-4-0,125 1 КОм  5%)
Вывод схемы из ждущего режима осуществляется по переходу из 0 в 1. Через 1 мкс БИС готова к преобразованию входного напряжения. А через 420 нс после спада преобразованное напряжение записывается во внутренний регистр АЦП.
Для чтения результата из AD7825 используются сигналы и .
Так как по техническому заданию Y4 требуется вывести в аналоговой форме, требуется использование 8-разрядного ЦАП. Выберем микросхему Analog Devices AD5330, представляющую собой одноканальный 8-битный ЦАП со встроенным регистром данных. Данная БИС выдает на выходе напряжение от 0 до Vref, с точностью до 1 бита. В нашем случае это соответствует 2.5/256 = 0.00976 В. Служебные входы BUF, GAIN, LDAC заземлим, а и через резисторы R14 и R15, аналогичные резистору R13, подключим к Ucc. Таким образом ЦАП сконфигурирован на автоматический перенос данных из входного регистра в регистр преобразователя и постоянно находится во включенном состоянии (постоянно выдает на выход напряжение, соответствующее содержимому регистра).
1.7 Разработка блока ввода-вывода дискретной информации, управления и индикации.
Блок ввода-вывода дискретной информации, управления и индикации CPAN (рисунок 6) состоит из нескольких частей:
* блок ввода дискретных значений X1 - X4;
* блок ввода значения K и управления работой МПС (клавиатура)
* блок вывода дискретных значений Y1 - Y3;
* блок индикации дискретных значений Х1 - Х4;
* блок вывода информации на жидкокристаллический алфавитно-цифровой знакосинтезирующий дисплей.
* блок световой аварийной сигнализации с частотой 2 Гц.
Эти блоки частично совмещены с целью экономии аппаратных средств и реализованы на трех регистрах: двух КР1533ИР23 (DD1, DD4) и КР1533ИР22 (DD9); жидкокристаллическом дисплее Powertip со встроенным контроллером PC1602-h (DD2) и пяти излучающих светодиодах АЛ307Б.
Управление регистрами осуществляется управляющими сигналами C RG1, C RG4 и , а контроллер ЖКИ и индикаторные светодиоды подключены к портам ОМЭВМ AT89C52 через регистр DD4, для вывода информации на которые надо выставить данные на порту P1, а затем стробировать регистр записав любое значение по адресу OCXXXh.
Рисунок 6 - Схема блока ввода-вывода дискретной информации, управления и индикации
Состав входящих блоков:
1.7.1 Ввод X1 - X4. Ввод сигналов Х1 - Х4 осуществляется напрямую через шину данных BD в разряды D0 - D3 шины. 1.7.2 Организация клавиатуры. Для организации работы клавиатуры используются регистры КР1533ИР23 (DD1) и КР1533ИР22 (DD9). Используется алгоритм "бегущего нуля". На входы D0 - D4 регистра DD1 подаётся комбинация "01111", после чего проверяется наличие логического "0" на одном из входов D0 - D4 регистра DD9, что соответствует нажатию клавиши. По определенному алгоритму можно вычислить нажатую клавишу. Если клавиша нажата не была, происходит повтор вышеописанных действий с циклическим сдвигом комбинации на регистре DD10 вправо на один разряд до "11110".
Выходы Z0 - Z4 регистра DD1 и входы D0 - D4 регистра DD9 образуют клавиатурную матрицу на 25 клавиш. Расположение клавиш указано в таблице 2.
Таблица 2 - Расположение кнопок SB2 - SB26
D4D3D2D1D0Z0-3210Z1-7654Z2-BA98Z3-FEDCZ4--ОстановВыводУставка Для защиты от короткого замыкания выходов регистра DD1 при одновременном нажатии нескольких клавиш необходимо подключить диоды. Ниже приведен расчет сопротивлений резисторов R7 - R11 и диодов VD1 -VD5.
При нажатии кнопки SB2 необходимо обеспечить на входе регистра DD9 состояние логического "0" при поданном на выход регистра DD1 логическом "0", т.е. напряжение Uвх = 0.8 В. Так как максимальное напряжение "0" на выходе регистра DD1 Uвых = 0.4 В, то максимальное падение напряжения на открытом диоде VD1 должно быть не более U = 0.4В. При этом ток через диод не должен превышать допустимый выходной ток регистра (24мА). Исходя из этих ограничений можно выбрать диод KД419A (U=0.4 B при токе ID=1 мА). Минимальное значение сопротивления резистора R7:
R7min=(Ucc min - U - Uвых) / ID= (4.75 - 0.4 - 0.4) /1*10-3 = 3950 Ом;
Максимальное значение сопротивления резистора:
R7max=(Ucc max - U - Uвых) / ID=(5.25 - 0.4 - 0) / 1*10-3 = 4850 Ом;
Выберем резистор сопротивлением 4300 Ом.
При разомкнутом ключе SB2 резистор R7 будет обеспечивать на входе регистра DD9 минимальное напряжение UВ = 4.66 В (при условиях R7 = 4300 Ом, Iвх = 20 мкА), что соответствует состоянию логической "1". Исходя из максимального тока через резистор и значения его сопротивления максимальная мощность, выделяемая на нем будет равна Р7 = Iвх2*R = (1мА)24300 Ом=4.3 мВт. Таким образом в качестве R7 можно выбрать резистор типа С1-4-0,125 4.3 КОм  5%
Аналогично с диодами VD2 - VD5 и резисторами R8 - R11.
1.7.3 Вывод значений Y1 - Y3. Для вывода дискретных значений Y1 - Y3 используются три старших разряда (5 - 7) порта P1 ОМЭВМ, являющейся ядром разрабатываемой МПС. Вывод осуществляется в два этапа:
1 - Запись значений в биты порта 1;
2 - Вывод любых данных по адресу 0CXXXh.
1.7.4 Индикация X1 - X4. Индикации значений Х1 - Х4 реализуется с помощью светодиодов VD6 - VD9, подключенных к разрядам 0 - 3 порта P1 ОМЭВМ через регистр КР1533ИР23 (DD4) (рисунок 6).
В качестве светодиода выбран АЛ307Б красного цвета. Резисторы R2 - R5 предназначены для регулировки тока и напряжения на светодиодах. Зададим ток, проходящий через светодиод Iпр = 5 мА.
Падение напряжения на выходном транзисторе регистра DD4 составляет не менее 0.4В. Если принять Ucc = 5 В5%, то в худшем случае, разность напряжений:
Umin = Ucc.min -U VT RG = 4.75 - 0.4 = 4.35 B,
а в лучшем:
Umax = Ucc.max - UVT.RG = 5.25 - 0 = 5.25 B.
Максимальное и минимальное напряжения работы диода определяются по его вольтамперной характеристике (ВАХ) UD.max = 1.8 B (при Iпр = 5 мА), UD.min=1.25B (при Iпр = 10 мА). Значит в худшем случае падение напряжения на резисторе R2 составит:
UR2 = Umin - UD.max = 4.35 - 1.8 = 2.55B,
а максимальное значение сопротивления резистора:
R2мах = UR22 / Iпр = 2.55 / 5*10-3 = 510 Oм.
Аналогично в худшем случае:
UR2 = Umax - UD.min = 5.25 - 1.25 = 4B,
R2min = UR2/ Iпр = 4 / 10*10-3 = 400 Oм.
Возьмём R2 = 470 Ом. Р2 = I*Umax; Umax = Ucc.max - UD.max - UVT.RG (при Iпр = 10 мА); P2 = 30.5 мВт
Выберем R2 - R5: С1-4-0,125 470 Ом  5%)
1.7.4 Блок аварийной световой сигнализации. Данный блок по технической реализации ничем не отличается от блока вывода дискретной информации (X1 - X4) на светодиоды (рисунок 6). Для аварийной сигнализации используется светодиод АЛ307Б красного цвета (VD10) и резистор С1-4-0,125 470 Ом  5% (R6). 1.7.5 Блок вывода информации на жидкокристаллический дисплей.В качестве средства вывода информации о данных и результатах работы МПС согласно техническому заданию используем жидкокристаллический алфавитно-цифровой дисплей производства фирмы Powertip, модель PC1602-H (элемент DD2, рисунке 6). Дисплей имеет две строки по 16 знакомест и оборудован встроенным контроллером, обеспечивающим взаимодействие дисплея с внешними устройствами. Контроллер жидкокристаллического дисплея содержит регистр команд и регистр данных, куда поступают данные из буфера данных. Выбор того или иного регистра осуществляется с помощью сигнала RS (1 - данные, 0 - команда). Данные из регистра данных поступают в память данных (информация, отображаемая на дисплее) или в память знакогенератора (коды символов, которых нет в стандартном наборе знакогенератора). Сигнал задает цикл записи или чтения данных, сопровождаемых сигналом стробирования E.
В таблице 3 перечислены форматы команд контролера ЖК-дисплея. Установка режима работы дисплея осуществляется в зависимости от значений следующих разрядов команды:
* I\D - изменение счетчика адреса АС: 0 - декремент адреса, 1 - инкремент адреса.
* S - сдвиг экрана: 0 - сдвига нет, 1 - после записи очередного значения данных в память DRAM экран сдвигается в направлении, определяемом битом I\D. I\D=0 - сдвиг экрана вправо, I\D=1 - сдвиг экрана влево. Во время сдвигов содержимое памяти DRAM не изменяется.
Таблица 3 - Форматы команд контроллера ЖК-дисплея
Разряды команды
D7 D6 D5 D4 D3 D2 D1 D0Назначение команды10 0 0 0 0 0 0 1Очистка экрана, адрес АС=0 20 0 0 0 0 0 1 xНачало строки соответствует началу DRAM, адрес АС=030 0 0 0 0 1 I/D SЗадается направление сдвига курсора или символов (экрана)40 0 0 0 1 D C BВыбор режима отображения50 0 0 1 S/C R/L x xСдвиг курсора 60 0 1 DL N F x x Параметры отображения и разрядность входных данных70 1 AC AC AC AC AC ACПрисвоение адреса для CRAM81 AD AD AD AD AD AD ADПрисвоение адреса для DRAM
* S/C - сдвиг курсора , если S/C=0. * R/L=0 - сдвиг курсора влево, иначе вправо. * D/L - разрядность входа буфера данных. 0 - 4 разряда, иначе - 8 разрядов.
* N=0 - одна строка, иначе две строки.
* F: размер матрицы символов: 0 - 5х8 точек, 1 - 5х10 точек.
* D=0 - отображение символов отключено, 1 - включено.
* С=1 - курсор отображается в виде черточки, 0 - курсор не виден.
* В=1 - курсор отображается в виде мерцающего знакоместа, 0 - курсор не виден.
Выберем режим побайтной передачи как более простой с точки зрения реализации на языке ассемблера. Управляющие входы E, , RS подключим к свободным битам порта P3, так как требуется специальная последовательность этих сигналов, которую будем реализовывать программно; а входы данных D0 - D7 - к общей шине данных МПС (BD).
1.8 Расчет электрического сопряжения по цепям данных
Предельный выходной ток низкого уровня на выводах порта P0 ОМЭВМ AT89C52 IOL P0=3.25 мА, максимальный выходной ток высокого уровня IOH P0 = 0.1 мА, а емкость нагрузки Clim = 100 пФ. Емкость монтажа CM = 15 пФ.
IH =IH DDi, где i - номер микросхемы, подключенной к выводу порта P0,
IH DDi - максимальный входной ток i-той микросхемы.
IH = IH DD7 + IH DD10 + IH DD13 + IH DD11 + IH DD14 + IH DD1 + IH DD9 + IH DD2 =
= 20 + 10 + 5 + 1 + 1 + 20 + 20 + 10 = 87 мкА,
Аналогично с токами низкого уровня IL=IL DDi
IL = IL DD7 + IL DD10 + IL DD13 + IL DD11 + IL DD14 + IL DD1 + IL DD9 + IL DD2 =
= 200 + 10 + 5 + 1 + 1 + 200 + 20 + 100 = 537 мкА.
C = CDDi - суммарная емкость элементов, подключенных к порту P0.
CDDi- максимальная входная емкость i-той микросхемы.
C = СDD7 + СDD10 + СDD13 + СDD11 + С DD14 + СDD1 + СDD9 + СDD2 =
= 5 + 14 + 12 + 10 + 3 + 5 + 7 + 10 = 66 пФ.
Так как IOH P0 > IH, IOL P0 > IL, Clim > C + CM, то для сопряжения по выводам порта P0 дополнительных буферов не требуется.
1.9 Расчет потребляемой мощности
По источнику питания +5 В.
Iсс DD Σ = IDD3 + IDD7 + IDD10 + IDD11 + IDD14 + IDD6 + IDD12 + IDD8 + IDD5 + IDD1 + IDD9 + IDD2 + IDD4 = 12 + 28 + 150 + 12 + 140 + 10 +10 + 4 + 4.2 + 28 + 27 + 20 +28= =473.2 мА
PDD Σ = 473.2*10-3*5 = 2.366 Вт
P1 = Iутечки2*R1 = (10*10-6)2*8.2*103 = 0.82 мкВт.
P13 = P14 = P15 = (10-6)2*103 = 10-9 Вт.
P7 = P8 = P9 = P10 = P11 = 4.3 мВт (рассчитывалось ранее)
P2 = P3 = P4 = P5 = P6 = 30.5 мВт (рассчитывалось ранее)
P12 = 103* (20*10-6)2 = 4*10-7 = 0.4 мкВт.
Pобщ = 2.54 Вт
Ток, потребляемый резисторами Iутечки Σ = 10-6*(1+1*3) + 10-3 *5 + 5*5*10-3 + 20*10-6 = 30.024 мА.
Общий потребляемый ток по источнику +5В Iсс Σ = 501.2 + 30.024 = =531.224 мА
По источнику питания +6 В
IDD13 = 70 мА
PDD13 = 70*10-3*6= 0.42 Вт Таблица 4 - Выбор фильтров помех (ВЧ и НЧ)
ИсточникМощностьПримечаниеФильтр ВЧпомехФильтр НЧпомех+5В5%2.54 ВтОсновной источникКM6-H90-6,3В-0,1мкФК50-16-100мкФ-16В10%+6В1% 0.42 ВтПитание ЭОЗУКM6-H90-6,3В-0,1мкФ---
2. ВРЕМЕННЫЕ ДИАГРАММЫ РЕЖИМА ОБРАЩЕНИЯ К ПОСТОЯННОМУ ЗАПОМИНАЮЩЕМУ УСТРОЙСТВУ.
Временная диаграмма режима обращения к ПЗУ К573РФ6А (DD10) изображена на рисунке 7.
По спаду сигнала ALE в регистре DD7 удерживается младший байт 16-разрядного адреса. При этом суммарная задержка изменения адреса по шине BА складывается из задержки сигнала ALE на элементе НЕ (К1533ЛН1, DD5) и времени переключения регистра КР1533ИР23 (DD7). Младший разряд адреса будет выставлен на шине BA не позднее 27 нс (11 нс на ЛН1 и 16 нc на ИР23) после спада сигнала ALE.
При частоте 6 МГц спад сигнала ALE происходит не ранее tAVLL = 153 нс, после того как адрес будет выставлен на выходах ОМЭВМ. При этом сигнал ALE будет в высоком уровне не менее tLHLL = 293нс, что определено динамическими параметрами МП. Переход в низкий уровень происходит не ранее чем через tLLPL = 153 нс после спада ALE
По низкому уровню сигнала выходы микросхемы ПЗУ К573РФ6А (DD10) отпираются и она передает по шине BD данные, адрес которых уже установлен по шине BA. Основным параметром ПЗУ является время выборки относительно входа , на который подается сигнал . Оно равно 150нс.
Длительность сигнала по динамическим параметрам МП составит не менее tPLPH = 480 нс, а микросхема ПЗУ переведет свои выводы в третье состояние не позднее, чем через 150нс после фронта сигнала согласно динамическим параметрам микросхемы К573РФ6А.
Рисунок 7 - Временная диаграмма цикла чтения из постоянного запоминающего устройства
3. РАЗРАБОТКА ПРОГРАМНОГО ОБЕСПЕЧЕНИЯ.
Программа для разрабатываемой МПС состоит из нескольких независимых модулей: модуль обработки прерывания INT 0, модуль обработки прерывания INT 1, блок обработки данных (по таймеру 0) и модуль обработки сигналов клавиатуры (по таймеру 1). Для периодического повторения процедуры считывания данных и их обработки используем встроенный таймер-счетчик TC0, а для обработки клавиатуры потребуется использование и таймера TC1. В аварийном режиме процедура обработки таймера TC1 будет переключаться на выработку сигналов аварийной сигнализации.
Структура адресов:
0000h точка входа после сброса системы,
0003h - 000Ah программа обработки прерывания по сигналу INT0,
000Bh - 0012hпрограмма обработки прерывания по переполнению TC0,
0013h - 001Ahпрограмма обработки прерывания по сигналу INT1,
001Bh - 0023hпрограмма обработки прерывания по переполнению TC1,
0100hначальный адрес основной управляющей программы.
0000h - 00FFhвнутренняя RAM ОМЭВМ
8000h - 87FFhвнешняя RAM КР537РУ10 (DD13)
Для того, чтобы пропустить таблицу обработки прерываний, начальный адрес основной управляющей выберем равным 0100h. Она включает в себя следующие подпрограммы: Signal_INOUT (ввод данных и выдача управляющих сигналов), Display (вывод данных на дисплей), write_command, write_data и wait_bf (подпрограммы работы с ЖКИ); Init_MPS (инициализация системы), keyboard_read (обработка клавиатуры) и Stop_CPU (перевод МПС в режим пониженного энергопотребления). Основная программа занимает 758 байт. Алгоритм её функционирования приведен на рисунке 8.
Рисунок 8 - Алгоритм функционирования микропроцессорной системы (продолжение на следующей странице).
Рисунок 8 - Алгоритм функционирования микропроцессорной системы (продолжение на следующей странице)
Рисунок 8 - Алгоритм функционирования микропроцессорной системы.
ЗАКЛЮЧЕНИЕ
В ходе проектирования микропроцессорной системы были разработаны структурная и принципиальная схемы, принципиальные схемы отдельных компонентов МПС, согласно техническому заданию были произведены расчеты электрического сопряжения цепей данных и потребляемой мощности и разработано программное обеспечение, обеспечивающее работу МПС согласно заданному алгоритму.
В данной МПС используется одна микросхема в 8-выводном корпусе (DD12), две в 14-выводных корпусах (DD5, DD8), две в 16-выводном корпусе (DD2, DD6), пять в 20-выводных корпусах (DD1, DD4, DD7, DD9, DD14), две в 24-выводном корпусе (DD11, DD13), одна в 28-выводном корпусе (DD10) и одна в 40-выводном корпусе (DD3).
Взяв за единицу сложности один шестнадцати-выводной корпус и руководствуясь коэффициентами пересчета, данными в методических указаниях, можно вычислить затраты оборудования. Они составляют 0.5 + 2 + 2 + 5*1.5 + 2*2 + 1*3 + 1*5 = 24 условных корпуса.
Результатом данной работы является проект микропроцессорной системы, построенной на однокристальной МЭВМ AT89C52, с использованием быстродействующих микросхем серий КР1533, К573 и КР537. МПС имеет ПЗУ, объемом 8 КБайт, энергонезависимое ОЗУ, объемом 2 КБайт с возможностью расширения до 4 КБайт. Она обрабатывает 4 сигнала от двоичных датчиков и 3 аналоговых сигнала в диапазоне от 0В до 2.5В в соответствии с заданными алгоритмами, и выдает 3 двоичных сигнала заданной длительности и аналоговый сигнал в диапазоне от 0В до 2.5В. Возможно добавление еще одного аналогового входа, которое не повлечет никаких изменений в аппаратной части системы.
МПС управляется 25-кнопочным пультом управления (из них используются 20, для работы с остальными кнопками требуется модификация программы) имеет жидкокристаллический дисплей для отображения информации и светодиодную аварийную индикацию. Длительность цикла работы программы МПС не превышает 0.5с.
Используемая литература
1. Однокристальные микроЭВМ. М.:МИКАП, 1994, - 400с.
2. Сташин В.В., Урусов А.В., Мологонцева О.Ф. Проектирование цифровых устройств на однокристальных микроконтроллерах. - М.:Энергоатомиздат, 1990. - 224 c.
3. Микропроцессоры и микропроцессорные комплекты интегральных микросхем: Справочник. В 2т./ Н.Н. Аверьянов и др.; Под ред. В.А.Шахнова. - М.: Радио и связь, 1988. - Т.1.- 368 с., Т.2.-368 с.
4. Логические ИС КР1533, КР1534. Справочник. В 2т./И.И. Петровский и др.-М.:Бином, 1993.-Т.1.247с.,Т.2.-253с.
5. Мячев А.А., Степанов В.Н. Персональные ЭВМ и микроЭВМ. Основы организации: Справочник / под.ред.А.А.Мячева. - М.: Радио и связь, 1991. - 320с.
6. Иванов А. В., Кленов С. И. Построение микропроцессорных систем на базе однокристальных микроЭВМ. М.: Изд-во МЭИ, 1992. 52 с.
7. Полупроводниковые приборы: Диоды, тиристоры, оптоэлектронные приборы. Справочник / А.В.Баюков, Ф.Б.Гитцевич, А.А.Зайцеви др.; Под общ. ред. Н.Н.Горюнова. - М.: Энергоатомиздат,- 744 с.
8. Полупроводниковые БИС запоминающих устройств: Справочник. / В.В. Баранов, Н.В. Бекин, А.Ю.Гордонов и др.; Под ред. А.Ю. Гордонова и Ю.Н. Дьякова. - М.: Радио и связь, 1987г. - 360 с.
9. http://www.analog.com - официальный интернет сайт фирмы Analog Devices
10. http://www.powertip.com.tw - официальный интернет сайт фирмы Powertip
Текст управляющей программы
;Определение констант.
RAMequ8000h
ADC1equ9000h
ADC2equ9001h
ADC3equ9002h
DACequ0A000h
KBDequ0B000h
LEDequ0C000h
LCD_EbitP3.4
LCD_RSbitP3.0
LCD_WRbitP3.1
Kequ50;К
A0equ43;0.17 в формате с фиксирован. запятой
A1equ64;0.25 в формате с фиксирован. запятой
Q0equ0b5h;Q0
T0_Delequ65536-5000 ;Настройка таймера 0: 10мс (2мкс*5000) T0_Loopequ50 ;Цикл в 0,5с (10мс*50)
T0_Y1 equ50-9 ;Y1 (T1=90мс)
T0_Y2equ50-4 ;Y2 (T2=40мс)
T0_Y3equ50-2 ;Y3 (T3=20мс)
Al_Loopequ5 ;2Гц для аварийной индикации
T1_Keybequ65536-25000 ;Настройка таймера 1: 50 мс (2мкс*25000)
;Определение бит
X1bitP1.0
X2bitP1.1
X3bitP1.2
X4bitP1.3
Y1bitP1.5
Y2bitP1.6
Y3bitP1.7
ALARMbitP1.4
; Область хранения переменных в памяти.
Flagsequ20h ;Место хранения всех логических переменных
MX1bit00;Х1Ячейка 20h, бит 0
MX2bit01;Х2Ячейка 20h, бит 1
MX3bit02;Х3 Ячейка 20h, бит 2
MX4bit03;Х4 Ячейка 20h, бит 3
DO_ALRMbit04;ALARMЯчейка 20h, бит 6
MY1bit05;Y1 Ячейка 20h, бит 4
MY2bit06;Y2 Ячейка 20h, бит 5
MY3bit07;Y3 Ячейка 20h, бит 6
DO_OUTbitP3.5;Признак вывода информации.
;Определение переменных во внешнем ОЗУ MX5equ0h ;Х5
MX6equ1h ;Х6
MX7equ2h ;Х7
MY4equ3h ;Y4
MKequ4h ;Число К, считаннное с клавиатуры
TMPKequ5h ;Временное хранилище для K при вводе
RESTequ6h ;Осталось ввести (при уставке)
RAM_BAKequ1000h ;Конец области, в которую записывать копию RAM
RAM_SIZequ0FFh ;Объем внутренней памяти ОМЭВМ
;Начало программы
csegat 0
jmpstart
org3
jmpAlert_int ;Прерывание от аварийного датчика
org0Bh
jmpTimer_int ;Прерывание по таймеру
org013h
jmpPower_int ;Прерыванние при отказе источника питания
org023h
jmpTimer1_int ;Прерывание по второму таймеру
org100h
start:
acallInit_MPS
Main_loop:
setbIDL ;Режим холостого хода
jmpmain_loop
Alert_int:
clrtcon.4
setbDO_ALRM ;Включить аварийный сигнал
acallDisplay ;Вывод Х1 - Х4, Q4
movIE,#10001000b ;Запретить прерывания кроме
movIP,#00001000b ;таймера-счетчика 2
reti
Timer_int:
pushDPH
pushDPL
pushACC
pushB
pushPSW
;Установка счетчика
movTH0,#high(T0_del)
movTL0,#low(T0_del)
setbtcon.4
jnbDO_OUT,no_update ;Если надо,
acallDisplay ;выводим информацию
clrDO_OUT ;очищаем признак
no_update:
djnzR4,Clear_Y1
movr4,#T0_loop ;Каждые 0.5 с.
acallSignal_INOUT ;обработка данных
Clear_Y1:
cjner4,#T0_Y1,Clear_Y2
clrY1 ;снять сигнал Y1, если пришло время.
clrMY1
Clear_Y2:
cjner4,#T0_Y2,Clear_Y3
clrY2 ;снять сигнал Y2, если пришло время.
clrMY2
Clear_Y3:
cjner4,#T0_Y3,End_int
clrY3 ;снять сигнал Y3, если пришло время.
clrMY3
End_int:
popPSW
popB
popACC
popDPL
popDPH
reti
Power_int:
;Сохранение образа памяти ОМЭВМ во внешнем ЭОЗУ
movR1, #RAM_SIZ ;кол-во переписываемых байт
movDPH,#high(RAM_BAK)
movDPL,#low(RAM_BAK)
mov_loop:
mova, @R1 ;сверху вниз (уменьшая адрес)
movx@DPTR, a ;переписываем
decDPL ;все содержимое
djnzR1, mov_loop ;RAM
mova, @R1 ;в ЭОЗУ
movx@DPTR, a
setbpd
reti
;Обработка входных сигналов и выдача управляющих сигналов
Signal_INOUT:
;Чтение Х1 - Х4
movDPH,#high(KBD)
movDPL,#low(KBD)
movxa, @DPTR
movc,ACC.4
movMX1,c
movc,ACC.5
movMX2,c
movc,ACC.6
movMX3,c
movc,ACC.7
movMX4,c
;Вычисление Y1
movc,MX1
orlc,MX2
orlc,MX3
orlc,MX4
movMY1,c
;Чтение Х5 - Х7
;Чтение Х5
movDPH,#high(ADC1)
movDPL,#low(ADC1)
movx@DPTR,a
nop
movxa,@DPTR
movDPH,#high(RAM)
movDPL,#MX5
movx@DPTR,a
;Чтение Х6
movDPH,#high(ADC2)
movDPL,#low(ADC2)
movx@DPTR,a
nop
movxa,@DPTR
movDPH,#high(RAM)
movDPL,#MX6
movx@DPTR,a
;Чтение Х7
movDPH,#high(ADC3)
movDPL,#low(ADC3)
movx@DPTR,a
nop
movxa,@DPTR
movDPH,#high(RAM)
movDPL,#MX7
movx@DPTR,a
;Вычисление Y2 и Y3
movDPH,#high(RAM)
movDPL,#MX6
movxa,@DPTR
movb,a
movDPH,#high(RAM)
movDPL,#MK
movxa,@DPTR
adda,b
movb,a
movDPH,#high(RAM)
movDPL,#MX5
movxa,@DPTR
clrc
subba,b
jncmax_X6_N
mova,b ;N5 > N6 + K
jmpend_max
max_X6_N:
adda,b ;N6 + K > N5
end_max:
clrc
subba,#Q0
movMY3,C ;Q0 > Q2
cplC
movMY2,C ;Q0 < Q2
;Вычисление Y4
movDPH,#high(RAM)
movDPL,#MX7
movxa,@DPTR
movb,#A1
mulab
mova,b ;Старший байт переносим в ACC
adda,#A0
movDPH,#high(RAM)
movDPL,#MY4
movx@DPTR,a
;Вывод управляющих сигналов
movDPH,#high(RAM)
movDPL,#MY4
movxa,@DPTR
movDPH,#high(DAC)
movDPL,#low(DAC)
movx@DPTR,a
;Подготовка данных для Y1- Y3
movc,MY1
movY1,c
movc,MY2
movY2,c
movc,MY3
movY3,c
movDPH,#high(LED)
movDPL,#low(LED)
movx@DPTR,a ;Стробирование регистра вывода Y1-Y3
ret
;Вывод данных на индикацию
Display:
pushacc
pushDPL
pushDPH
; Вывод X1, X2, X3, X4
movc, MX1
movX1, c
movc, MX2
movX2, c
movc, MX3
movX3, c
movc, MX4
movX4, c
movDPH,#high(LED)
movDPL,#low(LED)
movx@DPTR,a
;Инициализация ЖКИ
mova, #38h ;8-ми разрядный режим, 2строки 5x8 точек
callwrite_command
mova, #01h ;очистка экрана
callwrite_command
mova, #02h ;обнуление адреса
callwrite_command
mova, #0eh ;курсор в виде черты
callwrite_command
mova, #06h ;курсор не мигает
callwrite_command
mova, #38h
callwrite_command
clra ;Очистка A
movc, MX1 ;X1 - в флаг переноса
rlca ;X1 - 0 бит A
anla, #30h
callwrite_data
mova, #20h ;Пробел
callwrite_data
clra ;Очистка A
movc, MX2 ;X2 - в флаг переноса
rlca ;X2 - 0 бит A
anla, #30h
callwrite_data
mova, #20h ;Пробел
callwrite_data
clra ;Очистка A
movc, MX3 ;X3 - в флаг переноса
rlca ;X3 - 0 бит A
anla, #30h
callwrite_data
mova, #20h ;Пробел
callwrite_data
clra ;Очистка A
movc, MX4 ;X4 - в флаг переноса
rlca ;X4 - 0 бит A
anla, #30h
callwrite_data
mova, #1100000b ;Переход на вторую строку
callwrite_command
mova, #30h ;'0'
callwrite_data
mova, #2Eh ;'.'
callwrite_data
;[X]10 = [X]16 *10/256
;Вместо /256 используем старший байт
movDPH,#high(RAM)
movDPL,#MY4
movxa,@DPTR
movb, #10
mulab
xcha, b
adda, #30;'0'
callwrite_data
mova, #10
mulab
xcha, b
adda, #30;'0'
callwrite_data
mova, #10
mulab
xcha, b
adda, #30;'0'
callwrite_data
popDPH
popDPL
popacc
ret
write_command:
callwait_bf
clrLCD_RS
callwrite_byte
ret
write_data:
callwait_bf
setbLCD_RS
callwrite_byte
ret
wait_bf:
pushacc
wait_11:
movp0,#0FFh
clrLCD_RS
setbLCD_WR
clrLCD_E
setbLCD_E
mova,p0
clrLCD_E
jbacc.3, wait_11
popacc
ret
write_byte:
clrLCD_WR
movp0, a
setbLCD_E
nop
clrLCD_E
movp0, #0FFh
ret
Init_MPS:
;Прерывания
movIE,#10001111b ;Разрешение прерываний
movIP,#00000001b
movFlags,#0
;Таймер 0, 16 бит, период ~10мс, таймер 1, 16 бит, ;~50мс
movtmod,#00010001b
movTH0,#high(T0_del)
movTL0,#low(T0_del)
movTH1,#high(T1_KEYB)
movTL1,#low(T1_KEYB)
setbtcon.4
setbtcon.6
movp1, #0
movDPH,#high(LED)
movDPL,#low(LED)
movx@DPTR,a
;Цикл: 5000 переполнений таймера 0 (~0,5c)
movr4,#T0_loop
movr3,#1
;Начальная загрузка К
mova,#K
movDPH,#high(RAM)
movDPL,#low(MK)
movx@DPTR,a
ret
Timer1_int:
pushDPH
pushDPL
movTH1,#high(T1_KEYB)
movTL1,#low(T1_KEYB)
setbtcon.6
jnbDO_ALRM, keyboard_read
;Аварийная индикация
djnzR3,Next_loop
movR3,#Al_loop;Каждые 0.25с переключаем авар. светодиод
cplALARM
movDPH,#high(LED)
movDPL,#low(LED)
movx@DPTR,a
next_loop:
popDPL
popDPH
reti
keyboard_read:
movDPH,#high(KBD)
movDPH,#low(KBD);
movR2, #6
movb,#11011111b
next_key:
mova, b
movx@DPTR, a
nop
movxa, @DPTR
orla, #11110000b ;Отфильтровываем X1, X2, X3, X4
cpla ;Получаем единицу в разряде, где была кнопка
jnzget_key
xcha, b
rra
xcha, b
djnzR2, next_key
jmpno_key
get_key:
movb, #0
count:
incb
rrca
jnccount
decb
mova, b
xcha, R2
;В ACC - Номер строки, в которой было нажатие (0-4).
;В B,R2 - Номер столбца (0-4).
movb, #5
mulab ;Т.к. A < 5 старший байт - пустой
adda, R2
mova, b
;В B - Код нажатой клавиши.
movDPH,#high(RAM)
movDPL,#low(REST)
movxa, @DPTR
jzno_install
movDPH,#high(RAM)
movDPL,#low(TMPK)
cjnea, #2, low_hex
mova, #10h
mulab ;Переводим в старший полубайт
movx@DPTR, a
mova, #1
movDPH,#high(RAM)
movDPL,#low(REST)
movx@DPTR, a
jmpno_key
low_hex:
movxa, @DPTR
adda, b
movDPH,#high(RAM)
movDPL,#low(MK)
movx@DPTR, a
mova, #0
movDPH,#high(RAM)
movDPL,#low(REST)
movx@DPTR, a
jmpno_key
no_install:
mova, b
cjneA, #20, not_inst_key
movDPH,#high(RAM)
movDPL,#low(REST)
mova, #2
movx@DPTR,a
jmpno_key
not_inst_key:
cjneA, #21, not_disp_key
setb DO_OUT
jmpno_key
not_disp_key:
cjneA, #22, not_break_key
setbidl
jmpno_key
not_break_key:
;Сюда добавить обработку других
;клавиш, если понадобится
no_key:
popDPL
popDPH
reti
Stop_CPU:
setbidl
setbpd
ljmpStop_CPU
end
2
Документ
Категория
Рефераты
Просмотров
153
Размер файла
3 095 Кб
Теги
курсовой
1/--страниц
Пожаловаться на содержимое документа