Пристрій імітації роботи світлофора на мікроконтролері PIC16F84A

Пристрій імітації роботи світлофора реалізовано на мікроконтролері PIC16F84A. Схема включення мікроконтролера (МК) стандартна, в якості кварцевого резонатора використовується резонатор на 32768 Гц, який використовується в годинах.

Datasheet мікроконтролера PIC16F84A

Схема світлофора

Світлодіоди підключаються до виводів RB1..RB6 через токозніжувальні резистори 500 - 200 Ом: Замість світлодіодів можна використовувати будь-які інші лампи, але для цього потрібно на виходи мікроконтролера поставити транзисторні ключі або інші узгоджуючі пристрої (оптрон, оптропередавачі тощо).

1 світлофор
RB1 – червоний (К1)
RB2 – жовтий (Ж1)
RB3 – зелений (З1)
2 світлофор
RB4 – червоний (К2)
RB5 – жовтий (Ж2)
RB6 – зелений (З2)

Приклад складання програми для імітації роботи світлофора: Для складання програми необхідно скласти блок-схему роботи.

  1. К1 = 1 , З2 = 1
    увімкнути червоний на першому світлофорі, зелений на другому, інші вимкнені
  2. К1 = 1, З2 = 0,1,0,1,0,1,0,1,0,1
    червоний на першому світлофорі продовжує горіти, зелений на другому миготить 5 разів, інші вимкнені
  3. К1 = 1, Ж1 = 1, Ж2 = 1
    червоний на першому продовжує горіти, увімкнено жовтий на першому і другому світлофорах, інші вимкнені
  4. К2 = 1, З1 = 1
    увімкнути червоний на другому та зелений на першому світлофорах, інші вимкнені
  5. К2 = 1, З1=0,1,0,1,0,1,0,1,0,1
    червоний на другому світлофорі продовжує горіти, зелений на першому миготить 5 разів, інші вимкнені
  6. К2 = 1, Ж2 = 1, Ж1 = 1
    червоний на другому продовжує горіти, увімкнено жовтий на другому і першому світлофорах, інші вимкнені

Текст програми з коментарями на асемблері та HEX-файл (коментарі не повторюються) ви можете завантажити нижче

Трохи про програму:

  1. Увімкнення червоного на першому та зеленого на другому здійснюється за допомогою копіювання в PortB константи 01000010.
    Підпрограма Pause_1 слугує для затримки на час приблизно 10 сек стану виводів PortB.
  2. Для «миготіння» зеленого використовується підпрограма Z_1, що включає в себе дві підпрограми затримки з використанням біт-орієнтованих команд (bcf PortB,6, bsf PortB,6): 1) зелений вимкнений 2) зелений увімкнений.
    Далі все аналогічно.
Прикріплені файли:
Top