搜索
bottom↓
回复: 80

[原创diy]极其简单的小电子表

  [复制链接]

出0入0汤圆

发表于 2017-6-24 23:49:58 | 显示全部楼层 |阅读模式
电路结构极其简单
成本不到15元
最适合放在床头柜上
。。。。。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2017-6-24 23:50:39 | 显示全部楼层
调整时间的遥控器



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-6-25 00:33:32 | 显示全部楼层
复位RC的C用得也太大了。。

出0入0汤圆

发表于 2017-6-25 01:30:38 | 显示全部楼层
话说这电子表也不算小了吧

出0入0汤圆

发表于 2017-6-25 01:33:42 | 显示全部楼层
你这个算电子钟了吧

出0入4汤圆

发表于 2017-6-25 01:54:08 来自手机 | 显示全部楼层
这至少也得用个DS1302噻

出0入8汤圆

发表于 2017-6-25 03:54:04 来自手机 | 显示全部楼层
调时间的按钮还是加上好一些。

出0入0汤圆

发表于 2017-6-25 06:50:36 | 显示全部楼层
至少要有茶色有机玻璃板蒙在数码管上,要么看时间不是很容易分辨

出0入0汤圆

发表于 2017-6-25 08:23:25 来自手机 | 显示全部楼层
怎么不用ds类时钟ic,掉电,精度,32.768k石英,精度,怎么不用低功耗mcu,你要加个ups供电吗?

出0入0汤圆

发表于 2017-6-25 08:33:40 | 显示全部楼层
合页是亮点,赞一个!

出0入0汤圆

发表于 2017-6-25 10:32:03 | 显示全部楼层
这个确实不小了。

建议功耗也要考虑,24小时工作的。然后晚上睡觉时,最好能到时间点固定关闭屏显,不然就当床头灯用了

出0入0汤圆

发表于 2017-6-25 10:34:12 | 显示全部楼层
动手能力强, 不知道背面是怎么样的

出0入8汤圆

发表于 2017-6-25 10:49:15 来自手机 | 显示全部楼层
晚上自动将亮度降低。否则影响睡眠。另外,这电磁辐射……

出0入0汤圆

发表于 2017-6-25 11:43:56 来自手机 | 显示全部楼层
电磁辐射怎么分析出来的?

出0入0汤圆

发表于 2017-6-25 11:53:05 | 显示全部楼层
调时间太麻烦,自己加个GPS模块,定期校正时间。

出0入0汤圆

发表于 2017-6-25 11:56:20 来自手机 | 显示全部楼层
本帖最后由 wumaoxu 于 2017-6-25 11:58 编辑

好像数码
之家发过。
还是用ds3231这种rtc好用。
编辑原因:刚才用手机点错了,发了一半。

出0入0汤圆

发表于 2017-6-25 11:57:22 来自手机 | 显示全部楼层
AT89c2051    差不多二十年前的东西了

出0入0汤圆

发表于 2017-6-25 12:04:01 | 显示全部楼层
2051我有几十片,有人要不

出0入0汤圆

发表于 2017-6-25 12:39:24 | 显示全部楼层
这能叫做“表”吗? 另外,遥控器不建议用电视那些巨无霸,搞个多媒体用的,小巧玲珑,面板很清爽。

出0入0汤圆

发表于 2017-6-25 13:10:36 | 显示全部楼层
其实这应该叫极其简单的51开发板

出0入0汤圆

发表于 2017-6-25 13:30:07 | 显示全部楼层
这个比较经典啊,想当初自己也做了一个,满满的回忆!

出0入0汤圆

发表于 2017-6-25 13:31:31 | 显示全部楼层
LZ可否考虑换STM8

出0入0汤圆

发表于 2017-6-25 15:56:29 | 显示全部楼层
我的第一个程序,就是用汇编和2051写的闹钟

出0入0汤圆

发表于 2017-6-25 16:06:16 | 显示全部楼层
3DA502 发表于 2017-6-25 15:56
我的第一个程序,就是用汇编和2051写的闹钟

我第一个是汇编的比例遥控电子调速器,在89C2051上的

出0入0汤圆

发表于 2017-6-25 16:06:40 | 显示全部楼层
电子钟是入门砖,。。。。。

出0入0汤圆

发表于 2017-6-25 20:19:29 | 显示全部楼层
at89c2051  老爷级的入门IC

出0入0汤圆

发表于 2017-6-25 21:11:58 | 显示全部楼层
这。。放床头的东西好歹也要讲一些颜值的吧

出0入0汤圆

发表于 2017-6-25 21:20:29 | 显示全部楼层
共享一下程序。

出0入0汤圆

发表于 2017-6-25 21:26:56 | 显示全部楼层
红外接收模块,不需要加一个滤波电容,一个上拉电阻,一个限流电阻吗?

出0入0汤圆

发表于 2017-6-25 21:27:41 | 显示全部楼层
晶振,复位电路,可以用内置的,

出0入0汤圆

发表于 2017-6-25 21:45:02 | 显示全部楼层
相同的电路,我也做过一个,十多年了,现在还在使用,芯片用的是AT89C52。因为只做了一个,每个月10S左右的时间偏差,如果不停电,几乎不用调整时间 。
问题是时间久了,LED亮度降低了很多,正在考虑是否需要更换LED 。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-6-25 21:52:29 | 显示全部楼层
楼主,AT89c2051市场居然还能买得到??你的下载程序应该是用专用的编程器下载的吧?

出0入0汤圆

发表于 2017-6-25 21:52:54 | 显示全部楼层
原理图画的漂亮

出50入10汤圆

发表于 2017-6-26 08:56:00 来自手机 | 显示全部楼层
哈哈!最开始学单片机c语言编程语言,也是用的2051,十多年了。时空穿越一般。

出0入50汤圆

发表于 2017-6-26 12:15:59 | 显示全部楼层
嘿嘿,N年前学51入门的一个制作,就是楼主这个东东,当时没配遥控器,但是弄了一个串口输入端,可以从串口输入命令校准时间,VB的上位机,用了一个抓取当前PC时间段函数,实时同步PC和时钟的时间,也是一边翻书学VB,一边学C51,可以设置14个闹点,配合一个蜂鸣器做闹钟用。这个闹钟1年多前翻到过,还能工作。

想起这事,很感谢《平凡的单片机世界》的平凡老师,他写的C51教程让我从讨厌的汇编,转向了C51的编程。

出0入0汤圆

 楼主| 发表于 2017-6-26 12:27:37 | 显示全部楼层
xiaobendan 发表于 2017-6-25 12:04
2051我有几十片,有人要不

我要~~~~~~~~~~~~~~~

出0入90汤圆

发表于 2017-6-26 13:02:00 | 显示全部楼层
我有个STM8的,带电池和RTC,小巧很多,跟数码管一样大,从正面看就只有一个数码管。

出0入0汤圆

发表于 2017-6-26 13:12:44 | 显示全部楼层
原理图画的很漂亮

出0入0汤圆

 楼主| 发表于 2017-6-26 13:22:22 | 显示全部楼层
~just_yy 发表于 2017-6-25 21:11
这。。放床头的东西好歹也要讲一些颜值的吧

有颜值的见下面:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出5入14汤圆

发表于 2017-6-26 13:26:49 | 显示全部楼层
这个东西楼主放在床头靠着脑袋,也不怕夜里老做梦??

出0入17汤圆

发表于 2017-6-26 13:31:49 | 显示全部楼层
lxa0 发表于 2017-6-26 13:22
有颜值的见下面:

我觉得还不如裸着呢。

出0入0汤圆

发表于 2017-6-26 14:00:12 | 显示全部楼层
我还以为,,,我穿越了,,,

出0入14汤圆

发表于 2017-6-26 14:43:51 | 显示全部楼层
我还想着能比我们初中买的几块钱的电子表简单吗。。。。。。

出0入0汤圆

发表于 2017-6-27 10:37:05 | 显示全部楼层
关键是你这个耗电怎么样啊?还是要连个电源变压器一直插着的啊

出0入4汤圆

发表于 2017-6-27 11:05:22 | 显示全部楼层
这个铰链有点个性!

出0入0汤圆

 楼主| 发表于 2017-6-27 11:32:59 | 显示全部楼层
本帖最后由 lxa0 于 2017-6-28 22:46 编辑
four_zhg 发表于 2017-6-27 10:37
关键是你这个耗电怎么样啊?还是要连个电源变压器一直插着的啊


用手机充电器就可以
耗电量测试一年一度

出0入0汤圆

发表于 2017-6-27 14:46:53 | 显示全部楼层
这么丑,也不准。

出0入0汤圆

发表于 2017-6-27 16:32:39 来自手机 | 显示全部楼层
这个也能摆在床头  简直不能直视

出0入0汤圆

发表于 2017-6-27 21:32:05 | 显示全部楼层
hao,好思路,大量旧原件可以发热了!

出0入0汤圆

发表于 2017-6-27 23:16:13 来自手机 | 显示全部楼层
原来李工也在这里啊!很是佩服啊!李工可以在坛里开个胆机板块 这可是您的拿手活啊!

出0入0汤圆

发表于 2017-6-28 00:04:03 | 显示全部楼层
没RTC,不爽,断电再调时间麻烦啊

出0入0汤圆

发表于 2017-6-28 00:12:01 | 显示全部楼层
four_zhg 发表于 2017-6-27 10:37
关键是你这个耗电怎么样啊?还是要连个电源变压器一直插着的啊

LED显示的东西还有人希望用电池能用几年吗?那应该选择LCD的产品

出0入0汤圆

发表于 2017-6-28 00:13:46 | 显示全部楼层
wei669 发表于 2017-6-25 11:43
电磁辐射怎么分析出来的?

同问,强顶

出145入215汤圆

发表于 2017-6-28 01:51:06 来自手机 | 显示全部楼层
做的不错,加油。

出0入0汤圆

 楼主| 发表于 2017-6-28 22:47:18 | 显示全部楼层
airwolf09921 发表于 2017-6-27 23:16
原来李工也在这里啊!很是佩服啊!李工可以在坛里开个胆机板块 这可是您的拿手活啊! ...

多谢你的支持!!!!!!!

出0入0汤圆

发表于 2017-6-29 15:42:05 来自手机 | 显示全部楼层
xiaobendan 发表于 2017-6-25 12:04
2051我有几十片,有人要不

送吗?

出0入9汤圆

发表于 2017-6-29 17:17:17 | 显示全部楼层
attach://378590.jpg

有这个简单吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-6-29 20:03:14 | 显示全部楼层

全新的哦,便宜卖吧
当年做产品剩下的。
还有几百片贴片的MEGA48

出0入0汤圆

 楼主| 发表于 2017-7-1 02:08:07 | 显示全部楼层

代码是汇编的
怕是很多坛友看不懂啊~~~~~~~~~~~~~~~所以就没发上来

出0入0汤圆

 楼主| 发表于 2017-7-1 02:12:56 | 显示全部楼层
newuseruser 发表于 2017-6-26 13:31
我觉得还不如裸着呢。

这2个还行吧?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2017-7-1 02:16:18 | 显示全部楼层
xiaobendan 发表于 2017-6-29 20:03
全新的哦,便宜卖吧
当年做产品剩下的。
还有几百片贴片的MEGA48

便宜是多少元/片?
邮费几元?

出0入0汤圆

发表于 2017-7-1 07:22:51 | 显示全部楼层
lxa0 发表于 2017-7-1 02:16
便宜是多少元/片?
邮费几元?

良心价就好,放着也没用。
邮费的话10元左右吧,圆通,或者顺丰到付也行。

出0入0汤圆

发表于 2017-7-1 07:23:44 | 显示全部楼层
lxa0 发表于 2017-7-1 02:08
代码是汇编的
怕是很多坛友看不懂啊~~~~~~~~~~~~~~~所以就没发上来

看来是落后了
这个年代还要用汇编。

出0入0汤圆

 楼主| 发表于 2017-7-1 14:30:38 | 显示全部楼层
xiaobendan 发表于 2017-7-1 07:22
良心价就好,放着也没用。
邮费的话10元左右吧,圆通,或者顺丰到付也行。 ...

邮费10元不算贵
你说的良心价是多少呀?

另:我只玩汇编,如今就要退休了,学不进C语言了~~~~~~~~呵呵

出0入0汤圆

发表于 2017-7-1 16:41:10 | 显示全部楼层
lxa0 发表于 2017-7-1 14:30
邮费10元不算贵
你说的良心价是多少呀?

C可以不用学那些结构联合的,只用简单的语法,比汇编容易多了。
我不知道现在什么价格,3元左右吧好像,淘宝应该有,你自己查吧,然后给我个接收价格

出0入0汤圆

发表于 2017-7-1 17:48:27 | 显示全部楼层
还不错,挺亮的,自娱自乐就好。

出0入0汤圆

 楼主| 发表于 2017-7-2 12:06:22 | 显示全部楼层
wiser803 发表于 2017-7-1 17:48
还不错,挺亮的,自娱自乐就好。

谢谢你的支持与理解~~~~~~~~~~~~~玩的是开心

出0入0汤圆

 楼主| 发表于 2017-7-2 12:07:05 | 显示全部楼层
xiaobendan 发表于 2017-7-1 16:41
C可以不用学那些结构联合的,只用简单的语法,比汇编容易多了。
我不知道现在什么价格,3元左右吧好像, ...

你先说下有多少存货?

出0入0汤圆

发表于 2017-7-2 13:25:17 | 显示全部楼层
lxa0 发表于 2017-7-2 12:07
你先说下有多少存货?

这个我还真得去看看,
2051好像不多,MEGA48贴片的比较多

出0入0汤圆

发表于 2017-7-2 13:40:35 | 显示全部楼层
lxa0 发表于 2017-7-2 12:07
你先说下有多少存货?

刚看DIP20的了2051有58片,还有4片DIP40的P89C58BP,飞利浦的。还有几十个DIP20的座。
MEGA48贴片的有800片左右
我还有一些STC的SOP20的12C5201什么的,还有11F01什么的,都不多了。

出0入0汤圆

 楼主| 发表于 2017-7-3 01:19:05 | 显示全部楼层
xiaobendan 发表于 2017-7-2 13:40
刚看DIP20的了2051有58片,还有4片DIP40的P89C58BP,飞利浦的。还有几十个DIP20的座。
MEGA48贴片的有800 ...

2051有58片是AT公司的吧?
说说几米出?
还有就是邮费多少?
别的不要

出0入0汤圆

发表于 2017-7-3 12:00:52 | 显示全部楼层
lxa0 发表于 2017-7-3 01:19
2051有58片是AT公司的吧?
说说几米出?
还有就是邮费多少?

150包顺丰怎样?送座给你

出0入0汤圆

发表于 2017-7-3 12:01:57 | 显示全部楼层
lxa0 发表于 2017-7-3 01:19
2051有58片是AT公司的吧?
说说几米出?
还有就是邮费多少?

当然是AT啊,早期的剩货,当初做东西也是出了力的,做的东西目前还有很多在服役。

出0入0汤圆

 楼主| 发表于 2017-7-3 13:11:11 | 显示全部楼层
xiaobendan 发表于 2017-7-3 12:01
当然是AT啊,早期的剩货,当初做东西也是出了力的,做的东西目前还有很多在服役。 ...

先上个图看看吧?

出0入0汤圆

发表于 2017-7-31 06:25:06 来自手机 | 显示全部楼层
还批量了?LZ

出0入0汤圆

 楼主| 发表于 2017-7-31 17:56:34 | 显示全部楼层

是的
给好几个好友做的

出0入20汤圆

发表于 2017-8-1 08:30:05 | 显示全部楼层
看了这个想起1998年做的AT89C2051.电子钟。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入20汤圆

发表于 2017-8-1 08:30:47 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入20汤圆

发表于 2017-8-1 08:31:54 | 显示全部楼层
本帖最后由 mon51 于 2017-8-1 08:34 编辑

2000年加入了农历显示,全部汇编编写。现在还有一个在床头。8路定时使用很方便。
;2001.5.24
                        ;***************
                        ;all_clk1 _program  2000-10-12
                        ;***************
                        fl_250ms  bit  00h
                        fl_500ms  bit  fl_250ms+1
                        set_clk_f bit fl_500ms+1
                        set_al4_f bit set_clk_f+1
                        am_f      bit set_al4_f+1
                        fl_3s     bit am_f+1
                        al1_f     bit fl_3s+1
                        al2_f     bit fl_3s+2
                        al3_f     bit fl_3s+3
                        al4_f     bit fl_3s+4
                        set_over  bit al4_f+1                                               
                        ha_f      bit set_over+1
                        ha_over   bit ha_f+1
                        fl_ms_f   bit ha_over+1
                        fl_s_f    bit fl_ms_f+1                       
                        key_over  bit fl_s_f+1
                        ;**************************************************               
                        key_data   equ 08h
                        timers     equ key_data+1
                        t_30ms     equ timers+1
                        t_20ms     equ t_30ms+1
                        t_1s       equ t_20ms+1
                        k1_data    equ t_1s+1
                        k2_data    equ k1_data+1
                        stat_work  equ k2_data+1
                        stat_led   equ stat_work+1
                        t_1ms      equ stat_led+1
                        t_20m      equ t_1ms+1                               
                        beep       equ t_20m
                        al1        equ beep+1
                        al2        equ beep+2
                        al3        equ beep+3
                        al4        equ beep+4
                        al5        equ beep+5
                        al6        equ beep+6
                        al7        equ beep+7
                        al8        equ beep+8
                        ret_timer  equ al8+1
        ;**************************************************               
                        sec    equ  23h
                        min    equ  sec+1h
                        hour   equ  min+1h
                        day    equ  hour+1h
                        mon    equ  day+1h
                        year   equ  mon+1h
                        w_adj  equ  year+1h                       
                        week   equ  w_adj+1h
        ;***************************************
                        al1_h   equ  week+1h
                        al1_m   equ  al1_h+1h
                        al2_h   equ  al1_m+1h
                        al2_m   equ  al2_h+1h
                        al3_h   equ  al2_m+1h
                        al3_m   equ  al3_h+1h
                        al4_h   equ  al3_m+1h
                        al4_m   equ  al4_h+1h
                        al5_h   equ  al4_m+1h
                        al5_m   equ  al5_h+1h
                        al6_h   equ  al5_m+1h
                        al6_m   equ  al6_h+1h
                        al7_h   equ  al6_m+1h
                        al7_m   equ  al7_h+1h
                        al8_h   equ  al7_m+1h
                        al8_m   equ  al8_h+1h
                        beep_t  equ  al8_m+1
                        frist   equ  beep_t+1
        ;**************************************               
                            led1        equ frist+1
                        led2        equ led1+1
                        led3        equ led2+1
                        led4        equ led3+1
                        led5        equ led4+1
                        sp_data     equ led5+1
                ;**************************************               
                        led_1     bit p3.5
                        led_2     bit p3.4
                        led_3     bit p3.3
                        led_4     bit p3.2
                        led_5     bit p3.1
                           
                       beep_f         BIT P3.7
                       key_f          bit p3.0
                       
        ;********************************************************                                               
                        t_h_100ms       equ   05dh  ;100 ms for 6MHz
                        t_l_100ms       equ   07fh  ;c6  for 100ms                        
                        timer_no        equ   8d   ;3c90+30d=3cb0h
                        w_adj_dat       equ   50d
                        key_da          equ   00000110b

        ;*********************************************************                
                        blk_led equ   20d                       
                        dot_led equ   21d                       
                        f_led        equ   22d               
                        n_led   equ   23d                       
                        u_led   equ   24d
                        t_led   equ   25d
                        b_led   equ   26d
                        d_led   equ   27d
                       
                       
                        oRG  0000H;            ;
                             sJMP start            
                        ORG  0003H;            ;
                            reti;
                        ORG  000BH             ;
                             ;ajmp t0
                             reti           ;
                        ORG  0013H   
                             reti              ;
                        ORG  001BH             ;
                             aJMP T1        ;
                        ORG  0023H             ;
                            RETI; AJMP RS_485             ;
                       
;**************************************                     
start:   
                call clr_ram
                MOV SP,#sp_data       ;
                call int_t0
                call timer_int
                call timer_20ms
STAR_BI:
          call   clock       
          call   week_auto
          call   al_out
          CALL   KEY_bord
          call   key_del                  
          call   set_clk_al
          call   key_jmp       
          call   reback
          call   led_jmp
sjmp star_bi       
;*******************************************
reback:
                mov a,stat_work
                jz reback_end
                jb al1_f ,ka1
                mov ret_timer,sec
                setb al1_f       
                sjmp reback_end
        ka1:       
                mov a,ret_timer
                add a,#05d
                mov b,#60d
                div ab
                mov a,sec
                cjne a,b,reback_end
                clr al1_f
                mov stat_work,#00d
reback_end:
                ret
key_jmp:
                mov a,key_data
                jz key_jmp_end               
                mov ret_timer,sec
                cjne a,#01d,kk1
                mov a,stat_work
                inc a                        ;k1_key
                cjne a,#9d,kka1
                mov a,#00d
        kka1:       
                mov stat_work ,a
                sjmp key_jmp_end       
        kk1:
                mov a,stat_work   ;k2_key
                jnz kk2
                mov a,stat_led
                inc a
                cjne a,#05d,kka2
                mov a,#00d
        kka2:
                mov stat_led,a
                sjmp key_jmp_end
        kk2:
                acall all1
                cpl a
                mov @r0,a
key_jmp_end:
                ret

        all1:
                mov r0,#al1
                mov a,stat_work
                dec a
                add a,r0
                mov r0,a
                mov a,@r0
                ret

led_jmp:
;**********************************
                ;mov stat_work,#01d
                ;mov stat_tw,#01d

                mov a,stat_work
                jnz led_al1
                mov a,stat_led
                acall led_t_d               
                mov led1,week
                sjmp led_jmp_end
        led_al1:
                acall all1
                mov led1,#f_led
                jnz le_t2
                mov led1,#n_led
        le_t2:
                jb fl_250ms ,le_t4
                mov led1,#blk_led
        le_t4:
                acall al_led       
led_jmp_end:
                acall led
                ret
;*************************************

time_24:
                mov a,hour
                acall bcd_8
                mov led2,a
                jnz tim4
                mov led2,#blk_led
        tim4:
                mov led3,b
                jb fl_500ms,tim1
                mov a,b
                add a,#10d
                mov led3,a               
        tim1:       
                acall led_min
time_12_end:
                ret
;***********************************       
        led_min:
                mov a,min
                acall bcd_8
                jb fl_500ms ,tim2
                add a,#10d
        tim2:       
                mov led4,a
                mov led5,b
                ret
;*************************************


date_led:
                mov a,mon
                acall bcd_8
                mov led2,a
                jnz da1
                mov led2,#blk_led
        da1:       
                mov a,b
                add a,#10d
                mov led3,a
                mov a,day
                acall bcd_8
                mov led4,a
                jnz da2
                mov led4,#blk_led
        da2:       
                mov led5,b
date_led_end:
                ret

;*************
; D_8=>BCD
;*************
     BCD_8:     
                MOV B,#10D
                DIV AB
                RET
;****************************************
LED:            
                mov p1,#0
                mov dptr,#led_asc
        ;***************************led1
                mov a,led1
                movc a,@a+dptr
                mov p1,a
                clr   led_1
                acall timer_1ms
                acall timer_1ms
                ;acall timer_1ms
                ;acall timer_1ms
                ;acall timer_1ms
       
                setb led_1
        ;*************************led2  
        led_led2:
                mov a,led2
                movc a,@a+dptr
                mov p1,a
                clr  led_2
                acall timer_1ms
                setb led_2
        ;*************************led3  
        led_led3:
                mov a,led3
                movc a,@a+dptr
                mov p1,a
                clr   led_3
                acall timer_1ms
                setb led_3
        ;*************************led4  
        led_led4:
                mov a,led4
                movc a,@a+dptr
                mov p1,a
                clr   led_4
                acall timer_1ms
                setb led_4
        ;*************************led5  
        led_led5:
                mov a,led5
                movc a,@a+dptr
                mov p1,a
                clr   led_5
                acall timer_1ms
                setb led_5
        ;*************************      
led_end:
                mov p1,#0
                ret
;************************************
;                   bafhcdeg         
led_asc:
                db 11101110B;0
                db 10001000B;1
                db 11000111B;2
                db 11001101B;3
                db 10101001B;4
                db 01101101B;5
                db 01101111B;6
                db 11001000B;7
                db 11101111B;8
                db 11101101B;9
                db 11111110B;0.   =>10d
                db 10011000B;1.
                db 11010111B;2.
                db 11011101B;3.
                db 10111001B;4.
                db 01111101B;5.
                db 01111111B;6.
                db 11011000B;7.
                db 11111111B;8.
                db 11111101B;9.
                DB   00000000B;BLACK=>20d
                DB   00010000B;dot=>21d
                DB   00100110b;l=>22d
                dB   10101011B;h=>23d
                DB   10101110B;u=>24d
                DB   00100111B;t=>25d
                dB   00101111B;b=>26d
                dB   10001111B;d=>27d

;                    bafhcdeg         

;**********************************
;delay
;********************************
timer_1ms:
                mov t_1ms,#030h
        r2_1:       
                djnz t_1ms , r2_1               
                ret
timer_20ms:
                mov t_20m,#050d
        r2_2:       
                call clock
                call led
                djnz t_20m , r2_2               
                call week_auto
                call al_out
                ret
;#############################################
;if mon<=2 and year=4Z(0,1,2,3...)
;gs1=>week=mod([5/4]*year+mon_asc(mon)+day-1)/7
;else
; gs2=>week=mod([5/4]*year+mon_asc(mon)+day)/7
week_auto:      
        
        mov a,YEAR
              mov b,#05
              mul ab
        mov r4,b
        mov r5,a
        mov r7,#04
        call mul_2

        MOV DPTR,#MON_ASC
        MOV A,MON
        dec a
        MOVC A,@A+DPTR
        ADD A,r3
;*********************
        MOV B,DAY
        ADD A,B
        mov r3,a;r3=gs2
;*******jb mon<=2 ******
        MOV A,MON
        CJNE A,#02D,WEEK_1
        SJMP WEEK_2
WEEK_1:
        JC WEEK_2
week_3:
        mov a,r3
        mov b,#07
        div ab
        mov a,b
        sjmp week_4
WEEK_2:
;*****jb year=4N ******
        mov a,year
        mov b,#04
        div ab
        mov a,b
        jnz week_3
        mov a,r3
        dec a
        mov b,#07
        div ab
        mov a,b       
week_4:
        MOV WEEK,a
        jnz week_end
        mov week,#07h
week_end:               
        RET
MON_ASC:
        DB 6d, 2d, 2d, 5d, 0d, 3d, 5d, 1d, 4d, 6d, 2d, 4d ;2002.5.5
;r4r5/r7=r3
mul_2:
D457: CLR C
MOV A,R4
SUBB A,R7
JC DV50
SETB OV
RET
DV50: MOV R6,#8 ;;求平均值(R4R5/R7-→R3)
DV51: MOV A,R5
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R4,A
MOV F0,C
CLR C
SUBB A,R7
ANL C,/F0
JC DV52
MOV R4,A
DV52: CPL C
MOV A,R3
RLC A
MOV R3,A
DJNZ R6,DV51
MOV A,R4 ;;四舍五入
ADD A,#0;R4
JC DV53
SUBB A,R7
JC DV54
DV53: INC R3
DV54: CLR OV
RET
;*************************************************************
        clr_ram:
               MOV R7,#78h       ;
                MOV R0,#0bH       ;
                CLR A             ;
CR:             INC R0            ;
                MOV @R0,A         ;
                djnz r7,cr        ;CLR RAM
                ret
;************** INT_CTRL
int_t0:
                 setb et1
                 MOV TMOD,#00010001b     ;
                mov w_adj,#w_adj_dat
                setb ea
                jmp adj_w
;**********************************************
al_led:
                mov r0,#al1_h
                mov a,stat_work
                dec a
                rl a
                add a,r0
                mov r0,a
                mov a,@r0
                acall bcd_8
                mov led2,a
                jnz al_1
                mov led2,#blk_led
        al_1:
                mov a,b
                add a,#10d
                mov led3,a
                inc r0
                mov a,@r0
                acall bcd_8
                add a,#10d
                mov led4,a
                mov led5,b
al_led_end:
                ret
               
;********************************
set_clk_al:
                jnb set_clk_f,see1
                call set_clock
                clr set_clk_f
                sjmp see2
        see1:
                jnb set_al4_f,see2
                call set_al4
                clr set_al4_f
        see2:   
                  ret       
;*********************************
                proc led_t_d
led_t_d:
                mov dptr,#led_ord_3
                mov b,#02h
                mul ab
                jmp @a+dptr
               
led_ord_3:      ajmp led_k0_2
                ajmp led_k1_2
                ajmp led_k2_2
                ajmp led_k3_2
                ajmp led_k4_2
               
led_k0_2:    ;   timer_12 and date to led
                acall time_12
                jnb fl_3s ,lk1
                acall date_led                               
        lk1:
                ajmp led_jmp_5_end
led_k1_2:    ;  timer_12 to led
                acall time_12
                ajmp led_jmp_5_end
led_k2_2:       ;timer_24and date to led
                acall time_24
                jnb fl_3s ,lk2
                acall date_led                               
        lk2:
                ajmp led_jmp_5_end
led_k3_2:       ;timer_24to led
                acall time_24
                ajmp led_jmp_5_end

led_k4_2:       ;sec to led
                mov led1,#blk_led
                mov led2,#blk_led
                mov led3,#dot_led
                mov a,sec
                acall bcd_8
                add a,#10d
                mov led4,a
                mov led5,b                       
led_jmp_5_end:  
                ret
                end

;****************************************
                proc set_al4
set_al4:
                mov k1_data,#01d
                mov k2_data,#01d
                clr set_over               
                acall led_al
                acall key_bord
                call sf_key
                mov key_data,#0
                mov frist,#0
set_al41:

                call clock
                call week_auto
                acall led_al
                acall key_bord
                call key_del
                acall key_al
                jnb set_over,set_al41               
                clr a
                mov k1_data,a
                mov k2_data,a
                mov key_data,a
                mov frist,a
                ret
                end
;**************************************
                proc key_al
key_al:
                mov a,key_data
                jz key_al_end
                cjne a,#01d,k2_al

                inc k1_data     ;(1-9)
                mov a,k1_data
                cjne a,#19d,key_al_end
                mov k1_data,#01d
                sjmp key_al_end       
       
       
        k2_al:
                mov a,k1_data
                cjne a,#018d,ke2
                setb set_over
                sjmp key_al_end
        ke2:       
                mov r0,#al1_h
                dec a
                add a,r0
                mov r0,a
                inc @r0
                acall jj_bit
                mov b,#24d
                jnz ke3       
                mov b,#60d
        ke3:
                mov a,@r0
                div ab
                mov a,b
                mov @r0,a
key_al_end:
        ret
        end       
jj_bit:
                mov a,k1_data
                mov b,#02d
                div ab
                mov a,b ;(a=1,0)
                ret
;*********************************       
        led_out1:
                mov led2,#00h
                mov led3,#u_led
                mov led4,#t_led
                mov led5,#blk_led
                mov led1,#blk_led
                ret
;********************************
led_al:
                mov a,k1_data
                cjne a,#017d,lo1
                acall beep_timer       
                sjmp led_al_end
        lo1:       
                cjne a,#18d,ld1
                acall led_out1
                sjmp led_al_end
        ld1:       
                inc a
                mov b,#02d
                div ab
                ;**********
                mov led1,a
                ;**********
                dec a
                rl a
                mov r0,#al1_h
                add a,r0
                mov r0,a
                mov a,@r0
                acall bcd_8
                mov led2,a
                jnz ld2
                mov led2,#blk_led
        ld2:       
                mov a,b
                add a,#10d
                mov led3,a
;************************************               
                inc r0
                mov a,@r0
                acall bcd_8
                add a,#10d
                mov led4,a
                mov led5,b

;***************************flash bit
                jb fl_250ms,led_al_end
                acall jj_bit
                jnz led_al_e
                mov led4,#blk_led
                mov led5,#blk_led
                sjmp led_al_end
        led_al_e:
                mov led2,#blk_led
                mov led3,#blk_led
led_al_end:
                acall led
                ret
;***************************************
                proc set_clock
set_clock:
                mov k1_data,#01d
                mov k2_data,#01d
                clr set_over               
                call led_cl
                call key_bord
                call sf_key
                mov key_data,#0
                mov frist,#0
set_al41:
                call  clock
                acall  week_auto
                call  al_out
                acall led_cl
                acall key_bord
                call key_del
                acall key_cl
                jnb set_over,set_al41               
                ;acall key_bord
                clr a
                mov k1_data,a
                mov k2_data,a
                mov key_data,a
                mov frist,a
                ret
                end
;**************************************
                proc key_cl
key_cl:
                mov a,key_data
                jz key_al_end
                cjne a,#01d,k2_al

                inc k1_data     ;(1-8)
                mov a,k1_data
                cjne a,#9d,key_al_end
                mov k1_data,#01d
                sjmp key_al_end       
        k2_al:
                mov a,k1_data
                cjne a,#08d,ke2
                setb set_over
                sjmp key_al_end
        ke2:       
                dec a
                mov dptr,#asc_h
                movc a,@a+dptr
                mov b,a               
;********************************               
                mov r0,#sec
                mov a,k1_data
                dec a
                add a,r0
                mov r0,a
                inc @r0
                mov a,@r0
                div ab
                mov a,b
                mov @r0,a
key_al_end:
        ret
        end       
asc_h:
        db 60d,60d,24d,32d,13d,100d,100d

出0入20汤圆

发表于 2017-8-1 08:34:17 | 显示全部楼层
                proc led_cl
led_cl:
                mov dptr,#led_ord_3
                mov a,k1_data
                dec a
                mov b,#02h
                mul ab
                jmp @a+dptr
led_ord_3:      ajmp led_k0_2
                ajmp led_k1_2
                ajmp led_k2_2
                ajmp led_k3_2
                ajmp led_k4_2
                ajmp led_k5_2
                ajmp led_k6_2
                ajmp led_k7_2
               
led_k0_2:    ; led sec
                mov led2,#blk_led
                mov led3,#dot_led
                mov a,sec
                acall bcd_8
                add a,#10d
                mov led4,a
                mov led5,b
                jb fl_250ms ,lk1
                mov led4,#blk_led
                mov led5,#blk_led               
        lk1:       
                ajmp led_jmp_5_end
led_k1_2:    ; led min,hour
                acall led_hour
                jb fl_250ms ,lk2
                mov led4,#blk_led
                mov led5,#blk_led               
        lk2:       
                ajmp led_jmp_5_end
led_k2_2:       ;led min,hour
                acall led_hour
                jb fl_250ms ,lk3
                mov led2,#blk_led
                mov led3,#blk_led               
        lk3:       
                ajmp led_jmp_5_end
led_k3_2:       ;led day,mon
                acall led_mon
                jb fl_250ms ,lk4
                mov led4,#blk_led
                mov led5,#blk_led               
        lk4:       
                ajmp led_jmp_5_end
led_k4_2:    ; led day,mon
                acall led_mon
                jb fl_250ms ,lk5
                mov led2,#blk_led
                mov led3,#blk_led               
        lk5:       
                ajmp led_jmp_5_end
led_k5_2:    ; led year
                mov led2,#2d
                mov led3,#0d
                mov a,year
                acall bcd_8
                mov led4,a
                mov led5,b
                jb fl_250ms ,lk6
                mov led4,#blk_led
                mov led5,#blk_led               
        lk6:       
                ajmp led_jmp_5_end
led_k6_2:       ;led w_adj
                mov led2,#d_led
                mov led3,#blk_led
                mov a,w_adj
                acall bcd_8
                mov led4,a
                mov led5,b
                jb fl_250ms ,lk7
                mov led4,#blk_led
                mov led5,#blk_led               
        lk7:       
                ajmp led_jmp_5_end
led_k7_2:       ;led out
                acall led_out1
led_jmp_5_end:
                mov led1,week
                acall led
                ret
                end
               
        led_hour:
                mov a,hour
                acall bcd_8
                mov led2,a
                jnz lj1
                mov led2,#blk_led       
        lj1:       
                mov a,b
                add a,#10d
                mov led3,a
        ;*********************       
                mov a,min
                acall bcd_8
                add a,#10d
                mov led4,a
                mov led5,b
                ret
        led_mon:
                mov a,mon
                jnz lj5
                inc mon
                mov a,mon       
        lj5:
                acall bcd_8
                mov led2,a
                jnz lj2
                mov led2,#blk_led
        lj2:       
                mov led3,b
        ;*********************       
                mov a,day
                jnz lj4
                inc day
                mov a,day       
        lj4:
                acall bcd_8
                mov led4,a
                jnz lj3
                mov led4,#blk_led       
        lj3:       
                mov led5,b
                ret
;********************************************
al_out:
                jb ha_over,al_out_end
                mov r7,#8d
                mov r1,#al8_m                               
al_ch_1:
                mov r0,#min
                mov r6,#02d    ;min hour
        al_l:
                mov a,@r0
                mov b,@r1
                cjne a,b ,al_ch
                inc r0
                dec r1
                djnz r6 ,al_l       
;**************************************************
                mov a,r7
                dec a
                mov r0,#al1
                add a,r0
                mov r0,a
                mov a,@r0
                mov c,acc.0
                cpl c
                anl c,fl_250ms
                cpl c
                mov beep_f,c       
                acall beep_out               
al_ch:  
                clr c
                mov a,r1
                subb a,r6
                mov r1,a
                djnz r7,al_ch_1
al_out_end:
                ret

beep_out:
                jb ha_f,ba1
                mov beep,sec
                setb ha_f                                                
        ba1:
                mov a,beep
                add a,beep_t
                mov b,#60d
                div ab
                mov a,sec
                cjne a,b,beep_out_end
                setb beep_f
                setb ha_over
                clr ha_f
beep_out_end:
                ret
timer_int:
                MOV T_1S,#TIMER_no
                mov beep_t,#15d
                mov year ,#01d
                mov mon , #011d
                mov day , #06d
                mov hour ,#13d
                mov min , #00d
                mov sec , #00d
                mov r7,#16
                mov dptr ,#al_asc
                mov r0,#al1_h
        al_read:
                clr a
                movc a,@a+dptr
                mov @r0,a
                inc r0
                inc dptr
                djnz r7,al_read
                ret

;************************************
beep_timer:
                mov led1,#blk_led
                mov led2,#b_led
                mov led3,#blk_led
                mov a,beep_t
                acall bcd_8
                mov led4,a
                mov led5,b
                jb fl_250ms,ft1
                mov led4,#blk_led
                mov led5,#blk_led
ft1:
        ret               

time_12:
                mov dptr,#asc_12
                mov a,hour
                rl a
                movc a,@a+dptr
                mov led2,a
                jnz iu2
                mov led2,#blk_led       
        iu2:       
                inc dptr
                mov a,hour
                rl a
                movc a,@a+dptr
                jb fl_500ms ,iu1
                add a,#10d       
        iu1:       
                mov led3,a
                               
;*************************************** min to led
                acall led_min
time_24_end:
                ret
asc_12:
        db 11d,2d,21d,1d,21d,2d,21d,3d,21d,4d,21d,5d,21d,6d,21d,7d
        db 21d,8d,21d,9d,11d,0d,11d,1d
        db 1d,2d,0d,1d,0d,2d,0d,3d,0d,4d,0d,5d,0d,6d,0d,7d,0d,8d,0d,9d
        db 1d,0,1d,1d

clock:
;********************************
                mov a,sec       
                cjne a,#60d,clock_end;!!!!!!!!!!!!!!!!!!!!!!
                mov sec,#00h

                inc min
                ;**********
                clr ha_over  ;2001.5.6
               
                mov a,min
                cjne a,#60d,clock_end
                mov min,#00h
               
                inc hour
                mov a,hour
                cjne a,#24d,clock_end
                mov hour,#00h
               
                mov a,mon
                xrl a,#02d
                jnz mm_1
                mov dptr,#year_d
                mov a, year
                movc a,@a+dptr
                sjmp mm_2
        mm_1:
                mov a,mon
                dec a     
                mov dptr,#mou_12
                movc a,@a+dptr
        mm_2:
                mov b,a
                inc b
                inc day  ;***************day+1
                mov a,day
                cjne a ,b ,clck_end
                sjmp clck1
        clck_end:
                jc clock_end
        clck1:
                mov day,#01h
       
                inc mon
                mov a,mon
                cjne a,#13d ,clock_end
                mov mon,#01d                               

                inc year
                mov a,year
                 cjne a,#100d ,clock_end
                mov year,#00d                
clock_end:
                call   fl_out
                ret
mou_12:  
                db 31d, 28d, 31d, 30d, 31d,30d
                db 31d, 31d, 30d,31d, 30d,31d
         
year_d:
        db 29d, 28d, 28d, 28d, 29d, 28d        , 28d, 28d, 29d, 28d       
        db 28d, 28d, 29d, 28d, 28d, 28d        , 29d, 28d, 28d, 28d       
        db 29d, 28d, 28d, 28d, 29d, 28d        , 28d, 28d, 29d, 28d       
        db 28d, 28d, 29d, 28d, 28d, 28d        , 29d, 28d, 28d, 28d       
        db 'li jie 2000.5.15'
;***************************************
t1:
                push a
                push psw
                push b
                clr fl_ms_f
                djnz t_1s ,t1_end
                clr fl_s_f
                inc sec
                call adj_w
;********************************
t1_end:
                pop b
                pop psw
                pop a
                reti

        adj_w:
                clr tr1
                mov  a,#T_L_100ms
                add a, w_adj ;*******have 5 order
                mov tl1 ,a
                mov a,#T_H_100ms
                addc a, #00h
                mov th1,a               
                mov t_1s,#timer_no
                setb tr1
                ret

fl_out:       
                jb fl_ms_f ,fl_out_end
                setb fl_ms_f
                mov a,t_1s
                mov b,#02d
                div ab
                mov a,b
                jnz to_d1
                cpl fl_250ms
        to_d1:       
                mov a,t_1s
                mov b,#04d
                div ab
                mov a,b
                jnz to_d2
                cpl fl_500ms
        to_d2:       
fl_out_end:
                call sec_out
                ret
       
sec_out:
                jb fl_s_f ,sec_out_end
                setb fl_s_f
                mov a,sec
                mov b,#07d
                jnb fl_3s,za1               
                mov b,#02d
        za1:
                div ab
                mov a,b
                jnz sec_out_end
                cpl fl_3s       
sec_out_end:
                ret
;**********************************
key_del:
                mov a,key_data
                jnz kl_12
                mov a,frist
                jnz kl_13
                ret
        kl_13:
                mov key_data,frist
                mov frist,#0
                clr key_over               
                jmp sf_beep
        kl_12:       
                jnb key_over,kl11
                mov a,t_30ms
                add a,#03
                mov b,#60d
                div ab
                mov a,sec
                cjne a,b,key_del_end
                clr key_over               
                jmp set_key
        kl11:
                mov t_30ms,sec
                setb key_over
key_del_end:
                call sf_a
                cjne a,#key_da,sfg_12
                clr key_over               
                jmp sf_beep
        sfg_12:
                mov frist,key_data
                mov key_data,#0
                ret
;****************************************               
key_bord:
                acall re_k
                mov a,key_data
                jz key_bord1_end
                ;acall psf_key0
key_bord1_end:
                setb key_f
                ret
set_key:
        mov a,key_data
        cjne a,#01h,set_cc1
        setb set_al4_f
        sjmp sf23
set_cc1:
        cjne a,#02h,sf23
        setb set_clk_f
sf23:
        ret
;************************************
sf_key:
                call clock
                call week_auto
                call al_out
                setb key_f
                call led
                  call sf_a
                cjne a,#key_da,sf_key
                call sf_beep
        ret

sf_beep:

        clr beep_f
        call timer_20ms
        setb beep_f
        ret       
;********************************
re_k:       
                mov key_data,#00h
                mov p1,#00h
                mov a,p3
                orl a,#01111111b
                mov p3,a
                clr key_f
                mov a,p3
                setb key_f
                mov p1,#0ffh
                anl a ,#00000110b
                cjne a,#00000110b,you_key
re_k_end:       
                ret
you_key:
                call timer_20ms
                ;call led
                mov p1,#00h
                mov a,p3
                orl a,#01111111b
                mov p3,a
                clr key_f
                mov a,p3
                setb key_f
                mov p1,#0ffh
                anl a ,#key_da
                cjne a,#key_da,you_key1
                ret;sjmp re_k_end                                       
you_key1:
        jb acc.1,key_kb
        mov key_data,#02h
key_kb:       
        jb acc.2,sf_key0
        mov key_data,#01h
sf_key0:
        ret               

        sf_a:
                mov p1,#00h
                mov a,p3
                orl a,#01111111b
                mov p3,a
                clr key_f
                mov a,p3
                setb key_f       
                anl a ,#key_da
                ret
al_asc:
        db 06d,40d, 06d,50d, 07d,00d, 07d,10d;am 4_al
        db 07d,15d, 013d,40d, 13d,45d, 14d,15d;pm 4_al
       
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 12:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表