Устройство имитации работы светофора на микроконтроллере 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 , З2 = 1
    включить красный на первом светофоре, зеленый на втором, остальные отключены
  • К1 = 1, З2 = 0,1,0,1,0,1,0,1,0,1
    красный на первом светофоре продолжает гореть, зеленый на втором моргает 5 раз, остальные отключены
  • К1 = 1, Ж1 = 1, Ж2 = 1
    красный на первом продолжает гореть, включается желтый на первом и втором светофорах, остальные отключены
  • К2 = 1, З1 = 1
    включить красный на втором и зеленый на первом светофорах, остальные отключены
  • К2 = 1, З1=0,1,0,1,0,1,0,1,0,1
    красный на втором светофоре продолжает гореть, зеленый на первом моргает 5 раз, остальные отключены
  • К2 = 1, Ж2 = 1, Ж1 = 1
    красный на втором продолжает гореть, включается желтый на втором и первом светофорах, остальные отключены
  • Текст программы с комментариями на ассемблере и HEX-файл (комментарии не повторяются) вы можете скачать ниже

    Немного по программе:

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

    Добавить комментарий

    Ваш адрес email не будет опубликован.