步骤
1.找本书大概了解一下单片机结构,大概了解就行。不用都看懂,又不让你出书的。(3天)
2.找学习板练习编写程序,学单片机就是练编程序,遇到不会的再问人或查书。 (20天)
3.自己网上找些小电路类的资料练习设计外围电路。焊好后自己调试,熟悉过程。 (10天)
4.自己完全设计具有个人风格的电路、产品,你已经是高手了。
看到了吗?下功夫一个多月你就能成为高手,我就讲这么多了,学不学得会,下不下得了功夫就看你的了。 我的单片机学习心得 很多人说,学单片机最好先学汇编语言,以我的经验告诉大家,绝对没有这个必要,初学者一开始就直接用C语言为单片机编程,既省时间,学起来又容易,进步速度会很快。在刚开始学单片机的时候,千万不要为了解单片机内部结构而浪费时间,这样只能打击你的信心,当你学会编程后,自然一步步就掌握其内部结构了。 单片机的学习实践 单片机提高重在实践,想要学好单片机,软件编程必不可少。但是熟悉硬件对于学好单片机的也是非常重要的。
如何学习好硬件,动手实践是必不可少的。我们可以通过自己动手做一个自己的电子制作,通过完成它,以提高我的对一些芯片的了解和熟练运用它。这样我们就可以多一些了解芯片的结构。我相信,你完成了一个属于自己的电子制作,你的单片机水平就会有一个质的提高。 这就是我学习单片机的心得体会,希望给单片机的爱好者学好单片机有所帮助。 使用单片机就是理解单片机硬件结构,以及内部资源的应用,在汇编或C语言中学会各种功能的初始化设置,以及实现各种功能的程序编制。 第一步:数字I/O的使用
使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字I/O功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功能,虽然很简单,但是可以学习一般的单片机编程思想,例如,必须设置很多寄存器对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能。每使用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。 第二步:定时器的使用
学会定时器的使用,就可以用单片机实现时序电路,时序电路的功能是强大的,在工业、家用电气设备的控制中有很多应用,例如,可以用单片机实 现一个具有一个按钮的楼道灯开关,该开关在按钮按下一次后,灯亮3分钟后自动灭,当按钮连续按下两次后,灯常亮不灭,当按钮按下时间超过2s,则灯灭。
数字集成电路可以实现时序电路,可编程逻辑器件(PLD)可以实现时序电路,可编程控制器(PLC)也可以实现时序电路,但是只有单片机实现起来最简单,成本最低。定时器的使用是非常重要的,逻辑加时间控制是单片机使用的基础。 第三步:中断
单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要一定的执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按下时的下降沿。
要使单片机在程序正常运行过程中,对快速动作做出反应,就必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完成后,在返回执行正常的程序。 中断功能使用中的困难是需要精确地知道什么时候不允许中断发生(屏蔽中断)、什么时候允许中断发生(开中断),需要设置哪些寄存器才能使某种中断起作用,中断开始时,程序应该干什么,中断完成后,程序应该干什么等等。
中断学会后,就可以编制更复杂结构的程序,这样的程序可以干着一件事,监视着一件事,一旦监视的事情发生,就中断正在干的事情,处理监视的事情,当然也可以监视多个事情,形象的比喻,中断功能使单片机具有吃着碗里的,看着锅里的功能。 以上三步学会,就相当于降龙十八掌武功,会了三掌了,可以勉强护身。 第四步:与PC机进行RS232通信
单片机都有USART接口,特别是MSP430系列中很多型号,都具有两个USART接口。USART接口不能直接与PC机的RS232接口连接,它们之间的逻辑电平不同,需要使用一个MAX3232芯片进行电平转换。 USART接口的使用是非常重要的,通过该接口,可以使单片机与PC机之间交换信息,虽然RS232通信并不先进,但是对于接口的学习是非常重要的。正确使用USART接口,需要学习通信协议,PC机的RS232接口编程等等知识。试想,单片机实验板上的数据显示在PC机监视器上,而PC机的键盘信号可以在单片机实验板上得到显示,将是多么有意思的事情啊! 第五步:学会A/D转换
MAP430单片机带有多通道12位A/D转换器,通过这些A/D转换器可以使单片机操作模拟量,显示和检测电压、电流等信号。学习时注意模拟地与数字地、参考电压、采样时间,转换速率,转换误差等概念。使用A/D转换功能的简单的例子是设计一个电压表。 第六步:学会PCI、I2C接口和液晶显示器接口
这些接口的使用可以使单片机更容易连接外部设备,在扩展单片机功能方面非常重要。 第七步:学会比较、捕捉、PWM功能
这些功能可以使单片机能够控制电机,检测转速信号,实现电机调速器等控制起功能。如果以上七步都学会,就可以设计一般的应用系统,相当于学会十招降龙十八掌,可以出手攻击了。 第八步:学习USB接口、TCP/IP接口、各种工业总线的硬件与软件设计。
学习USB接口、TCP/IP接口、各种工业总线的硬件与软件设计是非常重要的,因为这是当前产品开发的发展方向。 到此为止,相当于学会15招降龙十八掌,但还不到打遍天下无敌手的境界。即使如此,也算是单片机大虾了!!
单片机的“超神之路”:三个规划
首先,单片机不是万能的,但没有单片机那是万万不能的。从N年前的单片机,到现在的单片机,单片机只是单片机,其性质并没有太多的改变。只是从原来的“神秘”、“暴利”、“有趣”等等,回归了她原来的真是面目罢了--那只是在说明社会在进步,更加的合理和趋于理性。
只是现在的这样回归,有点走了极端,从一个极端走了另一个极端罢了。但相反,社会在这方面的需求却是越来越大,至少在我们的有生之年,这样的“自动化”过程一直会贯穿下去。所以你有什么好担心的,怕自己没有用武之地吗?!怕自己的资薪没有或不高吗?
我自己在单片机和自己熟悉的行业上做了快10年了,不说自己的水平怎么样。说牛不牛,说不牛也牛--该骄傲的时候还是要骄傲的,那是对自己的肯定,该谦虚的时候也要谦虚学习,毕竟单片机总是一个系统工程,方方面面的东西不是自己都要熟悉和精确把握的。要想自己混的不错,我还是那句话---和自己所处的行业结合,那才是王道。
有些人在抱怨单片机在社会上的方方面面,那只是一个现象或表象罢了,或者说那只是纯电子开发或纯电子开发的配套产品,在面临更加激烈的竞争情况罢了。别说自己只会编编程,做点纯电子的工作就觉得不得了了,那就错了,单片机系统工程没有那么狭隘。
如果你走不出这种狭隘,那你注定就是在抱怨的那部分人。就像我前面说的,单片机只是在回归她的本来面目而已。还有就是中国就是太缺少“到了50、60岁的样子”,都还在从事单片机工作的人。也许那也是新兴的中国需要经历的一个过程吧?!
没有什么职业是最好的,只有在当前或相当一段时间内适合自己的职业。就说单片机,对我来说,单片机的工作成果那只是一个配件(当然纯电子产品除外),正因为是“配件”,所以你需要提供相应的物理尺寸,单片机系统的散热,安装条件和安装方式等等情况,需要与你的上下游提供的环境配合好,而不是说我的单片机功能完成了就没我的事了,万事大吉了。
就仅对单片机需要实现的功能来说,如果你连功能都实现不了,那我还要你做什么--那只是基础工作。其实,往往上下游提供的环境对你的设计就是一种考验,也有你需要变换N种方案才能比较好的实现的可能。很明显,这样的上下游环境,对你就是一种很好的资源,不过有些人可能就会视而不见,让你更加熟悉自己开发的东西,在这个行业中的使用和价值情况,对自己的今后发展都是一个很好的参考。不像C、C++的人员到了没有发挥平台的时候,就很郁闷了。相反,对单片机来说,我们可以为自己建立那样的可以供自己发挥和发展的平台。
说了那么多,我只是在闲聊,聊聊自己的看法,希望对你有点帮助。
就我的理解出发,单片机是相当“底层”和“硬件”的东西,没有太多高深的数据结构,也没有太多需要技巧的编程算法,只要我们从单片机执行的角度去理解和编程就行了。一个单片机就可以构成一个电子系统,也可以只构成一个智能节点。没有太多高深的东西需要去研究,因为我们只是单片机的应用者而已,别把自己提到“研究”的高度,我们只在“应用”的高度。
正因为是在“应用”的高度,所以在熟悉和能精确把握“单片机的使用”的时候,应该把更多的精力放在“单片机的应用”的“使用环境”上。曾经有个牛人,拿着intel的8031的芯片技术手册和内部手册,在一个单片机上实现了你想都没想过能实现的应用,但我认为那个是没有必要的,除非你想搞51芯片开发。说了那么多,如果你还在为单片机而单片机的话,那我觉得你有点可悲了。
多熟悉单片机的上下游环境和条件,那不是很困难的事。我希望自己理解的这些东西,对后来者有点帮助,对新手能够带来点思考的东西,那就够了。
规划高度一:
当有一定的年龄和人力资源后,就可以自己出来做了,当个所谓的半个老板了。但当自己做老板说容易也容易,说不容易也不容易。当初我就是在这样的忐忑中,冲了进去。项目接的很多,周期对自己规定的也很短,往往都是白天在处理前一个或前面项目的维护工作,晚上回来工作到一、二点开发新项目。
累就不用说了,有时想想那是在拿自己的命来搏钱啊!!!老婆不太同意我出来自己干,做的好好的也不错。于是,我就对老婆说,可能我不能每个月准时的拿钱养家糊口,但我保证一年下来的平均每个月养家糊口的钱一定不会低于现在。就这样,我开始了走自己的路了。吃苦受累我不怕,付出了没有收获我不怕。怕的就是过不了自己的心理关,也许一直以来都比较好运气和顺利的缘故吧?!作为和我同行的兄弟姐妹们,一定要过了自己的心理关,别太在意今时今日的得失,还有所谓的某些情况下的“面子”。
至少我们应该用“最小的代价”来给自己当“学费”。也不怕你们笑话,我的“学费”交的也不少。一个成功的项目,不是你的功能有多好,有多强,而是你的开发成功为你的项目方带来了多少的利润收入,那才是真正的成功了,尽管你只赚了点儿开发费。
做项目,别为自己考虑太多,多换位思考一下。人家能信任你,把项目交给你做,你就多该从项目方的角度考虑考虑---也许有时他们的要求有点过分,但所谓不知者不去怪罪了。
规划高度二:
做一个称职的软硬电子工程师吧。不用学太多,就学一些就行了,也不要去跟风,那个没有必要。有时,你就是去学了,如果没有相应对应的开发任务,学的也是皮毛,不过只要皮毛也可以了,当你真正需要的时候,再拿起来就会快很多,也算是一种储备吧。
但你至少要会一种,一种相对来说狭隘的系统吧?!不怕你笑话,我就只会51单片机。先说说我自己了,从事工业自动化方面的机床设备行业:
精通51,了解其他的单片机,精通51汇编,精通CPLD,半精通C51(只用来做点人机界面工作),粗通FPGA(想精通自己做51IP核)。