📄 复件 新建 文本文档 (2).txt
字号:
;****************************************************
;程序名称:信号发生器
ORG 0000H
LJMP MAIN
ORG 0003H ;外中断0
LJMP MINE
ORG 000BH ;定时器0
LJMP TIMER
ORG 0013H ;外中断1
LJMP HUOER
ORG 001BH ;定时器1
LJMP SPEED ;T1中断入口
W0 EQU 80H ;W0K控制字的低位
W1 EQU 4BH
W2 EQU 10H
W3 EQU 00H ;W3控制字的高位
W4 EQU 01H ;W4相位控制,倍频率开
OUT EQU P1.0 ;OUT为AD9850的D7脚
W_CLK EQU P1.1
FQ_UD EQU P1.2
;*******************************************
;DDS初始化 DDS启动,设置
;*******************************************
SETUP_AD9850:
CLR P1.1 ;初始化信号脚
CLR P1.2
SETB P1.1 ;设置为串行输入
CLR P1.1
SETB P1.2
SETB P1.2
RET
;*******************************************
;发送数据到DDS
;*******************************************
W_AD9850:
CLR P1.2
MOV A,R0
LCALL SEND_PLL
MOV A,R1
LCALL SEND_PLL
MOV A,R2
LCALL SEND_PLL
MOV A,R3
LCALL SEND_PLL
MOV A,#001B ;000B关倍频,001B开倍频
;**********************************************
SEND_PLL:
MOV C,ACC.O
MOV DATA7,C
SETB P1.1
CLR P1.1
MOV C,ACC.1
MOV DATA7,C
SETB P1.1
CLR P1.1
MOV C,ACC.2
MOV DATA7,C
SETB P1.1
SETB P1.1
MOV C,ACC.3
MOV DATA7,C
SETB P1.1
CLR P1.1
MOV C,ACC.4
MOV DATA7,C
SETB P1.1
CLR P1.1
MOV C,ACC.5
MOV DATA7,C
SETB P1.1
CLR P1.1
MOV C,ACC.6
MOV DATA7,C
SETB P1.1
SETB P1.1
MOV C,ACC.7
MOV DATA7,C
SETB P1.1
CLR P1.1
RET
START:
ACALL LCD1
MOV A,#01H
LCALL WRTC
LCALL SINSG
LCALL WATS
AJMP $
;*******************************************
;LCD子程序
;*******************************************
LCD1:
MOV A,#101000B ;4位总线
LCALL WRTC
MOV A,#10B
LCALL WRTC
MOV A,#01H ;清屏
LCALL WRTC
MOV A,#1111B ;显示开,光标开,闪烁开
LCALL WRTC
MOV A,#110B ;光标自动右移,显示文字不动
LCALL WRTC
MOV A,#10000000B ;设置显示地址00H
LCALL WRTC
RET
;*******************************************
WRTC: ;送指令
LCALL READBUSY
CLR RS
CLR RW
SETB E
MOV C,ACC.7
MOV DB7,C
MOV C,ACC.6
MOV DB6,C
MOV C,ACC.5
MOV DB5,C
MOV C,ACC.4
MOV DB4,C
CLR E
SETB E
MOV C,ACC.3
MOV DB7,C
MOV C,ACC.2
MOV DB6,C
MOV C,ACC.1
MOV DB5,C
MOV C,ACC.0
MOV DB4,C
CLR E
RET
;********************************************
WRTS: ;送数据
LCALL READBUSY
SETB RS
CLR RW
SETB E
MOV C,ACC.7
MOV DB7,C
MOV C,ACC.6
MOV DB6,C
MOV C,ACC.5
MOV DB5,C
MOV C,ACC.4
MOV DB4,C
CLR E
SETB E
MOV C,ACC.3
MOV DB7,C
MOV C,ACC.2
MOV DB6,C
MOV C,ACC.1
MOV DB5,C
MOV C,ACC.0
MOV DB4,C
CLR E
RET
;*******************************************
;正弦信号发生
;*******************************************
SINSG:
MOV R5,#00H
SIN:
MOV A, R5
MOV DPTR,#CTABH
MOV R5,#00H
SIN:
MOV A,R5
MOV DPTR,#CTABH
MOVC A,@A+DPTR
MOV DPTR,#0DFFFH
MOVX @DPTR,A
INC R5
AJMP SIN
CTAB:
DB: 80,83,86,89,8D,90,93,96,99,9C,9F,A2,A5,A8,AB,AE,
DB: B1,B4,B7,BA,BC,BF,C2,C5,C7, CA,CC,CF,D1,D4,D6,D8,
DB: DA,DD,DF,E1,E3,E5,E7,E9,EA,EC,EE,EF,F1,F2,F4,F5,
DB: F6,F7,F8,F9,FA,FB,FC,FD,FD,FE,FF,FF,FF,FF,FF,FF,
DB: FF,FF,FF,FF,FF,FF,FE,FD,FD,FC,FB,FA,F9,F8,F7,F6,
DB: F5,F4,F2,F1,EF,EE,EC,EA,E9,E7,E5,E3,E1,DF,DD,DA,
DB: D8,D6,D4,Dl,CF,CC,CA,C7,C5,C2,BF,BC,BA,B7,B4,B1,
DB: AE,AB,A8,A5,A2,9F,9C,99,96,93,90,8D,89,86,83,80,
DB: 80,7C,79,76,72,6F,6C,69,66,63,60,5D,5A,57,55,51,
DB: 4E,4C,48,45,43,40,3 D,3A,38,35,33,30,2E,2B,29,27,
DB: 25,22,20,1E,1C,1A,18,16,15,13,11,10,0E,0D,0B,0A,
DB: 09,08,07,06,05,04,03,02,02,01,00,00,00,00,00,00,
DB: 00,00,00,00,00, 00,01,02,02,03,04,05,06,07,08,09,
DB: 0A,0B,0D,0E,10,11,13,15
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -