Page 25 - 6636
P. 25

Семисегментним  індикатором  можна  керувати  статично
                            або динамічно. При статичному керуванні розряди індикатора
                            підключені  до мікроконтролера  незалежно один від  одного і
                            інформація на них виводиться постійно. Цей спосіб керування
                            простіший  за  динамічний,  але  без  використання  додаткових
                            елементів,  як-то  зсувні  регістри,  підключити  багаторозрядні
                            семисегментні індикатори до мікроконтролера є проблемати-
                            чно - може не вистачити виводів.
                                Динамічне керування (динамічна індикація) полягає у по-
                            черговому запалюванні розрядів індикатора з частотою, що не
                            сприймається людським оком. Схема підключення індикатора
                            в цьому випадку використовує менше виводів мікроконтроле-
                            ра.


                                        Завдання для самостійної підготовки

                                Засвоїти теоретичний матеріал згідно з такими питаннями.
                                1  Семисегментні  індикатори  і  табла.  Семисегментні  де-
                            шифратори.
                                2  Двійково-десятковий код.
                                3  Статична і динамічна індикація.

                                           Завдання на практичне заняття

                                Створити схему пристрою відліку часу у секундах в сере-
                            довищі Proteus (рис. 5.2). Блок-схема алгоритму приведена на
                            рис 5.3, 5.4. Написану програму відкомпілювати і перевірити
                            працездатність шляхом інтерактивного моделювання.
                                Для коректного виводу даних на семисегментне табло по-
                            трібно  здійснювати  перетворення  даних  з  двійкового  коду  у
                            двійково-десятковий.       Фрагмент      тексту     підпрограми
                            decode_bcd для перетворення виглядає наступним чином:
                            void decode_bcd(void){
                            int16 mod=sec;
                            digits[3]=mod/1000;
                            mod=mod%1000;
                            digits[2]=mod/100;
                            mod=mod%100;
                            digits[1]=mod/10;

                                                           24
   20   21   22   23   24   25   26   27   28   29   30