Контрольная работа по "Информатике"

Автор работы: Пользователь скрыл имя, 03 Ноября 2013 в 21:46, курсовая работа

Описание работы

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

Файлы: 1 файл

К1.doc

— 491.50 Кб (Скачать файл)

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

Рис. 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

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

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

 

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

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

На рис. 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 ; Нахождение разности  порядков или другими

Информация о работе Контрольная работа по "Информатике"