📄 text1.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 + -