5.6. УПРАВЛЕНИЕ МОДЕЛЬЮ
ЖЕЛЕЗНОЙ ДОРОГИ
В этом проекте используются совместно ЦАП и АЦП для управления 8-ю элемен-
тами железной дороги, такими как участки пути, стрелки, подъемные краны, огни,
сигналы и т.д. Управление осуществляется сигналами выходного порта через оптро-
ны, реле или полевые транзисторы.
1 BORDER 5: PAPER 5: INK 0: CLEAR 44500: CLS
2 FOR xrO TO 41
3 READ о
4 POKE (65240tx) tjgllfP^*
5 NEXTx /'Sf^
6 DATA 17,215^^3,0,35,16,249,19
3,16,244,201 J||),64,33^,227, 6Л197,6,^6,18,19,35,16,
249,193,16,2^201 jjjf ggl
7 FOR g-610 ТЩ90 STEM*: GO SUB g: NEXT^
9 LET l-USR 652% ^ m£
10 Dm a(8): DO^yOO): DnlfWX^DIM qUtypIMDIM c(8)
20 LET z-0: LET уЩ^Т g-0 jf #
40 PRINT AT 0,0;:АЭД||Щ^ TONTRQg®^
50 PRINT "TYPE THE ISfM^^g^^TS^: PRINT
60 PRINT "FOLLOWED BY 8 SWttlNARY CODES"
70 PRINT AT 19,0:"AND THE INTE RVAL DURFTIONS": PRINT
80 PRINT "USING THE ABOVE CIRC UIT. TYPE 0"
90 PAUSE 0: LET l-USR 65261
100 INPUT "number of events "
110 PRINT "event period"
120 FOR n-1 TO a
130 INPUT "type 8-digit number ":b(n)
140 ^jRINTpi J. -W" T F~w~~zi
150 %l# w^|l§iteival иф^'ф)^' ;t % '%
160 РЙ^Т^Щ(п);ТАИ20,р(п)Й % g= ; "iff %
170 L^fz-tKa) A- Jrf- '%
180 GO SUB 230
190 POKE (40000+2*n),y
200 POKE (40001+2*n),p(n)
210 NEXTn
220 CLS : PRINT "PRESS ANY KEY TO START OPERATION": PAUSE 0
225 GO TO 300
230 LETy-0
235 FOR v-8 TO 1 STEP -1
240 IFINT((l(K4(v-l))-z)<-<)THENLETq(v)-2/v(v-l):GOT0 260
250 IF INT ((10^(v-l))-z)>0THEN LETq(v)-0: GOTO 270
260 LETz-Kz-UO^Cv-l)))
270 LETy-y+q(v)
280 NEXT v
290 RETURN
300 FOR b-1 TO g
305 LET 1-USR 65261
310 LET y-PEEK (40000+2*b)
320 OUT 31,у
330 GO SUB 500
340 PRINT at 0,0; INK 0; "event ";b;" ";z
350 PRINT TAB 17; INK 7; "period";b;" ";PEEK <40001+2*b)
360 PAUSE PEEK (40001+2*b)
364 FOR w-1 TO 4
365 IF IN (c (w)) <200 THEN GO TO 365
366 NEXT w
370 NEXTb
380 LET 1-USR 65261: PRINT "FINISH. TYPE ANY KEY TO REPEAT.":
PAUSE 0: GO TO 300
500 LETz-0
505 FOR w-8 TO 1 STEP -1
510 IF INT (у- (2Л (w-1))) <0 THEN LET a (w)-0: go to 540
520 IF INT (y-(2>s(w-l)))>-0THEN LET a(w)-10^(w-l): FLASH 1:
GO SUB 600+10*w: FLASH 0: LET c(w)-23+w
530 LET y(y- (2Л (w-1)))
540 LETz-z+a(w)
550 NEXT w
560 RETURN
610 INK 0: PRINT AT 5,5;" ";AT 5,6;" ";AT 5,25;" ";AT 5,26;" ":
PRINT AT 16,4;" ";AT 16,27;" ";AT 6,4;" ";AT 6,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
620 FOR х-1 TO 12: PRINT AT 5, (9+x);" ": NEXT x: RETURN
630 INK 1: FOR x-12 TO 21: PRINT AT 7,x;" ": NEXT x: RETURN
640 INK 6: FOR x-12 TO 26: PRINT AT 9.x;" ": NEXT x: RETURN
650 INK 2: PRINT AT 5,7;" ";AT 6,8;" ": RETURN
660 INK 4: PRINT AT 7,9;" ";AT 8,10;" ";AT 9,11;" ": RETURN
670 INK 2: PRINT AT 5,24;" ";A 6,23;" ";AT 7,22;" ": RETURN
680 PRINT AT 14,9; INK 0;"BHForward/reverse": RETURN
690 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"; AT 6,12; "STATION"; AT 6,20;"3";AT 6,24;"7";AT 6,7;
"5";AT 8,9;"6"; AT 10,21;"4";AT 10,2; "1": RETURN
Программа состоит из следующих составных частей:
строки 1-6 программа в машинных кодах "LARGE".
7-9 запись конфигурации железнодорожных путей в память.
10-80 инструкции.
90-210 ввод данных задающих последовательность действий модели.
230-290 подпрограмма двоично-десятичных преобразований.
300-360 датчик последовательных состояний.
365 определение положения поезда.
500-560 подпрограмма деелтично-двоичных преобразований.
610-690 вывод на экрансхемы железной дороги.
Программа может управлять одним или двумя шрездами на участке пути простой
конфигурации, обеспечивав остановку поезда (поездов) в необходимых точках мар-
шрута. Поезд может двигаться до тех иор; дока не буйе* обнаружен датчиком поло-
жения поезда. В качестве такото дотчика может служить и фоточувствительный
элемент описанный в разделе 3.6Я участок пути закорачиваемый колесами поезда.
Ручное управление позволяет переходить от одного запрограммированного состо-
яния к другому при нажатии на любую клавишу. Для этою строку 360 заменяют на:
360 IF INKEY $-" * THEN GOTO .360
или
360 PAUSE 0
Для предотвращения крушений при нарушений участка пути в программу можно
добавить строки проверяющие запрещенные положения. Например:
185 IFР(1)—Р(5)-Р(2)-1 ORO*(5)-1 AND Р(7)-0) OR
P(2)-P(3)-l OR P(3)-P(4)-l OR P(2)-P(7)-P(l)-1
OR P(2)-P(4)-l THEN PRINT "ILLEGAL ENTRY":GOTO 130
5-7- БЫТОВАЯ СИСТЕМА
УПРАВЛЕНИЯ ОТОПЛЕНИЕМ
В разделе 4.10 описано устройство, которое по заданной программе через каждые
15 минут выключало и включало соответствующие насосы и клапаны ( до 8 штук).
Путем добавления к этой системе температурных датчиков^ подобных описанному в
разделе ЗЛО, СПЕКТРУМ получает возможность контролигроватьтемператур^ в 8-ми
местах и включать (или выключать) соответствующие насосы; клапана или электро-
обогреватели.
Типичная программа может быть:
110 DIMP(10)
120 LET2H)
130 FOR Х-1 ТО 8
140 LET Р(Х)-Ч)
150 IF IN (23+Х)<20 THEN LET Р(Х)«2л(Х-1)
160 NEXTX
170 FOR Х-1 ТО 8
180 LET Zr-Z+P (X)
190 NEXTX
200 OUT 31,Z
210 GO ТО 120
В строках 130-160 контролируется понижение температуры ниже заданного и в
соответствующий разряд выходного порта записывается "1".
В строках 170-190 вычисляется десятичное число для вывода в строке 200 8-раз-
рядного двоичного числа.
Например, если температура снижена в комнатах 2 и 6, то Р(2)-2 и Р(6)-32, а
Zr-34, что соответствует сигналу на выходе порта 00100010, по которому включаются
насосы 2 и 6.
Бели в разных комнатах необходимо поддерживать различную температуру, то
строки 130-160 придется изменить, например так:
130 FOR Х-1 ТО 5
140 LET Р(Х)-0
150 IF IN 24 < 20 THEN LETP(1)-1:
IF IN 25 < 25 THEN LET P<2)-2:
IF IN 26 < 30 THEN LEN P<3)-4:
IF IN (26+X) < 40 THEN P(3+X)-2P(2+X)
160 NEXTX
Температура может контролироваться и с помощью кондиционеров и охлаждаю-
щих вентиляторов при этом в строке 150 проверка "" заменяется на "". Диапазон
измерения температуры может быть широким от отрицательных температур (напри-
мер в детекторе мороза для гаража) до точки кипения для контроля неисправности
бойлера.
Программа может вырабатывать и звуковой сигнал тревоги при выходе темпера-
туры за заданные пределы. Например:
IF IN 24 < 5 THEN LET P(l)-1: BEEP 1,10
Эта программа может быть использована как подпрограмма в таймере:
10 : РОКЕ 23674,0 РОКЕ 23673,0:РОКЕ 23672,0
20 LET T-INT( (65536*РЕЕК 23674+256*РЕЕК 23673+РЕЕК 23672) /50)
30 IF Q>—7*Т*3600
OR Q<-10*T*3600
OR Q>-15*T*3600
OR Q<—22*1*3600
THEN GO SUB 110
40 IF Q-24*T*3600 GOTO 10
220 RETURN
Строки 110-210 - это программа описанная выше строки 220 RETURN.
Эта программа будет поддерживать трубуемую температуру с 7 до 10 утра и с 3 до
10 вечера. При необходимости в программу могут быть включены более сложные
подпрограммы.
10 DIM а(8): DIM b(100): DIM р (100): DIM q(10)
20 LET z-o: LET y-0: LET q-0
100 INPUT "number of events ";a: LET g-a
105 PRINT g
110 PRINT "event period"
120 FOR n-1 TO a
130 INPUT "type 8-digit number';b(n)
140 PRINT n
150 INPUT "type interval up to 255 ";p(n>
160 PRINT TAB 6;b(n) ;TAB 20;p (n)
170 LET z-b(n)
180 GO SUB 230
190 POKE (40000*-2*n),y
200 POKE (40001+2*n),p(n)
210 NEXTn Л, ч
220 PRINT "press any ke^start program": РАЩЕ 0: GO TO 300
230 LETy-0 Vy-
235 FOR v-8 TO 1 STEP -1
240 IF INT ((1(Г Cvtp)-z)<^THEN LETq(v)-2~(v-l): G0 T0 260
250 IF INT ((lOrtoi))-z)>0THEN LET q(v)-0: GO TO 270
260 I.ET z- (z-(1 O^/v-1))) '/V
270 LET yy+q(v> ;
280 NEXT v
290 RETURN V , :
300 FORHTOg
310 LET y-PEEK (40000+2*b)
320 OUT 31,у
330 GO SUB 500
340 PRINT "event ";b;" ";z
350 PRINT TAB 17;"period ";b;" ";PEEK (40001+2*b)
360 LET Q-PEEK (40001+2*b); GO SUB 600
365 GOSUB 1110
370 NEXTb
380 GO TO 300
500 LET z-Ю Я ^ЕГ" "7. " - " ~ "
505 FOR w-8 TO 1 STEP -1? X- *
510 IF1NT (y-(2^<w-1)))<0THEN LET a(w)-0:G0 TO 540
520 IF INT <y42^w-l)))>4)THEN LET A(w)-10^(w4)
530 LET у—(y- (2^ (w-1)))
540 LET z-z+a(w)
550 NEXTw
560 RETURN
600 POKE 23674,0: POKE 23673,0: POKE 23672,0
610 LET t-INT ((65536*PEEK 23674+256*PEEK 23673+PEEK 23672)/50)
620 IF Q>-t THEN RETURN
630 GO TO 610
1110 DIMp(lO)
1120 LET z-0
1130 FOR х-1 TO 8
1140 LETp(x)-0
1150 IF IN (23+x)<20 THEN LET p(x)-2/v(x-l)
1160 NEXTx
1170 FOR x-1 TO 8
1180 LET z-z-p(x)
1190 NEXTx
1200 OUT 31,z
1210 GOTO 1120
1220 RETURN
5.8. ОХРАННАЯ СИГНАЛИЗАЦИЯ
Эта программа использует 8 входов АЦП вместе с ЦАП или выходным портом для
подачи звукового сигнала тревоги когда по любому из входов сиганал превысит уро-
вень 10.
10 FOR Х-1 ТО В
20 PRINT AT 2*X,0;"INPUT";"X"; IN (23+X)
30 IF IN (23+X) >10 THEN GOTO 100
40 NEXT X
50 GOTO 10
100 PAUSE 100
110 IF IN (23+X) >10 THEN GOTO 130
120 GOTO 40
130 CLS : FLASH 1: PRINT "BREAK IN INPUT"; X; "ALARM"
140 OUT 31,255: GO TO 140
Программа выводит на экран значения входных сигналов для проверки датчиков,
в качестве которых используются:
1. Простые переключатели подсоединенные к дверям и окнам при закрытом состо-
янии которых переключатели замкнуты и вырабатывают "0".
2. Нажимные переключатели большой площади, располагаемые под половиком,
которые в исходном состоянии вырабатывают "0".
3. Датчики использующие инфракрасные лучи.
4. Магнитные или емкостные датчики приближающихся предметов расположен-
ные на главных направлениях вокруг дома.
5. Комбинация всех датчиков.
Подключив отдельный оптрон к любому из выходов порта можно включать допол-
нительный звуковой или световой сигнал тревоги. Программу можно модернизиро-
вать для получения прерывистого сигнала тревоги:
140 OUT 31,255: PAUSE 10: OUT 31,0: PAUSE 10: GOTQ 140
Программа не должна поднимать Tpeeoiy, если муха пересечет инфракрасный луч
или ветер толкнет дверь и входной сигнал АЦП на мгновение возрастет. Строка 100
обеспечивает задержку на несколько секунд для повторной проверки перед подачей
сигнала тревоги.
6. ПОЛЕЗНЫЕ СОВЕТЫ
В этой главе описаны некоторые доработки которые не используют ЦАП или АЦП,
но могут быть очень полезны при эксплуатации СПЕКТРУМА. Диапазон доработок
лежит от дополнительного куска провода до замены клавиатуры. Все они должны
рассматриваться как желательные, но не обязательные.
6.1" ОЖИВЛЕНИЕ " ЗАВИСШЕЙ
СИСТЕМЫ
Иноща при запуск^ программ а маптнньогзодах или программ на БЕЙСИКЕ,
содержащих подпрограммы V машинных кодах, информация на экране пропадает,
причиной этого может i>&ii> одна шш несколько офибок, таких как бесконечные
циклы, отсутствие оператора возврата (201 )^деленй®(£а 0 и т.д. кратковременное
соединение выводов INT и ОВ призйа&атых клавишах SyBjjFT/BREAK может вернуть
обратно управление системе, при нтом пользователь може| продолжить поиск ошибок
или написание программы без перезагрузки. Тем не менёёжорошей привычкой будет
сохранение программi^na всех этгайах ее создания. Эт<^доньшит ущерб при разру-
шении загруженной пЩраммы и^атраты времени на её восстановление. Кнопка
замыкающая вывод INTH QB может бШйу^тановлена нанлате АЦП, ЦАП или любой
другой, а также на небольшой плате специально досланной для кнопки. Порядок
действий в случае "зависаййа- системы следующий:/.
1 Нажать кнопки SHIFT н ШВАКт~--гг /А
2 Один раз нажать кнопку INTv-v vsK^Z
3 Нажать ENTER и на экране появится листинг программы.
Необходимо отметить, что эта операция не всегда приводит к успеху, но дает
дополнительный шанс при "зависании" системы.
6.2. УСИЛИТЕЛЬ ЗВУКА
Динамик в СПЕКТРУМЕ очень мал и звук от него почти не слышен в шумной
комнате. Звук может быть усилен при подключении к разъемам EAR и MIC кассетного
магнитофона, который нужно переключить в режим ЗАПИСЬ и ПАУЗА и установить
наибольщую громкость. __ - — ~Г~ Т —-„
Несложная дорабогка дешевого tpaH3**CTop;»oro приемника фжет предоставить
пользоватёдеоследующие удобства: : Л :
1. Усиление выходного сигоОДВЕЕВдо желаемого уровня. щ р-.,
2. Слуховой контроль сигналов записи и воспроизведения.
3. Усиление выходного сигнала ЦАП.
4. Исключение необходимости переключения штеккеров при загрузке и сохране-
нии программ.
5. Прослушивание радиопередач во время работы на компьютере.
Самые дешевые транзисторные приемники стоят всего 2-3 ф.с. и очень просты.
Внутри корпуса расположена печатная плата на которой установлен ре1улятор уровня
и органы настройки, небольшая 9В батарейка и громкоговоритель. При этом имеется
достаточно свободного пространства для монтажа доработок. Проводники соединяю-
щие радиоприемник и СПЕКТРУМ должны быть около 10 см. Переключатель уста-
навливается между гнездом и штеккером EAR для предупреждения обратной связи,
возможной при подключении всех штеккеров. Переключатель должен иметь марки-
ровку SAVE/LOAD. Наконец гнездо и штеккер MIC подключается коротким отрезком
экранированного провода к регулятору уроьня. Регулятор з'ровня используется обыч-
ным образом. Элементы могут быть смонтированы внутри самым различным образом.
В корпусе приемника сверлятся отверстия для гнезд, переключателя и выводящих
проводов. Пока приемник используется в качестве усилителя его лучше настроить на
свободную от радиостанций частоту.
Для тех кто не хочет портить карманный радиоприемник можно предложить
использовать в качестве усилителя для СПЕКТРУМА микросхему LM380. Подклю-
чение к магнитофону и СПЕКТРУМУ аналогично подключению радиоприемника.
Интересно приблизить приемник к работающему СПЕКТРУМУ - звук из прием-
ника (в виде шума) будет индицировать, что каждую секунду электрическая схема
компьютера выполняет миллионы операций.
6.3. МОДЕРНИЗАЦИЯ КЛАВИАТУРЫ
Клавиатура СПЕКТРУМА значительно лучше чем у ZX80 и ZX81, но уступает
многим другим компьютерам. Клавиатура СПЕКТРУМА, например, не дает уверен-
ности при нажатии кнопки, легко можно промахнуться или держать клавишу нажа-
той слишком долго, так что на экране появится несколько символов. Сравнительно
несложно заменить кнопки СПЕКТРУМА на более удобные. Я приобрел дополнитель-
ную клавиатуру за несколько пенсов и с минимумом затрат получил полезное усовер-
шенствование компьютерной системы. Клавиатура подключается к двум разъемам
внутри корпуса. Это единственная доработка требующая открывания корпуса. Это
следует делать как можно реже, поскольку соединение разъемов клавиатуры очень
слабое. Клавиатура представляет собой матрицу ключей, подключенных к разъемам
КВ1 и KB 2. Четыре горизонтальных ряда кнопок составлены из 8 групп по 5 кнопок и
подключены к разъему КВ2. Вертикальные колонки объединены попарно и подклю-
чены к разъему КВ1. Ряд и колонка нажатой кнопки определяется специальной
подпрограммой ROM.
Для замены клавиатуры необходимо:
1. Открыть корпус и отключить два гибких разъема от KB 1 и КВ2.
2. Собрать новую клавиатуру по приведенной схеме и подключить с помощью
гибкого кабеля к КВ1 и КВ2. Для подключения использовать 0,1 дюймовые штырьки,
которые вставляются в КВ1 и КВ2.
3. Проверить работу клавиатуры и при необходимости устранить ошибки подклю-
чения.
4. Нанести на кнопки соответствующие надписи.
Старая клавиатура может быть сохранена для другого применения. Неплохо по-
местить СПЕКТРУМ с новой клавиатурой в пылезащитный футляр для предохране-
ния электронной схемы и переключателей клавиатуры.
6.4. СПЕКТРУМ В АВТОМАШИНЕ
Этот проект не относится к каким либо новым разработкам, он предназначен для
тех кто использует СПЕКТРУМ во время путешествий или просто вне дома, когда
источником питания является 12В автомобильная аккумуляторная батарея или гене-
ратор. Для питания СПЕКТРУМА требуется источник питания 9В с током до 1,2А. К
сожалению, стабилизатор с таким напряжением найти трудно, чаще встречаются
стабилизаторы 5В, 12В, 15В. В этой ситуации можно предложить два выхода:
1. Можно использовать стабилизатор типа 317К с регулируемым выходным напря-
жением от 1,2 до 37В и током нагрузки до 1,5А. Для изготовления стабилизатора
требуется минимум дополнительных элементов. Другим положительным свойством
такого решения является возможность работы с разряженным до 10В аккумулятором.
2. Вместо стабилизатора можно использовать гасящие элементы, которые снизят
напряжение с 12 до 9,5В. С учетом проблемы охлаждения наиболее подходят для этой
цели 4 кремниевых диода с максимально допустимым током до ЗА, например типа
1N5400. Эти диоды сравнительно дешевы и имеют простую форму корпуса, что
облегчает их монтаж на плате. Диоды включаются последовательно в прямом направ-
лении. В СПЕКТРУМЕ имеется собственный стабилизатор для использования внеш-
них источников питания с * поэтому полученное
с помощью гасящих диодов,Щ§рШение 9,5В мо^Шр сразу подавать на СПЕКТРУМ
без дополнительной сгабийШции. Необходимо откусить, что одновременное под-
ключение СПЕКТРУМАJtf TV содает:щцественну|§^агрузку на автомобильную
батарею, однако из-за пЩрх по пт^тШвкШфатъ двигатель для подзарядки аккуму-
лятора нельзя. /Ж* •
'-'hi' ШШ '
ш. аваШйный источник
^ ШИТАНИЯ Д?
Источник сетевого питания не всегда и не везде pafto&eT без перерывов. В сельской
местности, например, частд бьшают кратковременные перерывы электропитания,
приводящие к разрушениЮЩ|^ программ. Если
установить батарею РР9 и подадбчит*»диод типа 1N5400, то это позволит
пользователю сохранить програмк^НЭД{адуюся в памяти СПЕКТРУМА при про-
падании сетевого питания. При длительном отсутствии сетевого напряжения можно
сохранить загруженную программу на кассете, если магнитофон имеет питание от
батарей. Нет необходимости делать какой- либо индикатор пропадания сетевого пи-
тания - при пропадании питания от сети погаснет экран телевизора. Диод отключает
батарею при нормальной работе сети, однако при выключении СПЕКТРУМА батарею
необходимо отключать.
Ленинград - Москва 1991 -1992.