📄 text1.asm
字号:
D BIT P3.1
MAIN:
ACALL WHITE_ON
ACALL RED_ON
ACALL GREEN_ON
ACALL BLUE_ON
ACALL RED1_ON
ACALL RED2_ON
ACALL RED3_ON
AJMP MAIN
/*****************************/ ;数据帧开始
START:
MOV R6,#0
SETB D
NOP
NOP
CLR D
ACALL DELAY_88USEC
SETB D
ACALL DELAY_8USEC
CLR D
ACALL DELAY_36US
SETB D
ACALL DELAY_8USEC
RET
/*******************红**********/
/****************************************/
RED_ON:
ACALL START
MOV R6,#10
RLED_N:
ACALL ON
ACALL OFF
ACALL OFF
DJNZ R6,RLED_N
ACALL DELAY
RET
GREEN_ON:
ACALL START
MOV R6,#170
GLED_N:
ACALL OFF
ACALL ON
ACALL OFF
DJNZ R6,GLED_N
ACALL DELAY
RET
BLUE_ON:
ACALL START
MOV R6,#170
BLED_N:
ACALL OFF
ACALL OFF
ACALL ON
DJNZ R6,BLED_N
ACALL DELAY
RET
RED1_ON:
ACALL START
MOV R6,#10
RLED1_N:
ACALL ON
ACALL ON
ACALL OFF
DJNZ R6,RLED1_N
ACALL DELAY
RET
RED2_ON:
ACALL START
MOV R6,#10
RLED2_N:
ACALL ON
ACALL OFF
ACALL ON
DJNZ R6,RLED2_N
ACALL DELAY
RET
RED3_ON:
ACALL START
MOV R6,#10
RLED3_N:
ACALL ON
ACALL OFF
ACALL OFF
DJNZ R6,RLED3_N
ACALL DELAY
RET
WHITE_ON:
ACALL START
MOV R6,#170
WHITE_N:
ACALL ON
ACALL ON
ACALL ON
DJNZ R6,WHITE_N
ACALL DELAY
RET
/******************************/
OFF:
CLR D
ACALL DELAY_36US
SETB D
ACALL DELAY_8USEC
RET
ON:
CLR D
ACALL DELAY_4US
SETB D
ACALL DELAY_36US
ACALL DELAY_4US
RET
/********************************************/
DELAY:
MOV R3,#255
OK:
MOV R0,#255
ACALL DELAY_10MS
DJNZ R0,$
DJNZ R3,OK
RET
DELAY_10MS:
MOV R2,#150
OK1:
MOV R1,#250
DJNZ R1,$
DJNZ R2,OK1
RET
DELAY_88USEC:
MOV R0,#5
D1:
MOV R1,#180
DJNZ R1,$
DJNZ R0,D1
RET
DELAY_8USEC:
MOV R2,#72
DJNZ R2,$
RET
DELAY_4US:
MOV R3,#25 ;2时钟周期
A250K:
NOP
DJNZ R3,A250K ;1+4时钟周期循环R3次
RET
DELAY_36US:
MOV R4,#143 ;2时钟周期
B250K:
NOP
NOP
NOP
NOP
DJNZ R4,B250K ;4+4时钟周期循环R4次
NOP
RET
DELAY_41US:
MOV R3,#24 ;2时钟周期
C250K:
NOP
DJNZ R3,C250K ;1+4时钟周期循环R5次
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -