新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 試驗10 ---------100位計數器

        試驗10 ---------100位計數器

        作者: 時間:2011-02-25 來源:網絡 收藏

        運行程序數碼管顯示00--99依次循環下面是他的asm源程序和hex程序(asm程序可以用配套光盤的uvw51e 編輯后得到hex,)該程序運行的照片(數字顯示到56了)

        a_bit equ 20h ;個位數存放處
        b_bit equ 21h ;十位數存放處
        temp equ 22h ;計數器寄存器

        star: mov temp,#0 ;初始化計數器
        stlop: acall display
        inc temp
        mov a,temp
        cjne a,#100,next ;=100重來
        mov temp,#0
        next: ljmp stlop

        ;顯示子程序
        display: mov a,temp ;將temp中的十六進制數轉換成10進制
        mov b,#10 ;10進制/10=10進制
        div ab
        mov b_bit,a ;十位在a
        mov a_bit,b ;個位在b

        mov dptr,#numtab ;指定查表啟始地址
        mov r0,#4
        dpl1: mov r1,#250 ;顯示1000次
        dplop: mov a,a_bit ;取個位數
        MOVC A,@A+DPTR ;查個位數的7段代碼
        mov p0,a ;送出個位的7段代碼
        clr p2.7 ;開個位顯示
        acall d1ms ;顯示1ms
        setb p2.7
        mov a,b_bit ;取十位數
        MOVC A,@A+DPTR ;查十位數的7段代碼
        mov p0,a ;送出十位的7段代碼
        clr p2.6 ;開十位顯示
        acall d1ms ;顯示1ms
        setb p2.6
        djnz r1,dplop ;100次沒完循環
        djnz r0,dpl1 ;4個100次沒完循環
        ret
        ;1MS延時(按12MHZ算)
        ;====================================================
        D1MS: MOV R7,#80
        DJNZ R7,$
        RET

        ;7段數碼管各劃的數字排列表
        numtab: db 28h,7eh,0a2h,62h,74h,61h,21h,7ah,20h,60h
        ;0 1 2 3 4 5 6 7 8 9


        end



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 临夏市| 忻城县| 柯坪县| 奉新县| 宜阳县| 永济市| 榕江县| 寿光市| 和政县| 西藏| 海盐县| 德州市| 九江市| 南投市| 吉林省| 宁武县| 山东| 互助| 湟中县| 武宣县| 平原县| 五原县| 新源县| 当阳市| 孟津县| 三江| 溆浦县| 承德县| 正宁县| 于都县| 昂仁县| 辽源市| 区。| 方山县| 永顺县| 镇安县| 朝阳区| 阿拉善左旗| 百色市| 海丰县| 屯昌县|