Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Zapiska_Garmatyuk.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2 Мб
Скачать
☆

4. Програмний розділ

4.1. Розробка алгоритму роботи і коду програми

Алгоритмом називається директива, яка визначає порядок виконання дій (операцій) над даними з метою отримання шуканого результату.

Процес підготовки розв’язку задачі на ЕОМ називається алгоритмізацією.

Розробка алгоритму складається з декількох етапів:

      1. Вивчення завдання даного для алгоритму задачі. Часто завдання представлене в описовій формі з використанням формул, таблиць, графіків і т. і.. Необхідно глибоко вивчити процес, що алгоритмізується, виявити закономірності явищ, що його складають. Визначається вхідна вихідна інформація, задаються області зміни аргументів, точність обчислень. Вхідна інформація повинна бути повною.

      2. Виконується математична формалізація описової умови задачі. Її мета – побудувати масиви арифметичних і логічних операторів. До масиву логічних операторів входять всі умови що відображають закономірності процесу який алгоритмізуеться.

      3. Будується схема алгоритму.

Граф схема роботи програми керування контролером наведена на рис. 4.1.

Робота пристрою починається з ініціювання системи. Система переходить в робочий стан.

Рис. 4.1. Граф схема алгоритму програми керування

Init: mov p1,#0; початковий стан двигунів

MOV P2,#0; очистка індикаторів

MOV P3,#0

MOV TMOD,#11h: програмування таймеру

Число, яке записується в таймер характеризує швидкість повороту камери.

Наступним кроком перевіряється рівень освітлення і якщо рівень недостатній, то включити додаткове освітлення:

STRT: JNB P0.4,VP

CLR P1.4 ;відключення підсвітки

JMP STRT

Vp: setb p1.4; включення підсвітки

JMP STRT

Коли переповнюється таймер, по черзі опитуються кнопки. І якщо хоч одна натиснута, то відбувається перехід на відповідну мітку для виконання дії:

P_T0: JNB P0.0,M_D1; кн "вліво"?

JNB P0.1,B_D1; кн "вправо"?

JNB P0.1,B_D2; кн "вверх"?

JNB P0.1,М_D2; кн "вниз"?

RETI

Оскільки апаратно не передбачено зупинку двигунів, то програмно повинна перевірятись камери при повороті:

M_D1: MOV A, DV1 ;можна декрементувати?

ANL A,#011111111B

XRL A,#011111111B

JZ $+2

DEC DV1 ;зменшення DV1

B_D1: MOV A, DV1

ANL A,#01111111B ;можна інкрементувати?

XPL A,#01111111B

JZ $+2

Inc dv1 ;збільшення dv1

B_D2: MOV A, DV2 ;можна інкрементувати?

ANL A,#01111111B

XPL A,#01111111B

JZ $+2

Inc dv2 ;збільшення dv2

M_D2: MOV A, DV2 ;можна декрементувати?

ANL A,#011111111B

XRL A,#011111111B

JZ $+2

DEC DV2 ;зменшення DV2

Індикація динамічна і включає в себе знак положення камери і два розряди, які відображають відносне відхилення. Індикатор семисегментний дворозрядний.

KD: MOV A,DV1 ;виокремлення молодшого розряду

ANL A,#000000001B ;DV1

MOV R1,A

MOV A,DV2 ;виокремлення молодшого розряду

ANL A,#000000001B ;DV2

RL A ;зсув вліво на 2 позиції

RL A

ORL A,R1 ;конкатенація

MOV P1,A ;видача на порт

; індикація положення камери

MOV A, DV1 ;індикація положення

ANL A,#01111111B ;DV1

MOV P2,A

MOV C,DV1.7 ;індикація знаку DV1

MOV P1.6,C

MOV A,DV2 ;індикація положення

ANL A,01111111B ;DV2

MOV P3,A

MOV C,DV2.7 ;індикація знаку DV2

MOV P1.7,C

Блок-схема програми показана на рис.4.1.

Лістінг програми наводиться в додатках.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]