Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Лабораторная работа №5 (Вариант №2)
Контроль внешних устройств через параллельные порты
Цельработы: Получение практических навыков программирования процедуры опроса внешних устройств на примере клавиатуры.
Задание: Написать программу опроса клавиатуры с защитой от дребезга контактов. Величину задержки перед повторным опросом выбрать в соответствии с вариантом и таблицей.
Задание для варианта №2:
Опрашиваемый ряд клавиатуры: ряд A
Величина задержки перед повторным опросом: 1.2мс
Листинг программы
Main:
clr P1.0 ;сбрасываем нулевой бит первого порта
mov A, P1 ;копируем P1 в аккумулятор
cjne A, #11111110b, Hit ;если какие-то клавиши нажаты, переходим на Hit
setb P1.0 ;восстанавливаем состояние первого порта
ajmp Main
Hit:
mov B, A ;копируем старое состояние клавиш из аккумулятора в B
mov TH0, #0FBh ;задаём задержку в 1.2мс
mov TL0, #04Fh ;FB4F = 64335 = (65535 – 1200)
setb TR0 ;запускаем нулевой таймер
jnb TF0, $ ;ждём...
clr TR0 ;выключаем нулевой таймер
clr TF0 ;очищаем флаг переполнения нулевого таймера
mov A, P1 ;копируем в аккумулятор новое состояние клавиш
mov P1, #0FFh ;восстанавливаем состояние P1
cjne A, B, ExitProc ;если старое и новое состояния не совпадают, возвращаемся в
;главный цикл
ajmp KeyA1 ;переходим к отображению нажатых клавиш
KeyA1:
jb ACC.0, ExitProc ;если нулевой бит установлен, значит в строке A нажатых клавиш
;нет - возвращаемся
jb ACC.3, KeyA2 ;если 3-й бит установлен, значит A1 не нажата - проверяем
;следующую клавишу
mov SBUF, #49 ;печатаем "1"
KeyA2:
jb ACC.4, KeyA3 ;если 4-й бит установлен, значит A2 не нажата - проверяем
;следующую клавишу
mov SBUF, #50 ;печатаем "2"
KeyA3:
jb ACC.5, KeyA4 ;если 5-й бит установлен, значит A3 не нажата - проверяем
;следующую клавишу
mov SBUF, #51 ;печатаем "3"
KeyA4:
jb ACC.6, KeyA5 ;если 6-й бит установлен, значит A4 не нажата - проверяем
;следующую клавишу
mov SBUF, #67 ;печатаем "C"
KeyA5:
jb ACC.7, ExitProc ;если 7-й бит установлен, значит A5 не нажата – возвращаемся
mov SBUF, #68 ;печатаем "D"
ret ;возвращаемся
ExitProc:
ret
end
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.