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

UptoLike

215
;---------------------------------------------------------------------
;Подпрограмма чтения байта из массива памяти по произвольному адресу.
;Прочитанный байт возвращается в РОНе DATA_R.
;Абсолютный адрес байта в массиве следует предварительно поместить
;в РОНы ADRF_H_R, ADRF_M_R, ADRF_L_R.
Pod_READ_BYTE:
LCALL Pod_READ_SR ;чтение рег статуса DataFlash
CLR SC ;выбор устройства
MOV ACC,#053h ;
LCALL Pod_TX_BYTE ;передача КОПа перемещ стр в буфер 1
LCALL Pod_TX_ADRF ;передача абс адреса байта в массиве
SETB SC ;запрет выбора устройсва
LCALL Pod_READ_SR ;чтение рег статуса DataFlash
CLR SC ;выбор устройства
MOV ACC,#0D4h ;
LCALL Pod_TX_BYTE ;передача КОПа чтения буфера 1
LCALL Pod_TX_ADRF ;передача абс адреса байта в массиве
LCALL Pod_TX_BYTE ;передача незнач байта
LCALL Pod_TX_BYTE ;прием байта данных из массива
MOV DATASPI_R,ACC ;сохранение принятого байта
SETB SC ;запрет выбора устройсва
RET
;Подпрограмма чтения регистра статуса устройства памяти DataFlahs.
;Содержимое регистра статуса возвращается в ACC.
Pod_READ_SR:
CLR SC ;выбор устройства
MOV ACC,#0D7h ;
LCALL Pod_TX_BYTE ;передача КОПа чтения рег статуса
Re_0: MOV ACC,#0FFh ;
LCALL Pod_TX_BYTE ;чтение регистра статуса
JNB ACC_7,Re_0 ;свободно ли устройство
SETB SC ;запрет выбора устройства
RET
;Подпрограмма передачи трех байт абсолютного адреса байта в массиве памяти.
;Передача начинается со старшего байта адреса.
Pod_TX_ADRF:
MOV ACC,ADRF_H_R ;передать ст байт адр
LCALL Pod_TX_BYTE ;передача байта
MOV ACC,ADRF_M_R ;передать ср байт адр
LCALL Pod_TX_BYTE ;передача байта
MOV ACC,ADRF_L_R ;передать мл байт адр
LCALL Pod_TX_BYTE ;передача байта
RET
;Подпрограмма записи байта в массив памяти по произвольноиу адресу.
;Записываемый байт следует предварительно поместить в РОН DATASPI_R.
;Абсолютный адрес байта следует предварительно поместить
;в РОНы ADRF_H_R, ADRF_M_R, ADRF_L_R.
Pod_WRITE_BYTE:
LCALL Pod_READ_SR ;чтение рег статуса DataFlash
CLR SC ;выбор устройства
MOV ACC,#084h ;
LCALL Pod_TX_BYTE ;передача КОПа записи в буфер 1
LCALL Pod_TX_ADRF ;передача абс адреса байта в массиве
MOV ACC,DATASPI_R ;
LCALL Pod_TX_BYTE ;запись байта данных
SETB SC ;запрет выбора устройства
LCALL Pod_READ_SR ;чтение рег статуса DataFlash
CLR SC ;выбор устройства
MOV ACC,#083h ;
LCALL Pod_TX_BYTE ;передача КОПа записи буфера 1 в стр
LCALL Pod_TX_ADRF ;передача абс адреса байта в массиве
SETB SC ;запрет выбора устройства
RET
;Подпрограмма перед в DataFlash по SPI одного байта, который предварит следует