新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)電子鐘設(shè)計(jì)

        單片機(jī)電子鐘設(shè)計(jì)

        作者: 時(shí)間:2012-12-31 來(lái)源:網(wǎng)絡(luò) 收藏

        這里給大家介紹一個(gè)51設(shè)計(jì)方法:

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

        org 0000h
        ajmp star
        org 0030h

        star:
        mov a,#00h ;把各個(gè)位全部清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程序的計(jì)算部分

        inc a_bit ;秒位加1
        mov a,a_bit ;送a
        cjne a,#10,stlop;如果秒到10那么轉(zhuǎn)到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 ;重新開始計(jì)算

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

        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 ;取小時(shí)位
        MOVC A,@A+DPTR ;
        mov p0,a ;
        clr p2.2 ;
        acall d1ms ;

        setb p2.2

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

        djnz r1,dplop ;100次沒(méi)完循環(huán)
        djnz r0,dpl1 ;4個(gè)100次沒(méi)完循環(huán)
        ret
        D1MS: MOV R7,#20 ;1MS延時(shí)(按12MHZ算)
        DJNZ R7,$
        RET
        ;七段數(shù)碼管各劃的數(shù)字排列表-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



        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 乌兰察布市| 陇川县| 崇义县| 富顺县| 瑞昌市| 阿克苏市| 普安县| 巨鹿县| 巨野县| 马关县| 外汇| 乡宁县| 锡林郭勒盟| 合江县| 阳春市| 金昌市| 南木林县| 达尔| 平利县| 随州市| 垦利县| 北安市| 青河县| 富源县| 夏津县| 湖北省| 石家庄市| 沾益县| 宁安市| 巴楚县| 龙口市| 通渭县| 葫芦岛市| 名山县| 霍州市| 浦北县| 兰州市| 乌鲁木齐市| 安福县| 青岛市| 四川省|