Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Поясниельная записка.docx
Скачиваний:
66
Добавлен:
10.04.2015
Размер:
1.32 Mб
Скачать

7 Расчет потребляемого тока

Таблица 2 – Токопотребление микросхем

Тип м/c

Колич-во (шт)

Iпотр+5В (мА)

i386SX

1

275

КР580ВИ53

1

115

КР580ВВ55

1

60

i8259A

1

85

VXO-61

1

25

К561ТМ2

2

8

КР1533ИЕ19

1

27

КР533ИЕ19

1

21

КР556РТ181

1

180

К555ЛН1

3

6

К1533ИД14

1

4.5

AT27C256

1

25

AS7C1024-12JC

1

140

Итого

16

991.5

8 Описание реализуемой программы

Исходный код программы, реализующей алгоритм работы МПС представлен, ниже:

Data SEGMENT WORD 'DATA'

assume ds: data

Adr_ROM_Reset EQU 0xFFFF0h ; Адрес области ROM с которой начинается вы-полнение команд при включении питания или сброса

;Adr_ROM_Start EQU 0xF0000h ; Начальный адрес сегмента кода

Adr_RAM_Begin EQU 0h ; Начальный адрес ОЗУ

Adr_RAM_Data EQU 0400h ; Начальный адрес сегменда данных

Adr_ROM_Stack EQU 7FFFh ; Максимально возможный адрес ОЗУ, для ука-зания вершины стека

Adr_PIC_A0 EQU 0 ; Адрес контроллера прерываний (A0 = 0)

Adr_PIC_A1 EQU 2 ; Адрес контроллера прерываний (A0 = 1)

Adr_PIT_0 EQU 8 ; Адрес регистра состояния счетчика 0 ПИТ

Adr_PIT_1 EQU 10 ; Адрес регистра состояния счетчика 1 ПИТ

Adr_PIT_2 EQU 12 ; Адрес регистра состояния счетчика 2 ПИТ

Adr_PIT_CW EQU 14 ; Адрес регистра управления ПИТ

Adr_PPA_A EQU 16 ; Адрес регистра порта А ППА

Adr_PPA_B EQU 18 ; Адрес регистра порта B ППА

Adr_PPA_C EQU 20 ; Адрес регистра порта C ППА

Adr_PPA_CW EQU 22 ; Адрес регистра управления ППА

IRQ_n EQU 6Dh ; Адрес – вектор прерывания по варианту зада-ния

Adr_IRQ_n EQU IRQ_n * 4; Адрес начала области из четырех ЯП, в которой размещается адрес первой команды программы обработки прерывания.

Adr_Data_K EQU Adr_RAM_Data + 0; Ячейка в ОЗУ для хранения значения К

Adr_Data_X EQU Adr_RAM_Data + 1; Ячейка в ОЗУ для хранения значения Х

Adr_Data_Y1 EQU Adr_RAM_Data + 2; Ячейка в ОЗУ для хранения значения У1

Adr_Data_Y2 EQU Adr_RAM_Data + 3; Ячейка в ОЗУ для хранения значения У2

Adr_Data_Y3 EQU Adr_RAM_Data + 4; Ячейка в ОЗУ для хранения значения У3

Data ends

Code SEGMENT WORD 'CODE'

assume cs: code

;-----------------------------------------------------------------------------

;-- Подготовка к запуску основной программы после --

;-- включения питания или сброса --

;-- CS = F000h; IP = FFF0H; DS = SS = ES = 0 --

;-----------------------------------------------------------------------------

ORG 0f000h; Начальный адрес области ROM

;----------------------- jmp Adr_ROM_Start ; Переход на основную программу по адресу Adr_ROM_Start

lea dx, cs:Adr_ROM_Start

push dx;

ret;

Adr_ROM_Start:

mov ax, Adr_ROM_Stack

mov ss, ax

mov ax, Adr_RAM_Data

mov ds, ax ; -- Установка сегмента данных на ОЗУ

xor ax, ax ; Записать 0 в AX

cli ; Запрет аппаратных прерываний

;-------------------------------------------------------------------------

;-- Установка начальных параметров --

;-- Программирование ПИТ, ППА, КП --

;-- Определение переменных в памяти --

;-------------------------------------------------------------------------

ProgramBegin:

; Установить вектор прерывания (адрес подпрограммы обработки прерывания)

; Настройка es на начало таблицы векторов прерываний - в реальном режиме mov ax, 0h

mov es, ax

lea dx,cs:ProgramPrer; ; Определение смещения адреса подпрограммы обработки прерывания

mov ax,dx;

mov es:Adr_IRQ_n, ax ; Запись в два младших байта ТВП по адресу Adr_IRQ_n

push cs

pop ax

mov es:Adr_IRQ_n + 2, ax; Запись в два старших байта ТВП по адресу Adr_IRQ_n

; Программирование ППА

mov al, 90h ; Управляющее слово для ППА

out Adr_PPA_CW, al

; Установить содержимое сегмента данных

; Указание меток и содержимого (переменных)

call ProgramKlavIn ; опрос клавиатуры для получения К и Х

;Выдать Y3

call ProgramCalculateY3SetPIT

call ProgramCalculateY1SetY1SetInd ; начальная установка У1 и идника-ции

; Рограммирование ПИТ

call ProgramCalculateY2SetPIT

; Программирование контроллера прерываний

mov al, 12h ; Запись ICW1 в КП (работа КП)

out Adr_PIC_A0, al

mov ax, Adr_IRQ_n ; Запись ICW2 в КП (адрес первого вектора прерыва-ния, с которым работает КП)

out Adr_PIC_A1, ax

mov al, 00h ; Запись OCW1 в КП (маскирования прерываний для разрешения)

out Adr_PIC_A1, al

sti ; Разрешение аппаратных прерываний

;-------------------------------------------------------------------------

;-- Начало основной программы --

;-------------------------------------------------------------------------

ProgramStart:

call ProgramKlavIn

call ProgramCalculateY1SetY1SetInd

jmp ProgramStart

;-------------------------------------------------------------------------

;-- Подпрограмма обработки прерывания --

;-------------------------------------------------------------------------

ProgramPrer:

push ax

call ProgramCalculateY2SetPIT

pop ax

iret

;-------------------------------------------------------------------------

;-- Подпрограмма опроса клавиатуры (порта А ППА) --

;-------------------------------------------------------------------------

ProgramKlavIn:

push ax

push dx

; принять и сохранить значение Х

in ax, Adr_PPA_A

mov ds:Adr_Data_X, ax

; притянь и сохранить значение К

in ax, Adr_PPA_B

mov ds:Adr_Data_K, ax

pop dx

pop ax

ret

;-------------------------------------------------------------------------

;-- Подпрограмма рассчитывает У1 и выводит его в порт С --

;-- (Значение У1 используется для индикации и управшения объектом. --

;-- для индикации старшая тетрада У1 --

;-- для управления объектом младшая тетрада) --

;-------------------------------------------------------------------------

ProgramCalculateY1SetY1SetInd:

push ax

push dx

push bx

mov al, ds:Adr_Data_X

mov dl, ds:Adr_Data_K

not al

call min

mov bl,ds:Adr_Data_X

add bl,bl

add al,bl

mov ds:Adr_Data_Y1,al

mov bl,al

; Вывод в порт С

and bl, 01h ; выделение младшей тетрады в bx

and al, 10h ; выделение старшей тетрады в ax

or al, bl ; младшая и старшая тетрады в общий регистр ax out Adr_PPA_C, bl

pop bx

pop dx

pop ax

ret

min:

cmp al,dl

jl n2

ret

max:

cmp al,dl

jng n2

ret

n2: mov al,dl

ret

;-------------------------------------------------------------------------

;-- Расчет Y2 и программирования ПИТ --

;-- (поскольку надо У2 вычислить только раз при включении питания --

;-- или обработке прерывания) --

;-------------------------------------------------------------------------

ProgramCalculateY2SetPIT:

push ax

push dx

mov al,ds:Adr_Data_X

mov dl,ds:Adr_Data_K

call min

add al,8h

mov ds:Adr_Data_Y2,al

; программирование ПИТ по значению У2

mov ax, 0000000000011110b ; записать младший байт в счетчик 0 и установить режим 3

out Adr_PIT_CW, al

mov al, dl

out Adr_PIT_0, al

mov ax, 0000000000101110b ; записать старший байт

out Adr_PIT_CW, al

mov al, dh

out Adr_PIT_0, al

mov ax, 0000000000001110b ; защелкнуть

out Adr_PIT_CW, al

pop dx

pop ax

ret

;-------------------------------------------------------------------------

;-- Расчет Y3 --

;-------------------------------------------------------------------------

ProgramCalculateY3SetPIT:

push ax

push dx

push bx

mov al, ds:Adr_Data_X

mov dl, ds:Adr_Data_K

not al

call min

mov bl,al

mov al, ds:Adr_Data_X

xor al,dl

add al,bl

mov ds:Adr_Data_Y3,al

; Программирование ПИТ для У3

mov ax, 0000000001010000b ; записать младший байт в счетчик 0 и установить режим 3

out Adr_PIT_CW, al

mov al, dl

out Adr_PIT_0, al

mov ax, 0000000001100000b ; записать старший байт

out Adr_PIT_CW, al

mov al, dh

out Adr_PIT_0, al

mov ax, 0000000001000000b ; защелкнуть

out Adr_PIT_CW, al

pop dx

pop ax

ret

Code ENDS

;-------------------------------------------------------------------------

;-- Конец --

;-------------------------------------------------------------------------

end ProgramBegin

ЗАКЛЮЧЕНИЕ

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

Составлен алгоритм работы МПС, разработана программа обеспечивающая выполнение заданного алгоритма, также была распределена область памяти под ОЗУ и ПЗУ. Проведена организация оперативной и постоянной памяти.

Был произведен расчет потребления тока от источника питания. Был оформлен чертеж микропроцессорной системы в виде электрической принципиальной схемы.

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