- ; STC15W4K32S4单片机,采用SOP28封装
- ;采用内部时钟,工作频率24MHz用2平40点原点发送5位8路
- ; DSEG AT 30H
- D_OUT EQU P1 ;LED控制数据输出
- ;D_OUT EQU P3 ;LED控制数据输出
- LED_ZC3 EQU 30H ;灯板数
- LED_ZC4 EQU 31H ;颜色组数
- LED_ZC5 EQU 32H ;每块板数组 红,绿,蓝三基色
- LED_ZC6 EQU 33H ;单色数据位数
- 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 ;蓝色60灯组
- ; ; LCALL LHR ;礼花
- LCALL XZ
- LCALL TAIJI ;太极
- LCALL SX
- LCALL JGB
- LJMP MAINB
- ;=======================================
- ;-------------花环----------------------
- ;=======================================
- 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
- ;=======================================
- ;-------------彩色园环------------------
- ;=======================================
- 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 ;七色重复次数
- qqlhqq: mov ledr2,#7 ;颜色组红,绿,蓝,黄,粉,青,白
- qqlhq: MOV LEDR1,#10 ;单色重复次数
- 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 ;七色重复次数
- mov ledr2,#7 ;颜色组红,绿,蓝,黄,粉,青,白
- qqlhqa: MOV LEDR1,#10 ;单色重复次数
- qqlhya: mov ledr0,#12 ;12组
- LCALL LED_LH ;颜色组红,绿,蓝,黄,粉,青,白
- qqlhy1a: lcall colour ;颜色显示1
- lcall ledblack
- lcall ledblack
- lcall ledblack
- lcall ledblack
- djnz ledr0,qqlhy1A
- lcall ysa
- mov ledr0,#12
- LCALL LED_LH ;颜色组红,绿,蓝,黄,粉,青,白
- qqlheA: lcall ledblack
- lcall colour ;2
- lcall ledblack
- lcall ledblack
- lcall ledblack
- djnz ledr0,qqlheA
- lcall ysa
- mov ledr0,#12
- LCALL LED_LH ;颜色组红,绿,蓝,黄,粉,青,白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 ;颜色组红,绿,蓝,黄,粉,青,白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 ;颜色组红,绿,蓝,黄,粉,青,白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
- ;-------------根据颜色参数选择-------------------
- 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 ;蓝
- 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 ;起始不点亮数60-N=59
- MOV R1,#01H ;起始点亮数N=1更改此数据可以每次点亮多个灯板
- 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
- ;-------------------------外面粉红里面旋转-------------
- 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
- ;-----------------旋转-------------
- 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 ;起始不点亮数60-N=59
- MOV R1,#01H ;起始点亮数N=1更改此数据可以每次点亮多个灯板
- 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
- ;--------------蓝色*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块板蓝色
- 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板字节数RGB
- LED_R3: MOV LED_ZC6,#08 ;每字节数据位数
- 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 ;发送一个字节
- LED_R4: DJNZ LED_ZC5,LED_R3 ;单个灯板3字节数据没发完继续
- RET ;子程序时用返回
- LED_DATAR: DB 0FFH,00H,00H ;红
- LED_DATAG: DB 00H,00H,0FFH ;绿
- LED_DATAB: DB 00H,0FFH,00H ;蓝
- 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
复制代码
【必读】版权免责声明
1、本主题所有言论和内容纯属会员个人意见,与本论坛立场无关。2、本站对所发内容真实性、客观性、可用性不做任何保证也不负任何责任,网友之间仅出于学习目的进行交流。3、对提供的数字内容不拥有任何权利,其版权归原著者拥有。请勿将该数字内容进行商业交易、转载等行为,该内容只为学习所提供,使用后发生的一切问题与本站无关。 4、本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本网站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。 5、本网站所有软件和资料均为网友推荐收集整理而来,仅供学习用途使用,请务必下载后两小时内删除,禁止商用。6、如有侵犯你版权的,请及时联系我们(电子邮箱1370723259@qq.com)指出,本站将立即改正。
|
|