新手小白,单片机函数信号发生器的代码,不知道为啥报错了
SX.a51(29): error A9: SYNTAX ERROR
SX.a51(33): error A9: SYNTAX ERROR
SX.a51(71): error A18: OUT OF RANGE OR NON-TYPELESS BIT-OFFSET
SX.a51(73): error A18: OUT OF RANGE OR NON-TYPELESS BIT-OFFSET
SX.a51(74): error A18: OUT OF RANGE OR NON-TYPELESS BIT-OFFSET
SX.a51 - 5 Error(s), 0 Warning(s).
ORG 0000H ;程序开始
MOV DPTR,#0FEFFH ;0832的地址
MOV SP,#60H ;设置堆栈
START: JNB P1.0,FB ;输出方波程序
JNB P1.1,SJB ;输出三角波程序
JNB P1.2,TXB ;输出梯形波程序
JNB P1.3,JCB ;输出锯齿波程序
JNB P1.4,ZXB ;输出正弦波程序
SJMP START ;循环检测
RET
/**************方波************/
FB: MOV A,#0 ;通过高低电平地的变化来输出波形
MOVX @DPTR,A ;向选通地址送低电平
ACALL DELAY
MOV A,#0FFH
MOVX @DPTR,A ;向选通地址送高电平
ACALL DELAY
JB P1.0,START
AJMP FB
DELAY: MOV 30H,#0F0H ;延时,通过改变它的大小可以改变占空比
D1: DJNZ R0,D1
RET
/**************三角波************/
SJB: MOV R6,#00H
DA1: MOV A,R6
MOVX @DPTR,A
INC R6
CJNER6,#0FFH,DA1
DA2: DEC R6
MOV A,R6
MOVX @DPTR,A
CJNER6,#00H,DA2
JB P1.1,START
AJMP SJB
/*************梯形波************/
TXB: MOV A,#0
MOV R1,#0AH
LP: MOVX @DPTR,A ;选通地址
ACALL DELAY1 ;延时
DJNZ R1,NEXT
SJMP TXB
NEXT: ADD A,#10 ;每次以10H的梯度增加
JB P1.2,START
SJMP LP
DELAY1:MOV 31H,#0FFH
D2: DJNZ 31H,D2
RET
/*************锯形波************/
JCB: MOV R6,#00H ;设置初值
DA0: MOV A,R6
MOVX @DPTR,A
INC R6
JB P1.3,START
AJMP DA0
/*************正弦波************/
ZXB: MOV R1,#00H ;取表格初值
LOOP1: MOV A,R1 ;在表格里取数送到指定地址
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV DPTR,#0FEFFH
MOVX @DPTR,A
INC R1 ;表格加一
JB P1.4,START
AJMP LOOP1 ;循环
TAB: DB 080H,083H,086H,089H,08DH,090H,093H,096H ;正弦表格
DB 099H,09CH,09FH,0A2H,0A5H,0A8H,0A8H,0AEH
DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H
DB 0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8H
DB 0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9H
DB 0EAH.0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5H
DB 0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDH
DB 0FDH.0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH.0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDH
DB 0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6H
DB 0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EAH
DB 0E9H,0E7H,0E5H,0E3H,0E1H,0DEH,0DDH,0DAH
DB 0D8H,0D6H,0D4H,0D1H,0CFH,0CCH,0CAH,0C7H
DB 0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H,0B1H
DB 0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH,99H
DB 96H,93H,90H,8DH,89H,86H,83H,80H
DB 80H,7CH,79H,78H,72H,6FH,6CH,69H
DB 66H,63H,60H,5DH,5AH,57H,55H,51H
DB 4EH,4CH,48H,45H,43H,40H,3DH,3AH
DB 38H,35H,33H,30H,2EH,2BH,29H,27H
DB 25H,22H,20H,1EH,1CH,1AH,18H,16H
DB 15H,13H,11H,10H,0EH,0DH,0BH,0AH
DB 09H,08H,07H,06H,05H,04H,03H,02H
DB 02H,01H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,01H,02H
DB 02H,03H,04H,05H,06H,07H,08H,09H
DB 0AH,0BH,0DH,0EH,10H,11H,13H,15H
DB 16H,18H,1AH,1CH,1EH,20H,22H,25H
DB 27H,29H,2BH,2EH,30H,33H,35H,38H
DB 3AH,3DH,40H,43H,45H,48H,4CH,4EH
DB 51H,55H,57H,5AH,5DH,60H,63H,66H
DB 69H,6CH,6FH,72H,76H,79H,7CH,80H
RET
END
|