搜索
bottom↓
回复: 116

Yangyi的KL25开源项目进行中....[宠物(兔子/狗)自动定时喂...

[复制链接]

出10入10汤圆

发表于 2015-1-13 19:51:54 | 显示全部楼层 |阅读模式
项目描述:
准备制作一个宠物(兔子/狗)自动定时喂食机。由于出差、旅游或回家过年等原因,有时会有一周的时间不在家,但是所喂养的小动物又没人照顾,所以想借此机会在学习Freescale的Cortex-m0的KL25 MCU的同时,解决这个问题。
项目目标:可提供7天,每天3次的自动投食。3次的投食时间可设置。
后续可扩展:喂水,音乐或主人声音播放,增加雨棚的自动控制(要加雨滴传感器)。

使用KL25的:RTC\GPIO\PWM\低功耗休眠及唤醒,实现按键、LCD驱动、步进电机驱动、时钟功能、闹钟功能(通过闹钟实现定时喂食)

系统框图:



总费用:313元  
7个小步进电机及驱动板   9X7=63    之所以采用7个步进电机,是担心7天的食物重量太重,一个步进电机带不动。另外就是考虑到宠物安全问题,希望采用锂电池供电,小电机锂电池可以带的动,当然也可以小蓄电池供电。一天分3次步进,对应3次喂食。
1个128X64点阵液晶屏   25
1个锂电池充电升压模块      10     时间紧张,就使用现成模块,实际上可以自己搭电路。
其他零件、结构费用:   50     不需要打板,自己用洞洞板搭。
如果KL25的RTC不适用,会采用时钟模块。
时钟模块、锂电池自备、电源适配器自备

计划完成时间:

预计完成的时间。
预计两个月完成。争取春节前可用。

版权:
作品的版权归作者本人所有。授权发布在阿莫网站上,阿莫网站和飞思卡尔拥有资料的发布权和使用权。

本帖子中包含更多资源

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

x

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

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

出10入10汤圆

 楼主| 发表于 2015-1-13 19:54:33 | 显示全部楼层
保证金已经让朋友代支付。阿莫请查收后寄出快递。谢谢!

出0入0汤圆

发表于 2015-1-13 19:55:48 | 显示全部楼层
这个项目挺有意思的 !

出0入0汤圆

发表于 2015-1-13 19:56:28 | 显示全部楼层
看到这个项目突然想到,应该顺便做一个粪便处理系统。嘿嘿嘿

出0入0汤圆

发表于 2015-1-13 19:59:19 | 显示全部楼层
恶趣味了一下,楼主见谅。

出0入0汤圆

发表于 2015-1-13 20:23:33 | 显示全部楼层
luckner 发表于 2015-1-13 19:56
看到这个项目突然想到,应该顺便做一个粪便处理系统。嘿嘿嘿

这个可以有,要是养兔子半个月不打扫,那真就堆积成山,臭味绕梁了。
头像被屏蔽

出0入0汤圆

发表于 2015-1-13 20:31:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2015-1-13 20:34:56 | 显示全部楼层
同学刚做过一个宠物管理系统,以上功能都有,还加了摄像头,以太网

出0入0汤圆

发表于 2015-1-13 20:56:16 | 显示全部楼层
nightseas 发表于 2015-1-13 20:23
这个可以有,要是养兔子半个月不打扫,那真就堆积成山,臭味绕梁了。

你好懒兔子。关键是兔子可以到指定的地点排泄。不知您是否有更好的解决办法?

出0入0汤圆

发表于 2015-1-13 21:37:28 | 显示全部楼层
《小威》 发表于 2015-1-13 20:34
同学刚做过一个宠物管理系统,以上功能都有,还加了摄像头,以太网

宠物管理系统中以太网干嘛用的  !

出0入0汤圆

发表于 2015-1-13 21:48:01 来自手机 | 显示全部楼层
这项目有意思,期待

出0入0汤圆

发表于 2015-1-13 22:00:09 | 显示全部楼层
qs6361036 发表于 2015-1-13 21:37
宠物管理系统中以太网干嘛用的  !


可以通过手机端远程观看现场情况,或手动控制转盘

出0入0汤圆

发表于 2015-1-13 22:02:49 | 显示全部楼层
《小威》 发表于 2015-1-13 22:00
可以通过手机端远程观看现场情况,或手动控制转盘

使用的无线wifi 嘛 ?

出0入0汤圆

发表于 2015-1-13 22:10:24 | 显示全部楼层
好主意啊,经常出差的人方便了。

出0入0汤圆

发表于 2015-1-13 22:16:25 | 显示全部楼层
qs6361036 发表于 2015-1-13 22:02
使用的无线wifi 嘛 ?

宠物端用的是有线

出0入0汤圆

发表于 2015-1-13 22:47:09 | 显示全部楼层
养宠物的挺多的,尤其是兔子喂养比较麻烦,兔子不懂得饱,吃多了会撑死

出0入0汤圆

发表于 2015-1-13 22:51:00 | 显示全部楼层
xiaoyigechaos 发表于 2015-1-13 22:49
这图都是怎么画的?

像是Office画的

出0入0汤圆

发表于 2015-1-13 23:21:59 来自手机 | 显示全部楼层
智能宠物养殖?哈哈

出0入0汤圆

发表于 2015-1-13 23:33:40 | 显示全部楼层
qs6361036 发表于 2015-1-13 21:37
宠物管理系统中以太网干嘛用的  !

远程控制咯

出0入0汤圆

发表于 2015-1-13 23:34:23 | 显示全部楼层
《小威》 发表于 2015-1-13 20:34
同学刚做过一个宠物管理系统,以上功能都有,还加了摄像头,以太网

解决了粪便问题了吗

出0入0汤圆

发表于 2015-1-13 23:46:48 | 显示全部楼层
luckner 发表于 2015-1-13 23:34
解决了粪便问题了吗

只管喂食物,水,粪便不在考虑范围

出0入0汤圆

发表于 2015-1-14 07:49:10 来自手机 | 显示全部楼层
支持下,之前有个自动喂鱼的,啊猫啊狗这种这种比较麻烦

出0入0汤圆

发表于 2015-1-14 08:26:03 | 显示全部楼层
莫大推出这个开源项目真是太好了,有得学习了。童鞋们加油啊!水平有限只能帮顶了。

出0入0汤圆

发表于 2015-1-14 08:33:55 | 显示全部楼层
这个还得要个懂结构设计的哈

出0入0汤圆

发表于 2015-1-14 09:46:08 | 显示全部楼层
《小威》 发表于 2015-1-13 23:46
只管喂食物,水,粪便不在考虑范围

要是能把粪便问题解决了,一定很赞!

出0入0汤圆

发表于 2015-1-14 11:15:58 | 显示全部楼层
这个项目有意思

出0入0汤圆

发表于 2015-1-14 11:47:19 | 显示全部楼层
这个项目有点意思,嘿嘿,自动养殖

出5入42汤圆

发表于 2015-1-14 12:42:44 | 显示全部楼层
我想参加这个项目,宠物自动喂食机。具体有什么计划吗

出0入0汤圆

发表于 2015-1-14 16:21:04 | 显示全部楼层
luckner 发表于 2015-1-14 09:46
要是能把粪便问题解决了,一定很赞!

目前还没有提上议程
头像被屏蔽

出0入0汤圆

发表于 2015-1-14 16:25:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出10入10汤圆

 楼主| 发表于 2015-1-14 20:00:53 | 显示全部楼层
luckner 发表于 2015-1-13 19:56
看到这个项目突然想到,应该顺便做一个粪便处理系统。嘿嘿嘿

兔以食为天,生存是第一位的。先解决饿不死的问题。

出10入10汤圆

 楼主| 发表于 2015-1-14 20:02:18 | 显示全部楼层
nightseas 发表于 2015-1-13 20:23
这个可以有,要是养兔子半个月不打扫,那真就堆积成山,臭味绕梁了。

是啊,每天打扫一次都还有味道。

出10入10汤圆

 楼主| 发表于 2015-1-14 20:04:19 | 显示全部楼层
luckner 发表于 2015-1-13 20:56
你好懒兔子。关键是兔子可以到指定的地点排泄。不知您是否有更好的解决办法? ...

兔子还是比较爱干净的。一般会自己到固定的地方排泄。

出10入10汤圆

 楼主| 发表于 2015-1-14 20:05:17 | 显示全部楼层
xiaoyigechaos 发表于 2015-1-13 22:49
这图都是怎么画的?

用PPT画的。

出0入0汤圆

发表于 2015-1-14 20:11:54 | 显示全部楼层
luckner 发表于 2015-1-13 20:56
你好懒兔子。关键是兔子可以到指定的地点排泄。不知您是否有更好的解决办法? ...

要是能培养到固定的地方就好办了,可以考虑定时冲水或者自动封装一次性的塑料袋

出0入0汤圆

发表于 2015-1-14 20:13:00 | 显示全部楼层
yangyi 发表于 2015-1-14 20:04
兔子还是比较爱干净的。一般会自己到固定的地方排泄。

为啥我家以前养的兔子不呢,没教育好……

出0入0汤圆

发表于 2015-1-14 21:25:49 | 显示全部楼层
nightseas 发表于 2015-1-14 20:11
要是能培养到固定的地方就好办了,可以考虑定时冲水或者自动封装一次性的塑料袋 ...

对,关键是如何培养这个问题,其余的处理都不是什么难题。

出0入0汤圆

发表于 2015-1-14 21:27:09 | 显示全部楼层
yangyi 发表于 2015-1-14 20:00
兔以食为天,生存是第一位的。先解决饿不死的问题。

哈哈哈哈哈哈哈

出0入0汤圆

发表于 2015-1-14 21:41:00 | 显示全部楼层
系统框架图很萌,赞

出0入0汤圆

发表于 2015-1-14 21:48:33 | 显示全部楼层
今天还在网上看到一个台湾人搞的宠物猫自动喂食机。
http://www.huxiu.com/article/106226/1.html
在indiegogo上的众筹
https://www.indiegogo.com/projec ... zes-your-cat-s-face

出0入0汤圆

发表于 2015-1-14 21:49:47 | 显示全部楼层
其实真的应该搞个粪便处理机

出10入10汤圆

 楼主| 发表于 2015-1-15 06:34:27 | 显示全部楼层
本帖最后由 yangyi 于 2015-1-15 07:06 编辑
Ilidan 发表于 2015-1-14 07:49
支持下,之前有个自动喂鱼的,啊猫啊狗这种这种比较麻烦


鱼饲料比较小,也没有排泄问题。相对好弄些。

出10入10汤圆

 楼主| 发表于 2015-1-15 06:39:39 | 显示全部楼层
nightseas 发表于 2015-1-14 20:13
为啥我家以前养的兔子不呢,没教育好……

也没专门培养。只是放了一个上面放有铁丝栅栏的盘子。说过兔子也爱干净,就像人上大号一样,下次不会弄在身上。

出10入10汤圆

 楼主| 发表于 2015-1-15 06:43:05 | 显示全部楼层
wanderhope 发表于 2015-1-14 21:49
其实真的应该搞个粪便处理机

是该搞一个,夏天一天两次,没人愿意打扫。不过工程量太大,时间不够啊。

出10入10汤圆

 楼主| 发表于 2015-1-15 06:47:04 | 显示全部楼层
kevin_me 发表于 2015-1-14 12:42
我想参加这个项目,宠物自动喂食机。具体有什么计划吗

我会把制作过程放到这个帖子来,喜欢就一起弄吧。由于每天要上班,只能每天晚上和周末弄。有什么好建议,可以提出来大家一起讨论。

出10入10汤圆

 楼主| 发表于 2015-1-15 06:53:06 | 显示全部楼层
ningsnail 发表于 2015-1-14 08:33
这个还得要个懂结构设计的哈

是啊。喂食机械结构很头痛。七天,每天三次,兔子每次的食量也大一些。我担心一个电机带不动,才分成七个。

此外,采用罐式堵口的方式投料又担心卡住。初步想用推式的结构。

有什么好建议吗?先谢谢了!

出10入10汤圆

 楼主| 发表于 2015-1-15 06:57:06 | 显示全部楼层
《小威》 发表于 2015-1-13 23:46
只管喂食物,水,粪便不在考虑范围

水的问题我这次也没列入,兔子不能喝太多水,会拉稀致死的。主要是通过蔬菜或胡萝卜给水。

如果需要,加个水泵好了。

出10入10汤圆

 楼主| 发表于 2015-1-15 07:05:20 | 显示全部楼层
wanderhope 发表于 2015-1-14 21:48
今天还在网上看到一个台湾人搞的宠物猫自动喂食机。
http://www.huxiu.com/article/106226/1.html
在indieg ...

这个很是高大上啊!

出10入10汤圆

 楼主| 发表于 2015-1-15 07:08:49 | 显示全部楼层
armok 发表于 2015-1-14 16:25
你的开发套件已经寄出,申通:968804636393

运费我们已经支付,广东省内1-2天到,省外3-5天到。

先谢谢了。估计周六就可以拿到手开始了。
目前在熟悉开发软件和器件资料,准备物料。

出0入0汤圆

发表于 2015-1-15 08:09:06 | 显示全部楼层
yangyi 发表于 2015-1-15 06:53
是啊。喂食机械结构很头痛。七天,每天三次,兔子每次的食量也大一些。我担心一个电机带不动,才分成七个 ...

可以做成盒状的,盖子露个缺口,电机带动盖子转不就得了

出0入0汤圆

发表于 2015-1-15 08:50:13 | 显示全部楼层
你的小步进电机及驱动板才九块钱,小步进电机及驱动板是怎么样的?

出0入0汤圆

发表于 2015-1-15 13:54:25 | 显示全部楼层
楼主,你的系统框图是用什么画的呢,看上去很高端

出10入10汤圆

 楼主| 发表于 2015-1-15 14:21:31 | 显示全部楼层
honeybear 发表于 2015-1-15 13:54
楼主,你的系统框图是用什么画的呢,看上去很高端

hehe,前面说过了,是PPT画的。

出10入10汤圆

 楼主| 发表于 2015-1-15 14:23:15 | 显示全部楼层
《小威》 发表于 2015-1-15 08:09
可以做成盒状的,盖子露个缺口,电机带动盖子转不就得了

兔粮一下会掉下来很多,并且担心盖子卡住。

出0入0汤圆

发表于 2015-1-15 14:24:42 | 显示全部楼层
机械结构比电路复杂多了

出10入10汤圆

 楼主| 发表于 2015-1-15 14:25:49 | 显示全部楼层
《小威》 发表于 2015-1-15 08:50
你的小步进电机及驱动板才九块钱,小步进电机及驱动板是怎么样的?

驱动就是简单的2003,集成了7个开漏的达林顿三极管。电机也是很小的。

出10入10汤圆

 楼主| 发表于 2015-1-15 14:29:34 | 显示全部楼层
pazulin 发表于 2015-1-15 14:24
机械结构比电路复杂多了

有什么好点子吗?谢谢!

出10入10汤圆

 楼主| 发表于 2015-1-15 18:09:56 | 显示全部楼层
armok 发表于 2015-1-14 16:25
你的开发套件已经寄出,申通:968804636393

运费我们已经支付,广东省内1-2天到,省外3-5天到。

快递已经收到了。谢谢!

出0入0汤圆

发表于 2015-1-15 18:39:39 | 显示全部楼层
yangyi 发表于 2015-1-15 14:29
有什么好点子吗?谢谢!

用硬纸片搭硬件,拆个纸箱就有了

出0入0汤圆

发表于 2015-1-15 18:40:27 | 显示全部楼层
如果装水可以剪个矿泉水瓶子搞定

出10入10汤圆

 楼主| 发表于 2015-1-16 06:54:25 | 显示全部楼层
superrf 发表于 2015-1-15 18:39
用硬纸片搭硬件,拆个纸箱就有了

怎么让兔粮能定量得出来,电机又不卡?7X3   共21次喂食。

出0入0汤圆

发表于 2015-1-16 08:18:44 | 显示全部楼层
yangyi 发表于 2015-1-16 06:54
怎么让兔粮能定量得出来,电机又不卡?7X3   共21次喂食。

可以设计成21个格子,每次喂食时打开一个,可以考虑做成转盘

出10入10汤圆

 楼主| 发表于 2015-1-18 19:08:30 | 显示全部楼层
方案一:

本帖子中包含更多资源

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

x

出10入10汤圆

 楼主| 发表于 2015-1-18 19:09:28 | 显示全部楼层
大家可以想象下面的3个洞为什么各相差90度?

出10入10汤圆

 楼主| 发表于 2015-1-18 19:11:56 | 显示全部楼层
方案一需要7个电机,尺寸估计也大。想了好长时间,于是有了方案二:



这个方案只要6个电机,尺寸也很紧凑。

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2015-1-18 19:14:21 | 显示全部楼层
yangyi 发表于 2015-1-18 19:09
大家可以想象下面的3个洞为什么各相差90度?

食量分配?顺便再次点个赞!

出0入0汤圆

发表于 2015-1-18 19:20:11 | 显示全部楼层
yangyi 发表于 2015-1-18 19:11
方案一需要7个电机,尺寸估计也大。想了好长时间,于是有了方案二:

运动到两个罐子之间怎么办?

出10入10汤圆

 楼主| 发表于 2015-1-18 21:07:11 | 显示全部楼层
laotui 发表于 2015-1-18 19:20
运动到两个罐子之间怎么办?

有兔粮的罐子口被封,兔粮不会出来。

出10入10汤圆

 楼主| 发表于 2015-1-18 21:10:12 | 显示全部楼层
bbsview 发表于 2015-1-18 19:14
食量分配?顺便再次点个赞!

提示一下,每次喂食电机转30度。3个兔粮罐呈120度分布。

出0入0汤圆

发表于 2015-1-19 08:43:55 | 显示全部楼层
这个创意不错  期待好的效果

出0入0汤圆

发表于 2015-1-20 15:45:17 | 显示全部楼层
哈,创意很不错。

出0入0汤圆

发表于 2015-1-22 00:12:05 来自手机 | 显示全部楼层
再来关注下,好像安排挺周到的

出0入0汤圆

发表于 2015-1-23 14:55:50 | 显示全部楼层
全能机器人!

出0入0汤圆

发表于 2015-1-23 15:08:36 | 显示全部楼层
yangyi 发表于 2015-1-18 19:11
方案一需要7个电机,尺寸估计也大。想了好长时间,于是有了方案二:

用这么多电机,体积应该小不了

出0入0汤圆

发表于 2015-1-23 15:21:02 | 显示全部楼层
这个主题很不错,网络怎么弄

出0入0汤圆

发表于 2015-1-23 15:21:37 | 显示全部楼层
superrf 发表于 2015-1-23 15:08
用这么多电机,体积应该小不了

喂狗应该OK,体积大点无所谓

出0入0汤圆

发表于 2015-1-23 15:27:33 | 显示全部楼层
Juggernaut 发表于 2015-1-23 15:21
喂狗应该OK,体积大点无所谓

现在狗也在家里养,体积小些好

出10入10汤圆

 楼主| 发表于 2015-1-24 07:52:25 | 显示全部楼层
superrf 发表于 2015-1-23 15:08
用这么多电机,体积应该小不了

兔子好一些。正在做结构。我的目标是七天的兔粮。

出10入10汤圆

 楼主| 发表于 2015-1-24 07:53:16 | 显示全部楼层
Juggernaut 发表于 2015-1-23 15:21
这个主题很不错,网络怎么弄

目前没有考虑网络。

出10入10汤圆

 楼主| 发表于 2015-1-24 07:55:07 | 显示全部楼层
superrf 发表于 2015-1-23 15:27
现在狗也在家里养,体积小些好

狗狗食量大,体积的确会大一些。

出75入4汤圆

发表于 2015-1-24 10:31:08 | 显示全部楼层
这个不错,我看看用stc的弄一个,飞思卡尔的不熟悉。lz机械结构怎么样了。

出0入0汤圆

发表于 2015-1-24 13:33:49 | 显示全部楼层
yangyi 发表于 2015-1-15 14:23
兔粮一下会掉下来很多,并且担心盖子卡住。

实物就放在盒子里,开盖即食

出0入0汤圆

发表于 2015-1-24 13:38:04 | 显示全部楼层

其实可以做的跟过年的糖果盒是的,下面好多格,放满了粮食,盖子只有一个缺口,每次只有一格露出来 ,要吃只要旋转盖子就好了,这样一个电机就好了

出0入0汤圆

发表于 2015-1-24 13:39:56 | 显示全部楼层
http://www.huxiu.com/article/106226/1.html具有自动猫脸识别功能,还可以学习猫的习性,使猫既能吃得饱,还不会发胖。

出0入0汤圆

发表于 2015-1-24 14:05:48 | 显示全部楼层
yangyi 发表于 2015-1-18 19:11
方案一需要7个电机,尺寸估计也大。想了好长时间,于是有了方案二:

饵食的送料觉得可以用螺杆,可以方便控制送多少的料,包装机上用的比较多,可以参考一下。

出0入0汤圆

发表于 2015-1-24 18:01:40 | 显示全部楼层
Hassen_JYA 发表于 2015-1-24 14:05
饵食的送料觉得可以用螺杆,可以方便控制送多少的料,包装机上用的比较多,可以参考一下。 ...

如果能用螺杆实现,体积应该小而且省电机

出10入10汤圆

 楼主| 发表于 2015-1-25 13:50:46 | 显示全部楼层
Hassen_JYA 发表于 2015-1-24 14:05
饵食的送料觉得可以用螺杆,可以方便控制送多少的料,包装机上用的比较多,可以参考一下。 ...

不知道螺杆的成本怎么样?

出10入10汤圆

 楼主| 发表于 2015-1-25 13:54:30 | 显示全部楼层
今天在写LCD的代码,KS0108的,忙检测过不了。哪位网友遇到过?

出10入10汤圆

 楼主| 发表于 2015-1-25 13:55:40 | 显示全部楼层
sensitiveplant 发表于 2015-1-24 13:39
http://www.huxiu.com/article/106226/1.html具有自动猫脸识别功能,还可以学习猫的习性,使猫既能吃得饱, ...

这个我也看了。的确是髙大上!

出10入10汤圆

 楼主| 发表于 2015-1-25 13:59:27 | 显示全部楼层
《小威》 发表于 2015-1-24 13:38
其实可以做的跟过年的糖果盒是的,下面好多格,放满了粮食,盖子只有一个缺口,每次只有一格露出来 ,要 ...

这也是个好方案。目前我初步准备采用方䅁二。简化一下,不用罐子,直接用木板钉成盒子,下面开口。正在锯五合板。

出0入0汤圆

发表于 2015-1-27 09:18:02 | 显示全部楼层
期待这个项目成型以后的样子。

出10入10汤圆

 楼主| 发表于 2015-2-6 22:13:48 | 显示全部楼层
本帖最后由 yangyi 于 2015-2-6 22:17 编辑

先发个时钟部分代码吧。调试已经通过。


  1. #include "includes.h"   //包涵总头文件

  2. void MCGIRCLK_OutEnable(uint_8 clock);      //启用内部快速时钟

  3. volatile  uint_16 DSEC;
  4. unsigned char const MONTH_Table[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
  5. unsigned int Time_MARK[6] = {2015,2,3,23,59,50};
  6. unsigned int Time_LAST[6] = {2000,8,18,18,18,18};
  7. #define YEAR   Time_MARK[0]
  8. #define MONTH  Time_MARK[1]
  9. #define DATE   Time_MARK[2]
  10. #define HOUR   Time_MARK[3]
  11. #define MINUTE Time_MARK[4]
  12. #define SECOND Time_MARK[5]

  13. int main(void)
  14. {
  15.     //1.声明主函数使用的局部变量
  16.         uint_8 i,j;


  17.         uint_8  * g_time[] ={"00","01","02","03","04","05","06","07","08","09",
  18.                                                  "10","11","12","13","14","15","16","17","18","19",
  19.                                                  "20","21","22","23","24","25","26","27","28","29",
  20.                                                  "30","31","32","33","34","35","36","37","38","39",
  21.                                                  "40","41","42","43","44","45","46","47","48","49",
  22.                                                  "50","51","52","53","54","55","56","57","58","59",

  23.         }; //0~59字符LCD显示转换

  24.         uint_8 g_DispalyInit1[20] =  "Now time is 88:88:88";
  25.         uint_8 g_DispalyInit2[20] =  "          2015-01-28";
  26.         uint_8 g_DispalyInit3[20] =  "Last feed time 88:88";
  27.         uint_8 g_DispalyInit4[20] =  "Next feed time 88:88";


  28.     //2.关总中断
  29.     DISABLE_INTERRUPTS;
  30.         //3.初始化底层模块
  31.     LEDInit();                                  //LED初始化
  32.     LCDInit();                                  //LCD初始化
  33.     KBInit();                                   //键盘初始化

  34.     tpm_init(TPM0,TPM_CLKSRC_PLL,1000);         //初始化TPM模块,1ms中断一次


  35.     //4. 给有关变量赋初值
  36.     i = 0;
  37.     //LCD输出格式化
  38.     LCD_write_String(1,0,g_DispalyInit1,20);
  39.     LCD_write_String(2,0,g_DispalyInit2,20);
  40.     LCD_write_String(3,0,g_DispalyInit3,20);
  41.     LCD_write_String(4,0,g_DispalyInit4,20);

  42.     //5. 使能模块中断
  43.     tpm_enable_int(0);

  44.     //6. 开总中断
  45.     ENABLE_INTERRUPTS;


  46.     for(;;)
  47.     {

  48.              Clock_OnTimer();
  49.              if(DSEC == 0)                                //判断秒钟是否发生变化
  50.              {
  51.              if(Time_LAST[3] != HOUR)
  52.              {
  53.                      i = HOUR;
  54.                      LCD_write_String(1,12,g_time[i],2);
  55.                      Time_LAST[3] = HOUR;
  56.              }
  57.              if(Time_LAST[4] != MINUTE)
  58.              {
  59.                      i = MINUTE;
  60.                      LCD_write_String(1,15,g_time[i],2);
  61.                      Time_LAST[4] = MINUTE;
  62.              }
  63.              if(Time_LAST[5] != SECOND)
  64.              {
  65.                      i = SECOND;
  66.                      LCD_write_String(1,18,g_time[i],2);
  67.                      Time_LAST[5] = SECOND;
  68.              }
  69.              if(Time_LAST[0] != YEAR)
  70.              {
  71.                      i = 20;
  72.                      LCD_write_String(2,10,g_time[i],2);
  73.                      j = YEAR%100;
  74.                      LCD_write_String(2,12,g_time[j],2);
  75.                      Time_LAST[0] = YEAR;
  76.              }
  77.              if(Time_LAST[1] != MONTH)
  78.              {
  79.                      i = MONTH;
  80.                      LCD_write_String(2,15,g_time[i],2);
  81.                      Time_LAST[1] = MONTH;
  82.              }
  83.              if(Time_LAST[2] != DATE)
  84.              {
  85.                      i = DATE;
  86.                      LCD_write_String(2,18,g_time[i],2);
  87.                      Time_LAST[2] = DATE;
  88.              }
  89.              }





  90.     }
  91. //===========================================================================               
  92.         return 0;
  93. }

  94. //启用MCGIRCLK时钟,输出时钟频率在31.25Khz ~ 4Mhz
  95. void MCGIRCLK_OutEnable(uint_8 clock)
  96. {
  97.         PORTC_PCR3 = PORT_PCR_MUX(0x5);
  98.         SIM_SOPT2 = SIM_SOPT2_CLKOUTSEL(clock); //复用PTC3为CLKOUT,观测输出时钟波形
  99.         MCG_C1 |= MCG_C1_IRCLKEN_MASK|MCG_C1_IREFSTEN_MASK;
  100.         MCG_C2 &= ~MCG_C2_IRCS_MASK;
  101. }


  102. void Clock_OnTimer()
  103. {
  104.         unsigned char Days = 31;

  105.         if (DSEC >= 1000)
  106.         {
  107.                 DSEC = 0;
  108.                 SECOND++;
  109.         } //1秒一次
  110.         if (SECOND >= 60)
  111.         {
  112.                 SECOND = 0;
  113.                 MINUTE++;
  114.         } //60秒一次
  115.         if (MINUTE >= 60)
  116.         {
  117.                 MINUTE = 0;
  118.                 HOUR++;
  119.         } //60分一次
  120.         if (HOUR >= 24)
  121.         {
  122.                 HOUR = 0;
  123.                 DATE++;


  124.                 if (MONTH == 2) //处理润年2月份问题
  125.                 {
  126.                         if (YEAR % 4 == 0)
  127.                         {
  128.                                 Days = 29; //逢4润
  129.                         }
  130.                         else
  131.                         {
  132.                                 Days = 28;
  133.                         }
  134.                         if (YEAR % 400 == 0)
  135.                         {
  136.                                 Days = 28; //逢400不润
  137.                         }
  138.                 }
  139.                 else
  140.                 {
  141.                         Days = MONTH_Table[MONTH - 1]; //正常月份,查表得到当月天数
  142.                 }
  143.         } //24小时一次

  144.         if (DATE > Days) {
  145.                 DATE = 1;
  146.                 MONTH++;
  147.         } //一个月一次
  148.         if (MONTH > 12)
  149.         {
  150.                 MONTH = 1;
  151.                 YEAR++;
  152.         } //一年一次
  153. }
复制代码

出0入0汤圆

发表于 2015-2-6 22:58:13 | 显示全部楼层
yangyi 发表于 2015-2-6 22:13
先发个时钟部分代码吧。调试已经通过。

好,加油

出10入10汤圆

 楼主| 发表于 2015-2-8 17:00:15 | 显示全部楼层
写程序的时候遇到一个下问题

(AlarmTime[set_x-2][0]/10)*10  等于AlarmTime[set_x-2][0]吗?

仔细想一下是不等于的。结果当时粗心,直接用了AlarmTime[set_x-2][0],害的我查半天问题。

出0入0汤圆

发表于 2015-2-8 22:04:54 | 显示全部楼层
yangyi 发表于 2015-2-8 17:00
写程序的时候遇到一个下问题

(AlarmTime[set_x-2][0]/10)*10  等于AlarmTime[set_x-2][0]吗?

是整数还是浮点数

出10入10汤圆

 楼主| 发表于 2015-2-8 22:27:32 | 显示全部楼层
8位无符号整型数。

出0入0汤圆

发表于 2015-2-9 07:57:35 | 显示全部楼层
yangyi 发表于 2015-2-8 22:27
8位无符号整型数。

哪确实是有不同

出0入0汤圆

发表于 2015-3-17 17:58:20 | 显示全部楼层
楼主做的怎么样了  一直在关注

出10入10汤圆

 楼主| 发表于 2015-3-18 19:23:31 | 显示全部楼层
现在只差步进电机驱动了。

结构方面比较麻烦点。有一些工作做完了,还有一些很麻烦。

最近事比较多,有些停滞了。

出0入0汤圆

发表于 2015-3-18 20:44:04 | 显示全部楼层
加油!期待成品呢!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-26 08:00

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

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