Xreferat.com » Рефераты по информатике и программированию » Регистратор дискретных сигналов

Регистратор дискретных сигналов

Содержание


Введение

  1. Постановка задачи

  2. Аппаратная часть

2.1 Структура устройства

2.2 Описание принципиальной электрической схемы

2.3 Описание используемых микросхем

2.4 Конструкция устройства

  1. Программное обеспечение микроконтроллера.

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:

  • Высококачественная n-МОП технология;

  • Объем внутренней памяти программ – 4К;

  • Тип памяти – ПЗУ;

  • Объем внутренней памяти данных – 128 байт;

  • Максимальная частота следования тактовых сигналов – 12 МГц;

  • Ток потребления – 150 мА;

  • Четыре 8-ми разрядных программируемых канала ввода-вывода;

  • Два 16-тибитовых многорежимных таймера-счетчика;

  • Система прерываний с 6-ю векторами и 2-мя уровнями;

  • Последовательный интерфейс;

  • Встроенная система прерываний;

  • Встроенный программируемый связной адаптер;

  • Возможность расширения общего объема оперативной памяти данных – до 64 Кбайт за счет использования внешних микросхем ЗУПВ.

Условное графическое обозначение МК приведено на рисунке 2.


Рис. 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 в код необходимый для высвечивания соответствующей цифры на семисегментном световом диодном индикаторе с общим катодом, т. е. На выходе в качестве активного используется высокий потенциал.


Таблица истинности


Вход Выход
0 1 2 3 А B C D E F G
0 0 0 0 1 1 1 1 1 1 0
0 0 0 1 0 1 1 0 0 0 0
0 0 1 0 1 1 0 1 1 0 1
0 0 1 1 1 1 1 1 0 0 1
0 1 0 0 0 1 1 0 0 1 1
0 1 0 1 1 0 1 1 0 1 1
0 1 1 0 1 0 1 1 1 1 1
0 1 1 1 1 1 1 0 0 0 0
1 0 0 0 1 1 1 1 1 1 1
1 0 0 1 1 1 1 1 0 1 1
1 0 1 0

Все уровни низкие

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. Обозначения соответствуют обозначениям на принципиальной электрической схеме. Разъемы для подключения внешних устройств и питания находятся на корпусе прибора и соединяются с платой шлейфами.



3. Программное обеспечение микроконтроллера.


3.1. Логическая структура устройства


После включения устройства начинает работать программа начальных установок . Производится сброс всех регистров и установка начальных параметров работы программы. После чего выполнение программы останавливается и происходит ожидание ввода данных включения/выключения каналов через последовательный порт СОМ. По окончании ввода программа вновь останавливается до нажатия кнопки ПУСК. После ее нажатия сначала запускается счетчик времени а затем основной цикл вывода времени на индикатор. Программа постоянно находится в этом цикле, а отсчет времени и проверка включения/выключения каналов производится по прерыванию таймера С/Т0.

Таким образом в работу системы можно разделить на три основных части:

  1. Включение, установка начальных параметров и ожидание ввода данных.

  2. Ввод данных, пуск и переход к основному циклу программы.

  3. Обработка прерывания таймера.


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


Алгоритм работы программы


[Инициализация порта и ввод данных]

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<20) Then goto exit ;

R1 := 0;

R2 := R2+1;

If (R2<60) Then goto exit ;

R2 := 0;

R3 := R3+1;

For (i=0 to 7) do {

R0 := 20h + i*4 ;

If ( @R0+1 =R3) then if (@R0 = R4) then P[i] :=0;

If (@R0+3 = R3) Then if (@R0+2=R4) then P[i] :=1;};

If (R3<60) Then goto exit ;

R3 := 0;

R4 := R4+1;

If (R4<24) Then goto exit ;

R4 := 0;

Gosub Pause50; [Подпрограмма запуска таймера, будет поисана далее]

Return


3.2 Программа на языке ассемблера.


На языке ассемблера программа разделена на несколько процедур затем в главном модуле все процедуры связываются друг с другом так как это необходимо. Далее приводится подробное описание этих подпрограмм.


OMCS-51 MACRO ASSEMBLER VSKURS1

PAGE 1


loc obj line source


0100 1 ORG 100h

0100 75B80C 2 MOV IP, #00001100b

0103 75A80C 3 MOV IE, #00001100b

0106 758991 4 MOV TMOD, #10010001b

0109 758844 5 MOV TCON, #01000100b

010C 758000 6 MOV P0, #0h

010F 75A000 7 MOV P2, #0h

0112 7E05 8 MOV R6, #5h

0114 7930 9 MOV R1, #30h

0116 8E90 10 CON: MOV P1, R6

0118 3094FD 11 JNB P1.4, $

011B E580 12 MOV A, P0

011D F8 13 MOV R0, A

011E 75F0A0 14 MOV B, #0A0h

0121 A4 15 MUL AB

0122 9450 16 SUBB A, #50h

0124 A7E0 17 MOV @R1, 0E0h

0126 09 18 INC R1

0127 DEED 19 DJNZ R6, CON

0129 E8 20 MOV A, R0

012A 20E708 21 JB ACC.7,GRR

012D B4340C 22 CJNE A, #34h, NORM

0130 4008 23 JC ERROR

0132 30E707 24 JNB ACC.7,NORM

0135 B4A304 25 GRR: CJNE A, #0A3h, NORM

0138 4002 26 JC NORM

013A D2A7 27 ERROR: SETB P2.7

013C E590 28 NORM: MOV A, P1

013E 55F0 29 ANL A, 0F0h

0140 F535 30 MOV 35h, A

0142 C299 31 INTT1: CLR TI

0144 7588FF 32 MOV TCON, #0FFh

0147 7598DC 33 MOV SCON, #11011100B

014A 758920 34 MOV TMOD, #20h

014D D299 35 SETB TI

014F 3099FD 36 JNB TI, $

0152 E599 37 MOV A, SBUF

0154 C299 38 CLR TI

0156 B4060F 39 CJNE A, #6h, DD

0159 F9 40 MOV R1, A

015A E7 41 MOV A, @R1

015B C9 42 XCH A, R1

015C 7430 43 MOV A, #30h

015E 29 44 ADD A, R1

015F C9 45 XCH A, R1

0160 E7 46 MOV A, @R1

0161 F599 47 MOV SBUF, A

0163 3099FD 48 JNB TI, $

0166 2176 49 AJMP ENDD

0168 7936 50 DD: MOV R1, #36h


OMCS-51 MACRO ASSEMBLER VSKURS1

PAGE 2


016A 7E03 51 MOV R6, #3h

016C 8999 52 CC: MOV SBUF, R1

016E 3099FD 53 JNB TI, $

0171 C299 54 CLR TI

0173 09 55 INC R1

0174 DEF6 56 DJNZ R6, CC

0176 75B000 57 ENDD: MOV P3, #0h

0179 2106 58 AJMP BEGIN

017B 00 59 NOP

0013 60 ORG 0013h

0013 120030 61 CALL INTERRUPT

0016 32 62 RETI

0017 00 63 NOP

001B 64 ORG 001Bh

001B 120053 65 CALL TIMERFULL

001E 32 66 RETI

0030 67 ORG 030h

0030 00 68 INTERRUPT: NOP

0031 858B36 69 MOV 36h, TL1

0034 858D37 70 MOV 37h, TH1

0037 FC8D 71 MOV R4, TH1

0039 BC7D09 72 CJNE R4, #7Dh, OK

003C 4012 73 JC ERD

003E AC8B 74 MOV R4, TH1

0040 BC5002 75 CJNE R4, #50h, OK

0043 500B 76 JNC ERD

0045 C2A6 77 OK: CLR P2.6

0047 758D00 78 MOV TH1, #0h

004A 758B00 79 MOV TL1, #0h

004D 020052 80 JNP EX

0050 D2A6 81 ERD: SETB P2.6

0052 22 82 EX: RET

0053 00 83 TIMERFULL: NOP

0054 858B36 84 MOV 36h, TH1

0057 858D37 85 MOV 37h, TH1

005A D2A6 86 SETB P2.6

005C 758D00 87 MOV TH1, #0h

005F 758B00 88 MOV TL1, #0h

0062 22 89 RET

90 END


OMCS-51 MACRO ASSEMBLER VSKURS1

PAGE

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту
Нужна помощь в написании работы?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Пишем статьи РИНЦ, ВАК, Scopus. Помогаем в публикации. Правки вносим бесплатно.

Похожие рефераты: