目录
摘要
大一已经结束啦!趁暑假简单总结一下,大一学年学了很多,有51、32、Linux、PCB等。51单片机是我最开始学的,现在想来总结一下,毕竟学了不少了,应该有点话语权了。嘻嘻。
下面我将从51单片机的工作原理、如何学习、我的经验等方面进行介绍。
正文
一、51单片机简介
<1>易误解点
首先我必须强调一个注意点,这是新手很容易误解的:51单片机仅仅就是那一个芯片,但是因为51单片机的性能有限,往往生产成一块51开发板,板上集结了很多外设,差不多就是51单片机的全部功能了,毕竟是上世纪的发明。小白不要再搞错了!
51单片机
51单片机开发板
<2> 工作原理
我前面专门写了一篇文章,关于单片机的工作原理的,大家可以看看。
<3> 我的理解
其实51单片机就是写寄存器,怎么理解寄存器呢?其实可以理解成通过软件编程把信息写入闪存。
实际上单片机的最终工作就是配置寄存器,所有的都是,只不过像32的,大部分就是调库函数了,就是开发者为了便于使用,在开发时又开发了库函数,库函数的功能就是配置寄存器,所以库函数仅仅是为了便于使用者进行软件编程。但因为51单片机过于简单,目前没有,流行使用库函数来配置寄存器,都是直接查阅手册,手动配置寄存器。像后面的32就比较复杂,使用库函数可以大大方便程序的编写。
我们要知道配置寄存器其实就是0和1的选择,因为计算机只会识别这两个数字,51单片机是8位单片机,8位的0和1形式的数,比较简单;但是对于STM32 32位的单片机来说,就比较复杂了。
好了,这些就是我觉得值得说一下的,其他的都是大同小异,大家可以找一个课坚持听。
二、学习思路
学习51单片机最重要的就是学会看原理图和能看懂手册,这些大家可以听网课多学多用。
<1> 学好C语言
C语言很重要,底层只有它能写,C++和Python的祖先其实都是C,51的学习其实都是写底层。51的底层比如:延迟、数码管、按键、点阵屏、LCD1602显示屏、外部中断、定时器中断、计时器、串口、EEPROM、AD/DA、I2C、时钟等。这些都是C编写。C语言这里就不介绍了,有很多的课程。
<2> 模块重点学习
学习51就是对学习32做个铺垫,网上有些人推荐直接学32的,我觉得不好,我不太清除直接学32会有什么坏处,我可以说一下先51再32有什么好处,51学完我做了几个项目,学32时我觉得很简单,都说32很难,但是我反而觉得比我学51还简单,所以先51可以让32很简单,我32花了不到一个月就干完了,所谓磨刀不误砍柴工。
对于51的学习不要深入太多,51出来是没有多大用的,必须是要为32铺垫,学习32后期才会有更大的进步,所以我的建议是:51所有的模块都学一遍,跟着听一遍敲一遍,然后重点放在模块化编程、中断、I2C,还有串口等上面,根据自己的项目重点学习。
三、学以致用
工科最重要的就是实践,实践是追求真理的唯一标准。
我的51主要有两个项目:指纹密码锁和篮球赛计时计分器
由于指纹密码锁是我的第一个大项目,难度也不小,所以大部分代码是网上开源的,我会发出资源,供大家参考。后期我会再发一篇基于STC51的篮球赛计时计分器文章,敬请期待吧!