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

UptoLike

156
3. Демонстрационные программы
для ADuC824
В этой части учебного пособия приводятся исходные тексты и описания
ассемблерных программ, обеспечивающих работу основных периферийных уз-
лов ADuC824. Каждая программа отлажена и является полностью законченным
продуктом, реально работающим в «железе». Несмотря на свой отчасти демон-
страционный характер эти программы, тем не менее, могут быть полезны раз-
работчикам ПО для ADuC824 и для других 51-совместимых микроконтролле-
ров, так как содержат программно-аппаратные интерфейсы цифровой и анало-
говой периферии микроконвертора и несколько программных интерфейсов
внешних устройств.
Исходные тексты большинства предлагаемых программ помимо автор-
ского кода содержат директиву $INCLUDE подключения файла preobr.asm
(листинг 3.1), содержащего подпрограммы преобразования формы представле-
ния чисел, взятые из [9]. Эти подпрограммы используются при обработке ре-
зультатов измерений, индикации адресов памяти и т. д. В качестве подключае-
мых также используются файл мнемоник ADuC824 mod824 (листинг 3.2), по-
ставляемый в составе пакета QuickStart Development System, и файл дополни-
тельных мнемоник ADuC824 824.inc (листинг 3.3), написанный Редькиным
П.П.
Листинг 3.1. Преобразование формы представления чисел
;-------------------------------------------------------------------------------
; Подпрограммы преобразования представления чисел, используемые для обработки
; и вывода на индикацию результатов измерений и вычислений.
; (Файл preobr.asm)
;-------------------------------------------------------------------------------
;------------------------------------------------------------------------------
;Подпрограмма поворота 32-разрядного числа влево на 1 разряд.
;Вход: R1 - адрес мл байта числа (далее старшие байты)
; CY - задвигаемый в число бит.
;Выход: CY - младший бит повернутого числа
;Использует подпрограммы: RLCN32
;-------------------------------------------------------------------------------
RLN32: MOV A,R1 ;
MOV B,A ;сохр R1
ADD A,#4 ;
MOV R1,A ;
DEC R1 ;
MOV A,@R1 ;
MOV R1,B ;
RLC A ;CY = ст бит числа
;------------------------------------------------------------------------------
;Подпрограмма логического сдвига 32-разрядного числа влево на 1 разряд через
;перенос.
;Вход: R1 - адрес мл байта числа (далее старшие байты)
; CY - задвигаемый в число бит.
; Выход: CY - выдвинутый из числа бит.
;------------------------------------------------------------------------------
RLCN32: MOV B,#4 ;задаем кол-во байт числа
RLCN_1: MOV A,@R1 ;----------------------------------