русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Интерфейс дисплея с клавиатурой.


Дата добавления: 2015-08-14; просмотров: 757; Нарушение авторских прав


 

 

Клавиатуры делятся:

  1. простейшие
  2. более сложные.

 

Два вида клавиатур:

  1. кодирующие
  2. некодирующие

 

Кодирующие клавиатуры.

 

Каждой клавише соответствует определённый вход порта ввода, узнать положение клавиши можно опрашивая вход порта.

 

       
 
 
   

 

 


R1 – R8 » 1...4,7 kOm
     
Нажата Унитарный код Позиционный код
SA1
SA2
SA3
M M M
SA8

 

Преобразование унитарного кода в позиционный.

  1. табличный метод
  2. метод сдвигов унитарного кода

 

Табличный метод.

 

Основан на том, что в ПЗУ имеется таблица кодов: каждому унитарному коду соответствует позиционный.

  IN IPORT  
  CMA  
  CPI MASK  
  JZ EXIT  

 

При выходе выбирается позиционный код, соответствующий данной маске.

MASK1 EQU 00000001B

MASK2 EQU 00000010B

M

MASK8 EQU 10000000B

 

IDENTIF1: IN IPORT  
  CMA Инверсия кода
  CPI MASK1  
  JZ EXIT1  
  CPI MASK2  
  JZ EXIT2  
  M  
  CPI MASK8  
  JZ EXIT8  
  MVI B,0FFH Если не нажата ни одна клавиша
  RET  
     
EXIT1 MVI B,00H  
  RET  
EXIT2 MVIB,01H  
  RET  
  M  
EXIT8 MVI B,07H  

 



Метод сдвигов унитарного кода.

 

Исходный код после инверторов сдвигается вправо через перенос (если нажата клавиша, то флаг переноса = 1).

 

 

 
 

 

 


IDENTIF2 IN IPORT  
  MVI B,0  
  MVI C,8  
  CMA Инвертировать
  ORA A Сброс CY
SHIFT RAR  
  JC EXIT  
  INR B  
  DCR C  
  JNZ SHIFT  
  MVI B,OFFH  
EXIT RET  

 

В регистре В – двоичный позиционный код.

 

Если возможно нажатие нескольких клавиш, то надо после программы идентификации проверить (А) и если там не 0, то было нажато два или более клавиши.

К переключателям с фиксацией относится декадные переключатели: номеронабиратели.

 

 
 

 


Цифра Код
  23 22 21 20
M M M M M

 

 

Ak: СтЦ МлЦ

 

В случае клавиш без фиксации надо уловить момент, когда кнопки нажимаются:

  1. Программа ожидает нажатие клавиши. Программа сначала ожидает нажатие клавиши, затем защита от дребезга, затем программно ожидает отжатия клавиши, затем идентификация нажатой клавиши.

 

 


KEYBOARD IN IPORT  
  CMA  
  ORA A Установить флаги
  JZ KEYBOARD Цикл ожидания
  PUSH PSW  
  CALL DELAY  
WAIT IN IPORT  
  CMA  
  ORA A  
  JNZ WAIT Ожидание нажатия
  CALL IDENTIF  
  RET  
     
IDENTIF POP PSW  
  M  

 

Недостаток: МП постоянно ожидает нажатия клавиши.

 

2. Периодически вызывается подпрограмма ввода кода из порта, период должен быть достаточно малым, частота опроса порта не менее 10 раз в секунду.

 

 
 

 

 


Неудобство – надо периодически вызывать эту программу.

 

  1. С использованием прерывания программы:

 

       
 
 
   

 


Достоинство – отсутствие потерь времени на ожидание нажатия клавиши.

Недостатком кодирующих клавиатур является большое число входов портов. В случае большого числа клавиш используют не кодирующие клавиатуры.

 

Не кодирующие.

 

Контакты клавиш присоединяются к матрице, образованной пересечением вертикальных и горизонтальных линий.

 
 

 


Идентификация нажатой клавиши осуществляется методом сканирования: на один ряд подается код сканирования (бегущий «0»), а с другого ряда снимается байт возврата – если не нажата ни одна клавиша в байте возврата 1, если нажата клавиша 0, в соответствующем разряде.

 



<== предыдущая лекция | следующая лекция ==>
Программа управления дисплеем с использованием таймера. | Программируемый контроллер КР580ВВ79 с клавиатурой и дисплеем.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.032 сек.