Π’Π°ΠΉΠΌΠ΅Ρ€ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ² Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ PIC16F877A для управлСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ свСтодиодов

Как Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹ Π² PIC16F877A. КакиС прСимущСства Π΄Π°Π΅Ρ‚ использованиС Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ² ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с функциями Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ. Как ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Timer0 Π² PIC16F877A. Как Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ мигания свСтодиодов с использованиСм Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° PIC

Π’Π°ΠΉΠΌΠ΅Ρ€Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π°ΠΆΠ½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° встраиваСмых систСм. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ€ΡΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ дСйствия ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ, Π½Π΅ блокируя ΠΏΡ€ΠΈ этом Ρ€Π°Π±ΠΎΡ‚Ρƒ основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим использованиС Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ² Π² популярном ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ PIC16F877A Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ управлСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ мигания свСтодиодов.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄ функциями Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ

Π₯отя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ __delay_ms(), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹, Ρƒ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ ряд нСдостатков ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°ΠΌΠΈ:

  • Π’ΠΎ врСмя выполнСния Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ блокируСтся ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ
  • Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ константой ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
  • НСвозмоТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ большиС значСния Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, нСсколько часов)
  • Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ отсчСта Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½ΠΈΠΆΠ΅, Ρ‡Π΅ΠΌ Ρƒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ²

Π’Π°ΠΉΠΌΠ΅Ρ€Ρ‹ Π»ΠΈΡˆΠ΅Π½Ρ‹ этих нСдостатков ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎ ΠΈ эффСктивно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°ΠΌΠΈ.


ΠžΠ±Π·ΠΎΡ€ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ² Π² PIC16F877A

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ PIC16F877A ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Ρ€ΠΈ модуля Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°:

  • Timer0 — 8-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ΅Ρ€/счСтчик
  • Timer1 — 16-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ΅Ρ€
  • Timer2 — 8-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ΅Ρ€

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ сфокусируСмся Π½Π° использовании Timer0. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ возмоТности Timer0 Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚:

  • 8-Π±ΠΈΡ‚Π½Ρ‹ΠΉ счСтчик, доступный для чтСния ΠΈ записи
  • ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΡ€Π΅Π΄Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Π΄ΠΎ 1:256
  • Π’Ρ‹Π±ΠΎΡ€ источника тактирования (Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΈΠ»ΠΈ внСшний)
  • ГСнСрация прСрывания ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ

Настройка Timer0 Π² PIC16F877A

Для настройки Timer0 Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

  1. ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ рСгистр OPTION_REG для Π²Ρ‹Π±ΠΎΡ€Π° источника тактирования, прСддСлитСля ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²
  2. Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² рСгистр TMR0
  3. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° (TMR0IE)
  4. Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Π΅ прСрывания (GIE ΠΈ PEIE)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° настройки Timer0:


OPTION_REG = 0b00000101; // Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ источник, ΠΏΡ€Π΅Π΄Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ 1:64
TMR0 = 100; // ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°
TMR0IE = 1; // Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°
GIE = 1; // Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ прСрывания  
PEIE = 1; // Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Π΅ прСрывания

РасчСт Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ² для Timer0

ВрСмя пСрСполнСния Timer0 ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅:



Delay = ((256 - TMR0) * Prescaler * 4) / Fosc

Π“Π΄Π΅:

  • TMR0 — Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°
  • Prescaler — коэффициСнт прСддСлитСля
  • Fosc — частота тактирования ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°

НапримСр, ΠΏΡ€ΠΈ TMR0 = 100, ΠΏΡ€Π΅Π΄Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ 1:64 ΠΈ Fosc = 20 ΠœΠ“Ρ† ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΎΠΊΠΎΠ»ΠΎ 1.99 мс.

РСализация ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ мигания свСтодиодов Π½Π° Timer0

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ мигания 8 свСтодиодов с использованиСм Timer0. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° позволяСт Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» мигания ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ/ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Основная Π»ΠΎΠ³ΠΈΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹:

  1. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π½Π° 500 мс
  2. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ запускаСм ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ мигания
  3. Π’ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΈ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° отсчитываСм Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»
  4. По истСчСнии ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ свСтодиод

Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° прСрывания Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°:


void interrupt timer_isr()
{
  if(TMR0IF == 1) 
  {
    TMR0 = 100; // ΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°
    TMR0IF = 0; // Бброс Ρ„Π»Π°Π³Π° прСрывания
    count++;
    
    if (count == 250) // 0.5 сСкунды
    {
      hscnd++; 
      count = 0;
    }
  }
}

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° использования Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° для управлСния свСтодиодами

ИспользованиС Timer0 для управлСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ свСтодиодов Π΄Π°Π΅Ρ‚ ряд прСимущСств ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ:


  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» мигания «Π½Π° Π»Π΅Ρ‚Ρƒ»
  • ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π½Π΅ блокируСтся Π²ΠΎ врСмя отсчСта ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ²
  • Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ соблюдСниС Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ²
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, выполняСмыС ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ

Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ дСмонстрация Ρ€Π°Π±ΠΎΡ‚Ρ‹

Для дСмонстрации Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ потрСбуСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅:

  • ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ PIC16F877A
  • 8 свСтодиодов с Ρ‚ΠΎΠΊΠΎΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ рСзисторами
  • 2 Ρ‚Π°ΠΊΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ
  • ΠœΠ°ΠΊΠ΅Ρ‚Π½Π°Ρ ΠΏΠ»Π°Ρ‚Π° ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°

Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²:

  • Π‘Π²Π΅Ρ‚ΠΎΠ΄ΠΈΠΎΠ΄Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌ PORTD
  • Кнопки ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌ RB0 ΠΈ RB1

Π’ΠΈΠ΄Π΅ΠΎ дСмонстрации Ρ€Π°Π±ΠΎΡ‚Ρ‹ устройства ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎ ссылкС Π² ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ дальнСйшиС шаги

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли основы использования Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ² Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ PIC16F877A Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ управлСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ свСтодиодов. ИспользованиС Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ² позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΈ эффСктивныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с простыми Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ.

Для дальнСйшСго изучСния Ρ‚Π΅ΠΌΡ‹ рСкомСндуСтся:


  • ΠžΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с возмоТностями Timer1 ΠΈ Timer2
  • Π˜Π·ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ² (Π·Π°Ρ…Π²Π°Ρ‚, сравнСниС, ШИМ)
  • Π Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ² Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…

ОсвоСниС Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ ваши возмоТности ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ встраиваСмых систСм Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… PIC.


Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Π½Π° PIC16F628A — MBS Electronics


Π’Π°ΠΉΠΌΠ΅Ρ€Π°ΠΌΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ довольно ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… тСхничСских устройств Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΡƒΠ·Π»ΠΎΠ² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Ρ‚Π°ΠΉΠΌΠ΅Ρ€ β€” это Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ΅ устройство, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ внСшнСго устройства ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, устройство автоматичСского ΠΏΠΎΠ»ΠΈΠ²Π° растСний ΠΈΠ»ΠΈ устройство автоматичСского кормлСния Π°ΠΊΠ²Π°Ρ€ΠΈΡƒΠΌΠ½Ρ‹Ρ… Ρ€Ρ‹Π±ΠΎΠΊ.. ВсС зависит ΠΎΡ‚ вашСй Ρ„Π°Π½Ρ‚Π°Π·ΠΈΠΈ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, я ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя использовал ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ устройство для пСриодичСского Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ / Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ…ΠΎΠ»ΠΎΠ΄ΠΈΠ»ΡŒΠ½ΠΈΠΊΠ°, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ сломалось мСханичСскоС Ρ‚Π΅Ρ€ΠΌΠΎΡ€Π΅Π»Π΅.

Π’Π°ΠΉΠΌΠ΅Ρ€ собран Π½Π° ΠΎΡ‡Π΅Π½ΡŒ распространСнном ΠΈ дСшСвом ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ ΠΎΡ‚ Microchip, 8-разрядный PIC16F628A. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ внСшнСго устройства ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹. максимальноС врСмя ΠΏΠ°ΡƒΠ·Ρ‹ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ составляСт 99 часов 59 ΠΌΠΈΠ½ΡƒΡ‚, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, фактичСски 100 часов.

Для управлСния Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π° для отобраТСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ стандартный Π–Πš ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π° 2 строки ΠΈΠ· 16 символов, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π½Π° основС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° HD44780U ΠΎΡ‚ Ρ„ΠΈΡ€ΠΌΡ‹ Hitachi.

Для управлСния внСшним устройством использовано элСктромагнитноС Ρ€Π΅Π»Π΅. ΠžΠ±ΠΌΠΎΡ‚ΠΊΠ° Ρ€Π΅Π»Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ рассчитана Π½Π° напрядСниС 5V. ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ управляСт Ρ€Π΅Π»Π΅ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ»ΡŽΡ‡ Π½Π° транзисторС PN2222. ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Ρ€Π΅Π»Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ рассчитаны Π½Π° Ρ‚ΠΎΠΊ, потрСбляСмый управляСмым устройством. Кнопки управлСния ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊ ΠΏΠΎΡ€Ρ‚Π°ΠΌ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° RB0, RA2, RA3 ΠΈ RA4.

ДисплСй Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈ для Π΅Π³ΠΎ управлСния трСбуСтся 6 ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Для Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ сигнализации Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ использован ΠΏΡŒΠ΅Π·ΠΎΠΊΠ΅Ρ€Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Π·Π²ΠΎΠ½ΠΎΠΊ. Π—Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ сигнал Ρ‚Π°ΠΊΠΆΠ΅ подаСтся ΠΈ ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ питания Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°.

Π‘Π»ΠΎΠΊ питания Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° содСрТит стабилизатор напряТСния +5V Π½Π° микросхСмС β€” рСгуляторС LM7805. Для питания Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΎΡ‚ сСти 220 Π²ΠΎΠ»ΡŒΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой нСстабилизированный сСтСвой Π°Π΄Π°ΠΏΡ‚Π΅Ρ€, ΠΊΡƒΠΏΠ»Π΅Π½Π½Ρ‹ΠΉ Π½Π° китайском Ρ€Ρ‹Π½ΠΊΠ΅.

Π’Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ΅ напряТСниС Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Ρ… 9 β€” 14 Π²ΠΎΠ»ΡŒΡ‚.

Если ΠΌΡ‹ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ посмотрим Π½Π° схСму устройства, Ρ‚ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ 15 ΠΈ 16 Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ. ΠΎΠ½ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°Ρ… с Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΉ подсвСткой. Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ с подсвСткой, Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π΅Π΅ ΠΊ +5B Ρ‡Π΅Ρ€Π΅Π· рСзистор сопротивлСниСм 39 Ом.



Кнопка Start/Stop. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° эту ΠΊΠ½ΠΎΠΏΠΊΡƒ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ запускаСтся ΠΈΠ»ΠΈ останавливаСтся. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ начинаСтся отсчСт Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ состояния. ΠŸΠΎΡ‚ΠΎΠΌ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ внСшнСС устройство ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ отсчСт Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π²ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ состоянии.

Кнопка On/Off Time позволяСт Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ΅Ρ€, установив врСмя Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ состояний внСшнСго устройства.

Кнопка Select Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ устанавливаСмым ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ β€” часы β€” ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ β€” врСмя Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ состояния β€” врСмя Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ состояния.

Кнопка Enter слуТит для подтвСрТдСния установлСнного значСния.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для сборки Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅Π΄ΠΎΡ€ΠΎΠ³ΠΎ ΠΊΡƒΠΏΠΈΡ‚ΡŒ Π² ΠšΠΈΡ‚Π°Π΅ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ссылкам:

Π Π΅Π»Π΅ 5 Π’

Вранзистор PN2222

Π‘Ρ‚Π°Π±ΠΈΠ»ΠΈΠ·Π°Ρ‚ΠΎΡ€ 7805

Lcd дисплСй 16X2

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ PIC16F628A

ΠŸΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° написана Π² комприляторС MicroC Pro for PIC ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ MikroElektronika.

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ² с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: www.embedded-lab.com
Digital programmable Timer Switch
23 дСкабря 2010 Π³.


1602 Displaydigital circuitsMCUMicrochip PICmicrocontrollertimerΡ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ схСмы

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ ΠΈ Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ — Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ STM8

  1. Главная|
  2. Устройства|
  3. STM|
  4. Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ STM8
ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΎΠ²: 5404

Π’Π°ΠΉΠΌΠ΅Ρ€ БСмисСгмСнтный ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ STM8S103 W1209

Π’Π°ΠΉΠΌΠ΅Ρ€ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для использования совмСстно с Π£Π€ Π»Π°ΠΌΠΏΠΎΠΉ. ΠŸΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π° Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, установлСнный Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅ ΠΈΠ»ΠΈ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΠ»Π°Ρ‚Ρ‹ тСрмостата W1209 доступном Π½Π° Aliexpress ΠΈ Ebay. Π’ΠΈΠΏ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹ задаётся Π² Ρ„Π°ΠΉΠ»Π΅ uv_timer.h см. строки 6-8.

ΠŸΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ элСмСнтов ΠΈ gerber-Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹ находятся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /pcb. Для Π·Π°ΠΊΠ°Π·Π° ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» UVTimer_V1.02.zip

Π₯арактСристики:

НапряТСниС питания: 7-30V;
ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ Ρ‚ΠΎΠΊ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ: 1A;
Π’Ρ‹Π΄Π΅Ρ€ΠΆΠΊΠ°: 0.1c-90ΠΌΠΈΠ½

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠΌ производится ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ энкодСра. Π’Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ Ρ€ΡƒΡ‡ΠΊΠΈ энкодСра осущСствляСтся Π²Ρ‹Π±ΠΎΡ€ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ — запуск/ΠΏΠ°ΡƒΠ·Π°, Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ — остановка/сброс Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π‘Ρ…Π΅ΠΌΠ° устройства

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Π‘1, Π‘2, ZQ1 ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ соотвСтствущих измСнСниях Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CLK_Config() Π² Ρ„Π°ΠΉΠ»Π΅ main.c. Π’ качСствС DD1 допустимо ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ STM8S003F3xx Π»ΠΈΠ±ΠΎ STM8S103F3xx. ΠŸΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠ° J1 ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΌΠΊΠ½ΡƒΡ‚Π°. Π‘Π°ΠΌΠΎΠ²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉΡΡ ΠΏΡ€Π΅Π΄ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅Π»ΡŒ R3 ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ³ΠΎ транзистора ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ замыкания, для увСличСния Π½Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠΉ способности ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½.

Π€ΠΎΡ‚ΠΎ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ устройства

W1209

На Ρ€Ρ‹Π½ΠΊΠ΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ тСрмостаты Π½Π° основС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΡ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ΠΏΠΎΠ΄ ΠΎΠ΄Π½ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ W1209, ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с тСрмостатом Π½Π° основС STM8, Π²ΠΎΡ‚ Π΅Π³ΠΎ схСма:

Π’ΠΈΠ΄Π΅ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ устройства


Π€Π°ΠΉΠ»Ρ‹ ΠΊ ΡΡ‚Π°Ρ‚ΡŒΠ΅ «Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ STM8»
ОписаниС:

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (Π‘ΠΈ), Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΎΠΊ для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠ°ΠΊΠ΅Ρ‚Π° ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹, схСмы.

Π Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π°: 1.33 MB ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ: 412 Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ

ΠŸΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ ΡΡ‚Π°Ρ‚ΡŒΡ? ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ:

  1. Автор: Vadzim Yatskevich
  • Назад
  • Π’ΠΏΠ΅Ρ€Π΅Π΄
ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€

— Как Π½Π°ΠΉΡ‚ΠΈ ΠΊΠ°Π½Π°Π»Ρ‹ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° для этой ΠΏΠ»Π°Ρ‚Ρ‹ UC?

\$\Π½Π°Ρ‡Π°Π»ΠΎ Π³Ρ€ΡƒΠΏΠΏΡ‹\$

Π― ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅, Π³Π΄Π΅ располоТСны ΠΊΠ°Π½Π°Π»Ρ‹ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π² этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

STM32 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ ΠΊΠ°Π½Π°Π»Ρ‹. Π― ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‚ΡΡ Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°. Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ ΠΊΠ°Π½Π°Π»ΠΎΠΌ?

ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для этой ΠΏΠ»Π°Ρ‚Ρ‹ для ChannelX TimerX Π² руководствС ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π΄Π°Π½Π½Ρ‹Ρ…?

  • ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€
  • Ρ‚Π°ΠΉΠΌΠ΅Ρ€

\$\конСчная Π³Ρ€ΡƒΠΏΠΏΠ°\$

10

\$\Π½Π°Ρ‡Π°Π»ΠΎ Π³Ρ€ΡƒΠΏΠΏΡ‹\$

Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° отсчитываСтся ΠΎΡ‚ часов (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ сначала ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ).

Канал для этого Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° сосрСдоточСн Π²ΠΎΠΊΡ€ΡƒΠ³ рСгистра, содСрТащСго Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сравнСния ΠΈΠ»ΠΈ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π°Ρ…Π²Π°Ρ‚Π° для использования с этим счСтчиком. Для Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°/счСтчика ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°.

Π’Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ для Π²Π²ΠΎΠ΄Π° Π·Π°Ρ…Π²Π°Ρ‚Π° ΠΈΠ»ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ для Π²Ρ‹Π²ΠΎΠ΄Π° сравнСния (Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅) ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ ряду ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСгистров ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° для установки Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΎΠ΅ руководство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ STM32 содСрТит Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ‡Π΅ΠΌ тСхничСскоС описаниС. Π­Ρ‚ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π²Π°ΠΌ, ΠΊΠ°ΠΊ Π½Π° самом Π΄Π΅Π»Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ устройства Π² сСмСйствС ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ². Π’ Π½Π΅ΠΌ рассказываСтся, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Π΅ устройства ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ рСгистры Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ. Π’Π°Π±Π»ΠΈΡ†Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… STM32, ΠΏΠΎ большСй части, ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, которая Π½Π΅ являСтся ΠΎΠ±Ρ‰Π΅ΠΉ для сСмСйства ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ², Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€.

\$\конСчная Π³Ρ€ΡƒΠΏΠΏΠ°\$

\$\Π½Π°Ρ‡Π°Π»ΠΎ Π³Ρ€ΡƒΠΏΠΏΡ‹\$

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ инструмСнт ΠΊΡƒΠ±Π° MX для настройки Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ², ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΡ… ΠΊ GPIO ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. Он сгСнСрируСт ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ смоТСтС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

\$\конСчная Π³Ρ€ΡƒΠΏΠΏΠ°\$

Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΈΠ»ΠΈ Π²ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π² систСму

Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Google

Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· Facebook

Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π³ΠΎΡΡ‚ΡŒ

ЭлСктронная ΠΏΠΎΡ‡Ρ‚Π°

ВрСбуСтся, Π½ΠΎ Π½Π΅ отобраТаСтся

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π³ΠΎΡΡ‚ΡŒ

ЭлСктронная ΠΏΠΎΡ‡Ρ‚Π°

ВрСбуСтся, Π½ΠΎ Π½Π΅ отобраТаСтся

НаТимая Β«ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ свой ΠΎΡ‚Π²Π΅Ρ‚Β», Π²Ρ‹ ΡΠΎΠ³Π»Π°ΡˆΠ°Π΅Ρ‚Π΅ΡΡŒ с нашими условиями обслуТивания, ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ использования Ρ„Π°ΠΉΠ»ΠΎΠ² cookie

ΠžΠ±Ρ‰ΠΈΠ΅ свСдСния ΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°Ρ… Π² PIC16F877A PIC-ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ с ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ мигания свСтодиодов

Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ пятоС руководство Π² нашСй сСрии PIC Tutorial Series , которая ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹ Π² PIC16F877A . Π’ Π½Π°ΡˆΠΈΡ… ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… руководствах ΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ с ввСдСния Π² PIC ΠΈ MPLABX IDE, Π·Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ написали Π½Π°ΡˆΡƒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ PIC для мигания свСтодиода с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ PIC, Π° Π·Π°Ρ‚Π΅ΠΌ создали ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ мигания свСтодиода, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ PIC. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ мигания свСтодиодов, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ использовали Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΡƒΡ‡Π΅Π±Π½ΠΎΠΌ пособии.0065 Π£Π·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹ Π² нашСм ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ PIC . ΠœΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° ΡΠ²Π΅Ρ‚ΠΎΠ΄ΠΈΠΎΠ΄Π½ΡƒΡŽ панСль для этого ΡƒΡ€ΠΎΠΊΠ°. ΠŸΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС.

Π’Π°ΠΉΠΌΠ΅Ρ€Ρ‹ β€” ΠΎΠ΄Π½Π° ΠΈΠ· Π²Π°ΠΆΠ½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… лошадок встроСнного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π°. КаТдоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ, Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ синхронизации, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π₯ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ Π·Π°Ρ‡Π΅ΠΌ Π½Π°ΠΌ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹, ΠΊΠΎΠ³Π΄Π° Ρƒ нас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ макросы Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ (__delay_ms()), Π΄Π΅Π»Π°ΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΎ ΠΆΠ΅ самоС!!

Β 

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ Ρ‚Π°ΠΉΠΌΠ΅Ρ€, Ссли Ρƒ нас Π΅ΡΡ‚ΡŒ Delay() ?

ΠœΠ°ΠΊΡ€ΠΎΡ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ называСтся Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Β«Π΄Π°ΠΌΠΏΠ°Β». ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²ΠΎ врСмя выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ, MCU создаСт Π΄Π°ΠΌΠΏ, просто создавая Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ . Π’ΠΎ врСмя этого процСсса MCU Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚ΡŒ значСния своСго АЦП ΠΈΠ»ΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ ΠΈΠ· своих рСгистров. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π΅ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΌΠΈΠ³Π°Π½ΠΈΠ΅ свСтодиодов, Π³Π΄Π΅ врСмСнная Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ.

ΠœΠ°ΠΊΡ€ΠΎΡ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ послС нСдостатков ,

  1. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ константой для макросов Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ; Π΅Π³ΠΎ нСльзя ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠ½ остаСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ программистом.
  2. Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с использованиСм Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ².
  3. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅ значСния Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ макросов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π² полчаса Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создана с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ макросов Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ. Максимальная Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, зависит ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠ²Π°Ρ€Ρ†Π΅Π²ΠΎΠ³ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

Β 

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ PIC Π’Π°ΠΉΠΌΠ΅Ρ€Ρ‹:

ЀизичСски Ρ‚Π°ΠΉΠΌΠ΅Ρ€ прСдставляСт собой рСгистр, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ постоянно увСличиваСтся Π΄ΠΎ 255, Π° Π·Π°Ρ‚Π΅ΠΌ начинаСтся сначала: 0, 1, 2, 3, 4…255….0, 1 , 2, 3 …… ΠΈ Ρ‚.Π΄.

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ PIC PIC16F877A ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Ρ€ΠΈ модуля Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° . Они Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Timer0, Timer1 ΠΈ Timer2. Π’Π°ΠΉΠΌΠ΅Ρ€ 0 ΠΈ Π’Π°ΠΉΠΌΠ΅Ρ€ 2 ΡΠ²Π»ΡΡŽΡ‚ΡΡ 8-Π±ΠΈΡ‚Π½Ρ‹ΠΌΠΈ Π’Π°ΠΉΠΌΠ΅Ρ€Π°ΠΌΠΈ, Π° Π’Π°ΠΉΠΌΠ΅Ρ€ 1 являСтся 16-Π±ΠΈΡ‚Π½Ρ‹ΠΌ Π’Π°ΠΉΠΌΠ΅Ρ€ΠΎΠΌ. Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π’Π°ΠΉΠΌΠ΅Ρ€ 0 для нашСго прилоТСния. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ ΠΏΠΎΠΉΠΌΠ΅ΠΌ Π’Π°ΠΉΠΌΠ΅Ρ€ 0, Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π’Π°ΠΉΠΌΠ΅Ρ€ΠΎΠΌ 1 ΠΈ Π’Π°ΠΉΠΌΠ΅Ρ€ΠΎΠΌ 2.

Π’Π°ΠΉΠΌΠ΅Ρ€/счСтчик модуля Timer0 ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  • 8-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ΅Ρ€/счСтчик
  • ДоступСн для чтСния ΠΈ записи
  • 8-Π±ΠΈΡ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ прСскалСр
  • Π’Ρ‹Π±ΠΎΡ€ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΈΠ»ΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… часов
  • ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ с FFh Π½Π° 00h
  • Π’Ρ‹Π±ΠΎΡ€ Ρ„Ρ€ΠΎΠ½Ρ‚Π° для Π²Π½Π΅ΡˆΠ½ΠΈΡ… часов

Β 

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ΅Ρ€, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΡ‡ΡƒΠ΄Π»ΠΈΠ²Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ 8-Π±ΠΈΡ‚Π½Ρ‹ΠΉ/16-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ , ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ, прСрывания Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΈ фокусы. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, Ρ‡Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ…. Как Π±Ρ‹Π»ΠΎ сказано Ρ€Π°Π½Π΅Π΅, Π² нашСм ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ PIC Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊ 8-Π±ΠΈΡ‚Π½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ 16-Π±ΠΈΡ‚Π½Ρ‹Π΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹, основноС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ 16-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π»ΡƒΡ‡ΡˆΠ΅Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Ρ‡Π΅ΠΌ 8-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ΅Ρ€.

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ β€” это Π½Π°Π·Π²Π°Π½ΠΈΠ΅ части ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, которая Π΄Π΅Π»ΠΈΡ‚ Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΡƒΡŽ частоту Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½Π° достигнСт Π»ΠΎΠ³ΠΈΠΊΠΈ, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ состояниС Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ дСлитСля составляСт ΠΎΡ‚ 1 Π΄ΠΎ 256, Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ дСлитСля ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСгистра OPTION (Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ использовали для ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… рСзисторов). НапримСр, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ прСддСлитСля Ρ€Π°Π²Π½ΠΎ 64, Ρ‚ΠΎ для ΠΊΠ°ΠΆΠ΄Ρ‹Ρ… 64 ΠΉ ΠΈΠΌΠΏΡƒΠ»ΡŒΡ Π’Π°ΠΉΠΌΠ΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° 1.

По ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ увСличиваСтся ΠΈ достигаСт своСго максимального значСния 255, ΠΎΠ½ запускаСт ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈ снова инициализируСтся Π΄ΠΎ 0. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ называСтся ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρƒ. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ MCU ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ это ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ врСмя истСкло.

Β 

Fosc ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ частоту Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° , это частота ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ кристалла. ВрСмя, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для рСгистра Timer, зависит ΠΎΡ‚ значСния Prescaler ΠΈ значСния Fosc.

Β 

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° ОбъяснСниС:

Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ настроим Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΊΠ°ΠΊ Π΄Π²Π° Π²Ρ…ΠΎΠ΄Π° ΠΈ 8 свСтодиодов ΠΊΠ°ΠΊ 8 Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ². ΠŸΠ΅Ρ€Π²Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для установки Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ (500 мс Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅), Π° вторая ΠΊΠ½ΠΎΠΏΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для запуска мигания ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°. НапримСр, Ссли пСрвая ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π°ΠΆΠ°Ρ‚Π° Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π° (500*3 = 1500 мс), Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ установлСна ​​на 1,5 сСкунды, Π° ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ свСтодиод Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ с Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ДСмонстрационноС Π²ΠΈΠ΄Π΅ΠΎ Π² ΠΊΠΎΠ½Ρ†Π΅ этого ΡƒΡ€ΠΎΠΊΠ°.

Β 

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, помня ΠΎΠ± этих основах, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΡƒΡŽ Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ€Π°Π·Π΄Π΅Π»Π° ΠΊΠΎΠ΄Π° .

НичСго ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎΠ³ΠΎ, Ссли Π²Ρ‹ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½ΠΎ Ссли Π²Ρ‹ Π΅Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ!! Π”Π°ΠΉΡ‚Π΅ сСбС ΠΊΡƒΠΊΠΈ ΠΈ Π΄Π°ΠΌΠΏ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΠ»Π°Π΄ΠΈΡ‚ΡŒΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ. Для Π΄Ρ€ΡƒΠ³ΠΈΡ… я Ρ€Π°Π·ΠΎΠ±ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ части ΠΈ объясню, Ρ‡Ρ‚ΠΎ происходит Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅.

Как всСгда, ΠΏΠ΅Ρ€Π²Ρ‹Π΅ нСсколько строк ΠΊΠΎΠ΄Π° β€” это настройки ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², я Π½Π΅ Π±ΡƒΠ΄Ρƒ ΠΎΠ±ΡŠΡΡΠ½ΡΡ‚ΡŒ это, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ я ΡƒΠΆΠ΅ Π΄Π΅Π»Π°Π» это Π² своих ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΡƒΡ€ΠΎΠΊΠ°Ρ….

Π”Π°Π»Π΅Π΅, Π΄Π°Π²Π°ΠΉΡ‚Π΅ пропустим всС строки ΠΈ сразу ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ основной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ void, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρƒ нас Π΅ΡΡ‚ΡŒ конфигурация PORT для Timer0.

пустая функция()
{
/*****ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΏΠΎΡ€Ρ‚Π° для Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ******/
    OPTION_REG = 0b00000101; // Timer0 с внСшнСй частотой ΠΈ 64 Π² качСствС прСдскаляра // Π’Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ PULL UP
    ВМР0=100; // Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для 0,0019968 с; delayValue ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ 0-256
    ВМР0Π˜Π•=1; //Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΡ‚ прСрывания Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π² рСгистрС PIE1
    Π­Π”Π”=1; //Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ глобальноС ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅
    ПЭИЭ=1; //Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½ΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅
    /************______************/ 

Β 

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ это, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° рСгистр OPTION Π² нашСй Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π΄Π°Π½Π½Ρ‹Ρ… PIC.

Как ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π»ΠΎΡΡŒ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅, Π±ΠΈΡ‚ 7 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ слабого ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ рСзистора для PORTB. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ рисунок, Π±ΠΈΡ‚ 3 сдСлан Ρ€Π°Π²Π½Ρ‹ΠΌ 0, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ MCU, Ρ‡Ρ‚ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ установлСнный прСскалСр Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°, Π° Π½Π΅ для WatchDogTimer (WDT). Π Π΅ΠΆΠΈΠΌ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° выбираСтся очисткой Π±ΠΈΡ‚Π° 5 T0CS

(OPTION_REG<5>)

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΠΈΡ‚ΠΎΠ² 2-0 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для установки значСния прСскалСра для Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°. Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π²Ρ‹ΡˆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ дСлитСля 64, Π±ΠΈΡ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ установлСны ΠΊΠ°ΠΊ 101.

Π”Π°Π»Π΅Π΅, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° рСгистры, связанныС с Timer0

Β 

Π’Π°ΠΉΠΌΠ΅Ρ€ Π½Π°Ρ‡Π½Π΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ послС установки ΠΈ пСрСполнСния. послС достиТСния значСния 256, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚, рСгистр TMR0IE Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ установлСн Π½Π° высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π’Π°ΠΉΠΌΠ΅Ρ€ 0 сам ΠΏΠΎ сСбС являСтся ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΌ устройством, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½ΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅, сдСлав PEIE=1 . НаконСц, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ глобальноС ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ MCU Π±Ρ‹Π» ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ ΠΎ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΈ Π²ΠΎ врСмя любой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, это дСлаСтся ΠΏΡƒΡ‚Π΅ΠΌ установки GIE = ​​1.

Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° = ((256-REG_val)*(Prescal*4))/Fosc

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π²Ρ‹ΡˆΠ΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для расчСта значСния Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ.

Π“Π΄Π΅

REG_val = 100;

Prescal = 64

Fosc = 20000000

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈ расчСтС Π΄Π°Π΅Ρ‚

Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° = 0,0019968s

Β 

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ строк ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для установки ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°.

        /*****ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΏΠΎΡ€Ρ‚Π° для Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ******/
    Π’Π Π˜Π‘Π‘0=1; // Π‘ΠΎΠΎΠ±Ρ‰Π°Π΅ΠΌ MCU, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ 0 PORTB ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС Π²Ρ…ΠΎΠ΄Π° для ΠΊΠ½ΠΎΠΏΠΊΠΈ 1.
    Π’Π Π˜Π‘Π‘1=1; // Π‘ΠΎΠΎΠ±Ρ‰Π°Π΅ΠΌ MCU, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ 1 PORTB ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС Π²Ρ…ΠΎΠ΄Π° для ΠΊΠ½ΠΎΠΏΠΊΠΈ 1.
    Π’Π Π˜Π‘Π” = 0x00; // Π‘ΠΎΠΎΠ±Ρ‰Π°Π΅ΠΌ MCU, Ρ‡Ρ‚ΠΎ всС Π²Ρ‹Π²ΠΎΠ΄Ρ‹ Π½Π° PORT D ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ
    ПОРВ=0x00; //Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ всС Π²Ρ‹Π²ΠΎΠ΄Ρ‹ Π² 0
    /************______************/ 

Π­Ρ‚ΠΎ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ Π² нашСм ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ руководствС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚ΠΎ ΠΆΠ΅ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅. Π—Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΊΠ½ΠΎΠΏΠΊΡƒ для Π²Π²ΠΎΠ΄Π°. Π­Ρ‚ΠΎ дСлаСтся строкой Π’Π Π˜Π‘Π‘1=1.

Β 

Π”Π°Π»Π΅Π΅, Π²Π½ΡƒΡ‚Ρ€ΠΈ бСсконСчного Ρ†ΠΈΠΊΠ»Π° while Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°. Один ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для получСния Π²Π²ΠΎΠ΄Π° Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ для выполнСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ свСтодиодов. Π― объяснил ΠΈΡ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС.

        ΠΏΠΎΠΊΠ°(1)
        {
        количСство = 0; // НС Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Π² основном Ρ†ΠΈΠΊΠ»Π΅
        //*******ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ****//////
        if (RB0==0 && flag==0) //ΠŸΡ€ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π²Π²ΠΎΠ΄Π΅
        {
            get_scnds+=1; //get_scnds=get_scnds+1//Π£Π²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ
            Ρ„Π»Π°Π³=1;
        }
        if (RB0==1) //Для прСдотвращСния Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ³ΠΎ увСличСния
            Ρ„Π»Π°Π³=0;
        /************______************/ 

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ с ΠΈΠΌΠ΅Π½Π΅ΠΌ get_scnds увСличиваСтся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ 1. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Ρ„Π»Π°Π³Π° (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ опрСдСляСмая) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для удСрТания процСсса увСличСния Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ ΡƒΠ±Π΅Ρ€Π΅Ρ‚ ΠΏΠ°Π»Π΅Ρ† с ΠΊΠ½ΠΎΠΏΠΊΠΈ.

                //*******Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ с Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ****//////
        ΠΏΠΎΠΊΠ° (RB1==0)
        {
                ΠŸΠžΠ Π’Π” = 0b00000001<

Β 

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ срабатываСт ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ» Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ врСмя Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΠΎΠ½ΠΎ Π±Ρ‹Π»ΠΎ сохранСно Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ get_scnds. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с ΠΈΠΌΠ΅Π½Π΅ΠΌ hscnd , эта пСрСмСнная управляСтся ISR (ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ обслуТивания ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ).

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° обслуТивания прСрывания β€” это ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Ρ‚Π°ΠΉΠΌΠ΅Ρ€ 0 пСрСполняСтся. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΎΠ½ контролируСтся ISR Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π±Π»ΠΎΠΊΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½Π° полсСкунды (0,5 с) ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Ρ‚ΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ 9.0231 hscnd ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ полсСкунды. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π»ΠΈ наш Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 0,0019968 с (~ 2 мс), поэтому для подсчСта полсСкунды пСрСмСнная count Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½Π° 250, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ 250 * 2 мс = 0,5 сСкунды. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° счСтчик достигаСт 250 (250 * 2 мс = 0,5 сСкунды), это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡˆΠ»ΠΎ полсСкунды, поэтому ΠΌΡ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ hscnd Π½Π° 1 ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ счСтчик Π½ΡƒΠ»Π΅ΠΌ.

Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ timer_isr()
{
    if(TMR0IF==1) // Π€Π»Π°Π³ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° сработал ΠΈΠ·-Π·Π° пСрСполнСния Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°
    {
        ВМР0 = 100; //Π—Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°
        TMR0IF=0; // ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π»Π°Π³ прСрывания Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°
        количСство++;
    }
    
    Ссли (количСство == 250)
    {
        hscnd+=1; // hscnd Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ полсСкунды
        количСство=0;
    }
} 

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ сравниваСм Π΅Π³ΠΎ с нашим hscnd ΠΈ сдвигаСм наш свСтодиод Π² зависимости ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΡƒΡ€ΠΎΠΊ.

Π’ΠΎΡ‚ ΠΈ всС, наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° понятна ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Β 

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ схСма ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Proteus:

Как ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, сначала ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π²Ρ‹Π²ΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Proteus , здСсь я размСстил Ρ„Π°ΠΉΠ»Ρ‹ схСм Proteus.

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° Π½Π°ΡˆΡƒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ ΡΠ²Π΅Ρ‚ΠΎΠ΄ΠΈΠΎΠ΄Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ, ΠΈ нашС ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅. Π­Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

ПослС установлСния соСдинСния Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄. Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, поТалуйста, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π°Π·Π΄Π΅Π» ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π². Π’Π°ΠΊΠΆΠ΅ посмотритС Π²ΠΈΠ΄Π΅ΠΎ Π½ΠΈΠΆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ вСсь процСсс.

Код

// CONFIG
#pragma config FOSC = HS Β  Β  Β  Β // Π‘ΠΈΡ‚Ρ‹ Π²Ρ‹Π±ΠΎΡ€Π° Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° (HS-Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€)
#pragma config WDTE = OFF Β  Β  Β  // Π‘ΠΈΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ стороТСвого Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° (WDT ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½)
#pragma config PWRTE = ON Π‘ΠΈΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (PWRT Π²ΠΊΠ»ΡŽΡ‡Π΅Π½)
#pragma config BOREN = ON Β  Β  Β  // Π‘ΠΈΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ сброса ΠΏΡ€ΠΈ ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½Π½ΠΎΠΌ напряТСнии (BOR Π²ΠΊΠ»ΡŽΡ‡Π΅Π½) , HV Π½Π° MCLR Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для программирования)
#pragma config CPD = OFF Β  Β  Β  Β // Data EEPROM Memory Code Protection Code (Data EEPROM code protection off)
#pragma config WRT = OFF Β  Β  Β  Β // Flash Program Memory Write Enable bits (Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ записи Π²Ρ‹ΠΊΠ»; вся программная ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записана систСмой управлСния EECON)
#pragma config CP = OFF Β  Β  Β  Β  // Π‘ΠΈΡ‚ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΊΠΎΠ΄Π° Ρ„Π»ΡΡˆ-памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (Π·Π°Ρ‰ΠΈΡ‚Π° ΠΊΠΎΠ΄Π° Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π°)

// ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ #pragma Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
// Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ пСрСчислСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° вмСсто #define для ON ΠΈ OFF.

#include
#define _XTAL_FREQ 20000000

//TIMER0 Β  Β  8-bit Β  Β $$RegValue = 256-((Delay * Fosc)/(Prescalar*4)) Β delay in sec and Fosc Π² Hz Β 
/ /Π€ΠžΠ ΠœΠ£Π›Π для расчСта Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ
//Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° = ((256-REG_val)*(Prescal*4))/Fosc

символ hscnd = 0;
число Ρ†Π΅Π»Ρ‹Ρ… чисСл = 0;
символ get_scnds = 0;
ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ„Π»Π°Π³ =0;
символа i=0;

void interrupt timer_isr()
{ Β 
Β  Β  if(TMR0IF==1) // Π€Π»Π°Π³ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° сработал ΠΈΠ·-Π·Π° пСрСполнСния Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°
Β  Β  {
Β  Β  Β  Β  TMR0 = 100; //Π—Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°
Β  Β  Β  Β  TMR0IF=0; // ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π»Π°Π³ прСрывания Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°
Β  Β  Β  Β  count++;
Β  Β  }Β 
Β  Β Β 
Β  Β  if (count == 250)
Β  Β  {
Β  Β  Β  Β  hscnd+=1; // hscnd Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ полсСкунды
Β  Β  Β  Β  count=0;
Β  Β  }
}

void main()
{ Β  Β 
/***** ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΏΠΎΡ€Ρ‚Π° для Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ******/
Β  Β  OPTION_REG = 0b00000101; // Timer0 с внСшнСй частотой ΠΈ 64 Π² качСствС прСдскаляра // Π’Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ PULL UP
Β  Β  TMR0=100; // Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для 0,0019968 с; delayValue ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ значСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ 0 Π΄ΠΎ 256
Β  Β  TMR0IE=1; // Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΡ‚ прСрывания Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π² рСгистрС PIE1
Β  Β  GIE=1; //Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ глобальноС ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅
Β  Β  PEIE=1; //Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½ΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅
Β  Β  /***********______***********/ Β Β 
Β 
Β  Β  /***** ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΏΠΎΡ€Ρ‚Π° для Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ******/
Β  Β  TRISB0= 1; // Π‘ΠΎΠΎΠ±Ρ‰Π°Π΅ΠΌ MCU, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ 0 PORTB ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС Π²Ρ…ΠΎΠ΄Π° для ΠΊΠ½ΠΎΠΏΠΊΠΈ 1.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *