在网上看到这么一个话题,自己特别有感触,不自觉的想写一下自己的看法。
单片机编程,我们的教材是《单片机原理及应用》。 当时我们的很多同学都觉得单片是最难的。
单片机对于大学生而言, 是一个新的学科,不像语文,英语,代数,数电等,学了很多年。
而且单片机里面的很多理论知识又非常抽象,不知道如何理解,很多东西都是要靠死记硬背。
大学单片机教程里面主要针对的就是单片机的设计原理,单片机的寄存器介绍,GPIO的结构,定时器的工作原理,以及汇编指令集体等。
这些东西往往是最枯燥的,而且是很难记忆的。
很多同学在网络上搜索了一下,网上说单片机编程的学习很简单,这让大家大跌眼镜。
为什么?接下来我从四点给大家简单的解析一下。
1.大学学习和实际工作的目标不一样
大学学习的目标是掌握单片机的原理和理论,同学们的目标是期末考试能考60分,这门课就算是过关了。
但单片机程序开发的实际工作不一样,实际工作中主要针对的是单片机的应用和开发,是要求你在规定的时间内完成产品的开发。
老板要你3天完成产品开发,你绝对不能超过3天,因为老板要赚钱,要算利润。
2.大学教材缺少实战
大学的单片机学习,大家基本上都是围绕着《单片机编程与应用》这本书学习,没有配套的学习套件,开发板,项目实战。
脱离了应用,理论就无法落地,也无法得到验证,这加剧了单片机学习的难度。
当然,以上这些情况随着大学办学条件越来越好,单片机学习的开发环境都有所好转。
很多大学都设立了“单片机电子大赛实验室”,主要是针对“全国电子专业人才设计与技能大赛”的,在这里大家可以参与单片机开发的实战
3.大学学习的理论知识和实际的需求严重脱轨
我参加工作10多年了,一直从事单片机程序的开发工作,如果现在回到大学,拿他们的期末考试卷考试,我基本上可以确定自己是不及格。
一方面是因为自己参加工作太多年,都是基于单片机产品开发应用的,理论知识基本上全忘了,另一方面,大学教材的知识,在单片机开发实际工作中基本上用不到。
就像单片机的结构是冯诺依曼?还是哈佛结构?我们工作中需要了解吗?不需要。
大学教材里单片机的编程语言,主要学习的是汇编,但实际工作中,用得是非常非常少的。
也就是说单片机大学的教材和实际的工作需求没有完美的接轨。
4.单片机学习需要理论和实战相结合
理论知识过于枯燥,不能理解原理,死记硬背是很痛苦的,而且又是最容易忘记的。
如果单片机的学习,理论可以和实战有效结合的话,单片机学习就会变得非常容易上手。
而且理论和实战相互结合,也可以帮助你更加有效的理解单片机的理论知识。
我在这里给大家举个例子,说明一下单片机编程的实战有多简单。
例如:如果要完成点亮LED1,代码见下:
#include “reg52.h” //单片机头文件sbit LED1 = P2^7; //LED1对应的IO定义 P2.7脚void main(void){ LED1 = 0; // P2.7 输出低电平,LED1 亮 while(1); // 无线循环等待}
当然我们实际的代码不会这么粗糙。
说到这里,大家感觉还是有点迷茫,如果想找一个单片机编程相关的工作,单片机开发需要学习那些知识呢?
第一: 单片机编程C语言基础
大学学习的汇编语言,在实际工作中基本上用不到,目前绝大数的单片机编程用的都是C语言。
市面上绝大多数C语言教程都是针对纯软件方向,开发环境和开发模式会有差别。
针对单片机的C语言编程入门视频教程可以找无际单片机编程,学完可以无缝过度到单片机的开发。
第二:单片机的外设驱动
C语言学会之后,大家需要掌握单片机的外设驱动,例如GPIO的输入输出,外部中断,定时器,ADC等。
以上两个是单片机产品开发的基础,有了这些基础,大家就可以做一下单片机开发的简单项目了,就可以开始实战了。
相关文章