Скачать презентацию Пример программы приема и передачи сигнала в ЭВМ Скачать презентацию Пример программы приема и передачи сигнала в ЭВМ

пример задачи на параллельный порт.ppt

  • Количество слайдов: 11

Пример программы приема и передачи сигнала в ЭВМ через параллельный дискретный порт В управляемом Пример программы приема и передачи сигнала в ЭВМ через параллельный дискретный порт В управляемом объекте контролируются 3 параметра, т. е. для принятия решения используется информация с 3 -х датчиков D 1, D 4, D 9. При срабатывании любого датчика загорается его сигнализационная лампочка L 1, L 4, L 9. При срабатывании более 2 -х датчиков дополнительно срабатывает L 15. Состояние датчика D 9 находится под более строгим контролем. При его срабатывании в файл (специально открытый на ЖМД для записи информации) записывается ситуация и время срабатывания датчика D 9. Составить: 1. Схему подсоединения датчиков. 2. блок-схему программы контроля за состоянием датчиков. 3. Перевести алгоритм на машинный язык. 4. Проверить алгоритм работы на модели. 5. Просмотреть запись информации в файле 6. Составить отчет, где представить п. 1, п. 2, п. 3, п. 5.

10 a$=0: b$=0: Ttek h=0: Ttek m=0: Tp=5 ОТКРЫТИЕ ФАЙЛА НА ЖЕСТКОМ ДИСКЕ OPEN 10 a$=0: b$=0: Ttek h=0: Ttek m=0: Tp=5 ОТКРЫТИЕ ФАЙЛА НА ЖЕСТКОМ ДИСКЕ OPEN “ABC. TXT” FOR OUTPUT AS #1

20 Здесь же, в 20 -м блоке, должен быть произведен опрос ТАЙМЕРА (до или 20 Здесь же, в 20 -м блоке, должен быть произведен опрос ТАЙМЕРА (до или после опроса регистров – безразлично) Ttek =TIMER, в переменной Ttek врмя хранится в секундах, необходимо это число перевести в часы и минуты - Ttek h=…. Ttek m=… В переменной KODINP 300 может оказаться любое число Нас интересует только 1 -ый бит! этого числа

30 Оценка состояния входных линий подсчет количества сработанных датчиков осуществим командой n=D 1+D 4+D 30 Оценка состояния входных линий подсчет количества сработанных датчиков осуществим командой n=D 1+D 4+D 9 {1(или 0) + 1(или 0) } Если n >2, тогда необходимо передать информацию не только на 1) выходные линии сработанных датчиков, KODOUT 300=D 1*1+D 4*8 KODOUT 301=D 9*1, но и 2) на линию L 15, для этого флаг линии 15 установим в <1> командой F 15=1 и корректируем выходной код KODOUT 301=D 9*1 (+)/OR F 15*64 3) в символьную переменную запишем текст, который в дальнейшем отправим в файл #1, a$ = “критическая ситуация (n>2) наступила в момент Tk=” а в переменную Tk h скопируем содержимое ячейки Ttek h время наступления критической ситуации – часы (число, выделенное из Ttek) Tk h =Ttek h и в Tk m скопируем Ttek m – минуты (число, выделенное из Ttek) Tk m =Ttek m. Эту информацию также будем переписывать в файл #1

40 Оценка необходимости реакции на состояние датчика D 9 Если D 9=1, тогда 1) 40 Оценка необходимости реакции на состояние датчика D 9 Если D 9=1, тогда 1) символьную переменную b$ заполняем текстом, предупреждающим об опасности, например, “Опасность!”…. 2) запоминаем время наступления опасности Tо h =Ttek h Tо m =Ttek m 3) выставляем флаг опасности Fo=1 40 41 42 b$=0: To h=0: To m=0 50

50 ВЫВОД ИНФОРМАЦИИ В ПОРТ (ВЫХОДНЫЕ РЕГИСТРЫ 300 h И 301 h OUT&H 300, 50 ВЫВОД ИНФОРМАЦИИ В ПОРТ (ВЫХОДНЫЕ РЕГИСТРЫ 300 h И 301 h OUT&H 300, KODOUT 300 REM число, которое хранит переменная KODOUT 300, скопировать в регистр 300 h OUT&H 301, KODOUT 301 REM число, которое хранит переменная KODOUT 301, скопировать в регистр 301 h

60 Запись информации в файл #1 (который должен быть открыт в 10 -ом блоке) 60 Запись информации в файл #1 (который должен быть открыт в 10 -ом блоке) да нет

70 Пауза и проверка – нет ли желания у программиста завершить работу программы (держать 70 Пауза и проверка – нет ли желания у программиста завершить работу программы (держать нажатой клавишу ) ? Время паузы задано в блоке 10 задания начальных условий Tp=… 1) 70 - Проверяем, разницу между значением Ttek и таймером и сравниваем её с Tp (команда 70) 2) 71 - Считываем состояние клавиши Esc, Американский Стандартный Код (ASC) которой равен 27 3) 72 - Проверяем, нажата ли клавиша ?

80 П/П <МИГАНИЕ> 80 П/П <МИГАНИЕ>