Электронные часы на микропроцессоре PIC16F84A

XXI Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Электронные часы на микропроцессоре PIC16F84A

Деханд А.А. 1
1МОУ СОШ 10 г. Аткарск а Саратовской области
Радышевская К.В. 1Ломовцев Д.Н. 2
1МОУ СОШ 10 г.Аткарска Саратовской области
2ИП Ломовцев Д.Н.
Автор работы награжден дипломом победителя III степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Техническое творчество и изобретательность играют важную роль в развитии технического прогресса и инноваций в различных областях. Это процесс создания новых устройств, систем и технологий, которые решают реальные проблемы и улучшают жизнь людей. Вступая в мир технического творчества и изобретательства, мы открываем для себя множество возможностей для проявления креативности и находчивости. Здесь нет границ для мыслей и фантазии, идеи, которые кажутся невозможными сегодня, могут стать реальностью завтра.

Мы можем изобретать новые устройства, улучшать существующие технологии. Техническое творчество и изобретательство – это не только интересное хобби, но и серьезная профессия, которая предлагает множество возможностей для развития и успеха. Работа в области технического творчества и изобретательства требует навыков анализа и технического мышления, умения преодолевать появляющиеся трудности.

Так как у моего папы основной род занятий – разработка микроэлектронных устройств на заказ, он привил мне интерес к этому и я всегда с огромным удовольствием смотрела, как он работает. Он объяснял мне принцип своей работы и ее нюансы. И именно с его помощью у меня получилось воплотить в жизнь такую маленькую, но очень необходимую вещь в нашем обиходе – электронные часы на микропроцессоре PIC16F84A от компании Microchip Technology.

Основа моих часов - микроконтроллер PIC16F84A, устройство работает на максимальной тактовой частоте 20Hz. Напряжение питания контроллера от 4V до 5.5V. Микроконтроллер содержит Flash-память размером 1 Kbyt, объем оперативной памяти – 0,068 Kbyte, объем памяти данных EERPOM 0,064 Kbyte. Кроме него часы содержат несколько простых и дешевых элементов, таких, как кварцевый резонатор 4МГц, светодиодный семисегментный индикатор, 8 резисторов номиналом 360 Ом, 4 резистора номиналом 1 кОм, 1 резистор 10 кОм, 2 конденсатора 22 pF, 1 конденсатор 100 nF, 1 электролитический конденсатор 100 mF, 1 кнопка, резистор номиналом 1,6 кОм, контроллер заряда аккумулятора LTC4054, разъем Type-C. Литионный аккумулятор 3,7 В, 1,4 А/h. Информация выводится на 4-х разрядный (часовой) светодиодный индикатор. Схема питается от зарядного устройства сотового телефона через разъем Type-C, а также имеет резервное питание. Схема очень простая, прост и алгоритм их работы. Кнопка служит для коррекции времени – она одна как для часов, так и минут. Часы имеют 24-часовой формат отображения времени. Точность хода часов целиком зависит от частоты кварцевого резонатора. Но даже без специальных подборок кварцев и конденсаторов в тактовом генераторе время отображается весьма точно.

Часы собраны на 2-х печатных платах, пристыкованных одна к одной под углом 90 градусов. На первой плате размещен индикатор, а все остальные детали - на второй. Элемент резервного питания – литий-ионнный аккумулятор. Питание осуществляется через зарядное устройство, емкости для стабильной работы хватает на 6 суток. Кнопка управления вынесена в низ корпуса для исключения случайных нажатий. Краткосрочное нажатие кнопки изменяет минуты, длительное нажатие, более секунды изменяет часы.

Принципиальная электрическая схема

На основе принципиальной электросхемы была произведена подготовка печатных плат (трассировка).

Какие инструменты нам для этого нужны? Конечно, лазерный принтер! Распечатываем на принтере в Sprint Layout нашу монтажную схему в зеркальном отражении, желательно на глянцевой бумаге ( это важный нюанс технологии изготовления) и переносим ее на фольгированный стеклотекстолит с помощью утюга (метод ЛУТ). Затем аккуратно очищаем от бумаги стеклотекстолит с помощью щетки и воды. Бумага смывается, а краска остается (в нашем случае это -будущие дорожки). Далее берем хлорное железо и травим нашу плату. Дальше сверлим отверстия сверлом 0,6 мм. Затем устанавливаем на платы нужные детали, спаиваем их между собой. Теперь нужно прошить микроконтроллер.

Прошивку микроконтроллера пишем на языке Jallv2:

include 16f84a

pragma target clock 4_000_000

pragma target OSC HS

pragma target WDT DISABLED

enable_digital_io()

alias lda is pin_B6

alias ldb is pin_B7

alias ldc is pin_B3

alias ldd is pin_B1

alias lde is pin_B4

alias ldf is pin_B5

alias ldg is pin_B0

alias ldh is pin_B2

alias dig4 is pin_A3

alias dig3 is pin_A0

alias dig2 is pin_A2

alias dig1 is pin_A1

alias inp0 is pin_A4

pin_B0_direction = output

pin_B1_direction = output

pin_B2_direction = output

pin_B3_direction = output

pin_B4_direction = output

pin_B5_direction = output

pin_B6_direction = output

pin_B7_direction = output

pin_A0_direction = output

pin_A1_direction = output

pin_A2_direction = output

pin_A3_direction = output

pin_A4_direction = input

var bit dpoint

var byte inmy

var dword inmys

var byte dign

var byte digmilsec

var byte digminsec

var byte digsec

var byte digmin

var byte dighor

var byte hor1

var byte hor2

var byte min1

var byte min2

procedure dig_led( byte in x ) is

if x == 0 then

lda = on

ldb = on

ldc = on

ldd = on

lde = on

ldf = on

ldg = off

end if

if x == 1 then

lda = off

ldb = on

ldc = on

ldd = off

lde = off

ldf = off

ldg = off

end if

if x == 2 then

lda = on

ldb = on

ldc = off

ldd = on

lde = on

ldf = off

ldg = on

end if

if x == 3 then

lda = on

ldb = on

ldc = on

ldd = on

lde = off

ldf = off

ldg = on

end if

if x == 4 then

lda = off

ldb = on

ldc = on

ldd = off

lde = off

ldf = on

ldg = on

end if

if x == 5 then

lda = on

ldb = off

ldc = on

ldd = on

lde = off

ldf = on

ldg = on

end if

if x == 6 then

lda = on

ldb = off

ldc = on

ldd = on

lde = on

ldf = on

ldg = on

end if

if x == 7 then

lda = on

ldb = on

ldc = on

ldd = off

lde = off

ldf = off

ldg = off

end if

if x == 8 then

lda = on

ldb = on

ldc = on

ldd = on

lde = on

ldf = on

ldg = on

end if

if x == 9 then

lda = on

ldb = on

ldc = on

ldd = on

lde = off

ldf = on

ldg = on

end if

end procedure

procedure t_led( byte in m, byte in y ) is

CASE y OF

1: dig4 = off

2: dig1 = off

3: dig2 = off

4: dig3 = off

END CASE

dig_led(m)

CASE y OF

1: dig1 = on

2: dig2 = on

3: dig3 = on

4: dig4 = on

END CASE

end procedure

dign = 1

digsec = 0

digmin = 0

dighor = 0

digminsec = 0

digmilsec = 0

ldh = off

dpoint = 0

inmy = 0

inmys = 0

forever loop

CASE dign OF

1: t_led(hor1, 1)

2: t_led(hor2, 2)

3: t_led(min1, 3)

4: t_led(min2, 4)

END CASE

if inp0 == 0 then

if inmy == 0 then

inmy = 1

end if

inmys = inmys + 1

else

if inmy == 1 then

if inmys >= 1000 then

dighor = dighor + 1

if dighor == 24 then

dighor = 0

end if

else

digmin = digmin + 1

if digmin == 60 then

digmin = 0

end if

end if

inmy = 0

inmys = 0

end if

end if

if inmys >= 2500 then

inmys = 2500

end if

if dign == 2 then

ldh = dpoint

else

ldh = off

end if

dign = dign + 1

if dign >= 5 then

dign = 1

end if

digmilsec = digmilsec + 1

if digmilsec == 10 then

digminsec = digminsec + 1

digmilsec = 0

end if

if digminsec == 235 then

digminsec = 0

digsec = digsec + 1

dpoint = !dpoint

if digsec == 60 then

digsec = 0

digmin = digmin + 1

if digmin == 60 then

digmin = 0

dighor = dighor + 1

if dighor == 24 then

dighor = 0

end if

end if

end if

end if

hor1 = dighor / 10

hor2 = dighor % 10

min1 = digmin / 10

min2 = digmin % 10

end loop

Прошиваем наш микроконтроллер с помощью программатора Pickit2.

Основной механизм часов у нас уже готов. Но мы же не можем пользоваться полуготовым устройством? Конечно же, нет. Нужно доводить наше изделие «до ума». Нам нужен корпус. Хорошо, что у папы на работе есть свой 3D принтер. Рисуем в программе Freecad нужный нам корпус и печатаем его на 3D принтере.

Далее устанавливаем платы в корпус и наши часы готовы!

Сборка электронных часов может быть рассмотрена как разновидность технического творчества, она позволяет создать уникальный и индивидуальный предмет, который отражает личность и вкус своего создателя. Возможность выбрать различные компоненты, стили и материалы позволяет сделать каждые часы уникальными и отличными от массового производства. Кроме того, сборка таких часов требует тщательного планирования и организации работы. Это включает в себя выбор и приобретение необходимых компонентов, разработку схемы и программного обеспечения, а так же выполнение многочисленных манипуляций при сборке. Наконец, сборка электронных часов так же может быть интересным и познавательным опытом. Этот процесс позволяет развить навыки работы с мелкими и сложными деталями, а так же может помочь в изучении основ программирования и механики. В целом могу сказать, что сборка электронных часов является интересным и творческим процессом, который позволяет создавать уникальные и индивидуальные предметы, развить навыки и знания в области техники и получить удовольствие от своего собственного творчества.

Список используемой литературы:

  1. LTC4054 datasheet – техническая документация;

  2. PIC16F84A datasheet – техническая документация;

  3. Jallv2 tutorial v4.5 – справочное руководство;

  4. Pickit2 tutorial – справочное руководство.

Просмотров работы: 96