Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпус_1 / mk51 / Книги / МПУиС_2008.doc
Скачиваний:
442
Добавлен:
11.05.2015
Размер:
3.33 Mб
Скачать

Приложение г

(справочное)

Пример оформления разделов пояснительной записки

4

1 ВВЕДЕНИЕ

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

Анализ технического задания показывает, что проектируемое устройство должно выполнять три основные задачи:

а) содержать часы реального времени;

б) формировать требуемый набор циклически повторяющихся временных задержек для управления лампами светофора в дневное и ночное время, причем желательно иметь возможность перестраивать время задержек;

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

2 КОНКРЕТИЗАЦИЯ ТЕХНИЧЕСКОГО ЗАДАНИЯ

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

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

Предпочтительнее использование однокристальных микроконтроллеров, где все перечисленные устройства реализованы в одной микросхеме и требуется лишь один источник питания. Наиболее оптимальное решение получается при применении микроконтроллеров семейства МК51 [7] с более гибкой и развитой системой команд и многофункциональным таймером. Самый экономичный вариант реализуется при использовании микросхем серии К1830, выполненных по КМОП технологии.

5

Конкретизируем алгоритм работы светофора (таблица 2.1). С шести часов утра до 24 часов циклически повторяются шесть верхних состояний, приведенных в таблице 2.1, с полуночи до шести часов утра - два нижних (режим нерегулируемого перекрестка). Днем на светофоре главного направления в течение 30 с горит зеленый свет (З1), затем на секунду все гаснут и на 5 с загорается желтый (Ж1). Затем 20 с горит красный (К1), на секунду гаснет и загорается еще на 5 с, когда на второстепенном направлении горит желтый свет (Ж2), после чего цикл повторяется. Ночью через секунду загораются и гаснут лампы желтого света.

Таблица 2.1 – Алгоритм переключения ламп светофора

З1 Ж1 К1

З2 Ж2 К2

Время, с

1 0 0

0 0 0

0 1 0

0 0 1

0 0 0

0 0 1

0 0 1

0 0 0

0 0 1

1 0 0

0 0 0

0 1 0

30

1

5

20

1

5

0 0 0

0 1 0

0 0 0

0 1 0

1

1

3 РАЗРАБОТКА ФУНКЦИОНАЛЬНОЙ СХЕМЫ

На рисунке 3.1 приведена функциональная схема устройства управления светофором, выполненного на однокристальном микроконтроллере К1830ВЕ31. Фиксация адреса очередной ячейки памяти программ (ПЗУ на микросхеме К573РФ5) производится с помощью регистра К580ИР82. Управляющие сигналы на светофоры подаются через линии порта Р1. Через порт Р2 и дешифраторы (К514ИД1) подключаются цифровые индикаторы часов текущего времени (АЛС324А). Линии T0, T1 и INT1 порта Р3 используются как тестируемые входы, линия INT0 - как выход сигнала управления запятой цифрового индикатора (программа ежесекундно реализует инверсию этого бита). Для безопасного перехода улицы ночью предусмотрена кнопка S3 ( СТОП ), при нажатии которой в течение 20 с горит красный свет на главном направлении.

6

T0 SMC PME

P0

T1

INT1 ALE

RST

P1

VPP

BQ1

BQ2

P2

OV

E

INT0

OE ROM

D

A

A8

A9

A10

CS

мин

S1

ч 8

S2

D RG

OE

STB

стоп 8

S3

10.0

+5 В

3

8.2 к

3

30 пФ

DC

30 пФ 4 7

DC

4 7

+5 В

Рисунок 3.1 – Функциональная схема контроллера

7

Так как программа реализации конкретного режима работы светофора легко размещается в одной странице памяти программ (256 байт), в микросхеме ПЗУ зашито восемь независимых программ, выбор которых осуществляется распайкой перемычек на адресных входах A8, A9 и A10. В некоторых программах старшие две линии порта Р1 используются для управления стрелками дополнительных указателей светофора.

13

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

Листинг управляющей программы приведен в приложении А. После подачи сигнала сброса RST производится начальная загрузка регистров, с помощью которых реализуется секундная задержка, а также счетчиков секунд, минут и часов. Таймер/счетчик Т/С1 настраивается на работу в режиме 2, когда TL1 работает как 8-битный автоперезагружаемый таймер, а TH1 хранит значение, которое перезагружается в TL1 каждый раз по переполнению. Разрешаются прерывания от Т/С1 и после его запус-ка они происходят через каждые 100 машинных циклов (100 мкс при частоте кварца 12 МГц), вызывая выполнение подпрограммы обслуживания с начальным адресом 1ВН. Через 10000 прерываний, которые подсчитывают счетчики на регистрах R0 и R1, т.е. ежесекундно, выполняются команды, размещенные в 26, 27 и 28 строках листинга программы, а затем с 45 по 51. Ежесекундно реализуется инверсия бита INT0, декремент счетчика R6, проверяется значение счетчика часов R3 и устанавливается флаг пользователя F0=1 для дневного режима работы и F0=0 - для ночного.

..............

8

Сброс

Инициализация

да Значение времени нет

от 6 до 24 ч?

Программа ДЕНЬ

Дневной режим работы светофора

Программа НОЧЬ

Ночной режим

работы светофора

п/п прерывания да Кнопка нет

ЧАСЫ СТОП

Возврат нажата?

цикл

СТОП

Рисунок 4.1 – Схема алгоритма прикладной программы

14

Двоично-десятичный счетчик минут реализован на регистре R5 и аккумуляторе, аналогичный счетчик часов – на регистрах R3 и A. При включении контроллера сбрасывается счетчик минут, а в счетчик часов и на цифровые индикаторы заносится число 06. Установка реального времени производится в следующей последовательности. Сначала нажимают кнопку S1 до тех пор, пока индикаторы покажут требуемое число минут. Затем нажимают кнопку S2 и держат до тех пор, пока не высветятся нужные цифры часов. Коррекция осуществляется подачей секундных импульсов на счетчики минут и часов.

Время выполнения подпрограммы обслуживания прерываний меняется от 4 до 43 мкс. На такое время через каждые 100 мкс процессор отвлекается от выполнения основных программ DAY и NIGHT, управляющих работой светофора в дневном и ночном режиме. Необходимые управляющие сигналы последовательно записываются в порт Р1, а время их продолжения задается счетчиком на регистре R6, который ежесекундно декрементируется при обслуживании прерываний.

7 ЗАКЛЮЧЕНИЕ

В контроллере можно использовать любые микросхемы семейства МК51. Схема упрощается, если применяются микросхемы с резидентной памятью программ (К1816ВЕ51, К1830ВЕ51). В этом случае исключаются регистр и внешнее ПЗУ, а освободившиеся линии порта Р0 можно задействовать для выбора программ или постоянной индикации минут текущего времени (в пояснительную записку вложена принципиальная схема именно такого варианта реализации устройства). Можно применить кварц на 6 МГц, в два раза уменьшив число, загружаемое в регистр R0 командами, расположенными в восьмой и 23 строках программы.

П

15

риложение А

(обязательное)

ЛИСТИНГ УПРАВЛЯЮЩЕЙ ПРОГРАММЫ

1 ; Начальная установка и запуск часов в 6.00

3 0000 ORG 00H

4 0000 7B06 MOV R3,#6 ; Начальная загрузка

5 0002 8BA0 MOV P2,R3 ; счетчика часов

6 0004 7D00 MOV R5,#0 ; Начальная загрузка

7 ; счетчика минут

8 0006 7864 MOV R0,#100 ; Начальная загрузка

9 0008 7964 MOV R1,#100 ; счетчиков генератора

10 000A 7A3C MOV R2,#60 ; минутных импульсов

11 000C 758D9C MOV TH1,#156 ;

12 000F 758920 MOV TMOD,#20H ; Т/С1 в режиме 2

13 0012 75A888 MOV IE,#88H ; Разрешение

14 ; прерываний от Т/С1

15 0015 D28E SETB TR1 ; Старт таймера Т/С1

16 0017 803C SJMP DAY ; Переход к основной

17 ; программе

19 ; Подпрограмма обслуживания прерываний

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

22 001B D837 JNZ R0,EXIT ; Задержка в одну

23 001D 7864 MOV R0,#100 ; секунду

24 001F D933 DJNZ R1,EXIT

25 0021 7964 MOV R1,#100

26 0023 30B407 JNB T0,M1 ; Коррекция минут

27 0026 30B50E JNB T1,M2 ; Коррекция часов

28 0029 DA1D DJNZ R2,M5 ; Счетчик секунд

29 002B 7A3C MOV R2,#60

30 002D ED M1: MOV A,R5 ; Счетчик минут

31 002E 2401 ADD A,#1

32 0030 D4 DA A

33 0031 FD MOV R5,A

34 0032 BD600E CJNE R5,#60H,M4

35 0035 7D00 MOV R5,#0

36 0037 EB M2: MOV A,R3 ; Счетчик часов

37 0038 2401 ADD A,#1

38 003A D4 DA A

39 003B FB MOV R3,A

40 003C BB2402 CJNE R3,#24H,M3

41 003F 7B00 MOV R3,#0

42 0041 8BA0 M3: MOV P2,R3 ; +1 час

43 0043 20B402 M4: JB T0,M5

44 0046 8DA0 MOV P2,R5 ; +1 минута

45 0048 C2D5 M5: CLR F0 ; F0=0,

16

46 004A BB0600 CJNE R3,#6,$+3 ; если меньше

47 004D 4002 JC M6 ; 6 часов,

48 004F D2D5 SETB F0 ; иначе F0=1

49 0051 1E M6: DEC R6 ; -1 секунда

50 0052 B2B2 CPL INT0 ; Инверсия бита

51 0054 32 EXIT: RETI ; Возврат из п/п

52 ; Дневной режим работы светофора

53

54 0055 30D532 DAY: JNB F0,NIGHT ; Программа ДЕНЬ

55 0058 759021 MOV P1,#100001B

56 005B 7E1E MOV R6,#30

57 005D BE00FD CJNE R6,#0,$

58 0060 759000 MOV P1,#000000B

59 0063 7E01 MOV R6,#1

60 0065 BE00FD CJNE R6,#0,$

61 0068 759011 MOV P1,#010001B

62 006B 7E05 MOV R6,#5

63 006D BE00FD CJNE R6,#0,$

64 0070 75900C MOV P1,#001100B

65 0073 7E14 MOV R6,#20

66 0075 BE00FD CJNE R6,#0,$

67 0078 759000 MOV P1,#000000B

68 007B 7E01 MOV R6,#1

69 007D BE00FD CJNE R6,#0,$

70 0080 75900A MOV P1,#001010B

71 0083 7E05 MOV R6,#5

72 0085 BE00FD CJNE R6,#0,$

73 0088 80CB SJMP DAY

74

75 ; Ночной режим работы светофора

76

77 008A 20D5C8 NIGHT: JB F0,DAY ; Программа НОЧЬ

78 008D 30B30D JNB INT1,STOP ; Проверка кнопки

79 0090 20B205 JB INT0,M7

80 0093 759000 MOV P1,#000000B

81 0096 80F2 SJMP NIGHT

82 0098 759012 M7: MOV P1,#010010B

83 009B 80ED SJMP NIGHT

84 009D 75900C STOP: MOV P1,#001100B ; Программа СТОП

85 00A0 7E14 MOV R6,#20

86 00A2 BE00FD CJNE R6,#0,$

87 00A5 80E3 SJMP NIGHT

88 00A7 END

Число байт: 165 Программа "Светофор"

Контрольная сумма: 2F1E

Соседние файлы в папке Книги