модуля для запуску двигуна. Алгоритм починає працювати, коли надходить SMS з текстом «start». Після цього перевіряються сигнали від пристроїв автомобіля, а саме від коробки передач (нейтральна), двигуна (вимкнений) і ручника (поставлений). Якщо який-небудь стан з перерахованих вище пристроїв не виповнилося, то відразу відправляється повідомлення про помилку на телефон власнику. Тільки при виконанні всіх цих умов здійснюється запуск реле двигуна.
Після цього перевіряється, запустився двигун чи ні. Якщо двигун запустився, то відразу відправляється SMS повідомлення про запуск двигуна на телефон власника. Якщо ж двигун запустити не вдалося, відбувається повторний запуск реле двигуна ще 2 рази. Якщо не вдалося запустити двигун за ці три спроби, відправляється звіт про помилку і виконання операції припиняється. Для управління GSM модулем використовуються AT-команди, представлені в таблиці 2 і таблиці 3. Повідомлення про запуск приходить на особистий стільниковий номер власника, візьмемо, наприклад, 89227157174.
Таблиця 2 - використовувані АТ-команди
АТ-командаЗначеніеAT + CMGR=1Чтеніе непрочитаних смсAT + CMGS=89227157174> Текст SMS повідомлення Відправка повідомлення на номер 89227157174
Таблиця 3 - відповіді на АТ-команди
АТ-командаЗначениеERRORОшибкаOKКоманда виконана
Нам необхідна швидкість в 19 200 біт / с для цього використовується ТС1 в режимі 1.
Далі передається АТ-команда отримання SMS «AT + CMGR=1. Після цього потрібно прийняти від GSM-терміналу повідомлення »start", яке підтверджує початок виконання операції.
Після того, як підпрограма передачі АТ-команд виконала всі дії, відбувається вихід з підпрограми, поновлюється аналіз портів.
Рис.3.2 - Підпрограма отримання SMS
3.2 Підпрограма прийому СМС
На малюнку 3.3 представлений алгоритм підпрограми прийому. Як видно з нього, ми чекаємо поки прапор переривання приймача встановиться в логічну «1», це говорить нам, що символ прийнятий. Далі зміст буфера приймача записується в акумулятор і відбувається скидання прапора приймача.
Малюнок 3.3 - Підпрограма прийому
3.3 Оброблювач переривань від ТС0
Так як один машинний такт займає 12 тимчасових тактів, на вхід таймерів лічильників будуть надходити імпульси з частотою:
=fтакт / 12=(11.0592 * 10 ^ 6) / 12=0.9216 МГц,
де fтакт=11.0592 МГц - частота процесора.
Так як таймери-лічильники налаштовані як 16-тіразрядние таймери, то максимальне значення в них одно 65535, що відповідає максимальному часу:
=65536 / (0.9216 * 10 ^ 6)=71.11 мс,
тому переривання від нього відбувається раз в 71 мс. Після запуску реле двигуна потрібно 5 секунд затримки до вимикання двигуна, отже, необхідне нам кількість переривань знаходимо як: 5/71 * 10 - 3=70. Тоесть таймер матиме 70 переривань.
Малюнок 3.4 - Алгоритм обробника переривань
4. Розробка схеми електричної принципової
В якост...