Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Отвечать на все вопросы очень долго, может быть, исходник на asm-51 всё прояснит?

Отправлено Леонид Иванович 26 февраля 2009 г. 12:57
В ответ на: AD9835 глазами новичка. Закипаю. +++ отправлено пользователем dshabrov 26 февраля 2009 г. 12:44


; ====== RX DDS AD9835 support: ======

DDS = 0916D9C7H ;initial Rx DDS frequency

Fr0 .EQU O20H.1 ;RX DDS Frequency0 flag

DDS_Cmd_WrPh .EQU 00000000B ;write phase byte
DDS_Cmd_WrPhDef .EQU 00010000B ;-//- to the defer register
DDS_Ph0 .EQU 00001000B ;phase0 address
DDS_Ph1 .EQU 00001010B ;phase1 address
DDS_Ph2 .EQU 00001100B ;phase2 address
DDS_Ph3 .EQU 00001110B ;phase3 address
DDS_Ph_LSB .EQU 00000000B ;phase byte 1 address
DDS_Ph_MSB .EQU 00000001B ;phase byte 2 address

DDS_Cmd_WrFr .EQU 00100000B ;write frequency byte
DDS_Cmd_WrFrDef .EQU 00110000B ;-//- to the defer register
DDS_Fr0 .EQU 00000000B ;frequency0 address
DDS_Fr1 .EQU 00000100B ;frequency1 address
DDS_Fr_L_LSB .EQU 00000000B ;frequency byte 1 address
DDS_Fr_H_LSB .EQU 00000001B ;frequency byte 2 address
DDS_Fr_L_MSB .EQU 00000010B ;frequency byte 3 address
DDS_Fr_H_MSB .EQU 00000011B ;frequency byte 4 address

DDS_Cmd_PSel .EQU 01000000B ;phase select command
DDS_Cmd_FSel .EQU 01010000B ;frequency select command
DDS_Cmd_PFSel .EQU 01100000B ;phase and frequency select command
DDS_PSEL0 .EQU 00000000B ;select phase0
DDS_PSEL1 .EQU 00000010B ;select phase1
DDS_PSEL2 .EQU 00000100B ;select phase2
DDS_PSEL3 .EQU 00000110B ;select phase3
DDS_FSEL0 .EQU 00000000B ;select frequency0
DDS_FSEL1 .EQU 00001000B ;select frequency1

DDS_Cmd_Cnt1 .EQU 10000000B ;DDS control 1 command
DDS_SYNC .EQU 00100000B ;SYNC bit
DDS_SELSRC .EQU 00010000B ;SELSRC bit

DDS_Cmd_Cnt2 .EQU 11000000B ;DDS control 2 command
DDS_SLEEP .EQU 00100000B ;SLEEP bit
DDS_RESET .EQU 00010000B ;RESET bit
DDS_CLR .EQU 00001000B ;CLR bit

;Set RX DDS Phase
;Input: R2:R1 - phase code
; A - phase register number (0..3)

RxDDS_P: JNZ Ph1
MOV R3,#DDS_Ph0
MOV R4,#DDS_PSEL0+DDS_Cmd_PSel
SJMP PhX

Ph1: DEC A
JNZ Ph2
MOV R3,#DDS_Ph1
MOV R4,#DDS_PSEL1+DDS_Cmd_PSel
SJMP PhX

Ph2: DEC A
JNZ Ph3
MOV R3,#DDS_Ph2
MOV R4,#DDS_PSEL2+DDS_Cmd_PSel
SJMP PhX

Ph3: MOV R3,#DDS_Ph3
MOV R4,#DDS_PSEL3+DDS_Cmd_PSel

PhX: MOV A,#DDS_Cmd_WrFrDef+DDS_Ph_LSB
ADD A,R3
MOV B,R1
LCALL RxDDS_Wr

MOV A,#DDS_Cmd_WrFr+DDS_Ph_MSB
ADD A,R3
MOV B,R2
LCALL RxDDS_Wr

MOV A,R4
LCALL RxDDS_Wr
RET

;Set RX DDS Frequency
;Input: R4:R3:R2:R1 - frequency code
; Fr0 - Frequency0 flag
;Out: Fr0 = !Fr0

RxDDS_F: JNB Fr0,Freq1

Freq0: MOV R5,#DDS_Fr0
MOV R6,#DDS_Cmd_FSel+DDS_FSEL0
SJMP FreqS

Freq1: MOV R5,#DDS_Fr1
MOV R6,#DDS_Cmd_FSel+DDS_FSEL1

FreqS: MOV A,#DDS_Cmd_WrFrDef+DDS_Fr_L_LSB
ADD A,R5
MOV B,R1
LCALL RxDDS_Wr

MOV A,#DDS_Cmd_WrFr+DDS_Fr_H_LSB
ADD A,R5
MOV B,R2
LCALL RxDDS_Wr

MOV A,#DDS_Cmd_WrFrDef+DDS_Fr_L_MSB
ADD A,R5
MOV B,R3
LCALL RxDDS_Wr

MOV A,#DDS_Cmd_WrFr+DDS_Fr_H_MSB
ADD A,R5
MOV B,R4
LCALL RxDDS_Wr

MOV A,R6
LCALL RxDDS_Wr
CPL Fr0
RET

;Init RX DDS:
;Phase0 = 0
;Frequency = #DDS

RxDDS_I: MOV A,#DDS_Cmd_Cnt2+DDS_SLEEP+DDS_RESET+DDS_CLR
LCALL RxDDS_Wr
MOV A,#DDS_Cmd_Cnt1+DDS_SYNC+DDS_SELSRC
LCALL RxDDS_Wr
CLR A
MOV R1,A
MOV R2,A
LCALL RxDDS_P
MOV R1,# DDS & 0FFH
MOV R2,#(DDS>>8) & 0FFH
MOV R3,#(DDS>>16) & 0FFH
MOV R4,#(DDS>>24) & 0FFH
LCALL RxDDS_F
MOV A,#DDS_Cmd_Cnt2
LCALL RxDDS_Wr
RET

;Rx DDS Write:
;In: A = control byte
; B = data byte

RxDDS_Wr: CLR RSYNC
LCALL Ser_Wr0
MOV A,B
LCALL Ser_Wr0
SETB RSYNC
RET


Составить ответ | Вернуться на конференцию.

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 93:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru