рефераты рефераты
Главная страница > Курсовая работа: Микропроцессорная система управления, предназначенная для использования на лесопильном заводе  
Курсовая работа: Микропроцессорная система управления, предназначенная для использования на лесопильном заводе
Главная страница
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
География экономическая география
Геодезия
Геология
Госслужба
Гражданский процесс
Гражданское право
Иностранные языки лингвистика
Искусство
Историческая личность
История
История государства и права
История отечественного государства и права
История политичиских учений
История техники
История экономических учений
Биографии
Биология и химия
Издательское дело и полиграфия
Исторические личности
Краткое содержание произведений
Новейшая история политология
Остальные рефераты
Промышленность производство
психология педагогика
Коммуникации связь цифровые приборы и радиоэлектроника
Краеведение и этнография
Кулинария и продукты питания
Культура и искусство
Литература
Маркетинг реклама и торговля
Математика
Медицина
Реклама
Физика
Финансы
Химия
Экономическая теория
Юриспруденция
Юридическая наука
Компьютерные науки
Финансовые науки
Управленческие науки
Информатика программирование
Экономика
Архитектура
Банковское дело
Биржевое дело
Бухгалтерский учет и аудит
Валютные отношения
География
Кредитование
Инвестиции
Информатика
Кибернетика
Косметология
Наука и техника
Маркетинг
Культура и искусство
Менеджмент
Металлургия
Налогообложение
Предпринимательство
Радиоэлектроника
Страхование
Строительство
Схемотехника
Таможенная система
Сочинения по литературе и русскому языку
Теория организация
Теплотехника
Туризм
Управление
Форма поиска
Авторизация




 
Статистика
рефераты
Последние новости

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

                   IR3_H3       POP  AF              ;

                                      POP  HL              ;

                                      POP  BC              ;

                                      RETI                    ;

Обработчик IRQ4 (от кнопки “+Час”)

Функция обработчика – увеличить на единицу часы реального времени (ячейка TIME+3).

Листинг 20: обработчик запроса IRQ4

                   ; – – – инкремент часов

                   IR4_H         PUSH         HL              ;

                                      PUSH         AF              ;

                                      LD     HL, TIME+3;

                                      INC   (HL)            ; инкремент часов

                                      LD     A, (HL)       ;

                                      CP     24               ;

                                      JR     C, IR4_H1  ;

                             XOR A                ; если счетчик часов=24

                             LD     (HL), A                 ; то обнулить часы и минуты

                             DEC  HL              ;

                             LD     (HL), A                 ;

                   IR4_H1                POP  AF     ;

                                      POP  HL              ;

                                      RETI

Обработчик IRQ5 (от кнопки “+Мин”)

Функция обработчика – увеличить на единицу минуты реального времени (ячейка TIME+2).

Листинг 21: обработчик запроса IRQ5

                   ; – – – инкремент минут

                   IR5_H         PUSH         HL              ;

                   PUSH         AF              ;

                   LD     HL, TIME+2;

                   INC   (HL)            ; инкремент минут

                   LD     A, (HL)       ;

                   CP     60               ;

                   JR     C, IR5_H1  ;

                   XOR A                ; если счетчик минут=60

                   LD     (HL), A                 ; то обнуление минут

                   INC   HL              ; и инкремент часов

                   INC   (HL)            ;

                   LD     A, (HL)       ; с проверкой часов на 24

                   CP     24               ;

                   JR     C, IR5_H1  ;

                   XOR A                ; если счетчик часов=24

                   LD     (HL), A       ; то обнулить и часы

                   IR4_H1                POP  AF     ;

                   POP  HL              ;

                   RETI

Обработчик IRQ1 (от фотоэлемента Фэл2)

Обработчик IRQ1 выполняет самую важную функцию. Его задача – вычислить объем бревна. Последовательность следующая: вычисляем диаметр бревна, длину, вычисляем объем Vi, находим объем VS.

Для вычисления диаметра все значения, прежде считанные в массив напряжений с АЦП, усредняются: суммируются и делятся на количество (D_NUM). При суммировании может произойти переполнение суммы (а она двухбайтная), чтобы этого не было, массив разбивается на группы по 16 измерений в каждой. Если осталась остаточная группа с числом меньше 16, то она отбрасывается. В каждой из них подсчитывается среднее, затем рассчитывается искомое как среднее средних.

Из среднего напряжения находится угол

a=.

Затем находим диаметр d=0,625 – 0,5cos a=00,A0H – 00,80Hcos a. Занести его в ячейку DIAM (2 байта в памяти). Сравнить диаметр с допустимыми пределами [0,2..0,5]=[0,33H..0,8H]. Если он выходит за эти пределы, то выдать на отбраковку (порт 02H) единицу.

Объем Vi находится как Vi=(p/4)d2×T1/T2=0,C9H×d2×T1/T2.

Листинг 22: обработчик запроса IRQ1

; – – – найти объем бревна и суммарный объем

; усреднение всех напряжений с датчика диаметра в массиве по адресу 1000H

IR1_H         PUSH         AF     ;

                   PUSH         BC    ;

                   PUSH         DE    ;

                   PUSH         HL     ;

                   LD     L, (D_NUM)        ;

                   LD     H, (D_NUM+1)    ;

                   LD     B, 4             ; делим D_NUM на 16

IR1_H1                SRL   H       ;

                   RR    L                 ;

                   DJNZ          IR1_H1       ;

                   LD     C, L   ; в результате C=число групп по 16

                   PUSH         BC              ; сохранить С в стеке

                   LD     HL, #1000  ;

                   LD     DE, 0          ; DE – начальная сумма групп

          PUSH         DE              ; отправить ее в стек, C станет второй в стеке

          PUSH         DE              ; DE – начальная сумма отдельной группы,

                                      ; отправить®в стек, сумма групп вторая в стеке

                                      ; C – третья в стеке

IR1_H4                LD     B, 16           ;

IR1_H2                LD     E, (HL)       ; читаем в DE элемент массива

          INC   HL              ;

          LD     D, (HL)       ;

          INC   HL              ;

          EX    (SP), HL     ; текущую сумма в HL, текущий адрес в стеке

          ADD HL, DE       ;

          EX    (SP), HL     ; новая сумма в стеке, текущий адрес в HL

          DJNZ          IR1_H2       ;

          ; в итоге сумма одной группы по 16 – в стеке

          ; начальный адрес следующей группы – в HL

          POP  DE              ;

          LD     B, 4             ; находим среднее одной группы,

          IR1_H3       SRL   D       ; деля сумму в DE на 16

          RR    E                 ;

          DJNZ          IR1_H3                ;

          POP  HL              ; берем из стека сумму групп

          ADD HL, DE                 ;

          PUSH         HL              ; снова отправляем в стек: сначала сумму групп

          PUSH         DE              ; затем сумму одной группы

          DEC  C                 ; С – счетчик групп

          JR     NZ, IR1_H4         ; следующая группа…

          POP  HL              ;

          POP  HL              ; извлечь найденную сумму групп

          POP  BC              ; извлечь счетчик групп C

          LD     D, C            ; DE=C.0

          LD     E, 0             ;

          CALL         DIV            ; делим сумму групп на число групп

          ; теперь HL=Ud=среднее всего массива напряжений датчика

          ; следующий шаг – нахождение угла a, cos a, d

          LD     D, 4            ; DE=491H

          LD     E, #91                  ;

          LD     B, H            ; сохранить Ud в BC

          LD     C, L            ;

          EX    DE, HL                 ;

          CALL         MINUS                ; HL=491H-Ud

          EX    HL, DE                 ;

          LD     H, B            ;

          LD     L, C            ;

          CALL         DIV            ; HL= Ud/(491H-Ud)

          LD     D, 0            ;

          LD     E, #4F                  ;

          CALL         MUL           ; HL=a

          CALL         COS            ; HL=cos a

          LD     D, 0            ;

          LD     E, #80                  ;

          CALL         MUL           ; HL=0,5cos a

          LD     D, 0            ;

          LD     E, #A0                  ;

          EX    HL, DE                 ;

          CALL         MINUS                ; HL=0,625-0,5cos a=d

          LD     (DIAM), HL         ; занести диаметр в память

          ; формируем сигнал отбраковки

          LD     A, L            ;

          CP     #33             ;

          JR     NC, IR1_H5         ; если d>20, то идем дальше

          LD     A, 1            ; иначе в порт отбраковки записать 1

          OUT  (#02), A                ;

          JR     IR1_OUT   ; и выход, не считая объем

          IR1_H5                LD     A, L            ;

          CP     #80             ;

          JR     C, IR1_H6  ; если d<50, то идем дальше

          LD     A, 1            ; иначе в порт отбраковки записать 1

          OUT  (#02), A                ;

          ; дальше находим Vi, VS

          IR1_H6                LD     L, (T1)        ;

          LD     H, (T1+1)   ;

          LD     E, (T2)                  ;

          LD     D, (T2+1)   ;

          CALL         DIV            ; HL=T1/T2

          LD     E, (DIAM)  ;

          LD     D, (DIAM+1)       ;

          PUSH         DE              ;

          CALL         MUL           ; HL=T1×d/T2

          POP  DE              ;

          CALL         MUL           ; HL=T1×d2/T2

          LD     D, 0            ;

          LD     E, #C9                  ;

          CALL         MUL           ; HL=(p/4)T1×d2/T2=Vi

          EX    HL, DE                 ;

          LD     L, (V_SUM)         ;

          LD     H, (V_SUM+1)    ;

          CALL         PLUS                   ; HL=VS

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

рефераты
Новости