
- •1.Эвм и ее архитектура. Назначение аппаратных средств.
- •2.Принцип работы компьютера
- •3.Системный блок и его предназначение
- •6. Мониторы. Классификация дисплеев
- •7, 23. Клавиатура. Технологии реализации клавиатур. Клавиатура и принципы ее работы.
- •10. Основные команды сопроцессора.
- •11.Типы данных сопроцессора
- •12.Программирование вычислений с вещественными числами
- •13. Программирование вычислений с целыми числами
- •14.Прерывания
- •15. Аппаратные и программные прерывания
- •16. Маскируемые и немаскируемые прерывания(не все!!!)
- •17. Прерывания bios
- •18. Прерывания dos
- •20 Функции прерывания dos int 21h.
- •21. Управление вводом-выводом
- •22. Резидентные программы
- •23. Клавиатура и принципы ее работы
- •24. Ввод символов с клавиатуры
- •25. Таймер
- •26. Установка даты и времени
- •27. Параллельный порт.
- •28. Последовательный порт
- •30. Программирование диска
- •31. Создание файла, его переименование. Удаления файла.
- •32.Создание каталога и его удаление. Установка текущего каталога
24. Ввод символов с клавиатуры
25. Таймер
Микросхема таймера 8253/8254
IBM PC используют микросхему таймера 8253 (или 8254) для импульсов от микросхемы системных часов. Микросхема 8253 производит три жизненно важных сигнала для компьютера: один выходной сигнал обеспечивает работу часов внутри машины, другой управляет работой ОЗУ, а третий используется громкоговорителем. Микросхема имеет три независимых идентичных канала, каждый из которых может программироваться.
Микросхема 8253 работает независимо от процессора. Процессор программирует микросхему, а затем обращается к другим делам. Т.о., микросхема 8253 действует, как часы реального времени - она считывает свои импульсы независимо оттого, что происходит в компьютере. Однако максимальный программируемый интервал составляет приблизительно 1/12 с.
8253 может работать в одном из 6 режимов, которые задаются через порты ввода/вывода PC.
26. Установка даты и времени
Каждый из трех каналов микросхемы таймера состоит из трех регистров. Доступ к каждой группе из трех регистров осуществляется через один порт; номера портов от 40h до 42h соответствуют каналам 0-2. Порт связан с 8-битовым регистром ввода/вывода, который посылает и принимает данные для этого канала. Когда канал запрограммирован, через этот порт посылается 2-байтовое значение, сначала младший байт. Это число передается в 16- битовый регистр задвижки, который хранит это число и из которого копия помещается в 16-битовый регистр счетчика. В регистре счетчика число уменьшается на единицу каждый раз, когда импульс от системных часов пропускается через канал. Когда значение этого числа достигает нуля, канал выдает выходной сигнал и затем новая копия содержимого регистра задвижки передвигается в регистр счетчика, после чего процесс повторяется. Чем меньше число в регистре счетчика, тем быстрее ритм. Все три канала всегда активны: процессор не включает их и не выключает. Текущее любого из регистров счетчика значение может быть просчитано в любой момент времени, что не влияет на счет.
Каждый канал имеет две входные и одну выходную линии. Выходная линия выводит импульсы, возникающие в результате подсчета. Назначение этих сигналов варьируется в зависимости от типа IBM PC.
Канал «0» используется системными часами времени суток. Он устанавливается BIOS на старте таким образом, что выдает импульсы приблизительно 18,2 раза в секунду. 4-байтовый счетчик этих импульсов хранится в памяти по адресу 0040:006С (младший байт хранится первым). Каждый импульс инициализирует прерывание таймера (номер 8) и именно это прерывание увеличивает показание счетчика. Это аппаратное прерывание, поэтому оно обрабатывается всегда независимо от того, чем занят процессор, если только разрешены аппаратные прерывания.
Канал «1» управляет обновлением памяти на всех машинах, кроме PCjr, поэтому его лучше не трогать.
Канал «2» связан с громкоговорителем компьютера. Выходная линия канала «2» связана с динамиком компьютера.
Две входные линии для каждого канала состоят из линии часов и линии, называемой воротами, которая включает и выключает сигнал от часов. Ворота всегда открыты для часов по каналам «О» и «1». Но они могут быть закрыты для канала «2», что позволяет производить некоторые специальные манипуляции со звуком. Ворота за¬крывается установкой младшего бита порта с адресом 61h, который является регистром микросхемы 8255; сброс этого бита снова открывает ворота. Как и выход «2», бит 1 порта 61h связан с динамиком и также может использо¬ваться для генерации звука.
Микросхема таймера может применяться для временных операций.
Программирование микросхемы таймера
Каждый из трех каналов микросхемы таймера состоит из трех регистров. Доступ к каждой группе из трех регистров осуществляется через один порт; номера портов от 40h до 42h соответствуют каналам 0-2. Порт связан с 8-битовым регистром ввода/вывода, который посылает и принимает данные для этого канала. Когда канал запрограммирован, через этот порт посылается 2-байтовое значение, сначала младший байт. Это число передается в 16- битовый регистр задвижки, который хранит это число и из которого копия помещается в 16-битовый регистр счетчика. В регистре счетчика число уменьшается на единицу каждый раз, когда импульс от системных часов пропускается через канал. Когда значение этого числа достигает нуля, канал выдает выходной сигнал и затем новая копия содержимого регистра задвижки передвигается в регистр счетчика, после чего процесс повторяется. Чем меньше число в регистре счетчика, тем быстрее ритм. Все три канала всегда активны: процессор не включает их и не выключает. Текущее любого из регистров счетчика значение может быть просчитано в любой момент времени, что не влияет на счет.
Каждый канал имеет две входные и одну выходную линии. Выходная линия выводит импульсы, возникающие в результате подсчета. Назначение этих сигналов варьируется в зависимости от типа IBM PC.
Канал «0» используется системными часами времени суток. Он устанавливается BIOS на старте таким образом, что выдает импульсы приблизительно 18,2 раза в секунду. 4-байтовый счетчик этих импульсов хранится в памяти по адресу 0040:006С (младший байт хранится первым). Каждый импульс инициализирует прерывание таймера (номер 8) и именно это прерывание увеличивает показание счетчика. Это аппаратное прерывание, поэтому оно обрабатывается всегда независимо от того, чем занят процессор, если только разрешены аппаратные прерывания.
.model tiny
.code
org 100h
start:
MOV AH,9H
MOV DX, offset DATA
INT 21H
mov ah,04h
int 1ah
Vivod_data proc
call Chislo
call Point
mov dl,dh
call Chislo
call Point
MOV DL, CH
call Chislo
MOV DL, CL
call Chislo
mov ah,02
mov dl,0dh
int 21h
mov dl,0ah
int 21h
ret
vivod_data endp
Point proc
PUSH DX
mov ah,09h
mov dx, offset P
int 21h
POP DX
ret
Point endp
Chislo proc
push dX
xor ax,ax
and dl, 11110000b
mov al,dl
mov bl,10h
div bl
mov dl,al
add dl,30h
mov ah,2
int 21h
pop dx
xor ax,ax
AND dL,00001111B
add dl,30h
mov ah,02
INT 21H
ret
Chislo endp
p db '.','$'
DATA DB 'Data: ', '$'
end start