МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Блок управления двигателем на МК

    секунду в длительность периода импульсов с датчика;

    - клавиша «стоп» - остановка двигателя;

    - клавиша «режим» - переключение режима индикации частоты вращения /

    подаваемой нагрузки.

    Описание программы.

    В программе используются символические имена присвоенные ячейкам ОЗУ:

    st1 data 52h

    номер сдвига индикационной ячейки n_sd data 53h

    введенная частота вращения якоря двигателя obor data 54h

    делимое 1-й байт chi_3 data 55h

    делимое 2-й байт chi_2 data 56h

    делимое 3-й байт chi_1 data 57h

    делитель 1-й байт zn_h data 59h

    делитель 2-й байт zn_l data 5ah

    частное 1-й байт rez_h data 5bh

    частное 2-й байт rez_l data 5ch

    результат деления 16/8 rezul data 5dh

    измеренная длительность импульса мл. байт dli_i_l data 5eh

    измеренная длительность импульса ст. байт dli_i_h data 5fh

    заданная длительность импульса мл. байт dli_l data 60h

    заданная длительность импульса ст. байт dli_h data 61h

    временная ячейка temp data 62h

    счетчик паузы выдачи измеренного значения indik data 63h

    Используемые биты флагов перечислены ниже:

    повторный вход в п.п. измерения периода импульса flag bit 00h

    индикация нажатия функциональной клавиши f_ind bit 01h

    функциональная клавиша «реверс» f_rev bit 02h

    направление вращения f_nap bit 03h

    вкл./выкл. двигатель f_rab bit 04h

    индикация обороты/нагрузка f_rez bit 05h

    функциональная клавиша «режим» f_rezind bit 06h

    Деление 24-х битного числа на 16-и битное результат 16 бит,

    реализовано в подпрограмме div24. Деление многобайтного числа на

    многобайтное реализуется по принципу вычитания делителя из делимого со

    сдвигом последнего влево, с возможностью восстановления делимого. Перед

    процедурой деления в ячейки делителя записывается число в диапазоне 0-

    0fffh. В начале деления происходит: сдвиг делителя на четыре разряда влево

    это необходимо для деления 24/16, запись в частное 10h для определения

    окончания деления, запись в ячейки делимого число 1000000. В начале цикла

    деления производится сдвиг делимого влево на один разряд, а так же сдвиг

    влево частного и запись в стек значений флагов переносов. Далее из старшей

    части делимого вычитаем делитель, в зависимости от знака переноса в частное

    записывается «0» или «1» и сохранение делимого. Проверка переноса при

    сдвиге делимого и запись в частное «1» если перенос был. Проверка окончания

    деления путем проверки восстановленного значения флага переноса при сдвиге

    частного. После окончания деления результат деления находится в ячейках

    результата.

    После нажатия клавиши «Старт» происходит преобразования значения

    индикационных ячеек в двоичный код (1 байт), после чего это значение

    умножается на 24, что соответствует 24 прорезям диска оптопары (результат 2

    байта) и делим 1000000 на это число в результате получается длительность

    периода импульсов от оптопары для введенного числа оборотов в секунду.

    После преобразования выполняется функция запуска двигателя которая дает

    толчок и разрешается прерывание INT1 с оптопары.

    В подпрограмме обработки прерывания INT1 проверяется повторное

    вхождение для этого используется флаг flag. При первом вхождении

    запускается таймер и происходит выход из подпрограммы обработки прерывания.

    Во втором вхождении таймер останавливается, запрещается прерывание INT1 и

    значение таймера (что соответствует периоду импульса) записывается в ячейки

    dli_i_l и dli_i_h. После чего производится регулирование частоты вращения

    двигателя, для этого из ячеек dli_l dli_h (введенное значение) вычитается

    измеренное dli_i_l dli_i_h, если возник перенос значит частота вращения

    меньше необходимой и двигатель включается (отключается, если переноса нет)

    установкой кода на портах Р3.4 Р3.5. Комбинация выбирается в зависимости от

    направления вращения которая определяется битом f_nap. Индикация измеренной

    частоты вращения происходит через 47 (2f) раз измерения импульсов, это

    нужно для того чтобы убрать мелькание цифр на индикаторе. Преобразование

    измеренного значения в частоту вращения двигателя в обр/сек происходит

    следующим образом: деление 1000000 на измеренное значение, деление на 24,

    преобразование bin->dec->индикатор. Перед завершением подпрограммы

    обработки прерывания INT1 производится инициализация регистров и ячеек

    перед следующим запуском процедуры и разрешается прерывание INT1.

    Для настройки таймера и прерывания INT1 используются следующие

    управляющие слова:

    - TMOD=01H – режим работы таймера;

    - TCON=04H

    - Tr – разряд запуска таймера;

    - IEN0 – разрешения прерываний

    - 8 разряд – запрет всех прерываний;

    - 3 разряд – INT1;

    - 1 разряд – INT0 (клавиатура);

    Методика выполнения лабораторной работы.

    1 Цель работы.

    Приобретение практических навыков в технологии разработки и отладки

    элементов управляющих систем.

    2 Описание лабораторной установки.

    Лабораторная установка состоит из следующих частей: платы управления

    ПМК, платы двигателя и блока питания.

    Плата двигателя рис.6.1 состоит из трех блоков: блок датчика скорости

    вращения, блок управления, блок датчика нагрузки. Плата двигателя

    подключается к разъемам портов ПМК при помощи разъемов. X2 подключается к

    порту Р3 и служит для соединения: оптопары («Датчик») со входом прерывания

    INT1, портов Р3.4 Р3.5 с входами блока управления (Упр1 и Упр2). X6

    подключается к порту Р6 используя две линии AI6 и AI7 для измерения

    нагрузки прелагаемой к двигателю с помощью генератора (измерение нагрузки

    прелагаемой из вне при помощи этой схемы невозможно). Использование двух

    каналов предусматривается для измерения напряжения двигателя с возможным

    реверсом когда при вращении в одну сторону измерение происходит с первого

    канала, а при вращении в другую со второго. Такое распределение получается

    путем использования делителя напряжения общий конец которого соединен с

    нулевым проводом и при протекании тока в разных направлениях меняет знак

    напряжения на концах делителя относительно общего провода на

    противоположный. Опорное напряжение Uref подается соединением +5В, а

    нижняя граница (Ugnd) задается соединением с общим.

    [pic]

    Рис. 6.1.Схема платы двигателя.

    Разъем X3 соединяет схему с блоком питания.

    Датчик числа оборотов представляет собой диск, с 24-ю прорезями,

    жестко закрепленный навалу вращения двигателя. Во время прохождения прорези

    между оптопарой светодиод VD2 освещает инфракрасным излучением фотоприемник

    представляющий собой фотодиод VD1. Полупроводниковый фотоприемник уменьшив

    за счет этого свое сопротивление начинает пропускать ток открывая тем самым

    транзистор VT1 с коллектора которого снимаются прямоугольные импульсы.

    Обороты двигателя прямо пропорциональны приложенному к нему

    напряжению. В связи с этим предлагается удерживать частоту вращения в

    определенных границах с помощью изменения напряжения подаваемого на

    двигатель. Использование цифровых систем управления которые позволяют

    быстро обрабатывать данные делает возможным применения в качестве

    меняющегося напряжения шим-генератор. Длительность импульсов и пауз

    формируется динамически в зависимости от характера приложенной нагрузки.

    Подержание оборотов при увеличении нагрузки будет длится до тех пор пока

    длительность паузы не будет равной нулю и дальнейшее увеличение нагрузки

    будет снижать обороты двигателя. Для улучшения поддержания частоты вращения

    предлагается максимально возможно увеличить напряжение источника питания.

    3 Исходные данные.

    1. Комплекс отладочный: плата, ПО FDSAB;

    2. Установка управления двигателем;

    3. Возможность установки частоты вращения с клавиатуры;

    4. Стабилизация частоты;

    5. Импульсы с датчика поступают на вход прерывания INT1;

    6. Управление двигателем осуществляется выдачей кода на порты Р3.4 и

    Р3.5 в соответствии с таблицей 6.1;

    7. Максимальная скорость вращения двигателя 110 обр1/сек.;

    8. Число прорезей диска вращения датчика составляет 24 шт.

    9. Мощность двигателя 10 Вт;

    10. Входы для измерения нагрузки поступают на АЦП каналы AI6 и AI7.

    VAREF=5B.

    Таблица 6.1

    |Режим работы |IN1 |IN2 |OUT1 |OUT2 |

    |Тормоз |1 |1 |L |L |

    |Движ/Рев |0 |1 |L |H |

    |Рев/Движ |1 |0 |H |L |

    |Стоп |0 |0 |( |( |

    4 Домашние задание.

    Составить алгоритм и программу стабилизации частоты вращения

    электродвигателя постоянного тока с параллельным возбуждением в

    соответствии с исходными данными.

    5 Рекомендации по выполнению.

    В качестве параметра регулирования взять длительность периодов

    импульсов от оптопары. Выбор этого параметра взамен измерению частоты

    вращения диска, перекрепленного на двигатель, позволяет производить быстрый

    контроль стабильности системы управления за счет значительного уменьшения

    длительности измерения. Для такого регулирования необходимо преобразовывать

    введенную частоту вращения в длительность периода импульсов, формируемых

    прорезями на диске датчика, и обратно – длительность периода в частоту

    вращения. Рекомендуется осуществлять преобразование следующим образом:

    1) Введенную частоту вращения (обр/сек) умножить на число прорезей в

    диске (24);

    2) 1000000 разделить на полученное число, в результате чего получится

    длительность одного периода в мкс.

    Для обратного преобразования:

    1) 1000000 разделить на длительность периода;

    2) разделить на 24.

    При делении 1000000 (3 байта) на 2 байта возможно использование

    стандартной процедуры деления 4-х байтного числа на 2-й байтное. Но для

    более быстрого деления (а значит и увеличения скорости измерения)

    рекомендуется уменьшить длительность деления, производя деление 6-ти тетрад

    (1000000) на 3-и тетрады (максимально возможное число 4095), для этого

    необходимо:

    1) перед процедурой деления сдвинуть делитель на четыре разряда

    влево;

    2) продолжать деление с учетом сдвинутого делителя, т. е. деление

    должно длится на четыре цикла меньше;

    3) после процедуры деления сдвинуть частное на четыре разряда влево.

    Для измерения длительности периода импульсов необходимо в качестве

    счетчика использовать один из таймеров в режиме таймера. Подача на вход

    прерывания INT1 импульсов вызывает ПП обработки прерывания в которой

    необходимо следить за первым и вторым входом в ПП. При первом вхождении

    включить таймер, а при втором вхождении считать состояние таймера, что и

    будет являться длительностью периода импульса.

    6 Последовательность выполнения работы.

    1. Набрать текст программы;

    2. Откомпилировать программу;

    3. Запустить отладчик FDSAB;

    4. Загрузить в память bin файл, запустить программу на выполнение;

    5. Снять зависимость изменения частоты вращения от подаваемой

    нагрузки;

    6. Сделать вывод о проделанной работе;

    7. Составить отчет.

    Внимание! При приложении больших усилий торможения двигателя он может

    остановится что приведет к резкому увеличению тока в выходной цепи

    ИМС управления и возможно выход ее из строя.

    Заключение.

    В результате проделанной дипломной работы была разработана плата

    макета и программное обеспечение блока управления реверсивным двигателем. С

    режимами работы: установки частоты вращения якоря двигателя, стабилизации и

    индикации частоты. В качестве нагрузки используется генератор, соединенный

    с двигателем, на выходы которого подсоединен переменный резистор, которым

    задается нагрузка. В цепь генератора включен делитель напряжения для

    измерения напряжения и его индикации.

    При разработке дипломного проекта было опробовано два способа

    автоматического регулирования частоты вращения двигателя: измерение частоты

    (за определенное время подсчитывалось количество импульсов от датчика),

    измерение периода (измерялась длительность периода импульсов поступающих от

    датчика). Первый способ измерения частоты показал плохую стабильность

    частоты вращения регулирующей системы, т. к. из-за большой длительности

    измерения (при уменьшении длительности измерения увеличивалась погрешность)

    и быстрого изменения характера нагрузки система не успевала отслеживать это

    изменение, а следовательно и регулировать входную величину. Второй способ

    регулирования с измерением длительности периода показал хорошую

    стабильность автоматической системы управления. Это достигается увеличение

    числа прорезей на вращающемся диске оптопары, измерение длится короткое

    время, за которое система автоматического регулирования не успевает

    отклониться от установленного значения. Небольшое отклонение частоты

    вращения за короткий промежуток времени (времени измерения одного периода)

    сразу контролируется и происходит модификация выходного параметра.

    Литература.

    1. Григорьев В. Л. Программное обеспечение микропроцессорных систем.

    – М.: Энергоатомиздат, 1983.

    2. Щелкунов Н. Н., Дианов А. П. Микропроцессорные средства и системы.

    – М.: Радио и связь, 1989.

    3. Сташин В. В. Проектирование цифровых устройств на однокристальных

    микроконтроллерах. – М.: Энергоатомиздат, 1990.

    4. Иванов В. И. Полупроводниковые оптоэлектронные приборы: Справочник

    – 2-е изд., перераб. И доп. – М.: Энергоатомиздат, 1989

    5. Хвощ С. Т. Микропроцессоры и микроЭВМ в системах автоматического

    управления. Справочник. Л.: Машиностроение. Ленингр. отд-ние,

    1987.

    Приложение.

    Текст программы.

    ; присваивание имен

    p4 data 0e8h

    p5 data 0f8h

    ip0 data 0a9h

    ip1 data 0b9h

    ien0 data 0a8h

    ien1 data 0b8h

    adcon data 0d8h

    addat data 0d9h

    darp data 0dah

    st1 data 52h

    n_sd data 53h

    obor data 54h

    chi_3 data 55h

    chi_2 data 56h

    chi_1 data 57h

    chi_t data 58h

    zn_h data 59h

    zn_l data 5ah

    rez_h data 5bh

    rez_l data 5ch

    rezul data 5dh

    dli_i_l data 5eh

    dli_i_h data 5fh

    dli_l data 60h

    dli_h data 61h

    temp data 62h

    indik data 63h

    flag bit 00h

    f_ind bit 01h

    f_rev bit 02h

    f_nap bit 03h

    f_sta bit 04h

    f_rab bit 05h

    f_rez bit 06h

    f_rezind bit 07h

    ; определение векторов прерываний

    org 0000h

    sjmp start

    org 0003h

    ljmp klav

    org 013h

    ljmp int_1

    ; начальная инициализация

    start: mov darp,#00h

    mov adcon,#0fh

    clr f_rezind

    clr f_rab

    clr f_rev

    clr f_sta

    setb f_nap

    setb f_rez

    mov n_sd,#0bh

    mov st1,#3fh

    mov ip0,#04h

    mov ip1,#04h

    mov sp,#65h

    mov ien0,#81h

    inizial:mov r0,#47h

    mov r1,#03h

    ; начальное обнуление индикатора

    numb: mov @r0,#00h

    inc r0

    djnz r1,numb

    ; определение режима работы и его индикация

    jnb f_sta,re1

    jb f_rez,re1

    mov 4ah,#19h

    sjmp re2

    re1: mov 4ah,#10h

    re2: clr f_ind

    beg: jb f_ind,beg2

    ; определение режима работы

    jnb f_rezind,na2

    clr f_rezind

    jb f_nap,na1

    mov 4ah,#0fh

    sjmp na2

    na1: mov 4ah,#0ah

    ; запуск двигателя с проверкой направления вращения

    na2: jnb f_rev,beg2

    jb f_nap,napr1

    clr p3.5

    mov 4ah,#0fh

    jb f_rez,napr

    mov 4ah,#19h

    sjmp napr

    napr1: clr p3.4

    mov 4ah,#0ah

    jb f_rez,napr

    mov 4ah,#19h

    napr: clr f_rev

    clr flag

    setb f_rab

    mov ien0,#85h

    ; остановка двигателя

    beg2: jnb f_ind,beg1

    djnz st1,beg1

    mov st1,#05fh

    ; сдвиг индикационных ячеек вправо

    mov r0,#0ahov r1,#49h

    mov 40h,#10h

    sdvig: mov a,@r1

    inc r1

    mov @r1,a

    mov a,r1

    subb a,#02h

    mov r1,a

    djnz r0,sdvig

    djnz n_sd,beg1

    mov n_sd,#0bh

    ljmp inizial

    ; процедура индикации

    beg1: mov r4,#0feh

    mov dptr,#tabcod

    mov r0,#47h

    cycl: mov p4,#0ffh

    mov a,@r0

    movc a,@a+dptr

    mov p5,a

    mov a,r4

    mov p4,a

    rl a

    mov r4,a

    inc r0

    lcall del

    cjne r0,#4bh,cycl

    ljmp beg

    del: mov r1,#10

    st_2: mov r2,#10

    st_1: nop

    nop

    nop

    djnz r2,st_1

    djnz r1,st_2

    ret

    tabcod: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h

    db 0feh,0fdh,0fbh,0f7h,0efh,0dfh,0ffh

    db 0c6h,0f8h,0c0h,0c8h,88h,8ch,86h,80h,89h,0ceh,91h,0b0h,82h

    ; клавиатура

    klav: push acc

    push p4

    push psw

    setb psw.3

    mov r4,#00h

    mov r7,#04h

    mov r6,#0feh

    loop: mov a,r6

    mov p4,a

    rl a

    mov r6,a

    mov a,p4

    mov r5,#04h

    swap a

    rotate: rrc a

    jnc dbnc

    inc r4

    djnz r5,rotate

    djnz r7,loop

    ljmp quit

    dbnc: mov r2,#0ah

    m1: mov r3,#55h

    m2: djnz r3,m2

    djnz r2,m1

    mov a,#0f0h

    wait: mov p4,#0f0h

    cjne a,p4,wait

    mov r2,#0ah

    m3: mov r3,#55h

    m4: djnz r3,m4

    djnz r2,m3

    mov a,#09h

    subb a,r4

    jc func

    rel: mov r0,#03h

    mov r1,#48h

    new: mov a,@r1

    inc r1

    mov @r1,a

    mov a,r1

    subb a,#02h

    mov r1,a

    djnz r0,new

    mov r1,#47h

    mov 47h,r4

    ljmp quit

    ; определение режима по функциональной клавише

    func: jb f_ind,quit

    cjne r4,#0ah,g2

    ljmp bakesp

    g2: cjne r4,#0bh,g3

    ljmp sta

    g3: cjne r4,#0ch,g4

    ljmp stop

    g4: cjne r4,#0dh,g5

    ljmp rezim

    g5: cjne r4,#0eh,g6

    ljmp rezim

    g6: ljmp revers

    quit: clr psw.3

    pop psw

    pop p4

    pop acc

    reti

    ; удаление символа

    bakesp: jb f_rab,quit

    mov 47h,48h

    mov 48h,49h

    mov 49h,#00h

    ljmp quit

    ; старт. DEC->BIN

    sta: jb f_rab,quit

    mov 4ah,#0ah

    mov b,#0ah

    mov a,49h

    mul ab

    add a,48h

    mov b,#0ah

    mul ab

    add a,47h

    mov obor,a

    ; BIN*24

    mov b,#18h

    mov a,obor

    mul ab

    mov zn_l,a

    mov zn_h,b

    ; деление1000000 на полученное значение

    lcall div24

    mov dli_l,rez_l

    mov dli_h,rez_h

    ; старт измерение

    mov tl0,#00h

    mov th0,#00h

    clr flag

    mov indik,#00h

    mov tmod,#10h

    mov tcon,#04h

    mov 4ah,#10h

    mov 49h,#10h

    mov 48h,#10h

    mov 47h,#10h

    mov 46h,#11h

    mov 45h,#12h

    mov 44h,#15h

    mov 43h,#16h

    mov 42h,#12h

    mov 41h,#10h

    setb f_ind

    setb f_rev

    setb f_sta

    ljmp quit

    ; стоп

    stop: jnb f_rab,quit

    mov ien0,#81h

    setb p3.4

    setb p3.5

    clr f_rab

    mov 4ah,#10h

    mov 49h,#10h

    mov 48h,#10h

    mov 47h,#10h

    mov 46h,#10h

    mov 45h,#11h

    mov 44h,#12h

    mov 43h,#13h

    mov 42h,#14h

    mov 41h,#10h

    setb f_ind

    clr f_sta

    ljmp quit

    ; реверс

    revers: jnb f_rab,out2

    mov ien0,#81h

    setb p3.4

    setb p3.5

    mov 4ah,#10h

    mov 49h,#10h

    mov 48h,#10h

    mov 47h,#10h

    mov 46h,#16h

    mov 45h,#17h

    mov 44h,#18h

    mov 43h,#17h

    mov 42h,#16h

    mov 41h,#11h

    jb f_nap,n1

    mov adcon,#0eh

    sjmp n2

    n1: mov adcon,#0fh

    n2: setb f_rev

    cpl f_nap

    setb f_ind

    out2: ljmp quit

    ; режим обороты двигателя/нагрузка

    rezim: jnb f_rab,out

    cpl f_rez

    jb f_rez,rez1

    mov 4ah,#10h

    mov 49h,#10h

    mov 48h,#10h

    mov 47h,#10h

    mov 46h,#19h

    mov 45h,#15h

    mov 44h,#1ah

    mov 43h,#16h

    mov 42h,#1bh

    mov 41h,#1ch

    setb f_ind

    out: ljmp quit

    rez1: mov 4ah,#10h

    mov 49h,#10h

    mov 48h,#10h

    mov 47h,#10h

    mov 46h,#13h

    mov 45h,#1dh

    mov 44h,#13h

    mov 43h,#16h

    mov 42h,#13h

    mov 41h,#12h

    setb f_rezind

    setb f_ind

    ljmp quit

    ; процедура деления 3-х байт на 2-ва

    div24: push psw

    push acc

    mov chi_3,#0fh

    mov chi_2,#42h

    mov chi_1,#40h

    mov rez_h,#00

    mov rez_l,#10h

    mov a,zn_h

    mov b,#10h

    mul ab

    mov zn_h,a

    mov a,zn_l

    mov b,#10h

    mul ab

    mov zn_l,a

    mov a,b

    add a,zn_h

    mov zn_h,a

    lp24: mov a,rez_l

    rlc a

    mov rez_l,a

    mov a,rez_h

    rlc a

    mov rez_h,a

    push psw

    clr c

    mov a,chi_1

    rlc a

    mov chi_1,a

    mov a,chi_2

    rlc a

    mov chi_2,a

    mov a,chi_3

    rlc a

    mov chi_3,a

    push psw

    clr c

    mov a,chi_2

    subb a,zn_l

    mov chi_t,a

    mov a,chi_3

    subb a,zn_h

    jc nosav

    pop psw

    sav: mov chi_3,a

    mov chi_2,chi_t

    inc rez_l

    sjmp qsav

    nosav: pop psw

    jc sav

    qsav: pop psw

    jnc lp24

    pop acc

    pop psw

    ret

    ; прерывание от датчика

    int_1: jb flag,iz2

    setb flag

    setb tr1 ; первое вхождение. запустить таймер

    reti

    iz2: push psw ; второе вхождение

    push acc

    clr tr1

    mov ien0,#80h

    mov dli_i_l,tl1 ; сохранить измеренное значение

    mov dli_i_h,th1 ;

    ; регулировка

    clr c

    mov a,dli_i_l

    subb a,dli_l

    mov a,dli_i_h

    subb a,dli_h

    jc mot_1

    jb f_nap,nap11

    setb p3.4

    sjmp mot_0

    nap11: setb p3.5

    sjmp mot_0

    mot_1: jb f_nap,nap01

    clr p3.4

    sjmp mot_0

    nap01: clr p3.5

    mot_0:

    ; индикация

    jb f_ind,inizdp

    djnz indik,inizdp

    mov indik,#2fh

    jb f_rez,chas

    ; индикация нагрузки

    azp0: jnb adcon.4,azp0

    mov a,addat

    mov b,#0ah

    div ab

    mov 47h,b

    mov b,#0ah

    div ab

    mov 48h,b

    mov 49h,a

    inizdp: ljmp iniz

    ; индикация частоты вращения

    chas: jb f_nap,i_nap1

    mov a,4ah

    cjne a,#0ah,in_ob2

    mov 4ah,#10h

    in_ob2: dec 4ah

    sjmp i_nap2

    i_nap1: mov a,4ah

    cjne a,#0fh,in_ob1

    mov 4ah,#09h

    in_ob1:inc 4ah

    i_nap2: mov zn_l,dli_i_l

    mov zn_h,dli_i_h

    lcall div24 ; деление 3 байт на 2 байт

    mov rezul,#01h ; деление 2 байт на 24

    lp16: clr c

    mov a,rezul

    rlc a

    mov rezul,a

    push psw

    clr c

    mov a,rez_l

    rlc a

    mov rez_l,a

    mov a,rez_h

    rlc a

    mov rez_h,a

    push psw

    clr c

    mov a,rez_h

    subb a,#18h

    jc nosav16

    pop psw

    sav16: mov rez_h,a

    inc rezul

    sjmp qsav16

    nosav16: pop psw

    jc sav16

    qsav16: pop psw

    jnc lp16

    ; BIN->DEC

    mov a,rezul

    mov b,#0ah

    div ab

    mov 47h,b

    mov b,#0ah

    div ab

    mov 48h,b

    mov 49h,a

    ; инициализация нового запуска программы измерения

    iniz: mov tl1,#00h

    mov th1,#00h

    clr flag

    port_0: jb p3.3,port_0

    port_1: jnb p3.3,port_1

    mov ien0,#85h;84

    pop acc

    pop psw

    reti

    end

    -----------------------

    Изм

    Дата

    № Документа

    Подпись

    Лист

    Лист

    39

    ККЭП 2202 01 000 ПЗ

    Изм

    Дата

    № Документа

    Подпись

    Лист

    ККЭП 2202 01 000 ПЗ

    Выполнил

    Руковод.

    Балдин П.М.

    Дубров Ф.И.

    Блок управления двигателем

    Гр.

    Лист

    Листов

    Литера

    у

    1

    1

    Страницы: 1, 2


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.