单片机的学习,最重要的一点就是多实践。站在岸上学不会游泳。没有实践,恐怕永远也学不好单片机。我将和大家一起,选择一款适合自己的单片机实验板。

  我们主要有三个可选方案:

  1、自己动手搭建学习板;

  2、购买成品开发板;

  3、使用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语言等基础知识,具体可参考教程第〇篇《序》中的相关说明
http://www.hainter.com/mcu-primer-0

4、语言通俗易懂

本系列教程力求语言通俗易懂,而不会用一堆新手不懂的词语去解释另一个不懂的词语。但是受限于个人语言表达能力,可能有些地方表述的比较繁琐,或者不清楚,希望大家能够帮忙指出。

其他问题

如果觉得我写的对你有帮助,欢迎多多反馈,包括写的不正确、不合理、不太明白都可以指出来,这样方便我对其进行完善。

更多可参见:《如何以学习单片机为契机,逐步成为优秀的工程师》
http://www.hainter.com/mcu-engineer

本系列教程首发于我的个人主页,欢迎访问(由于是国外服务器,速度稍微有点慢):
http://www.hainter.com/category/hacker/mcu-primer

同时会将其转发到CSDN、电子发烧友等站点,欢迎关注。
CSDN专栏网址 http://blog.csdn.net/column/details/mcu-introduction.html
电子发烧友论坛 http://bbs.elecfans.com/zhuti_mcu_1.html

本文首发自我的个人主页,转载请注明来源:http://www.hainter.com/mcu-primer-7

单片机小白学步系列(七) 准备实验板——萝卜青菜,各有所爱相关推荐

  1. 单片机小白学步系列(八) 用面包板搭建实验电路

    前面介绍了几种准备实验板的方案.这里先介绍方案一,我将同大家一起搭建一块简易的单片机实验板.一起感受动手实践的乐趣. 我们有两种自己搭建实验板的方案,一是用面包板,二是用万用焊板.本篇我们介绍面包板搭 ...

  2. 单片机小白学步系列(二十三) IO口原理知识补充:双向IO口、互补推挽、高阻态

    由于之前考虑不周,本篇在IO口原理知识的基础上,进一步补充一些知识. ================================================= 双向IO口的输出:互补推挽 在 ...

  3. 单片机小白学步系列(二十一) IO口:基本的LED和按键操作

    本篇我们先介绍最基础的几个IO口操作.学完本篇,大家要能自己独立完成下面几个实验. 1.点亮LED 2.一个按键控制LED,按下灯亮,释放灯灭 3.两个按键控制一个LED,一个键开灯,一个键关灯 实验 ...

  4. 单片机小白学步系列(十七) 单片机/计算机系统概述:核心模块

    前面已经介绍了模块化设计的特点和巨大优势.在我们的实验板中,单片机是其中最核心的一个模块:而对于单片机来说,又是由更多的子模块组合而成.本文主要对单片机/计算机系统中最核心的几个模块进行简要介绍. 为 ...

  5. 单片机小白学步系列(九) 用万用焊板搭建实验电路

    这一篇我们继续上篇的话题,讲解自己搭建电路的另一种方法:用万用焊板搭建电路.在此之前,先普及几点基础知识. 1.电路板 首先我们了解下电路板.前面介绍了面包板可以搭建电路,但是在实际制作出来的电子设备 ...

  6. 单片机小白学步系列(十三) 点亮第一个LED——好的開始,成功的一半

    前面介绍了非常多概念知识.做了非常多准备工作,从这一节開始,我们正式開始单片机的学习.我们将使用单片机完毕一项非常easy的工作:点亮一个发光二极管(即LED:Light-Emitting Diode ...

  7. 单片机小白学步系列(二十) IO口原理

    IO口操作是单片机实践中最基本最重要的一个知识,本篇花了比较长的篇幅介绍IO口的原理.也是查阅了不少资料,确保内容正确无误,花了很长时间写的.IO口原理原本需要涉及很多深入的知识,而这里尽最大可能做了 ...

  8. 单片机小白学步系列(十六) 单片机/计算机系统概述:模块化思想

    截至目前,单片机入门篇的介绍就告一段落了.从本文开始将进入思想篇的学习. 思想篇对后面的具体知识学习进行整体的框架介绍,解释一些基础名词,以及对学习思想方法进行总结.思想篇的内容,对于后面的学习有很大 ...

  9. 单片机小白学步系列(十五) 单片机程序下载失败总结

    前面介绍了点亮第一个LED的全过程,很多人可能很幸运的点亮了LED,然而也很可能不少人非常不幸没有把程序下载进去.初学者常会遇到程序无法下载的情况,很多人在尝试多次未果后比较受打击,因此放弃了学习,实 ...

最新文章

  1. AI部署:聊一聊深度学习中的模型权重
  2. ajax怎样获得表头信息,layui.table动态获取表头和列表数据示例
  3. Spring Boot 2.x基础教程:使用Elastic Job实现定时任务
  4. 敦泰FT6X06单层自容调屏
  5. Winforn中设置ZedGraoh的GraphPane恢复到初始比例大小
  6. springboot @RequestBody 接收字符串
  7. 【Solidity】1.一个Solidity源文件的布局 - 深入理解Solidity
  8. restfull知识点
  9. 【堆内存】动态图+代码五分钟轻松理解学会
  10. 类与对象- 课后作业1
  11. 计算机里的音乐怎么设置,声音和音频设备在电脑上如何设置 电脑无声的情况如何解决【详解】...
  12. MATLAB----小波去噪
  13. springboot hikari数据库连接池死链 出现异常
  14. Tinker 合并及加载补丁过程源码分析 (三)
  15. 百度AI接口测试案列一:车牌识别
  16. tidefinger(指纹识别)
  17. java new jsonparser_java – JSONParser无法解析为某种类型
  18. 2022年软件评测师真题
  19. ThreadLocal 面试夺命11连问
  20. python等比例压缩图片_python图片等比例压缩

热门文章

  1. ActiveReports 报表应用教程 (10)---交互式报表之向下钻取(详细数据按需显示解决方案)...
  2. 从Notes迁移到Exchange Server 2010 之三
  3. 下拉列表与多选框以及GridView中的多选框的问题
  4. 成功实施ERP的八个建议
  5. MySQL从服务器写入报错吗_MySQL主从复制读写分离及奇怪的问题
  6. java经常会出现异常的是,“Java异常Exception”总结
  7. 一分钟学会看k线图_K线图怎么看?一分钟学会看K线图
  8. linux赋权限命令chmod给其他用户,Linux 基础基础——权限管理命令chmod
  9. php mysql having_having的用法
  10. 高中生计算机专业的研究论文,高中计算机个性化教学模式研究的论文