Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб 8Л.doc
Скачиваний:
6
Добавлен:
21.11.2019
Размер:
830 Кб
Скачать
☆

Алгоритм і програма для вивчення передачі інформації через

SPI-інтерфейс

Рисунок 11 – Блок-схема алгоритму передачі даних між МК та ПЛМ по SPI інтерфейсу

Пункти Конфігурація Альтери та Конфігурація Альтери 2 передбачають почергову видачу трьох конфігураційних байтів в Альтеру за вказаними адресами. Адреси виставляються на адресній шині МК-Альтера (А3..А0)

Фрагмент програми і підпрограм, що реалізована в навчальному лабораторному стенді для передачі даних по SPI.

;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

; Лабораторна робота №5 +

;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Назва: SPI

Основні регістри: MCBYTE – регістр даних МС

PLDBYTE – регістр даних PLM

SPDR – регістр даних інтерфейсу SPI

Опис програми: Робота виконує передачу даних між МС і PLM по послідовному порту SPI, використовуючи головний пристрій PLM Altera

Опис основного коду програми:

S1: call Read_Key_In ;

mov LEDDR,KEYREG ;

call Write_LED_H ;

; Зчитування даних в МС з тумблерів

jnb BUT_CNT,end_SPI_Work ;

jb BUT_ENT,S1 ;

mov MCBYTE,LEDDR ;

mov a,#01h

call Delay_sec

S2: call Read_Key_In ;

mov LEDDR,KEYREG ;

call Write_LED_L ;

; Зчитування даних в PLM з тумблерів

jnb BUT_CNT,end_SPI_Work ;

jb BUT_ENT,S2 ;

mov PLDBYTE,LEDDR ;

call SPI_Slave ; Виклик підпрограми передачі даних по SPI

mov LEDDR,SPDR ; Вивід отриманих даних МС на світлодіоди

call Write_LED_H ;

Використовуються підпрограми: Read_Key_In Write_LED_H Write_LED_L Delay_sec SPI_Slave

;-------------------------кінець--------------------------------------

SPI_Wait

;++++++ SPI_Wait +++++++++++++++++++++++++++++++++++++++++++++++++++

Підпрограма здійснює затримку виконання програми до закінчення передачі

по SPI-інтерфейсу

Приклад:

SPI_Wait:

push acc

SPI_Wait_do:

mov a,SPSR

jnb acc.7,SPI_Wait_do

pop acc

ret

:__________________________________________________________________________

SPI_Slave

;+++++++++++++++ SPI_Slave++++++++++++++++++++++++++++++++++++

;

; PLDBYTE = byte of SPI Altera reg

; MCBYTE = byte of SPDR

;

;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Підпрограма виконує такі функції:

  • Налаштовує SPI-інтерфейс МК в режим Slave

  • Здійснює запис байтів MCBYTE і PLDBYTE в SPI-регістри МК і ПЛМ, відповідно

  • Забезпечує ініціалізацію виходів SPI-інтерфейсу ПЛМ

  • Забезпечує підключення паралельної шини SPI-регістру ПЛМ до нижньої лінійки світлодіодів

  • Ініціалізує передачу даних по SPI-інтерфейсу між ПЛМ і МК

  • По закінченні передачі відключає ПЛМ від SPI-шини і виводить вміст регістру МК на верхню лінійку світлодіодів

  • Повертає SPI-інтерфейс МК в попередній режим

;_____________________________________________________________________________

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]