Разработка системы дополнительной обработки данных

Автор работы: Пользователь скрыл имя, 06 Июня 2013 в 12:40, курсовая работа

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

В курсовом проекте необходимо разработать систему дополнительной обработки данных (СДОД), которая эмулирует функционирование потоковых SIMD-расширений (SSE – Striming SIMD Extensions) архитектуры IA-32 методами микроконтроллера (МК) семейства PIC18XX2.
СДОД должна включать:
микроконтроллер указанного типа;
внешняю память, дополняющаю внутреннюю память МК до 256 Кб, имея в своем распоряжении предложенные микросхемы памяти, которые сотавляют:

Содержание работы

1. Выбор варианта задания.
2. Схема функциональная.
3. Анализ задания и описание алгоритма функции.
4. Описание работы устройства.
5. Описание программы

Файлы: 1 файл

kurs.doc

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

; SQRES3:SQRES0 = ARG1H:ARG1L ^2

 

Sq16 movf  ARG1L, W, a

mulwf  ARG1L    ; ARG1L * ARG2L ->

; PRODH:PRODL

movff  PRODH, SQRES1   ;

movff  PRODL, SQRES0   ;

 

movf  ARG1H, W, a

mulwf  ARG1H    ; ARG1H * ARG2H ->

; PRODH:PRODL

movff  PRODH, SQRES3   ;

movff  PRODL, SQRES2   ;

 

movf  ARG1L, W, a

mulwf  ARG1H    ; ARG1L * ARG2H ->

; PRODH:PRODL

movf  PRODL, W, a  ;

addwf  SQRES1, F, a   ; суммировать перекрестные

movf  PRODH, W, a   ; значения

addwfc  SQRES2, F, a   ;

clrf  WREG, a   ;

addwfc  SQRES3, F, a   ;

 

movf  ARG1H, W, a  ;

mulwf  ARG1L   ; ARG1H * ARG2L ->

; PRODH:PRODL

movf  PRODL, W, a  ;

addwf  SQRES1, F, a   ; суммировать перекрестные

movf  PRODH, W, a  ; значения

addwfc  SQRES2, F, a   ;

clrf  WREG, W  ;

addwfc  SQRES3, F, a   ;

 

return

 

GLOBAL  Sq16

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

 

; *************  Инициализация PSP  **************************

; Init_PSP

 

Init_PSP bsf  STATUS, RP0 ; переключить 1-й банк

clrf TRISB ; A8-A15 как выход

clrf TRISD ; AD0-AD7 как выход

movlw 0xF8

andwf  TRISE, F ; выход

bcf  STATUS, RP0 ; переключить 0-й банк

clrf ADHIGH ; А8-А15®”0”

clrf ADLOW ; АD0-АD7®”0”

movlw 3 ; ALE=0, RD=1, WR=1

movwf  PORTE

 

return

 

GLOBAL Init_PSP

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

 

; ******************  Чтение  из  ППЗУ  **************************

; ReadPSP

 

ReadPSP

movf ADLOW, W ; сохранить младший адресс

movwf  ADLOW_IMAGE ;

bsf PORTE, ALE ; ALE на 20 МГц

bсf PORTE, ALE

bsf STATUS, RP0

movlw 0xFF

mowf TRISD ; порт D - вход

bcf STATUS, RP0

bcf PORTE, RD ; сбросить READ в низкий уровень

movf ADLOW, W ; переместить данные в W

bsf PORTE, RD ; уст. READ в высокий уровень

bsf STATUS, RP0

clrf TRISD ; порт D - выход

bcf STATUS, RP0

movwf W_IMAGE ; сохранить данные

movf ADLOW_IMAGE ; восстановить младший адресс

 

return

GLOBAL ExtMem

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

 

; *************  Инициализация MSSP  **************************

 

Init_I2C

banksel  SSPADD ; выбрать банк

movlw    ClockValue ; выбор частоты передачи

movwf    SSPADD ; инициализировать частоту I2C

bcf      SSPSTAT, 6            ; выбрать уровень входов I2C

bcf      SSPSTAT, 7            ;

 

movlw b'00011000' ;

iorwf TRISC, f                 ; SDA и SCL - входы

bcf STATUS,RP0 ; выбрать банк

movlw    b'00111000' ;

movwf    SSPCON ; Master mode, режим SSP включен

 

return                        

 

GLOBAL Init_I2C

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

 

; ************** Запись в  РПЗУ *********************************

; WriteI2C

 

WriteI2C

banksel  SSPSTAT

btfsc  SSPSTAT, BF  ; буфер полный?

goto  WriteI2C  ; если да, то продолжаем ждать

banksel  SSPCON  ; нет, идем дальше.

DoI2CWrite

bcf  SSPCON, WCOL ; очистить флаг WCOL

movwf  SSPBUF  ; записать байт в WREG

btfsc  SSPCON, WCOL ; был ли конфликт записи?

goto  DoI2CWrite

bsf  SSPCON, CKP  ; сбросить счетчик

 

return

 

GLOBAL WriteI2C

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

 

end




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