单片机的学习,最重要的一点就是多实践。站在岸上学不会游泳。没有实践,恐怕永远也学不好单片机。我将和大家一起,选择一款适合自己的单片机实验板。
方案选择我们主要有三个可选方案:
(1) 自己动手搭建学习板;
方案一非常适合动手能力较强,想锻炼动手能力,时间比较充裕的读者选用。自己动手搭建电路,能让我们对单片机更加了解,充分锻炼了动手能力,对以后需要自己制作东西很有帮助。或许你只是用现成的开发板学完单片机,等到想给好友或者心仪的异性做点东西表达下自己的心意时,才发现不会焊板子,那实在非常尴尬。这种方案的缺点在于:各种零散的元件不是很方便购买,不过如果能在淘宝上找到合适的卖家就好了;只适合一开始搭建比较简单的电路,如果太复杂或者有一些不便于焊接的器件,就很麻烦了;比较耗费时间,容易出现一些疑难问题,并且很难解决,不过解决问题的过程中能加深对单片机的了解。
如果动手能力不强,没有很多时间精力自己搭电路,以及一些不方便自己搭建电路的情况(比如电路很复杂),可选用方案二。我会对这个方案做一些介绍,尤其是方便大家能将所购买的各种不同的开发板和文中内容联系起来,比如如何识读电路图。方案二既能让我们实际感受单片机的工作情况,又免去了自己搭电路的麻烦,非常适合初学者学习单片机的编程。
对于只想简单了解单片机、不打算实际动手和深入研究的读者,以及经济条件不好,不想花很多钱,或者不便购买电子元器件的读者,则可以选用方案三,对于较为复杂系统的开发过程,也要用到方案三。Proteus软件的使用,可以从网上找到一些学习资料,我只做一些简单介绍。
我们可以根据不同的需要,灵活选择不同的方案,还可以同时用三种方案去实践。
仿真软件Proteus
不论选择哪种方案,建议大家都了解一下Proteus软件的使用。Proteus是一款EDA软件(EDA = Electronic Design Automation,电子设计自动化),常用于单片机等数字电路仿真。
何为仿真呢?就是利用计算机软件来模拟一个实际系统,并利用计算机的运算存储能力辅助开发者进行设计。广义的理解,这个系统可以是电路,也可以是机械结构,甚至还可以是音乐、视频等。
仿真软件有什么好处,为什么要掌握Proteus呢?我举一个不是很恰当的例子。现在很多人写一些文字材料,都是用电脑写的,在写的时候,经过了很多次的修改调整,才能比较满意,最后打印。在修改的过程中,我们可以利用电脑很自由的进行排版,剪切复制粘贴等操作。而如果用老式的打字机,每打一个字就直接印上去,或者直接手写,就不方便进行修改,特别麻烦,还浪费很多纸张。
同样,在实际项目中,我们开发一个产品往往需要进行很多次实验,经过不断的测试和修改,最后才能做出来符合要求的产品。而如果我们每次都修改实际的电路等部件时,同样会导致效率低,修改麻烦,浪费时间资源等问题。仿真软件还有一些好处,比如在Proteus中有很多虚拟仪器,如此示波器、逻辑分析仪、计数器、信号发生器等,其中有些仪器非常昂贵,我们往往不容易接触到,但是在仿真软件中,我们可以很容易的使用它们。另外Proteus中调试单片机程序也是非常方便的,我们可以轻松的查看单片机内部存储器存储的数据,大大方便了我们调试程序。而在实际电路中,想直接查看单片机内部的具体情况就很麻烦了。
但是仿真自然也有其缺点。还是上面的例子,在电脑上编辑文本的时候,尽管编辑器已经非常好用了,但是跟纸质相比,还是有它的局限性。不容易直接看到这些文字被打印到纸上的效果,也不能像在纸上一样用笔自由的圈点批注。同样在电路仿真中,对于单片机这样的数字电路来说,通常仿真结果会和实际情况相符;而对于一些复杂电路尤其是模拟电路,计算机软件仿真就很难做到和真实电路一样了。所以仿真只是辅助进行设计,电路通常还是需要实际搭建出来进行验证。所以如果有条件最好还是自己搭建电路,将软件仿真和实际电路结合起来进行学习。
总结
总体来说,条件允许的情况下,我的建议是这样的。一开始的简单电路,我们有必要自己动手搭建来加强对单片机的认识;而后来我们学到一些单片机外设,电路连线比较多,自己搭建费时较多,而且容易出现接触不良等情况,可以选用一块好用的成品单片机开发板来学习;当我们的程序出现问题、需要调试时,或者再到后来我们可能想自己设计制作一些作品,设计过程中电路可能需要经过多次修改,这时选用仿真软件分析、并结合实际电路实验将是一个不错的选择。
后面会对每种方案进行一些介绍,包括使用方法和技巧。正所谓萝卜青菜,各有所爱,大家可以根据自己的需要去选择。
=======================================================
《单片机小白学步》系列教程(原名《单片机入门指南》)介绍
本系列教程从最基本的入门知识开始,逐步深入介绍单片机系统设计,内容包括:
1、入门篇:单片机等基本概念、各种电子设计基本知识
2、思想篇:单片机/计算机系统设计的工程思想
3、学习篇:单片机学习过程、方法和技巧,以51单片机为例介绍,并推广到其他单片机
4、应用篇:遵循规范的工程方法,设计单片机系统实例(计划设计的系统有:计算器、电子表、密码锁、简易 手机,具体看有没有时间再确定)
5、原理篇:从模拟电路、数字电路开始,逐步深入介绍单片机/计算机系统原理,并自行设计简易的CPU(由于个人水平有限,这部分没有把握写好,具体内容视情况而定)
教程特点
1、技术知识点全面,从入门到精通
包含了各种基本知识,尤其是对单片机基本概念的介绍、为什么要用单片机等,在很多同类书籍教程中都被忽略了。同时也包含了一些深入的知识,包括原理篇考虑对单片机的基本原理进行介绍,有助于深入理解单片机。
本系列教程以51单片机为例进行介绍。通过51介绍完单片机的基本知识,我会再把430进行简要介绍,尤其是对比两者之间的优缺点,让大家很快感受到430的巨大优势,而学习51正好为快速了解430打下了坚实的基础。
2、除了单片机知识,还有思想、方法、技巧的介绍
本系列教程中,介绍单片机各种模块编程知识的主要是学习篇,而学习篇只是整个教程的一部分。在学习篇中我会贯穿各种方法技巧,如何理解一些模块功能,怎么看时序图,严格遵守工程思想进行编程,程序发生了错误怎么调试等等。而在思想篇中会总体介绍很多重要的思想,为后面的学习做好准备工作。
3、知识先后顺序的设计
单片机学习过程中,涉及大量的知识,而且很多知识之间相互依赖,关联很强。
本系列教程对知识的先后顺序进行比较明确的规划,尽最大可能符合人的认知过程。但是实际规划时发现,无论怎么调整知识的顺序,总有一些知识之间相互依赖,关系复杂。例如开始讲IO口的时候肯定会提到寄存器,而寄存器这个词的理解,需要深厚的背景知识。但是这些背景知识在没有进行实践的时候也很难理解。
初学者常常就会在这样的地方感觉疑惑不解,不知所措。而每次遇到类似这样的知识,我会向初学者指出,应该如何对待。这个知识是应该自己去学习补充,还是等到学完原理篇再做理解,而现在又应该怎么去看待这个名词。
另外,在整个教程的学习前,需要掌握一定的C语言等基础知识,具体可参考教程第〇篇《序》中的相关说明 hainter.com/mcu-primer-0
4、语言通俗易懂
本系列教程力求语言通俗易懂,而不会用一堆新手不懂的词语去解释另一个不懂的词语。但是受限于个人语言表达能力,可能有些地方表述的比较繁琐,或者不清楚,希望大家能够帮忙指出。
其他问题
如果觉得我写的对你有帮助,欢迎多多反馈,包括写的不正确、不合理、不太明白都可以指出来,这样方便我对其进行完善。
更多可参见:《如何以学习单片机为契机,逐步成为优秀的工程师》 hainter.com/mcu-engineer
本系列教程首发于我的个人主页,欢迎访问(由于是国外服务器,速度稍微有点慢): hainter.com/category/hacker/mcu-primer
同时会将其转发到CSDN、电子发烧友等站点,欢迎关注(将#号改成点即可访问)
CSDN专栏网址 blog#csdn.net/column/details/mcu-introduction.html
|