学习单片机的动机不外乎有四种:为兴趣爱好而学、为专业而学、为饭碗而学、在工作中被逼而学。不管是哪种动机,因主修专业的不同以及电子基础的深浅不同,对于不同的人可能采用不同的学习方法,根据笔者的亲身学习经验和教授徒弟学习的感受,以下是笔者的学习方法和步骤。

第一步、基础理论知识学习
基础理论知识包括模拟电路、数字电路和C语言知识。模拟电路和数字电路属于抽象学科,要把它学好还得费点精神。在你学习单片机之前,觉得模拟电路和数字电路基础不好的话,不要急着学习单片机,应该先回顾所学过的模拟电路和数字电路知识,为学习单片机加强基础。

否则,你的单片机学习之路不仅会很艰难和漫长,还可能半途而废。笔者始终认为,扎实的电子技术基础是学好单片机的关键,直接影响单片机学习入门的快慢。

有些同学觉得单片机很难,越学越复杂,最后学不下去了。有的同学看书时似乎明白了,可是动起手来却一塌糊涂,究其原因就是电子技术基础没有打好。

单片机属于数字电路,其概念、术语、硬件结构和原理都源自数字电路。如果数字电路基础扎实,对复杂的单片机硬件结构和原理就能容易理解,也能轻松地迈开学习的第一步,自信心也会树立起来。

相反,基础不好,这个看不懂那个也弄不明白,越学问题越多,越学越没有信心。如果你觉得单片机很难,那就应该先放下单片机教材,去重温数字电路,搞清楚触发器、寄存器、门电路、COMS电路、时序逻辑和时序图、进制转换等理论知识。理解了这些知识之后再去看看单片机的结构和原理,我想你会大彻大悟,信心倍增。

模拟电路是电子技术最基础的学科,她让你知道什么是电阻、电容、电感、二极管、三极管、场效应管、放大器等等以及它们的工作原理和在电路中的作用,这是学习电子技术必须掌握的基础知识。

一般是先学习模拟电路再去学习数字电路。扎实的模拟电路基础不仅让你容易看懂别人设计的电路,而且让你设计的电路更可靠,提高产品质量。

C语言知识并不难,没有任何编程基础的人都可以学。在我看来,初中生、高中生、中专生、大学生都能学会。当然,数学基础好、逻辑思维好的人学起来相对轻松一些。

C语言需要掌握的知识就那么3个条件判断语句、3个循环语句、3个跳转语句和1个开关语句。别小看这10个语句,用他们组合形成的逻辑要多复杂有多复杂。学习时要一条语句一条语句的学,学一条活用一条。全部学过用过这些关键语句后,相信你的C基础建立了。

当基础打好以后,你会感觉到单片机不再难学了,而且越学越起劲。当单片机乖乖的依照你的逻辑思维和算法去执行指令,实现预期控制效果的时候,成就感会让你信心十足、夜以续日、废寝忘食的投入到单片机的世界里。可以这么说,扎实的电子技术基础和C语言基础能增强学习单片机信心,较快掌握单片机技术。

第二步、单片机实践
这是真正学习单片机的过程,既让人兴奋又让人疲惫,既让人无奈又让人不服,既让人孤独又让人充实,既让人气愤又让人欣慰,既有失落感又有成就感。

其中的酸甜苦辣只有学过的人深有体会。思想上要有刻苦学习的决心,硬件上要有一套完整的学习开发工具,软件上要注重理论和实践相结合。

1、有刻苦学习的决心

首先,明确学习目的。先认真回答两个问题:我学单片机来做什么?需要多长时间把它学会?这是你学单片机的动力。没有动力,我想你坚持不了多久。

其次,端正学习心态。单片机学习过程是枯燥乏味、孤独寂寞的过程。要知道,学习知识没有捷径,只有循序渐进,脚踏实地,一步一个脚印,才能学到真功夫。

除此以外,要多动脑勤动手。单片机的学习具有很强的实践性,是一门很注重实际动手操作的技术学科。不动手实践你是学不会单片机的。

最后,虚心交流。在单片机学习过程中每个人都会遇到无数不能解决的问题,需要你向有经验的过来人虚心求教,否则,一味的自己埋头摸索会走许多弯路,浪费很多时间。

2、有一套完整的学习开发工具

学习单片机是需要成本的,必须要有:

一台电脑: 用来编写和编译程序, 并将程序代码下载到单片机上。

一块单片机开发板(如果开发板不能直接下载程序代码的话还得需要一个编程器):用来运行单片机程序,验证实际效果。

一套视频教程: 手把手教你单片机开发环境的使用、单片机编程和调试。对于单片机初学者来说,视频教程必须看。要不然,哪怕把教材看了几遍,还是不知道如何下手; 尤其是院校里的单片机教材,学了之后,面对真正的单片机时可能还是束手无策。

一本单片机教材及一本C语言教材:理论学习资料,备忘备查。不要为了节约成本不用开发板而光用Protur软件仿真调试,这和纸上谈兵没什么区别。

3、要注重理论和实践相结合

单片机C语言编程理论知识并不深奥,光看书不动手也能明白。但在实际编程的时候就没那么简单了。一个程序的形成不仅需要有C语言知识,更多需要融入你个人的编程思路和算法。

编程思路和算法决定一个程序的优劣,是单片机编程的大问题。只有在实际动手编写的时候,才会有深切的感悟。一个程序能否按照你的意愿正常运行,就要看你的思路和算法是否正确、合理。

如果程序不正常则要反复调试(检查、修改思路和算法),直到成功。这个过程耗时、费脑、疲精神,意志不坚强者往往被绊倒在这里半途而废。

学习编写程序应该按照以下过程学习,效果会更好。看到例程题目先试着构思自己的编程思路,然后再看教材或视频教程里的代码,研究人家的编程思路,注意与自己思路的差异;接下来就照搬人家的思路亲自动手编写这个程序,领会其中每一条语句的作用;对有疑问的地方试着按照自己的思路修改程序,比较程序运行效果,领会其中的奥妙。

每一个例程都坚持按照这个过程学习,你很快会找到编程的感觉,取其精华去其糟粕,久而久之会形成你独特的编程思想。当然,刚开始,看别人的程序源代码就像看天书一样,只要硬着头皮看,看到不懂的关键字和语句就翻书查阅、对照。只要能坚持下来,学习收获会事半功倍。

在实践过程中不仅要学会别人的例程,还要在别人的程序上改进和拓展,让程序产生更强大的功能。同时,还要懂得通过查阅芯片数据手册(DATASHEET)里有关芯片命令和数据的读写时序来核对别人例程的可靠性,如果你觉得例程不可靠就把它修改过来,成为是你自己的程序。

不仅如此,自己应该经常找些项目来做,以巩固所学的知识和积累更多的经验。

第三步、单片机硬件设计
当编写自己的程序信手拈来、阅读别人的程序能够发现问题的时候,说明你的单片机编程水平相当不错了。接下来就应该研究硬件了,硬件设计包括电路原理设计和PCB板设计。学习做硬件要比学习做软件麻烦,成本更高,周期更长。

但是,学习单片机的最终目的是做产品开发----软件和硬件相结合形成完整的控制系统。所以,做硬件也是学习单片机技术的一个必学内容。

电路原理设计涉及到各种芯片的应用,而这些芯片外围电路的设计、典型应用电路和与单片机的连接等在芯片数据手册(DATASHEET)都能找到答案,前提是要看得懂全英文的数据手册。

否则,照搬别人的设计永远落在别人的后面,你做的产品就没有创意。电子技术领域的第一手资料(DATASHEET)都是英文,从第一手资料里你所获得的知识可能是在教科书、网络文档和课外读物等所没有的知识。

虽然有些资料也都是在DATASHEET的基础上撰写的,但内容不全面,甚至存在翻译上的遗漏和错误。当然,阅读DATASHEET需要具备一定的英文阅读能力,这也是阻碍单片机学习者晋级的绊脚石。良好的英文阅读能力能让你在单片机技术知识的海洋里自由遨游。

做PCB板就比较简单了,只要懂得使用Protel软件或AltimDesigner软件就没问题了。但要想做的板子布局美观、布线合理,还得费一番功夫了。

娴熟的单片机C语言编程、会使用Protel软件或AltimDesigner软件设计PCB板和具备一定的英文阅读能力,你就是一个遇强则强的单片机高手了。

学好单片机编程设计的方法和3个步骤相关推荐

  1. 如何学好单片机编程?学好单片机的基础是什么?

    大家好,我是无际. 最近几个推文都比较烧脑,今天水一篇轻松的,免得大家头发越来越稀疏. 在我即将毕业的那年,我一直很羡慕学校学计算机专业的同学. 他们的未来充满了前景,工作几年拿个几万块,而且上限也高 ...

  2. 和初学者谈谈如何学好单片机编程技术

    当今时代,是一个新技术层出不穷的时代.在电子领域,尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统正以前所未见的速度被单片机 智能控制系统所取代.大部分的高等工科学校都已开设了单片 ...

  3. 单片机常用置0方法和置1方法

    简单的&和|操作 首先看 &操作,1&1 = 1,1&0=0: 得出结论任意数和1进行&操作还是它本身: 再看 0&1 = 0,0&0=0:得出 ...

  4. stm32编程入门_电子设计与单片机编程书籍资料推荐

    有些同学让我推荐些入门书籍,尝试写写: 注:请多看下目录与介绍,网络上也有一些读书笔记和推荐,自行判断是否符合现有层次和水平,再决定是否购买. 针对零基础.非专业的电子爱好者,我的推荐学习步骤是: 自 ...

  5. 按键去抖动c语言编程,单片机实现电脑键盘去抖的编程设计

    当轻触开关合闭或是断掉时都有每段电平不平稳的時期,轻触开关在合闭时不容易立刻就平稳的接入,在断掉时也不容易突然之间完全断掉,只是在合闭和断掉的一瞬间随着了一个一个的电平颤动.这类颤动通常都会10ms上 ...

  6. 单片机编程简易计算机的设计,简易计算器设计

    <简易计算器设计>由会员分享,可在线阅读,更多相关<简易计算器设计(25页珍藏版)>请在人人文库网上搜索. 1.广东海洋大学寸金学院单片机课程设计论文题目: 简易计算器设计系 ...

  7. 电子音调发生器c语言编程,单片机课程设计(论文)_电子音调发生器.doc

    单片机课程设计(论文)_电子音调发生器 电子音调发生器 姓 名 XXX 所在学院 电子信息工程学院 专业班级 通信XXXX 学 号 XXXXX 指导教师 XXXXXX 日 期 2011 年 12月 1 ...

  8. Java并发编程—schedule方法和scheduleAtFixedRate方法的区别

    原文作者:一叶丿清风 原文地址:schedule方法和scheduleAtFixedRate方法的区别 schedule方法和scheduleAtFixedRate方法都可以实现任务的延时和不延时执行 ...

  9. 如何才能学好单片机?​

    点击上方"大鱼机器人",选择"置顶/星标公众号" 福利干货,第一时间送达! 很多想学单片机的人问我的第一句话就是:怎样才能学好单片机? 对于这个问题我今天就我自 ...

  10. 如何学好单片机?​嵌入式第一门课

    很多想学单片机的人问我的第一句话就是:怎样才能学好单片机? 对于这个问题我今天就我自己是如何开始学单片机,如何开始上手,如何开始熟练这个过程给大家讲讲. 先说说单片机,一般我们现在用的比较多的的MCS ...

最新文章

  1. 几种Normalization算法.md
  2. HDU 1847 Good Luck in CET-4 Everybody!(组合博弈)
  3. Scala---For语句段
  4. alert文件位置 oracle,Oracle11gAlertlog文件位置的问题
  5. windowbuilder怎么加背景图_小红书引流:爆款笔记封面图怎么做?(内附教程)...
  6. 校友会2019中国大学计算机,校友会2019中国计算机类一流专业排名,清华大学排名第一...
  7. 2021安徽省计算机应用基础,安徽省高等教育自学考试2021年4月课程考试时间安排表.pdf...
  8. python入门-廖雪峰 Python教程
  9. php红包平均分配,红包平均分配算法
  10. 累加寄存器(AC)入门
  11. 阶段3 1.Mybatis_12.Mybatis注解开发_2 mybatis注解开发测试和使用注意事项
  12. android4.3模拟器,天心安卓模拟器
  13. jsbarcode生成条码
  14. 腾讯测试发型的那个软件,全栈发型设计软件
  15. Mybatis 传入多个参数查询数据 (3种方法)
  16. DIY NAS硬件选择
  17. NYOJ - 小柯的编译器
  18. html 设置td最小宽度,如何设置td标签的宽度和高度
  19. 第四章 DirectX 渲染流水线(上)
  20. Sqlserver修改表结构提示不允许保存更改。

热门文章

  1. x-studio教程之 - 导入csb并发布到CocosStudio2.x兼容工程
  2. 使用arduino作为programer对新的mcu烧录bootloader
  3. 龙威PS305D维修案例收集
  4. 269个JavaScript工具函数,助你提升工作效率(2)
  5. SPSS的中分层聚类法的实际应用详解
  6. 使用ArcGIS软件进行投影变换和坐标校正
  7. 杰理AC692X---691X,690X,692X芯片差异(2)
  8. 可以退税吗_个人所得税APP详细操作步骤来了!你成功“退税”了吗?
  9. 使用Qt学习C语言编程1
  10. Hash表的存储结构