Цифровая логика - карта Карно - PullRequest
4 голосов
/ 18 октября 2011

Начальная проблема начинается следующим образом.Есть 6 штатов.В каждом состоянии, когда w = 1, переходите в следующее состояние, когда w = 0, а затем оставайтесь в текущем состоянии.В каждом состоянии отображать номер с помощью стандартного 7 светодиодного дисплея (BCD).Эти цифры 8 -> 1 -> 9 -> 4 -> 2 -> 2.

Итак, вот моя попытка решить эту проблему.Я начинаю с таблицы состояний: слева направо y2, y1, y0

    w=0  w=1  a  b  c  d  e  f  g
000|000  001  1  1  1  1  1  1  1
001|001  010  0  1  1  0  0  0  0
010|010  011  1  1  1  1  0  1  1
011|011  100  0  1  1  0  0  1  1
100|100  101  1  1  0  1  1  0  1
101|101  000  1  1  0  1  1  0  1

Затем уравнения Yo Y1 и Y2 составляются с использованием карт Карно

    y1.y0               _        _
w.y2 00 01 11 10   Y0 = w.y0 + w.y0
  00 0  1  1  0    
  01 0  1  d  d
  11 1  0  d  d
  10 1  0  0  1

    y1.y0               _        _  _            _
w.y2 00 01 11 10   Y1 = w.y1 + w.y2.y1.y0 + w.y1.y0
  00 0  0  1  1
  01 0  0  d  d
  11 0  0  d  d
  10 0  1  0  1

    y1.y0               _      _  _  _
w.y2 00 01 11 10   Y2 = w.y2 + y2.y1.y0 + w.y1.y0
  00 0  0  0  0
  01 1  1  d  d
  11 1  0  d  d 
  10 0  0  1  0

Затем необходимо добавить выходыкарты созданы.

    Y1.Y0                     _  _ 
  Y2    00 01 11 10  a = Y2 + Y0.Y2
      0 1  0  0  1
      1 1  1  d  d


    Y1.Y0              
  Y2    00 01 11 10  b = 1
      0 1  1  1  1
      1 1  1  d  d


    Y1.Y0                _
  Y2    00 01 11 10  c = Y2
      0 1  1  1  1
      1 0  0  d  d


    Y1.Y0                     _  _  
  Y2    00 01 11 10  d = Y2 + Y0.Y2 
      0 1  0  0  1
      1 1  1  d  d


    Y1.Y0                     _  _  _
  Y2    00 01 11 10  e = Y2 + Y0.Y1.Y2
      0 1  0  0  0
      1 1  1  d  d


    Y1.Y0                _  _
  Y2    00 01 11 10  f = Y2.Y0 + Y1
      0 1  0  1  1
      1 0  0  d  d


    Y1.Y0                          _  _
  Y2    00 01 11 10  g = Y1 + Y2 + Y1.Y0
      0 1  0  1  1
      1 1  1  d  d

В настоящее время я использую 3-битный счетчик триггера D для создания 6 входов.

На дисплее отображается.

 _        _        _
|_|   |  |_|  |_|   |
|_| |     _|    | |_   _

Есть лиошибка с логикой или возможно, что счетчик мог создать эту проблему?

Ответы [ 2 ]

1 голос
/ 12 декабря 2011

Повторный набор всего вопроса помог мне разобраться в той части, которая была сделана неправильно.

Проблема была в карте Карно Y2.

Просматривая результаты, я смогчтобы увидеть, какие контакты не работали, и отследить их до источника ошибки.

0 голосов
/ 16 мая 2012

Как я понял, у вашего конечного автомата есть 6 состояний? А в двух последних штатах должна отображаться одна и та же цифра?

Я думаю, что это возможно сделать с T-триггерами.

1) Подключите каждый выход триггера Т к входу следующих трех триггеров, необходимых для удержания 6 состояний.

2) Вам нужна «схема сброса», которая сбрасывает все триггеры, когда комбинация на выходах равна 110 (6). Таким образом, выходные данные на w = 1 из T триггеров будут следующими: 000 w 001 w 010 w 011 w 100 w 101 w 110-> 000 * w 001 и т. Д. (* Reset переводит триггеры в состояние init). Это первая функция: RST.

3) Необходимо создать кодировщик, преобразующий коды от 0 до 5 до 7 сигналов на светодиодный дисплей.

Итак, таблица biuilt ruth будет выглядеть следующим образом:

#TABLE: t3,t2,t1 => a,b,c,d,e,f,g,RST
 000 => 11111110
 001 => 01100000
 010 => 11110110
 011 => 01100110
 100 => 11011010
 101 => 11011010
 110 => 00000001
 111 => 00000000

Создайте 8 K-Maps и сверните их или используйте любой другой метод минимизации. Я получил этот результат:

a = t3 !t2 | !t3 !t1;
b = !t3 | t3 !t2;
c = !t3;
d = t3 !t2 | !t3 !t1;
e = !t2 !t1 | t3 !t2;
f = !t3 t2 | !t3 !t1;
g = !t3 t2 | t3 !t2 | !t3 !t1;
RST = t3 t2 !t1;
...