Портал для радиолюбителей
   Устройство имитации работы светофора на микроконтроллере PIC16F84A
    Главная -> Статьи -> Устройства на микроконтроллерах -> Устройство имитации работы светофора на микроконтроллере PIC16F84A


<< Назад в раздел   Распечатать Дата добавления: 2007-10-25 | Просмотров: 14148

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

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

Светодиоды подключаются к выводам 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) зеленый включен.
    Далее все аналогично.


Добавил:  Павел (Admin)  
Автор:  А. Каплий, Украина, г. Скадовск. т. +380666770057 e-mail: [email protected] 

Вас может заинтересовать:

  1. Термометр на PIC
  2. Программируемый термостабилизатор
  3. Программирование МК AVR в ОС Ubuntu
  4. Сопряжение с компьютером цифрового мультиметра серии 830
  5. LCD-термометр


    © PavKo, 2007-2018   Обратная связь   Ссылки   Яндекс.Метрика