Для упрощения написания и последующего восприятия программы, возможности ее частичного написания до разработки аппаратной части МПС и для уменьшения затрат времени на отладку программы используются символической формы обозначения различных устройств, параметров, констант и т.д. Например, для адреса регистра порта «А» ППА определим константу PPA_A, адреса регистра порта «В» ППА определим константу PPA_В, и т.д.
Для хранения значений переменных X и K, а также результатов вычисления функций Y1, Y2, Y3 используются переменные Data_X, Data_K, Data_Y1, Data_Y2, Data_Y3.
Для связи символических имен с их числовыми значениями используется директива EQU.
В программе используются следующие процедуры:
1) ProgramPrer - подпрограмма обработки прерывания. Эта подпрограмма вызывает подпрограмму ProgramCalculateY2SetPIT, не изменяя значение ax.
2) ProgramKlavIn - подпрограмма опроса клавиатуры (порта А ППА). Эта подпрограмма помещает значение регистра порта А ППА и значение регистра порта В ППА в переменные Data_X и Data_K, не изменяя содержимое регистров общего назначения.
3) ProgramCalculateY1SetY1SetInd - подпрограмма вычисления У1 и выводит результата в порт С.
4) ProgramCalculateY2SetPIT - подпрограмма расчета Y2 и программирования ПИТ.
5) ProgramCalculateY3SetPIT - подпрограмма расчета Y3.
В начале программы описана инициализация МПС, состоящая из следующих этапов:
) Устанавливается режим запрета аппаратных прерываний.
) Устанавливается сегмент данных на ОЗУ.
) Устанавливается вектор прерывания
) Программирование ППА
) Программирование ПИТ
) Программирование контроллера прерываний
Основная программа состоит из следующих операций: опрос порта А ППА, расчет У1, вывод У1 на порт С, возврат к опросу порта А.
Текст программы представлен в приложении.
В процессе выполнения курсового проекта, была спроектирована схема микропроцессорной системы управления некоторым объектом. В пояснительной записке представлен синтез структурной и принципиальной схемы.
Составлен алгоритм работы МПС, разработана программа обеспечивающая выполнение заданного алгоритма, также была распределена область памяти под ОЗУ и ПЗУ. Проведена организация оперативной и постоянной памяти.
Был произведен расчет потребления тока от источника питания. Был оформлен чертеж микропроцессорной системы в виде электрической принципиальной схемы.
Данный проект может быть использован для создания микроконтроллера автоматизированного управления удаленным объектом.
Приложение
Текст программы
;-
; - kp_386_Real_NoOS.asm -
; - Текст программы для курсового проекта по ОЭВМ (i386). -
; - После включения питания или сброса регистры процессора -
; - установлены: CS = F000h; IP = FFF0h; DS = SS = ES = 0. -
; - Код программы должен быть размещен в микросхеме ПЗУ -
; - в микросхеме ПЗУ начиная с нулевой ячейки -
;-
; - Адреса переменных, в сегменте данных ОЗУ. Размер переменных - слово
Data_X EQU 0h ; переменная Х (данные с шины Х)
Data_K EQU 2h ; переменная K (константа с тумблеров)
Data_X EQU 4h ; переменная Х (данные с шины Х)
Data_Y1 EQU 6h ; результат вычисления функции Y1
Data_Y2 EQU 8h ; результат вычисления функции Y2
Data_Y3 EQU 0Ah ; результат вычисления функции Y3
; - Определение констант
Adr_IRQ EQU 36h ; Адрес вектора в таблице прерываний
PIC_ICW1 EQU 0 ; Адрес контроллера прерываний (A0 = 0)
PIC_ICW2 EQU 2 ; Адрес контроллера прерываний (A0 = 1)
_0 EQU 8 ; Адрес регистра состояния счетчика 0 ПИТ_1 EQU 10 ; Адрес регистра состояния счетчика 1 ПИТ_2 EQU 12 ; Адрес регистра состояния счетчика 2 ПИТ_CW EQU 14 ; Адрес регистра управления ПИТ
_A EQU 16 ; Адрес регистра порта А ППА_B EQU 18 ; Адрес регистра порта B ППА_C EQU 20 ; Адрес регистра порта C ППА _CW EQU 22 ; Адрес регистра управления ППА
0 ; Начальный адрес микросхемы ROM
;-
; - Инициализация -
;-
: ; Запрет аппаратных прерываний
; - Установка сегмента данных на ОЗУ
mov ax, 400h
mov ds, ax ss, ax
; - Установка вектора прерывания (адрес подпрограммы обработки прерывания)
mov ax, offset ProgramPrer ; Определение смещения адреса
; подпрограмм мы обработки прерывания
mov es: Adr_IRQ, ax ; Запись в два младших байта ТВП
; по адресу Adr_IRQ
push cs
pop ax es: Adr_IRQ + 2, ax
; - Программирование ППА
mov al, 10010000b ; Управляющее слово для ППА
out PPA_CW, al
; - Программирование ПИТ
call ProgramCalculateY2SetPIT
call ProgramCalculateY3SetPIT
; - Программирование контроллера прерываний al, 00010010b ; Запись ICW1 в КП (работа КП)
Читайте также
Поверка электронного вольтметра В7-26 по напряжению постоянного тока
Считается, что первый вольтметр изобрел М. Фарадей, причем в 1830
году, ещё за год до того, как он же открыл явление электромагнитной индукции,
на котором основано действие целого класса ...
Обучающая подсистема для лабораторного исследования характеристик замкнутых САУ в среде интернет
В последние десятилетия в зарубежных системах образования
произошли существенные изменения, обусловленные бурным развитием
научно-технического прогресса и его воздейст ...
Проектирование цифрового устройства для реализации типовых микроопераций
Разработать функциональную и принципиальную схему операционного
устройства исходя из основных параметров по вариантам.
Также требуется предоставить блок схемы алгоритмов выполнения опе ...