本帖最后由 zlc 于 2012-3-30 23:28 编辑
当你掌握了如何用单片机完成一个项目,你也就学会了如何使用单片机。不知道这样理解对不对,我是个新,目前还不会使用单片机。做为一个维修电工,不会用单片机总觉得少了点什么,但也不迫切,学习单片机应该是兴趣使然。
在网上看过不少新手或是为怎么学习单片机而困惑,或是为学习什么单片机而困惑,还有为学不学而困惑的。我原来也很困惑,但现在不了,想要看清庐山真面目,就要站在比庐山还要高的高度。学习单片机也是一样吧,不管出于什么目的(有爱好单片机、有必须用单片机、有以此为筹码多赚点钱的,还有认定此路必是光明大道的),单片机总是要揉进项目里去的,哪怕是只点亮一只LED。从项目的角度去看单片机,去学习单片机,也许不会觉得困惑和迷茫。每一个项目都应该可以是这样的,对需求进行提取、抽象为功能,运用各种手段实现功能,最后升华为满足需求,至此一个项目完成。学习单片机也是一样,在学习单片机之前先完成这样一个项目:
1、 我为什么要学习单片机?
2、 我要学习什么单片机?
3、 我要怎么要学习单片机?
1、 我为什么要学习单片机?俗话说,技多不压身。多一技能总不是坏事,多学学没有坏事,学吧!
2、 我要学什么单片机?其实学什么单片机都是一样的,51说简单也不简单,那ARM就难吗?虽然我没学,但我不认为它有多难。一切从应用出发,需要什么样的单片机就用什么样的单片机,就学什么样的单片。如果没有基础还是有些束缚的,还是要从8位机出发的。比如51、AVR、PIC都可以。我就是没有基础,所以选择PIC,选择PIC不是偶然。如果就单一芯片,我觉得51比PIC应用要多,AVR同理,PIC没有优势,但PIC族群庞大(不知道我说的是不是那么回事)。再说硬件稳定性和参数的一致性,我觉得PIC就有优势了(这里我并不想提抗干扰,那与个人水平密切相关)。这里的选择与芯片本身的架构、指令、难易成度无关,完全从需求出发(如果没有基础还是一步步来的)。以上基于我个人的片面了解,拍砖可以,别打脸。
3、 我要怎么学单片机?其实这是最重要的(有人经常问我:“在学校里你都学到了什么啊”,我会告诉他:“学习方法”)。其实曾经学过什么,学到了什么并不重要,重要的是你要知道如何学习你需要的,这就是所谓的学习方法。这一点在单片机这一行业,或者嵌入式系统,再者软件行业,无不如此。CPU:4位、8位、16位、32位、64位,谁知道会不会再出来个128位。单片机:51、PIC、AVR、ARM7、ARM9、ARM11,现在有M0。软件:原来有B语言,后来有C语言,再后来C++、C#、JAVA、delphi、.NET等等。那么,你觉得我们学得过来吗,无论学多少,都会有新的东西出来,那么你还要学习什么,还要学习多久?我的这段话你是否会明白些什么?这也许和学习单片机没什么联系,但这很重要。从小学到大学,再到生活、工作,我都在学习中,通过不段的学习我们了解知识,了解生活,了解工作,同时也在认识自我,但在学习的过程中,你有没有发现一些东西,像软件的架构,也像欧姆定律(其实并不是“欧姆”,而是“定律”),像习惯成自然,也有点像“潜规则”。那么在学习的过程中,你有没有发现你的“软件架构”呢?这就是所谓的学习方法。如果你掌握了学习方法,无论在哪个角落你都会是一个亮点。说了这么多,还是要回到单片机上来,学习单片机也是一样,要确定学习方法,也许这比学习的过程要纠结,但这是事半功倍的事,没理由不去办(当然有好的学习方法,你不去学,也是没有用的。)
说到这里,我想我可以明确我的单片机学习方法了,就是把单片机揉到项目里去(还是那句话:哪怕是只点亮一个LED)。就拿点亮一个LED为例吧:
分析需求:使一个LED点亮。
抽象功能:用一个MCU控制一只LED点亮,上电即点亮。
功能实现(硬件):电源(要有电才行),MCU最小系统(这是MCU工作的基础,不了解就查资料吧),一个LED并且连接到MCU(查LED的工作参数并匹配外围器件)。
功能实现(软件):确定实现语言,选择软件开发环境,用编程语言抽象功能。(我想学习单片机软件占的比例大些,以后慢慢分析吧,必竟我还不会编程)
升华到满足需求。
{
明天继续学
}
不知道我理解的对不对,没自信啊!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
请问我的这段程序有什么问题吗?
一周热门 更多>