48706 (Разработка цифрового спидометра для ГИБДД), страница 2
Описание файла
Документ из архива "Разработка цифрового спидометра для ГИБДД", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "48706"
Текст 2 страницы из документа "48706"
На вход микроконтроллера T0 поступают импульсы с уровнями ТТЛ с частотой Доплера. Для согласования сигнала с приёмного устройства радиолокационного прибора со входом T0 микроконтроллера используется цепочка, состоящая из триггера Шмита DD1 и счётного триггера DD2. Амплитуда напряжения синусоидальной формы с частотой Доплера на выходе усилителя приёмного устройства радиолокационного прибора достигает уровня, достаточного для срабатывания триггера Шмита. Счётный триггер формирует сигнал на тестируемом входе микроконтроллера.
-
Обоснование алгоритма работы устройства
Так как измерение скорости основано на эффекте Доплера, необходимо связать доплеровский сдвиг частоты отражённого сигнала со скоростью автомобиля (в м/с):
для перевода скорости в км/ч умножим её на 3.6:
(1)
Несущие частоты излучателей f1 и f2 выбираем равными 200 МГц и 100 МГц соответственно. Подставив в выражение (1) значение скорости света м/с и несущие частоты f1 и f2, получим: . Частоту Доплера будем измерять методом подсчёта числа импульсов N генератора тактовых импульсов с периодом следования :
таким образом, искомая скорость автомобиля в км/ч:
Выбираем = 0.27 мс, тогда . Для работы с целыми числами сначала вычислим , а затем отбросим младшую цифру, при этом добавлением 5 производится округление.
Для скорости автомобиля от 11 до 216 км/ч (3 ... 60 м/с), число N будет находиться в диапазоне от 1851 до 92.
Возвращаясь к функциональной схеме, нулевой уровень будем использовать для измерения частоты Доплера Fд, а при единичном - будем производить вычисление скорости Va и вывод её значения на индикаторы. Далее нужно производить контроль измеренной скорости автомобиля и передавать управление фотосъёмочной аппаратуре, если водитель автомобиля нарушил правила дорожного движения, превысив скорость. При этом фотоснимок будет сделан в тот момент, когда фотодатчик сформирует сигнал на входе T1. Активным является нулевой его уровень, коммутируемый на линию P7.0 для срабатывания фотоаппарата.
-
Разработка управляющей программы
-
Схема алгоритма
Схема алгоритма работы управляющей программы изображена на рисунке 5.1. После подачи сигнала сброса SR производится настройка портов P1 и P2 на вывод информации, осуществляется загрузка регистров R1-R0 первого банка регистров общего назначения микроконтроллера (РОН) инверсным двоично-десятичным числом максимально допустимой скорости, набранным на портах P6,P5,P4. После сброса на линии P7.0 (фотосъёмка) окажется неактивный единичный уровень.
Рисунок 5.1 - Схема алгоритма управляющей программы
Затем микроконтроллер переходит в состояние ожидания импульса на своём входе T0 (см. рисунок 5.1). После его появления осуществляется подготовка РОНов используемого нулевого банка. Далее, дождавшись нулевого уровня импульса, микроконтроллер осуществляет измерение Fдоп , то есть определение числа импульсов “генератора” тактовых импульсов с фиксированным периодом следования. ”Генератор” тактов основан на использовании временной задержки на время = 0.27 мс. Подсчёт количества таких импульсов проводится в течении всей длительности нулевого уровня T0. Далее, в соответствии с подсчитанным числом N определяется скорость, при этом деление выполняется методом подсчёта количества сложений числа N до превышения суммой (S) числа . Затем найденная скорость выводится на индикаторы.
Вычисленная на предыдущем этапе работы программы скорость сравнивается с максимально допустимой скоростью. В случае превышения скорости микроконтроллер ждёт появления на входе T1 импульса (нулевого уровня при срабатывании фотодатчика) и коммутирует его на линию P7.0, при этом производится фотосъёмка автомашины.
Если скорость не превышена (или после фотосъёмки), работа программы повторяется с момента ожидания микроконтроллером импульсов на входе T0.
-
Пояснения к программе
Листинг управляющей программы приведён в приложении А. Программа организована в виде нескольких подпрограмм как законченных функциональных модулей, это существенно улучшает восприятие текста программы при чтении. Основная программа осуществляет инициализацию, подготовку РОНов, вывод скорости в порты 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 для реализации фиксированной временной задержки = 0.27 мс: мс,
2.5 мкс - время одного машинного цикла при подключении кварца частоты 6 МГц;
14 - число машинных циклов выполнения команд подпрограммы N, которые надо учесть наряду с основной задержкой в счётчике R7.
Отсюда Z=47=2Fh.
Отметим, что для реализации вычислений задействованы десять РОНов, аккумулятор и одна ячейка стека микроконтроллера. Основные преобразования реализуются в аккумуляторе с использованием команд сложения и десятичной коррекции. Многобайтовые переменные формируются путём последовательного преобразования отдельных байтов.
-
Заключение
Микропроцессоры и микропроцессорные системы являются основой построения электронных устройств с заданными функциональными свойствами. Решающими факторами при проектировании таких устройств являются удобство практической эксплуатации и новый набор - качественных характеристик (более высокое быстродействие, точность, новые функциональные возможности) по сравнению с домикропроцессорным вариантом реализации подобного устройства.
Реализация электронного устройства в данном курсовом проекте - цифрового радара ГИБДД - на однокристальном микроконтроллере серии МК48 К1830ВЕ35 оказалась самым экономичным вариантом.
Такого типа радары широко используются органами ГАИ для измерения и контроля скорости движущихся автомобилей. Полезной возможностью является выбор варианта исполнения цифрового радара. В передвижном варианте необходимыми частями устройства являются РЛУ и микропроцессорная часть. В стационарном варианте в комплект, кроме того, входят фотодатчик и фотосъёмочная аппаратура. В таком варианте изделие функционирует автономно и не требует постоянного вмешательства человека.
Данный курсовой проект позволил сделать серьёзные упражнения в применении знаний, полученных в процессе изучения дисциплины “Микропроцессорные устройства и системы”.
Список литературы
-
ОС ТАСУР 6.1-97. Работы студенческие учебные и выпускные квалификационные. Общие требования и правила оформления.
-
Шарапов А. В. Микропроцессорные устройства и системы. Методические указания к выполнению курсового проекта. - Томск: ТУСУР, 1998. - 39 с.
-
Шарапов А. В. Примеры решения схемотехнических задач. Учебное пособие. - Томск: ТИАСУР, 1994. - 141 с.
-
Шарапов А. В. Цифровая и микропроцессорная техника: Учебное пособие. 2-е изд., перер. и доп. - Томск: Изд-во Том. Ун-та, 1997. - 108 с.
-
Токхайм Р. Микропроцессоры: Курс и упражнения/ Пер. С англ., под ред. В. Н. Грасевича. - М.: Энергоатомиздат, 1988. - 336 с.
-
Белоцерковский Г. Б. Основы радиолокации и радиолокационные устройства. М.: Сов. Радио, 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 ; Вычисление Y10Vа=(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 ; Выход из подпрограммы. Подпрограмма вычисления Y10Vа=(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 ; Выход из подпрограммы.