Skip to content
АЦУ · Тема 24 · Време и памет

Електронният зар – брояч, който спираш наслуки

Електронният зар няма нищо случайно в себе си. Брояч върти 1, 2, 3, 4, 5, 6 хиляда пъти в секунда, а ти го спираш с бутона в миг, който не можеш да улучиш нарочно. В урока сглобяваме брояча от T-тригери, виждаме защо простият асинхронен брояч за миг показва грешни числа и как се кара да брои до 6, а не до 15.

≈ 4 мин четене∿ 4 живи уредаСамопроверка: 5 въпроса

Брояч от T-тригери ​

T-тригерът с T = 1 се обръща на всеки фронт, т.е. дели честотата на 2 (тема 21). Ако след него сложим втори, който се обръща при всяко спадане на първия, той дели още на 2. Четири такива тригера правят двоичен брояч: Q0 е младшият бит и се сменя на всеки такт, Q1 – на всеки втори, Q2 – на всеки четвърти. Заедно показват броя на тактовете в двоичен код, от 0 до 15, и после пак от 0. Като километража на колата: всяко колелце се завърта, когато предишното мине от максимума към нулата.

Колко различни числа минава броячът, преди да се повтори, е модулът на броене N ≤ 2ⁿ. Видовете броячи са:

  • по бройната система – двоични, десетични (BCD – 10 от 16-те състояния), с произволен модул;
  • по посоката – сумиращи, изваждащи и реверсивни (вход U/D);
  • по превключването – асинхронни, синхронни и комбинирани.

След 5 такта броячът показва 5.

Двоичен брояч
0246CQ0Q1Q2Q3t – време, μsтакт 5
C Q0 Q1 Q2 Q3
Фигура 1.

Всяка следваща линия е с два пъти по-ниска честота: Q0 = f/2, Q1 = f/4, Q2 = f/8, Q3 = f/16. Затова броячът е и делител на честота. Така кварцовият часовник прави 1 Hz от 32 768 Hz с 15 тригера. Отдолу нагоре битовете дават числото, после броячът минава 15 → 0 и започва отначало.

Асинхронен и синхронен: пълзящият пренос ​

Най-простият брояч е асинхронният: всеки тригер се тактува от изхода на предишния (от Q – сумиращ, от Q̄ – изваждащ). Евтино е, но закъсненията се трупат. При прехода 0111 → 1000 първо пада Q0, после той сваля Q1, после Q1 сваля Q2 и чак тогава се вдига Q3. За тези наносекунди броячът показва грешни числа. Ако след брояча има дешифратор (тема 18), той може да даде фалшив импулс. Най-лошото време е tQmax = n·tQ: расте с броя на тригерите.

Синхронният брояч подава такта на всички тригери наведнъж. Кой да се обърне решава логика: i-тият се обръща, ако всички по-младши са 1, Tᵢ = Q0·Q1·…·Qᵢ₋₁. С паралелен пренос (по едно И с много входове за всеки разряд) всички преходи стават заедно, за около едно tQ, независимо от n. С последователен (верига от И през входа CE) е по-евтино, но веригата ограничава fmax.

Тук броячът е с 4 тригера, а гледаме най-лошия преход: от 011…1 към 100…0. След фронта броячът минава през 7 → 6 → 4 → 0 → 8 и се успокоява за 71 ns. Тук тригерът превключва за 10 ns, а инверторът към следващия тригер добавя още 10 ns.

Преходът 011…1 → 100…0
050100150200CQ0Q1Q2Q3t – време, nsфронт
C Q0 Q1 Q2 Q3
Фигура 2.

При асинхронния брояч битовете падат един след друг като домино. Всяко стъпало е грешно число. С 8 тригера всичко трае 150 ns: по 20 ns на стъпало. При синхронния всички битове се сменят в един и същи миг, за 10 ns при всяко n.

Съкратен брояч: да брои до K ​

Часовникът брои секундите до 60, а зарът – до 6. Брояч с модул K < 2ⁿ се прави с детектор на състояние: И-НЕ (тук И), на който единиците на K влизат директно, а нулите – през инвертор. Щом броячът стигне K, детекторът дава 1 и нулира брояча асинхронно (входа MR). Така K се появява само за наносекунди и броячът брои 0…K − 1. Другият начин е брояч със зареждане: при достигане на края (изход TC, terminal count) в него се записва начално число.

Ако нулирането и зареждането са и синхронни, и асинхронни, важи приоритетът: асинхронно нулиране → асинхронно установяване → синхронно нулиране → синхронно установяване → броене.

Тук K = 10, а детекторът е Q3·Q̄2·Q1·Q̄0. Броячът показва поред: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7.

Съкратен брояч
0246CQ0Q1Q2Q3Rt – време, μs
C Q0 Q1 Q2 Q3 R
Фигура 3.

Червената игличка е детекторът: броячът стига K, детекторът го вижда и веднага го нулира. За K = 10 това е десетичен брояч, а K = 6 е зарът по-долу. Игличката е и слабото място на начина: трае само колкото закъсненията. Ако някой тригер се нулира по-бавно, другите може да не го дочакат. Затова в истинските чипове тя се удължава или нулирането е синхронно.

Заръд ​

Брояч до 6 тече с 1 kHz, докато държиш бутона. Пускаш го, когато решиш, но не можеш да уцелиш нарочно миг от една хилядна от секундата. Затова числото е практически случайно, а всяко от шестте е еднакво вероятно.

Електронен зар
Фигура 4.

Докато бутонът е натиснат, цифрите текат. Тук са забавени, за да се вижда, че текат, а истинският брояч е много по-бърз. Пусни бутона и броячът спира на 0…5, а на дисплея се показва с единица повече: от 1 до 6.

Самопроверка ​

1. Колко тригера трябват за брояч до 60?

2⁵ = 32 < 60 ≤ 64 = 2⁶ → 6 тригера (с детектор на 60).

2. Кварц 32 768 Hz – колко T-тригера трябват за 1 Hz?

32 768 = 2¹⁵ → 15 тригера.

3. Защо асинхронният брояч е бавен?

Всеки тригер се тактува от предишния – закъсненията се събират: tQmax = n·tQ. През това време броячът показва грешни междинни числа.

4. Как се прави брояч с модул 13 с детектор на състояние?

13 = 1101: Q3, Q2 и Q0 директно, Q1 през инвертор → И-НЕ → MR. При 13 броячът се нулира и брои 0…12.

5. Какво се променя, за да брои броячът надолу?

Преносите (тактовете към следващия тригер) се взимат от Q̄ вместо от Q – изваждащ брояч. Реверсивният избира с U/D.