--PAGE_BREAK--
5 Разработка управляющей программы
5.1 Схема алгоритма
Схема алгоритма работы управляющей программы изображена на рисунке 5.1. После подачи сигнала сброса SR производится настройка портов P1 и P2 на вывод информации, осуществляется загрузка регистров R1-R0 первого банка регистров общего назначения микроконтроллера (РОН) инверсным двоично-десятичным числом максимально допустимой скорости, набранным на портах P6,P5,P4. После сброса на линии P7.0 (фотосъёмка) окажется неактивный единичный уровень.
Рисунок 5.1 — Схема алгоритма управляющей программы
Затем микроконтроллер переходит в состояние ожидания импульса на своём входе T0 (см. рисунок 5.1). После его появления осуществляется подготовка РОНов используемого нулевого банка. Далее, дождавшись нулевого уровня импульса, микроконтроллер осуществляет измерение Fдоп, то есть определение числа импульсов “генератора” тактовых импульсов с фиксированным периодом следования. ”Генератор” тактов основан на использовании временной задержки на время t = 0.27 мс. Подсчёт количества таких импульсов проводится в течении всей длительности нулевого уровня T0. Далее, в соответствии с подсчитанным числом N определяется скорость, при этом деление выполняется методом подсчёта количества сложений числа N до превышения суммой (S) числа . Затем найденная скорость выводится на индикаторы.
Вычисленная на предыдущем этапе работы программы скорость сравнивается с максимально допустимой скоростью. В случае превышения скорости микроконтроллер ждёт появления на входе T1 импульса (нулевого уровня при срабатывании фотодатчика) и коммутирует его на линию P7.0, при этом производится фотосъёмка автомашины.
Если скорость не превышена (или после фотосъёмки), работа программы повторяется с момента ожидания микроконтроллером импульсов на входе T0.
5.2 Пояснения к программе
Листинг управляющей программы приведён в приложении А. Программа организована в виде нескольких подпрограмм как законченных функциональных модулей, это существенно улучшает восприятие текста программы при чтении. Основная программа осуществляет инициализацию, подготовку РОНов, вывод скорости в порты P4,P5,P6 для индикации, сравнение найденной скорости с максимальной путём побайтного сложения значения скорости с инверсным значением максимальной скорости и отслеживания признака переноса. Подпрограмма N осуществляет подсчёт числа N по нулевому уровню. Подпрограмма Y подсчитывает по заданному N число Y на протяжении единичного уровня импульса. Подпрограмме PHOTO передаётся управление, если полученная скорость больше максимально допустимой. Все вычисления производятся с использованием двоично-десятичного представления N(R1,R0) и Y(R6,R5). При этом переменные N и Y имеют двухбайтовый формат, то есть хранятся в двух РОНах. Накопитель S, использующийся при выполнении операции деления, имеет трёхбайтовый формат и хранится в РОНах R4,R3,R2. Сложение числа N в накопителе идёт до тех пор, пока в пятом бите старшего регистра S (R4) не появится 1, что соответствует числу (если все остальные биты — 0).
Определим значение константы Z, которая загружается в регистр R7 для реализации фиксированной временной задержки t = 0.27 мс: мс,
2.5 мкс — время одного машинного цикла при подключении кварца частоты 6 МГц;
14 — число машинных циклов выполнения команд подпрограммы N, которые надо учесть наряду с основной задержкой в счётчике R7.
Отсюда Z=47=2Fh.
Отметим, что для реализации вычислений задействованы десять РОНов, аккумулятор и одна ячейка стека микроконтроллера. Основные преобразования реализуются в аккумуляторе с использованием команд сложения и десятичной коррекции. Многобайтовые переменные формируются путём последовательного преобразования отдельных байтов.
6 Заключение
Микропроцессоры и микропроцессорные системы являются основой построения электронных устройств с заданными функциональными свойствами. Решающими факторами при проектировании таких устройств являются удобство практической эксплуатации и новый набор — качественных характеристик (более высокое быстродействие, точность, новые функциональные возможности) по сравнению с домикропроцессорным вариантом реализации подобного устройства.
Реализация электронного устройства в данном курсовом проекте — цифрового радара ГИБДД — на однокристальном микроконтроллере серии МК48 К1830ВЕ35 оказалась самым экономичным вариантом.
Такого типа радары широко используются органами ГАИ для измерения и контроля скорости движущихся автомобилей. Полезной возможностью является выбор варианта исполнения цифрового радара. В передвижном варианте необходимыми частями устройства являются РЛУ и микропроцессорная часть. В стационарном варианте в комплект, кроме того, входят фотодатчик и фотосъёмочная аппаратура. В таком варианте изделие функционирует автономно и не требует постоянного вмешательства человека.
Данный курсовой проект позволил сделать серьёзные упражнения в применении знаний, полученных в процессе изучения дисциплины “Микропроцессорные устройства и системы”.
Список литературы
1 ОС ТАСУР 6.1-97. Работы студенческие учебные и выпускные квалификационные. Общие требования и правила оформления.
2 Шарапов А. В. Микропроцессорные устройства и системы. Методические указания к выполнению курсового проекта. — Томск: ТУСУР, 1998. — 39 с.
3 Шарапов А. В. Примеры решения схемотехнических задач. Учебное пособие. — Томск: ТИАСУР, 1994. — 141 с.
4 Шарапов А. В. Цифровая и микропроцессорная техника: Учебное пособие. 2-е изд., перер. и доп. — Томск: Изд-во Том. Ун-та, 1997. — 108 с.
5 Токхайм Р. Микропроцессоры: Курс и упражнения/ Пер. С англ., под ред. В. Н. Грасевича. — М.: Энергоатомиздат, 1988. — 336 с.
6 Белоцерковский Г. Б. Основы радиолокации и радиолокационные устройства. М.: Сов. Радио, 1975. — 336 с.
Приложение А
Листинг управляющей программы
Основная программа:
1 0000 99 00 MAIN: ANL P1,#00H ; üПогасить индикаторы и
2 0002 9A 0F ANL P2,#0FH ; þподготовить порты к выводу.
3 0004 D5 SEL RB1 ; ü
4 0005 0E MOVD A,P6 ; ½
5 0006 03 F0 ADD A,#0F0H ; ½
6 0008 A9 MOV R1,A ; ½Считать в регистры R0-R1
7 0009 0D MOVD A,P5 ; ýпервого банка РОНов инверсное
8 000A 47 SWAP A ; ½двоично-десятичное значение
9 000B A8 MOV R0,A ; ½максимальной скорости.
10 000C 0C MOVD A,P4 ; ½
11 000D 68 ADD A,R0 ; ½
12 000E A8 MOV R0,A ; ½
13 000F C5 SEL RB0; þ
14 0010 26 10 M1: JNT0 $ ; Ожидание появления импульса.
15 0012 27 CLR A ; ü
16 0013 A8 MOV R0,A ; ú
17 0014 A9 MOV R1,A ; úПодготовка регистров
18 0015 AA MOV R2,A ; ý к вычислениям.
19 0016 AB MOV R3,A ; ú
20 0017 AC MOV R4,A ; ú
21 0018 AE MOV R6,A ; ú
22 0019 BD 05 MOV R5,#05H ; þ
23 001B 36 1B JT0 $ ; Ожидание нулевого уровня T0.
24 001D 14 42 CALL N ; Вычисление числа N=(R1,R0).
25 001F 14 53 CALL Y ; Вычисление Y»10×Vа=(R6,R5).
26 0021 FD MOV A,R5 ; ü
27 0022 47 SWAP A ; ýПоместить в R5 младшую
28 0023 53 0F ANL A,#0FH ; úцифру значения скорости.
29 0025 AD MOV R5,A ; þ
30 0026 FE MOV A,R6 ; ü
31 0027 47 SWAP A ; úВ R5 две младшие цифры
32 0028 53 F0 ANL A,#0F0H ; ýзначения скорости.
33 002A 6D ADD A,R5 ; þ
34 002B AD MOV R5,A ; Вывести младшие цифры
35 002C 39 OUTL P1,A ; скорости на индикаторы.
36 002D FE MOV A,R6 ; üВыделить в старшем полубайте
37 002E 53 F0 ANL A,#0F0H ; þR6 старшую цифру скорости.
38 0030 3A OUTL P2,A; Старшую цифру на индикатор.
39 0031 47 SWAP A ; üВ R6 старшая цифра
40 0032 AE MOV R6,A ; þзначения скорости.
41 0033 D5 SEL RB1 ; üСравнить старшие цифры
42 0034 69 ADD A,R1 ; ýVа и Vа.max и перейти на M0,
43 0035 C5 SEL RB0 ; úесли Vа>Vа.max.
44 0036 F6 3E JC M0 ; þ
45 0038 FD MOV A,R5 ; ü
46 0039 D5 SEL RB1 ; ú Сравнить младшие цифры47 003A 68 ADD A,R0 ; ý Vа и Vа.max и перейти на N0,
48 003B C5 SEL RB0 ; ú если Vа
49 003C E6 40 JNC N0 ; þ
50 003E 14 6F M0: CALL PHOTO ; Фотосъёмка.
51 0040 04 10 N0: JMP M1 ; Повторить основную программу.
Подпрограмма измерения Tдоп(вычисления N):
52 0042 28 N: XCH A,R0 ; ü
53 0043 03 01 ADD A,#01H ; ú
54 0045 57 DA A ; ú
55 0046 28 XCH A,R0 ; ýИнкрементирование накопителя
56 0047 29 XCH A,R1 ; úN=(R1,R0).
57 0048 13 00 ADDC A,#00H ; ú
58 004A 57 DA A ; ú
59 004B 29 XCH A,R1 ; þ
60 004C BF 2F MOV R7,#2FH ; üВременная задержка 0.17 мс.
61 004E EF 4E DJNZ R7,$; þ
62 0050 26 42 JNT0 N ; Пока на T0 нулевой уровень.
63 0052 83 RET ; Выход из подпрограммы.
Подпрограмма вычисления Y»10×Vа=(R6,R5).
64 0053 2A Y: XCH A,R2 ; ü
65 0054 68 ADD A,R0 ; ú
66 0055 57 DA A ; ú
67 0056 2A XCH A,R2 ; úФормирование S в двоично-
68 0057 2B XCH A,R3 ; ýдесятичном накопителе
69 0058 79 ADDC A,R1 ; ú(R4,R3,R2).
70 0059 57 DA A ; ú
71 005A 2B XCH A,R3 ; ú
72 005B 2C XCH A,R4 ; ú
73 005C 13 00 ADDC A,#00H ; ú
74 005E 57 DA A ; ú
75 005F B2 6E JB5 M2 ; úЗакончить сложение N c S,
76 0061 2C XCH A,R4 ; þесли S>=200000.
77 0062 2D XCH A,R5 ; ü
78 0063 03 01 ADD A,#01H ; ú
79 0065 57 DA A ; ú
80 0066 2D XCH A,R5 ; úФормирование Y в двоично-
81 0067 2E XCH A,R6 ; ýдесятичном накопителе
82 0068 13 00 ADDC A,#00H ; ú(R6,R5)
83 006A 57 DA A ; ú
84 006B 2E XCH A,R6 ; þ
85 006C 04 53 JMP Y ; Продолжить вычисление Y.
86 006E 83 M2: RET ; Выход из подпрограммы.
Подпрограмма управления фотосъёмкой:
87 006F 56 6F PHOTO: JT1 $ ; Ожидание импульса фотодатчика.
88 0071 23 FE MOV A,#FEH ; üВывод 0 в линию P7.0.
89 0073 9F ANLD P7,A ; þ
90 0074 46 74 JNT1 $ ; Ожидание конца импульса.
91 0076 23 01 MOV A,#01H ; üВывод 1 в линию P7.0.
92 0078 8F ORLD P7,A ; þ
93 0079 83 RET ; Выход из подпрограммы.
Приложение Б
Карта прошивки памяти программ
0: 1: 2: 3: 4: 5: 6: 7: 8: 9: A: B: C: D: E: F:
0000: 99 00 9A 0F D5 0E 03 F0 A9 0D 47 A8 0C 68 A8 C5
0010: 26 10 27 A8 A9 AA AB AC AE BD 05 36 1B 14 42 14
0020: 53 FD 47 53 0F AD FE 47 53 F0 6D AD 39 FE 53 F0
0030: 3A 47 AE D5 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 EF 4E
0050: 26 42 83 2A 68 57 2A 2B 79 57 2B 2C 13 00 57 B2
продолжение
--PAGE_BREAK--