论坛风格切换切换到宽版
  • 6732阅读
  • 17回复

终于制作出了单片机作品!(电子钟) [复制链接]

上一主题 下一主题
离线BG9DW
 
发帖
4574
只看楼主 倒序阅读 0楼 发表于: 2004-06-10
前两天用at89c2051制作出了有生以来的第一个单片机作品——电子钟。我将制作资料收录在了我的主页(http://bg9dw.2000y.net/)里,有兴趣的朋友可以去看看。
vy   73!
离线BD7YA
发帖
2392
只看该作者 1楼 发表于: 2004-06-10
来捧场啦!!!

图片链接有问题啊,快点修改吧
离线ahzds
发帖
7423
只看该作者 2楼 发表于: 2004-06-10
顶起来!!!!!!!!!!!!!!!!
离线2cm
发帖
3486
只看该作者 3楼 发表于: 2004-06-10
不错啊。。。。。。。。
离线bg4akt
发帖
1886
只看该作者 4楼 发表于: 2004-06-10
不知怎么的,看不到图片。
制作成本大约多少呢?
很想diy一个。
离线BG9DW
发帖
4574
只看该作者 5楼 发表于: 2004-06-11
我这里能看图片呀!郁闷。那就把图片上传上来吧!
关于成本:89c2051一片     8元
        共阳数码管六只   1。2元*6
        9015三极管六只   这不算,呵呵
        7805一只         这,1块钱吧
大件基本就上面这些了吧!剩下的就是阻容件和晶振等东东了。让各位大虾见笑了,呵呵。
离线BG9DW
发帖
4574
只看该作者 6楼 发表于: 2004-06-11
电子钟源程序到啦!声明——该程序非小弟编写,我的编程能力还急待提高,只是自己烧写了片子而已,呵呵。
        org 0000h

        ljmp start

        org 0003h

        reti

        org 000bh

        ljmp intt0

        org 0013h

        reti

        org 001bh

        ljmp intt1

        org 0023h

        reti

        org 002bh

        reti

    start: mov   r0, #70h

        mov   r7, #0bh

        mov   20h, #00h

cleardisp: mov   @r0, #00h

        inc   r0

        djnz r7,cleardisp

        mov   7ah,#0ah

        mov tmod,#11h

        mov   tl0,   #0b0h

        mov   th0,   #3ch

        mov   tl1,   #0b0h

        mov   th1,   #3ch

        setb ea

        setb et0

        setb tr0

        mov   r4,#14h

    start1: lcall display

        jnb p3.7,setmm1

        sjmp start1

    setmm1: ljmp setmm

    intt0: push acc

        push psw

        clr   et0

        clr   tr0

        mov   a,#0b7h     ;中断同步修正

        add   a,tl0

        mov   tl0,a

        mov   a,#3ch

        add   a,th0

        mov   th0,a

        setb tr0

        djnz   r4, outt0

    addss: mov r4,#14h

        mov r0,#71h

        acall add1       ;加1程序

        mov a,r3

        clr c

        cjne a,#60h,addmm

    addmm: jc   outt0

        acall clr0

        mov r0,#77h

        acall add1

        mov a,r3

        clr c

        cjne a,#60h,addhh

    addhh: jc outt0

            acall clr0

            mov r0,#79h

            acall add1

            mov a,r3

            clr c

            cjne a,#24h,hour

        hour: jc outt0

            acall clr0

        outt0: mov   72h,76h

            mov   73h,77h

            mov   74h,78h

            mov   75h,79h

            pop psw

            pop acc

            setb   et0

            reti

intt1:       push   acc

          push   psw

          mov   tl1,   #0b0h

          mov   th1,   #3ch

          djnz   r2,intt1out

          mov   r2,#06h

          cpl   02h

          jb     02h,flash1

          mov   72h,76h

          mov   73h,77h

          mov   74h,78h

          mov   75h,79h

intt1out:     pop   psw

          pop   acc

          reti

flash1:       jb     01h,flash2

          mov   72h,7ah

          mov   73h,7ah

          mov   74h,78h

          mov   75h,79h

          ajmp   intt1out

flash2:       mov   72h,76h

          mov   73h,77h

          mov   74h,7ah

          mov   75h,7ah

          ajmp   intt1out

        add1: mov a,@r0

            dec r0

            swap a

            orl a,@r0

            add a,#01h

            da a

            mov r3,a

            anl a,#0fh

            mov @r0,a

            mov a,r3

            inc r0

            swap a

            anl a,#0fh

            mov @r0,a

            ret

        clr0: clr a

            mov @r0,a

            dec r0

            mov @r0,a

            ret

      setmm: clr et0

            clr tr0

            lcall dl1s

            jb p3.7,closedis  

            mov r2,#06h

            setb et1

            setb tr1

        set2: jnb p3.7,set1

            setb 00h

        set4: jb p3.7,set3

            lcall   dl05s

            jnb   p3.7,sethh

            mov r0,#77h       ;加1分程序

            lcall add1

            mov a,r3

            clr c

            cjne a,#60h,hhh

        hhh: jc set4

            lcall clr0

            clr c

            ajmp set4

    closedis: setb et0

            setb tr0

    close:   jb   p3.7,close

            lcall display

            jb   p3.7,close

  waith:       jnb   p3.7,waith

            ljmp start1

      sethh: clr   00h

      sethh1: jnb p3.7,set5

            setb       01h

        set6: jb p3.7,set7

            lcall   dl05s

            jnb   p3.7,setout

            mov r0,#79h

            lcall add1

            mov a,r3

            clr c

            cjne a,#24h,houu

        houu: jc set6

            lcall clr0

            ajmp set6

      setout: jnb   p3.7,setout1

            lcall display

            jnb   p3.7,setout

            clr   01h

            clr   00h

            clr   02h

            clr   tr1

            clr   et1

            setb tr0

            setb et0

            ljmp start1

        set1: lcall     display

            ajmp       set2

        set3: lcall     display

            ajmp       set4

        set5: lcall     display

            ajmp       sethh1

        set7: lcall     display

            ajmp       set6

      setout1: lcall     display

            ajmp       setout

      display: mov r1,#70h

            mov r5,#0feh

        play: mov a,r5

            mov p3,a

            mov a,@r1

            mov dptr,#tab

            movc a,@a+dptr

            mov p1,a

            lcall dl1ms

            inc r1

            mov a,r5

            jnb acc.5,endout

            rl a

            mov r5,a

            ajmp play

      endout: setb p3.5

            mov p1,#0ffh

            ret

        tab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0ffh

        dl1ms: mov r6,#14h

        dl1:   mov r7,#19h

        dl2:   djnz r7,dl2

            djnz r6,dl1

            ret

        ds20ms: acall display

              acall display

              acall display

              ret

        dl1s:   lcall     dl05s

              lcall     dl05s

              ret

        dl05s:   mov     r3,#20h

        dl05s1: lcall     display

              djnz     r3,dl05s1

              ret

              end
离线BG4RFF
发帖
1581
只看该作者 7楼 发表于: 2004-06-11
佩服,用c我写过,用汇编我就汗颜拉
离线BG9DW
发帖
4574
只看该作者 8楼 发表于: 2004-06-11
程序我用的别人的,呵呵。程序我还很菜呀!我只是焊接了硬件电路和烧写程序。
离线oxalis
发帖
958
只看该作者 9楼 发表于: 2004-06-11
路过。顶一下下。不错
离线BA3CE
发帖
1652
只看该作者 10楼 发表于: 2004-06-11
使用片内定时器,精度稍微差些,且不能断电。不如用ds1307。我最近用了些感觉不错。你需要程序我可以给你。
离线bg4akt
发帖
1886
只看该作者 11楼 发表于: 2004-06-11
谢谢楼主!
很实用啊!
正好电台室缺一个数字显示的钟。
离线ljchip
发帖
459
只看该作者 12楼 发表于: 2004-06-12
支持楼主!
  在定时器里加入微调时间精确度的程序会更好。这样走时精度可以微调。

  bg5sbh
离线bd3si
发帖
13701
只看该作者 13楼 发表于: 2004-06-12
那位用过ds12887
icm7218 bipi 可以驱动多大电流??

'
使用片内定时器,精度稍微差些,且不能断电。不如用ds1307。我最近用了些感觉不错。你需要程序我可以给你。
'
离线BG9DW
发帖
4574
只看该作者 14楼 发表于: 2004-06-12
'
使用片内定时器,精度稍微差些,且不能断电。不如用ds1307。我最近用了些感觉不错。你需要程序我可以给你。
'
bd3ce前辈:您好!感谢您的建议!单片机我还很菜,唯一值得炫耀的就是焊接功夫,我也正下载了程序在研究呢。我的邮箱是bg9dw@163.com,请您给我一份关于使用ds1307的程序,不知有没有电路图。万分感谢!
离线BG9DW
发帖
4574
只看该作者 15楼 发表于: 2004-06-12
顺便问一下,前辈们在我的站点里能不能看到电路图呀?我这里看没问题的。谢谢!
离线BD7YA
发帖
2392
只看该作者 16楼 发表于: 2004-06-12
'
顺便问一下,前辈们在我的站点里能不能看到电路图呀?我这里看没问题的。谢谢!
'


file:///c:/my%20documents/便民小组/小组刊物/第四期刘辉稿件/电子钟电路图(图一).jpg
当然能看到,
你看到的是你自己机器中的图片啊。。。。。
离线bg4kc
发帖
2638
只看该作者 17楼 发表于: 2004-06-14
做这个东西其实也很难,让这个电路运行一天,和家里的石英钟比较一下,看差多少?
假设这个电路要批量生产,如何能保证不用校准精度就很高?