MOV R2,#10
;波形判断分支程序************************************ Transform: CJNE R1,#05H,KEY5;R0 是读入的键位值 AJMP Sin ;输出正弦波P0 KEY5: CJNE R1,#06H,KEY6 AJMP Triangle ;输出三角波 KEY6: CJNE R1,#07H,KEY7 AJMP Rectangle ;输出矩形波 KEY7: CJNE R1,#08H,KEY8 AJMP Trapezoid ;输出梯形波 KEY8: CJNE R1,#0AH,KEY10 AJMP Sawtooth ;输出锯齿波 KEY10: CJNE R1,#0BH,KEY11 KEY11: AJMP Pulse ;输出尖脉冲波; 正弦波开始
Sin: MOV R7,#00H;从第一个计数点0 开始 DISP_SIN: MOV A,R7 MOV DPTR,#SIN_TAB MOVC A,@A+DPTR MOV DPTR,#ADD_0832 MOVX @DPTR,A ;输出波形 CALL Delay_t0
CJNE R2,#00,DISP_SIN2 AJMP Key_Scan_ DISP_SIN2: INC R7 AJMP DISP_SIN
SIN_TAB: DB 80H,83H,86H,89H,8CH,8FH,92H,95H ;256 点正弦表 DB 98H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH DB 0B0H,0B3H,0B6H,0B9H,0BCH,0BFH,0C1H,0C4H
DB 0C7H,0C9H,0CCH,0CEH,0D1H,0D3H,0D5H,0D8H DB 0DAH,0DCH,0DEH,0E0H,0E2H,0E4H,0E6H,0E8H DB 0EAH,0ECH,0EDH,0EFH,0F0H,0F2H,0F3H,0F5H DB 0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FCH DB 0FDH,0FEH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FEH DB 0FDH,0FCH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H DB 0F6H,0F5H,0F3H,0F2H,0F0H,0EFH,0EDH,0ECH DB 0EAH,0E8H,0E6H,0E4H,0E2H,0E0H,0DEH,0DCH DB 0DAH,0D8H,0D5H,0D3H,0D1H,0CEH,0CCH,0C9H DB 0C7H,0C4H,0C1H,0BFH,0BCH,0B9H,0B6H,0B3H DB 0B0H,0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH DB 98H,95H,92H,8FH,8CH,89H,86H,83H DB 80H,7CH,79H,76H,73H,70H,6DH,6AH DB 67H,63H,60H,5DH,5AH,57H,54H,51H DB 4FH,4CH,49H,46H,43H,40H,3EH,3BH DB 38H,36H,33H,31H,2EH,2CH,2AH,27H DB 25H,23H,21H,1FH,1DH,1BH,19H,17H DB 15H,13H,12H,10H,0FH,0DH,0CH,0AH DB 9H,8H,7H,6H,5H,4H,3H,3H DB 2H,1H,1H,0H,0H,0H,0H,0H DB 0H,0H,0H,0H,0H,0H,1H,1H DB 2H,3H,3H,4H,5H,6H,7H,8H DB 9H,0AH,0CH,0DH,0FH,10H,12H,13H DB 15H,17H,19H,1BH,1DH,1FH,21H,23H DB 25H,27H,2AH,2CH,2EH,31H,33H,36H DB 38H,3BH,3EH,40H,43H,46H,49H,4CH DB 4FH,51H,54H,57H,5AH,5DH,60H,63H DB 67H,6AH,6DH,70H,73H,76H,79H,7CH
;正弦波结束 ;三角波开始
Triangle: MOV DPTR,#ADD_0832 MOV R6,#80H
DISP_TRI1: MOV A,R6 MOVX @DPTR,A CALL Delay_t0 ;CALL Delay_t0 CJNE R2,#00,DISP_TRI3 AJMP Key_Scan_ DISP_TRI3: INC R6 INC R6
CJNE R6,#00H,DISP_TRI1 DISP_TRI2: DEC R6 DEC R6 MOV A,R6 MOVX @DPTR,A CALL Delay_t0
CJNE R2,#00,DISP_TRI4 AJMP Key_Scan_
DISP_TRI4: CJNE R6,#00H,DISP_TRI2 AJMP DISP_TRI1 ;三角波结束 ;矩形波开始
Rectangle: MOV R7,#00H ;先输出0号值 MOV DPTR,#ADD_0832 DISP_REC1: MOV R6,#0FFH MOV A,R6 MOVX @DPTR,A
CALL Delay_t0 CALL Delay_t0
CJNE R2,#00,DISP_REC3 AJMP Key_Scan_ DISP_REC3: INC R7 CJNE R7,#80H,DISP_REC1 DISP_REC2: MOV R6,#00H MOV A,R6 MOVX @DPTR,A CALL Delay_t0 CALL Delay_t0 AJMP Key_Scan_ DISP_REC4: INC R7 CJNE R7,#0FFH,DISP_REC2 AJMP DISP_REC1 ;矩形波结束 ;梯形开始
Trapezoid: MOV DPTR,#ADD_0832 MOV R6,#00H
DISP_TRA1: MOV A,R6 ;从FF到00 MOVX @DPTR,A
CALL Delay_t0 ;步进为1个t0 INC R6 INC R6
CJNE R6,#0FEH,DISP_TRA1 MOV R7,#00H INC A ;调整
DISP_TRA2: MOVX @DPTR,A ;输出FF CALL Delay_t0 ;步进为2个t0
CJNE R2,#00,DISP_TRA4 AJMP Key_Scan_ DISP_TRA4: INC R7 INC R7
CJNE R7,#00H,DISP_TRA2;;; INC R6
DISP_TRA3: MOV A,R6 ;从FF到00 MOVX @DPTR,A
CALL Delay_t0 ;步进为1个t0 DEC R6 DEC R6
CJNE R6,#0FFH,DISP_TRA3 INC R6
AJMP DISP_TRA1 ;梯形结束 ;锯齿开始
Sawtooth: MOV DPTR,#ADD_0832 MOV R6,#0FFH
DISP_ST: MOV A,R6 ;从FF到00 MOVX @DPTR,A
CALL Delay_t0 ;步进为4个t0 CALL Delay_t0 CJNE R2,#00,DISP_ST1 AJMP Key_Scan_ DISP_ST1: DEC R6 AJMP DISP_ST ;锯齿结束 ;尖脉冲开始
Pulse: MOV DPTR,#ADD_0832
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数字式波形发生器的设计 - 图文(3)在线全文阅读。
相关推荐: