51单片机是一款已经出现很久的单片机,它的出现可以说是划时代的。同时期出现的其它单片机都已经逐渐退出历史的舞台,而它却依旧出现在某些专业的教材上。从这点来看,它依旧有其学习的意义。下面说说初学单片机从51入门的好处。
51单片机的学习资源非常多无论是16位的单片机还是32位的单片机,其它无论哪一款单片机的资料都没有51单片机多。毕竟很多大学的教材中使用的单片机就是51单片机。一方面这样的资料比较可靠出现错误的可能性要小的多。作为教材即便评价不好,但是硬货还是有一些的。这里就相当于由教育部给我们做了一个筛选。不敢保证学了51能干出什么石破天惊的事,但绝对不会白费时间和精力。
另一方面经过以往的各种比赛,基于这款单片机做出的应用成果也是非常多的。比如每年的大学生电子设计大赛,把获奖的设计资料研究学习,必定事半功倍。
51单片机编程的两种方式在51单片机的教程里,如果翻开某些资料就会发现同样一个功能有C语言的代码和汇编的代码。说到这里可能有工程师就会说, 在前几年使用汇编编程的人还是挺多的,现在使用汇编的人已经很少了。这里暂且不谈汇编的高效优势,只问一个问题:单片机上电就能不能立即运行C语言代码。第一种方式:汇编
上面问题的答案毫无疑问是否定的,即便是现在高端的STM32单片机,打开工程中可以看到一个Start.s文件。这个汇编文件做了两件重要的工作:对硬件进行初始化,设置堆栈。但是很遗憾很少有资料会讲STM32单片机的汇编编程。
学习单片机,都希望能在这个领域不断前进而不是做一个流水灯工程师。如果连单片机的工作模式都不清楚,那怎么应用,何谈开发。
所以,学习单片机的汇编开发,51是最适合实践的单片机,没有之一。
结合汇编弄清楚一款51单片机的工作模式,那么所有使用8051内核的单片机都将不在话下。有了51的基础,再去看STM32单片机的汇编代码就会有迹可循、轻车熟路。
第二种方式:C语言
C语言的可移植性非常好,即便是不一祥的底层硬件,底层驱动修改之后上层代码就能复用。比如正点原子的STM32F103上就移植了nes的游戏模拟器。对于初学者而言,可以在不懂硬件的情况下完成程序的设计,一个典型的例子就是arduino。
由于C语言的这个特性,完全可以让不懂模电和数电的小白把51单片机工作起来。这非常有利于学习的继续。这里的学习不仅仅是基于单片机的C语言,而是扩展到整个项目中的外围模电、数电模块。
单片机学习的扩展通过前面的论述可以得出,我们完全可以通过汇编代码结合datasheet把51内核弄懂、嚼碎;通过51单片机学会C语言下的单片机编程,直至扩展到整个项目中的数电、模电外围电路。
C语言、内核、汇编准备好之后,那就有了向嵌入式出发的门票。