中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機(jī)驅(qū)動16×16LED點陣顯示動畫漢字匯編程序

        51單片機(jī)驅(qū)動16×16LED點陣顯示動畫漢字匯編程序

        作者: 時間:2012-12-05 來源:網(wǎng)絡(luò) 收藏

        電路圖就不貼出來了16×的典型接法。這里提供一個完整的AT89S驅(qū)動驅(qū)動led點陣顯示具有動畫效果的漢字的匯編程序列子.

        ORG 0000H
        ST: MOV A,#0FFH ;初始化
        MOV P1,A
        MOV P2,A
        MOV P3,A
        MOV P0,A
        CLR A
        MOV R0,#50H ;顯示緩存清0
        MOV R1,#20H ;控制清0的次數(shù)
        ST0: MOV @R0,A
        INC R0
        DJNZ R1,ST0

        ;正文顯示
        CHINESE: MOV DPTR,#TAB1 ;查表指針指向TAB1
        LCALL HZ
        ;結(jié)束動畫
        SCREE:
        MOV DPTR,#TAB2;查表指針指向TAB2
        ACALL DD
        MOV DPTR,#TAB3;查表指針指向TAB3
        ACALL DD
        MOV DPTR,#TAB4;查表指針指向TAB4
        ACALL DD
        LJMP CHINESE
        ;顯示8幅畫面子程序,SCREE專用,用字模軟件字要倒置(表必須深256字節(jié))
        DD: MOV B,#00H
        MOV R0,#08H ;顯示8幅畫面
        AJMP CC
        CC0: MOV A,B
        ADD A,#20H ;指向下一幅畫面
        MOV B,A
        CC: MOV R7,#08H ;畫面停留時間
        MOV R3,B
        MOV 37H,R0
        LCALL ENTER
        DIS00: LCALL DISPLAY
        DJNZ R7,DIS00
        MOV R0,37H
        DJNZ R0,CC0
        RET
        ;漢字上移子程序,可顯示8個漢字,(表必須深256字節(jié))
        HZ: MOV R3,#00H ;查表偏移量
        MOV R5,#81H ;查表128次
        MOVBACK: MOV R4,#10H ;使顯示完一個漢字
        MOVBACK0: MOV R7,#02H ;一楨畫面顯示時間
        MOV R0,#6DH ;低8位R0指向顯示緩存倒數(shù)第3個字節(jié),以備與最后1個字節(jié)交換
        MOV R1,#6CH ;高8位R1指向顯示緩存倒數(shù)第4個字節(jié),以備與倒數(shù)第2個字節(jié)交換
        MOV R2,#10H ;內(nèi)存后移的次數(shù)
        DJNZ R5,MOVBACK1
        RET ;顯示完該表,返回
        MOVBACK1: MOV A,@R0 ;低8位被后移的內(nèi)存單元數(shù)據(jù)暫存入A
        INC R0 ;后移兩字節(jié)
        INC R0
        MOV @R0,A ;放入要移的低8位數(shù)據(jù)
        MOV A,R0 ;R0指向下一個要后移的內(nèi)存單元
        SUBB A,#04H
        MOV R0,A
        MOV A,@R1 ;高8位被后移的內(nèi)存單元數(shù)據(jù)暫存入A
        INC R1 ;后移兩字節(jié)
        INC R1
        MOV @R1,A ;放入要移高8位的數(shù)據(jù)
        MOV A,R1 ;R1指向下一個要后移的內(nèi)存單元
        SUBB A,#04H
        MOV R1,A ;R1指向下一個要后移的內(nèi)存單元
        DJNZ R2,MOVBACK1 ;顯示緩存數(shù)據(jù)依次后移
        MOV A,R3 ;從表TAB1讀入要移進(jìn)50H,51H的數(shù)據(jù)
        MOVC A,@A+DPTR;先給50H讀數(shù)據(jù)
        MOV 50H,A
        MOV A,R3 ;指向下一字節(jié)
        INC A
        MOV R3,A
        MOVC A,@A+DPTR;再給51H讀數(shù)據(jù)
        MOV 51H,A
        MOV A,R3 ;指向下一字節(jié)
        INC A
        MOV R3,A
        MOV 30H,R3 ;保護(hù)數(shù)據(jù)
        MOV 31H,R4
        MOV 32H,R5
        DISMOV: LCALL DISPLAY ;顯示當(dāng)前數(shù)據(jù)
        DJNZ R7,DISMOV
        MOV R3,30H
        MOV R4,31H
        MOV R5,32H
        DJNZ R4,MOVBACK0
        MOV 30H,R3 ;保護(hù)數(shù)據(jù)
        MOV 32H,R5
        MOV R7,#24H ;顯示當(dāng)前數(shù)據(jù)延時
        DISMOV0: LCALL DISPLAY
        DJNZ R7,DISMOV0
        MOV R3,30H
        MOV R5,32H
        LJMP MOVBACK
        ;放進(jìn)一幅顯示數(shù)據(jù)到顯示緩存子程序,要先設(shè)好指針DPTR和R3,影響R1,R2,R3
        ENTER: MOV R1,#50H ;從50H單元起把表存入
        MOV R2,#20H ;查表次數(shù)
        MOV A,R3
        CLLOOP_: MOVC A,@A+DPTR ;查表
        MOV @R1,A ;將表放進(jìn)5X,6X單元
        INC R1 ;R1指向下一個地址空間
        MOV A,R3 ;查表指針后移
        INC A
        MOV R3,A ;將指針修改結(jié)果存入R3
        DJNZ R2,CLLOOP_;沒查完轉(zhuǎn)CLLOOP_
        RET
        ;15MS,顯示子程序,一楨32個字節(jié),影響A,R0,R1,R3,R4,R5,R6;
        ;http://www.51hei.com單片機(jī)網(wǎng)提供漢字取模工具,可顯示任意漢字
        DISPLAY: MOV A,#0FFH
        MOV P0,A
        MOV P1,A
        MOV P2,A
        MOV P3,A
        SETB C
        MOV R6,#7FH ;賦掃描字初值,左移后初值為0FEH
        MOV R5,#00H ;列掃描低8位控制
        MOV R0,#50H ;行的高8(p1)位要顯示的數(shù)據(jù)起始地址
        MOV R1,#10H ;掃描次數(shù)
        DISLOOP: MOV A,@R0 ;從內(nèi)存讀數(shù)據(jù)
        MOV P2,#0FFH ;裝入數(shù)據(jù)時不顯示任何東西
        MOV P3,#0FFH
        CPL A ;數(shù)據(jù)取反以適合顯示
        MOV P1,A ;送入行的高8(p1)位要顯示的數(shù)據(jù)
        INC R0 ;修改R0指向低8位要顯示的數(shù)據(jù)
        MOV A,@R0 ;讀低8位要顯示的數(shù)據(jù)
        CPL A ;數(shù)據(jù)取反以適合顯示
        MOV P0,A ;送入行的低8(p0)位要顯示的數(shù)據(jù)
        INC R0 ;R0指向下一個高8(p0)位要顯示的數(shù)據(jù)
        LCALL NEXT ;調(diào)用列掃描程序
        LCALL DELAY1MS ;顯示延時
        DJNZ R1,DISLOOP;一楨顯示完返回
        MOV P3,#0FFH ;全滅
        RET
        ;列掃描子程序DISLOOP專用
        NEXT: JNC NEXT1 ;C=0轉(zhuǎn)掃描高8(p3)位行
        MOV A,R6 ;修改掃描字
        RL A
        MOV R6,A
        INC R5
        CJNE R5,#09H,NEXT0 ;R6=#0FEH時C=0
        AJMP NEXT1
        BACK: RET
        NEXT0: MOV P2,R6 ;掃描低8(p2)位行
        AJMP BACK
        NEXT1: MOV P2,#0FFH
        MOV P3,R6 ;掃描高8(p3)位行
        MOV A,R6 ;修改掃描字
        RL A
        MOV R6,A
        AJMP BACK
        ;延時1MS子程序
        DELAY1MS: MOV R3,#10
        D0: MOV R4,#50
        D1: DJNZ R4,D1
        DJNZ R3,D0
        RET

        51單片機(jī)相關(guān)文章:51單片機(jī)教程


        雙控開關(guān)相關(guān)文章:雙控開關(guān)原理

        上一頁 1 2 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉