新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 數碼管掃描程序(采用數據表格)

        數碼管掃描程序(采用數據表格)

        作者: 時間:2016-11-18 來源:網絡 收藏
        ;此數碼管為共陽極數碼管,此程序中的取反指令可以不必,可以直接賦給原始值也是可以的

        CNT EQU 30H ;賦值指令:給標號CNT賦值,標號CNT=30H

        本文引用地址:http://www.104case.com/article/201611/315800.htm

        ORG 0000H
        MOV P1,3FH

        ;剛開始的數據恢復程序(延時)
        START: MOV R1,#00H
        L0: DJNZ R1,L0
        MOV SP,#50H

        MOV CNT,#00H ;計數器先清零
        LOOP: MOV A,CNT ;把CNT(地址)中的數(存的是程序表中的地址)付給A
        MOV DPTR,#TABLE ;定義字形表的起始地址
        MOVC A,@A+DPTR ;TABLE為表的起始地址
        CALL OUTPUT ;跳轉到輸出程序
        INC CNT ;計數器加一
        MOV A,CNT ;重新把CNT放在A中
        CJNE A,#10,LOOP ;比較不相等轉移指令,如果數碼管顯示過9后,就不再轉移了
        MOV CNT,#00H ;數碼管顯示9后,從新使計數器記0
        SJMP LOOP ;重新循環

        ;程序中的數據表格,DB為定義字節指令(從指定的地址開始,在程序存儲器的連續單元中定義字節數據)
        TABLE: DB 3FH ;0
        DB 06H ;1
        DB 5BH ;2
        DB 4FH ;3
        DB 66H ;4
        DB 6DH ;5
        DB 7DH ;6
        DB 27H ;7
        DB 7FH ;8
        DB 6FH ;9

        ;輸出函數
        OUTPUT: PUSH PSW
        CPL A ;取反指令
        MOV P1,A
        CALL DELAY
        POP PSW
        RET

        ;延時函數,延時125ms
        DELAY: PUSH PSW
        MOV R0,#00H
        L1: MOV R1,#00H
        L2:DJNZ R1,L2
        DJNZ R0,L1
        POP PSW
        RET

        END



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 双牌县| 保德县| 兰考县| 平山县| 金湖县| 县级市| 乐昌市| 滦南县| 方城县| 蒙山县| 阜新| 铁岭县| 广元市| 南华县| 丹凤县| 独山县| 潞西市| 柳江县| 冷水江市| 商水县| 辽阳县| 堆龙德庆县| 庆安县| 岳普湖县| 施甸县| 醴陵市| 繁峙县| 通河县| 田林县| 顺昌县| 阿瓦提县| 文登市| 天水市| 东台市| 怀集县| 石渠县| 秀山| 怀安县| 郑州市| 祁阳县| 衡阳市|