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

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

160 F0Ry-lT0 31

170 PLOT 8*y,0: DRAW 0,175

180 IF IN 65503<-10 THEN LET b-y: GO TO 200

190 NEXT у

200 INK 0: PAPER 7: CLS

210 LET 1-USR 65261

220 PRINT AT (21-a),b;

230 PRINTATO,0; Pressany key todraw

240 PAUSE 0: GO TO 90

Строки 10-70 - это подпрограмма в машинных кодах которая сохраняет картинку в памяти и вновь выводит ее на экран.

Строка 80 - ожидание нажатия любой клавиши. Строка 90 - сохранение картинки в памяти. Строка 100 - гашение экрана. Строки 110-140 - вертикальное сканирование. Строки 160-190 - горизонтальное сканирование.

Строки 130 и 180 - определяется позиция светового пера подключенного ко входу АЦП с адресом 30.

Строка 200 - восстановление белого цвета экрана. Строка 210 - восстановление картинки на экране. Строка 220 - вывод символа О с координатами (X,Y). Строки 230 и 240 - запрос на вывод следующей -очки.

Конструкция светового пера может быть любой. Соединительные провода должж-иы быть длиной около 1 метра. Фоторезистор и фотодиод должен быть минимально возможного размера (BPW 21 или BPW 65 подходят).

Ниже приведен листинг быстрой программы в машинных кодах. Алгоритм по которому работает эта программа аналогичен алгоритму предыдущей программы на БЕЙСИКЕ, исключая метод сканирования.

Сначала картинка сохраняется в памяти, затем световое перо позицируется на экране для вертикального сканирования, и далее позицируется для горизонтального сканирования, и наконец на экране восстанавливается картинка и добавляется новая точка.

Листинг программы сканирования в машинных кодах:

Мпешошс

Decimal

id Ы,22528

Id с,255

Id е,22

Id d.32

Comments

(65 282)

M(hl),c

in a (30)

sub 40

jp m,65311

inc(M)

Id b,255

dec b

Jr nz,-3 j.

dec d

jr nz-17

- 239

dec e

jr nz-22

td c.d

id 63744,a

. Ввод данных . светового пера . Тест

. сканирования

. <65 300)

- ф . Задержка

(65 311)

(65 319)

Координаты X,Y помещаются в ячейки памяи с адресом 63744 и 63745, которые читает программа на БЕЙСИКЕ выводящая символ в указа1шую трчрэкрша.

Необходимо внтательно следить за тем, чтобы световое перо было прижато к экрану без зазора. Если световое леро несколько отнести ох экрана, то оно будет реагировать на смежные строки или на отражения от экрана TV. Разумно также уменьшить внешнее освещениеи яркость свечения экрана TV.

Сканирование может быть выполнено за несколько миллисекунд, но за это время электронный луч, создающий картинку на экране TV просканирует только часть Экрана. Стандартная частота TV развертки целого кадра 50 Гц. Поэтому скорость сканирования в программе замедляется с помощью цикла задержки. Для увеличения скорости сканирования (если это требуется) число 255 загружаемое в регистре В Можно уменьшить.

В приведенной ниже программе на БЕЙСИКЕ строки 60 и 70 содержат подпрограмму в машинных кодах для сохранения и восстановления картинки аналогичную ранее использованной. Строка 80 содержит приведенную выше программу сканирования в машинных кодах; остальное очевидно.

Небольшая модификация программы позволит выводить на экран любой символ после каждого сканирования. Для этого необходимо добавить



95 LETA$- и заменить строку 160

160 РКШТ АТО.О; PRESS ТО DRAW : LET A$-INKEY$: IF A$- THEN GOTO 160:GOTO 100

5 LETp-0:LETz-0 10 CLEAR 44500 20 FORx-0rO79 30 READ П 40 POKE (65240+x),n 50 NEXTx

60 DATA 17,215,227,33,0,64,6,27,197,6,0,126,18,19,35,16,249,19 3,16.244,201

70 DATA 17,0,64,33,215,227,6,27,197,6,0,126,18,19,35,16,249,19 3,16,244,201

80 DATA 33,0,88,14,255,30,22,22,32,113,219,30,214,40,250,31.25 5,35,6,255,5,32,253,21.32,239,29.32,234,122,50,0,249,123,50, 1,249,201

90 CLS: PRINT Press any key : PAUSE 0

100 LET HUSR 65240

110 PAPER 0: INK 7: CLS

120 LET HUSR 65282

130 INK0:PAPER7:CLS

140 LET HUSR 65261

150 PRINT AT 21-(PEEK 63745),31-(PEEK 63744);

160 PRINT AT 0.0; Press any key to draw : PAUSE 0: GO TO 100

3.9. ВИЗУАЛЬНОЕ ОТОБРАЖЕНИЕ ЗВУКОВЫХ СИГНАЛОВ

в этом проекте используутся АЦП дяя преобразования сигнала от микрофона серию цифровых отсчетов, которые помещаются в 255 ячеек памяти с последовательными адресами для длительного или временного хранения. В главе 5 будет показано, как с помощью цифро-аналогового преобразователя получить из этих самых цифровых отсчетов записанный звуковой сигнал.

Листинг этой программы:

10 FORX-0TO28

20 READn

30 РОКЕ (64000fx),n

40 NEXTx

50 DATA 17,0,160.245.229,33,255,0,219,30,18,6,250,5.32,253,19,

43,125,183,32,242,124,183,32,238.225.241,201 60 PRINT AT 0,0; speak : PAUSE 0

65 PRINT AT 0,7; >

70 LET HUSR 64000

80 INK 0: PAPER 7: BORDER 7: CLS

90 FORX-0TO255

100 PLOT x,0: DRAW 0, (PEEK (40960+x))

110 NEXTx

120 PRINT AT 0,0; Press To Continue : PAUSE 0

130 CLS: GO TO 60

В строке 50 записаны машищллекйДЫ С11в1я!гющей программы:

Mnemonic Id de,40960

push at push hi Id hi, 255

to a, (30) ld(de),a

id a,h

or a

jr nz.-13

pop hi

pop at ret

Decimal

17 0

160 245 229 , 33 255 0

219 30 18 6

250 5 32 253

32 242 124 183 32 238 225 241 201


Сшшпеои

Началышй адрес

ясло выборок

Ввод сигнала с микрофона

Задание временного интервала между выборками


Проверка последней выборки



Эта программа рисует на экране осциллограмму записанного звука состоящую из вертикальных линий. Как только на экране появится надпись SPEAK (говорите) нажмите любую клавишу и произнесите что-либо перед микрофоном в течении примерно 1 сек. Немедленно на экране появится изображение соответствующее этому звуку, а 255 ячеек памяти начиная с адреса 40960 будут содержать цифровые отсчеты, которые можно будет в дальнейшем использовать. Запись нового звука, конечно, удаляет предыдущую.

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

100 PLOT Х,РЕЕК (40960f X)

Естественно необходим усилитель, который усилил бы сигнал от микрофона до уровня (единицы вольт) необходимого для работы АЦП. Усилитель размещенный на плате ЦАП подходит для этих целей, если конечно предусматривается изготовление платы ЦАП. В противном случае можно использовать и любой другой усилитель с высоким входным сопротивлением.

ЗЛО. ТЕРМОМЕТР

На рис.3.4а изображена схема очень простого термометра. На рис.3.4б приведена калибровочная кривая использованного термистора в диапазоне температур -80 С + 150 С. Сигнал поступающий на АЦП изменяется от почти О В (термистор имеет при температуре -80 С сопротивление в несколько МОм) до почти 10 В при температу-ре+150 С. Термистор и резистор 1 кОм для надежности лучше поместить в капельку эпоксидной резины. Такая конструкция позволит погружать термометр в различные газы, жидкости и другие среды для измерения их температуры.

IN30 ТЕРМИСТОР

юок - юк -

1К 100

Рм:.3.4а Схема те1 юметра.

-40 -20 о +20 -МО 4 0 (О

Рис.3.4б Калибровочный график.

Программа на БЕЙСИКЕ приведена ниже. В программу можно добавить включение звукового сигнала при выходе температуры из заданного диапазона: 92 IF Т<10 OR Т>30 THEN ВЕЕР 1,10

5 LEToldM)

80 PRINT AT 0,0; Тешр С

90 LET 1-IN 30-15

91 IFoldtotTHENCLS 95 LEToldft

100 LET yy-4: LET xs-4: WTfAOO: lETSsmRS t: GO SUB 9380:

GO TO 80 9390 LET x-50: LET cs-8

9400 LET a-23306. POKE a,x. POKE a+1 ,y: POKE a+2,xs: POKE a+3,ys : POKE a+4,cs: LET a-a-M. FOR 1-1 TO LEN d$: POKE a+i,CODE d$(i): NEXTi: POKE a+i,255: RANDOMIZ E USR 32256: RETURN






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