23.12.2024, Понедельник, 12:43
28.11.2013 в 00:57
Преобразователь для цифровой индикации крупным планом

Преобразователь для цифровой индикации в базисе И-НЕ.


Один из способов цифровой индикации состоит в следующем.

Имеется семь элементов, расположенных так, как показано на рис. а. Каждый элемент может светиться либо не светиться, в зависимости от значения соответствующей логической переменной, управляющей его свечением. Вызывая свечение элементов в определённых комбинациях, можно получить изображение десятичных цифр 0, 1, 9 (рис.б). 


Десятичные цифры, отображение которых необходимо вызвать, задаются обычно в двоичном коде. При этом возникает задача формирования логических переменных y1, y2, ..., y7 для управления отдельными элементами в устройстве индикации. Таблица истинности для этих переменных представлена ниже.

 

Десятичная
цифра

Двоичный код 8421

Состояние элементов (z1, ..., z7) и
значение управляющих
сигналов (y1, ..., y7)

x4

x3

x2

x1

image370.gif (79 bytes)1

image370.gif (79 bytes)2

image371.gif (79 bytes)3

image370.gif (79 bytes)4

image370.gif (79 bytes)5

image370.gif (79 bytes)6

image370.gif (79 bytes)7

y1

y2

y3

y4

y5

y6

y7

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

1

1

0

0

1

1

1

1

2

0

0

1

0

0

0

1

0

0

1

0

3

0

0

1

1

0

0

0

0

1

1

0

4

0

1

0

0

1

0

0

1

1

0

0

5

0

1

0

1

0

1

0

0

1

0

0

6

0

1

1

0

0

1

0

0

0

0

0

7

0

1

1

1

0

0

0

1

1

1

1

8

1

0

0

0

0

0

0

0

0

0

0

9

1

0

0

1

0

0

0

0

1

0

0


При построении таблицы были приняты следующие условия: если элемент индикатора светится, то это означает, что он находится в состоянии лог. 1, если погашен, то он находится в состоянии лог. 0; управление элементом осуществляется таким образом, что высокий уровень лог. 1 на некотором входе индикатора вызывает гашение соответствующего элемента (т. е. чтобы i-й элемент был погашен и zi = 0, необходимо подать на 1-й вход индикатора управляющий сигнал yi = l). Таким образом, yi = Изображениеi. Например, для высвечивания цифры 0 необходимо погасить 7-й элемент (z7=0), оставив остальные элементы в состоянии свечения; следовательно, при этом управляющий сигнал y7 = l, остальные управляющие сигналы yl, ..., y6 должны иметь уровень лог. 0.

Реализация в Multisim:




При физической реализации в качестве источника сигнала можно воспользоваться либо мультивибратором на инверторах с делителем частоты на 2, 4 и 8 на D-триггерах, либо микроконтроллером, например, ATMega8. На схеме в Протеусе с  формированием разнообразных последовательностей сигналов ("про запас") входам в нашу схему соответствуют выходы порта B 0-4 (пины 14-17):


Листинг прошивки в CodeVisionAVR:


#include <io.h>
#include <delay.h>
unsigned char mask=0b00001000;

void main(void)
{
DDRD = 255; 
PORTD = 224;
DDRB =255;
PORTB = 0;
DDRC = 0b0111111;
PORTC = 0;
while (1)  { 

PORTD++;
PORTB++;
PORTC++;
if (PORTD-224>9) PORTD=224;
if (PORTB>15) PORTB=0;
if (mask == 0b10000000) mask = 0b00001000;
mask = mask<<1;
PORTB=PORTB | mask;
if (PORTC>15) PORTC=0;
delay_ms(500);
PORTB=PORTB ^ mask;
}
}




Количество просмотров: 1772. Комментариев: 1
dth="100%" cellspacing="0" cellpadding="0" class="commTable">
Имя *: Email:
Подписка:1 Код *: