51单片机正弦波,三角波,方波,矩形波发生器,Proteus仿真,汇编、C源码
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- ORG 0000H
- SJMP MAIN
- ORG 0003H
- LJMP _INT0
- ORG 0030H
- MAIN:SETB EA ;CPU 开中断
- SETB IT0 ;设置中断0触发方式为边沿触发
- SETB EX0 ;外部中断0 开中断
- TRI:CJNE R0,#00H,SIN
- MOV DPTR,#7FFFH
- MOV A,#00H
- UP:MOVX @DPTR,A
- LCALL DELAY
- INC A
- JNZ UP
- DOWN:DEC A
- MOVX @DPTR,A
- LCALL DELAY
- JNZ DOWN
- SJMP TRI
- SIN:CJNE R0,#01H,JUCHI
- MOV R1,#00H
- DA_S:MOV DPTR,#TABLE
- MOV A,R1
- MOVC A,@A+DPTR
- MOV DPTR,#7FFFH
- MOVX @DPTR,A
- LCALL DELAY
- INC R1
- CJNE R1,#32,DA_S
- SJMP SIN
- JUCHI:CJNE R0,#02H,SQU
- MOV DPTR,#7FFFH
- MOV A,#00H
- UP1:MOVX @DPTR,A
- LCALL DELAY
- INC A
- JNZ UP1
- SJMP JUCHI
- SQU:CJNE R0,#03H,TRI
- MOV DPTR,#7FFFH
- MOV A,#00H
- MOVX @DPTR,A
- LCALL DELAY
- MOV A,#0FFH
- MOVX @DPTR,A
- LCALL DELAY
- SJMP SQU
- SJMP $
- _INT0:INC R0
- CJNE R0,#4,EXIT
- MOV R0,#00H
- EXIT:RETI
- DELAY:MOV R2,#0FFH
- DJNZ R2,$
- RET
- TABLE:DB 80H,96H,0AEH,0C5H,0D8H,0E9H,0F5H,0FDH
- DB 0FFH,0FDH,0F5H,0E9H,0D8H,0C5H,0AEH,96H
- DB 80H,66H,4EH,38H,25H,15H,09H,04H
- DB 00H,04H,09H,15H,25H,38H,4EH,66H
-
- END
复制代码
所有资料51hei提供下载:
dac0832.rar
(31.13 KB, 下载次数: 40)
dac0832 -SIN-TRI-SQU-JUCHI.rar
(53.94 KB, 下载次数: 42)
|