![]() | |
Слаботочка Книги 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 подходят). Ниже приведен листинг быстрой программы в машинных кодах. Алгоритм по которому работает эта программа аналогичен алгоритму предыдущей программы на БЕЙСИКЕ, исключая метод сканирования. Сначала картинка сохраняется в памяти, затем световое перо позицируется на экране для вертикального сканирования, и далее позицируется для горизонтального сканирования, и наконец на экране восстанавливается картинка и добавляется новая точка. Листинг программы сканирования в машинных кодах:
Comments (65 282)
. Ввод данных . светового пера . Тест . сканирования . <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 |
|