单片机的编程语言有三种:机器语言、汇编语言与高级语言。
1.机器语言是计算机能够看懂的语言。(形式为一段二进制代码)
2.汇编语言是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。
3.高级语言包括:C语言、BASIC语言和PL\M语言等。(现在一般使用C语言进行单片机编程,其他语言用作单片机编程较少)
由于计算机只能看懂机器语言所以无论是汇编语言还是高级语言都需要经过编译成为机器语言才能够执行。
很多同学想要学习单片机,但是没有任何基础,不知道该如何入门,今天传智播客就和大家分享一些单片机编程入门前要了解的一些事情。
①初学者到底学习那个系列单片机
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学习板,基础东西也都会了,下一步怎么发展却不知道了。下面的一些理论是我的一点不成熟想法,有这样困惑的朋友可以参考参考。
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、总结,开发人员的工作可是贯穿整个产品开发过程的。初学者可以对照一下,看看你都需要学会哪些东西。