Содержание
Введение
1. Постановка задачи
2. Аппаратная часть
2.1 Структура устройства
2.2 Описание принципиальной электрической схемы
2.3 Описание используемых микросхем
2.4 Конструкция устройства
3. Программное обеспечение микроконтроллера.
3.1 Логическое проектирование
3.2 Программа на языке ассемблера.
3.3 Технология программирования ОМК и отладки
Заключение
Литература
Приложения:
Приложение А – листинг программы
Введение
Современный этап развития человеческого общества характеризуется все
возрастающим проникновением электроники во все сферы жизни и деятельности
людей. Достижения в области электроники в значительной мере способствуют
успешному решению сложнейших научно-технических проблем, повышению
эффективности научных исследований, созданию новых видов машин и
оборудования, разработки эффективных технологий и систем управления,
получению материалов с уникальными свойствами, совершенствованию процессов
сбора и обработки информации и др.
Охватывая широкий круг научных, технических и производственных
проблем, электроника опирается на достижения в различных областях знаний.
При этом, с одной стороны, электроника ставит перед другими науками и
производством новые задачи, стимулируя их дальнейшее развитие, а с другой –
вооружает их качественно новыми техническими средствами и методами
исследования. Результаты изучения электронных процессов и явлений, а также
исследования и разработка методов создания электронных приборов и устройств
получают свое воплощение в многообразных средствах электронной техники,
развитие которой происходит по двум тесно переплетающимся направлениям.
Первая из них связана с созданием электронных приборов различного
назначения, технологией их производства и промышленным выпуском, второе – с
созданием на основе электронных приборов различных видов аппаратуры, систем
и комплексов для решения сложнейших задач в области вычислительной техники,
информатики, связи, радиолокации, телевидения, телемеханики, и многих
других областях научной практической деятельности человека.
Достижения электронной науки и техники используются почти без
исключения во всех областях человеческой деятельности. Ускоренными темпами
электроника внедряется в научные исследования, промышленность, на
транспорт, в связь, сельское хозяйство, здравоохранение, культуру, быт,
военное дело и др. средства электронной техники стали неотъемлемой частью
сложных приборов и устройств самого широкого назначения.
Внедрение микропроцессоров (МП) и микро-ЭВМ в управление
технологическими процессами рассматривается как новый этап промышленной
революции. На их основе развивается производство и применение станков с
числовым программным управлением, промышленных роботов, систем
автоматического контроля качества продукции, управления цехами и заводами,
создаются гибкие автоматизированные технологические участки и цехи (гибкие
автоматизированные производства - ГАП), ориентированные на выпуск широкой
номенклатуры изделий. Широкое применение электронной техники в
промышленности ведет к повышению производительности труда и качества
продукции, освобождает человека от выполнения однообразных утомительных
операции и работ в условиях опасных для здоровья. На базе электронной
техники реализуются основные устройства автоматических систем управления на
объектах непрерывного действия – электростанциях, прокатных станах, печах
для плавки металла и др.
Применение МП в современных цифровых устройствах управления и
обработки информации стало обыденной реальностью. Массовый выпуск
микропроцессорных наборов больших интегральных схем (БИС) с широкими
функциональными возможностями и низкой стоимостью обеспечила исключительные
преимущества цифровым методам информации.
МП техника не только существенно расширяет возможности автоматизации,
но и позволяет использовать принципиально новые методы управления на основе
математических моделей объектов управления. Широкое использование самых
различных средств электронной техники стало естественным и неотъемлемым
условием жизни людей.
1. Постановка задачи
Разработать програмно-временное устройство, которое будет в
установленное время включать и выключать питание по установленным каналам.
Количество каналов – 8. График управления по каналам вводится через COM –
порт сразу после включения прибора. Интервал работы – 24 часа. Количество
цифр индикатора времени – 4.
2. Аппаратная часть
1. Структура устройства.
Обобщенная структурная схема програмно-временного устройства
представлена на рисунке 1.
Структурная схема включает в себя следующие узлы:
СУ – согласующее устройство COM-порта, предназначено для согласования
вводимых сигналов с СОМ-портом микроконтроллера (Тх), а так-же для защиты
порта от повышенного напряжения и перегорания. Подключение к внешнему
устройству ввода производится с помощью разъема RS232.
МК - микропроцессорный контроллер, реализующий алгоритм включения и
выключения каналов. В его состав входят МП, оперативное и постоянное
запоминающее устройство (ОЗУ и ПЗУ), порты ввода-вывода (ПВВ), таймеры-
счетчики (ТС). Для синхронизации работы этих устройств предназначен
генератор тактовых импульсов. Микроконтроллер содержит и осуществляет всю
логику работы устройства. В данном устройстве используется микроконтроллер
семейства MCS51 марки АТ89С51. Подробное описание устройства и работы
микроконтроллера будет описано далее.
DС1 – дешифратор цифровой индикации. Применяется для отображения цифр
на цифровых индикаторах. На входе четырехразрядный двоично-десятичный код
цифры, на выходе семиразрядный код для семисегментного индикатора.
Подключается к порту Р1 микроконтроллера (биты 1 - 4)
DC2 – дешифратор, предназначенный для управления блоком индикаторов в
динамическом режиме, разрешая зажигание одной установленной цифры. На входе
двоичный номер цифры, на выходе включение одного вывода соответствующего
номеру. Подключен к порту Р1 микроконтроллера.(биты 4 и 5)
БЦИ – блок цифровой индикации. Состоит из девяти семисегментных цифр.
В разрабатываемом устройстве используется только 4.
Кроме того на схеме и изображены кнопка пуск, по нажатии которой
запускается таймер и начинается работа устройства, и блок включающий
питание на выходе по каждому из восьми каналов отдельно, подключен к порту
Р0 микроконтроллера. Косая черта и цифра над ней обозначает что идет не
один провод а несколько, количество которых показано цифрой.
1. Описание принципиальной электрической схемы
Для питания схемы используется внешний источник питания напряжением
5В, подключаемый к разъему Х1.
Восемь линий порта Р0 микроконтроллера DD1 используем для включения
подачи сигнала на выход. После включения устройства все порты
микроконтроллера установлены на высокий потенциал. При срабатывании таймера
на соответствующая линия порта меняет потенциал на низкий, при этом
открывается соответствующий транзистор (VТ2-VТ9) и подается напряжение на
соответствующую линию выходного канала. При установки высокого потенциала
по истечение установленного времени для данного канала транзистор снова
закрывается и подача питания на выход прекращается. Выходные каналы
объединены разъемом Х2.
К порту Р1 подключен блок цифровой индикации НG1 через два дешифратора
DD2 и DD3. Блок индикаторов содержит 9 цифр из которых используется в
устройстве всего 4. Схема подключения с общим катодом. Индикаторы работают
в динамическом режиме, т. е. Включаются поочереди с быстрой частотой,
незаметной глазу наблюдателя. На рисунке показан график включения
индикаторов (0 – включен, 1 - выключен).
Т=20мс t=5мс
Остальные выводы просто не используются и ни к чему не подключаются.
Дешифратор DD2 подключен к 0 – 3 выводам порта Р1. Он преобразует
четырехразрядный код цифр в семиразрядный код для индикатора и подключается
к выводам А-G блока индикаторов.
Дешифратор DD3 подключен к выводам 5,6 порта и преобразует двоичный
код номера индикатора в сигнал на соответствующей линии выхода.
На неиспользуемые линии на входе подаем низкий потенциал (ноль).
К линиям Х1 и Х2 подключен генератор тактовых импульсов ZQ1 частотой
12МГц. К линии Т0 подключена кнопка пуска таймера. Ввод команд
осуществляется через порт Rx который через согласующее устройство выходит
на разъем Х2 соответствующий Стандартному разъему для СОМ-порта RS232.
2.3 Описание используемых микросхем
Основной частью микропроцессорной системы сбора и обработки
информации является однокристальный микроконтроллер, который, собственно и
выполняет основные функции сбора и обработки данных.
Для выполнения этих функций возьмем МК АТ89С4051, т.к. он имеет
достаточное быстродействие, небольшую стоимость и подходящее
энергопотребление.
Основные характеристики МК АТ89С4051: o Высококачественная n-МОП технология; o Объем внутренней памяти программ – 4К; o Тип памяти – ПЗУ; o Объем внутренней памяти данных – 128 байт; o Максимальная частота следования тактовых сигналов – 12 МГц; o Ток потребления – 150 мА; o Четыре 8-ми разрядных программируемых канала ввода-вывода; o Два 16-тибитовых многорежимных таймера-счетчика; o Система прерываний с 6-ю векторами и 2-мя уровнями; o Последовательный интерфейс; o Встроенная система прерываний; o Встроенный программируемый связной адаптер; o Возможность расширения общего объема оперативной памяти данных – до 64
Кбайт за счет использования внешних микросхем ЗУПВ.
Условное графическое обозначение МК приведено на рисунке 2.
[pic]Рис. 2
На рисунке 3 приведена структурная схема арифметическо-логического
устройства микроконтроллера. 8-битное арифметическо-логическое устройство
(ALU) может выполнять арифметические операции сложения, вычитания,
умножения, деления; логические операции И, ИЛИ, исключающее ИЛИ, а также
операции циклического сдвига, сброоса, инвертирования и т. п. К входам
подключены програмно недоступные регистры Т1 и Т2, предназначенные для
временного хранения операндов, схема десятичной коррекции (DCU), и схема
формирования признаков результата операции (PSW).
Рис 3. Арифметическо-логическое устройство микроконтроллера MCS51
Простейшая операция сложения используется в ALU для инкрементирования
содержимого регистров, продвижения регистра указания данных (RAR) и
автоматического вычисления следующего адреса резидентной памяти программ.
Простейшая операция вычитания используется в ALU для декрементирования
регистров и сравнения переменных.
Важной особенностью ALU является способность оперировать не только
байтами но и битами. Отдельные программно доступные биты могут
сравниваться, устанавливаться, сбрасываться, передаваться, использоваться в
логических операциях. Эта способность достаточно важна, поскольку для
управления объектами часто применяются алгоритмы, содержащие операции над
входными и выходными булевыми переменными, реализация которых средствами
обычных микропроцессоров сопряжена с определенными трудностями.
Таким образом АЛУ может оперировать четырьмя типами информационных
объектов булевыми (1 бит), цифровыми (4 бита), байтными (8 бит) и адресными
(16 бит). В АЛУ выполняется 51 различная операция пересылки или
преобразования этих данных. Так как используется 11 режимов адресации, то
путем комбинирования операций и режима адресации базовое число команд 111
до 255 из 256 возможных при однобайтовом коде операции.
В качестве дешифратора DD2 была использована микросхема КР514ИД1.
Дешифратоор применяется преобразования двоичного кода чисел от 0 до 9 в код
необходимый для высвечивания соответствующей цифры на семисегментном
световом диодном индикаторе с общим катодом, т. е. На выходе в качестве
активного используется высокий потенциал.
Таблица истинности
|Вход |Выход |
|1 |0 |1 |1 | |
|1 |1 |0 |0 | |
|1 |1 |0 |1 | |
|1 |1 |1 |0 | |
|1 |1 |1 |1 | |
1 – Высокий потенциал, 0 – низкий.
В качестве дешифратора DD3 была использована микросхема К155ИД10.
Дешифратор пименяется для управления семисегментными цифровыми индикаторами
с общим катодом. Он принимает четырехразрядный двоичный код и выдает
напряжение низкого уровня на одном из 10 выходов. Коды эквивалентные числам
10-15 не обрабатываются. Выходы дешифратоора могут применяться с нагрузкой
не более 80мА. Рабочая температура 0( - +70(С. Ток нагрузки питания 13мА.
Таблица истинности
|Вход |№ выхода с низким уровнем |
|А1 |А2 |А3 |А4 | |
|L |L |L |L |0 |
|L |L |L |H |1 |
|L |L |H |L |2 |
|L |L |H |H |3 |
|L |H |L |L |4 |
|L |H |L |H |5 |
|L |H |H |L |6 |
|L |H |H |H |7 |
|H |L |L |L |8 |
|H |L |L |H |9 |
|H |L |H |L | |
| | | | | |
| | | | |Не обрабатываются |
|H |L |H |H | |
|H |H |L |L | |
|H |H |L |H | |
|H |H |H |L | |
|H |H |H |H | |
L – Сигнал низкого уровня
H – Сигнал высокого уровня
В качестве блока цифровых индикаторов используется блок АЛС318.
Этот блок состоящий из 9 индикаторов с общим катодом. На входы А-G подается
код для высвечивания цифры. Соответствие сегментов цифры и входов показано
на рисунке.
Индикаторы работают в динамическом режиме,
А т. е. Включаясь последовательно с большой частотой
Номер текущего индикатора задается путем подачи
F G В низкого уровня на входы К1-К9 (соответственно порядковому номеру индикатора.
E С
D
2.4 Конструкция устройства.
Расположение элементов напечатной плате показано на рисунке 4. Обозначения
соответствуют обозначениям на принципиальной электрической схеме. Разъемы
для подключения внешних устройств и питания находятся на корпусе прибора и
соединяются с платой шлейфами.
[pic]
3. Программное обеспечение микроконтроллера.
3.1. Логическая структура устройства
После включения устройства начинает работать программа начальных
установок . Производится сброс всех регистров и установка начальных
параметров работы программы. После чего выполнение программы
останавливается и происходит ожидание ввода данных включения/выключения
каналов через последовательный порт СОМ. По окончании ввода программа вновь
останавливается до нажатия кнопки ПУСК. После ее нажатия сначала
запускается счетчик времени а затем основной цикл вывода времени на
индикатор. Программа постоянно находится в этом цикле, а отсчет времени и
проверка включения/выключения каналов производится по прерыванию таймера
С/Т0.
Таким образом в работу системы можно разделить на три основных части:
1. Включение, установка начальных параметров и ожидание ввода данных.
2. Ввод данных, пуск и переход к основному циклу программы.
3. Обработка прерывания таймера.
Первые две части работы системы можно описать следующим алгоритмом (на
схеме изображена логика работы программы, далее приводится подробное
описание алгоритма ее работы)
[pic]
Алгоритм работы программы
[Инициализация порта и ввод данных]
M1: While (RI=0) do { };
A := SBUF;
RI :=0;
C := A.3;
R0 := 20H+A*4;
For ( i = 0 to 4) do {
While (RI=0) do { };
A := SBUF;
RI :=0;
Write (@R0, A);
R0 := R0+1; }
If (C=0) then goto M1;
While (P3.4 = 1) do { };
[Инициализация и пуск таймера]
TMOD := 1
TF0 := 0
TL0 := low(15000);
TH0 := High(15000);
ET0 := 1
TR0:= 1
[Индикация времени]
M2: A := R4;
Gosub INDRAS [блок преобразования числа в код по одной цифре
[ Для вывода на индикатор (будет описан далее)]
P1/4 := 0 ; P1.5 :=0
P1 := A
Pause 5(ms)
P1 := B
P1/5 :=1
Pause 5(ms)
A := R3;
Gosub INDRAS
P1/4 := 1 ; P1.5 :=0
P1 := A
Pause 5(ms)
P1 := B
P1/5 :=1
Pause 5(ms)
Goto M2
В программе приняты следующие соглашения – регистры R1 – R4 хранят
информацию об миллисекундах, секундах, минутах и часах соответственно.
Бит С служит показателем конца ввода данных с ком-порта (1 – последний
канал, ноль – не последний канал). Сохранение времени включения и
выключения для нулевого канала начинается с ячейки с адресом 20Н; сначала
записываются часы, затем минуты включения, затем часы и минуты выключения.
Таким образом для каждого канала в памяти отводится 4 байта, общее
количество оперативной памяти используемое программой 32 байта. Структура
использования памяти описана в следующей таблице:
|Адрес |Содержимое |Адрес |Содержимое |
|20h |Таймер 1 часы включения |21h |Таймер 1 минуты включения |
|22h |Таймер 1 часы выключения |23h |Таймер 1 минуты выключения |
|24h |Таймер 2 часы включения |25h |Таймер 2 минуты включения |
|26h |Таймер 2 часы выключения |27h |Таймер 2 минуты выключения |
|28h |Таймер 3 часы включения |29h |Таймер 3 минуты включения |
|2Аh |Таймер 3 часы выключения |2Bh |Таймер 3 минуты выключения |
|2Ch |Таймер 4 часы включения |2Dh |Таймер 4 минуты включения |
|2Eh |Таймер 4 часы выключения |2Fh |Таймер 4 минуты выключения |
|30h |Таймер 5 часы включения |31h |Таймер 5 минуты включения |
|32h |Таймер 5 часы выключения |33h |Таймер 5 минуты выключения |
|34h |Таймер 6 часы включения |35h |Таймер 6 минуты включения |
|36h |Таймер 6 часы выключения |37h |Таймер 6 минуты выключения |
|38h |Таймер 7 часы включения |39h |Таймер 7 минуты включения |
|3Ah |Таймер 7 часы выключения |3Bh |Таймер 7 минуты выключения |
|3Ch |Таймер 8 часы включения |3Dh |Таймер 8 минуты включения |
|3Eh |Таймер 8 часы выключения |3Fh |Таймер 8 минуты выключения |
При чтении из CОМ порта принята следующая расшифровка принимаемых
байтов. Один блок составляет 5 байтов: первый управляющий далее идут 4
байта с данными, в следующей последовательности: Часы включения канала –
минуты включения канала – часы выключения канала – минуты выключения
канала. Передача данных ведется в двоичной форме. Управляющий байт
использует 4 младших бита, первые три несут номер канала в двоичном коде,
четвертый показывает последний канал идет или нет (1 – последний, 0 – не
последний). Если канал последний, то после приема 4 следующих байтов данных
связь с портом прекратится, если нет, то продолжится с приема следующего
управляющего байта.
Алгоритм обработки прерывания будет выглядеть следующим образом.
TF0 := 0;
R1 := R1+1;
If (R1