怎么玩单片机
扫描二维码
随时随地手机看文章
我喜欢用“玩”,而不喜欢用“学”来描述怎么掌握单片机。我们要以玩的心态来学,而不是为了完成任务的来学。
一句话:要像爱女朋友一样,爱单片机。
一.玩单片机需要哪些基本条件?
模拟电路,数字电路基础,对C语言或汇编语言有一定的了解。硬件条件的话,电脑一台,实验板一套。有些人一看,哎呀我的妈呀,这没学那没学,等学了模拟电路,数字电路,C再来学,你OUT了。
我的观点是:我们要什么就学什么,现学现用。对公司来说,不问你学过什么,而是问你用过什么;不问你懂什么,问你会什么;对于电子类的同学,没搭过电路,你不知道LED怎么亮的;没有编过单片机程序,你真不知道C语言能做什么,你还以为C语言 TMD好像就算些数学公式还行,光理论不实践学也白学。
一句话:我们要什么就学什么,现学现用。
二. 该玩哪种单片机?
单片机型号有很多,常见的有51,PIC,AVR几个系列,每个系列又有很多型号。那么,作为初学者的我们,该玩哪款单片机呢?
其实单片机都是一样的,就像电脑一样,不同的电脑只是配置不同,不同的单片机也只是配置不同(汇编指令不一样是后话)只要认真学了,掌握了任一一款单片机,在学习其他款,最长一个月搞定。51系列作为经典的一款单片机,它的资料非常的丰富,也比较容易掌握,因此,从51开始入门应该是非常明智的选择。
在这里我要批判一些观点,有人老是叫嚣:51早就过时了,还学这玩意,要玩起码玩ARM。他连基本的道理都不懂,不学会初等数学,你能直接学会高等数学吗?(除非你是天才另当别论)不学51,你学ARM你那是一口气要上珠峰,多半“死”在半路,估计你从此连51的小山都没信心爬了。再说俺们是以51入门,不是就只学51,俺将来也是要登“珠峰”的人。
一句话:什么简单学什么,入门最重要。
三. 要不要买开发板
我的答案是“看你个人的学习方法”,但是如果大家是需要看这篇文章的水平,个人推荐还是买现成的。
1 买
买板子可以把注意力集中在软件开发上,软件开发可以不必担心自己硬件上的问题。咱本来就刚起步,写个程序半天没反应,也不知道是硬件还是软件,到头来,雄性壮志磨没了。另外,买板子更省时间,再有就是买的资料相对来说比较全,但是不要指望有技术支持!都是骗人的,卖你之后就不会理你。
2 做
自己做可以更了解底层硬件,可以按照自己的要求加东西,就是时间要多花些,刚开始的困难也会多很多,你要有恒心,做也没问题,关键是要找到正确的电路图。
一句话:你喜欢怎样就怎样。
四.该学汇编还是学C51?
这估计是争论最大的一个问题了,有些人坚持学单片机软件一定要汇编,也有人坚持选择高级语言,这主要是C51推行不久时,那时候单片机内部资源比较宝贵,而且C51本身的编译器效率也不够高,导致当时很多人选择用汇编来写代码。
现在的情况是怎样的呢?编译器效率高了,单片机内部的资源也丰富了,用C来写单片机软件不会再遇到以前程序代码太大的问题。
外面的企业,大部分都是用C,C好写,可读性强,可移植性强。那么汇编就不用学了吗?光会C也还是不够的,你还得了解汇编,实际上不是了解汇编指令,是了解单片机的体系结构。所以我以为学习单片机,还是推荐用C来写代码,但是平时也得多看看汇编代码,最低要求就是: 能熟练运用C写代码,能读懂汇编代码。
这里汇报个情况,在大学里老师基本都是用汇编教学,我老师也是用汇编教,刚出来公司要求用C,当时大家都一顿骂老师,现在明白老师的良苦用心了,用C教学,老师要轻松很多,而老师却选择汇编,为什么在大家眼中的“坏老师”要如此吃力不讨好呢?
这是因为,用汇编教,能让大家更清晰的掌握单片机的体系结构,运行机理,掌握单片机的核心本质,用汇编你才会掌握什么是立即寻址,直接寻址,什么是间接寻址,什么是偏移量?等等一系列的问题。你不知道这些,用C也能把程序玩转,但你不知道运行机理,你不觉得心慌吗?你学ARM时你能看懂启动代码吗?你能写启动代码吗?
一句话:先学用C写代码,后学汇编,研究单片机体系结构.老师在教汇编,那是一种幸福。
五.要什么软件,怎么下载程序
Keil c赶紧下一个不管什么版本的,再下一个Keil的使用说明。就OK了。单片机我们选支持 ISP下载的,(买开发板都会带下载线的)89S系列的带ISP下载功能。
要想在线调试,就要买个仿真器了。
心态摆正了,型号选好了,板子咱有了(无论买,还是做,最起码要有),管他过不过时,管他C好还是汇编好,疑问可以带着,争论可以有,“上路”不能耽搁!