?? 復件 新建 文本文檔 (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 + -