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

    EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機電子鐘設計

    單片機電子鐘設計

    作者: 時間:2012-12-31 來源:網絡 收藏

    這里給大家介紹一個51設計方法:

    org 00h
    a_bit equ 30h ;秒寄存器
    b_bit equ 31h ;10秒寄存器
    c_bit equ 32h ;分寄存器
    d_bit equ 33h ;10分寄存器
    e_bit equ 34h ;小時寄存器
    f_bit equ 35h ;10小時集存器

    org 0000h
    ajmp star
    org 0030h

    star:
    mov a,#00h ;把各個位全部清0
    mov a_bit,a
    mov b_bit,a
    mov c_bit,a
    mov d_bit,a
    mov e_bit,a
    mov f_bit,a
    stlop: acall display ;51程序的計算部分

    inc a_bit ;秒位加1
    mov a,a_bit ;送a
    cjne a,#10,stlop;如果秒到10那么轉到10秒處理
    mov a_bit,#00h ;秒位清0
    inc b_bit ;10秒位加1
    mov a,b_bit ;送a
    cjne a,#6,stlop ;如果10秒到了6那么到分處理
    mov b_bit,#00h ; 10秒位清0
    inc c_bit
    mov a,c_bit
    cjne a,#10,stlop
    mov c_bit,#00h
    inc d_bit
    mov a,d_bit
    cjne a,#6,stlop
    mov d_bit,#00h
    inc e_bit
    mov a,e_bit
    cjne a,#10,stlop
    mov e_bit,#00h
    inc f_bit
    mov a,f_bit
    cjne a,#3,stlop
    mov f_bit,#00h
    ajmp stlop ;重新開始計算

    display: ;顯示子程序-51直接顯示在七段數碼管上
    mov dptr,#numtab ;指定查表啟始地址
    mov r0,#4
    dpl1: mov r1,#250 ;顯示1000次
    dplop: mov a,a_bit ;取秒位的值
    MOVC A,@A+DPTR ;查秒位數的7段代碼
    mov p0,a ;送出到P0口顯示
    clr p2.6 ;開個位顯示
    acall d1ms ;顯示1ms
    setb p2.6 ;關閉顯示

    mov a,b_bit ;取10秒位的值
    MOVC A,@A+DPTR ;查10秒位的7段代碼
    mov p0,a ;送出10秒位到P0口顯示

    clr p2.5 ;開10秒位顯示
    acall d1ms ;顯示1ms
    setb p2.5

    mov a,c_bit ;取分位
    MOVC A,@A+DPTR ;

    mov p0,a ;
    clr p2.4 ;
    acall d1ms ;

    setb p2.4

    mov a,d_bit ;取10分位
    MOVC A,@A+DPTR ;

    mov p0,a ;

    clr p2.3 ;

    acall d1ms ;

    setb p2.3

    mov a,e_bit ;取小時位
    MOVC A,@A+DPTR ;
    mov p0,a ;
    clr p2.2 ;
    acall d1ms ;

    setb p2.2

    mov a,f_bit ;取10小時位
    MOVC A,@A+DPTR ;
    mov p0,a ;
    clr p2.1 ;
    acall d1ms ;
    setb p2.1

    djnz r1,dplop ;100次沒完循環
    djnz r0,dpl1 ;4個100次沒完循環
    ret
    D1MS: MOV R7,#20 ;1MS延時(按12MHZ算)
    DJNZ R7,$
    RET
    ;七段數碼管各劃的數字排列表-http://www.51hei.com/ 提供
    numtab: db 28h,7eh,0a2h,62h,74h,61h,21h,7ah,20h,60h
    ;0 1 2 3 4 5 6 7 8 9
    end



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 库伦旗| 文水县| 顺平县| 铁岭市| 多伦县| 微山县| 苗栗县| 通辽市| 宁化县| 新民市| 遂昌县| 怀柔区| 伊吾县| 育儿| 邹平县| 丰台区| 沅陵县| 育儿| 东台市| 牙克石市| 德昌县| 扶绥县| 凉城县| 虎林市| 沅陵县| 民县| 柘荣县| 集安市| 杭州市| 西宁市| 德清县| 张家港市| 陵川县| 乌鲁木齐市| 塘沽区| 韶山市| 米脂县| 台湾省| 辛集市| 湄潭县| 云林县|