|
; STC15W4K32S4單片機(jī),采用SOP28封裝
;采用內(nèi)部時鐘,工作頻率24MHz用2平40點(diǎn)原點(diǎn)發(fā)送5位8路
; DSEG AT 30H
D_OUT EQU P1 ;LED控制數(shù)據(jù)輸出
;D_OUT EQU P3 ;LED控制數(shù)據(jù)輸出
LED_ZC3 EQU 30H ;燈板數(shù)
LED_ZC4 EQU 31H ;顏色組數(shù)
LED_ZC5 EQU 32H ;每塊板數(shù)組 紅,綠,藍(lán)三基色
LED_ZC6 EQU 33H ;單色數(shù)據(jù)位數(shù)
LEDR0 EQU 34H
LEDR1 EQU 35H
LEDR2 EQU 36H
LEDR3 EQU 37H
LEDR4 EQU 38H
LEDR5 EQU 39H
LEDR6 EQU 3AH
LEDR7 EQU 3BH
LEDR8 EQU 3CH
LEDR9 EQU 3DH
P1M1 EQU 91H
P1M0 EQU 92H
P2M1 EQU 95H
P2M0 EQU 96H
ORG 0000H
LJMP MAINA
ORG 0040H
MAINA: MOV SP,#60H
MOV P1M0,#0FFH ;定義端口很重要
MOV P1M1,#00H
MAINB: LCALL CSHH
LCALL CSYH
LCALL CSBH
LCALL LEDLHA
LCALL LEDLH
lcall qqlha
LCALL QQLH ;示例禮花
LCALL LEDR60 ;紅色60燈組
LCALL LEDG60 ;綠色60燈組
LCALL LEDB60 ;藍(lán)色60燈組
; ; LCALL LHR ;禮花
LCALL XZ
LCALL TAIJI ;太極
LCALL SX
LCALL JGB
LJMP MAINB
;=======================================
;-------------花環(huán)----------------------
;=======================================
CSHH: MOV LEDR3,#10
CSHH_F: MOV LEDR2,#07
CSHH_D: MOV LEDR1,#10
CSHH_B: LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
lcall colour
lcall colour
MOV LEDR0,#15
CSHH_1: LCALL LEDBLACK
DJNZ LEDR0,CSHH_1
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
lcall colour
lcall colour
MOV LEDR0,#15
CSHH_2: LCALL LEDBLACK
DJNZ LEDR0,CSHH_2
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
lcall colour
lcall colour
MOV LEDR0,#15
CSHH_3: LCALL LEDBLACK
DJNZ LEDR0,CSHH_3
LCALL YSA
;-------------
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
lcall colour
lcall colour
MOV LEDR0,#15
CSHH_4: LCALL LEDBLACK
DJNZ LEDR0,CSHH_4
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
lcall colour
lcall colour
MOV LEDR0,#15
CSHH_5: LCALL LEDBLACK
DJNZ LEDR0,CSHH_5
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
lcall colour
lcall colour
MOV LEDR0,#10
CSHH_6: LCALL LEDBLACK
DJNZ LEDR0,CSHH_6
LCALL YSA
;------------
MOV LEDR0,#10
CSHH_7: LCALL LEDBLACK
DJNZ LEDR0,CSHH_7
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
lcall colour
lcall colour
MOV LEDR0,#15
CSHH_8: LCALL LEDBLACK
DJNZ LEDR0,CSHH_8
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
lcall colour
lcall colour
MOV LEDR0,#15
CSHH_9: LCALL LEDBLACK
DJNZ LEDR0,CSHH_9
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
lcall colour
lcall colour
MOV LEDR0,#1
CSHH_10: LCALL LEDBLACK
DJNZ LEDR0,CSHH_10
LCALL YSA
;------------
MOV LEDR0,#15
CSHH_11: LCALL LEDBLACK
DJNZ LEDR0,CSHH_11
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
lcall colour
lcall colour
MOV LEDR0,#15
CSHH_12: LCALL LEDBLACK
DJNZ LEDR0,CSHH_12
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
lcall colour
lcall colour
MOV LEDR0,#15
CSHH_13: LCALL LEDBLACK
DJNZ LEDR0,CSHH_13
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
lcall colour
lcall colour
LCALL YSA
DJNZ LEDR1,CSHH_A
DJNZ LEDR2,CSHH_C
DJNZ LEDR3,CSHH_E
RET
CSHH_A: LJMP CSHH_B
CSHH_C: LJMP CSHH_D
CSHH_E: LJMP CSHH_F
;=======================================
;-------------彩色園環(huán)------------------
;=======================================
CSYH: MOV LEDR1,#10
CSYH_A: MOV LEDR0,#12
CSYH_1: LCALL LEDR
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDRG
DJNZ LEDR0,CSYH_1
LCALL YSB
MOV LEDR0,#12
CSYH_2: LCALL LEDG
LCALL LEDR
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDRG
DJNZ LEDR0,CSYH_2
LCALL YSB
MOV LEDR0,#12
CSYH_3: LCALL LEDB
LCALL LEDG
LCALL LEDR
LCALL LEDBLACK
LCALL LEDRG
DJNZ LEDR0,CSYH_3
LCALL YSB
MOV LEDR0,#12
CSYH_4: LCALL LEDRB
LCALL LEDB
LCALL LEDG
LCALL LEDR
LCALL LEDRG
DJNZ LEDR0,CSYH_4
LCALL YSB
MOV LEDR0,#12
CSYH_5: LCALL LEDBLACK
LCALL LEDRB
LCALL LEDB
LCALL LEDG
LCALL LEDRG
DJNZ LEDR0,CSYH_5
LCALL YSB
MOV LEDR0,#12
CSYH_6: LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDRB
LCALL LEDB
LCALL LEDRB
DJNZ LEDR0,CSYH_6
LCALL YSB
MOV LEDR0,#12
CSYH_7: LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDRB
LCALL LEDRG
DJNZ LEDR0,CSYH_7
LCALL YSB
MOV LEDR0,#12
CSYH_8: LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDRG
DJNZ LEDR0,CSYH_8
LCALL YSB
MOV LEDR0,#12
CSYH_11: LCALL LEDR
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDRB
DJNZ LEDR0,CSYH_11
LCALL YSB
MOV LEDR0,#12
CSYH_12: LCALL LEDG
LCALL LEDR
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDRB
DJNZ LEDR0,CSYH_12
LCALL YSB
MOV LEDR0,#12
CSYH_13: LCALL LEDB
LCALL LEDG
LCALL LEDR
LCALL LEDBLACK
LCALL LEDRB
DJNZ LEDR0,CSYH_13
LCALL YSB
MOV LEDR0,#12
CSYH_14: LCALL LEDRG
LCALL LEDB
LCALL LEDG
LCALL LEDR
LCALL LEDRB
DJNZ LEDR0,CSYH_14
LCALL YSB
MOV LEDR0,#12
CSYH_15: LCALL LEDBLACK
LCALL LEDRG
LCALL LEDB
LCALL LEDG
LCALL LEDRB
DJNZ LEDR0,CSYH_15
LCALL YSB
MOV LEDR0,#12
CSYH_16: LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDRG
LCALL LEDB
LCALL LEDRB
DJNZ LEDR0,CSYH_16
LCALL YSB
MOV LEDR0,#12
CSYH_17: LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDRG
LCALL LEDRB
DJNZ LEDR0,CSYH_17
LCALL YSB
MOV LEDR0,#12
CSYH_18: LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDRB
DJNZ LEDR0,CSYH_18
LCALL YSB
MOV LEDR0,#12
CSYH_21: LCALL LEDR
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDRGB
DJNZ LEDR0,CSYH_21
LCALL YSB
MOV LEDR0,#12
CSYH_22: LCALL LEDG
LCALL LEDR
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDRGB
DJNZ LEDR0,CSYH_22
LCALL YSB
MOV LEDR0,#12
CSYH_23: LCALL LEDB
LCALL LEDG
LCALL LEDR
LCALL LEDBLACK
LCALL LEDRGB
DJNZ LEDR0,CSYH_23
LCALL YSB
MOV LEDR0,#12
CSYH_24: LCALL LEDRB
LCALL LEDB
LCALL LEDG
LCALL LEDR
LCALL LEDRGB
DJNZ LEDR0,CSYH_24
LCALL YSB
MOV LEDR0,#12
CSYH_25: LCALL LEDBLACK
LCALL LEDRB
LCALL LEDB
LCALL LEDG
LCALL LEDRGB
DJNZ LEDR0,CSYH_25
LCALL YSB
MOV LEDR0,#12
CSYH_26: LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDRB
LCALL LEDB
LCALL LEDRGB
DJNZ LEDR0,CSYH_26
LCALL YSB
MOV LEDR0,#12
CSYH_27: LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDRB
LCALL LEDRGB
DJNZ LEDR0,CSYH_27
LCALL YSB
MOV LEDR0,#12
CSYH_28: LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDRGB
DJNZ LEDR0,CSYH_28
LCALL YSB
MOV LEDR0,#12
DJNZ LEDR1,CSYH_B
RET
CSYH_B: LJMP CSYH_A
;=======================================
;--------------示例禮花---------------------
;=======================================
qqlh: MOV LEDR3,#10 ;七色重復(fù)次數(shù)
qqlhqq: mov ledr2,#7 ;顏色組紅,綠,藍(lán),黃,粉,青,白
qqlhq: MOV LEDR1,#10 ;單色重復(fù)次數(shù)
qqlhy: mov ledr0,#12 ;12組
qqlhy1: lcall colour ;顏色顯示1
lcall ledblack
lcall ledblack
lcall ledblack
lcall ledblack
djnz ledr0,qqlhy1
lcall ysa
mov ledr0,#12
qqlhe: lcall ledblack
lcall colour ;2
lcall ledblack
lcall ledblack
lcall ledblack
djnz ledr0,qqlhe
lcall ysa
mov ledr0,#12
qqlhs: lcall ledblack
lcall ledblack
lcall colour ;3
lcall ledblack
lcall ledblack
djnz ledr0,qqlhs
lcall ysa
mov ledr0,#12
qqlhss: lcall ledblack
lcall ledblack
lcall ledblack
lcall colour ;4
lcall ledblack
djnz ledr0,qqlhss
lcall ysa
mov ledr0,#12
qqlhw: lcall ledblack
lcall ledblack
lcall ledblack
lcall ledblack
lcall colour ;5
djnz ledr0,qqlhw
lcall ysa
djnz ledr1,QQLHQ0
DJNZ LEDR2,QQLHQ1
DJNZ LEDR3,QQLHQ2
ret
QQLHQ0: LJMP QQLHY
QQLHQ1: LJMP QQLHQ
QQLHQ2: LJMP QQLHQQ
;--------------------------------------
CSBH: MOV LEDR3,#10
CSBHA_4: MOV LEDR2,#08
CSBHA_2: MOV LEDR1,#01
CSBH_1: lcall CSBH1 ;顏色顯示1
DJNZ LEDR1,CSBH_1
MOV LEDR1,#11
CSBH_2: LCALL CSBH2
DJNZ LEDR1,CSBH_2
lcall ysb
MOV LEDR1,#02
CSBH_3: lcall CSBH1 ;顏色顯示1
DJNZ LEDR1,CSBH_3
MOV LEDR1,#10
CSBH_4: LCALL CSBH2
DJNZ LEDR1,CSBH_4
lcall ysb
MOV LEDR1,#03
CSBH_5: lcall CSBH1 ;顏色顯示1
DJNZ LEDR1,CSBH_5
MOV LEDR1,#9
CSBH_6: LCALL CSBH2
DJNZ LEDR1,CSBH_6
lcall ysb
MOV LEDR1,#04
CSBH_7: lcall CSBH1 ;顏色顯示1
DJNZ LEDR1,CSBH_7
MOV LEDR1,#8
CSBH_8: LCALL CSBH2
DJNZ LEDR1,CSBH_8
lcall ysb
MOV LEDR1,#05
CSBH_9: lcall CSBH1 ;顏色顯示1
DJNZ LEDR1,CSBH_9
MOV LEDR1,#7
CSBH_A: LCALL CSBH2
DJNZ LEDR1,CSBH_A
lcall ysb
MOV LEDR1,#06
CSBH_B: lcall CSBH1 ;顏色顯示1
DJNZ LEDR1,CSBH_B
MOV LEDR1,#6
CSBH_C: LCALL CSBH2
DJNZ LEDR1,CSBH_C
lcall ysb
MOV LEDR1,#07
CSBH_D: lcall CSBH1 ;顏色顯示1
DJNZ LEDR1,CSBH_D
MOV LEDR1,#05
CSBH_E: LCALL CSBH2
DJNZ LEDR1,CSBH_E
lcall ysb
MOV LEDR1,#08
CSBH_F: lcall CSBH1 ;顏色顯示1
DJNZ LEDR1,CSBH_F
MOV LEDR1,#04
CSBH_G: LCALL CSBH2
DJNZ LEDR1,CSBH_G
lcall ysb
MOV LEDR1,#09
CSBH_H: lcall CSBH1 ;顏色顯示1
DJNZ LEDR1,CSBH_H
MOV LEDR1,#03
CSBH_I: LCALL CSBH2
DJNZ LEDR1,CSBH_I
lcall ysb
MOV LEDR1,#10
CSBH_J: lcall CSBH1 ;顏色顯示1
DJNZ LEDR1,CSBH_J
MOV LEDR1,#02
CSBH_K: LCALL CSBH2
DJNZ LEDR1,CSBH_K
lcall ysb
MOV LEDR1,#11
CSBH_L: lcall CSBH1 ;顏色顯示1
DJNZ LEDR1,CSBH_L
MOV LEDR1,#1
CSBH_N: LCALL CSBH2
DJNZ LEDR1,CSBH_N
lcall ysb
lcall ysb
lcall ysb
lcall ysb
lcall ysb
lcall ysb
; MOV LEDR1,#12
;CSBH_M: lcall CSBH1 ;顏色顯示1
; lcall ysb
; DJNZ LEDR1,CSBH_M
DJNZ LEDR2,CSBHA_1
MOV LEDR2,#08
DJNZ LEDR3,CSBHA_1
RET
CSBHA_1: LJMP CSBHA_2
CSBHA_3: LJMP CSBHA_4
;-------------
CSBH1: MOV LEDR0,#05
MOV A,LEDR2
PUSH ACC
DEC A
JNZ CSBH1_2
MOV A,#08
CSBH1_2: MOV LEDR2,A
CSBH1_1: lcall colour ;顏色顯示1
DJNZ LEDR0,CSBH1_1
POP ACC
MOV LEDR2,A
RET
CSBH2: MOV LEDR0,#05
CSBH2_1: lcall colour
DJNZ LEDR0,CSBH2_1
RET
;-------------七彩禮花------------------
qqlha: MOV LEDR3,#3 ;七色重復(fù)次數(shù)
mov ledr2,#7 ;顏色組紅,綠,藍(lán),黃,粉,青,白
qqlhqa: MOV LEDR1,#10 ;單色重復(fù)次數(shù)
qqlhya: mov ledr0,#12 ;12組
LCALL LED_LH ;顏色組紅,綠,藍(lán),黃,粉,青,白
qqlhy1a: lcall colour ;顏色顯示1
lcall ledblack
lcall ledblack
lcall ledblack
lcall ledblack
djnz ledr0,qqlhy1A
lcall ysa
mov ledr0,#12
LCALL LED_LH ;顏色組紅,綠,藍(lán),黃,粉,青,白
qqlheA: lcall ledblack
lcall colour ;2
lcall ledblack
lcall ledblack
lcall ledblack
djnz ledr0,qqlheA
lcall ysa
mov ledr0,#12
LCALL LED_LH ;顏色組紅,綠,藍(lán),黃,粉,青,白qqlhsA: lcall ledblack
qqlhsA: lcall ledblack
lcall ledblack
lcall colour ;3
lcall ledblack
lcall ledblack
djnz ledr0,qqlhsA
lcall ysa
mov ledr0,#12
LCALL LED_LH ;顏色組紅,綠,藍(lán),黃,粉,青,白qqlhssA: lcall ledblack
qqlhssA: lcall ledblack
lcall ledblack
lcall ledblack
lcall colour ;4
lcall ledblack
djnz ledr0,qqlhssA
lcall ysa
mov ledr0,#12
LCALL LED_LH ;顏色組紅,綠,藍(lán),黃,粉,青,白qqlhwA: lcall ledblack
qqlhwA: lcall ledblack
lcall ledblack
lcall ledblack
lcall ledblack
lcall colour ;5
djnz ledr0,qqlhwA
lcall ysa
djnz ledr1,QQLHQ0A
DJNZ LEDR3,QQLHQ2A
ret
QQLHQ0A: LJMP QQLHYA
QQLHQ2A: LJMP QQLHQA
;-------------
LED_LH: MOV A,LEDR2
DEC A
JZ LED_LHH
MOV LEDR2,A
RET
LED_LHH: MOV LEDR2,#07H
RET
;-------------根據(jù)顏色參數(shù)選擇-------------------
colour: MOV A,LEDR2
CJNE A,#08H,COLOUH
lcall ledblack ;黑
RET
COLOUH: CJNE A,#07H,COLOUG
lcall ledr ;紅
RET
coloug: CJNE A,#06H,COLOUB
lcall ledg ;綠
RET
coloub: CJNE A,#05H,COLOURG
lcall ledb ;藍(lán)
RET
colourg: CJNE A,#04H,COLOURB
lcall ledrg ;黃
RET
colourb: CJNE A,#03H,COLOUGB
lcall ledrb ;粉紅
RET
colougb: CJNE A,#02H,COLOURGB
lcall ledgb ;青
ret
colourgb: CJNE A,#01H,COLOURET
lcall ledrgb ;白
COLOURET: ret
;--------------------------------------------------
ledlh: mov ledr1,#30
mov ledr0,#12
led_lh1: lcall ledr
lcall ledblack
lcall ledblack
lcall ledblack
lcall ledblack
djnz ledr0,led_lh1
lcall ysb
mov ledr0,#12
led_lh2: lcall ledg
lcall ledr
lcall ledblack
lcall ledblack
lcall ledblack
djnz ledr0,led_lh2
lcall ysb
mov ledr0,#12
led_lh3: lcall ledb
lcall ledg
lcall ledr
lcall ledblack
lcall ledblack
djnz ledr0,led_lh3
lcall ysb
mov ledr0,#12
led_lh4: lcall ledrg
lcall ledb
lcall ledg
lcall ledr
lcall ledblack
djnz ledr0,led_lh4
lcall ysb
led_lhe: mov ledr0,#12
led_lh5: lcall ledrb
lcall ledrg
lcall ledb
lcall ledg
lcall ledr
djnz ledr0,led_lh5
lcall ysb
mov ledr0,#12
led_lh6: lcall ledgb
lcall ledrb
lcall ledrg
lcall ledb
lcall ledg
djnz ledr0,led_lh6
lcall ysb
mov ledr0,#12
led_lh7: lcall ledrgb
lcall ledgb
lcall ledrb
lcall ledrg
lcall ledb
djnz ledr0,led_lh7
lcall ysb
mov ledr0,#12
led_lh8: lcall ledr
lcall ledrgb
lcall ledgb
lcall ledrb
lcall ledrg
djnz ledr0,led_lh8
lcall ysb
mov ledr0,#12
led_lh9: lcall ledg
lcall ledr
lcall ledrgb
lcall ledgb
lcall ledrb
djnz ledr0,led_lh9
lcall ysb
mov ledr0,#12
led_lha: lcall ledb
lcall ledg
lcall ledr
lcall ledrgb
lcall ledgb
djnz ledr0,led_lha
lcall ysb
mov ledr0,#12
led_lhb: lcall ledrg
lcall ledb
lcall ledg
lcall ledr
lcall ledrgb
djnz ledr0,led_lhb
lcall ysb
djnz ledr1,led_lhd
ret
led_lhd: ljmp led_lhe
;--------------------------------------------------
ledlha: mov ledr3,#30
led_lha7: mov ledr2,#7
led_lha6: mov ledr0,#12
led_lha1: lcall colour
lcall ledblack
lcall ledblack
lcall ledblack
lcall ledblack
djnz ledr0,led_lha1
lcall ysb
mov ledr0,#12
led_lha2: lcall colour
lcall colour
lcall ledblack
lcall ledblack
lcall ledblack
djnz ledr0,led_lha2
lcall ysb
mov ledr0,#12
led_lha3: lcall colour
lcall colour
lcall colour
lcall ledblack
lcall ledblack
djnz ledr0,led_lha3
lcall ysb
mov ledr0,#12
led_lha4: lcall colour
lcall colour
lcall colour
lcall colour
lcall ledblack
djnz ledr0,led_lha4
lcall ysb
mov ledr0,#12
led_lha5: lcall colour
lcall colour
lcall colour
lcall colour
lcall colour
djnz ledr0,led_lha5
lcall ysb
djnz ledr2,led_lha6
djnz ledr3,led_lh7a
ret
led_lh7a: ljmp led_lha7
;==================================================
;---------------60塊2811顯示,----------------------
;==================================================
LEDR60: MOV R0,#60 ;起始不點(diǎn)亮數(shù)60-N=59
MOV R1,#01H ;起始點(diǎn)亮數(shù)N=1更改此數(shù)據(jù)可以每次點(diǎn)亮多個燈板
MOV R3,#00H
LEDR60_3: CLR C ;但必須能被60整除
MOV A,R0
SUBB A,R1
MOV R0,A
MOV R2,A
MOV A,R1
ADD A,R3
MOV R3,A
MOV R4,A
LEDR60_1: LCALL LEDR
DJNZ R4,LEDR60_1
LEDR60_2: LCALL LEDBLACK
DJNZ R2,LEDR60_2
LCALL YSA
MOV B,#00H
MOV A,R0
CJNE A,B,LEDR60_3
LCALL YS
RET
;-------------------------外面粉紅里面旋轉(zhuǎn)-------------
WFLZ: MOV LEDR0,#39
WFLZ0:
WFLZ01:
WFLZ02: LCALL WFLZ1
LCALL WFLZ11
LCALL WFLZ12
LCALL WFLZ13
LCALL WFLZ14
LCALL WFLZ14
RET
WFLZ1: LCALL LEDR
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDRB
RET
WFLZ11: LCALL LEDBLACK
LCALL LEDR
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDRB
RET
WFLZ12: LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDR
LCALL LEDBLACK
LCALL LEDRB
RET
WFLZ13: LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDR
LCALL LEDRB
RET
;--------COPY------
WFLZ14: LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDRB
RET
;---------------------禮花-------------------------------
LHR: MOV LEDR0,#12 ;禮花紅
LH1: LCALL ledBLACK ;第一燈位
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK ;第四燈位
LCALL LEDR ;第五燈位
DJNZ LEDR0,LH1 ;共十二組
LCALL YSA
MOV LEDR0,#12
LH2: LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
LCALL ledr
LCALL ledBLACK
DJNZ LEDR0,LH2
LCALL YSA
MOV LEDR0,#7
LH3:
LCALL ledBLACK
LCALL ledBLACK
LCALL ledr
LCALL ledBLACK
LCALL ledBLACK
DJNZ LEDR0,LH3
LCALL YSA
MOV LEDR0,#12
LH4:
LCALL ledBLACK
LCALL ledr
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
DJNZ LEDR0,LH4
LCALL YSA
MOV LEDR0,#12
LH5:
LCALL ledr
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
DJNZ LEDR0,LH5
LCALL YSA
LHB: MOV LEDR0,#12;蘭
LHB1:
LCALL ledB
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
DJNZ LEDR0,LHB1
LCALL YSA
MOV LEDR0,#12
LHB2:
LCALL ledBLACK
LCALL ledB
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
DJNZ LEDR0,LHB2
LCALL YSA
MOV LEDR0,#12
LHB3:
LCALL ledBLACK
LCALL ledBLACK
LCALL ledB
LCALL ledBLACK
LCALL ledBLACK
DJNZ LEDR0,LHB3
LCALL YSA
MOV LEDR0,#12
LHB4:
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
LCALL ledB
LCALL ledBLACK
DJNZ LEDR0,LHB4
LCALL YSA
MOV LEDR0,#12
LHB5:
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
LCALL ledB
DJNZ LEDR0,LHB5
LCALL YSA
LHG: MOV LEDR0,#121;綠
LHG1:
LCALL ledG
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
DJNZ LEDR0,LHG1
LCALL YSA
MOV LEDR0,#12
LHG2:
LCALL ledBLACK
LCALL ledG
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
DJNZ LEDR0,LHG2
LCALL YSA
MOV LEDR0,#12
LHG3:
LCALL ledBLACK
LCALL ledBLACK
LCALL ledG
LCALL ledBLACK
LCALL ledBLACK
DJNZ LEDR0,LHG3
LCALL YSA
MOV LEDR0,#12
LHG4:
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
LCALL ledG
LCALL ledBLACK
DJNZ LEDR0,LHG4
LCALL YSA
MOV LEDR0,#12
LHG5:
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
LCALL ledG
DJNZ LEDR0,LHG5
LCALL YSA
LHRB: MOV LEDR0,#12;粉
LHRB1:
LCALL ledRB
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
DJNZ LEDR0,LHRB1
LCALL YSA
MOV LEDR0,#12
LHRB2:
LCALL ledBLACK
LCALL ledG
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
DJNZ LEDR0,LHRB2
LCALL YSA
MOV LEDR0,#12
LHRB3:
LCALL ledBLACK
LCALL ledBLACK
LCALL ledG
LCALL ledBLACK
LCALL ledBLACK
DJNZ LEDR0,LHRB3
LCALL YSA
MOV LEDR0,#12
LHRB4:
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
LCALL ledG
LCALL ledBLACK
DJNZ LEDR0,LHRB4
LCALL YSA
MOV LEDR0,#12
LHRB5:
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
LCALL ledBLACK
LCALL ledG
DJNZ LEDR0,LHRB5
LCALL YSA
RET
;-----------------太極---------------------
TAIJI: MOV LEDR1,#20
TAIJIII:LCALL TJ00
LCALL TJ01
LCALL TJ02
LCALL TJ03
LCALL TJ04
LCALL TJ05
LCALL TJ06
LCALL TJ07
LCALL TJ08
LCALL TJ09
LCALL TJ010
LCALL TJ011
DJNZ LEDR1,TAIJIII
RET
TJ0: LCALL LEDB
LCALL LEDB
LCALL LEDB
LCALL LEDB
LCALL LEDRB
RET
TJ1: LCALL LEDB
LCALL LEDB
LCALL LEDB
LCALL LEDRB
LCALL LEDRB
RET
TJ2: LCALL LEDB
LCALL LEDB
LCALL LEDRB
LCALL LEDRB
LCALL LEDRB
RET
TJ3: LCALL LEDB
LCALL LEDRB
LCALL LEDRB
LCALL LEDRB
LCALL LEDRB
RET
TJ4: LCALL LEDRB
LCALL LEDRB
LCALL LEDRB
LCALL LEDRB
LCALL LEDRB
RET
RET
TJ5: LCALL LEDRB
LCALL LEDRB
LCALL LEDRB
LCALL LEDRB
LCALL LEDB
LCALL LEDB
RET
TJ6: LCALL LEDRB
LCALL LEDRB
LCALL LEDRB
LCALL LEDB
LCALL LEDB
RET
TJ7: LCALL LEDRB
LCALL LEDRB
LCALL LEDB
LCALL LEDB
LCALL LEDB
RET
TJ8: LCALL LEDRB
LCALL LEDB
LCALL LEDB
LCALL LEDB
LCALL LEDB
RET
TJ9: LCALL LEDB
LCALL LEDB
LCALL LEDB
LCALL LEDB
LCALL LEDB
RET
TAIJIX1: LCALL TJ0
LCALL TJ1
LCALL TJ2
LCALL TJ3
LCALL TJ4
LCALL TJ5
LCALL TJ6
LCALL TJ7
LCALL TJ8
LCALL TJ9
LCALL YSA
RET
TJ00: LCALL TAIJIX1
RET
TJ01: LCALL TJ9
LCALL TJ00
RET
TJ02: LCALL TJ9
LCALL TJ01
RET
TJ03: LCALL TJ8
LCALL TJ02
RET
TJ04: LCALL TJ7
LCALL TJ03
RET
TJ05: LCALL TJ6
LCALL TJ04
RET
TJ06: LCALL TJ5
LCALL TJ05
RET
TJ07: LCALL TJ4
LCALL TJ06
RET
TJ08: LCALL TJ4
LCALL TJ07
RET
TJ09: LCALL TJ3
LCALL TJ08
RET
TJ010: LCALL TJ2
LCALL TJ09
RET
TJ011: LCALL TJ1
LCALL TJ010
RET
;-----------------旋轉(zhuǎn)-------------
XZ: MOV LEDR1,#30
XZ99:LCALL XZ01
LCALL XZ02
LCALL XZ03
LCALL XZ04
LCALL XZ05
LCALL XZ06
LCALL YSA
DJNZ LEDR1,XZ99
RET
XZ01:LCALL XZ0
RET
XZ02:LCALL XZ6
LCALL XZ01
RET
XZ03:LCALL XZ5
LCALL XZ02
RET
XZ04:LCALL XZ4
LCALL XZ03
RET
XZ05:LCALL XZ3
LCALL XZ04
RET
XZ06:LCALL XZ2
LCALL XZ05
RET
XZ0: LCALL XZ1
LCALL XZ2
LCALL XZ3
LCALL XZ4
LCALL XZ5
LCALL XZ6
LCALL XZ1
LCALL XZ2
LCALL XZ3
LCALL XZ4
LCALL XZ5
LCALL XZ6
LCALL YSA
RET
XZ1: LCALL LEDB
LCALL LEDB
LCALL LEDB
LCALL LEDB
LCALL LEDRB
RET
XZ2: LCALL LEDB
LCALL LEDB
LCALL LEDB
LCALL LEDRB
LCALL LEDB
RET
XZ3: LCALL LEDB
LCALL LEDB
LCALL LEDRB
LCALL LEDB
LCALL LEDB
RET
XZ4: LCALL LEDB
LCALL LEDRB
LCALL LEDB
LCALL LEDB
LCALL LEDB
RET
XZ5: LCALL LEDRB
LCALL LEDB
LCALL LEDB
LCALL LEDB
LCALL LEDB
RET
XZ6: LCALL LEDB
LCALL LEDB
LCALL LEDB
LCALL LEDB
LCALL LEDB
RET
;================================================
;----------三旋------------------
;================================================
SX: MOV LEDR0,#30
SX0: LCALL SX02
LCALL SX03
LCALL SX04
LCALL SX05
LCALL SX06
LCALL SX07
LCALL SX08
LCALL SX09
LCALL SX010
LCALL SX011
LCALL SX012
LCALL SX013
LCALL YSA
DJNZ LEDR0,SX0
RET
;-------------
SX02: LCALL SX01
RET
;-------------
SX03: LCALL SX12
LCALL SX02
RET
;-------------
SX04: LCALL SX11
LCALL SX03
RET
;-------------
SX05: LCALL SX10
LCALL SX04
RET
;-------------
SX06: LCALL SX9
LCALL SX05
RET
;-------------
SX07: LCALL SX8
LCALL SX06
RET
;-------------
SX08: LCALL SX7
LCALL SX07
RET
;-------------
SX09: LCALL SX6
LCALL SX08
RET
;-------------
SX010: LCALL SX5
LCALL SX09
RET
;-------------
SX011: LCALL SX4
LCALL SX010
RET
;-------------
SX012: LCALL SX3
LCALL SX011
RET
;-------------
SX013: LCALL SX2
LCALL SX012
RET
;-------------
SX01: LCALL SX1
LCALL SX2
LCALL SX3
LCALL SX4
LCALL SX5
LCALL SX6
LCALL SX7
LCALL SX8
LCALL SX9
LCALL SX10
LCALL SX11
LCALL SX12
LCALL YSA
RET
;-------------
SX1: LCALL LEDR
LCALL LEDR
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
RET
SX2: LCALL LEDR
LCALL LEDR
LCALL LEDR
LCALL LEDBLACK
LCALL LEDBLACK
RET
;-------------
SX3: LCALL LEDR
LCALL LEDR
LCALL LEDR
LCALL LEDR
LCALL LEDBLACK
RET
;-------------
SX4: LCALL LEDR
LCALL LEDR
LCALL LEDR
LCALL LEDR
LCALL LEDR
RET
;-------------
SX5: LCALL LEDG
LCALL LEDG
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
RET
;-------------
SX6: LCALL LEDG
LCALL LEDG
LCALL LEDG
LCALL LEDBLACK
LCALL LEDBLACK
RET
;-------------
SX7: LCALL LEDG
LCALL LEDG
LCALL LEDG
LCALL LEDG
LCALL LEDBLACK
RET
;-------------
SX8: LCALL LEDG
LCALL LEDG
LCALL LEDG
LCALL LEDG
LCALL LEDG
RET
;-------------
SX9: LCALL LEDB
LCALL LEDB
LCALL LEDBLACK
LCALL LEDBLACK
LCALL LEDBLACK
RET
;-------------
SX10: LCALL LEDB
LCALL LEDB
LCALL LEDB
LCALL LEDBLACK
LCALL LEDBLACK
RET
;-------------
SX11: LCALL LEDB
LCALL LEDB
LCALL LEDB
LCALL LEDB
LCALL LEDBLACK
RET
;-------------
SX12: LCALL LEDB
LCALL LEDB
LCALL LEDB
LCALL LEDB
LCALL LEDB
RET
;================================================
;-------------金箍棒-----------------------------
;================================================
JGB: MOV LEDR0,#43
JGB0: LCALL JGB01
LCALL JGB02
LCALL JGB03
LCALL JGB04
LCALL JGB05
LCALL JGB06
DJNZ LEDR0,JGB0
RET
;-------------
JGB01: LCALL JGB1
LCALL JGB11
LCALL JGB1
LCALL JGB11
LCALL YSA
RET
;-------------
JGB02: LCALL JGB12
LCALL JGB01
RET
;-------------
JGB03: LCALL JGB12
LCALL JGB02
RET
;-------------
JGB04: LCALL JGB12
LCALL JGB03
RET
;-------------
JGB05: LCALL JGB12
LCALL JGB04
RET
;-------------
JGB06: LCALL JGB12
LCALL JGB05
RET
;-------------
JGB1: LCALL LEDRGB
LCALL LEDRGB
LCALL LEDRGB
LCALL LEDRGB
LCALL LEDRGB
RET
;-------------
JGB11: MOV LEDR1,#25
JGB111: LCALL LEDBLACK
DJNZ LEDR1,JGB111
RET
;-------------
JGB12: MOV LEDR2,#5
JGB121: LCALL LEDBLACK
DJNZ LEDR1,JGB121
RET
;================================================
;--------------綠色*60--------------------------
;================================================
LEDG60: MOV R0,#60 ;起始不點(diǎn)亮數(shù)60-N=59
MOV R1,#01H ;起始點(diǎn)亮數(shù)N=1更改此數(shù)據(jù)可以每次點(diǎn)亮多個燈板
MOV R3,#00H
LEDG60_3: CLR C ;但必須能被60整除
MOV A,R0
SUBB A,R1
MOV R0,A
MOV R2,A
MOV A,R1
ADD A,R3
MOV R3,A
MOV R4,A
LEDG60_1: LCALL LEDG
DJNZ R4,LEDG60_1
LEDG60_2: LCALL LEDBLACK
DJNZ R2,LEDG60_2
LCALL YSA
MOV B,#00H
MOV A,R0
CJNE A,B,LEDG60_3
LCALL YS
RET
;--------------藍(lán)色*60---------------------------------
LEDB60: MOV R0,#60
MOV R1,#01H
MOV R3,#00H
LEDB60_3: CLR C
MOV A,R0
SUBB A,R1
MOV R0,A
MOV R2,A
MOV A,R1
ADD A,R3
MOV R3,A
MOV R4,A
LEDB60_1: LCALL LEDB
DJNZ R3,LEDB60_1
LEDB60_2: LCALL LEDBLACK
DJNZ R2,LEDB60_2
INC R1
LCALL YSA
MOV B,#00H
MOV A,R0
CJNE A,B,LEDB60_3
LCALL YS
RET
;-------------其它顏色程序相同----------------
;-------------以下是單塊板的八色子程序-------------
LEDBLACK: MOV DPTR,#LED_DATABLACK ;顯示1塊板黑色
SJMP LED_R5
LEDRGB: MOV DPTR,#LED_DATARGB ;顯示1塊板白色
SJMP LED_R5
LEDGB: MOV DPTR,#LED_DATAGB ;顯示1塊板青色
SJMP LED_R5
LEDRB: MOV DPTR,#LED_DATARB ;顯示1塊板粉色
SJMP LED_R5
LEDRG: MOV DPTR,#LED_DATARG ;顯示1塊板黃色
SJMP LED_R5
LEDB: MOV DPTR,#LED_DATAB ;顯示1塊板藍(lán)色
SJMP LED_R5
LEDG: MOV DPTR,#LED_DATAG ;顯示1塊板綠色
SJMP LED_R5
LEDR: MOV DPTR,#LED_DATAR ;顯示1塊板紅色
;-------------
LED_R5: MOV LED_ZC5,#03 ;每塊LED板字節(jié)數(shù)RGB
LED_R3: MOV LED_ZC6,#08 ;每字節(jié)數(shù)據(jù)位數(shù)
MOV A,#00H
MOVC A,@A+DPTR
INC DPTR
LED_R1: RLC A
JNC LED_R2
LCALL OUT_1 ;輸出"1"
DJNZ LED_ZC6,LED_R1
SJMP LED_R4
LED_R2: LCALL OUT_0 ;輸出"0"
DJNZ LED_ZC6,LED_R1 ;發(fā)送一個字節(jié)
LED_R4: DJNZ LED_ZC5,LED_R3 ;單個燈板3字節(jié)數(shù)據(jù)沒發(fā)完繼續(xù)
RET ;子程序時用返回
LED_DATAR: DB 0FFH,00H,00H ;紅
LED_DATAG: DB 00H,00H,0FFH ;綠
LED_DATAB: DB 00H,0FFH,00H ;藍(lán)
LED_DATARG: DB 0FFH,00H,0FFH ;黃
LED_DATARB: DB 0FFH,0FFH,00H ;粉
LED_DATAGB: DB 00H,0FFH,0FFH ;青
LED_DATARGB: DB 0FFH,0FFH,0FFH ;白
LED_DATABLACK:DB 00H,00H,00H ;黑
;-------------WS2811B高速模式輸出脈沖------------------------------
OUT_0: MOV D_OUT,#00H ;輸出0脈沖
CLR P2.6
NOP
NOP
NOP
NOP
NOP
NOP
NOP
MOV D_OUT,#0FFH
SETB P2.6
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RET
;
OUT_1: MOV D_OUT,#00H ;輸出1脈沖
CLR P2.6
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
MOV D_OUT,#0FFH
SETB P2.6
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RET
;------------------------------------------
RET_0: MOV D_OUT,#0FFH ;輸出0脈沖
CLR P2.6 ;用于測量脈沖
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
MOV D_OUT,#00H
SETB P2.6
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RET
;
YSB: MOV R4,#03H
YSB1: LCALL YSA
DJNZ R4,YSB1
RET
YSA: MOV R5,#05H
MOV R6,#00H
MOV R7,#00H
YSA1: DJNZ R7,YSA1
DJNZ R6,YSA1
DJNZ R5,YSA1
RET
YS: MOV R5,#20H
MOV R6,#00H
MOV R7,#00H
YS1: DJNZ R7,YS1
DJNZ R6,YS1
DJNZ R5,YS1
RET
END
|
|