新聞中心

        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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 潮安县| 平和县| 广水市| 太白县| 芜湖县| 铅山县| 杭州市| 监利县| 富锦市| 青岛市| 广安市| 错那县| 边坝县| 花垣县| 隆德县| 华容县| 夏河县| 筠连县| 武定县| 宜城市| 淅川县| 潮安县| 通化县| 桂平市| 周至县| 临邑县| 宜兴市| 宜良县| 南丹县| 尼勒克县| 资源县| 临猗县| 越西县| 桐城市| 邢台市| 当阳市| 眉山市| 延川县| 滦南县| 惠东县| 崇阳县|