Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Розробка цифрового тахометра на базі мікроконтролер ATtiny2313

Реферат Розробка цифрового тахометра на базі мікроконтролер ATtiny2313





ний для

// збільшення разрядностіwFlashCnt;// Лічильник спрацьовувань датчика проходження допастіbtFirstLowRateFlash;// FALSE - якщо відлік періоду ще не почався

// (датчик жодного разу не спрацював)

Лістинг 4.2 - Відновлення дисплея

void RefreshDisplay (void)

{

# asm ("cli"); (btDisplayUpdate)

{= wRpm; = FALSE;

}

# asm ("sei"); (wLockedRpm); ();

}

Лістинг 4.3 - Перетворення швидкості мотораPrepareRpmData (WORD wRpm)

{i; R; = wRpm; [3] = wRpm% 10 ;/ = 10; (byDisplay [3]> 4)// округляємо

{

wRpm + +; + = 10;

} [3] = 0;

// Перші 4 цифр - обороти двигуна

for (i = 0; i <3; i + +)

{[2-i] = wRpm% 10 ;/ = 10;

} (R <10)

{[0] = 10; [1] = 10; [2] = 10; exit;

} ((R> = 10) & (R <100))

{[0] = 10; [1] = 10; exit;

} ((R> = 100) & (R <1000))

{[0] = 10; exit;

}:

}

Лістинг 4.4 Висновок екранного буфера на дисплей.

void ShowDisplayData (void)

{

# ifdef Cathode = byCharacter [byDisplay [0]]; .5 = 0; _us (LED_delay); .5 = 1; = byCharacter [byDisplay [1]]; .1 = 0; _us (LED_delay); .1 = 1; = byCharacter [byDisplay [2]]; .0 = 0; _us (LED_delay); .0 = 1; = byCharacter [byDisplay [3]]; .4 = 0; _us (LED_delay ); .4 = 1;

# endif

# ifdef Anode = ~ byCharacter [byDisplay [0]]; .5 = 1; _us (LED_delay); .5 = 0; = ~ byCharacter [byDisplay [1]]; .1 = 1 ; _us (LED_delay); .1 = 0; = ~ byCharacter [byDisplay [2]]; .0 = 1; _us (LED_delay); .0 = 0; = ~ byCharacter [byDisplay [3]]; .4 = 1 ; _us (LED_delay); .4 = 0;

# endif (! PIND.6)

{_us (Light_delay);

}

}

Лісинг 4.5 - Обробка переривань від OC1 (для відліку імпульсів 0.1 сек)

interrupt [TIM1_COMPA] void SYSTEM_TICK_interrupt (void)

{

// Обчислюємо оммент наступного спрацьовування таймераA + = CNT_100_MS;

// 3 рази на секунду перемальовували дисплей,

// незалежно від обставин.

if (+ + byDisplayRefreshCnt == UpCount)

{

byDisplayRefreshCnt = 0;

btDisplayUpdate = TRUE;

}

// Якщо с...


Назад | сторінка 10 з 19 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Розробка цифрового датчика швидкості
  • Реферат на тему: Лістинг в системі біржової торгівлі, котирування цінних паперів і біржові і ...
  • Реферат на тему: Розробка цифрового тахометра, що вимірює в діапазоні від 1200 до 6000 об / ...
  • Реферат на тему: Проектування цифрового тахометра
  • Реферат на тему: Датчик швидкості в сучасному автомобілі