找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 8627|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

STC15F104W驅(qū)動(dòng)24位WS2812匯編程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:72088 發(fā)表于 2017-4-23 08:37 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 新鄉(xiāng)家電維修 于 2017-4-27 09:30 編輯


;WS2812驅(qū)動(dòng)環(huán)形24燈15F104W,12m寫(xiě)入

;寫(xiě)程序用12M
        OUT        BIT        P3.3

        ORG        0H
        ORG        30H
;==========主程序=================
MAIN:
        ACALL        REST
START:

ATART_0:
        ACALL        OOO
        ACALL        EEE
        ACALL        OOO
        DJNZ        R0,ATART_0
        ACALL        REST
        ACALL        ATART_00                ;全滅燈
;==============
ATART_1:
        ACALL        EEE2
        ACALL        EEE2
        ACALL        OOO
        DJNZ        R0,ATART_1
        ACALL        REST
        ACALL        ATART_00                ;全滅燈
;=============
ATART_2:
        ACALL        EEE
        ACALL        OOO
        ACALL        OOO
        DJNZ        R0,ATART_2
        ACALL        REST
        ACALL        ATART_00                ;全滅燈
;=============
ATART_3:
        ACALL        EEE2
        ACALL        OOO
        ACALL        EEE2
        DJNZ        R0,ATART_3
        ACALL        REST
        ACALL        ATART_00                ;全滅燈
;=============
ATART_4:
        ACALL        OOO
        ACALL        OOO
        ACALL        EEE
        DJNZ        R0,ATART_4
        ACALL        REST
        ACALL        ATART_00                ;全滅燈
;=============
ATART_5:
        ACALL        OOO
        ACALL        EEE2
        ACALL        EEE2
        DJNZ        R0,ATART_5
        ACALL        REST
        ACALL        ATART_00                ;全滅燈
ATART_6:
        ACALL        EEE2
        ACALL        EEE2
        ACALL        EEE2
        DJNZ        R0,ATART_6
        ACALL        REST
        ACALL        ATART_00                ;全滅燈
;=============
MOV R2,#250
ATART_7:                ;雙彩色循環(huán)GGRRBBGGRRBB
        DEC R2
        MOV A,R2
        JZ MAIN
        ACALL        EEE2        ;G
        ACALL        OOO
        ACALL        OOO
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO
        ACALL        OOO        ;R
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO        ;B
        ACALL        OOO
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO
        ACALL        EEE2

        DJNZ        R0,ATART_7

        ACALL        REST
ATART_8:
        ACALL        OOO        ;B
        ACALL        OOO
        ACALL        EEE2
        ACALL        EEE2        ;G
        ACALL        OOO
        ACALL        OOO
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO
        ACALL        OOO
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO
        ACALL        OOO
        ACALL        EEE2
        DJNZ        R0,ATART_8
        ACALL        REST
ATART_9:
        ACALL        OOO        ;B
        ACALL        OOO
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO
        ACALL        EEE2
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO
        ACALL        OOO
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO
        ACALL        EEE2
        ACALL        OOO
        DJNZ        R0,ATART_9
        ACALL        REST
ATART_10:
        ACALL        OOO
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO        ;B
        ACALL        OOO
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO
        ACALL        EEE2
        ACALL        EEE2        ;G
        ACALL        OOO
        ACALL        OOO
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO
        ACALL        OOO        ;R
        ACALL        EEE2
        ACALL        OOO
        DJNZ        R0,ATART_10
        ACALL        REST
ATART_11:
        ACALL        OOO        ;R
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO        ;B
        ACALL        OOO
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO
        ACALL        EEE2
        ACALL        EEE2        ;G
        ACALL        OOO
        ACALL        OOO
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO
        DJNZ        R0,ATART_11
        ACALL        REST
ATART_12:
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO
        ACALL        OOO        ;R
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO        ;B
        ACALL        OOO
        ACALL        EEE2
        ACALL        OOO
        ACALL        OOO
        ACALL        EEE2
        ACALL        EEE2        ;G
        ACALL        OOO
        ACALL        OOO
        DJNZ        R0,ATART_12
        ACALL        REST
;=============
        JMP        ATART_7


ATART_00:        ;全關(guān)閉程序
        ACALL        OOO
        ACALL        OOO
        ACALL        OOO
        DJNZ        R0,ATART_00
        ACALL        REST
        RET
REST:
        CLR        OUT
        ACALL        DELAY1000MS
        SETB        OUT
        mov r0,#24
        RET
OOO:                ;關(guān)閉
        ACALL        SHI_0
        ACALL        SHI_0
        ACALL        SHI_0
        ACALL        SHI_0
        ACALL        SHI_0
        ACALL        SHI_0
        ACALL        SHI_0
        ACALL        SHI_0
ret
EEE:        ;單色顯示亮度不足,用這個(gè)高的
        ACALL        SHI_0
        ACALL        SHI_1
        ACALL        SHI_1
        ACALL        SHI_1
        ACALL        SHI_1
        ACALL        SHI_1
        ACALL        SHI_1
        ACALL        SHI_1
RET
EEE2:        ;雙色顯示用這個(gè)低值的
        ACALL        SHI_0
        ACALL        SHI_0
        ACALL        SHI_0
        ACALL        SHI_1
        ACALL        SHI_1
        ACALL        SHI_1
        ACALL        SHI_1
        ACALL        SHI_1
RET
;===========01識(shí)別============
SHI_0:
        SETB        OUT
        CLR        OUT
        CLR        OUT
        RET
SHI_1:
        SETB        OUT
        SETB        OUT
        CLR        OUT
        RET
;-------------延時(shí)子程序-----------------
DELAY60US:                        ;@12.000MHz
        NOP
        NOP
        NOP
        NOP
        PUSH 30H
        MOV 30H,#140
NEXT:
        DJNZ 30H,NEXT
        POP 30H
        RET
DELAY1000MS:                        ;@12.000MHz
        NOP
        NOP
        NOP
        PUSH 30H
        PUSH 31H
        PUSH 32H
        MOV 30H,#37
        MOV 31H,#123
        MOV 32H,#89
NEXT1:
        DJNZ 32H,NEXT1
        DJNZ 31H,NEXT1
        DJNZ 30H,NEXT1
        POP 32H
        POP 31H
        POP 30H
        RET
END

對(duì)時(shí)序要求比較高,普通51單片機(jī)難以實(shí)現(xiàn)。希望起到借鑒作用,大家可以編譯下試試,交流下


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2017-4-28 00:06 | 只看該作者
好資料,51黑有你更精彩
回復(fù)

使用道具 舉報(bào)

板凳
ID:72088 發(fā)表于 2017-4-30 11:11 | 只看該作者
這樣發(fā)表方便讀者閱讀,他們又不用回復(fù)。總覺(jué)得心冷冷的。非要加上回復(fù)后才能閱讀權(quán)限
回復(fù)

使用道具 舉報(bào)

地板
ID:195089 發(fā)表于 2017-4-30 19:39 | 只看該作者
謝謝樓主
回復(fù)

使用道具 舉報(bào)

5#
ID:271166 發(fā)表于 2018-1-15 15:53 | 只看該作者
不錯(cuò)的資料,學(xué)習(xí)一下,頂
回復(fù)

使用道具 舉報(bào)

6#
ID:246618 發(fā)表于 2019-3-1 10:23 | 只看該作者
怎么用Keil uVision3編譯不過(guò)
回復(fù)

使用道具 舉報(bào)

7#
ID:104838 發(fā)表于 2019-3-20 21:34 | 只看該作者
好看
回復(fù)

使用道具 舉報(bào)

8#
ID:445246 發(fā)表于 2019-7-4 05:12 | 只看該作者
看看,不夠清楚
回復(fù)

使用道具 舉報(bào)

9#
ID:200844 發(fā)表于 2021-4-16 16:32 | 只看該作者
支持你,我就需要匯編的,謝謝了
回復(fù)

使用道具 舉報(bào)

10#
ID:310441 發(fā)表于 2022-3-19 16:31 來(lái)自手機(jī) | 只看該作者
你牛,現(xiàn)在能用匯編做程序的少了!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表