学习单片机之前要学什么?提起这个就想起我当年开始学习单片机的血泪史了。
08年我加入学校的电子实验室,为08年的全国电子大赛做准备。
08年的电子大赛分类3类,硬件设计类、单片机软件类、产品的调试动手类。
现在的大赛应该有所改动。
我选择的是软件类,选择这个的原因是我觉得这个更加的神秘,就是这个神秘感让我对软件更加的有兴趣。
刚开始真的是一窍不通,我买了一本C语言书,独自学习了2个月,做了3本笔记,然后又学习了1个月的数字电路,到这个时候,我都快奔溃了,3个月过去了,还是啥都不懂!
这个时候我已经做好放弃的准备了,最后想想:自己选的路,跪着也要走完。
正好那段时间每天也闲的蛋疼,就抱着边玩边学的态度,说出来你可能不信,不知不觉就把单片机的IO口、定时器、中断、串口通讯这些学会了。
那一刻,我就在想原来单片机开发也没有这么神秘!哈哈!
回顾一下自己的这个学习过程,到现在还是非常的难忘,相信很多的伙伴们可能还和我当年一样,坚持了一段时间,没有进展,一直处于一个入门前期的困惑当中。
其实单片机就是一个工具,在学习这个工具之前还是需要有别的知识作为铺垫。
比如说基本的数字电路基础和简单的C语言编程基础。
一、电路基础和C语言基础要学习的内容
1.数字电路基础需要学习什么?
掌握电阻、电容,三极管的基本用法,掌握单片机的高低电平的概念基本上就差不多了。
最好的学习渠道就是开发板的原理图,把开发板原理图搞懂基本上就能做一些项目了。
2. C语言编程基础
C语言基础的学习,必须要掌握一些基本的语法,和变量的定义。
具体的学习路径,可以到小破站找无际单片机编程比较系统全面,也是针对单片机来讲的。
学完单片机、电路基础、C语言的知识以后,就可以开始着手做一些项目了,前期先通过小项目开始,比如说电子时钟啥的。
二、C语言和单片机有什么关系?
通过前面的讲解,相信大家已经有一点概念了。
下面再给大家深入讲解下C语言和单片机的关系。
单片机支持C语言和汇编来编写程序。
1. 通过C语言来编写
C语言编写的程序,最终需要通过keil工具编译成单片机可以识别的.hex文件的过程:
C程序源码->C编译器->汇编代码->汇编编译器->机器码(.HEX 或.BIN)
2.通过汇编来编写
单片机的程序早期都是汇编代码,汇编代码最接近硬件底层的低级语言,运行的效率比较高。
但汇编语言很很多比较明显的缺点:不方便阅读,移植性差,开发难度大等,随着技术的不断进步,大家就开始逐步的的使用C语言来代替汇编语言,(比较低端的芯片还是需要汇编来开发)。
所以,一般产品开发都是使用C语言,汇编一般是用来做很小的产品,或者单片机的启动文件。