Мир Знаний

Устройство контроля интенсивности движения через мост (стр. 2 из 2)

Затем, после формирования сигналов с датчиков, информация поступает на коммутатор.

Вывод информации о текущем времени осуществляется через порты Р1 и Р2 и светодиодные семи-сегментные цифровые индикаторы HG1.. HG4, в качестве которых можно использовать индикаторы типа АЛС324А. Индикаторы подключаются к линиям портов микроконтроллера через дешифраторы DD2..DD5, в качестве которых используются микросхемы 514ИД1, преобразующие двоично-десятичное содержимое портов в коды управления цифровыми индикаторами. Начальные установки таймера реального времени задаются кнопками подключенными к линиям Т0 и T1 порта Р3, которые обозначаются на функциональной схеме «час» и «мин». Сразу при включении устройство переходит в режим счета.


Программно реализуется счетчик внешних событий на регистрах R4 и R6, а таймер реального времени на таймере-счетчике Т/С1. Импульс, приходящий с коммутатора вызывает увеличение содержимого счетчика, причем информация о максимальном значении автомобилей и час-пике обновляется каждый час. Время берется из таймера реального времени.


4. АЛГОРИТМ РАБОТЫ УСТРОЙСТВА


При включении устройства происходит обнуление информации и сброс счетчика коммутатора единичным импульсом Urd. Почти одновременно с этим производится сброс триггеров. Эпюры напряжений на основных элементах устройства приведены на рисунке 4.1.

Рисунок 4.1. Эпюры напряжений на основных элементах схемы.

Рассмотрим наихудший случай для проектируемой системы: пусть по четырем полосам через датчики одновременно проехали автомобили. Тогда коммутатор будет распределять импульсы следующим образом: на счетчик поступают тактирующие импульсы Uwr, формируется код номера датчика, линию которого надо опросить. Этот код поступает на мультиплексор, который осуществляет подключение соответствующего датчика к микропроцессору. На выходе коммутатора будут информационные импульсы Uвых. При единичном состоянии датчика триггер сбрасывается в "0" импульсом Urst для предотвращения повторного учета "старой" информации.

При каждом приходе импульса по линии INТ0 порта Р3 содержимое регистров R4 и R6 будет увеличиваться, при этом параллельно будет работать таймер реального времени. Каждый час информация будет обновляться, будет происходить сравнение количества автомобилей, проехавших за минувший час через мост с максимальным количеством автомобилей, находящимся в памяти МК.

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


5. РАЗРАБОТКА УПРАВЛЯЮЩЕЙ ПРОГРАММЫ.

Схема алгоритма работы управляющей программы изображена на рисунке 5.1.

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

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


6. ЗАКЛЮЧЕНИЕ

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

Данный курсовой проект позволил сделать серьёзные упражнения в применении знаний, полученных в процессе изучения дисциплины “Микропроцессорные устройства и системы”.


7. СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ.

ОС ТАСУР 6.1-97. Работы студенческие учебные и выпускные квалификационные. Общие требования и правила оформления.

Шарапов А. В. Микропроцессорные устройства и системы. Методические указания к выполнению курсового проекта. - Томск: ТУСУР, 1998. - 39 с.

Шарапов А. В. Примеры решения схемотехнических задач. Учебное пособие. - Томск: ТИАСУР, 1994. - 141 с.

Шарапов А. В. Цифровая и микропроцессорная техника: Учебное пособие. 2-е изд., перер. и доп. - Томск: Изд-во Том. Ун-та, 1997. - 108 с.

Токхайм Р. Микропроцессоры: Курс и упражнения/ Пер. С англ., под ред. В. Н. Грасевича. - М.: Энергоатомиздат, 1988. - 336 с.


Приложение А

Листинг управляющей программы

Основная программа:

ORG 00H;начальный адрес программы

CLR A;очистка аккумулятора

;начальная загрузка счетчика часов

MOV R5,A;начальная загрузка

MOV R7,A;счетчика минут

MOV P2,A;начальная загрузка счетчика секунд

MOV R2,#1;загрузка

MOV R1,#1;счетчиков генератора

MOV TH1,#156;секундных импульсов

MOV TMOD,#20H;T/C1 в режиме 2

MOV IE,#8DH;разрешение прерываний от T/C1

SETB TR1;старт таймера T/C1

SJMP MAIN;Переход к основной программе

;-----====== П/п обслуживания прерывания от T/C1 =====--------

ORG 1BH;вектор прерывания

PUSH PSW;задержка

DJNZ R2,EXIT;в одну

MOV R2,#1;секунду

DJNZ R1,EXIT;

MOV R1,#1;

PUSHACC;

JNB T0,M1;коррекция минут

JNB T1,M2;коррекция часов

MOV A,R7;счетчик секунд

ADD A,#1;

DA A;

MOV R7,A;

CJNE R7,#60H,M3;

MOV R7,#0;

M1:MOVA,R5;счетчик минут

ADD A,#1;

DA A;

MOV R5,A;

CJNE R5,#60H,M3;

MOV R5,#0;

M2:CALL COMP;Запуск п/п выявления мах кол-ва а/м.

MOV R4,#0 ;Обнуление количества а/м,

MOV R6,#0;проехавших через мост за час.

MOV A,R3;Счетчик часов.

ADD A,#1;

DA A;

MOV R3,A;

CJNER3,#24H,M3;

MOV R3,#0;Установка 0 (24) часов.

MOV R4,#0;Обнуление количества а/м, проехавших

MOV R6,#0 ;через мост, с началом новых суток.

M3:MOV P1,R3;Вывод информации .

MOV P2,R5;индикаторы.

POP ACC;Восстановление аккумулятора.

EXIT:POP PSW;Восстановление регистра PSW.

RETI;Возврат из п/п.

;-----======== Основная программа. ========----------

MAIN:MOV R4,#0;Обнуление

MOV R6,#0;количества а/м.

MOV P0,#0FFH;Сброс триггеров

SETB RD;Сброс счетчика.

NOP ;Задержка в 1мкс (для срабатывания CT)

CLR RD;

MOV P0,#0;Восстановление работы триггеров.

SETB WR ;Импульс переключения линий с датчиков.

MOV SP,#100;Установка указателя стека.

BEGIN:MOV B,#4;Число датчиков.

MOVR0,#1;R0=1.

CYCLE:CLR WR;Импульс переключения линий с датчиков.

NOP;Задержка в 1мкс (для срабатывания CT и MS).

JNB INT0,J11;Опрос линии порта (проверка состояния датчиков).

MOV P0,R0;Сброс соответсвующего триггера датчика

CALL SUM;Вызов п/п суммипрвания.

MOV P0,#0;Восстановление счетнго режима триггера

J11:MOVA,R0;A=R0.

RL A;Пестановка сбрасывающего бита триггеров.

MOVR0,A;R0=A.

SETB WR;Импульс переключения линий с датчиков.

DJNZ B,CYCLE;B=B-1. If B<>0, то переход на новый цикл

;опроса датчиков.

JB INT1,J2;Если INT1=1, то J2,

CALL DSPLY; иначе вызов п/п вывода инф-ции на

;внешнее устройство.

J2:SJMP BEGIN;Переход на начало опроса датчиков.

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

SUM:MOV A,R6;Суммирование десятков.

ADDA,#1;A=A+1.

DA A;Десятичная коррекция.

MOV R6,A;R6=A.

JNC S1;Если С<>1, то S1,

MOV A,R4; иначе прибавить 1 к сотням.

ADDA,#1;A=A+1.

DA A;Десятичная коррекция.

MOVR4,A;R4=A.

S1:RET;Возврат из п/п.

;-------===== П/п сравнения количесва а/м, прошедших ранее, ======-----

;с прошедшими в этот час.

COMP: MOV A,R0;Сохранение R0

PUSH ACC;в стеке.

MOV R0,#20H;Адрес хранения младшего байта максимального

;количеств а/м.

MOVA,R6;A=R6.

SUBBA,@R0;A=A-@R0.

JC C1;Если содержимое @R0>A, то переход к C1,

MOV A,R6;иначе записать

MOV @R0,A;в память мах. кол-во а/м.

C1:INC R0;Увеличение указателя памяти.

MOV A,R4;A=R4.

SUBB A,@R0;

JC C2;

MOV A,R4;

MOV @R0,A;

INC R0;

MOV A,R3;

MOV @R0,A;

POP ACC;Восстановление

MOV R0,A;R0 из стека.

C2:RET;Возврат из п/п

;---------======= П/П ВЫВОДА ДАННЫХ НА ВНЕШ. УСТР-ВО ========--------

DSPLY:MOV R0,#20H;Начальный адрес данных.

MOV SBUF,@R0;Вывод данных ч/з последовательный порт

INC R0;Увеличение указателя памяти.

MOV SBUF,@R0;

INC R0;

MOV SBUF,@R0;

INC R0;

RET;Возврат из п/п.

END


Приложение Б

Карта прошивки памяти программ

0: 1: 2: 3: 4: 5: 6: 7: 8: 9: A: B: C: D: E: F:

0000: 99 00 9A 0FD5 0E 03 F0 A9 0D 47 A8 0C 68 A8 C5

0010: 26 10 27 A8 A9 AA AB AC AE BD05 36 1B 14 42 14

0020:53 FD 47 53 0F AD FE 47 53 F0 6DAD39 FE 53 F0

0030: 3A47 AED5 69 C5 F6 3E FD D5 68 C5 E6 40 14 6F

0040: 04 10 28 03 01 57 28 29 13 00 57 29 BF 2F EF4E

0050: 26 42 83 2A 68 57 2A 2B 79 57 2B 2C 13 00 57 B2

0060: 6E2C2D 03 01 57 2D 2E 13 00 57 2E 04 53 83 56

0070: 6F 23 FE 9F 46 74 23 01 8F 83 FF FF FF FF FF FF

0080: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

0090: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

00A0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

00B0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

00C0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

00D0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

00E0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

00F0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF