?? 1
字號:
;*****************************
; ;*
; 正弦波(三角波)發生器 ;*
; AT89C2051,12MHZ晶振 ;*
; 2003.09.12 ;*
; ;*
;*****************************
;
;正弦波發生器,p3.0口按鍵減小輸出頻率,P3.1口按鍵增加輸出頻率
;P1口輸出正弦波,(P2口輸出余弦波),使用定時器T0,16位定時模式。
;R6、R7用作10毫秒延時寄存器。p3.7輸出方波
;
SINP DATA 30H ;正弦波查表指針
;COSP DATA 31H ;余弦波查表指針
TH0D DATA 32H ;定時器初值存放(高8位)
TL0D DATA 33H ;定時器初值存放(低8位)
;
ORG 0000H
LJMP START
ORG 000BH
LJMP INTT0
;
ORG 0060H
;
START: MOV SP,#70H
MOV SINP,#00H
; MOV COSP,#40H
MOV TMOD,#11H
MOV TH0D,#0FFH ;初值,決定波形頻率
MOV TL0D,#00H
MOV TH0,TH0D
MOV TL0,TL0D
MOV DPTR,#LIST
SETB ET0
SETB EA
SETB TR0
MAIN: JNB p3.0,INCKEY
JNB P3.1,DECKEY
ORL PCON,#01H
LJMP MAIN
; 按鍵功能,輸出頻率減小
INCKEY:LCALL DL10MS
JB p3.0,MAIN
MOV A,TL0D
CJNE A,#0FFH,INC1
LJMP MAIN
INC1: INC TL0D
LJMP MAIN
; 按鍵功能,輸出頻率增大
DECKEY:LCALL DL10MS
JB P3.1,MAIN
MOV A,TL0D
CJNE A,#00H,DEC1
LJMP MAIN
DEC1: DEC TL0D
LJMP MAIN
; 定時器T0中斷程序
INTT0: PUSH ACC
CPL P3.7 ;方波輸出,作輔助功能用
MOV TH0,TH0D
MOV TL0,TL0D
MOV A,SINP
MOVC A,@A+DPTR
MOV P1,A ;正弦波從P1口輸出
; MOV A,COSP
; MOVC A,@A+DPTR ;
; MOV P2,A ;余弦波從P2口輸出
INC SINP
; INC COSP
POP ACC
RETI
; 10毫秒延時程序
DL512: MOV R7,#0FFH
LOOP: DJNZ R7,LOOP
RET
DL10MS:MOV R6,#14H
LOOP1: LCALL DL512
DJNZ R6,LOOP1
RET
; 正弦函數表(共256個點,每點1.40625度)
LIST: DB 80H,83H,85H,88H,8AH,8DH,8FH,92H
DB 94H,97H,99H,9BH,9EH,0A0H,0A3H,0A5H
DB 0A7H,0AAH,0ACH,0AEH,0B1H,0B3H,0B5H,0B7H
DB 0B9H,0BBH,0BDH,0BFH,0C1H,0C3H,0C5H,0C7H
DB 0C9H,0CBH,0CCH,0CEH,0D0H,0D1H,0D3H,0D4H
DB 0D6H,0D7H,0D8H,0DAH,0DBH,0DCH,0DDH,0DEH
DB 0DFH,0E0H,0E1H,0E2H,0E3H,0E3H,0E4H,0E4H
DB 0E5H,0E5H,0E6H,0E6H,0E7H,0E7H,0E7H,0E7H
DB 0E7H,0E7H,0E7H,0E7H,0E6H,0E6H,0E5H,0E5H
DB 0E4H,0E4H,0E3H,0E3H,0E2H,0E1H,0E0H,0DFH
DB 0DEH,0DDH,0DCH,0DBH,0DAH,0D8H,0D7H,0D6H
DB 0D4H,0D3H,0D1H,0D0H,0CEH,0CCH,0CBH,0C9H
DB 0C7H,0C5H,0C3H,0C1H,0BFH,0BDH,0BBH,0B9H
DB 0B7H,0B5H,0B3H,0B1H,0AEH,0ACH,0AAH,0A7H
DB 0A5H,0A3H,0A0H,9EH,9BH,99H,97H,94H
DB 92H,8FH,8DH,8AH,88H,85H,83H,80H
DB 7DH,7BH,78H,76H,73H,71H,6EH,6CH
DB 69H,67H,65H,62H,60H,5DH,5BH,59H
DB 56H,54H,52H,4FH,4DH,4BH,49H,47H
DB 45H,43H,41H,3FH,3DH,3BH,39H,37H
DB 35H,34H,32H,30H,2FH,2DH,2CH,2AH
DB 29H,28H,26H,25H,24H,23H,22H,21H
DB 20H,1FH,1EH,1DH,1DH,1CH,1CH,1BH
DB 1BH,1AH,1AH,1AH,19H,19H,19H,19H
DB 19H,19H,19H,19H,1AH,1AH,1AH,1BH
DB 1BH,1CH,1CH,1DH,1DH,1EH,1FH,20H
DB 21H,22H,23H,24H,25H,26H,28H,29H
DB 2AH,2CH,2DH,2FH,30H,32H,34H,35H
DB 37H,39H,3BH,3DH,3FH,41H,43H,45H
DB 47H,49H,4BH,4DH,4FH,52H,54H,56H
DB 59H,5BH,5DH,60H,62H,65H,67H,69H
DB 6CH,6EH,71H,73H,76H,78H,7BH,7DH
; 三角波函數表
LIST1: DB 80H,81H,82H,83H,84H,85H,86H,87H
DB 88H,89H,8AH,8BH,8CH,8DH,8EH,8FH
DB 90H,91H,92H,93H,94H,95H,96H,97H
DB 98H,99H,9AH,9BH,9CH,9DH,9EH,9FH
DB 0A0H,0A1H,0A2H,0A3H,0A4H,0A5H,0A6H,0A7H
DB 0A8H,0A9H,0AAH,0ABH,0ACH,0ADH,0AEH,0AFH
DB 0B0H,0B1H,0B2H,0B3H,0B4H,0B5H,0B6H,0B7H
DB 0B8H,0B9H,0BAH,0BBH,0BCH,0BDH,0BEH,0BFH
DB 0BFH,0BEH,0BDH,0BCH,0BBH,0BAH,0B9H,0B8H
DB 0B7H,0B6H,0B5H,0B4H,0B3H,0B2H,0B1H,0B0H
DB 0AFH,0AEH,0ADH,0ACH,0ABH,0AAH,0A9H,0A8H
DB 0A7H,0A6H,0A5H,0A4H,0A3H,0A2H,0A1H,0A0H
DB 9FH,9EH,9DH,9CH,9BH,9AH,99H,98H
DB 97H,96H,95H,94H,93H,92H,91H,90H
DB 8FH,8EH,8DH,8CH,8BH,8AH,89H,88H
DB 87H,86H,85H,84H,83H,82H,81H,80H
DB 7FH,7EH,7DH,7CH,7BH,7AH,79H,78H
DB 77H,76H,75H,74H,73H,72H,71H,70H
DB 6FH,6EH,6DH,6CH,6BH,6AH,69H,68H
DB 66H,66H,65H,64H,63H,62H,61H,60H
DB 5FH,5EH,5DH,5CH,5BH,5AH,59H,58H
DB 55H,55H,55H,54H,53H,52H,51H,50H
DB 4FH,4EH,4DH,4CH,4BH,4AH,49H,48H
DB 44H,44H,45H,44H,43H,42H,41H,40H
DB 40H,41H,42H,43H,44H,45H,46H,47H
DB 48H,49H,4AH,4BH,4CH,4DH,4EH,4FH
DB 50H,51H,52H,53H,55H,55H,56H,57H
DB 58H,59H,5AH,5BH,5CH,5DH,5EH,5FH
DB 60H,61H,62H,63H,66H,65H,66H,67H
DB 68H,69H,6AH,6BH,6CH,6DH,6EH,6FH
DB 70H,71H,72H,73H,77H,75H,76H,77H
DB 78H,79H,7AH,7BH,7CH,7DH,7EH,7FH
;
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -