НАЗАД
1. Управление линейкой светодиодов. С помощью ПЭВМ можно управлять внешними устройствами. Для этого удобно задействовать параллельный порт LPT, который позволяет выдавать восьмиразрядное двоичное слово. Чтобы вывести требуемую совокупность лог. 0 и лог. 1 необходимо записать в ячейку памяти с адресом 37816=88810 соответствующее число. При этом используется команда OUT {адрес}, {число}. Например, команда OUT &H378, 15 записывает в ячейку ОЗУ 37816 число 000011112. На выводах 2, 3, 4, 5 LPT--порта появится лог. 1 , а на остальных --- лог. 0 . Рис. 1. Подключение светодиодов к LPT-порту. Для того чтобы визуализировать состояние параллельного порта ПЭВМ, к нему следует подключить матрицу из 8 светодиодов (рис. 29.1). В случае записи в ячейку ОЗУ 37816 числа 110= 000000012 будет гореть первый светодиод, если записать число 6410=010000002, загорит седьмой светодиод. Если записать число 1510=000011112, загорят первые четыре светодиода и т.д. Запустите среду программирования QBasic. Введите программу Пр -- 1 и изучите ее работу. При ее запуске сначала загорается первый светодиод, затем он гаснет, --- загорается второй светодиод и т.д. Время свечения пропорционально числу оборотов цикла в подпрограмме. WHILE INKEY$ = "" 'Пр - 1 x = 0 : OUT &H378, x: GOSUB 10 'QBASIC x = 1 : OUT &H378, x: GOSUB 10 x = 2 : OUT &H378, x: GOSUB 10 x = 4 : OUT &H378, x: GOSUB 10 x = 8 : OUT &H378, x: GOSUB 10 x = 16: OUT &H378, x: GOSUB 10 x = 32: OUT &H378, x: GOSUB 10 x = 64: OUT &H378, x: GOSUB 10 x =128: OUT &H378, x: GOSUB 10 WEND '======= подпрограмма ========= 10 FOR i = 1 TO 200: PRINT x: NEXT: RETURN Можно написать программу, вызывающую свечение а) пятого и восьмого светодиодов; б) всех светодиодов кроме третьего; в) восьмого, седьмого и шестого светодиодов; г) всех четных светодиодов; д) всех нечетных светодиодов. На основе Пр -- 1 возможно написать программу, работающую так: а) загорается первый светодиод, затем гаснет и одновременно с этим загорается второй светодиод, и т.д. (слева на право); б) загорается восьмой светодиод, затем гаснет и одновременно загорается седьмой светодиод, и т.д. (справа на лево); в) загорается первый и второй светодиоды; гаснет первый, загорается третий; гаснет второй, загорается четвертый; гаснет третий, загорается пятый и т.д. ВВЕРХ
|