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

UptoLike

216
;поместить в ACC. Одновременно происходит прием байта из DataFlash. Принятый
;байт возвращается в ACC.
Pod_TX_BYTE:
CLR ISPI ;сбросить флаг оконч перед/прм по SPI
MOV SPIDAT,ACC ;начать передачу байта по SPI
JNB ISPI,$ ;ожидать окончания передачи
MOV ACC,SPIDAT ;сохранить принятый байт
RET
;-----------------------------------------------------------------------------
;Подпрограмма инициализации РСН.
;-----------------------------------------------------------------------------
Pod_INIT_RSN:
MOV PORT_KNOP,#11111111b ;сделать вх все линии порта кн
MOV PORT_IND,#00000000b ;сделать вых все линии порта индик
;Настройка модуля SPI
MOV SPICON,#00110000b ;SPI разреш, SPI ведущ, CPOL=0, CPHA=0
;(mode SPI - 0), скорость - F/2
SETB SC ;запрет выбора ведомого устройства SPI
RET
;------------------------------------------------------------------------------
;Подпрограмма инициализации РОНов. Обнуляются все РОНы с адресами
;от NACH_ADR до KON_ADR при помощи косвенной адресации.
;------------------------------------------------------------------------------
Pod_INIT_RON:
MOV R0,#NACH_ADR ;установка начального адреса
Lk_0: MOV @R0,#0 ;обнуление очередного РОНа
INC R0 ;переход к следующему адресу
CJNE R0,#KON_ADR,Lk_0 ;не достигли ли последнего адреса ?
MOV @R0,#0 ;обнуление последнего РОНа
RET ;да, выход
;-----------------------------------------------------------------------------
;Подпрограмма вывода на ЖКИ содержимого буфера из 10 РОНов в виде 10 знакомест.
;R0 должен указывать на РОН в буфере, содержимое которого индицируется первым.
;R1 должен содержать нач адрес знакоместа в ОЗУ ЖКИ.
;-----------------------------------------------------------------------------
Pod_IND_10ZN:
MOV R2,#0 ;нач уст ст цикла
Ii_0: MOV DATA_IND_R,@R0 ;
MOV ADR_IND_R,R1 ;
LCALL Pod_PER_DAT_LCD ; индикация очередного символа
INC R0 ;
INC R1 ;
INC R2 ;
CJNE R2,#10,Ii_0 ;
RET
;Подключение модулей опроса кнопок, вывода данных на ЖКИ (с опросом ЖКИ)
;и преобразования представления чисел
$INCLUDE (C:\PR_ADUC\SPI_DF\knop.asm)
$INCLUDE (C:\PR_ADUC\SPI_DF\lcd_opr.asm)
$INCLUDE (C:\PR_ADUC\SPI_DF\preobr.asm)
;Конец исполняемого кода
END
Для примера, в качестве ведомого устройства SPI используется микро-
схема памяти DataFlash AD45DB041B фирмы Atmel. Подробное описание мик-
росхемы [13] доступно на сайте http://www.atmel.com. Она представляет собой
высокоскоростное устройство энергонезависимой памяти с последовательным
доступом и низковольтным питанием. Применение такого устройства для хра-