Модуль программы инициализации
Алгоритм процедуры инициализации приведен на рис.6.
Начало |
Программирование УВВ |
Ввод данных (I1) |
? |
M1
Нет (режим ожидания)
Да
Сохранение данных I1 в ОЗУ |
Программирование УВВ |
Ввод данных (U2) |
? |
Следующий модуль 2 |
Сохранение данных U2 в ОЗУ |
M2
Нет (режим ожидания)
Да
Рис.6. Блок-схема процедуры инициализации
Табл.3. Код программы инициализации
№ | Код | Комментарии | Кол-во тактов |
Программирование УВВ | |||
LD A,00FEH | Загрузка в аккумулятор управляющего слова FE (hex), позволяющего считывать канал A | ||
LD HL,1008H | Загрузка в регистровую пару HL адреса РУС | ||
LD (HL),A | Поместить из аккумулятора управляющее слово в РУС | ||
Ввод данных (I1) | |||
LD HL, (6000H) | Чтение канала А в регистр HL | ||
LD D, 1001H | Запись в регистр D адреса I1 в ОЗУ | ||
M1: LD (D), HL | Сохранение I1 в ОЗУ | ||
JP Z, M1 | Ожидание (переход по M1 при z=1) | 12 (7 при Z=0) | |
Программирование УВВ | |||
LD A,00FFH | Загрузка в аккумулятор управляющего слова FF (hex), позволяющего считывать канал B | ||
LD HL,1008H | Загрузка в регистровую пару HL адреса РУС | ||
LD (HL),A | Поместить из аккумулятора управляющее слово в РУС | ||
Ввод данных (U2) | |||
LD HL, (6000H) | Чтение канала B в регистр HL | ||
LD D, 1002H | Запись в регистр D адреса U2 в ОЗУ | ||
M2: LD (D), HL | Сохранение U2 в ОЗУ | ||
JP Z, M2 | Ожидание (переход по M2 при z=1) | 12 (7 при Z=0) |
Модуль программы измерения h-параметров
Алгоритм процедуры измерения приведен на рис.7.
Вычисление h11 = U1 / I1 результат в ОЗУ |
Вычисление h21 = I2 / I1 результат в ОЗУ |
Снятие входного напряжения U1 с АЦП2 |
Запись U1 в РОН МП |
Предыдущий модуль 1 |
Подача входного тока I1 на ЦАП1 (U2 =0) |
Снятие выходного тока I2 с АЦП1 |
Запись I2 в РОН МП |
Снятие входного напряжения U1 с АЦП2 |
Запись U1 в РОН МП |
Снятие выходного тока I2 с АЦП1 |
Запись I2 в РОН МП |
Подача выходного напряжения U2 на ЦАП2 (I1 =0) |
Вычисление h12 = U1 / U2 результат в ОЗУ |
Вычисление h22 = I2 / U2 результат в ОЗУ |
Следующий модуль 3 |
Рис.7. Блок-схема процедуры измерения h-параметров
Табл.4. Код программы измерения
№ | Код | Комментарии | Кол-во тактов |
LD A, (1001H) | Загрузка из ОЗУ в аккумулятор значения I1 | ||
LD (2000H), A | Подача входного тока I1 на ЦАП1 | ||
LD B,A | Запись значения I1 в рег.В для выполнения с ним операции деления | ||
LD A, (4000H) | Измерение I2 с АЦП1 | ||
LD HL,A | Помещение I2 в рег.HL | ||
CALL DIV | Вызов подпрограммы деления | ||
LD (1006H),HL | Запись h21 в ОЗУ | ||
LD A, (1001H) | Восстановление значения I1 в рег.В для выполнения с ним операции деления | ||
LD B,A | |||
LD A, (5000H) | Измерение U1 с АЦП2 | ||
LD HL,A | Помещение U1 в рег.HL | ||
CALL DIV | Вызов подпрограммы деления | ||
LD (1004H),HL | Запись h11 в ОЗУ | ||
LD A, (1002H) | Загрузка из ОЗУ в аккумулятор значения U2 | ||
LD (3000H), A | Подача выходного напряжения U2 на ЦАП2 | ||
LD B,A | Запись значения U2 в рег.В для выполнения с ним операции деления | ||
LD A, (4000H) | Измерение I2 с АЦП1 | ||
LD HL,A | Помещение I2 в рег.HL | ||
CALL DIV | Вызов подпрограммы деления | ||
LD (1007H),HL | Запись h22 в ОЗУ | ||
LD A, (1001H) | Восстановление значения U2 в рег.В для выполнения с ним операции деления | ||
LD B,A | |||
LD A, (5000H) | Измерение U1 с АЦП2 | ||
LD HL,A | Помещение U1 в рег.HL | ||
CALL DIV | Вызов подпрограммы деления | ||
LD (1005H),HL | Запись h12 в ОЗУ | ||
Подпрограмма деления HL на B, результат деления в HL | |||
DIV: XOR A | Исключающее Или, результат в A | ||
LD DE,1 | 1→ DE | ||
DIV1: SLA L | Cдвиг L влево (L x 2) | ||
RL H | Циклический сдвиг H влево | ||
RLA | Циклический сдвиг рег. A влево | ||
CP B | |||
JR C,ZR | Переход по метке, если бит переноса С=1 | 12(7 при С=0) | |
SUB B | A - B→ A | ||
SLI E | Сдвиг E | ||
RL D | Циклический сдвиг рег. D влево | ||
JR NC,DIV1 | Переход по метке, если бит переноса С=0 | 127 (при С=1) | |
EX DE,HL | Обмен данными между DE и HL | ||
RET | Возврат из подпрограммы | ||
ZR: SLA E | Cдвиг E влево (E x 2) | ||
RL D | Циклический сдвиг рег. D влево | ||
JR NC,DIV1 | Переход по метке, если бит переноса С=0 | 12(7 при С=1) | |
EX DE,HL | Обмен данными между DE и HL | ||
RET | Возврат из подпрограммы |
Модуль программы вывода результатов
Алгоритм процедуры вывода приведен на рис.8.
Предыдущий модуль 2 |
Вывод на канал A входного тока I1 |
Вывод на канал B выходного напряжения U2 |
Вывод на канал C h11 |
Вывод на канал D h12 |
Вывод на канал E h21 |
Вывод на канал F h22 |
Рис.8. Блок-схема процедуры циклического вывода результатов
Табл.5. Код программы вывода
№ | Код | Комментарии | Кол-во тактов |
Программирование УВВ | |||
M3: LD A,0000H | Загрузка в аккумулятор управляющего слова 00 (hex), позволяющего делать вывод на канал A, C, E | ||
LD HL,1008H | Загрузка в регистровую пару HL адреса РУС | ||
LD (HL),A | Поместить из аккумулятора управляющее слово в РУС | ||
Вывод I1 | |||
LD HL, (1001H) | Чтение I1 в регистр HL | ||
LD (6000H), HL | Вывод I1 на канал A | ||
Вывод h11 | |||
LD HL, (1004H) | Чтение h11 в регистр HL | ||
LD (7000H), HL | Вывод h11 на канал C | ||
Вывод h21 | |||
LD HL, (1006H) | Чтение h21 в регистр HL | ||
LD (8000H), HL | Вывод h21 на канал E | ||
Программирование УВВ | |||
LD A,0001H | Загрузка в аккумулятор управляющего слова 01 (hex), позволяющего считывать канал B, D, F | ||
LD HL,1008H | Загрузка в регистровую пару HL адреса РУС | ||
LD (HL),A | Поместить из аккумулятора управляющее слово в РУС | ||
Вывод U2 | |||
LD HL, (1002H) | Чтение канала U2 в регистр HL | ||
LD (6000H), HL | Вывод U2 на канал B | ||
Вывод h12 | |||
LD HL, (1005H) | Чтение канала h12 в регистр HL | ||
LD (7000H), HL | Вывод h12 на канал D | ||
Вывод h22 | |||
LD HL, (1007H) | Чтение канала h22 в регистр HL | ||
LD (8000H), HL | Вывод h22 на канал F | ||
JP M3 | Зацикливание | ||
Расчетное задание: время выполнения программы
Тактовая частота МП fтакт=10 МГц, время выполнения программы Tвып будет вычисляться как отношение числа тактов к частоте Nтакт / fтакт .
а) Для модуля инициализации: Nтакт1 = 2 x 73 = 146, Tвып1 = 14,6мкс;
б) Для модуля измерений: Nтакт2 = 2 x 147 + 4 x 127 (из расчета минимального количества циклов в подпрограмме деления) = 802, Tвып 2= 80,2 мкс;
в) Для модуля вывода: Nтакт3 = 2 x 40 + 6 x 26 + 10 = 246, Tвып3 = 24,6 мкс;
Всего тактов до зацикливания на выводе: Nтакт = 1194;
Полное время выполнения до зацикливания на выводе: Tвып = 119,4 мкс.
Заключение
В данной работе была разработана микропроцессорная система на основе микропроцессора Zilog Z80C. Число использоавнных команд = 15, коэффициент использования команд 8%. Коэффициент использования аппаратных средств очень мал, так как ПЗУ и ОЗУ изначально выбирались избыточными, но это было оправдано стоимостью микросхем. На сегодняшний день микропроцессорами в основном пользуются при разработке сложных систем, а для простых МПС широко используются микроконтроллеры, которые имеют в своем составе много встроенной периферии (АЦП, ЦАП, порты ввода/вывода и др.). В нашем случае при решении задачи на микроконтроллере затраты на аппаратные средства снизились бы в десятки раз.
Таблица спецификации элементов схемы
Табл.6. Спецификация элементов
Резисторы | ||
Наименование | Рассчитанное значение | Номинальное значение с учетом допусков (согласно ГОСТ 2865-67 и ГОСТ 10318-74 по ряду Е24, допуск ±5%) |
R1, R2 | 1 кОм | (1± 0,05) кОм |
R4 | 1 Ом | (1± 0,05) Ом |
R3 | 100 кОм | (100± 5) кОм |
Операционные усилители | ||
DA2, DA3 | Операционный усилитель LM310 компании National Semiconductor Corporation, специально предназначенный для использования в качестве повторителя, обладающий улучшенными высоким быстродействием | |
DA1 | Малошумящая микросхема ADA4899-1 компании Analog devices, содержащая в себе один ОУ. | |
Переключатели | ||
SW1 | Кнопка HB-15CKS2 | |
Линейные интегральные схемы | ||
DD3 | Микросхема 74154 - дешифратора 4x16 | |
DD6 | Микросхема AD7302, преобразующая цифровой 8 битный сигнал в напряжение (ЦАП) | |
DD7 | Микросхема DAC0830, преобразующая цифровой 8 битный сигнал в ток (ЦАП) | |
DD10, DD11 | Микросхема ADC0820, преобразующая входное напряжение в цифровой 8 битный сигнал (АЦП) | |
Цифровые интегральные схемы | ||
DD2 | Микропроцессор Z84C0010 CMOS 8-bit, производитель Zilog, семейство Z80C. | |
DD4 | Микросхема M27C256B - EPROM 256K (32K x 8-bit) - перепрограммируемое ПЗУ | |
DD5 | Микросхема IDT71256SA - CMOS STATIC RAM 256K (32K x 8-bit) – статическое ОЗУ | |
DD8 – DD12 | Порт параллельного ввода/вывода PIO Z84C2010, семейства Z80C | |
Генераторы | ||
DD1 | Кварцевый генератор IQXO-350C на 10 МГц фирмы IQD |
Литература
1) Уильямс Г.Б. «Отладка микропроцессорных систем»,Москва, Энергоатомиздат , 1988.
2) Каталог «ELFA» №57 2009. Каталог компонентов и комплектующих, приборов и инструмента для разработки, производства, сервиса современной электронной техники.
3) Интернет порталы с документацией по микросхемам http://www.alldatasheet.com/ , http://search.datasheetcatalog.net/ . Последнее обращение 1.12.2010.
4) «Расчет усилительного каскада на биполярном транзисторе: Учебно-методическое пособие: Для студентов заочного и очного обучения»,
Сост. С.Г.Прохоров, В.Г.Трусенев. / Казань: Изд-во Казан. гос. техн. ун-та, 2001.
Содержание
Введение. 2
Функциональное проектирование. 2
Структурное проектирование. 2
Проектирование аппаратной части МПС.. 2
Программирование. 2
Адресное пространство. 2
Модуль программы инициализации. 2
Модуль программы измерения h-параметров. 2
Модуль программы вывода результатов. 2
Расчетное задание: время выполнения программы.. 2
Заключение. 2
Таблица спецификации элементов схемы.. 2
Литература. 2