DAC0832的波形发生器(汇编)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ORG 0000H
KB:MOV P1,#0FFH;置P0口为输入方式MOV A,P1;读键值
CPL A
ANL A,#1FH;屏蔽高三位
JZ KB;无键闭合继续检测
ACALL DL Y_10MS;延时10ms,去抖动MOV A,P1;再次检测有无键闭合
CPL A
ANL A,#1FH
JZ KB
CJNE A,#01H,KB01
LCALL FANGBO;调用方波子程序SJMP KB
KB01:CJNE A,#02H,KB02
LCALL JVCHI;调用锯齿波子程序SJMP KB
KB02:CJNE A,#04H,KB03
LCALL TIXING;调用梯形波子程序SJMP KB
KB03:CJNE A,#08H,KB04
LCALL SANJIAO;调用三角波子程序SJMP KB
KB04:CJNE A,#10H,KB
LCALL ZHENGXIAN;调用正弦波子程序SJMP KB
;方波子程序//////////////
FANGBO:
MOV DPTR,#0FFFEH
LP1:
MOV A,0
MOVX @DPTR,A
LCALL DELAY1
MOV A,#0FFH
MOVX @DPTR,A
LCALL DELAY1
AJMP LP1
;锯齿波子程序/////////////
JVCHI:
MOV DPTR,#0FFFEH
MOV A,#0FFH
WW:MOVX @DPTR,A
DEC A
NOP
NOP
NOP
AJMP WW
;梯形波子程序
TIXING:
MOV DPTR,#0FFFEH MOV R2,#07DH
MOV R4,#0AFH
MOV A,#00H
D1:MOVX @DPTR,A LCALL DELAY2
ADD A,R2
DJNZ R4,D1
AJMP D1
;三角波子程序/////////////// SANJIAO:
MOV DPTR,#0FFFEH MOV R6,#10H
MOV A,#00H
LOOP1:
MOVX @DPTR,A
ADD A,R6
CJNE A,#0FFH,LOOP1 LOOP2:
MOVX @DPTR,A
SUBB A,R6
CJNE A,#07H,LOOP2 AJMP LOOP1
;正弦波子程序///////////////// ZHENGXIAN:
MOV R1,#00H
QZ:MOV A,R1
MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV DPTR,#0FFFEH MOVX @DPTR,A
INC R1
AJMP QZ
;延时程序2
DELAY2:MOV 31H,#02H PW:DJNZ 31H,PW
RET
;延时子程序1
DELAY1: MOV 30H,#0FFH
DL: DJNZ 30H,DL
RET
;消除抖动延时*********
DL Y_10MS:MOV R5,#250
DY1: MOV R7,#40
DY2: DJNZ R7,DY2
DJNZ R5,DY1
RET
;正弦表格///////////
SETTAB:
DB 80H,83H,86H,89H,8DH,90H,93H,96H
DB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,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
END