Читаем Искусство схемотехники. Том 2 [Изд.4-е] полностью

/** Inputs **/

Pin = elk; /* clock — positive edge */

Pin = c0; /* coin type — low bit */

Pin = c1; /* coin type — high bit */

Pin = reset; /* reset input */


/** Outputs **/

Pin 18 = !Q0; /* bit 0 of state variable */

Pin 17 = !Q1; /* bit 1 */

Pin 16 = !Q2; /* bit 2 */

Pin 15 = !bottle; /* bottle disgorge command */


/* Define machine states with symbolic names;

"enough" = 25 cents or more */


$define S0 'b'000

$define S5 'b'001

$define S10 'b'010

$define S15 'b'011

$define S20 'b'100

$define ENOUGH 'b'101


/* define intermediate variables */

nocoin = !c0 & !c1 & !reset;

nicke1 = c0 & !c1 & !reset;

dime = !c0 & c1 & !reset;

quarter = c0 & c1 & !reset;


/* Define state bit variable field */

field statebit = [Q2..0];


/* Transition rules for vending machine */

sequence statebit {


present S0 if nocoin next S0;

     if nicke1 next S5;

     if dime next S10;

     if quarter next ENOUGH out bottle;


present S5 if nocoin next S5

     if nicke1 next S10;

     if dime next S15;

     if quarter next ENOUGH out bottle;


present S10 if nocoin next S10

     if nicke1 next S15;

     if dime next S20;

     if quarter next ENOUGH out bottle;


present S15 if nocoin next S15

     if nicke1 next S20;

     if dime next ENOUGH out bottle;

     if quarter next ENOUGH out bottle;


present S20 if nocoin next S20

     if nicke1 next ENOUGH out bottle;

     if dime next ENOUGH out bottle;

     if quarter next ENOUGH out bottle;

present ENOUGH next S0; }


Рис. 8.81. Спецификация торгового автомата на языке CUPL.


Как и прежде, мы начнем с определения входных-выходных контактов. Заметим, что мы добавили вход reset (сброс) так, чтобы вы могли перейти к начальному состоянию S0 (нет монеты). Затем мы определим состояния, потом правила перехода между ними. Если какие-либо выходы, либо регистровые, либо комбинационные, необходимо генерировать в течение состояний или переходов между состояниями, они определяются в то же самое время. В этом примере выход «бутылка» специфицируется как раздельный выходной регистр, т. е. выходные состояния дешифрировать не нужно. Фактически нужен только выход, а биты Q0-2 машины состояний могут быть представлены во внутренних регистрах, которые не генерируют прямо выводы; некоторые программируемые логические устройства имеют также внутренние регистры в дополнение к обычным выходным регистрам.

Заметим, что вы должны определить точно переход из некоторого состояния в себя, также, как мы делали для входа «нет монеты». Неопределенное условие безусловно сбрасывает состояние во все нули. Это происходит потому, что эти условия собираются в комбинационную логику для выставления на D-входы регистров и, таким образом, если условие не удовлетворяется, то соответствующий D-вход не подтверждается. Рис. 8.82 показывает вывод из языка CUPL.


Перейти на страницу:

Похожие книги

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию, елочные огни, электронные украшения, устройство преобразования звука, кодовый замок и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий. Во втором издании существенно переработан текст книги, в экспериментах используются более доступные электронные компоненты, добавлены новые проекты, в том числе с контроллером Arduino.

Чарльз Платт

Радиоэлектроника / Технические науки
Искусство схемотехники. Том 3 (Изд.4-е)
Искусство схемотехники. Том 3 (Изд.4-е)

Широко известная читателю по предыдущим изданиям монография известных американских специалистов посвящена быстро развивающимся областям электроники. В ней приведены наиболее интересные технические решения, а также анализируются ошибки разработчиков аппаратуры: внимание читателя сосредотачивается на тонких аспектах проектирования и применения электронных схем. На русском языке издается в трех томах. Том 3 содержит сведения о микропроцессорах, радиотехнических схемах, методах измерения и обработки сигналов, принципах конструирования аппаратуры и проектирования маломощных устройств, а также обширные приложения. Для специалистов в области электроники, автоматики, вычислительной техники, а также студентов соответствующих специальностей вузов и техникумов.

Уинфилд Хилл , Пауль Хоровиц

Техника / Радиоэлектроника