本帖最后由 救火车 于 2010-1-18 17:20 编辑
本文原创,仅代表我搞单片机的一些想法,有不妥之处,不承担任何责任。
第一个问题,讲一下初学者到底学习那个系列单片机。
51、AVR、430、ARM(包括嵌入操作系统)、FPGA当前单片机系统如此丰富,对于新手到底该如何选择呢?我认为最大的误区,在于新手普遍的追时髦心理,急功近利心理,妄想短时间之内学会ARM,学会嵌入操作系统。网上资料、厂家宣传、培训机构广告也对初学者产生误导,使之误认为ARM很容易学。但是没有51单片机知识作为基础,其他一切都是空中楼阁。必不能达到预期效果。51单片机作为入门级产品,现在更多的体现在教学意义上了。虽然大部分的产品,已经淘汰51,使用高级芯片或者增强型51芯片,但是奉劝初学者,还是要从底层、基础、即51开始单片机的学习。学好、学会、精通51单片机再学习其他单片机也能很快入门。
第二个问题,学习单片机,需要有哪些基础,入门都学哪些东西。
很多初学者经常问,我能学单片机吗?难吗?我现在什么也不会啊?这里想说几句,要想学习单片机开发,需要有以下几方面基础,但要求并不是很高,可以在以后的学习过程中慢慢学。
1、电路基础:一些数字电路、模拟电路基础。毕竟以后要自己设计电路,这些知识是很有用的。
2、C语言基础:我个人比较喜欢C语言开发,相比汇编最大的优点就是移植性要好。学习51单片机,C语言编程当然需要有些基础。
3、一些单片机的基础知识:虽然是初学者,但是一些基础理论知识还是应该知道的。
4、一些焊接等动手能力,这个要求就不是那么严格了。呵呵。不过能搭一手漂亮的电路还是挺好的。
怎么样算入门?
1、学会使用编译器软件:就是在编译器下建立一个项目,编写一点点代码,生成一个程序文件。当你熟悉这个流程以后,就变得非常容易了。不过第一次还是很难实现的,最好有一个比较详细点的教程。
2、学会使用下载工具和软件:把程序烧录到单片机里,运行起来,需要动手去操作。
3、学会使用调试工具:如有条件,可以学习硬件仿真调试。
4、以上可以在学习板上实现,不过以后你要学会自己设计 并制作电路。所以还要学会PRTEL软件使用。
第三个问题,学过一段51单片机了,入门也会了。以后怎么办啊?
很多初学者,学了一款51学习板,基础东西也都会了,下一步怎么发展却不知道了。下面的一些理论是我的一点不成熟想法,有这样困惑的朋友可以参考参考。
1、单片机的平面发展理论:不断学习同一个层次、不同结构、不同品牌的单片机。
学会了一个系列、一个公司单片机,比如51(AT89S51),了解的它的全部内部资源。下一步学习,仍然可以围绕51进行。可以扩展到其它公司的51单片机,比如stc、pic因为他们有很多增强型51单片机。功能比普通AT89S51强很多。如果可以,接触更多的同系列的51单片机。最终能够在做产品时,选择最正确的单片机,对每一种51单片机的优劣有清晰的判断。
2、单片机的纵向发展理论:不断学习高级别的单片机。
在学会一个系列的单片机,继续学习高级的单片机,比如从51到AVR、到ARM。可以学习到更多的单片机,接触到更多的知识。
3、单片机的外围发展理论:不断学习单片机的外围功能模块。
学会一个系列的单片机以后,转而研究外围电路。不论是输入、输出、通讯、逻辑和计算。单片机外围电路千变万化,其功能模块也千奇百怪。这样的模块学的越多,对你做产品的好处越大。毕竟所有功能模块都是用在单片机上的,不论是51还是ARM都需要有外围电路才能实现功能。
4、总结:无论以上那种发展模式,其最终目的都是单片机开发,都是研发出产品。所以最终的产品才是目标。
第四个问题,学习要精 还是要多的问题。
这个问题也比较麻烦,很多认为搞单片机要学那么多东西,还要软硬件结合。我不可能每一种都做的很好。到底是要什么都会,还是要精通一种呢?
个人认为,如果是学生,还没有工作,那么还是什么都会一点才好。毕竟谁也不知以后的工作内容是什么,可以参加工作以后再选择优势发展方向。
另外通常精通一种工作的都是大公司,分工比较明确,每个人负责自己的一部分,而在小公司,可能连技术文件都需要你来编写,当然是会的越多越好了。
第五个问题,随便聊一聊开发的流程,主要研发设计人员在这些流程中的工作。
1、产品需求阶段:可能是根据市场需要或者公司安排,确定要开发一种产品。开发人员需要和产品需求方沟通,明确客户的需求,对即将开发的产品有一个总体上的印象。
2、产品立项:这时产品已经确定要开发,需要立项,开发人员可能需要填写立项相关文件。有可能设计项目奖金哦。。。
3、产品总体设计:一般由高级系统架构师(我也不知道这个是什么样的牛人呢,还没参加过有这种牛人的项目)搞定整个产品的系统设计。形成系统结构图,有可能分解成软硬件部分。(此处的软件指上位机应用软件,不是单片机内部程序)。
4、技术难点攻关:这里看需要开发人员出力了,就是把整个系统比较难或者不能确定的部分,先进行研究实验,以确认不会因为这些部分导致项目无法实现。
5、电路设计制作:涉及到单片机开发人员了,涉及产品电路,并形成PCB电路板。
6、单片机程序编写:终于要编程序了。到单片机工程师大显身手的时候了。
7、硬件调试:电路板焊接完成,程序编写完成。进行硬件调试,以发现程序的缺陷。 还有可能因增加或删除功能进行修改。
8、与上位机联机调试:基本是整个系统都完成了,所有功能都要调试,以保证产品稳 定。如果没有上位机软件,这一步就省略了。
9、测试:产品都搞完了,当然需要测试了。测试过程和方法很复杂的,这里就不说了。 如果测试出现问题,是需要返回到开发人员那里进行修改的。
10、制作样机,完成项目开发部分:到这里基本上已经告一段落了,不过开发人员可能 还需要提供说明书等很多文件。
11、小批量生产,投放市场:用市场检验产品。如有不合格或者需要升级,开发人员就 要进行修改了。
12、产品实现量产:量产销售到市场,如有问题,一般归售后服务人员处理,处理不了 也会让开发人员帮忙,毕竟开发人员对产品最为熟悉嘛。
13、总结,开发人员的工作可是贯穿整个产品开发过程的。。。初学者可以对照一下,看看你都需要学会哪些东西。
本文有感而发,仓促写成,不妥之处还请大家海涵,拍砖请轻点。 |