单片机只是一个工具,重要的还是思想,有了思想,电子行业随你闯。从单片机这个切入点入手还是不错的,你还在念书,不要把薪水看得太重,哪怕是毕业两三年也是。重要的是掌握程度和对技术的理解程度,有句话叫“水到渠成”,到时候再去研究工资的事情也不晚。
这是单片机初学者经常问的问题。对于这个问题,我想没有人敢下定论。因为每一种单片机各有所长,都适用于其所能充分发挥作用的领域,不存在优差之分。学单片机应该先学51单片机,学会了51单片机再去学其他单片机,这是学习单片机过来人的同感,也是公认的学习方法。为什么要先学51单片机?因为51单片发展最早,应用最广泛,特别是I/O口的操作非常简单,而且相关的学习资料最多、教材最成熟,学习起来得心应手,入门很快。有了这个基础再去学习其他单片机那就是小菜一碟了,只是对着芯片数据手册设置寄存器罢了,快则一两个星期,多则一个月就能掌握另一种单片机了。如果一开始就选择非51单片机学习,那将是“路漫漫其修远兮,你将艰难而求索!”
那学51单片机用C语言还是汇编语言好?当然是C语言了。因为:1.C语言是高级语言,代码移植性好,易于维护;2.编程灵活,随心所欲;3.语言层次分明,思路清晰,可读性强。4. C语言是目前最流行的单片机编程语言,例程代码多,便于参考,单片机技术发展之快,应用之广,学习群体日益庞大,这和keil C51开发环境的问世是分不开的。5.C语言是大众编程语言,是其他编程语言的基础,学会了C语言,对于进一步深造的选择就很自由了。汇编语言是早期单片机学习使用的语言,优点是执行指令比C语言稍快外,其他方面笔者不敢恭维。
学会51单片机以后,就可以根据你从事的工作或者你的目标选择以下一种或多种继续深造。
1.AVR单片机-----速度快,一个时钟周期执行一条指令,而普通的51单片机需要12个时钟周期执行一条指令。当然,Atmel公司出品的AT89LP系列单片机也是一个时钟执行一条指令,但目前还未普及。AVR单片机比51单片机多了USB通信模块、SPI通信模块、I2C通信模块、PWM模块、AD转换模块等,但在C语言编程方面对I/O的操作比51麻烦得多。
2.PIC单片机------品种齐全,应用领域广泛,片内资源也很丰富,也是很受欢迎的单片机。比51单片机多SPI通信模块、I2C通信模块、PWM模块、AD转换模块等片内资源。4个时钟周期执行一条指令,速度看似比51单片机快,事实上并非如此,PIC单片机最高时钟频率一般为8MHZ,而51单片机最高时钟频率可达到33MHZ 。速度上PIC单片机并不占优势,而抗干扰能力则也比51单片机略强。C语言编程方面对I/O的操作要比51麻烦。
3.MSP430单片机-----16位单片机,速度快,一个时钟周期执行一条指令,超低电压低功耗,适合用于电池供电设备。
4.Motorola单片机-----抗干扰能力极强,适用于恶劣环境,这是以降低速度为代价的。
5.DSP技术------用于音频、视频、通信等快速数字处理领域,速度超快,编程算法也比较复杂。
6.FPGA技术------难度和单片机差不多,应用领域逐渐广泛。
7.嵌入式系统-----应用于非PC机控制以外的复杂的智能控制系统,以及智能通信设备、掌上电脑、学习设备、娱乐设备等,应用领域也很广泛。学习难度也较大,需要有操作系统、硬件、驱动原理等方面的知识。山寨版的手机、掌上电脑等满街泛滥都是嵌入式系统发展惹的祸。
8.其他单片机,如德州仪器单片机,合泰单片机,NEC单片机等。
要说学哪一种单片机最有前途,笔者也不敢妄加断言。不管选择那一种,前途光明与否都由你的造诣深度来决定,精则兴,不精则废。
玩单片机可以有以下几个等级:
1、纯硬件DIY:这一级玩法很简单,只要有一个ISP下载线(和手机数据线的性质差不多),自己制作硬件电路,然后把单片机的程序烧到单片机里就行了。不需要懂编程。在我的网站里有许多小制作,每一个制作都有提供HEX文件,是下载给单片机的程序。很简单,和玩数字电路一样简单。
2、半编程DIY:硬件制作也会了,纯硬件DIY已经熟悉的时候,就可以试着玩玩编程了。半编程DIY并不是自己从头开始写程序,一开始也没有这个水平,呵呵。这一部是照着别人已经写好的程序,然后在现在程序上改一改数值、换一换语句。比如我的SHOOK16摇摇棒,就可以自己在源程序里只改字幕部分的程序代码,而不去管应用程序和硬件驱动程序是如何实现的。
3、全编程DIY:玩够了别人的制作,用腻了别人的程序,是不是也应该自己写点程序玩玩的,写点前无古人的程序,做些从没有过的制作。这一阶段就是全编程DIY。但是并不是说自己要一字一句的写程序,那会很没有意思的。现在的单片机程序基本已经模块化了,要用到延时就复制延时程序模块到自己的程序里,要用到定时器就复制定时器的程序。比如在我的网站里的“编程”栏目中就有许多现成的程序模块,可以直接使用。