При чтении из ПЗУ в любом случае на шину данных будет подаваться слово, из которого МП при необходимости выберет требуемый байт и поместит его в регистр, указанный в выполняемой команде, поэтому сигналы ВНЕ и А0 на ПЗУ не подаются.
ПЗУ состоит из двух микросхем КР556РТ17 (DD9 и DD10): информационные выходы микросхемы DD9 подключены к младшей половине ШД, DD10 подключена к старшей половине ШД.
Адресные входы А9-А1 этих микросхем соединены параллельно и подключены к младшим 9 линиям системной ША. Таким образом, суммарная ёмкость ПЗУ составляет 1 Кбайт.
ОЗУ состоит из двух микросхем 537РУ9А (DD11 и DD12) ёмкостью по 2 Кбайта каждая, подключенных соответственно к младшей и старшей половинам ШД.
Управление входами CS (выбор кристалла) микросхем ПЗУ и ОЗУ отображено в таблице 3.1.
Таблица 3.1
А12 |
А13 |
А14 |
Диапазон адресов |
Тип памяти |
0 |
0 |
0 |
0000h-0FFFh |
ПЗУ |
0 |
0 |
1 |
4000h-4FFFh |
ОЗУ |
1 |
1 |
1 |
7000h-7FFFh |
ПЗУ |
Таким образом диапазон адресов ПЗУ 0000h-0FFFh дублируется диапазоном 7000h-7FFFh с целью совместить возможность хранения адреса подпрограммы обработки прерывания (на который указывает вектор прерывания, в нашем случае это – 80h) и команды безусловного перехода, которая размещается по последним адресам памяти (FFF0h) в одном блоке ПЗУ. Реализуется это при помощи элемента И-НЕ, входы которого подключении к первому и восьмому выходу дешифратора, а выход подключен к входу CS ПЗУ.
Программируемый таймер К1810ВИ54 (DD7) используется для генерации сигнала запроса прерывания с заданной периодичностью. Таймер тактируется также от микросхемы КР1810ГФ84 импульсами PCLK.
Таймер адресуется при условии: А12=1, А13=0, А14=1, что соответствует диапазону адресов 5000h-5FFFh.
По сигналу INT (запрос прерывания), поступающего с таймера микропроцессор формирует сигнал INTA (подтверждение прерывания), стробирующий считывание номера вектора прерывания с буферного регистра 1533ИР33 (DD13).
На буферном регистре в свою очередь выставлено значение вектора прерывания 20h путем подключения на вход соответствующей комбинации – 00100000b.
Цифро-аналоговый преобразователь К1108ПА2 (DD15) выполняет функции линейного преобразования 8-ми разрядного параллельного кода в выходной ток. На выходе микросхемы включен операционный усилитель КP544УД2А, преобразующий выходной ток в напряжение.
Непосредственно перед ЦАП находится регистр-защелка КP580ИР82 (DD14) запоминающий данные, после прихода строб-импульса. Строб импульс формируется при условии: WR=1, А12=0, А13=1, А14=1 (что соответствует диапазону адресов: 6000h-6FFFh).
В таблице 3.2 приведено распределение устройств схемы по адресным линиям.
Таблица 3.2
Диапазон адресов |
Микросхема |
0000h-0FFFh; 7000h-7FFFh |
ПЗУ |
4000h-4FFFh |
ОЗУ |
5000h-5FFFh |
Таймер |
6000h-6FFFh |
Регистр-защелка ЦАП |
4. Расчет константы пересчета
Назначение программируемого таймера К1810ВИ54 – генерировать сигналы запроса прерывания на микропроцессор с заданной периодичностью. Для работы используется только нулевой канал таймера, работающий во втором режиме.
При программировании в регистр управляющего слова (УС) нулевого канала таймера записывается УС, содержащее в себе информацию представленную на рис. 4.1.
Рис. 4.1
В режиме 2 – импульсного генератора частоты – канал работает как делитель входной частоты PCLK на N, где N – константа пересчета. Режим 2 является режимом с автозагрузкой, т.е. после окончания цикла счета счетчик автоматически перезагружается и счет повторяется.
Как рассчитывалось ранее, частота дискретизации для 500 отсчетов составляет:
Частота резонатора выбрана – , соответственно, .
Таким образом константа пересчета будет находиться из выражения 4.1.
(4.1)
5. Программа
Инициализация системы
000h M1: MOV AX,4FFFh ; инициализация указателя стека
MOV SP,AX
MOV AL, 24h ; инициализация таймера
OUT 5003h
MOV AL, 64h ; загрузка константы пересчёта
OUT 5000h ; в таймер
MOV CX, 1F4h ; CX=500
MOV AL, 00h ; загрузка в AL нуля
STI ; разрешение прерывания
M2: HLT ; ожидание прерывания
080h: 00h 94h 00h 00h ; адрес подпрограммы обработки
прерывания
Начало подпрограммы обработки прерывания
090h: OUT 6000h ; вывод текущего отсчёта на ЦАП
CMP CX, 0FAh ; CX>250 ?
JA M3 ; переход на метку М3, если CX>250
DEC AL ; AL=AL–1
JMP M4 ; переход на метку М4
M3: INC AL ; AL=AL+1
M4: LOOP M2 ;СХ=СХ–1;если CХ=0 переход на метку M2
CLI ; запрещение прерывания
JMP M1 ; переход на метку M1
70F0h: JMP 00h
При включении микропроцессор выставляет начальный исполняемый адрес FFF0h, однако данная, соответственно построенная, система отреагирует не на все биты – она включит ПЗУ и произведёт чтение по адресу 70F0h, таким образом, обеспечив запуск программы.
6. Алгоритм работы системы
Блок-схема алгоритма работы системы представлена на Рис. 6.1.
Где ХТ – текущий отсчет сигнала; СX содержит информацию о номере текущего отсчета.
Рис.6.1
7. Список использованных источников
1. Ю.М. Казаринов – «Микропроцессорный комплект К1810», “Высшая школа”, Москва, 1990г.
2. Ю.М. Казаринов – «Применение микропроцессоров и микроЭВМ в радиотехнических системах», “Высшая школа”, Москва, 1988г.
3. М.М. Мичурина, И.Н. Сушкин – «Цифровые устройства и микропроцессоры. Программа и методические указания», КГТУ, Красноярск,1999г.
4. С.В. Якубовский и др. – Cправочник: «Цифровые и аналоговые интегральные микросхемы», “Радио и связь”, Москва, 1990г.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.