Отчет по практике: Микропроцессорные системы
F – требуемая частота звука в Гц
Например: Если необходимая частота равна 1 кГц = 1000Гц, тогда константа счетчика равна 1193181/1000 = 1193 (10с/с) = 4А9 (16с/с).
2.4 Выполнение задержки
В BIOS существует 4 ячейки памяти, в которых хранится системное время. В результате прерывания от таймера содержимое этих ячеек увеличивается на 1, т.е. каждые 55 мс этот изменяется. По адресу 0000:046E находится старшее слово, а по адресу 0000:046Е младшее слово системного счетчика времени.
Для счета времени (т.е. задержки) нужно прочитать содержимое этого счетчика и прибавить константу необходимой задержки. Затем в цикле считывать содержимое счетчика и сравнивать его с полученной суммой, а когда содержимое счетчика станет равным сумме (т.е. заданное время задержки истекло) необходимо выйти из цикла.
Константа необходимой задержки считается следующим образом:
Задержка/55мс = константа
Например:
Если необходимая задержка равна 550мс, тогда константа равна 550мс/55мс = 10 (10с/с) = ОА (16с/c).
2.5 Область данных BIOS
Область основной памяти размером 256 байт расположена непосредственно ха таблицей векторов прерываний, начиная с адреса 0040:0000 и кончая 004F:0000, предназначена для использования программами BIOS. В таблице приведено описание части информации, помещаемой в BIOS в указанную область памяти. Обращаясь к ней, прикладные программы получают важную информацию о состоянии системы.
Таблица 2.4 – Область данных портов
Адрес (сегмент: смещение) | Длина (в байтах) | Наименование и описание |
ОБЛАСТЬ ДАННЫХ ПОСЛЕДОВАТЕЛЬНОГО\ПАРАЛЛЕНЛЬНОГО ПОРТОВ | ||
0040:0000 | 8 | Базовый адрес ввода-вывода для COM1-COM4 |
0040:0008 | 8 | Базовый адрес ввода-вывода для LPT1-LPT4 |
СМЕШАННАЯ ОБЛАСТЬ ДАННЫХ | ||
0040:0010 | 2 | Флаги оборудования |
0040:0013 | 2 | Обьём памяти в килобайтах |
ОБЛАСТЬ ДАННЫХ КЛАВИАТУРЫ 1 | ||
0040:0017 | 1 | Флаги 1 состояния регистров клавиатуры |
0040:0018 | 1 | Флаги 2 состояния регистров клавиатуры |
0040:0019 | 1 | Ввод с дополнительного клавиатурного поля |
0040:001А | 2 | Адрес начла буфера клавиатуры |
0040:001С | 2 | Адрес конца буфера клавиатуры |
0040:01Е | 32 | Буфер клавиатуры |
ОБЛАСТЬ НАКОПИТЕЛЯ FDD | ||
0040:003Е | 1 | Состояние повторной калибровки |
0040:003А | 1 | Состояние двигателя |
0040:0040 | 1 | Счетчик числа |
0040:0041 | 1 | Состояние последней операции |
0040:0042 | 7 | Байты состояния контроллера |
ОБЛАСТЬ ДАННЫХВИДЕОАДАПТЕРА 1 | ||
0040:0049 | 1 | Текущий видеорежим |
0040:004А | 2 | Количество столбцов в отображаемом тексте |
0040:004С | 2 | Длина буфера регенерации в байтах |
0040:004У | 2 | Адрес смещения активной видеостраницы |
0040:0050 | 16 | Положение курсора (видеостраницы 0-7) |
0040:0060 | 2 | Тип курсора (нач. и кон. строки развертки) |
0040:0062 | 1 | Активная видеостраница |
0040:0063 | 2 | Базовый адрес видеоконтроллера |
0040:0065 | 1 | Текущая установка регистра 3х8 |
0040:0066 | 1 | текущая установка регистра 3х9 |
ОБЛАСТЬ ДАННЫХ СИСТЕМНОГО ТАЙМЕРА | ||
0040:006С | 2 | Младшее словосодержимого таймера |
0040:006Е | 2 | Старшее слово содержимого таймера |
0040:0070 | 1 | Индикатор заполнения таймера |
СИСТЕМНАЯ ОБЛАСТЬ ДАННЫХ | ||
0040:0071 | 1 | Байт BIOS_BREAK |
0040:0072 | 2 | Флаг сброса |
ОБЛАСТЬ ДАННЫХ ЖЕСТКОГО ДИСКА | ||
0040:0074 | 1 | Состояние последней операции |
0040:0075 | 1 | Число накопителей HDD |
ВРЕМЕНА ОЖИДАНИЯ РЕАКЦИИ (ТАЙМАУТЫ) | ||
0040:0078 | 4 | Значения времен ожидания для LPT1-LPT4 |
0040:007С | 4 | Значения времен ожидания для COM1-COM4 |
ОБЛАСТЬ ДАННЫХ КЛАВИАТУРЫ | ||
0040:0080 | 2 | Адрес начала буфера клавиатуры |
0040:0082 | 2 | |
ОБЛАСТЬ ДАННЫХ ВИДЕОАДАПТЕРА 2 | ||
0040:0084 | 1 | Число отображаемых строк текста минус 1 |
0040:0085 | 2 | высота символа в строках развертки |
0040:0087 | 1 | Параметры видеорежима |
0040:0088 | 1 | Параметры видеорежима |
ОБЛАСТЬ СВЯЗИ МЕЖДУ ПРОГРАММАМИ | ||
0040:00F0 | 16 | Область, где программа может записать\считать данные (например статус) |
2.6 Задание
Напишите программу генерации последовательности звуковых сигналов, имеющих следующие характеристики:
- Первый сигнал : частота F1, длительность T1.
- Второй сигнал : частота F2, длительность T2.
- Пауза между сигналами : длительность Р1
Характеристика F1, F2, T1, T2, P1 выбираются из таблицы задания согласно варианту.
Программу необходимо оформить в виде основной программы и двух подпрограмм.
- Первая подпрограмма выполняет генерацию звука.
- Вторая подпрограмма выполняет задержку.
- Основная программа выполняет вызовы подпрограмм в нужной последовательности.
№Варианта | F1, кгц | T1, мс | P1, мс | F2, кГц | Т2, мс |
1 | 5 | 500 | 150 | 9,5 | 800 |
Рисунок 2.9 – Блок – схема основной программы
Основная программа
stac segment
db 64 dup (0)
ends
data segment
stQ db 13,10,''
ends
code segment