[经验]谈谈我学习单片机的经历

我是高中毕业后第二年(1998年)开始出来工作的。到目前为止,工作时间已有十一年之久。在这十一年里,我先后做过电子生产工、测试员、维修工、硬件工程师、软件工程师、项目经理、工程主管等等工作。一路走来,我的工作始终都没有偏离过电子这个领域。之所以选择干电子这一行,一切都是缘于参加工作之前,我参加了一个为期3个月的电子培训班。而后面的工作只不过是学以致用和技能提升的延续。


2003年,我在一家做门铃的私人企业里做电子工程师。当时,社会上正刮起一股学单片机的热潮。《电子报》、《电子制作》等电子刊物纷纷在其期刊上大篇幅介绍关于学习使用单片机的文章。当时我看了师兄们在电子刊物上发表的单片机编程实例,真是惊诧万分!神了!世界上居然有这么好用的芯片,想实现什么功能都可以!一方面我对师兄们佩服得五体投地!因为那看起来象天书一样的程序我怎么都想不出师兄们是怎样弄出来的。另一方面我也彻底地失望了!因为我想这么个高深莫测的东西我是今生今世都学不会了!但是命运的安排却出乎我的意料!


尽管我看不懂那天书一样的程序,但在好奇心的驱使下,我还是不断地去在网上找那些与单片机有关的文章。慢慢地,我通过网络的自学教程知道了有一种叫MCS-51系列的单片机很流行。而这个系列的单片机需要用一个叫KEIL C51的软件来对程序进行编译。编译完成后会产生一个HEX文件,把这个HEX文件下载到编程器后就可以把程序烧写进单片机里面了。随着时间的推移,我积累的单片机知识越来越多。终于,有一天,我在看《电子制作》上的一个程序实例时突然感觉好象明白了些什么,但模模糊糊的又不敢肯定。于是我反复的看,反复的对照,最后得出一个结论:“我看懂了程序!我进门了!我进门了!”。在那一刻,我真是欣喜若狂!是啊!经过了几个月的不懈努力,终于得到了回报,又怎能不令人欣喜呢?


事情讲到这里,我要先说一下另外一件事情:由于当时我感觉在那间门铃厂里做已经没有什么发展空间了,于是我在2003年年底辞掉了工作。而我真正接触到单片机的时间是在2004年进入了一家专业开发、生产小家电控制板的公司以后。


我当时是以硬件工程师的身份进入这家公司的。我要负责的工作就是按客户的要求来设计好线路板,然后装好元器件,把样板交给软件工程师编程。能够进入这家公司工作是我这些年来最大的幸运!因为我在这家公司里学到太多东西了!例如:单片机的硬件电路、单片机的抗干扰方法、单片机编程技术等。可以说,我的单片机知识有90%以上都是在这家公司上班期间学到的。虽然我离开这家公司已经有一段时间,但我还是想在此向这家公司的老板和几位已离开公司的师兄们道个谢!感谢他们曾经对我的培养和帮助!祝福他们一路走好!


闲话休聊,言归正传。话说当年我进这家公司之初,我对单片机的了解仅止于鸡毛蒜皮而已!尽管单片机的硬件电路相对来说是比较简单的,但我对这方面的了解还真是太少了。什么A/D型按键检测电路、温度检测电路、数码管、VFD、LCD、数码屏的驱动显示电路、I/O口的复合应用……,这些我都是一无所知!


所以当时我要独立设计出一个能满足客户各种要求的硬件电路,难度还是很大的!不过还好,当时的师兄们对我这个一无所知的小师弟还是很照顾的,在每次交给我任务的同时都能对我指点一二。就这样,边做边学,经过大概半年时间的努力,我也逐渐掌握了一些单片机的硬件电路,基本上已经能够满足工作的需要了。这时候我才松了一口气,关注起师兄们做的程序来。看着师兄们做出来的功能繁复、花样不断的程序,我心里真是既佩服又羡慕!想起自己在书上辛苦学来的一点51单片机编程实例,在这里真是一点用处都没有!因为书上的那些例子都是用来演示一下,帮助学者理解的,根本就不实用!而真正实用的东西都装在象师兄们这样的一线工程师的脑袋里面。“要学就要学实用的东西,不然,学来又有何用!”


同样是等待,这里就是最后一点所说的,咱这是跑着来等,不是站着来等。跟死循环定时比较,在没有定时到20ms的这段时间里面单片机在做什么?死循环的话,肯定就是在原地等,什么都不做,而看看上面的程序,他只是判断是否定时够,具体的定时在统一的时间子程序里面做,判断没有到时间的话就跳出了,继续跑其它的程序,直到当时间到了,单片机判断出flag_delay,key_flow符合条件,开始进入按键处理程序了,在这个期间,单片机都在做其它事情,只是一个主循环跑回来判断一次,所以单片机完全有空跑其它的程序,而没有将时间都耗在消抖上面。

我当时这样想。 “我再也不能象以前那样学单片机了(之前我买了一些51单片机的书籍天天啃),我必须找到一个更好的学习方法!”我想。但是怎样才能学到真正实用的单片机技术呢?我想到了向师兄们请教。得到的答复是:“你去买一台单片机学习板,然后安排你做一个最简单的项目,一边做一边学是最好和最快的单片机学习方法!”。于是我买了一个单片机学习板。


但公司里一时间还没有适合我做的简单项目,于是我向一位师兄要了一个公司里已经开发好的实用程序作为参考例子来重点学习。我一边看师兄做的程序例子,一边分析和理解每一行、每一段程序的真实意图,并且在每一行程序的后面都补上了注释。遇到不好理解的程序段就模拟运行一下程序来帮助理解。慢慢地,我对师兄们的编程技巧和单片机的运行模式有了初步的了解。


过了一段时间,机会终于来了,一个比较简单的项目被安排由我来编程。接到这个任务我是既高兴又担心!高兴的是终于有机会试验一下我的学习效果了。担心的是怕自己做不出来,既丢脸又糟蹋了这样一个好机会!所以我全力以赴!奋战3天3夜终于将样品送给了客户。说实在话,这时候的我还是没有很好的理解师兄们的编程技巧和单片机的运行模式,程序也编得有点不论不类。经过这次试水,我更觉得自己的单片机功底不够。但是这个时候我已经不能再依靠师兄们的帮助了,因为他们都陆续离开了公司。


于是我开始补课,这时我学过的单片机实例资料刚好派上了用场。在往后的大概半年时间里,我一边利用空余时间学习单片机的基础知识,一边对公司里一些客户要求更改的程序做一些修改,从中我也学到了不少单片机知识。再后来,我就慢慢的开始编写一些程序。从指示灯显示的消毒柜控制板程序开始做起,再到数码管显示的电热水器控制板程序、VFD显示的抽油烟机控制板程序、数码屏显示的电子鞋柜控制板程序……。从此,我成为了该公司的一名软件工程师。


我学单片机的经过并不是每个单片机学习者都必须要走过的历程,也没有什么值得模仿的东西推荐给大家。但我想我可以从我的学习经历中得到一些启发,总结一些经验以供后学者参考。


经验之一:学单片机,跟有经验的人学要比跟书学快得多,好得多!经验之二:在没有人教的情况下,是否能够选择一套好教材,一套好的学习工具,将决定你是否能够学会单片机编程技术!经验之三:学单片机一定要学方法,学思想,不能死记硬背!经验之四:学单片机不但要多动脑,还必须要多动手!


好了,我的学习经历和学习经验都已经向大家和盘托出了,希望对有兴趣学习单片机的朋友有所启发。在此也预祝各位想学好单片机的朋友能够尽快学会单片机编程技术!

> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >


单片机和模块工作时,通常自己定义传输协议,不论用何种调制方式,所要传递的信息码格式都很重要,它将直接影响到数据的可靠收发。

生成海报
点赞 0

钟, 广林

我还没有学会写个人说明!

相关推荐

分析芯片损坏的原因

在电子产品的工厂生产阶段,最容易导致PCB主板出现不良的原因就是芯片损坏,导致电子产品在生产测试阶段出现不良品,那么芯片损坏的原因一般是由于什么导致的呢? (1&#xff0