⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 波形信号发生器程序.asm

📁 基于单片机的移相式函数发生器设计,用汇编语言编写!
💻 ASM
📖 第 1 页 / 共 4 页
字号:
           NOP
           NOP
           CLR      P1.0

           NOP
           NOP
           MOV      A,4CH                ;W1
           MOV      P2,A
           NOP
           SETB     P1.0
           NOP
           NOP
           CLR      P1.0


           NOP
           NOP
           MOV      A,4DH                ;W2
           MOV      P2,A
           NOP
           SETB     P1.0
           NOP
           NOP
           CLR      P1.0

           NOP
           NOP
           MOV      A,4EH                ;W3
           MOV      P2,A
           NOP
           SETB     P1.0
           NOP
           NOP
           CLR      P1.0

           NOP
           NOP
           MOV      A,4FH                ;W4
           MOV      P2,A
           NOP
           SETB     P1.0
           NOP
           NOP
           CLR      P1.0

           NOP
           NOP
           SETB     P1.1
           NOP
           NOP
           NOP
           NOP
           CLR      P1.1
           NOP
           NOP
           NOP
           NOP
           MOV     40H,4CH
           MOV     41H,4DH
           MOV     42H,4EH
           MOV     43H,4FH
           LCALL   W24C02
           MOV     3CH,4CH
           MOV     3DH,4DH
           MOV     3EH,4EH
           MOV     3FH,4FH
           POP     DPL
           POP     DPH
           POP     PSW
           LJMP    TSF0

 BJ:       MOV  4CH,3CH
           MOV  4DH,3DH
           MOV  4EH,3EH
           MOV  4FH,3FH
           LJMP ADDMB
 ADDMB:	   MOV	R0,#4FH
	   MOV	R1,#52H
 ADDMBB:   CLR	C
 ADDL:	   MOV	A,@R0
	   ADDC	A,R1
	   MOV	@R0,A
	   DEC	R0
	   MOV  R1,#09H
           MOV  A,@R0
           ADDC A,R1
           MOV  @R0,A
           DEC  R0
           MOV  R1,#00H
           MOV  A,@R0
           ADDC A,R1
           MOV  @R0,A
           DEC  R0
           MOV  R1,#00H
           MOV  A,@R0
           ADDC A,R1
           MOV  @R0,A
	   CLR      P1.2
           NOP
           NOP
           SETB     P1.2
           NOP
           NOP
           CLR      P1.2

           CLR      P1.0
           CLR      P1.1
           NOP
           MOV      P2,#01H              ;W0
           NOP
           SETB     P1.0
           NOP
           NOP
           CLR      P1.0

           NOP
           NOP
           MOV      A,4CH                ;W1
           MOV      P2,A
           NOP
           SETB     P1.0
           NOP
           NOP
           CLR      P1.0


           NOP
           NOP
           MOV      A,4DH                ;W2
           MOV      P2,A
           NOP
           SETB     P1.0
           NOP
           NOP
           CLR      P1.0

           NOP
           NOP
           MOV      A,4EH                ;W3
           MOV      P2,A
           NOP
           SETB     P1.0
           NOP
           NOP
           CLR      P1.0

           NOP
           NOP
           MOV      A,4FH                ;W4
           MOV      P2,A
           NOP
           SETB     P1.0
           NOP
           NOP

           CLR      P1.0
           NOP
           NOP
           SETB     P1.1
           NOP
           NOP
           NOP
           NOP
           CLR      P1.1
           NOP
           NOP
           NOP
           NOP
           MOV     40H,4CH
           MOV     41H,4DH
           MOV     42H,4EH
           MOV     43H,4FH
           LCALL   W24C02
           MOV     3CH,4CH
           MOV     3DH,4DH
           MOV     3EH,4EH
           MOV     3FH,4FH
           LJMP    TSF0


 DJ:       MOV  4CH,3CH
           MOV  4DH,3DH
           MOV  4EH,3EH
           MOV  4FH,3FH
           LJMP SUBMMB
 SUBMMB:   MOV	R0,#4FH
	   MOV	R1,#52H
 SUBMMBB:  CLR	C
 SUBMMB1:  MOV	A,@R0
	   SUBB	A,R1
	   MOV	@R0,A
	   DEC	R0
	   MOV  R1,#09H
           MOV  A,@R0
           SUBB A,R1
           MOV  @R0,A
           DEC	R0
	   MOV  R1,#00H
           MOV  A,@R0
           SUBB A,R1
           MOV  @R0,A
           DEC	R0
	   MOV  R1,#00H
           MOV  A,@R0
           SUBB A,R1
           MOV  @R0,A
           CLR      P1.2
           NOP
           NOP
           SETB     P1.2
           NOP
           NOP
           CLR      P1.2

           CLR      P1.0
           CLR      P1.1
           NOP
           MOV      P2,#01H              ;W0
           NOP
           SETB     P1.0
           NOP
           NOP
           CLR      P1.0

           NOP
           NOP
           MOV      A,4CH                ;W1
           MOV      P2,A
           NOP
           SETB     P1.0
           NOP
           NOP
           CLR      P1.0


           NOP
           NOP
           MOV      A,4DH                ;W2
           MOV      P2,A
           NOP
           SETB     P1.0
           NOP
           NOP
           CLR      P1.0

           NOP
           NOP
           MOV      A,4EH                ;W3
           MOV      P2,A
           NOP
           SETB     P1.0
           NOP
           NOP
           CLR      P1.0

           NOP
           NOP
           MOV      A,4FH                ;W4
           MOV      P2,A
           NOP
           SETB     P1.0
           NOP
           NOP
           CLR      P1.0

           NOP
           NOP
           SETB     P1.1
           NOP
           NOP
           NOP
           NOP
           CLR      P1.1
           NOP
           NOP
           NOP
           NOP
           MOV     40H,4CH
           MOV     41H,4DH
           MOV     42H,4EH
           MOV     43H,4FH
           LCALL   W24C02
           MOV     3CH,4CH
           MOV     3DH,4DH
           MOV     3EH,4EH
           MOV     3FH,4FH
	   LJMP TSF0

;幅度调节
FDTJ:      PUSH   PSW
           PUSH   DPH
           PUSH   DPL
           MOV    R1,   #0F0H
SZDWQJ1:   CLR    P1.5             ;数字电位器减子程序
           NOP                     ;使用单片机P1.6作INC输入,P1.5作U/D输入
           SETB   P1.6
           NOP
           CLR    P1.6
           NOP
TT:        DJNZ   R1,   SZDWQJ1
           MOV   R0,#20H
           MOV   R7,#64
           CLR   A
LOOPTU:    MOV   @R0,A
           INC   R0
           DJNZ  R7,LOOPTU
           MOV    COMXSTART,#0B8H
           MOV    COMXEND,  #0BFH
           MOV    COMYSTART,#40H
           MOV    COMYEND,  #7FH
           LCALL  CLEAR1

           MOV    DPTR,#TABF5
           MOV    COMXSTART,#0B8H
           MOV    COMYSTART,#40H   ;幅
           MOV    COMXEND,#0B9H
           MOV    COMYEND,#4FH
           MOV    JCS1CS2,#00H
           LCALL  DISP
           MOV    DPTR,#TABF6
           MOV    COMXSTART,#0B8H
           MOV    COMYSTART,#50H   ;度
           MOV    COMXEND,#0B9H
           MOV    COMYEND,#5FH
           MOV    JCS1CS2,#00H
           LCALL  DISP
           MOV    DPTR,#TABF2
           MOV    COMXSTART,#0B8H
           MOV    COMYSTART,#60H   ;:
           MOV    COMXEND,#0B9H
           MOV    COMYEND,#6FH
           MOV    JCS1CS2,#00H
           LCALL  DISP
           MOV    R6,#00H
           MOV    R5,#40H
           MOV    R4,#00H          ;计算输入数的个数
           MOV    R0,#50H
LOOOPE3:   LCALL  KEY
           MOV    KEYZHI,A
           MOV    A,4EH            ;判是否有键按下
           CJNE   A,#00H,LOOOPE3
           MOV    A,KEYZHI
           CJNE   A,#0EH,KUE3
           LJMP   YYE3

KUE3:      MOV    @R0,KEYZHI
           LCALL  FINDTAB
           MOV    COMXSTART,#0BAH
           MOV    COMXEND,#0BBH
           MOV    COMYSTART,R5
           MOV    A,#0FH
           ADD    A,R5
           MOV    COMYEND,A
           MOV    JCS1CS2,R6
           LCALL  DISP
           MOV    A,R5
           ADD    A,#10H
           MOV    R5,A
           INC    R0
           INC    R4
           MOV    A,R4
           CJNE   A,#04H,RRRE3
           MOV    R6,#01H
           MOV    R5,#40H
RRRE3:     LJMP   LOOOPE3
YYE3:      MOV    A,R4
           CJNE   A,#00H,KS3
           LJMP   TSF0

KS3:       MOV     DPTR,#TABF7       ;M
           MOV     COMXSTART,#0BCH
           MOV     COMYSTART,#40H
           MOV     COMXEND,#0BDH
           MOV     COMYEND,#4FH
           MOV     JCS1CS2,#00H
           LCALL   DISP
           MOV     DPTR,#TABF8       ;V
           MOV     COMXSTART,#0BCH
           MOV     COMXEND,#0BDH
           MOV     COMYSTART,#50H
           MOV     COMYEND,#5FH
           MOV     JCS1CS2,#00H
           LCALL   DISP
           MOV     A,R4
ZZ3:       CJNE    A,#01H,ZL3
           DEC     50H
           LJMP    ZS3
ZL3:       CJNE    A,#02H,ZM3
           DEC     50H
           DEC     51H
           MOV     R1,50H
           MOV     50H,51H
           MOV     51H,R1
           LJMP    ZS3
ZM3:       CJNE    A,#03H,ZN3
           DEC     52H
           DEC     51H
           DEC     50H
           MOV     R1,50H
           MOV     50H,52H
           MOV     52H,R1
           LJMP    ZS3
ZN3:       CJNE    A,#04H,ZO3
           DEC     53H
           DEC     52H
           DEC     51H
           DEC     50H
           MOV     R1,50H
           MOV     R2,51H
           MOV     50H,53H
           MOV     51H,52H
           MOV     52H,R2
           MOV     53H,R1
           LJMP    ZS3
ZO3:       CJNE    A,#05H,$
           DEC     54H
           DEC     53H
           DEC     52H
           DEC     51H
           DEC     50H
           MOV     R1,50H
           MOV     R2,51H
           MOV     50H,54H
           MOV     51H,53H
           MOV     53H,R2
           MOV     54H,R1
           LJMP    ZS3
ZS3:       MOV     R0,#50H
           MOV     R1,#4FH
           LCALL   BCDHEX
           MOV     4CH,      5CH   ;高位不用置零
           MOV     4DH,      5DH
           MOV     4EH,      5EH
           MOV     4FH,      5FH
           MOV     5CH,      #00H
           MOV     5DH,      #00H  ;置数值先送入4D~4F单元
           MOV     5EH,      #00H
           MOV     5FH,      #64H
           LCALL   MULNM
           MOV     4AH,5AH
           MOV     4BH,5BH
           MOV     4CH,5CH
           MOV     4DH,5DH
           MOV     4EH,5EH
           MOV     4FH,5FH

           MOV     5AH,#00H
           MOV     5BH,#00H
           MOV     5CH,#00H
           MOV     5DH,#00H
           MOV     5EH,#13H
           MOV     5FH,#88H
           LCALL   DIVD2
           MOV     R2, 4FH
           NOP
SZDWQJ:    SETB    P1.5            ;数字电位器加子程序
           NOP                     ;使用单片机P1.6作INC输入,P1.5作U/D输入
           SETB    P1.6
           NOP
           CLR     P1.6
           NOP
           LJMP    TL
TL:        DJNZ    R2, SZDWQJ
           POP     DPL
           POP     DPH
           POP     PSW
           LJMP    TSF0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -