略谈两个月单片机设计与开发的感慨
扫描二维码
随时随地手机看文章
写这篇文章的时候,我的两个月单片机设计与开发已经结束了,颇有感慨,所以写了这篇文章。
首先,我先跟大家介绍一下什么是单片机。单片机,它的全名叫“单片微型计算机”,英文名叫Micro-Controller Unit,或简称MCU。为什么叫它单片微型计算机呢?因为它就是一台小型计算机。大家都知道,我们现在日常生活中所用的计算机都由存储设备,输入、输出设备,控制器等部分组成。而我们的单片机也同样由这些组成,诚然,单片机就是一台计算机。然而,单片机不管是从运算速度,还是存储容量上来讲,远远不及我们日常生活中所用的PC机。那有些人可能会问了:“既然单片机性能远远不及PC机,那干嘛不直接全用PC机呢?还用什么单片机呢?”是的,PC机功能是特别强,基本上应用在生活中各个领域。但是,我们日常生活中各种应用系统并不一定要求计算机功能那么强大,只要能处理好我们该系统所要处理的任务就OK啦!所以,并不是每个系统都要一个那么大的计算机放在那儿控制。我举一个最简单的例子,譬如,现在的汽车产业发展的特别好,而汽车的车载电子技术也跟着发展起来。现在的汽车都向豪华型,智能型,人性化方向发展,使得人们的生活变得轻松,舒适。而这些都是建立在智能控制前提下,所以就必须用到计算机来控制。试想,如果每个控制系统都用一台很大的PC机放在汽车上,好几十台计算机放那儿,那么这辆汽车不就成了计算机房啦!那这辆汽车的造价也可想而知啦!况且,那么多的计算机放车子里面,也占据了太大的空间。所以,人们就不用PC机,改用单片机来控制它。单片机就是一块芯片,用它既节省经费,又节省空间,而且又能达到同样的控制效果,何乐而不为呢?如果用了PC机,是不是有点“杀鸡用宰牛刀”的感觉呢?就是因为这样,单片机发展的非常好,在各种领域都能见到它的身影。如消费类电子领域,工业控制领域,仪器、仪表领域,军事领域等等,都是它的天下!
好了,刚才有些跑题了,现在让我们言归正传。其实这次单片机设计与开发全是我们大家自己组织起来的。我们在整个系里面,找了20个志同道合的同学,参加了这次单片机设计与开发。说实话,刚开始,我们大家从来没有做过单片机最小系统,根本不知道从哪儿做起。但是,我们并没有灰心,而是一步一个脚印,从最简单的做起。在这次实训过程中,我们学习数码管的静、动态显示;独立键盘、矩阵键盘;MAX813看门狗电路;EEPROM选了24C02;时钟芯片DS1302的数码管显示,点阵显示;单总线数据结构温度芯片DS18B20;SPI串行数据总线;I2C数据结构;串行数据通信;并且,在最后接了一个项目:大型LED显示屏。我们这次单片机实训正值暑假,那天气可真是叫热啊!我们每学习一个模块,都要做硬件电路。每次拿烙铁焊接时,整个身体上汗珠往下滴,全身都湿透了。因为焊接时松香对皮肤有影响,我脸上长了好多痘痘,难受死了。然而,天气越热还越不能用电风扇吹,因为一吹电风扇,烙铁就没有温度,焊锡就根本融化不了,没法焊接。然而,硬件电路制作完后,还并不能算完事,更重要的还是程序。程序的编写还不算太难,让人头痛的就是调试程序。有的时候,明明程序在电脑上模拟仿真非常完美,一点儿都没问题,可是,当程序一旦上硬件调试时,却总是出问题,达不到预期的效果,非常恼人。有时气愤的真想一脚把所有的东西都给踹掉算了。那时,大家都非常努力,每天盯着自己的电脑屏幕一直到深夜,不断的调试程序,观察里面的数据变化。到最后,很多人的眼睛都变得酸痛起来。因为天气太热,大家身体上都长满了痱子,但却一直坚持着。我很感动,真的!我在这次单片机设计与开发中,尝到了成功的喜悦,也品味到了失败的痛苦。特别是那次写DS1302时钟模块时,因为要调整时间,所以数码管必须要在调整时闪烁显示,就这个闪烁显示,把我折腾了整整3天,3天一点进展都没有,当时,那真是痛苦死了,感觉真的是做不出来了,差点就放弃了闪烁显示部分程序的编写。然后我就和别人讨论商量,慢慢的,我摸索出来了。当那次上电调试时,等我按下调时按键的刹那,时钟闪烁显示了!我好高兴,好有成就感,当时脑子里面第一个想到的就是如果我开始放弃了,我就不会达到这样的效果。真的好开心,那一刻。当然,在两个月当中,出现了许许多多的问题,然而,又一次次被解决。真是痛并快乐着!还有,在这两个月中,我也明白了细节很重要这个道理。比如那次写DS18B20的时候,程序少了个延时,它就是读不出来温度数据,多了点时间,它也读不出来。真的是一点差错都不能有。
在这次单片机设计与开发中,最重要的就是做了一个项目,它是大型LED显示屏的显示。记得我们是7月22号接了这个项目。当然,项目是老师帮我们接的,但是,这个项目完全是由我们自己设计并开发的。在做这个项目之前,我们首先要做的就是市场调查。所以,我们20个人全体出动,分为3个小组,分别去了用户、公共场所、电子市场这3大市场调查了一下,整整花了1天时间。最后回来时,大家在一起又商量讨论了一下,拟定了一个方案。当我们把材料买回来以后,我们的任务便是测出LED单元板的硬件电路。我们是每一小组发4块单元板,大家用万用表测出其内部电路结构并画出电路图。令人可喜的是大家竟然用一上午的时间测出了全部电路,进展的很快。为了搞好这个项目,我们在正式接手这个显示屏之前就做了一个点阵显示。为了能更好的理解里面的数据变化,我们从最简单的做起。先是16*16的汉字固定显示,然后是16*16的汉字移动显示,而在移动显示中,又分为半字移动和列移动。接着,我们开始了32*32的汉字固定显示,最后是32*32的汉字移动显示。就这样,我们一步一步,踏踏实实地完成了整个显示屏的数据屏部分的显示。其实,在整个数据屏部分,程序上并没有什么难点,它的难点则是在算法上面。你要通过怎样的算法才能找到你所需要的显示数据才是最关键的。接下来,我们的任务是把信息屏部分给完成。但是,信息屏部分并没有我们想象中的那么简单。可以说,这个信息屏部分是这两个月中我们遇到最难的部分。信息屏部分要求能显示时分秒、年月日、星期、温度等数据,并且具有自动切换屏幕,按键调整等功能。这样,单片机所需要处理的任务就非常多,CPU出现了严重的资源、时间、空间冲突。所以,后期的单片机系统开发难点之处就在于怎样很好的解决CPU的资源,时间,空间冲突。因为我们是第一次开发项目,没有任何经验,所以最后这个信息屏部分我们刚开始是没有任何思路,不知道怎么办。接着,老师给我们指点了一些方法,画出了流程图。这样,我们就慢慢摸索,一遍一遍的烧片子试验。还好,经过将近1个多星期的努力,信息屏部分才算完成了。然而,当信息屏完成后,我们离交产品时间仅有1天了。那天晚上,我们4个同学一夜没洗澡没睡觉,通宵装屏调试,一直忙到第二天早上6点钟,真的是非常辛苦!
在这两个月的单片机设计与开发中,也出现了好多问题。很多同学心理上出现了浮躁、静不下心来的情况。遇到麻烦,困难时,总是不愿意自己主动去动脑想想。不是有句话叫勤奋至卓越吗?中国人多啊,每个人都是智商100,谁比谁傻啊。凭什么你比别人强?你能有好的工作、好的收入,你能香车宝马,醇酒美人?我认为,没有别的办法,就是勤奋!勤奋学习,这个道理大家知道,知识就是金钱啊!勤奋工作,想比别人多赚钱,在智商相同的情况下,就是多付出时间干活,再提高工作效率。别人5×8小时工作,你是7×16小时,再提高工作效率一倍,你不就赚了比别人多5倍的钱吗?就象一壶水,老是小火,烧了半天,也是温吞水;可是大火一上,一会就开了,就是这个意思。你看《射雕英雄转》中的郭靖,没有别的本事,就是傻练,有一天开窍了,如有神助。技术这个东西就是这样,突破了门槛,就是坦途。需要勤奋勤奋再勤奋。有一天这个日子来了,你就苦尽甘来了。所以嘛,我们很多同学就是缺乏这种“傻练”的精神。
回顾一下这两个月的奋斗历程,有过成功也有过不足。这对我个人来说,是一笔非常好的财富!我深刻地认识到,仅仅死学书本上的理论而不与实际硬件结合进行实践,这样的理论没有用;仅仅在校园里做的简单硬件实践如果不与工业现场应用结合,这样的实践是不成熟的。学校里的简单实验是根本不能拿到工业现场上用的。如果你想开发单片机系统,必须要真刀实枪的做产品,只有通过实实在在的产品开发,你才能遇到许多实际问题,才能积累开发经验。这在学校实验室做的一些小实验是根本而且是绝对不可能遇到这些实际问题,当然,你也就根本没有什么单片机开发经验之谈!在接下来的日子里,我会更加坚定地走上单片机开发这条路。
大学生活是我们人生中最宝贵的经历,我们付出了几年光阴的代价,我们应该也必须为此有所收获。很多同学在大学校园里迷失了方向,不知道自己来到这里究竟是为了什么,单纯的认为毕业后找个好工作就万事大吉了,可你们是否想过,没有真正的本领如何能找到好工作?如何能为这个社会做出贡献?更现实一些,没有一份好工作如何买房成家,建立起属于你自己的幸福快乐的家呢?真本事不是*混日子混出来的,我们身边有很多机会可以发挥自己的能力,实现自己的理想,即使这些机会不是很明显地让我们看见,我们也应该努力地去争取。偶尔的娱乐是可以的,可是成宿在网络游戏中挥舞大刀的同学们,那里可以砍出你的未来吗?适当的运动也是应该的,可整天都泡在篮球场上的同学们,你觉得你还有希望成为第二个乔丹吗?哥们义气固然重要,可三天两头为朋友两肋插刀,你的肋骨够用吗?恋爱诚然美好、温馨,但是你们没有真正的本领能保证以后过得幸福快乐吗?年轻人应该有更高的追求!!!你要为你的将来做好准备,外面的世界很精彩,外面的世界也很残酷,你活着的每一天都应该好好珍惜!
扩展阅读:学单片机从构建最小系统开始