Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭВМ(шпоры).docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
461.46 Кб
Скачать

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]