Вопрос № 183085: Здравствуйте, уважаемые эксперты! Требуется написать программу для МП КР580: "Принять код с клавиш 8..F. Если код соответствует нечетному числу, то вывести на дисплей слово НЕЧЕТ, иначе вывести 0 на крайний правый индикатор." Знаю...
Вопрос № 183085:
Здравствуйте, уважаемые эксперты! Требуется написать программу для МП КР580: "Принять код с клавиш 8..F. Если код соответствует нечетному числу, то вывести на дисплей слово НЕЧЕТ, иначе вывести 0 на крайний правый индикатор." Знаю, что для активизации клавиш 0..7 используются следущие команды: 3Е Е0 MVI A,E0 D3 02 OUT 02 Не понимаю, как активировать ввод с клавиш 8..F (что-то другое будет вместо E0 ?). C выводом на дисплей проблем нет,
там использую команды MVI и STA, руководствуясь тем, что в ячейке 83F8 содержится код для крайней левой позиции дисплея, а в ячейке 83FF - для крайней правой. (Единственное, не знаю, как принято букву Т обозначать). Условие проверки кода на нечетное число выполняю с помощью JPE.
Отправлен: 07.05.2011, 02:07
Вопрос задал: Alex12 (Посетитель)
Всего ответов: 1 Страница вопроса »
Отвечает Лысков Игорь Витальевич (Старший модератор) :
Здравствуйте, Alex12! Вот Вам программа. Комментарии смотрите в коде.
Код:
mvi a,0d0h ;Выдача сигнала разрешения работы дисплея ; и включения битом 5 клавиш 8...f out 2 cont in 0 ;читам код cpi 0ffh ;если
ff, то ничего не нажато jz cont ;ждем новый код
;ищем бит 0 mvi b,8 ;база кодов линейки (8-f) shift rrc ;сдвинем на 1 бит, мл уходит в С jnc analize ;0 - нашли inr b ;нет увеличиваем код клавиши jmp shift ;сдвигаем дальше
;проанализируем на четность analize lxi h,83f8h ;засылка в пару HL адреса старшего индикатора mov a,b ;код клавиши rrc ;четность определяется младшим битом jc nechet ;1 - число н
ечетное
;0 - четное mvi a,0 ;погасим 7 первых mov m,a inx h mov m,a inx h mov m,a inx h mov m,a inx h mov m,a inx h mov m,a inx h mov m,a inx h mov a,00111111b ;0 в последний mov m,a jmp cont ;на сканирование клавиатуры
;нечет nechet mvi a,0 ;погасим 3 первых mov m,a inx h mov m,a inx h mov m,a inx h mov a,01110110b ;H mov m,a inx h mov a,01111100b ;Е mov m,a inx h mov a,01100110b ;Ч mov m,a inx h mov a,01111100b ;Е mov m,a inx h mov a,01111000b ;t mov m,a jmp cont ;на
сканирование клавиатуры
end
----- Люби своего ближнего, как самого себя
Ответ отправил: Лысков Игорь Витальевич (Старший модератор)
Ответ отправлен: 09.05.2011, 12:06
Номер ответа: 267054 Украина, Кировоград Тел.: +380957525051 ICQ # 234137952 Mail.ru-агент: igorlyskov@mail.ru
Оценка ответа: 5
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 267054
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.