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




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

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

          LD     D, (HL)       ; D=код, выводимый на 5-й индикатор

                                       ; цикл вывода на индикаторы

E_RAM1    LD     A, #79; A¬семисегментный код символа “E”

          OUT  (#0A), A     ; в 1-й слева индикатор

          OUT  (#1A), A     ;

LD     A, #06                  ; A¬“1”

OUT  (#09), A                ; во 2-й индикатор

OUT  (#19), A                ;

          XOR A                ; A¬“ ” (пусто)

          OUT  (#08), A      ; в 3-й

          OUT  (#18), A      ;

          OUT  (#07), A      ; в 4-й

          OUT  (#17), A      ;

          LD     A, D            ; выводим DBEC на индикаторы 5678

          OUT  (#06), A      ;

          OUT  (#16), A      ;

          LD     A, B            ;

          OUT  (#05), A      ;

          OUT  (#15), A      ;

          LD     A, E            ;

          OUT  (#04), A      ;

          OUT  (#14), A      ;

          LD     A, C            ;

          OUT  (#03), A      ;

          OUT  (#13), A      ;

          JR     E_RAM1    ; переход на начало цикла


Тест ПЗУ

Тест ПЗУ состоит в вычислении контрольной суммы ПЗУ, т.е. суммы всех байтов в ПЗУ без учета переполнения суммы, и сравнении полученной суммы с известным эталонным значением. Несовпадение свидетельствует о явной неисправности ПЗУ, совпадение не обязательно говорит об его исправности (могут быть, хотя маловероятно, две компенсирующие друг друга ошибки).

Для этого теста (чтобы знать эталон, с которым сравнивать) надо иметь все подпрограммы ПЗУ. Однако сейчас мы только на стадии заполнения постоянной памяти. Предлагается следующий путь: в составленной ниже программе теста ПЗУ вычисляем контрольную сумму и сравниваем ее с нулем. А после того, как запрограммируем ПЗУ полностью, последнюю ячейку ПЗУ (17FFН) оставим свободной и занесем в нее число, дополняющее сумму всего ПЗУ без последней ячейки до нуля.

Получив в сумме всех ячеек ПЗУ не ноль, программа тестирования вызывает зацикленную подпрограмму E_ROM, имея в регистре E число 2, характеризующее код ошибки.

Листинг 3: Тест ПЗУ

          ; – – – вычисление контрольной суммы ПЗУ

TST_ROM XOR A                ; A=0

          LD     H, A            ;

          LD     L, A            ; HL=0

TST_ROM1         ADD A, (HL)       ; A¬A+(HL)

          INC   HL              ; увеличить адрес ПЗУ на 1

          LD     B, A            ; сохранить сумму A на время

          LD     A, H            ; и проверить, достигли ли конца ПЗУ

          CP     #08              ;

          LD     A, B            ; восстановить сумму A

          JR     NZ, TST_ROM1;

          OR    A                ; если конец ПЗУ, проверить A на ноль

          LD     E, 2             ;

          JP      NZ, E_ROM         ;если не ноль, то ошибка ПЗУ

          …                         ; иначе тест ПЗУ успешен, продолжаем тесты

Подпрограмма E_ROM выводит на два самых левых индикатора условный код ошибки ПЗУ (“E2”), а остальные индикаторы гасит. Индикация такой ошибки говорит о необходимости проверки и перепрограммирования микросхемы ПЗУ.

Листинг 4: процедура E_ROM, вызываемая после ошибки ПЗУ

                   ; – – – обработка ошибки ПЗУ (код “E2”)

                   E_ROM                LD     A, #79                  ; A¬“E”

                   OUT  (#0A), A     ;

                   LD     A, E            ; A¬код ошибки (2)

                   OUT  (#09), A                ;

                   XOR A                ; A¬“0”

                   LD     C, #08                  ;

                   LD     D, #18                  ;

                   LD     B, 6             ; счетчик

                   E_ROM1    OUT  (C), A                   ; последние шесть индикаторов гасим

                   OUT  (D), A                   ;

                   DEC  C                 ;

                   DEC  D                ;

                   DJNZ          E_ROM1    ;

                   JR     E_ROM                ;


Тест фотоэлементов

Перед началом работы нужно проверить прохождение света от ламп к фотоэлементам. Если один из фотоприемников не чувствует света, это значит, что или перегорела лампа фотоэлемента, или в момент пуска бревно уже лежит между фотоэлементами и его длина не может быть измерена, или повредился канал от фотоэлемента к процессору. В обоих случаях микропроцессорная система не начнет свою работу (т.к. нет возможности отличить второй случай от остальных). При обнаружении такой ошибки на индикаторы выводится признак ошибки фотоэлемента в виде условного кода “E3”.

В программе этого теста читается порт ввода статуса фотоэлементов (адрес 0B) и проверяются на ноль два его младших бита. Если хотя бы один не равен нулю, то происходит переход на обработчик ошибки. Причем для обработки ошибки можно использовать ту же процедуру E_ROM, перед вызовом загрузив в регистр E код ошибки 3 (экономия памяти).

Листинг 5: тест фотоэлементов

; – – – проверка двух младших битов порта ФЭЛ на 0

TST_FEL   IN      A, (#0B)     ; прочесть слово статуса ФЭЛ

AND 3                                      ; наложить на него маску 000000112

LD     E, 3                                 ;

JP      NZ, E_ROM                   ; если не ноль, то ошибка

…                                             ; иначе продолжаем тесты

Инициализация программируемого контроллера прерываний

Для инициализации контроллера надо переслать ему два управляющих слова ICW1 и ICW2, первое по адресу 0CН (A0=0), второе – по адресу 0DН (A0=1).

Пересылаются следующие управляющие слова:

Рис. 6 Применяемые управляющие слова инициализации ПКП

Слово ICW1 установит одиночный (без каскадного соединения) режим работы ПКП (бит 1), 4-хбайтный интервал для начальных адресов обработчиков прерываний (бит 2).

Биты 5–7 слова ICW1 вместе со всем словом ICW2 сообщат контроллеру, что первый обработчик (запроса IR0) начинается с адреса 0020Н.

Контроллер накладывает определенные ограничения на расположение обработчиков в памяти. Первое из них в том, подпрограммы обработки прерываний должны располагаться по порядку, начиная с адреса обработчика запроса IR0, и с постоянным интервалом, т.е. образовывать в памяти таблицу. Интервал расположения может составлять 4 байта (если бит 2 ICW1 равен единице, как в нашем случае), или 8 байт (если бит 2 равен нулю). При постоянном интервале адреса всех обработчиков определятся расположением первого (IR0).

Адрес первого обработчика составляется из полного слова ICW2 (старший байт) и битов 7,6,5 слова ICW1 (старшие три бита младшего байта адреса).

В нашем случае старший байт равен 00Н, младший байт равен 0010 0000 = 20Н. Обработчики имеют начальные адреса: 0020H, 0024H, 0028H, 002CH, 0030H, 0034H (6 обработчиков).

Процедура INI_PIC инициализирует контроллер.

Листинг 6: инициализация программируемого контроллера прерываний

; – – – переслать 38H в порт 0CH и 0 в порт 0DH

INI_PIC      LD     A, #38                  ;

                   OUT  (#0C), A               ;

                   XOR A                ;

                   OUT  (#0D), A     ;

Инициализация переменных системы

В системе за некоторыми ячейками памяти закреплена функция хранения переменных. Например, подсчитанный суммарный объем древесины VS в двоичном формате хранится в отдельных двух байтах памяти с адресами V_SUM, V_SUM+1.

Требуют инициализации только две переменные (инициализируются нулем):

VS (2 байта) – начальный адрес V_SUM;

Время (4 байта) – начальный адрес TIME.

Ясно, что эти имена (V_SUM и TIME) лишь условные обозначения (также, как, например, имена меток в листингах программ). При переводе в машинный код эти имена транслируются в двухбайтный адрес.

Листинг 7: инициализация ячеек суммарного объема и времени

; – – – начальное обнуление объема и времени

INI_VAR    XOR A                ;

LD     (V_SUM), A        ;

LD     (V_SUM+1), A    ;

LD     (V_SUM+2), A    ;

LD     (TIME), A   ;

LD     (TIME+1), A        ;

LD     (TIME+2), A        ;

LD     (TIME+3), A        ;

…                         ; следует продолжение переходит к основному циклу работы (описание см. в п.4.4).


Арифметические подпрограммы

Микропроцессорной системе необходимо “уметь” выполнять арифметические операции: сложение, вычитание, умножение, деление и косинус. В этом же разделе приведем и неарифметические процедуры для осуществления индикации: преобразования данных в двоично-десятичный код и в семисегментный.

Основным форматом чисел в МП системе является двухбайтный формат с фиксированной точкой вида 1байт , 1байт . Формат беззнаковый, предполагается, что числа положительны. Одно число умещается в одной регистровой паре. Минимальное представимое число – 0,01H=1/256=3,9×10-3, максимальное – FF,FFН=256,996.

Общие правила для всех вычислительных процедур:

-  программист вызывающей программы сам следит, чтобы операнды и результат не выходили за пределы представления и чтобы при вычитании не образовалось отрицательных величин;

-  операнды при сложении, вычитании, умножении, делении хранятся в регистровых парах HL и DE, результат в HL. Процедура косинуса получает операнд и выводит результат в паре HL.

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

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