16-разрядный генератор псевдослучайных чисел
Страница 2
описывает состояние одного элемента из микросхемы. Микросхема К555ЛП5 потребляет ток 10 мА.
Четыре логических элемента 2ИЛИ. Микросхема имеет два вход на каждый элемент, на выходу вырабатывается сигнал логического ИЛИ.
Два логических элемента 4И — НЕ с открытым коллекторным входом и повышенной нагрузочной способностью.
Шесть логических элементов НЕ.
По заданию необходимо построить схему усовершенствованного 16-разрядного генератора псевдослучайных чисел, в котором число 0 включено в последовательность случайных чисел. Для осуществления этой цели были выбраны четыре сдвиговых регистра влево, выходы которого выдают число на выходную шину. ( В начале работы в регистры заносится число 4146h. Возможно так же занесение любого другого числа. Для этого необходимо подключить к входам параллельного ввода информации регистров: “землю”, если необходимо записать ноль в соответствующий разряд и пятый выход входной шины, если необходимо записать единицу.)
Затем, на входы последовательного ввода информации каждого регистра, поступает уровень записываемого сигнала, который получается по функции
D = Q3 Å Q4, (1)
где Q3 и Q4 это выходы соседних регистров.
В результате, по срезу импульса С (по нажатию кнопки SB1) в регистр записывается уровень сигнала со сдвигом влево.
Связь регистров между собой: уровень для регистра DD1 формируется с выходов регистра DD4, для DD2 – с выходов регистра DD1, для DD3 – с выходов регистра DD2, а для DD4 – с выходов регистра DD3,
В процессе работы устройства происходит проверка на выдачу регистрами чисел 0000h или FFFFh, причем при появлении числа FFFFh в регистры заносится число 0000h, а при появлении 0000h в регистры заносится число 414Bh (т е. число соответствующее включению схемы).
Чтобы реализовать индикацию числа были выбраны светодиоды, на которые поступаю инвертированные сигналы от регистров. Светодиоды подключены в обратном направлении, через сопротивление R3. Как только в разрядах регистров появляется высокие уровни сигнала, соответствующие им светодиоды загораются зеленым светом.
| |||||||||||
| |||||||||||
| |||||||||||
Адрес |
Код |
Метка |
Мнемокод |
Комментарий |
1000 |
0E 02 |
FRANDOM: |
MVI C,2 |
;Занесение числа в регистр C ;(установили первый счетчик). |
1002 |
7D |
MALKOT1: |
MOV A,L |
;Заносим содержимое регистра L в ;аккумулятор. |
1003 |
E6 07 |
ANI 7 |
;Все биты кроме трех младших ;устанавливаем в 0. | |
1005 |
3C |
INR A | ||
1006 |
71 |
MOV B,A |
;Заносим содержимое аккумулятора ;в регистр B(установили счетчик2). | |
1007 |
7D |
MOV A,L |
;Заносим содержимое регистра L в ;аккумулятор. | |
;Производим действия над ;аккумулятором, такие как: | ||||
1008 |
C6 41 |
MALKOT2: |
ADI 41H |
;Сложения байта с содержимым ;аккумулятора. |
100A |
07 |
RLC |
;Циклический сдвиг содержимого ;аккумулятора влево. | |
100B |
0B |
DCR B |
;Уменьшаем первый счетчик рег.В | |
100C |
C2 08 10 |
JNZ MALKOT2 |
;Если содержимое счетчика не 0, ;переход по метке MALKOT. | |
100F |
6F |
MOV L,A |
;Иначе, заносим содержимое ;аккумулятора в регистр L. | |
1010 |
0D |
DCR C |
;Уменьшаем второй счетчик рег.С | |
1011 |
CA 1A 10 |
JZ END |
;Если счетчик равен нулю то переход ;на конец программы, по метке END | |
1014 |
44 |
MOV B,H |
;Меняем местами содержимое | |
1015 |
65 |
MOV H,L |
;регистров Н и L при помощи | |
1016 |
68 |
MOV L,B |
;промежуточного регистра В | |
1017 |
C3 0210 |
JMP MALKOT1 |
;Если содержимое регистра не 0, ;переход по метке FRANDOM | |
101A |
C9 |
END: |
RET |
;Иначе выход из подпрограммы |