• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    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



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 绥德县| 澎湖县| 乳山市| 万载县| 新和县| 浦北县| 邢台县| 鞍山市| 宜君县| 大同市| 延津县| 蛟河市| 肥西县| 灌南县| 浮山县| 横峰县| 邹城市| 三门峡市| 桃园市| 缙云县| 宣恩县| 钦州市| 潢川县| 浏阳市| 香格里拉县| 安康市| 黔南| 宁都县| 崇明县| 新绛县| 黔南| 祁连县| 临高县| 富裕县| 紫金县| 偏关县| 洪洞县| 娱乐| 文成县| 饶阳县| 互助|