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

📄 text1.asm

📁 波形发生器
💻 ASM
字号:
     TLC_CLK EQU P2.3
     TLC_DATA EQU P2.0
     TLC_LOAD EQU P2.1
     TLC_LDAC EQU P2.2
          ORG 0000H
          AJMP 0100H
          ORG 0100H
          ACALL INIT
MAIN:     ACALL TRIANGLE
          ACALL SQUARE
	  ACALL SINE
	  SJMP MAIN
;初始化
INIT:     CLR TLC_CLK
          SETB TLC_DATA
          SETB TLC_LOAD
          SETB TLC_LDAC
	  MOV 30H,#00H   ;锯齿波变量
	  MOV 31H,#40H   ;方波变量
	  MOV 32H,#40H   ;同上
	  MOV R4,#00H    ;正弦波变量
	  MOV R5,#00H    ;正弦值变量
          RET
;输出函数
SETOUTPUT:MOV 35H,A
          MOV A,R3       ;R3放ch
          RL A
          ORL A,#01H
          MOV R2,#04H
LOOP0:    DJNZ R2,LOOP1
          SJMP LOOP2
LOOP1:    JB ACC.2,K1
          CLR TLC_DATA
          SJMP NEXT
K1:       SETB TLC_DATA
NEXT:     SETB TLC_CLK
          RL A
          CLR TLC_CLK
          SJMP LOOP0
LOOP2:    MOV A,R0
          MOV R2,#09H
LOOP3:    DJNZ R2,LOOP4
          SJMP LOOP5
LOOP4:    JB ACC.7,K2
          CLR TLC_DATA
          SJMP NEXT1
K2:       SETB TLC_DATA
NEXT1:    SETB TLC_CLK
          RL A
          CLR TLC_CLK
          SJMP LOOP3
LOOP5:    CLR TLC_LOAD
          NOP
          NOP
          SETB TLC_LOAD
          NOP
          NOP
          CLR TLC_LDAC
          NOP
          NOP
          SETB TLC_LDAC
	  MOV A,35H
          RET
;锯齿波
TRIANGLE: MOV R3,#00H
	  MOV R0,30H
	  ACALL SETOUTPUT
	  INC 30H
	  RET
;方波
SQUARE:   MOV R3,#01H
	  DJNZ 31H,SQ_NE
	  DJNZ 32H,SQ_NE1
	  MOV 31H,#40H
	  MOV 32H,#40H
	  SJMP SQ_NE
SQ_NE1:   MOV 31H,#01H
	  MOV R0,#00H
	  ACALL SETOUTPUT
	  RET
SQ_NE:    MOV R0,#99H
          ACALL SETOUTPUT
	  RET
;正弦波
SINE:     CJNE R4,#00H,S_1
	  SJMP SINE1_4
S_1:	  CJNE R4,#01H,S_2
	  SJMP SINE2_4
S_2:	  CJNE R4,#01H,S_3
	  SJMP SINE3_4
S_3:	  SJMP SINE4_4
;1/4周期波形
SINE1_4:  MOV R3,#02H
          CJNE R5,#0B4H,NE1_4
	  MOV R4,#01H
	  RET
NE1_4:    MOV A,R5
	  MOV DPTR ,#TAB
	  MOVC A,@A+DPTR
	  MOV R0,A
          ACALL SETOUTPUT
	  INC R5
	  RET
;2/4周期波形
SINE2_4:  MOV R3,#02H
	  DEC R5
	  CJNE R5,#00H,NE2_4
	  MOV R4,#02H
NE2_4:    MOV A,R5
	  MOV DPTR ,#TAB
	  MOVC A,@A+DPTR
	  MOV R0,A
	  ACALL SETOUTPUT
	  RET
;3/4周期波形
SINE3_4:  MOV R3,#03H
          CJNE R5,#0B4H,NE3_4
	  MOV R4,#03H
	  RET
NE3_4:    MOV A,R5
	  MOV DPTR ,#TAB
	  MOVC A,@A+DPTR
	  MOV R0,A
          ACALL SETOUTPUT
	  INC R5
	  RET
;4/4周期波形
SINE4_4:  MOV R3,#03H
	  DEC R5
	  CJNE R5,#00H,NE4_4
	  MOV R4,#00H
NE4_4:    MOV A,R5
	  MOV DPTR ,#TAB
	  MOVC A,@A+DPTR
	  MOV R0,A
	  ACALL SETOUTPUT
	  RET
TAB:DB 0H,4H,6H,9H,0BH,0DH,0FH,11H,14H,16H
    DB 18H,1AH,1CH,1FH,21H,23H,25H,28H,2AH,2CH
    DB 2EH,30H,33H,35H,37H,39H,3BH,3DH,40H,42H
    DB 44H,46H,48H,4AH,4CH,4FH,51H,53H,55H,57H
    DB 59H,5BH,5DH,5FH,61H,64H,66H,68H,6AH,6CH
    DB 6EH,70H,72H,74H,76H,78H,7AH,7CH,7EH,80H
    DB 81H,83H,85H,87H,89H,8BH,8DH,8FH,90H,92H
    DB 94H,96H,98H,9AH,9BH,9DH,9FH,0A1H,0A2H,0A4H
    DB 0A6H,0A7H,0A9H,0ABH,0ACH,0AEH,0B0H,0B1H,0B3H,0B5H
    DB 0B6H,0B8H,0B9H,0BBH,0BCH,0BEH,0BFH,0C1H,0C2H,0C4H
    DB 0C5H,0C6H,0C8H,0C9H,0CBH,0CCH,0CDH,0CFH,0D0H,0D1H
    DB 0D2H,0D4H,0D5H,0D6H,0D7H,0D9H,0DAH,0DBH,0DCH,0DDH
    DB 0DEH,0DFH,0E0H,0E2H,0E3H,0E4H,0E5H,0E6H,0E7H,0E8H
    DB 0E8H,0E9H,0EAH,0EBH,0ECH,0EDH,0EEH,0EEH,0EFH,0F0H
    DB 0F1H,0F1H,0F1H,0F3H,0F3H,0F4H,0F5H,0F6H,0F6H,0F7H
    DB 0F7H,0F8H,0F8H,0F9H,0F9H,0FAH,0FAH,0FAH,0FBH,0FBH
    DB 0FCH,0FCH,0FCH,0FDH,0FDH,0FDH,0FDH,0FEH,0FEH,0FEH
    DB 0FEH,0FEH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
    END

⌨️ 快捷键说明

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