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

Выбор структуры одноплатного микроконтроллера. Модули памяти микроконтроллера. Селектор адреса портов ввода/вывода и возможность изменения селектируемых адресов. Деление адресного пространства на окна. Нумерация точек в схеме цифрового фильтра.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид курсовая работа
Язык русский
Дата добавления 10.11.2013
Размер файла 204,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

ВВЕДЕНИЕ

Задание: В заданной РЭС осуществить управляющую функцию по одному из заданных параметров с помощью контроллера, построенного на МПК, разработать электрическую принципиальную схему проектируемого контроллера и составить программу (драйвер) реализуемую управляющую функцию на языке Ассемблер заданного МПК

Тип МПК: МПК БИС 1810

Состав микро-контроллера: ОЗУ - 512Кбайт, ПЗУ - 64Кбайт, канал ввода - последовательный, канал вывода - параллельный, ОЗУ динамическое, контроллер прерываний присутствует

Реализуемая

функция: Рекурсивный цифровой фильтр (порядок - 2, тип - ФНЧ, аппроксимация характеристик Баттерворда, частота среза - n+1 кГц). Измерение временного интервала

1. Проектирование аппаратного обеспечения

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

тип используемого микропроцессора;

необходимость использования сопроцессора;

емкость ОЗУ и его тип;

емкость ПЗУ;

необходимость использования функциональных преобразователей;

число портов ввода-вывода и их назначение;

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

В каждом конкретном случае разработчик должен определить, какая часть названных средств и в каком объеме может удовлетворять поставленной задаче. Наиболее распространенной и общей для одноплатных микроконтроллеров является структура с тремя шинами, представленная на рис. 1.1.

Шиной системы называют физическую группу линий передачи сигналов, имеющих схожие функции в рамках системы.

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

шина адреса;

шина данных;

шина управления.

Рис. 1.1

Шина адреса. По адресной шине передаются лишь выходные сигналы, которые поступают с выводов в корпусе МП. Эта шина предназначена для того, чтобы открывать или выбирать правильный тракт для электрического соединения в пределах микроконтроллера. Другой важной характеристикой шины является ее емкость, которая изменяется от 8 до 32 электрических линий.

Шина данных. Эта шина является двунаправленной, т.е. передача данных может производиться в обоих направлениях. В некоторых случаях данные генерируются МП и передаются от него к определенному устройству. Это устройство открывается с помощью заданного логического состояния линий адресной шины и получает данные с шины данных. В других случаях данные генерируются каким-то источником и передаются микропроцессору посредством шины данных. Хотя передача данных по шине может производиться в обоих направлениях, однако в каждый заданный момент времени она осуществляется лишь в одном направлении. Это означает, что для передачи данных в систему и их приема из системы МП переводится в соответствующий режим.

Шина управления. На шине управления должно действовать, как минимум 4 следующих типа сигналов:

чтение из памяти;

запись в память;

чтение с устройства ввода-вывода;

запись в устройство ввода-вывода;

Шина используется для вывода сигналов и является однонаправленной.

В структуре микроконтроллера (рис. 1.1) главным элементом является процессорный модуль, другие модули являются периферийными (ЗУ, УВВ и т.д.).

Каждый периферийный модуль микроконтроллера имеет вход для приема сигнала "Выбор модуля" (). В процессе работы микроконтроллера с помощью этого сигнала одновременно может активизироваться только один из периферийных модулей. Это означает, что возможен обмен данными между, выбранным модулем и процессорным модулем. Выходы остальных модулей при этом остаются в высокоимпедансном состоянии (отключенном) и на работу микроконтроллера не влияют.

2. Процессорный модуль на БИС 1810

Два режима работы МП 1810 позволяют строить на его основе центральные процессоры для простых микроконтроллеров и вычислительные модули мультипроцессорных систем.

При построении простых микроконтроллеров МП 1810 чаще всего работает в минимальном режиме, а архитектура всего микроконтроллера использует однопользовательскую системную шину (см. рис. 2.1).

Рис. 2.1

В такой конфигурации процессор состоит из МП КР1810ВМ86, системного генератора КР1810ГФ84 и БИС магистрального интерфейса КР580ИР82/83, КР580ВА86/87 или КР1810ИР82/83 и КР1810ВА86/87, предназначенных для обеспечения требуемой нагрузочной способности.

В схеме на рис. 3 интерфейс адресной шины реализован на буферных регистрах КР580ИР82, в которые записывается информация с выходов AD0-AD15, A16-A19 МП 1810ВМ86 по сигналу STB в такте Т1 и хранится там в течение всего машинного цикла. Интерфейс шины данных реализован на шинных формирователях КР580ВА86.

Информация о данных поступает в формирователи по сигналу с выходов AD0-AD15 МП КР1810ВМ86 в такте Т2-Т3. Мультиплексор К555КП11 формирует раздельные сигналы чтения/записи ЗУ и ВУ.

Имеется возможность организации канала прямого доступа к памяти (ПДП) на БИС КР1810ВТ37 и системы прерываний на БИС КР1810ВН59.

3. Модули памяти микроконтроллера на МП 1810

Микропроцессоры семейства К1810 адресуют пространство ЗУ объемом 1 Мбайт с байтовой организацией, где БИС ЗУ подключены к старшему и младшему байтам канала данных.

При проектировании модулей памяти необходимо проанализировать совместимость БИС ЗУ с системой на базе МП 1810, как минимум по следующим параметрам: требуемая информационная емкость и организация памяти, быстродействие (время цикла обращения для записи или считывания), тип магистрали (интерфейса), характеристики линий магистрали и т.д.

Для примера время цикла чтения/записи без использования тактов ожидания, МП 1810, при частоте синхронизации 5 МГц составляет менее 600 нс, а время выборки статического ОЗУ порядка 160 нс. Поэтому для реализации ОЗУ можно использовать БИС ОЗУ семейств К541 или К132 и ОЗУ семейства К565. Для реализации ПЗУ без тактов ожидания следует использовать БИС семейства К556 (рис. 2.2).

Рис. 2.2

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

Оперативные запоминающие устройства микроконтроллера на базе МП К1810ВМ86 также имеют двухбайтовую организацию и состоят из двух банков.

Старший банк ЗУ хранит старший байт шестнадцатиразрядного слова и выбирается по сигналу , младший - хранит младший байт слова и выбирается по сигналу А0=0. Под управлением сигналов выборки с линий , А0 организуется доступ к словам ЗУ или отдельным байтам.

Для реализации памяти небольшого объема широко применяют ОЗУ статического типа. Пример такой реализации ОЗУ показан на рис. 2.3.

Рис. 2.3

Для реализации ОЗУ больших объемов используются БИС ОЗУ динамического типа (рис. 2.4).

Эти БИС имеют ряд особенностей, существенно отличающих их от микросхем статического типа: мультиплексирование адресного кода, более сложные временные диаграммы сигналов управления, регенерация хранимой информации, значительное рассогласование входов и выходов с ТТЛ-линиями по сопротивлению. Указанные особенности БИС ОЗУ ДТ оказывают значительное влияние на структурные и схемотехнические решения при построении модулей памяти.

Рис. 2.4

В этом случае модуль памяти должен содержать БИС памяти, контроллер ОЗУ ДТ, буферные регистры или магистральные приемопередатчики, шинные формирователи, обеспечивающие сопряжение по нагрузке модуля ОЗУ с шинами адреса и данных.

Для примера у семейства 565 период регенерации БИС составляет 2 мс.

Регенерация выполняется путем обращения к 128 строкам по младшим адресам. Удобно выполнять регенерацию по сигналу при . В этом случае БИС рассеивает минимальную мощность. В режиме записи данные с информационного входа фиксируются по сигналам со входов и , в момент появления сигнала . Информационный выход БИС 565 трехстабильный и находится в высокоимпедансном состоянии при и . В режиме записи, когда сигнал на вход приходит раньше сигнала на входе , информационный выход остается высокоимпедансном состоянии выход в течение всего цикла записи. В режиме чтения выход переходит в активное состояние через интервал времени, равный времени выборки, и остается в нем до перехода сигнала на выходе в состояние "логической 1". Состояние выхода при этом не имеет значения. Чтение данных выполняется без их разрушения. Кроме обычных режимов записи/чтения в БИС 565 выполняется режим чтение-модификация-запись "регенерация" и страничные режимы записи/чтения. Для управления ОЗУ ДТ синтезируются цифровые автоматы, кроме того, существует БИС контроллера ОЗУ ДТ КР1810ВТ03.

4. Селекторы адресов микроконтроллера

Работая в режиме программного обмена микроконтроллер проводит обращение к определенным устройствам (ОЗУ, ПЗУ, порты ввода-вывода), которые должны быть активизированы для работы. Эту функцию выполняет узел, называемый селектором адреса, который вырабатывает сигналы, соответствующие адресу того или иного устройства.

При проектировании селекторов адреса необходимо выполнять следующие требования:

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

возможность изменения селектируемых адресов;

малые аппаратурные затраты.

Селектор адреса памяти. Архитектурная особенность МП 1810 такова, что область ПЗУ удобнее располагать в области самых верхних адресов (с адреса FFFFFH и вниз) объемом не менее 64Кбайт. Область ОЗУ можно располагать в любом месте адресного пространства. Простой способ выбора области памяти использование старшего разряда адреса, который поделит область памяти на две части (рис. 2.5а, 2.6).

а б

Рис. 2.5

Рис. 2.6

Используя два старших разряда адреса можно разделить объем памяти на четыре области по 256 Кбайт (рис. 2.5б).

Самое простое решение при построении селектора адреса использование только логических элементов (рис. 2.7).

Рис. 2.7

Рис. 2.8

В такой схеме ПЗУ находится в сомой нижней (А19=0, А18=0) и в самой верхней (А19=1, А18=1) области адресов, а ОЗУ занимает среднюю область адресов (А19=0, А18=1, А19=1, А18=0).

При увеличении количества областей памяти (при уменьшении их объема) селекторы адреса можно реализовать на микросхемах дешифраторов (рис. 2.8). Например, использование дешифратора К555ИД7 даст возможность получить 8 зон объемом 128 Кбайт (на микросхему подаются адреса А19...А17), а дешифратор К555ИД13 16 зон по 64 Кбайта (на микросхему подаются адреса А19...А16). Более мелкое деление нецелесообразно, т.к. минимальный объем сегмента МП 1810 64 Кбайт. Селектор адреса памяти должен срабатывать только при обращении к памяти, для этого необходимо кроме адресов на дешифратор подавать сигналы , которые будут разрешать работу дешифратора во время обращения к памяти.

5. Модуль Пзу

Карта памяти для МП 1810 будет выглядеть следующим образом:

Рис. 2.9

В качестве БИС ПЗУ выберем микросхемы 27256 с организацией 32Кбайт 8бит. Помня о том, что в МП 1810 обращение к памяти происходит по банкам (четный и нечетный) синтезируем схему управления ПЗУ. Переменными будут сигналы АО, , А20, А19, А18, А17. Из-за большого количества переменных синтез будем проводить по частям. Из карты памяти видно, что обращение к ПЗУ будет тогда когда А20, А19, А18, А17 будут равны 1, или , это будет схема «И-НЕ». Пусть y0, - переменные. Составим таблицу истинности и синтезируем схему, используя карты Карно на элементах «И-НЕ».

y0

y1

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

1

0

1

1

1

1

1

1

Рис. 2.10

Схема будет выглядеть так

Рис. 2.11

Синтезируем схему для управления ПЗУ1. Составим таблицу истинности и карту Карно, где переменные будут у1, А0, .

y1

А0

ПЗУ1

ПЗУ1=А0у1

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

0

1

1

1

1

1

1

Рис. 2.12

Синтезируем схему для управления ПЗУ2. Составим таблицу истинности и карту Карно.

y1

А0

ПЗУ2

ПЗУ2= у1

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

1

0

1

1

1

1

1

Рис.2.13

Селектор адреса портов ввода/вывода. Построение селектора адреса портов не отличается от построения селекторов адреса памяти. В них тоже используются дешифраторы. Адресное пространство портов может занимать 256 адресов (при 8 разрядном адресе) или 65536 адресов (при 16 разрядном адресе). Все адресное пространство разбивается на блоки (окна), в которые подключаются порты ввода/вывода. Минимальный размер окна 4 адреса (практически все периферийные БИС требуют 4 адреса).

При делении адресного пространства на окна используются старшие адреса А15...А9 (А7...А3). Также как и селектор адреса памяти, селектор адреса портов ввода/вывода должен срабатывать только при обращении к портам. Для этого в качестве сигналов синхронизации можно использовать сигналы . На рис. 17 показана схема селектора адреса портов разделяющее адресное пространство 300H...31FH на 16 окон по 2 адреса. Если в схеме на рис. 16 дешифратор 155ИД3 заменить на 555ИД7 то получим 8 окон по 4 адреса.

Рис. 2.14

На схеме дешифратор 555ИД7 делит зону 2К адресов на 8 окон по 256 адресов. Дешифратор К155ИД3 делит зону 300H...31FH на 16 окон по 2 адреса. Генератор 555АГ3 вырабатывает сигнал для синхронизации работы медленнодействующего порта с микропроцессором.

Если селектор адреса порта получается слишком сложным, то необходимо использовать микросхемы ПЗУ или программируемые логические матрицы (ПЛМ).

В этом случае селектируемый адрес зависит не от схемотехнических решений, а от прошивки ПЗУ или ПЛМ. Такой подход обеспечивает простую реализацию выбора нескольких адресов. Изменить селектируемый адрес (или зону адресов) можно заменой ПЗУ (ПЛМ).

Рис. 2.15

Возможно также комбинирование ПЗУ (ПЛМ) с другими микросхемами, например, с дешифраторами или компараторами кодов. Если необходимо обрабатывать больше разрядов адреса, чем имеется адресных входов у микросхемы ПЗУ, то можно каскадировать две или более микросхем.

6. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

При обработке радиотехнической информации большой объем занимает фильтрация.

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

На рис. 3.1 показана схема цифрового фильтра 2-го порядка, на рис. 3.2 алгоритм обработки сигнала в нем. Нумерация точек в схеме цифрового фильтра соответствует нумерации переменных yi, хранящих формируемые в этих точках значения, т. е. y1, y2, y3, y4 (и, следовательно, ячейки памяти, выделенные для хранения значений этих переменных) имеют значения, совпадающие со значениями величин в точках 1, 2, 3, 4 схемы цифрового фильтра.

Рис. 3.1

Блоки 1, 2 схемы алгоритма значения у2, у1, сформированные в предыдущем повторении цикла, передают соответственно в y3, y2 и отражают, таким образом, задержку, предусмотренную в схеме цифрового фильтра между точками 3 и 2, 2 и 1. Ячейка у5 используется как вспомогательная ячейка для формирования произведений.

Из 14 содержащихся в схеме алгоритма блоков пять блоков (блоки 4, 6, 8, 10, 12) предусматривают выполнение операции умножения, и основное время, затрачиваемое на исполнение алгоритма, связано именно c выполнением этих блоков. Возможно ускорение исполнения алгоритма, если предусмотреть параллельное выполнение операций умножения, т.е. пять предусмотренных в алгоритме операций умножения выполнять одновременно, используя, пять различных устройств умножения. Так как время, затрачиваемое на исполнение других блоков в схеме алгоритма относительно невелико, то при параллельном выполнении умножения примерно в пять раз сократится время однократного исполнения цикла алгоритма и, следовательно, в пять раз возрастут быстродействие цифрового фильтра и предельная широкополосность обрабатываемых фильтром сигналов.

одноплатный микроконтроллер адрес фильтр

Рис. 3.2

;*********************************************************

; Программа рекурсивного цифрового фильтра на МП 1810

;*********************************************************

TITLE Макрокоманда сдвига SHIFT@

SHIFT@ MACRO var1, var2

lea di,var1

lea si,var2

mov cx,2

rep movsw

ENDM

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

SSEG SEGMENT PARA STACK 'STACK'

db 256 dup (0)

SSEG ENDS

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

DSEG SEGMENT PARA PUBLIC 'DATA'

xn dw 1 dup (0) ; Входной сигнал

Xnf dd 1 dup (0) ; Входной сигнал формат ПЗ

ynt dd 1 dup (0) ; Выходной сигнал

a0 dd 1 dup (?) ;

a1 dd 1 dup (?) ;

a2 dd 1 dup (?);

b1 dd 1 dup (?) ;

b2 dd 1 dup (?) ;

y1 dd 1 dup (0)

y2 dd 1 dup (0)

y3 dd 1 dup (0)

y4 dd 1 dup (0)

y5 dd 1 dup (0)

SIGN db 1 dup (0)

SIGL db 1 dup (0)

DSEG ENDS

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

CSEG SEGMENT PARA PUBLIC 'CODE'

ASSUME CS:CSEG, DS:DSEG, ES:DSEG, SS: SSEG

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

;----- Основная программа ----------

LINK2 PROC FAR ; Главная подпрограмма

mov ax,DSEG

mov ds,ax

mov es,ax

start: push cx

SHIFT@ y3, y2 ; y3 = y2

SHIFT@ y2, y1 ; y2 = y1

mov ax,0

in al,port51

mov xn,ax

mov bl,0

mov si,xn

call ITOF ; преобразование целого xn в формат ПЗ, результат в BX:SI

mov Xnf,si

mov Xnf+2,bx

lea di,y1 ;

lea si,Хnf ;

add si,index ;

mov cx,2 ; y1 = x(nT)

rep movsw ;

SHIFT@ y5, y3 ; y5 = y3

lea si,y5

lea di,b2

call MULT ; y5 = y5*b2

lea si,y1

lea di,y5

call FSUMMA ; y1 = y1+y5

SHIFT@ y5, y2

lea si,y5

lea di,b1

call MULT ; y5 = y5*b1

lea si,y1

lea di,y5

call FSUMMA ; y1 = y1+y5

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

SHIFT@ y5, y1

lea si,y5

lea di,a0

call MULT ; y5 = y5*a0

SHIFT@ y4, y5 ; y4 = y5

SHIFT@ y5, y2

lea si,y5

lea di,a1

call MULT ; y5 = y5*a1

lea si,y4

lea di,y5

call FSUMMA ; y4 = y4+y5

SHIFT@ y5, y3

lea si,y5

lea di,a2

call MULT ; y5 = y5*a2

lea si,y4

lea di,y5

call FSUMMA ; y4 = y4+y5

lea di,ynt ;

lea si,y4 ;

; add di,index ;

mov cx,2 ; | y(nT) = y4

rep movsw ;

;

jmp start

;===============================================

MULT PROC FAR

; Первый операнд X находится в регистрах BX:SI,

; второй Y в регистрах DX:DI, произведение

; возвращается в регистрах BX:SI.

; При возникновении особого случая CF=1

;

; lea si,X ; в нашем случае не используются

; lea di,Y ; в нашем случае не используются

;

mov bx,[si+2]

mov si,[si]

mov dx,[di+2]

mov di,[di]

MULF: ; Проверить операнды на нуль

mov ax,bx ; Проверить на 0

or ax,si ; первый операнд

jz @@M1 ; Произведение равно 0

mov ax,dx ; Проверить на 0

or ax,di ; второй операнд

jnz MULF1 ; Операнды не равны 0

xchg bx,dx ; Произведение равно 0

xchg si,di

@@M1: jmp MULF8

;

; Операнды не нулевые, можно умножать.

; Образовать знак произведения, восстановить мантиссы.

MULF1: mov ch,bh ; Знак произведения

xor ch,dh ; в регистре CH

shl bx,1 ; Восстановить скрытый бит

stc ; мантиссы первого операнда

rcr bl,1

shl dx,1 ; Восстановить скрытый бит

stc ; мантиссы второго операнда

rcr dl,1

; Сложить порядки.

mov al,bh ; Сложить в AL

add al,dh ; смещенные порядки

jc MULF2 ; Возник перенос

sub al,127 ; Вычесть смещение

jnc MULF3 ; Можно умножать

jmp MULF8 ; Возникло антипереполнение

MULF2: add al,129 ; Учесть потерю 256 из-за переноса

jnc MULF3 ; Можно умножать

jmp MULF8 ; Возникло переполнение

; Можно умножать мантиссы.

MULF3: mov bh,al ; Порядок произведения в BH

xor dh,dh ; Подготовить место

xor ax,ax ; для произведения

mov cl,dl ; Освободить регистр DX

; Здесь начинается цикл умножения

MULF4: mov ax,si ; Умножить младшие

mul di ; слова мантисс

mov WORD PTR TEMP,dx ; Сохранить старшую часть

;произведения

mov al,bl

mov ah,0

mul di

add WORD PTR TEMP,ax ; Учесть результат

jnc NEXT ; в полном произведении

inc dx

NEXT: mov WORD PTR TEMP+2,dx

mov al,cl ; Умножить следующие

mov ah,0 ; части мантисс

mul si

add WORD PTR TEMP,ax

jnc NEXT1

inc dx

NEXT1: add dx,WORD PTR TEMP+2

mov al,bl ; Умножить старшие

mul cl ; байты мантисс

add ax,dx ; Образовать полное произведение

mov bl,ah ; и разместить его

mov ah,al ; в регистрах BL:SI

mov al,BYTE PTR TEMP+1

mov si,ax

; Проверить нарушение нормализации влево.

MULF6: or bl,bl ; Проверить старший бит мантиссы

jns MULF7 ; Нарушения нормализации нет

inc bh ; Увеличить порядок на 1

stc ; CF=1

jz MULF8 ; Возникло переполнение

jmp MULFA ; Переполнения нет

MULF7: shl si,1 ; Сдвинуть мантиссу

rcl bl,1 ; влево на один бит

; Формирование результата

MULFA: add ch,ch ; Знак во флаге переноса

rcr bh,1 ; Знак числа на месте

rcr ch,1 ; Младший бит порядка в CH

or ch,7fh ; Образовать маску

and bl,ch ; Образовать 2-й байт произведения

lea di,Z

mov [di],si

mov [di+2],bx

MULF8: ret

MULT ENDP

;=================================================

; подпрограмма сложения чисел в формате ПЗ

;======================================================

FSUMMA PROC FAR

; 1. Сравнение порядков для определения большего

@S:

mov cl,[si+2] ; Занесение в регистр CX

mov ch,[si+3] ; двух старших байтов числа X в ФПЗ.

mov dl,[di+2] ; Занесение в регистр DX

mov dh,[di+3] ; двух старших байтов числа Y в ФПЗ.

; ДЛЯ ВЫЧИТАНИЯ НАДО В СТРОКЕ 30 УДАЛИТЬ

;ТОЧКУ С ЗАПЯТОЙ

; XOR DH,80H

;

rol cx,1 ; Занесение порядка числа X в CH

ror cl,1 ; (и знака в бит 23).

rol dx,1 ; Занесение порядка числа Y в DH

ror dl,1 ; (и знака в бит 23).

;

cmp ch,dh ; Сравнение порядков X и Y

js @L1 ; Переход, если (CH) < (DH) (Px < Py).

;

; 2. Нахождение разности порядков

; Примечание. Из большего порядка вычитается меньший,

; чтобы разность порядков была неотрицательной

;

; 2.1. Порядок X не меньше порядка Y (Px Py) (CH)(DH).

mov ah,ch ; Нахождение разности порядков или другими

sub ah,dh ; словами кол-ва сдвигов меньшей мантиссы

mov P,ch ; Занесение в P большего порядка

mov al,dl ; \

mov bl,[di] ; В AX,BX заносится меньшее число

mov bh,[di+1] ;/

mov SIGL,al ; Сохранение знака меньшего числа

mov dl,[si] ; В CX,DX заносится большее число

mov dh,[si+1] ; (по модулю)

mov SIGN,cl ; Сохранение знака результата

jmp @L2

;

; 2.2. Порядок X меньше порядка Y (Px < Py) (CH) < (DH).

@L1:

mov ah,dh ; Нахождение разности порядков или другими

sub ah,ch ; словами кол-ва сдвигов меньшей мантиссы.

mov P,dh ; Занесение в P большего порядка

mov al,cl ;\

mov bl,[si] ; В AX,BX заносится меньшее число

mov bh,[si+1] ;/

mov SIGL,al ; Сохранение знака меньшего числа

mov cl,dl ; \

mov dl,[di] ; В CX,DX заносится большее число

mov dh,[di+1] ;/ (по модулю)

mov SIGN,cl ; Сохранение знака результата

;

; 3. Преобразование мантисс слагаемых в дополнительный код.

;

; 3.1. Перевод трех байт мантиссы меньшего числа (al,bx)

; из прямого кода в дополнительный

@L2:

sal al,1 ; бит (C) (регистр al) 0

jae @L3 ; Переход к метке @L3, если (C) = 0, т.е.

; число в регистрах (al,bx) - неотрицательное

rcr al,1 ; Возврат "1" из бита (C) в старший бит (al).

not bx ; \

not al ; Перевод в ДК

add bx,1 ; отрицательного числа в регистрах (al,bx)

adc al,0 ;/

jmp @L4

@L3:

rcr al,1 ; Возврат "0" из бита (C) в старший бит (al).

add al,80H ; Принудительная установка старшего бита

; регистра (al) в "1" (его вес = 1/2)

;

; 3.2. Перевод трех байт мантиссы большего числа (cl,dx)

; из прямого кода в дополнительный

@L4:

sal cl,1 ; бит (C) (регистр cl) 0

jae @L5 ; Переход к метке @L5, если (C) = 0, т.е.

; число в регистрах (cl,dx) - неотрицательное

rcr cl,1 ; Возврат "1" из бита (C) в старший бит (cl)

not dx ;\

not cl ; Перевод в ДК

add dx,1 ; отрицательного числа в регистрах (cl,dx)

adc cl,0 ;/

jmp @L6

@L5:

rcr cl,1 ; Возврат "0" из бита (C) в старший бит (cl)

add cl,80H ; Принудительная установка старшего бита

; регистра (al) в "1" (его вес = 1/2)

;

; 4. Значение полученной разности используется как количество

; сдвигов вправо мантиссы числа с меньшим порядком

@L6:

cmp ah,0

je @L7

mov ch,SIGL ;\

sal ch,1 ; Сдвиг вправо

rcr al,1 ; меньшего числа

rcr bx,1 ;/

dec ah ; Уменьшение на 1 значения счетчика сдвигов

jmp @L6

;

; 5. Сложение мантисс по правилам сложения чисел с фиксиро-

; ванной запятой

@L7:

add bx,dx ; Сложение

adc al,cl ; мантисс

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

@L8:

mov cl,SIGN ; Дублирование

sar cl,1 ; знака результата

sal cl,1 ; Проверка знака результата (числа с большим

; порядком)

jae @L9 ; Переход к метке @L9, если (C) = 0, т.е.

; если мантисса суммы неотрицательна

sub bx,1 ;\

sbb al,0 ; Перевод отрицательной мантиссы суммы в

not bx ; (al,bx) из дополнительного кода в прямой

not al ;/

;

; 7. Нормализация мантиссы результата и при необходимости

; коррекция значения его порядка

@L9:

sal bx,1

rcl al,1

jb @L10

sub ah,1

jmp @L9

;

; 8. Получение порядка и окончательного результата

@L10:

add ah,P

;

sal cl,1 ; бит (C) 0, (регистр al) 0

rcr ax,1

rcr bx,1

;

mov [si],bl ;\

mov [si+1],bh ; Пересылка результата

mov [si+2],al ; в память

mov [si+3],ah ;/

ret

;

FSUMMA ENDP

;=================================================

; подпрограмма преобразования целого числа в формат ПЗ

;=================================================

ITOF PROC FAR

;

MOV BH,0 ;Сбросить регистр ВН

MOV AX,SI ;Проверить исходное число

OR AX,BX ;на ноль

JZ EXIT ;Число равно нулю

MOV AL,BL ;Сохранить знак в регистре AL

TEST AL,80H ;Проверить знак числа

JC NOC ;Число положительное

NOT SI ;Число отрицательное,

NOT BL ;образовать его

ADD SI,1 ;абсолютное значение

JNC NOC

INC BL

NOC: MOV BH,151 ;Исходный порядок

SLOOP: TEST BL,80H ;Проверить старший бит

JNZ FORM ;Нормализация закончена

SHL SI,1 ;Сдвинуть число влево

RCL BL,1

DEC BH ;Декремент порядка

JMP SLOOP ;Повторять нормализацию

FORM: ADD AL,AL ;Передать знак во флажок CF

RCR BH,1 ;Знак числа на месте

RCR AH,1 ;Младший бит прядка АН7

OR AH,7FH ;Образовать маску

AND BL,AH ;Образовать второй байт числа

EXIT: RET ;Возврат

ITOF ENDP

LINK2 ENDP

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

CSEG ENDS

END LINK2

СПИСОК ЛИТЕРАТУРЫ

Цифровые устройства и микропроцессоры. Методические указания и задания на контрольную и курсовую работы для студентов заочного факультета

Микропроцессоры. Конспект лекций./В.А.Швец

Программирование арифметических операций в микропроцессорах./В.К. Злобин, В.Л.Григорьев

Микропроцессоры./К.Г.Самофалов, О.В.Викторов, А.К. Кузняк

Технические средства микропроцессорных систем./Дж.Коффрон

Размещено на Allbest.ru


Подобные документы

  • Разработка интерфейса и уточнённой структурной схемы, процессорного модуля, подсистем памяти и ввода/вывода, алгоритма программного обеспечения. Оценка памяти программ и данных. Структура адресного пространства. Организация клавиатуры и индикации.

    курсовая работа [2,4 M], добавлен 09.08.2015

  • Формирование кодовой таблицы аналогового сигнала. Общая характеристика микроконтроллера P83C51RB+. Дискретизация заданного сигнала генератора. Организация памяти и программная модель, регистры SFR микроконтроллера. Параллельные порты ввода/вывода.

    курсовая работа [1005,6 K], добавлен 07.08.2013

  • Разработка расширителя портов ввода-вывода и особенности его применения. Программируемая логическая интегральная схема CPLD. Плис CoolRunner-II, главные функции. Листинг модулей на языке Verilog. Временная диаграмма, внутреннее содержание модуля.

    курсовая работа [1,9 M], добавлен 26.01.2013

  • Особенности микроконтроллера ATTINY семейства AVR. Описание ресурсов микроконтроллера ATTINY12: описание процессора, порты ввода/вывода, периферийные устройства, архитектура ядра. Разработка устройства со световыми эффектами на базе микроконтроллера.

    курсовая работа [2,1 M], добавлен 24.06.2013

  • Разработка структурной схемы микроконтроллера. Проектирование подсистемы памяти. Разработка адресного дешифратора, "раскраска" адресной шины. Расчет нагрузочной способности шин. Разработка принципиальной схемы. Программа начальной инициализации системы.

    курсовая работа [1,3 M], добавлен 02.05.2016

  • Создание аналого-цифрового устройства для проведения лабораторных работ с использованием микроконтроллера. Разработка структурной и принципиальной схем. Выбор и описание элементной базы, используемого микроконтроллера. Программирование микроконтроллера.

    дипломная работа [1,7 M], добавлен 19.07.2014

  • Выбор типа микросхем памяти и расчет их количества в модулях. Выбор дешифратора адреса. Распределение адресного пространства. Распределение модулей программ. Расчет нагрузочной способности модуля памяти. Генератор тактовых импульсов микропроцессора.

    дипломная работа [1,7 M], добавлен 08.01.2017

  • Разработка структурной функциональной схемы устройства, его аппаратного обеспечения: выбор микроконтроллера, внешней памяти программ, устройства индикации, IGBT транзистора и драйвера IGBT, стабилизатора напряжения. Разработка программного обеспечения.

    курсовая работа [495,1 K], добавлен 23.09.2011

  • Общие принципы разработки программно-аппаратного терминала с CAN-шиной, его основные физические интерфейсы. Структурная схема разрабатываемого устройства. Схема подключения микроконтроллера. Схема подключения микроконтроллера Atmega128 и для ПЭВМ.

    дипломная работа [1,4 M], добавлен 07.07.2011

  • Разработка микроконтроллера для контроля ритма дыхания больного в реанимационной палате. Структурная и принципиальная схемы микропроцессорного контроллера. Модули процессора, памяти, ввода и вывода, режимы индикации. Описание работы, принципиальная схема.

    курсовая работа [197,6 K], добавлен 06.12.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.