基于arm的智能垃圾桶设计课程设计论文(编辑修改稿)内容摘要:

4液晶显示器以及 2132 芯片,最终实现了垃圾桶的智能化。 通过 这次嵌入式课程设计,我认识到学好编程的重要性,真正理解了控制电机带来的好处。 同时也学会了如何发挥团队合作精神,只有团结合作,才能更快更好学习应用知识。 杨冬: 在大四第一学期的末尾学校给我们专业安排了为期两周的 ARM 实习课程。 因为在这学期自己作为一个大四学生也参加了各种各样的招聘会,深知实践对于自我的重要性,所以一开始就对这项课程有了浓厚的兴趣,因为字啊老师开始的介绍中我了解到,这项课程设计不同于我们以往的任何一实习课程,在这次课设当中我们先是自由分成了几个小组,然后根据老师所给的课题任意的去选择自己感 兴趣的一项并去完成它。 而更为重要的是我们要做出一个模型,实现所要求的各个功能基于 ARM 这门课程。 而且老师还要求我们要有自己的创新,这在给我们压力的同时也让我们能够充分的发挥我们自己的创作能力。 而且我们所做的智能垃圾桶也是非常的切合实际生活,让我们有更多的空间去发挥。 并且将我们所学的 ARM 这门课程进一步巩固。 开始做只能垃圾桶时候我们都有些不知所措,虽然在小组的讨论中有很多不同的想法,但苦于无法实现,不能很好地运用所学的知识。 因此我们分别查阅了一些相关书籍,并且在网上借阅了一些和我们课题相似的设计题目,在多次 的借阅参考之后就开始了我们自己的硬件接线。 但只有在真正的做过之后才发现自己所想的东西有些和实际出入太大,比如我们焊接的第一个电机驱动电路,理论上可以实现的东西在连接到开发板并装载程序后却无法正常工作。 最后在进过多次的实验和询问他人之后才知道是自己在软件中没有定义某个开关。 之后基恩就是在不断地重复和整改之下慢慢的去完成的。 相比较于硬件接线软件编程更是让人头疼的事情,应为我们有实现多个功能的只能垃圾桶,程序的冗杂是避免不了的,而基础程序的编写是有我们的组长来完成的。 这也让我一时到了团队的重要之处,它可以把我们每 个人的优势充分的发挥出来,而且能够更加优化的去完成任务。 为期两周的实习我们不仅收获了一个智能垃圾桶同时也学到了很多 ARM 相关知识,而且这些非常实用的东西让即将毕业的我们在以后的工作中能够充足的去发挥自我优势,使我们更好地去适应实际,让我们更早的明白如何在团队中充分的发挥自身的优势。 西安科技大学电控学院课程设计 第 1 页 附录二(硬件电路图) 西安科技大学电控学院课程设计 第 1 页 西安科技大学电控学院课程设计 第 1 页 西安科技大学电控学院课程设计 第 1 页 附录 三 (软件程序) 源程序代码: include define MOTOA 110 // define MOTOB 111 // define MOTOC 112 // define MOTOD 113 // define MOTOA1 128 // define MOTOB2 129 // define MOTOC3 130 // define MOTOD4 131 // define IR_LED 127 // define key1 116 // 电机 2正转 ABCD(投放固体) define key2 117 //电机 1 正转打开垃圾盖 define key3 118 //电机 1 反转关上垃圾盖 define key4 119 //电机 2反转 (投放液体) define key5 120 //电机 1, 2停止 define KEYCON 0x081f0000 // LED 控制字 define MOTOCON 0xf0003c00 // MOTO 控制字 define GPIOSET(PIN) IO0SET = PIN // 方便修改置位端口 define GPIOCLR(PIN) IO0CLR = PIN // 方便修改清位端口 define RS 19 // define SID 16 // define E 14 // define PSB 12 // 并行或串行,选择低电平串行模式 define RST 125 //,复位脚 unsigned char IC_DAT1[64]=友情提示: 垃圾投放完毕。 unsigned char IC_DAT2[64]=请投放: 固体。 unsigned char IC_DAT3[64]= 请投放 液体。 unsigned char IC_DAT4[64]= 请 使 用 智 能 垃 圾 桶 请分类投放。 unsigned char IC_DAT5[64]= 电机: 停 止。 unsigned char IC_DAT6[64]=自动化 1102 宋富鹏 杨冬 胡建 孙媚媚。 void TransferCom(unsigned char data0)。 void TransferData(unsigned char data1)。 void delay(unsigned int m)。 void delay_10ms(uint32 n)。 西安科技大学电控学院课程设计 第 1 页 void lcd_mesg(unsigned char *adder1)。 void DelayNS(uint32 dly)。 void MOTO1(uint8 i)。 void MOTO10(uint8 i)。 void MOTO_Mode1(uint8 i)。 // ABCD void MOTO_Mode10(uint8 i)。 /**************************************************************************** * 名 称: main() * 功 能:根据表 DISP_TAB 来控制 LED 显示。 ****************************************************************************/ int main(void) { /* PINSEL2 使用启动代码的默认配置,切勿任意配置 PINSEL2,否则总线会受到干扰 */ PINSEL0=0x00000000。 PINSEL1=0X00000000。 PINSEL2amp。 =~(0x00000006)。 //设置所有 I/O口为普通 GPIO口 IO0DIR =MOTOCON。 // 配置 LED 控制 I/O 方向 LCD12864_init()。 initinal()。 //液晶端口初始化 while((IO0PINamp。 key1)amp。 amp。 (IO0PINamp。 key2)amp。 amp。 (IO0PINamp。 key3)amp。 amp。 (IO0PINamp。 key4)amp。 amp。 (IO0PINamp。 key5)!=0) { lcd_mesg(IC_DAT6)。 //显示界面 6 } while(1) { if ((IO0PINamp。 key1)==0) MOTO_Mode1(10)。 if ((IO0PINamp。 key2)。 =0) MOTO1(10)。 if ((IO0PINamp。 key2)==0) 西安科技大学电控学院课程设计 第 1 页 MOTO10(10)。 // 电机 2 反转 if((IO0PINamp。 key4==0)|(IO0PINamp。 IR_LED)!=0) MOTO_Mode10(10)。 // ABCD if((IO0PINamp。 key5)==0) // 停止 { initinal()。 lcd_mesg(IC_DAT5)。 //显示界面 5 IO0CLR=MOTOCON。 }。 } return(0)。 } /**************************************************。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。