打印

**啊

[复制链接]
11560|62
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
长沙卖菜王|  楼主 | 2009-4-17 18:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
 最近用四个发光二极管(不是数码管)做了一个LED手表,拿出来晒晒!
     有人说是创意作品,有人说看时间麻烦(喜欢白菜的人,我不卖他萝卜!)
;///////////////////////////////////////////
;王筝 QQ:408864998
;本程序利用节拍法,和标志位,利用4个LED显示时间
;/////////开始自定义及初始化////////////////
cBufTh0         equ       53h             ;定时器TH0基数存储单元
cBufTl0         equ        54h             ;定时器TL0基数存储单元
bT0                bit        20h.0        ;定时中断标志位
shanshuo        bit        20h.1        ;闪烁标志位
sec            equ        50h            ;秒钟地址
min            equ        51h            ;分钟地址
hour            equ        52h            ;时钟地址
sec_ge        equ        3ah            ;秒的个位
sec_shi        equ        38h            ;秒的十位
min_ge        equ        36h            ;分的个位
min_shi        equ        34h            ;分的十位
hour_ge        equ        32h            ;时的个位
hour_shi        equ        30h            ;时的十位
display        equ        p3            ;时间显示口
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;系统主程序
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            org         0000h
            ajmp        start
            org         000bh
            ljmp        T0Ser
            org         0030h
start:       mov        r0,#7fh
cc:        mov        @r0,#0ffh
        djnz        r0,cc
        mov         sp,#60h
            mov         tmod,#01h           ;设定定时器的工作状态
            mov         dptr,#65536-20000
            mov         th0,dph
            mov         tl0,dpl
            mov         cBufTh0,dph
            mov         cBufTl0,dpl
            setb        tr0
            setb        et0
            setb        ea
        mov        r1,#0
        mov        r0,#30h            ;开始显示的地址
        clr        bt0                ;以上是初始化的过程
        clr        shanshuo    
        mov        display,#00h        
        mov        sec,#21            ;秒显示初值
        mov        min,#39            ;分显示初值
        mov        hour,#10            ;时显示初值        
Main:    jnb         bt0,Main            ;等待中断的到来,(执行中断返回后,BT0等于1)
            clr         bt0    
        call        jisuan            ;时间计算子程序
        call        fenli            ;时间高低位分离
        call        time_display        ;显示
        ljmp        main
;///////////////计算子程序///////////////////
;输入:
;输出: 
;实现的功能: P3口花样灯显示,SEC MIN HOUR 计算
jisuan:    inc        r1
        cjne        r1,#50,tiaochu        ;是否来了一秒钟
        mov        r1,#0        
        inc        r0                    ;闪烁某个位
        cjne        r0,#40h,next            ;3ah到42h放的是0ffh,时间显示一会后,就一直亮着,                                        ;用来区别下次的时间显示
        mov        r0,#30h
next:    cpl        shanshuo                ;闪烁标志位    
        inc        sec                    ;秒加一
        mov        a,sec
        cjne        a,#60,tiaochu            ;是否加到了60
        mov        sec,#00h                ;加到了60回0
        inc        min                    ;分加一
        mov        a,min
        cjne        a,#60,tiaochu            ;是否加到60
        mov        min,#00h                ;加到了60回0
        inc        hour                    ;时加一
        mov        a,hour
        cjne        a,#24,tiaochu            ;是否加到了24
        mov        hour,#00h                ;加到了24回0                
tiaochu:    ret
    
;///////////////显示子程序///////////////////
;输入:"SEC MIN HOUR"
;输出: "P3口"
;实现的功能:把SEC MIN HOUR的数分别输出到P3口显示
time_display:    
jb        shanshuo,out        ;控制闪烁
        mov        a,@r0            ;依次显示时分秒
        cpl        a                ;低电平驱动所以取反
        mov        display,a
        ret
    out:    mov        display,#00h        ;灭
        ret
;///////////////时间分离子程序///////////////////
;输入:"无"
;输出: "sec_ge等"
;实现的功能:时分秒的十位与个位分离
fenli:    mov        a,sec            ;秒分离
        mov        b,#10
        div        ab
        mov        sec_ge,b
        mov        sec_shi,a
        mov        a,min            ;分分离
        mov        b,#10
        div        ab
        mov        min_ge,b
        mov        min_shi,a
        mov        a,hour            ;秒分离
        mov        b,#10
        div        ab
        mov        hour_ge,b
        mov        hour_shi,a
        ret
;///////////////定时中断程序///////////////////
;输入:"无"
;输出: "BT0"
;实现的功能:20MS到后把BT0置成1
T0Ser:      mov         tl0,cBufTl0
            mov         th0,cBufTh0
            setb        bT0
            reti
;///////// 结束///////////////////////////
        End

相关帖子

沙发
长沙卖菜王|  楼主 | 2009-4-17 18:45 | 只看该作者

附上图片

使用特权

评论回复
板凳
杜专| | 2009-4-17 20:01 | 只看该作者

看不懂呢!

那里弄的LED,来忽悠人咯!
看时间还费力!麻烦!

使用特权

评论回复
地板
taoest| | 2009-4-17 20:01 | 只看该作者

看个时间要5秒。还真累啊。
没看见按钮的?GPS校准?

使用特权

评论回复
5
长沙卖菜王|  楼主 | 2009-4-17 20:03 | 只看该作者

业余学习

   我做的是不要指针的手表,写得突然,还没写按键!先看看反应 ,反应不好就放弃!  有人说看时间麻烦 有人说有创意 我也不知道怎么解释一半一半吧!

使用特权

评论回复
6
雁舞白沙| | 2009-4-17 20:07 | 只看该作者

很有创业!

使用特权

评论回复
7
yslf1985| | 2009-4-17 20:13 | 只看该作者

自己喜欢就要**!

看的虽然累点~但是自己动手做的东西~支持!

使用特权

评论回复
8
长沙卖菜王|  楼主 | 2009-4-17 20:17 | 只看该作者

这不是我的原创

      说明下 原创不是我  我借鉴了一款LED手表 什么名字 忘记了 当时它的手表LED比较多 后来加上自己思维 就成了现在这个 用4个替代!

使用特权

评论回复
9
ningling_21| | 2009-4-17 20:44 | 只看该作者

怎么看时间呢?没看懂

使用特权

评论回复
10
bg6nw| | 2009-4-17 21:15 | 只看该作者

外人看不懂,保密性能好

BCD码钟表

使用特权

评论回复
11
chinaboy20| | 2009-4-17 21:17 | 只看该作者

觉的加个摇摆,变成旋转时钟算了,

使用特权

评论回复
12
Wxy8030| | 2009-4-17 21:44 | 只看该作者

想法还是很有创意的!

楼主如果能**.......总有机会会给你带来财富的

使用特权

评论回复
13
NE5532| | 2009-4-17 22:17 | 只看该作者

有创意,但是看起来确实不方便。

使用特权

评论回复
14
szsfy| | 2009-4-17 22:22 | 只看该作者

电工专用手表

使用特权

评论回复
15
古道热肠| | 2009-4-18 11:59 | 只看该作者

哈哈,有创意,还能锻炼人的定力.

当您生气时,看一看这个时间,并能准确报时,估计能平气不少.

使用特权

评论回复
16
古道热肠| | 2009-4-18 12:07 | 只看该作者

看表就是看发光管的二进制,然后全亮为分隔符,每次读1位数

使用特权

评论回复
17
huangqi412| | 2009-4-18 12:28 | 只看该作者

在一个国外网站看过一模一样的设计了.

还有几个更创意的钟,不记得了.

使用特权

评论回复
18
huangqi412| | 2009-4-18 12:36 | 只看该作者

LZ挺有钻劲的,整这么多好玩意

使用特权

评论回复
19
84335262| | 2009-4-18 21:51 | 只看该作者

嘿嘿

读数难那还可以到别人那炫耀一下,毕竟他看不出时间偶看的出:)
不过浪费这么大颗芯片就是你的不对了……耍个小个的芯片噻

使用特权

评论回复
20
杜专| | 2009-4-19 11:12 | 只看该作者

考验人啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

201

帖子

0

粉丝