Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Асинхронний лічильник з модулем 10
Лічильник за модулем 10 рахує від 0000 до 1001 (від 0 до 9 в десятковій системі), тобто перші 10 комбінацій в табл. 7.3.1. Ми бачимо, що для цього потрібно чотири двійкових розряди: розряд одиниць, розряд двійок, розряд четвірок і розряд вісімок.
Рис. 7.3.3. Логічна схема лічильника за модулем 10
Такий лічильник можливо реалізувати на чотирьох тригерах, з’єднаних по схемі описаного вище асинхронного лічильника. В схему потрібно додатково ввести логічний елемент І-НЕ (рис. 7.3.3) для встановлення всіх тригерів в нульовий стан, очищення лічильника, з приходом десятого імпульсу (тобто з приходом першого імпульсу після того, як лічильник нарахував до 1001 – 9 в десятковій системі). Принцип використання такого логічного елемента стає зрозумілим якщо розглянути яке двійкове число настає за 1001. З табл. 7.3.1 видно, що цим числом є 1010 (10 в десятковій системі). При поданні логічної 1, що міститься в розрядах двійок і вісімок двійкового числа 1010, на входи логічного елемента І-НЕ (як показано на рис. 7.3.3), цей елемент встановить всі тригери в стан 0. Лічильник почне рахувати від 0000 до 1001. Таким чином, логічний елемент І-НЕ забезпечує встановлення лічильника в стан 0000. Подібне використання логічного елемента І-НЕ дозволяє створити лічильники з деякими іншими значеннями модуля. На рис. 7.3.3 показано функціональну схему асинхронного лічильника за модулем 10. Цей лічильник можливо також назвати декадним (десятковим) лічильником.
Лічильник віднімання Вище було описано лічильники, що рахують в прямому напрямку (0, 1, 2,...). Однак в деяких цифрових системах з’являється необхідність рахування в зворотному напрямку (9, 8, 7, 6,...). Лічильники, які рахують від більших чисел до менших називають лічильниками віднімання, або лічильниками зворотної дії. Схема асинхронного лічильника віднімання за модулем 8 показано на рис. 7.3.4, відповідна відлікова послідовність чисел наведена в табл. 7.3.2.
Рис. 7.3.4. Логічна схема асинхронного 3-розрядного лічильника віднімання
Табл. 7.3.2. Відлікова послідовність для 3-розрядного лічильника віднімання
Треба звернути увагу на те, що схема лічильника віднімання нагадує схему лічильника прямої дії на рис. 7.3.1. Єдиною відмінністю є спосіб переносу від тригера Т1 до тригера Т2 і від тригера Т2 до тригера Т3. В лічильнику прямої дії синхронізуючий вхід кожного тригера пов’язаний з інверсним виходом Q попереднього тригера. Зауважимо, що в лічильнику відліку перед початком відліку в зворотному напрямку передбачене його попереднє встановлення в стан 111 (деcяткове число 7) за допомогою входу предвстановлення (PRN). Тригер Т3 – двійковий лічильник розряду одиниць (стовпець T1). Тригер Т2 – лічильник розряду двійок (стовпець T2). Тригер Т3 – лічильник розряду четвірок (стовпець T3).
7.3.4 Програми реалізації лічильників в інтегрованому середовищі MAX+PLUS II Програма для реалізації 4-розрядного асинхронного лічильника з крізним переносом за модулем 16 за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд: title "counter1"; parameters (WIDTH = 4); - встановлення розрядності лічильника assert (WIDTH > 0) - перевірка розрядності лічильника report "Value of WIDTH parameter must be greater then %" WIDTH severity error; subdesign counter1 ( CLK: input; - імпульси синхронізації (CLK) лічильника RESET: input; - імпульси зкидання (CLRN) тригерів лічильника SET: input; - імпульси предвстановлеення (PRN) тригерів лічильника O [WIDTH..1]: output; - вихід лічильника ) variable TRIGGER [WIDTH..1]: JKFF; begin TRIGGER [WIDTH..1].j = vcc; TRIGGER [WIDTH..1].k = vcc; TRIGGER [WIDTH..1].clrn =!RESET; TRIGGER [WIDTH..1].prn =!SET; TRIGGER [WIDTH].clk =!CLK; TRIGGER [WIDTH-1..1].clk =!TRIGGER [WIDTH..2].q; O [WIDTH..1] = TRIGGER [1..WIDTH].q; end; Програма для реалізації асинхронного лічильника за модулем 10 за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд: title "counter2"; parameters (WIDTH = 4); - встановлення розрядності лічильника assert (WIDTH > 0) - перевірка розрядності лічильника report "Value of WIDTH parameter must be greater then %" WIDTH severity error; subdesign counter2 ( CLK: input; - імпульси синхронізації (CLK) лічильника SET: input; - імпульси предвстановлення (PRN) тригерів лічильника O [WIDTH..1]: output; - вихід лічильника
) variable TRIGGER [WIDTH..1]: JKFF; begin TRIGGER [WIDTH..1].j = vcc; TRIGGER [WIDTH..1].k = vcc; TRIGGER [WIDTH..1].prn =!SET; TRIGGER [WIDTH].clk =!CLK; TRIGGER [WIDTH-1..1].clk =!TRIGGER [WIDTH..2].q; TRIGGER [WIDTH..1].clrn = (TRIGGER [3].q!& TRIGGER [1].q); O [WIDTH..1] = TRIGGER [1..WIDTH].q; end; Програма для реалізації 3-розрядного лічильника віднімання за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд: title "counter3"; parameters (WIDTH = 3); - встановлення розрядності лічильника assert (WIDTH > 0) - перевірка розрядності лічильника report "Value of WIDTH parameter must be greater then %" WIDTH severity Error; subdesign counter3 ( CLK: input; - імпульси синхронізації (CLK) лічильника RESET: input; - імпульси зкидання (CLRN) тригерів лічильника SET: input; - імпульси предвстановлення (PRN) тригерів лічильника O[WIDTH..1]: output; - вихід лічильника ) variable TRIGGER[WIDTH..1]: JKFF; begin TRIGGER [WIDTH..1].j = vcc; TRIGGER [WIDTH..1].k = vcc; TRIGGER [WIDTH..1].clrn =!RESET; TRIGGER [WIDTH..1].prn =!SET; TRIGGER [WIDTH..1].clk = (CLK,!TRIGGER [WIDTH..2].q); O [WIDTH..1] =!TRIGGER [1..WIDTH].q; end; Програма для реалізації 3-розрядного універсального лічильника за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд: title "counter4"; parameters (WIDTH = 3); - встановлення розрядності лічильника assert (WIDTH > 0) - перевірка розрядності лічильника report "Value of WIDTH parameter must be greater then %" WIDTH severity Error; subdesign counter4 ( CLK: input; - імпульси синхронізації (CLK) лічильника SET: input; - імпульси предвстановлення (PRN) тригерів лічильника RESET: input; - імпульси зкидання (CLRN) тригерів лічильника FWC: input; BWC: input; O[WIDTH..1]: output; - вихід лічильника ) variable TRIGGER[WIDTH..1]: JKFF; begin TRIGGER[].j = vcc; TRIGGER[].k = vcc; TRIGGER[].prn =!SET; TRIGGER[].clrn =!RESET; TRIGGER[WIDTH].clk =!CLK; TRIGGER[WIDTH-1..1].clk =!((TRIGGER[WIDTH..2].q &!FWC) &!(!TRIGGER[WIDTH..2].q &!BWC)); O[WIDTH..1] = TRIGGER[1..WIDTH].q; end; - Примітка: - Значення входів, що відповідают вставленню відліку лічильника в - зростаючому напрямку: - FWC = 1; - BWC = 0. - Значення входів, що відповідают вставленню відліку лічильника в - спадаючому напрямку: - FWC = 0; - BWC = 1.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-02-06; просмотров: 194; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.69.152 (0.022 с.) |