Слаботочка Книги

1 2 3 4 5 6 7 8 [9] 10 11 12 13

Полная программа для LOAD и RUN зависит от числа каналов. Сигнал для каждо канала устанавливается на соответствующем разряде выходного порта путем запк в него чисел 1,2,4,8,16,32,64,128 командой OUT 31,N.

Для двух каналов введите:

10 FORX-0TO40

20 READN

30 POKE(64000+X),N

40 NEXT X

50 DATA 219,24,71,62,1,211,31,5.32,253,62,0,211,31, 219,25,71,62,2,211,31,5,32,253,62,0,211,31, 6,255,5,32,253,6,255,5,32,253,195,255,249 60 LET 1-USR 64000 Сохраните программу и запустите ее. Простая программа на БЕЙСИКЕ использующая АЦП, микрофон с усилителем I выходной порт или ЦАП может распознавать до 8 различных команд подавае голосом через микрофон.

10 PRINT THE FOLLOWING WORDS WILL APPEAR : PRINT: PRINT ON THE SCREEN AT 1 SECOND : PRINT: PRINT INTERVALS : PRINT

20 INK 2: PRINT LEFT : PRINT: PRINT RIGHT : PRINT: PRINT UP : PRINT: PRINT DOWN

30 INK 0: PRINT : PRINT TO ACTIVATE, START AND STOP : PRINT: PRINT - BY CALUNG : PRINT : PRINT press any key

31 INK 0: PRINT : PRINT TO ACTIVATE, START AND STOP : PRINT: PRINT BY CALUNG : PRINT : PRINT press any key

40 PAUSE o: CLS 50 FOR x-1 TO 4: GO SUB 300+x

60 FOR z-1 TO 100: IF IN 30-0 THEN NEXT z: GO TO 80 70 OUT 31,2x: CLS : PRINT AT 3,0; ACTIVATED ; GO SUB 400: OUT

31,0: CLS 80 NEXTx 90 GOTO50

301 PRINT AT 0,8; UP : RETURN

302 PRINT AT 0,8;DOWN : RETURN

303 PRINT AT 0,8; LEFT : RETURN

304 PRINT AT 0,8 ; RIGHT : RETURN 400 RETURN

Команды появляются на экране последовательно, с периоднчночтью 1 секунда. Когда появляется требуемая команда оператор говорит в микрофон и в соответствующий данной команде разряд выходного порта записывается 1 . Эта команда будет выполняться до тех пор пока не будет произнесено следующее слово. Такая последовательность повторяется неопределенно долго.

Микрофон улавливает любые звуки, так что в нашем случае достаточно стука. Если фоновые ы1умы высоки, то IN30 никоща не будет равно О , поэтому порог нужно увеличить до 50 или около тош, в соответствии с условиями.

Программу можно усовершенствовать путем добавления звука и графики, но это оставляем для экспериментов пользователей.

Количество и назначение команд может изменяться по сравнению с приведенными в программе, в соответствии с индивидуальными потребностями.

5.5. РЕВЕРБЕРАТОР

При подключении ЦАП и АЦП к СПЕКТРУМУ для записи и воспроизведения звука, его можно использовать в качестве ревербератора, т.е. устройсгаа создающего эхо. Для этого служит программа в машинных кодах:

Мнемоника

Id de,40960

Id hl,5120

Id a,(de) out(31),a

in a(30)

Id Id

(de),a b,50

dec b jr nz,-3

incde dechl Id or jr

Id or

a,l a

nz,-17

a,h a

nz,-21 64000

Десятичный код

Комевтарий (64000 - стартовый адрес)

Количество выборок в цикле.

Ввод/вывод.

Задержка.

Счетчик выборок.

Возврат в начало про1раммы.



программа заполняет в памяти область начиная с адреса 40960 выборками входного сигнала. После записи 5120 выборок программа возвращается к адресу 40960 н выводит первый байт. Сразу за этим в ячейку записывается новая выборка звукового сигнала. Эта последовательность повторяется циклически. Записанный звук воспроизводится через 1 секунду, что воспринимается как эко. Последовательность работы программы демонстрируется в таблице:

Цикл!

Цикл 2

ЦиклЗ

Адрес

40960

40961

40962

40963

. .

>

20 30 40 50

FOR х-0 ТО 29 READn

РОКЕ (6400+х),П NEXTx

DATA 17,0,160,33,0.14,26,211,31,219.30,18,6,504.32,253,19, 43,125,183.32,239,124,183,32,235,195,255.249 PRINT ECHO : PRINT: PRINT Once RUN Ihis program саппоГ: PRINT: PRINT be stopped. : PRINT: PRINT The echo deley can be changed by : PRINT: PRINT stopping, then changing the : PRINT: PRINT number following 6 in line 50 : PRINT : PRINT for anumber 0 TO 255 : PRINT: PRINT NOW PRESS ANY KEY PAUSE 0 LET 1-USR 64000

Поскольку эта программа в машинных кодах не может быть прервана после зап ска, она будет генерировать эхо до выключения компьютера. Длина эхо может per лироваться двумя способами. Во-первых, ее можно регулировать изменяя число защ гружаемое в регистровую пару HL. Это число определяет количество выборок в циклеД Во-вторых, изменяя число загружаемое в регистр В можно настраивать задержку между выборками. Для высококачественного звучания задержку между выборками нужно уменьшать, а их количество увеличивать, хотя это приводит к тому, что используется все большая область памяти СПЕКТРУМА.

5.6. УПРАВЛЕНИЕ МОДЕЛЬЮ ЖЕЛЕЗНОЙ ДОРОГИ

в этом проекте используются совместно ЦАП и АЦП для управления 8-ю элементами железной дороги, такими как участки пути, стрелки, подъемные краны, огни, сигналы и т.д. Управление осуществляется сигналами выходного порта через штро-ны, реле или полевые транзисторы.

1 BORDER 5: PAPER 5: INK 0: CLEAR 44500: CLS

2 FORx-OTO 41

3 READn

4 POKE(65240+x),n?; S

5 NEXTx Штъ

6 DATA 17,215,227,33,0,64,6,27,197,6,0.126,18,19.35,16,249,19 3,16,244,201.17,0,64,33,215,227,6.27,197.6.0,126,18,19,35,16, 249,193,16,244,201

FOR g-610 TO 690 STEP lO GO SUB g: NEXT g LET MJSR 65240 У

DIMa(8): DlMbXlOO): DlMp(lOO): DIM q(10): DIMDIMc(8) LET z-O: LET y-0: LET g-0 PRINT AT 0,0;:AUTO TRAIN CONTROUER* PRINT -TYPE THE NUMBER OF EY©<TS, : PRINT PRINT FOLLOWED BY 8 DIGlfBlNARY CODES PRINT AT 19,0. AND THE ШТЕ RVAL DURFTIONS : PRINT PRINT USING THE ABOVE CIRC UIT. TYPE 0 PAUSE 0: LET HUSR 65261 INPUT number of events PRINT event period FORn-lTOa

INPUT type 8-dtt number :b(n)

PRINTn W, fmr4

INPUT type Interval up 10 255 ,p(B) I fkJ Ш PRINT TAB 6;b(n),TAB 20,p(n)-* ? 1

LETiHKto) -cf&k Щ

GO SUB 230 POKE (4000O4-2*n).y POKE (40001+2*n),p(n) NEXTn

90 100 110 120 130 140 150 160 170 180 190 200 210 220 225 230 235 240 250

CLS: PRINT PRESS ANY KEY TO START OPERATION : PAUSE 0 GO TO 300 LET y-0

F0RV-8T01 STEP-1

IFINT ((10(v-l))-z)<H) THEN LETq(v)-2(v-l): GO TO 260 IF INT ((10(v-l))-z)>0 THEN LET q(v)-0: GO TO 270



260 270 280 290 300 305 310 320 330 340 350 360 364 365 366 370 380

500 505 510 520

530 540 550 560 610

620 630 640 650 660 670 680 690

LETz-(z-(10(v-l)))

LETy-y+q(v)

NEXTv

RETURN

FOR b-1 TO g

LET 1-USR 65261

LETy-PEEK (4000(H-2*b)

OUT31,y

GO SUB 500

PRINT at 0,0; INK 0; event ;b; ;z

PRINT TAB 17; INK 7; period ;b; -;PEEK (40001+2*b)

PAUSE PEEK (40001+2*b)

FOR w-1 TO 4

IF IN (c (w)) <200 THEN GO TO 365

NEXTw

NEXTb

LET 1-USR 65261: PRINT FINISH. TYPE ANY KEY TO REPEAT. PAUSE 0: GO TO 300 LET z-0

F0RW-8T0 1STEP-1

IF INT (y-(2(w-l)))<0THEN LETa(w)-0: go to 540

IF INT (y-(2(w-1)))>-0 THEN LET a(w)-1(w-1): FLASH 1:

GO SUB 600+10 w: FLASH 0: LETc(w)-23+w

LETy-(y-(2(w-l)))

LETz-z+a(w)

NEXTw

RETURN

INKO: PRINT AT 5,5; ;AT 5,6; ;AT 5,25; ,AT 5,26; : PRINT AT 16,4; ;AT16,27; ;AT6,4; ;AT6,27; : FOR x-1 TO 9: PRINT AT (6-x),3; .AT (6+x),28; : NEXTx: FOR x-1 TO 22: PRINT AT 17,(4+x); : NEXTx : RETURN FOR x-1 TO 12: PRINT AT 5, (9+x); : NEXT x: RETURN INK 1: FOR x-12 TO 21: PRINT AT 7,x; : NEXT x: RETURN INK 6: FOR x-12 TO 26: PRINT AT 9.x; : NEXT x: RETURN INK 2: PRINT AT 5,7; ;AT 6,8; : RETURN INK 4: PRINT AT 7,9; ;AT 8,10; ;AT 9,11; : RETURN INK 2: PRINT AT 5,24; ;A 6.23; ;AT 7,22; : RETURN PRINT AT 14,9; INK 0; B-Forward/reverse : RETURN INK 2: PRINT AT 5,8; ;AT 5,9; ;AT 5,22; ;AT 5,23; : INK 4: PRINT AT 7,10; ;AT 7,1 1; : INK 0: PRINT AT 4, 15; 2 ; AT6,12; STATION ;AT6.20; 3 ;AT6,24; 7 ;AT6,7; 5 ;AT 8,9; 6 ; AT 10,21; 4 ;AT 10,2; 1 : RETURN

Программа состоит из следующих составных частей:

строки 1-6 7-9 10-80 90-210 230-290 300-360 365

500-560 610-690

программа в машинных кодах LARGE , запись конфигурации железнодорожных путей в память, инструкции.

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

. вывод на экран схемы железной дороги.

Программа может управлять одним или двумя поездами на участке пути простой конфигурации, обеспечивая остановку поезда (поездов) в необходимых точках маршрута. Поезд может двигаться до тех пор; пока не будет обнаружен датчиком положения поезда. В качест!* такого дотчика может служить и фоточувствительный элемент описанный в разделе 3.6 и участок пути закорачиемый колесами поезда.

Ручное управление позволяет переходить от одного запграммированного состояния к другому при нажатии на любую клавишу. Для этого строку 360 заменяют на:

360 IF INKEY$- THEN GOTO 360 # или

360 PAUSED

Для предотвращения крушений при нарушении участка пути в программу можно добавить строки проверяющиезапрещенные положения. Например: 185 IFP(1)-P(5)-P(2)-1 OR(P(5y-l AND Р(7)-0) OR Р(2)-Р(3)-1 OR Р(3)-Р(4)-1 ORP(2)-P(7)-P(l)-l OR P(2)-P(4)-l THEN PRINT ILLEGAL ENTRY*:GOTO 130

5.7. БЫТОВАЯ СИСТЕМА УПРАВЛЕНИЯ ОТОПЛЕНИЕМ

в разделе 4.10 описано уоройство, которое по заданной программе через каждые 15 минут выключало и включало соответствующие насосы и клапаны ( до 8 штук). Путем добавления к этой системе температурных датчиков; подобных описаиному в разделе 3,10, СПЕКТРУМ получает возможность контролировать температуру в 8-ми местах и включать (или выключать) соответствующие насосы; клапана или электрообогреватели.

Типичная программа может бьггь:

110 DIMP(IO)

120 LETZH)

130 FOR Х-1 ТО 8

140 LETP(X)-0

150 IFIN (23+ХХ20 THENLETP(X)-2(X-1)

160 NEXTX

170 FOR Х-1 ТО 8

180 LETZ-Z+P(X)

190 NEXTX

200 OUT31,Z




1 2 3 4 5 6 7 8 [9] 10 11 12 13
Яндекс.Метрика