Алгоритм процедуры инициализации приведен на рис.6.
M1
Нет (режим ожидания)
Да
Сохранение данных I1 в ОЗУ
|
Сохранение данных 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
|
Подача входного тока I1 на ЦАП1 (U2 =0)
|
Снятие выходного тока I2 с АЦП1
|
Снятие входного напряжения U1 с АЦП2
|
Снятие выходного тока I2 с АЦП1
|
Подача выходного напряжения U2 на ЦАП2 (I1 =0)
|
Вычисление h12 = U1 / U2 результат в ОЗУ
|
Вычисление h22 = I2 / U2 результат в ОЗУ
|
Рис.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.
Вывод на канал A входного тока I1
|
M3
Вывод на канал B выходного напряжения U2
|
Рис.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