⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 060406_2

📁 信号的调制及对9832的使用
💻
📖 第 1 页 / 共 2 页
字号:
P1SAVE		EQU	70H
AUXR		EQU	08EH		;AUXILIARY REGISTER BIT7:T0x12;BIT6:T1x12;BIT5:UARTM0x6
SAVE		EQU	30H
save1		EQU	31H
LOOPN		EQU	31H
framelength	EQU	32H
frequency	EQU	33H

SDA		BIT	P1.1
SCL		BIT	P1.0

DDSSC		BIT	P3.5		;P3.5 AD9835 CHIP SELECT
DDSSK		BIT	P3.3		;P3.3 AD9835'S CLOCK
DDSDT		BIT	P3.4		;P3.4 AD9835'S DATA

ADCLK		bit	p3.3
ADDATA		BIT	P3.4
ADCS1		BIT	P3.5
sdata		BIT	P3.7

D	BIT   	20H.0			;RI interrupt 标志
d1	bit	20H.1
D2	BIT	20H.2
E	BIT   	20H.3			;FUNCTION2标志
F	BIT	20H.4
g 	bit	20h.5			;recurrence
H	BIT	20H.6			;function1标志
	ORG   	0000H

	AJMP  	STAR
	ORG	0003H
	AJMP	WINT0
	ORG	000BH
	AJMP	T0INT
	ORG	001BH

	ORG   	0023H
	AJMP  	SINT

	ORG   	0040H
	;-------------初始化------------------
star:
	MOV	P1,#0FFH
        MOV	P3,#0FFH
	mov	SP,#090H

	MOV	IE,#10000000B
	SETB	IT0			;外部中断为边沿触发方式,开启串口中断
	SETB	IT1
	clr	ex0
	;clr	IE0
	;clr	IE1
	CLR	TF0
	CLR	TR1
	clr	tr0

	MOV	TMOD,#22H		;串口的232码学习
	MOV	AUXR,#00H
	MOV	PCON,#00H
	MOV	TL1,#0ECH
	MOV	TH1,#0ECH
	MOV	SCON,#01000000B

	MOV	TL0,#0A0H
	MOV	TH0,#0A0H
	MOV	P1SAVE,#00H
	;MOV	T2CON,#00H
	;MOV	TH2,#10H
	;MOV	ADDSAVE,#00H

	CLR	TI
	CLR	D
	CLR	E
	clr	d1
	CLR	G
	CLR	F
;	mov	a,#10000100b
	;mov	a,#10010100b
	;---------------------主程序------------------------
main:	MOV 	A,P1
	CJNE	A,P1SAVE,main1
	mov	P1SAVE,A
	lcall	njump

	AJMP	main

main1:	mov	P1SAVE,A
	;MOV	R0,A
	LCALL	SELECT
	lcall	njump

	AJMP	main



	;---------------------子程序------------------------
SELECT:

NSELECT:				;time SELECT
	JB	ACC.3,JUMP1
	JB	ACC.2,JUMP2
	setb	F		;00
	MOV	R7,#0FFH
	AJMP	funSELECT

JUMP2:	MOV	R7,#08H			;01
	CLR	F
	AJMP	funSELECT

JUMP1:	JB	ACC.2,JUMP3
	CLR	F
	MOV	R7,#10H			;10
	AJMP	funSELECT

JUMP3:	MOV	R7,#20H			;11
	CLR	F


funSELECT:				;function SELECT
	JB	ACC.7,fun3
	JB	ACC.6,fun2
	;setb	h
	MOV	R6,#00H
	AJMP	FSELECT
fun2:
	;clr	h
	MOV	R6,#01H
	AJMP	FSELECT
fun3:
	JB	ACC.6,fun4
	;clr	h
	MOV	R6,#02H
        mov	40h,#0E0H
	mov	r0,#40h
	LCALL	WRITE_DDS       ;SLEEP
        RET
fun4:
	;clr	h
	MOV	R6,#03H
	AJMP	FSELECT


FSELECT:
	mov	r5,a				;wake up dds
	mov	40h,#0a0H
	mov	r0,#40h
	LCALL	WRITE_DDS
;       LCALL   DELAY2MS1
        mov	40h,#0c0H
	mov	r0,#40h
	LCALL	WRITE_DDS                       ;DDS IN EXTERNAL SELECTION
	mov	a,r5

	JB	ACC.5,jumpfrequency3M		;frequency SELECT
	ajmp	frequency1708M
jumpfrequency3M:
	ajmp	frequency3M
frequency1708M:
	jb	h,UPDOWN_frequency
	JB	ACC.4,UPDOWN_frequency	 ;
;        LCALL   DELAY2MS1
        mov	40h,#33h			; as "0" frequency
	MOV	41H,#02H
	mov	r0,#40h
	LCALL	WRITE_DDS

;       LCALL   DELAY2MS1
	mov	42h,#22h
	MOV	43H,#07H
	mov	r0,#42h
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	mov	44h,#31h
	mov	45h,#1ch
	mov	r0,#44h
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	MOV	46H,#20H
	MOV	47H,#72H
	mov	r0,#46h
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	mov	48h,#37h			;as "1" frequency
	MOV	49H,#02H
	mov	r0,#48h
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	mov	4ah,#26h
	MOV	4bH,#07H
	mov	r0,#4ah
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	mov	4ch,#35h
	mov	4dh,#1ch
	mov	r0,#4ch
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	MOV	4eH,#24H
	MOV	4fH,#72H
	mov	r0,#4eh
	LCALL	WRITE_DDS
	ret
UPDOWN_frequency:
	jb	h,UPDOWN_frequency
	JB	ACC.4,UPDOWN_frequency	 ;
;        LCALL   frequency1708M
        mov	40h,#33h			; as "0" frequency
	MOV	41H,#02H
	mov	r0,#40h
	LCALL	WRITE_DDS

;       LCALL   DELAY2MS1
	mov	42h,#22h
	MOV	43H,#07H
	mov	r0,#42h
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	mov	44h,#31h
	mov	45h,#1ch
	mov	r0,#44h
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	MOV	46H,#20H
	MOV	47H,#72H
	mov	r0,#46h
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	mov	48h,#37h			;as "1" frequency
	MOV	49H,#02H
	mov	r0,#48h
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	mov	4ah,#26h
	MOV	4bH,#07H
	mov	r0,#4ah
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	mov	4ch,#35h
	mov	4dh,#1ch
	mov	r0,#4ch
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	MOV	4eH,#24H
	MOV	4fH,#72H
	mov	r0,#4eh
	LCALL	WRITE_DDS
	ret
frequency3M:
	
	JB	ACC.4,UPDOWN_frequency1
        LCALL   DELAY2MS1
        mov	40h,#33h			; as "0" frequency
	MOV	41H,#02H
	mov	r0,#40h
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	mov	42h,#22h
	MOV	43H,#0bcH
	mov	r0,#42h
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	mov	44h,#31h
	mov	45h,#071h
	mov	r0,#44h
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	MOV	46H,#20H
	MOV	47H,#0c7H
	mov	r0,#46h
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	mov	48h,#37h			;as "1" frequency
	MOV	49H,#02H
	mov	r0,#48h
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	mov	4ah,#26h
	MOV	4bH,#0bcH
	mov	r0,#4ah
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	mov	4ch,#35h
	mov	4dh,#071h
	mov	r0,#4ch
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	MOV	4eH,#24H
	MOV	4fH,#0c7H
	mov	r0,#4eh
	LCALL	WRITE_DDS
	ret
UPDOWN_frequency1:
;       
	JB	ACC.4,UPDOWN_frequency1
        LCALL   DELAY2MS1
        mov	40h,#33h			; as "0" frequency
	MOV	41H,#02H
	mov	r0,#40h
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	mov	42h,#22h
	MOV	43H,#0bcH
	mov	r0,#42h
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	mov	44h,#31h
	mov	45h,#071h
	mov	r0,#44h
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	MOV	46H,#20H
	MOV	47H,#0c7H
	mov	r0,#46h
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	mov	48h,#37h			;as "1" frequency
	MOV	49H,#02H
	mov	r0,#48h
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	mov	4ah,#26h
	MOV	4bH,#0bcH
	mov	r0,#4ah
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	mov	4ch,#35h
	mov	4dh,#071h
	mov	r0,#4ch
	LCALL	WRITE_DDS

;        LCALL   DELAY2MS1
	MOV	4eH,#24H
	MOV	4fH,#0c7H
	mov	r0,#4eh
	LCALL	WRITE_DDS
	ret
;-------------------------------------
njump:					;interface, jump to function programe by parameter
	mov	a,r6
	clr	c
	rlc	a
	mov	save,a
	inc	a
	MOV	DPTR,#JMPTBL
	movc	a,@a+dptr
	push	acc
	mov	a,save

	MOVC	a,@a+dptr
	push	acc
	ret
JMPTBL:
	DW	function1
	DW	function2
	DW	function3
	DW	function4
;--------------------------------------

function1:				;UART incept

	RET
function2:
	MOV	40h,#7Eh
	MOV	41h,#29h
	MOV	42h,#30h
	MOV	43h,#08h
	mov	44h,#00h
	MOV	45h,#00h
	MOV	46h,#00h
	MOV	47h,#95h
	MOV	48h,#66h
	MOV	49h,#7eh
	MOV	4ah,#0ffh
	MOV	r0,#40h
	LCALL	SENDframe
	RET
	;SETB	EX0

function3:

        RET



function4:
	CLR	ES
	CLR	E
	mov	40h,#08h
	mov	r3,#08h
	mov	r1,#41h
fun4loop:
	mov	@r1,#55h
	inc	r1
	djnz	r3,fun4loop


	MOV	SAVE,R7
fun4senddata:
	lcall	SENDframe
	DJNZ	SAVE,fun4senddata
	setb	sdata
	RET

;------sendframe---------		;判断接收区有无数据
SENDframe:				;40h  framelength  41  framedata
	mov	a,@r0
	mov	sbuf,a
	INC	r0
	djnz	r3,SENDframe
	ret
;-------copy-------------
copy:
	MOV	R3,60H
	INC	R3
	MOV	R1,#60H
	MOV	R0,#40H
				;copy to sendregister
copy_loop:
	MOV	A,@R1
	mov	@R0,A
	INC	R1
	INC	R0
	DJNZ	R3,copy_loop
	CLR	D
	ret

FUN3_SENDDATA:				;R0   ADDDR    R3   lenth
	MOV	A,@R0
	INC	R0
	MOV	SBUF,A
	JNB	F,$
	clr	f
	DJNZ	R3,FUN3_SENDDATA
	RET




	;----------interrupt program----------
	;----------interrupt program----------
;R5接收最大字节数				;debug  DDS
SINT:
	;CLR	ES
	JB	TI,S_TXD
	JNB	RI,S_END
S_RXD:	CLR	RI
	MOV	A,SBUF
	INC	R0
	MOV	@R0,A
	SETB	D
	setb	D1				;D1 RXD标志2
	CLR	G
       clr      ti
        mov     sbuf,a

	RETI

S_TXD:	CLR	TI
	SETB	D2

S_END:	RETI

;-------------------------------------
T0INT:
	DEC	SP
	DEC	SP
	SETB	ES
	CLR	TR0
	RETI
;-------------------------------------
WINT0:
	RLC	A
	MOV	SDATA,C
	DEC	R2
	RETI
;-------------------------------------


WRITE_DDS:
	CLR     DDSSC           ;AD9835'S CHIP SELECT ="0"
        PUSH    ACC
        PUSH    PSW
        NOP
        NOP
        NOP
        NOP
         NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
         NOP
          NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
         NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        SETB    DDSSK

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -