Современная электроника №8/2021

ИНЖЕНЕРНЫЕ РЕШЕНИЯ 31 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 8 2021 m3 goto \ пришла 1, далее пере- дача, что это 1 сигнал \_/----- m5 goto \ пришло 0 ORG @ m3 ! 0x2 movlw \ ставим зна- чение 2 для сигнала =1= 1 PAUSE_1W# \ -- пп паузы 0x18 movlw \ cтавим значение для периода при сигнале 1 m4 goto \ уходим на выключение ORG @ m5 ! 0xC movlw \ ставим зна- чение 0xC для сигнала =0= 1 PAUSE_1W# \ -- пп паузы 0xE movlw \ ставим значение для периода при сигнале 0 ORG @ m4 ! porta 0x5 bsf \ GP5 уста- новили в 1 выкл.__/-- оконч. имп. 1 PAUSE_1W# \ -- пп паузы по дан- ным в акм. BYAT_1W 0xF rrf \ сдвигаем вправо байт с данными для следующего бита 0x1 movlw \ единица для декре- мента счётчика бит N_1W 0xF decfsz \ вычесть 1 из f и пропустить, когда будет 0, т.е. выйти из пп m1 goto \ продолжаем передавать или выходим В данном примере для поддержания одинакового периода передачи сигнала устанавливается разная задержка при сигнале 1 или 0, но так, чтобы общая длительность была одинаковая. То есть период одинаков и равен 0x1A. Cигнал нуля и пауза нуля – 0xC + 0xE = 0x1A, и сигнал единицы и пауза единицы – 0x2 + 0x18 = 0x1A. Для частоты МК 4 МГц представлен- ные в программе задержки формиру- ют сигналы в 10…12 мкс и 45...50 мкс стандарта 1-Wire для передачи едини- цы и нуля. Пример 3. При нажатии разных клавиш формируется разное звуковое подтверждение Рассмотрим более высокий уровень программирования на FORTH. Нара- ботано огромнейшее количество при- кладных программ и библиотек в систе- ме Windows. Покажем использование DLL-библиотеки на примере звуковой сигнализации. В системах термометрии зачастую удобно привлекать внимание персонала разными звуковыми комби- нациями или мелодиями. Далее приве- дён пример программы, которая при нажатии на клавиши клавиатуры выда- ёт звуковые сигналы с разными часто- той и длительностью или проигрыва- ет файл формата mid/kar. \ начало текста программы WINAPI: mciSendStringA WINMM.DLL WINAPI: Beep KERNEL32.DLL WINAPI: ShellExecuteA SHELL32.DLL CREATE ADR1 0x100 ALLOT : CONCAT-TO >R 2SWAP SWAP OVER R@ SWAP MOVE R> + SWAP MOVE ; : CONCAT 2OVER NIP OVER + DUP >R 1+ ALLOCATE THROW DUP >R CONCAT-TO R> R> 2DUP + 0 SWAP C! ; : MID1 0 0x100 ADR1 S" OPEN muz.mid ALIAS MUSIC" DROP mciSendStringA 0= IF CR S" OK muz.mid " TYPE 0 0x100 ADR1 S" PLAY MUSIC" DROP mciSendStringA DROP ELSE S" ? muz.mid" TYPE THEN ; : MID2 CR S" stop muz.mid " TYPE 0 0x100 ADR1 S" STOP MUSIC" DROP mciSendStringA DROP 0 0x100 ADR1 S" CLOSE MUSIC" DROP mciSendStringA DROP ; : DIRM ( An n -- ) DROP 5 0 0 3 ROLL S" OPEN" DROP 0 ShellExecuteA DROP ; : DIR1 S" http://90.189.213.191:" S" 4422/poteha/mid/muz.mid" CONCAT DIRM ; : DIR2 S" https://disk.yandex ." S" ru/d/duzQ8WKSeH4opA" CONCAT DIRM ; : ZWUK Beep DROP ; : ZW1 DUP 0x10 * 0x100 SWAP 2DUP . . ZWUK ; DECIMAL : PIK_OT_KEY CR S" Выход - ПРОБЕЛ" S" продолжить - любая другая" 2SWAP ANSI>OEM TYPE ANSI>OEM TYPE 1 BEGIN ZW1 DUP [CHAR] 0 = IF MID1 THEN DUP [CHAR] 9 = IF MID2 THEN DUP [CHAR] 8 = IF DIR1 THEN DUP [CHAR] 7 = IF DIR2 THEN DROP KEY DUP 0x20 = UNTIL ; 0 TO SPF-INIT? ' NOOP MAINX ! ' PIK_OT_KEY TO <MAIN> S" test2.exe" SAVE BYE \ окончание текста программы Программа компилируется и сохраня- ется в формате приложения. Для рабо- ты программы нужно создать файл, например test.f , блокнотом, скопиро- вать текст от комментария \ начало … до комментария \ окончание …и сохра- нить. Косая линия влево – это начало комментария до конца строки, и так- же комментарии заключены в круглые скобки внутрифорт-слов. Открыть файл test.f с помощью файла 100_spf4.exe, т.е. выполнить программу. Программа выполнится и сформирует файл прило- жения test2.exe . Этот файл необходимо выполнить и, нажимая клавиши, проверить зву- ковые комбинации для контроля. Для проигрывания звуковых файлов фор- мата mid или kar (файлы для караоке) нажмите кл. 7, чтобы открыть архив «облачного хранения». Скопируй- те желаемый музыкальный файл в рабочее место программы и переи- менуйте вместе с расширением в имя muz.mid. Возможно воспроизведе- ние и других типов звуковых файлов, которые поддерживает данная библи- отека: avi, wav и т.д. Смотрите описа- ние версии библиотеки. Программа показывает вариант доступа к сете- вым ресурсам. В форт-словах DIR1 , DIR2 можно указать любой другой адрес или сайт, который откроется. Компилятор работает в Windows/ XP/7/8/10 и доступен без ограниче- ний [4]. Выводы Свойства языка FORTH создают основу дальнейшего развития систем измерений методом сохранения всех компонентов исходной программы в исполняемом файле. Если расширение и модернизация не требуются, то исполняемый файл в работе функционирует как испол- нитель. Если требуется модерниза- ция, то из «тела» исполняемого файла извлекаем все файлы и компоненты для модернизации и расширения. После модернизации вновь формируем исполняемый файл, содержащий все созданные изменения. Предложенная схема и программа ретрансляции сигналов интерфейса 1-Wire на универсальном микрокон- троллере позволяет увеличить расстоя- ние измерений при сохранении исход- ных измерительных узлов. Литература 1. Сетевая модель OSI // URL: https://info- comp.ru/sisadminst/161-modelosi.html. 2. Описание 12F765 // URL: http:// www.microchip.ru/files/d-sheets-rus/ PIC12F629_675.pdf. 3. Каталог программы, платы // URL: http://90.189.213.191:4422/doc_sh/ toguchin_2020n/test/; копия в «облачном хранилище» // URL: https://disk.yandex. ru/d/aKAo_DVD1LzrUQ. 4. Черезов А. Описание языка FORTH spf4. exe // URL: http://www.forth.org.ru/. 5. Применение интерфейса 1-Wire… // Современная Электроника. 2020. № 8. С. 42–45.

RkJQdWJsaXNoZXIy MTQ4NjUy