Максимальное напряжение: 50 В (пост. или перем.)
Максимальный ток: 100 мА
Максимальная мощность: 1.5 Вт
Напряжение пробоя: 500 V (дейст.)
Сопротивление замкнутого контакта: 2 Ом (max)
Размыкание контакта: 4мс(в среднем), 10 мс(мах)
Ресурс: 3000000 срабатываний для каждой кнопки
Сопротивление изоляции: 1000 МОм (min)
Усилие нажатия: 500 гр. (слышимый тактильный эффект)
Влажность: 0 до 98 (без конденсации)
Поверхность кнопки: полиэстер
Посадочная поверхность: нержавеющая сталь
Материал кнопочной клавиатуры: силиконовая резина
Кабель: 1м, подключаемый к 8 контактному разъему
Размер: 78.7 x 78.7 x 22 (мм)
В данной главе приведен текст основного модуля программы. Алгоритм этого модуля приведен на графическом листе 1 под номером 1. Данный модуль включает в себя следующие этапы:
инициализация;
загрузка из ППЗУ номера, координат и вида поляризации последнего спутника;
установка начальных значений переменных;
вызов подпрограммы управления двигателя для отображения его текущих координат;
вызов подпрограммы обработки прерываний;
программная 5 сек. задержка.
Программа инициализации должна осуществлять распаковку модулей программы из ПЗУ и ППЗУ в ОЗУ, настройку векторов прерывания, передачу управления рабочей программе.
Программа инициализации находится в начале адресного пространства ПЗУ с адреса 4000H.
Модуль №1 (рабочая программа) занимает 5 кб и размещается в ПЗУ с адреса 5000H по 63FFH. Модуль №1 должен быть распакован в ОЗУ с адреса 2900H по 3CFFH.
Модуль №2 занимает 1 кб и размещается в ПЗУ с адреса 8000H. Модуль №2 должен быть распакован в ОЗУ с адреса 3D00H по 40FFH.
Модуль №3 (библиотека подпрограмм) занимает 2 кб и размещается в ПЗУ с адреса 9000H по 97FFH. Модуль №3 должен быть распакован в ОЗУ с адреса 4100H по 48FFH.
В модуле №3 содержатся подпрограммы обработки прерываний. Под каждую подпрограмму обслуживания прерывания отводится 128 байт. Следовательно, начальные адреса подпрограмм обслуживания прерываний 1 - 9000H; 2 - 9080H; 3 - 9100H.
Прерывания на МП поступают на вход RST7.5. При поступлении фронта сигнала
на этот вход, МП начинает выполнять команду по адресу 2Ch. Поэтому в ячейке пямяти 2Сh должна располагаться команда
перехода на подрограмму обработки прерываний.
Текст программы
|
|
|
;инициализация программы |
|
|
|
;распаковка модуля №1 |
|
|
ORG4000h |
|
|
|
LXI B,5000h |
;Начальный адрес в ПЗУ |
|
|
LXI D,2900h |
;Начальный адрес памяти для распаковки |
|
|
LDAX B |
(A) ß ((BC)) |
|
|
LXI H,3D00h |
((HL)) ß (3D00h) |
|
cycle1: |
STAX D |
((DE)) ß (A) |
|
|
INX B |
(BC) ß (BC) + 1 |
|
|
INX D |
(DE) ß (DE) + 1 |
|
|
LDAX D |
(A) ß ((DE)) |
|
|
CMP M |
|
|
|
JNZ cycle1 |
Возврат на cycle1, если Z=0 |
|
|
|
;распаковка модуля №2 |
|
|
LXI B,8000h |
Начальный адрес ПЗУ |
|
|
XCHG |
Начальный адрес памяти для распаковки (3D00h) |
|
|
LDAX B |
(A) ß ((BC)) |
|
|
LXI H,4100h |
((HL)) ß (4100h) |
|
cycle2: |
STAX D |
((DE)) ß (A) |
|
|
INX B |
(BC) ß (BC) + 1 |
|
|
INX D |
(DE) ß (DE) + 1 |
|
|
LDAX B |
(A) ß ((BC)) |
|
|
CMP M |
|
|
|
JNZ cycle2 |
Возврат на cycle2, если Z=0 |
|
|
|
;распаковка модуля №3 |
|
|
LXI B,9000h |
Начальный адрес ПЗУ |
|
|
XCHG |
Начальный адрес памяти для распаковки (4100h) |
|
|
LDAX B |
(A) ß ((BC)) |
|
|
LXI H,4900h |
((HL)) ß (4900h) |
|
cycle3: |
STAX D |
((DE)) ß (A) |
|
|
INX B |
(BC) ß (BC) + 1 |
|
|
INX D |
(DE) ß (DE) + 1 |
|
|
LDAX B |
(A) ß ((BC)) |
|
|
CMP M |
|
|
|
JNZ cycle3 |
Возврат на cycle3, если Z=0 |
|
|
JMP 2900h |
;передача управления рабочей программе |
|
|
|
|
|
|
ORG 2900h |
|
|
angle: |
EQU 2000h |
;установка начальных |
|
direct: |
EQU 2001h |
;значений переменных |
|
stop: |
EQU 2002h |
|
|
scan: |
EQU 2003h |
|
|
|
MVI A,0h |
|
|
|
LXI B,angle |
|
|
|
STAX B |
|
|
|
LXI B,direct |
|
|
|
STAX B |
|
|
|
LXI B,stop |
|
|
|
STAX B |
|
|
|
LXI B,scan |
|
|
|
STAX B |
|
|
|
|
|
|
|
|
|
|
last: |
EQU E000h |
;номер последнего спутника в ППЗУ |
|
n: |
EQU 2004h |
|
|
degree: |
EQU 2005h |
|
|
polar: |
EQU 2006h |
|
|
|
LXI B,last |
;загрузка номера |
|
|
LXI D,n |
;последнего |
|
|
LDAX B |
;спутника |
|
|
STAX D |
;из ППЗУ |
|
|
INX B |
|
|
|
LXI D,degree |
;загрузка |
|
|
LDAX B |
;его |
|
|
STAX D |
;координат |
|
|
INX B |
|
|
|
LXI D,polar |
;загрузка |
|
|
LDAX B |
;вида его |
|
|
STAX D |
;поляризации |
|
|
CALL motor |
;вызов подпрограммы управления двигателем |
|
delay: |
NOP |
|
|
step1: |
MVI C,64h |
;цикл step1 длится 25×100=2 500 Т |
|
step2: |
MVI B,64h |
;цикл step2 длится 25×100×100=250 000 Т |
|
step3: |
MVI A,63h |
;цикл step3 длится 25×100×100×99=24 750 000 Т |
|
|
MOV D,A |
|
|
|
DCR A |
|
|
|
JNZ step3 |
|
|
|
DCR B |
|
|
|
CMP B |
|
|
|
JNZ step2 |
;весь цикл delay длится 25 002 500 Т |
|
|
DCR C |
;что при длительности 1Т=200нс |
|
|
CMP C |
;составляет 5,0005 сек |
|
|
JNZ step1 |
|
|
|
HLT |
|
|
|
JMP delay |
|
|
|
|
|
|
|
|
;обработчик прерываний |
|
deadleft: |
EQU 4100h |
|
|
deadrght: |
EQU 4180h |
|
|
keyboard: |
EQU 4200h |
|
|
|
PUSH PSW |
;Сохранение |
|
|
PUSH B |
;текущего |
|
|
PUSH D |
;состояния |
|
|
PUSH H |
;регистров |
|
|
IN 10h |
;Считывание номера прерывания |
|
|
CPI 01h |
;Идентификация прерывания |
|
|
JZ irq1 |
|
|
|
CPI 02h |
|
|
|
JZ irq2 |
|
|
|
CPI 03h |
|
|
|
JZ irq3 |
|
|
|
JMP endirq |
|
|
irq1: |
CALL deadleft |
;Вызов подпрограммы обработки прерывания |
|
|
JMP endirq |
|
|
irq2: |
CALL deadrght |
;Вызов подпрограммы обработки прерывания |
|
|
JMP endirq |
|
|
irq3: |
CALL keyboard |
;Вызов подпрограммы обработки прерывания |
|
endirq |
POP H |
;Загрузка предыдущего |
|
|
POP D |
;состояния |
|
|
POP B |
;регистров |
|
|
POP PSW |
;из стека |
|
|
JMP delay |
;переход на подпрограмму 5 сек. задержки Разработка аппаратной части производилась с использованием стандартных микросхем, выпускаемых отечественной и зарубежной промышленностью. Была разработана программа основного модуля, вклющая в себя следующие осовные этапы: инициализация; загрузка из ППЗУ номера, координат и вида поляризации последнего спутника; установка начальных значений переменных; вызов подпрограммы обработки прерываний. В ходе работы были изучены методы построения
микропроцессорных систем на примере МП КМ1821ВМ85, способы построения,
адресации и организация памяти для данного типа микропроцессоров.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ1. Микропроцессоры и микропроцессорные комплекты интегральных микросхем: Справочник. В 2 т. /В.-Б.Б. Абрайтис, Н.Н. Аверьянов, А.И. Белоус и др.; Под ред. В.А. Шахнова. -М.: Радио и связь, 1988, т.1.-368с. 2. Хвощ С.Т. и др. Микропроцессоры и микроЭВМ в системах автоматического управления. Справочник /С.Т. Хвощ, Н.Н. Варлинский, Е.А. Попов. Под общ. ред. С.Т. Хвоща. -Л.: Машиностроение, Ленинградское отделение, 1987, -640с. . Токхайм Р. Микропроцессоры: Курс и упражнения. /Пер. с англ. Под. ред. В.Н. Грасевича. М.: Энергоатомиздат, 1987, - 336с. . Григорьев В.Л. Программирование однокристальных микропроцессоров. -М.: Энергоатомиздат, 1987,-288с. . Майоров В.Г., Гаврилов А.И. Практический курс программирования микропроцессорных систем. -М.: Машиностроение, 1989, -279с. . Вершинин О.Е. Применение микропроцессоров для автоматизации технологических процессов. Л.: Энергоатомиздат, Ленинградское отделение, 1986, -208с. . ГОСТ 2.743-91 «Обозначения условные графические в схемах. Элементы цифровой техники» . ГОСТ 19.701-90 «Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения» |