ого джерелом світла, а також його конструкція.
Принципова схема вийшла досить простий, але в теж час функціональної за рахунок використання в ній мікроконтролера AT89C4051 і драйвера двигунів L293D, що також значно спростило схему. У схему входять недорогі і поширені компоненти, це спростить процес її реалізації.
Програма для мікроконтролера має простий алгоритм роботи. За рахунок такої простоти вона не дозволить роботу збитися в невизначених ситуаціях, наприклад якщо раптом буде декілька джерел світла замість одного.
Робота можна адаптувати під різні умови, тому мікроконтролер можна перепрограмувати під нові алгоритми управління, а чутливість светодатчіков можна регулювати, і все це без внесення змін в його конструкцію і принципову схему.
Список літератури
1. В.В. Сташін, А.В. Урусов, О.Ф. Мологонцева Проектування цифрових пристроїв на однокристальних мікроконтролерах.- М .: видавництво «Вища школа», 1990. - 224 с.
. Седінін В.І., Мікушіних А.В. Програмування мікропроцесорних систем на мові ASM - 51.- М .: видавництво «Радіо і зв'язок», 2003. - 331 с
. Фрунзе А.В. Мікроконтролери? Це ж просто.- М: ТОВ «ВД ським», 2002. - 336 с.
. Бродін В.Б., Калінін А.В. Системи на мікроконтролерах і БІС програмованої логіки.- М: видавництво «ЕКОМ», 2002. - 400 с.
Додаток 1. Текст програми
0h
jmp begin
org 0Bh: A, # 0 P1, A; стояти на місці
; команди управління двигунами
mov R0, # 00000000b; обидва колеса не обертаються
mov R1, # 01010000b; обидва колеса обертаються вперед
mov R2, # 01000000b; ліве колесо обертається вперед, праве варто
mov R3, # 00010000b; праве колесо обертається вперед, ліве варто
mov R4, # 00110000b; праве вперед, ліве назад
mov R5, # 11000000b; ліве вперед, праве назад
START:; початок циклу
jnb P3.0, m1; якщо з VT1 немає сигналу, то перехід
jnb P3.1 m2; якщо з VT2 немає сигналу, то перехід
mov A, R1; якщо сигнал з VT1 і VT2, то
mov P1, A; рух вперед
jmp START
m1:
jnb P3.1, m3; якщо з VT2 немає сигналу, то перехід
mov A, R2
mov P1, A; поворот направо
jmp START: A, R3 P1, A; поворот наліво
jmp START
m3:
jb P3.2, m4; якщо є сигнал з VT3, то перехід
jb P3.3, m4; якщо є сигнал з VT4, то перехід
jb P3.4, m5; якщо є сигнал з VT5, то перехід
jb P3.5, m5; якщо є сигнал з VT6, то перехід
mov A, R0; якщо немає сигналів ні з одного датчика, то
mov P1, A; стоятьSTART: A, R4P1, A; розворот влевоSTART: A, R5P1, A; розворот вправоSTART
Додаток 2. Лістинг програми
MACRO ASSEMBLER ROBOTMK 05/30 /; 4 PAGE 15.0 (038-N) MCS - 51 MACRO ASSEMBLER, V2.3MODULE PLACED IN C: SHELL ROBOTMK.OBJINVOKED BY: C: SHELL ASM51.EXE C: SHELL ROBOTMK.ASMOBJ LINE SOURCE
1 org 0h
02000B 2 jmp begin
B 3 org 0Bh
begin:
7 400 11 mov A, # 0
B F590 12 mov P1, A
D +7800 13 mov R0, # 00000000b
F +7950 14 mov R1, # 01010000b
7A40 15 mov R2, # 01000000b
7B10 16 mov R3, # 00010000b
7CC0 17 mov R4, # 11000000b
7D30 18 mov R5, # 00110000b
START:
30B008 21 jnb P3.0, m1
C 30B10D 22 jnb P3.1, m2
F E9 23 mov A, R1
F590 24 mov P1, A
80F5 25 jmp START
m1:
30B10A 28 jnb P3.1, m3
EA 29 mov A, R2
F590 30 mov P1, A
A 80ED 31 jmp START
m2:
C EB 34 mov A, R3
D F590 35 mov P1, A
F 80E8 36 jmp START
m3:
...