




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、北京化工大学北京化工大学 第六届第六届“萌芽杯萌芽杯” 技术报告技术报告 学院名称:学院名称:信息科学与技术学院信息科学与技术学院 作品类别:作品类别: b b 类类 作品名称:作品名称:自动喂食器自动喂食器 队伍名称:队伍名称:dreamdream factoryfactory 指导教师:指导教师:商晓东商晓东 队长:队长:熊善海熊善海 参赛队员:参赛队员:李金海李金海蒙宁佳蒙宁佳 蔡玉斌蔡玉斌马程川马程川 20112011 年年 5 5 月月 2020 日日 摘要摘要 喂食器总共包括五个键,function 键,add 键(即时喂食键),dec 键, reset 键,on/off 键。 a
2、t89s52 单片机用于计时,检测键盘,和控制电机,定时时间及电机工作时间 由按键检测输入,单片机每 20ms 计时中断一次。当计时时间与设定时间参数一致时, 单片机发出脉冲信号控制电机正转反转。 单片机等模块封装在长方形的控制盒中,控制盒正面依次为 lcd,按键,电源 指示灯,电源开关。 侧面为 usb 电源接口,电机控制线电源线出口。 电机和电机驱动模块封转在喂食漏斗中,喂食漏斗固定在控制盒的背面,控制盒 的背面有挂钩,可以以悬挂的方式固定在鱼缸壁上。 设计出这样一款自动喂食器能够方便人们的生活,这是我们的动机。 我们的作品完全自主研发,运行稳定,操作方便,成本低廉,具有很大的潜在商 业价
3、值,而且有很大的拓展空间。 关键词:单片机,步进电机,lcd显示器 目录目录 摘要摘要.2 目录目录.3 第第 1 1 章章 引言引言.4 第第 2 2 章章 喂食器的功能及操作说喂食器的功能及操作说.4 第 2.1 节 喂食器的外观图.4 第 2.2 节 喂食器功能的详细说明 .5 第 2.3 节 喂食器的操作说明 .5 第第 3 3 章章 喂食器的理论设计过程喂食器的理论设计过程.5 第 3.1 节喂食器的设计始末 .6 第 3.2 节 喂食器的设计思路 .6 第 3.3 节喂食器最终方案工作原理 .7 第第 4 4 章章 软件设计软件设计.9 第 4.1 节 软件开发工具 .9 第第 5
4、 5 章章 结论结论.10 附录.11 第第 1 章章 引言引言 为响应学校关于加强大学生的创新意识、合作精神和创新能力的培养的号召,我 们组积极参加了学校举办的“萌芽杯”科技创新大赛。 围绕生活中出现的喂养的鱼类喂食麻烦的问题,我们组进行了鱼缸自动喂食器的 研究,以务实为基础,现已取得一些成果。 我们自学了单片机及其外设的一些知识,充分利用了网络和图书馆的一些资源, 最终确定了自动喂食器的控制方案,并且以实物实现。 我们的作品完全自主研发,运行稳定,操作方便,成本低廉,具有很大的潜在商 业价值,而且有很大的拓展空间。 第第 2 章章 喂食器的功能及操作说喂食器的功能及操作说 第第 2.1 节
5、节 喂食器的外观图喂食器的外观图 图 1 第第 2.2 节节 喂食器功能的详细说明喂食器功能的详细说明 (1) 能够实现家庭大中小型鱼缸的自动喂食,为工作学习繁忙或是出差的人群提 供方便。 (2)能够在 0 时 0 分到 59 时 59 分范围内任意设定喂食时间间隔,比如设定 8 时 8 分,则能够每隔 8 小时 8 分对鱼进行一次喂食。(说明:作出的喂食器模型为了测 试的方便我们的程序中用分代表小时,用秒代表分钟,但在该技术中仍以小时和分 说明问题。) (3)喂食器的喂食持续时间分为五档,这关系到每次喂食量的多少,可依据需要人 为设定。 (4)能够实时显示已设定的喂食时间间隔,距离下一次喂食
6、的时间,还有设定的喂 食持续时间为第几档,每次修改时间时能够立即刷新并显示时间。 (5)即时喂食,按下即时喂食键,喂食器能够停下计时立即开始喂食,喂食结束后 喂食器继续计时。 第第 2.3 节节 喂食器的操作说明喂食器的操作说明 (1)该喂食器总共包括五个键,function 键,add 键(即时喂食键),dec 键,reset 键,on/off 键。 (2)按下 on/off 键,自动喂食器电源打开,指示灯亮,lcd 显示开机欢迎词。 (3)没有按 function 键时,按下 add 键,实现即时喂食功能。 (4)按下 functiuon 键一下,光标在设置时间位置的分的十位处闪烁两下,
7、说明可以进行的分的调节,每按一次 add 键,分加 1,每按一下 dec 键,分减 1。 (5)function 键按两次,光标在设置时间位置的时的位置闪烁两次,说明可 以进行时的调节,同理用 add 键和 dec 键进行时间的调节操作。 (6)function 键按三次,喂食持续时间位闪烁两次,说明投食时间可以修改, 同样用 add 键和 dec 键进行加减修改。 (7)第四次按下 function 键,光标不再闪烁,调时过程结束。 (8)按 reset 键时,喂食器重新启动,喂食时间恢复默认,如有需要可以重新 设定,reset 键用于防止系统出错时,恢复系统。 第第 3 章章 喂食器的理论
8、设计过程喂食器的理论设计过程 第第 3.1 节喂食器的设计始末节喂食器的设计始末 我们宿舍曾经喂养了一缸金鱼,寒假时出现了无人照看金鱼的情况,直接导致了 金鱼的死亡。考虑到现实生活中的宠物爱好者也会遇见这种情况,所以我们感觉到 设计出这样一款自动喂食器能够方便人们的生活,这是我们设计的动机。 第第 3.2 节节 喂食器的设计思路喂食器的设计思路 3.2.13.2.1、控制部分、控制部分 我们最开始的方案是用 555 定时器作为定时芯片,。但是在随后的理论分析过程 中,我们认为 555 定时器不能满足正常的定时需要,我们的喂食器必须是一款实用 的,经得起生活检验的定时器,所以必须在定时上能够针对
9、不同的喂食环境设置不 同的喂食时间间隔和喂食持续时间。而且这些控制必须要能够用显示装置显示出来。 这样我们就否定了功能单一的 555 定时器的方案。我们得知用单片机能够进行高级 的编程控制,于是我们便自学了单片机,并且最终讨论决定使用 atmel 公司的 at89s52 单片机作为控制芯片。使用单片机的好处是能够精确计时,能够通过编程 更简单地更方便地驱动各个部件,这是模拟电路所不能达到的效果。 3.2.23.2.2、喂食部分、喂食部分 最初的喂食模块我们是计划用类似于电磁继电器开关的装置来控制喂食阀门的开 闭,但是最后考虑到此装置的不稳定性和制作工艺的复杂性,我们决定采用步进电 机来实现此阀
10、门的开闭。步进电机能够精确地控制阀门的开闭,且运行稳定。 3.2.33.2.3、显示部分、显示部分 最初的选用的显示装置为数码管,但是数码管只能显示 0-9 数字和几个英语字母, 受数码管显示能力的限制,我们第二次做出来的作品仅能显示喂食时间间隔,而且 只能精确到小时。 随着制作经验的积累,我们决定采用 lcd 显示装置,也就是我们现在作品。 lcd 能够显示大量的信息,除了能显示设定的喂食时间间隔,显示距离下一次喂食 的时间,喂食持续时间外,还能显示声音的关闭以及开机欢迎语。 3.2.43.2.4、按键部分、按键部分 第二个作品采用的是矩阵扫描键盘进行时间的修改,但是矩阵扫描键盘非常占用 单
11、片机资源,于是在第三次的作品中我们换用了独立键盘。按键的数目和功能也是 逐渐增加的,最开始仅有一个 add 键,到最后根据需要逐渐加入 funtion 键, dec 键,reset 键,以及电源开关。 第第 3.3 节喂食器最终方案工作原理节喂食器最终方案工作原理 3.3.13.3.1、整个喂食器的电路图(仅供参考,部分有改动) 图 3.1 3.3.23.3.2 喂食器的内部实际电路图 图 3.2 3.3.33.3.3、单片机控制部分、单片机控制部分 at89s52 单片机用于计时,检测键盘,和控制电机,定时时间及电机工作时间由 按键检测输入,单片机每 20ms 计时中断一次。当计时时间与设定
12、时间参数一致时, 单片机发出脉冲信号控制电机正转反转。 3.3.43.3.4、按键部分、按键部分 按键为独立按键,接低电平,加入防抖程序,按下时,单片机对应接口被赋成低 电平,从而修改程序中的定时时间参数。 3.3.53.3.5、显示部分、显示部分 采用 1602 蓝底白字 lcd 显示屏,接单片机 p2 端口的 p20-p27 口。采用 5v 电压 供电,接有可调变阻器用于调节显示屏字符的对比度。用来显示喂食器的三个时间 参数,设定时间时,lcd 实时显示。 3.3.63.3.6、电机部分、电机部分 采用 5v 四相五线步进电机,电机布进角度 5.625 度,内置减速装置,减速比 1/64,
13、信号线接电机 p10-p13 口,由 uln2003 管进行功率放大,然后驱动步进电机, 电机轴的末端有铣面,喂食器的阀门开关固定在铣面上。电机先正转 20 度打开阀门, 经过提前设定的喂食持续时间后反转 20 度关闭阀门。 3.3.73.3.7、电源部分、电源部分 采用 usb 接口直接进行供电,单片机与步进电机并联在电源上,电源有总开关 控制,并且在电源正负极并联一个 led 作为电源指示灯。 3.3.83.3.8、主体结构、主体结构 单片机等模块封装在长方形的控制盒中,控制盒正面依次为 lcd,按键,电源指 示灯,电源开关。 侧面为 usb 电源接口,电机控制线电源线出口。 电机和电机驱
14、动模块封转在喂食漏斗中,喂食漏斗固定在控制盒的背面,控制盒 的背面有挂钩,可以以悬挂的方式固定在鱼缸壁上。 第第 4 章章 软件设计软件设计 第第 4.1 节节 软件开发工具软件开发工具 开发语言:c 语言 开发工具:开发工具为 keil uvision4,截图如下: 图 4 第 4.2 节 调试测验工具 用 keil uvision4 检查程序运行过程中各个端口的电平情况在调试过程中可以方便 的设置断点、选用单步运行的方式,同时查看各个 io 口的值,这些强大的功能,都 为我们的软件调试提供了极大的便利。 利用 51 单片机开发板测试各个模块的运行情况,将各个模块调试好以后再组装 在一起,这
15、样能够减少出错,一旦出错,可以方便地找到故障所在地。截图如下: 第第 5 章章 结论结论 从一群只会书本知识的懵懂的大学生,到能够做出自己梦想的作品的实践型大学 生,我们感到很是高兴。 从最开始对这些东西的一窍不通,到一点点的自学和苦心收集,我们付出了很多, 学到了很多。我们懂得了如何去寻搜集所需的资料,懂得如何寻找故障,如何排除 故障,如何改进方案,如何实现想法,更是懂得了所学课程的重要性。 还记得第一次进中关村电子城的尴尬,还记得第一次模块测试时的纠结,我们坚 持了下来,并且不断地改进我们得作品。从最开始的一个数码管显示以为时间,到 后来的 lcd 显示,从最开始的一个按键,到后来的 5
16、个按键,从最开始简单的代码, 到后来比较精确的控制,技术的进步在实际检验中给我们带来自信。 我们的自动喂食器还有很大的发展空间,现阶段还有几个不完美的地方:1,在 供电电路的稳定方面,现阶段在喂食时 lcd 显示会变暗,主要是喂食时电机分的电 流太大。 2,喂食阀门处,这种设计有一定的堵塞的概率,受条件的限定,我们暂时没有 办法做出更好的方案。 3,当喂食过程不能按 reset 键,或是关闭电源,这样阀门开关的位置就会不对 了,还需要 3-4 次同样操作来修改过来。 以上这些都是我们准备改进的方向,随着我们知识的不断提高,我们准备做出更 加完美的自动喂食器,去参加挑战杯等科技创新大赛。 我们相
17、信:技术进步永无止境! 参考文献 王幸之 钟爱琴 王雷 王闪编著.at89 系列单片机原理与接口技术m.北京:北 京航空航天大学出版社,2004:100-129 彭为 黄科 雷道仲编著.单片机典型系统设计实例精讲m.北京:电子工业出版 社,2006:250-273 戴佳 戴卫恒编著.51 单片机 c 语言应用程序设计实例精讲m.北京:电子工业 出版社,2006:248-260 陶庆生 徐传顺 李中良,步进电机驱动电路实现设计及驱动研究a.价值工程, 30(4):47-48 郑振杰 江衍煊 游德智,单片机结合 uln2003 驱动步进电机a.电机技术, 6:44-46 陈素华 王国志,基于单片机
18、的 lcd 显示系统的设计与实现a.许昌学院学报, 5:75-78 致谢: 衷心感谢商晓东辅导员在我们的创作过程中给予我们的支持鼓励与帮助! 衷心感谢北京化工大学团委给我们提供了一个良好的创作环境! 郭青老师在单片机方面给我们提供了很多的帮助,在此表达深切感激之情! 附录: 附录 a,程序源代码 #include #define uint unsigned int #define uchar unsigned char /定义开机显示的欢迎词 uchar code table1=welcome; uchar code table2=made by xinshi; uchar code tabl
19、e3=se 02:00 r 02:00; uchar code table4=feedtime 03 work ; uchar num; uchar count=0,s1num=0; char miao=0,fen=2; uint feed=3; void dianji(); char miaojs=0; char fenjs=0; char miaoss=0; char fenss=2; /对步进电机接口的定义 sbit d1=p10; sbit d2=p11; sbit d3=p12; sbit d4=p13; /对 funcyion(s1),add(s2),减(s3)按键的定义 sbit
20、 s1=p30; sbit s2=p31; sbit s3=p37; /对 lcd 显示屏控制的端口定义 sbit lcdrs=p34; sbit rw=p35; sbit lcden=p36; /*lcd 显示部分用到的延时程序(1)* void delay(uint n) uint x,y; for(x=n;x0;x-) for(y=110;y0;y-); /*lcd 写命令程序* void write_com(uchar com) lcdrs=0; rw=0; p2=com; delay(5); lcden=1; delay(5); lcden=0; /*lcd 写数据程序* void
21、write_data(uchar date) lcdrs=1; rw=0; p2=date; delay(5); lcden=1; delay(5); lcden=0; /*开机准备函* void init() /*lcd 显示开机欢迎* lcden=0; write_com(0 x38);/首先选择显示方式 write_com(0 x0c);/开始先不显示光标 write_com(0 x06);/选择显示新数据时屏幕上的情况 write_com(0 x01);/数据指针清零,所有显示清零 write_com(0 x80+0 x10);/确定首地址 for(num=0;num7;num+) /
22、待显示数据先存储在缓冲区中 write_data(table1num); delay(20); write_com(0 x80+0 x50);/确定第二行的首地址 for(num=0;num14;num+) write_data(table2num); delay(20); for(num=0;num16;num+) /使整个屏幕左移 write_com(0 x18); delay(370); delay(800); write_com(0 x01);/数据指针清零,所有显示清零 /写入未设定时间之前默认数据 delay(5); write_com(0 x80);/确定首地址 for(num=
23、0;num16;num+) write_data(table3num); delay(20); write_com(0 x80+0 x40);/确定第二行的首地址 for(num=0;num16;num+) write_data(table4num); delay(20); /计时器初始化 tmod=0 x01; th0=(65536-50000)/256; tl0=(65536-50000)%256; ea=1; et0=1; tr0=1; /显示需用的函数 void write_sfm(uchar add,uchar date) uchar shi,ge; shi=date/10; ge=
24、date%10; write_com(0 x80+add); write_data(0 x30+shi); write_data(0 x30+ge); /*按键 function(s1)程序* void keyscan() if(s1=0) delay(5); if(s1=0) tr0=0; s1num+; while(!s1); if(s1num=1) write_com(0 x80+6); write_com(0 x0f); if(s1num=2) write_com(0 x80+3); if(s1num=3) write_com(0 x80+0x40+10); if(s1num=4) s
25、1num=0; write_com(0 x0c); tr0=1; /*按键 add(s2)键的子程序* if(s2=0) delay(5); if(s2=0) tr0=0; while(!s2); if(s1num!=0) if(s1num=1) miao+; miaoss=miao; if(miao=60) miao=0; miaoss=miao; fenss=fen; write_sfm(6,miao); write_sfm(14,miaoss); write_sfm(11,fenss); write_com(0 x80+6);/用于恢复地址 if(s1num=2) fen+; if(fe
26、n=60) fen=0; fenss=fen; miaoss=miao; write_sfm(3,fen); write_sfm(11,fenss); write_sfm(14,miaoss); write_com(0 x80+3); if(s1num=3) feed+; if(feed=6) feed=0; write_com(0 x80+0 x40+10); write_data(0 x30+feed); write_com(0 x80+0 x40+10); elsedianji(); tr0=1; /*按键 dec(s3)程序* if(s3=0) delay(5); if(s3=0) t
27、r0=0; while(!s3); if(s1num=1) miao-; miaoss=miao; if(miao=-1) miao=59; miaoss=miao; fenss=fen; write_sfm(6,miao); write_sfm(14,miaoss); write_sfm(11,fenss); write_com(0 x80+6);/用于恢复地址 if(s1num=2) fen-; if(fen=-1) fen=59; fenss=fen; miaoss=miao; write_sfm(3,fen); write_sfm(11,fenss); write_sfm(14,miaoss); write_com(0 x80+3); if(s1num=3) feed-; if(feed=-1) feed=5; write_com(0 x80+0 x40+10); write_data(0 x30+feed); write_com(0 x80+0 x40+10); tr0=1; /*计时中断子程序* void timer0() interrupt 1 th0=(65536-50000)/256; tl0=(65536-50000)%256; count+; if(count=20) count=0; miaojs+; miaoss-; if(miaoss=-1) miao
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国电凝器行业投资前景及策略咨询报告
- 2025至2030年中国环保矽利康商标行业投资前景及策略咨询报告
- 高中生物跨学科教学对学生综合素质培养的影响
- 2025至2030年中国滋养水蜜桃香皂行业投资前景及策略咨询报告
- 2025至2030年中国涂布淀粉行业投资前景及策略咨询报告
- 2025至2030年中国毛纺锭带行业投资前景及策略咨询报告
- 侧向滑步推铅球接力跑教学设计
- 2025至2030年中国柔性组合夹具行业投资前景及策略咨询报告
- 2025至2030年中国有结复丝网行业投资前景及策略咨询报告
- 啤酒企业经营管理方案
- PCB 设计技巧
- 消防施工测量记录(建筑分类)
- 八年级初二物理上册期末试卷及答案(人教版)
- 部编版六年级下册道德与法治知识点大汇总
- Q∕GDW 46 10022.9-2020 主进水阀本体运检导则
- 汽车维修技术论文两篇
- 心理学基础试卷A
- 电动车使用维修指南
- 中国民航管理干部学院新生报名登记表
- 城市主干道工程监理大纲
- 《2021国标暖通图集资料》14K117-3 锥形风帽
评论
0/150
提交评论