Микроконверторы фирмы Analog Devices в микропроцессорных приборных комплексах. Виноградов А.Б - 226 стр.

UptoLike

226
Листинг 3.14. Программная реализация интерфейса SPI
;-------------------------------------------------------------------------------
;Демонстрационная программа организации обмена между внешним устройством памяти
;AT45DB041 и ADuC824 по шине SPI. Напряжение питания не должно превышать 3,6 В.
;Данные в ЖКИ передаются по 4-битной шине, состояние ЖКИ опрашивается.
;ADuC824 является ведущим устройством SPI.
;Протокол обмена по шине SPI реализован чисто программно.
;
;При нажатии на кнопку 0 производится перебор адресов ячеек для записи данных в
;AT45DB041. Выбранное значение адреса ячейки в десятичн виде отображается на ЖКИ
;начиная с адреса 0 ОЗУ ЖКИ.
;
;При нажатии на кнопку 1 производится выбор байта данных для записи в AT45DB041.
;Выбранный байт данных в ASCII коде выводится на ЖКИ по адресу 64 ОЗУ ЖКИ.
;
;При нажатии на кнопку 2 производится запись выбранного байта данных в AT45DB041
;по выбранному ранее адресу. Записанный байт данных выводится на ЖКИ по
;адресу 70 ОЗУ ЖКИ.
;
;При нажатии на кнопку 3 производится чтение байта данных из AT45DB041 по
;выбранному ранее адресу. Прочитанный байт данных в ASCII коде отображается на
;ЖКИ по адресу 72 ОЗУ ЖКИ.
;-------------------------------------------------------------------------------
$INCLUDE (C:\ADuC\mod824)
$INCLUDE (C:\PR_ADUC\SPI_DF1\824.inc)
;-----------------------------------------------------------------------------
;Описание битов, регистров и констант
;-----------------------------------------------------------------------------
;Порты и линии ввода-вывода
PORT_KNOP EQU P0 ;порт кнопок
PORT_IND EQU P2 ;порт индикации
_IN_KNOP0 EQU P0_0 ;-----------------------------
_IN_KNOP1 EQU P0_1 ;
_IN_KNOP2 EQU P0_2 ; входы кнопок
_IN_KNOP3 EQU P0_3 ;
_IN_KNOP4 EQU P0_4 ;
_IN_KNOP5 EQU P0_5 ;
_IN_KNOP6 EQU P0_6 ;
_IN_KNOP7 EQU P0_7 ;-----------------------------
PORT_IND_0 EQU P2_0 ;-----------------------------
PORT_IND_1 EQU P2_1 ;
PORT_IND_2 EQU P2_2 ; выходы индикации
PORT_IND_3 EQU P2_3 ;
PORT_IND_4 EQU P2_4 ;
PORT_IND_5 EQU P2_5 ;
PORT_IND_6 EQU P2_6 ;
PORT_IND_7 EQU P2_7 ;-----------------------------
RW EQU PORT_IND_1 ;--------------------------
RS EQU PORT_IND_2 ; линии управления ЖКИ
E EQU PORT_IND_3 ;--------------------------
SC EQU P3_4 ;выход выбора устройства SPI
SCLOCK EQU P3_5 ;выход тактового сигнала SPI
MISO EQU P3_6 ;вход данных SPI
MOSI EQU P3_7 ;выход данных SPI
;РОНы обслуживания ЖКИ и кнопок
ADR_IND_R DATA 030h ;-----------------------------
COM_IND_R DATA 030h ; РОНы обслуживания ЖКИ
DATA_IND_R DATA 031h ;-----------------------------
KNOP0_R DATA 032h ;-----------------------------
KNOP1_R DATA 033h ;