51单片机学习单片机之路总结
21ic 2025-07-02

学习单片机有一学期了,现在也由51转到STM32了。一直想对51的学习做一个总结。也希望对别人有一些启发。也给后学者提供一些建议。当然本文是我对自己学习过程的总结,若有不对的地方,还请高手指出。

我想,再看本文之前,最好对单片机有了最基础的了解,最好能用单片机驱动起一个LED灯,否则,可能会不知所云。

首先我想问一个问题,你认为单片机有哪些内容呢?也许你现在手里有一块开发板,你已经开始从流水灯开始,一个一个外设在跑了。也许你已经看过一些单片机入门的书了。如果是这样,我估计你会回答,单片机包括了流水灯,键盘,数码管,定时器,中断,串口,AD,DA,液晶,DS18B20……其实这样的回答其实符合了大多数初学者的心态。因为天祥老师的视频也是这么教的。但是当你会操作流水灯,键盘,数码管,液晶,你有没有发现他们有一个共同点,就是都是通过I/O口输出或检测高低电平来驱动这些外设,那我们可不可以把这些模块归为一类,就叫I/O口操作呢,那么这样,要学的内容就又被浓缩了一下,可分为四个模块了,I/O口,定时器,中断,串口。对于AD,有的单片机,例如**公司的加强型单片机就自带了AD,若使用AD芯片,则也属于I/O部分,AD部分我放到后面再提。

这样,学起来条理就清楚了,其实当你驱动了流水灯和按键模块。可以说,你就完成第一部分,I/O口的学习了。I/O的输入和输出你都学会了。至于数码管,液晶,那是为了加强你I/O口编程的能力,说来说去,就是在什么时间输出高电平,什么时间输出低电平以符合他们的通信协议而已。如果你能理解他们都是I/O操作,学起来这些是很简单的。


接下来,继续定时器,中断的学习,无所质疑,定时器与中断是分不开的,没有中断,定时器也很难实现功能。在这里,建议先学习外部中断,如果你认真的学完外部中断,我想你应该能深刻了解中断的含义(这里插一句,一定要理解中断,为后来更高级处理器的中断系统打基础),在学定时器与定时器中断。如果你能深入学习定时器与定时器中断,我想这是,你应该能用数码管做一个电子钟了,具体实现就看你的编程水平了,可以试一试哦。

然后,花一把功夫学完串口通信,我可以对你说,你把单片机的内容学完了。现在,你可以试着把这些分立的模块组合做成一个实际的东西巩固一下。这时,但是,你要知道,还有更多的事等着你。现在只是基础,你前面学的是单片机自身的内容,这时,你需要去了解单片机的外围设备了,例如AD,DA,I2C,SPI等等内容了。但是,有些单片机自带了AD的功能,但我仍然不把他列入单片机自身的内容,包括PWM,也不属于单片机的内容,尽管有些单片机带这个功能。这些外设还是需要花大气力研究的,学到这里,你应该很容易读懂芯片的时序图了,也就是协议。这时对于DS18B20,红外,315M无线通信等等,应该都不在话下了。

你原先的程序都是在开发板上跑的,你现在可以学习如何自制电路板了,也就是学会画板,推荐使用Altium Designer软件。现在可以自己画一块系统板,做出来,看看能不能工作。如果不能,找找原因,可以跟你说,这个是必须要会的。至此,单片机学的差不多了。

但是,更高的目标还在等着你,因为,一开始就是用C语言在编程,对底层的认识比较浅薄的,你可以看一看单片机的汇编语言,不要求你会写汇编,但至少你要能看懂别人的汇编代码,你可以接触一下底层寄存器到底是怎么工作的,怎么寻址的。在这里插一句,以前你写代码时第一句总是#include,我想如果把这一句去掉,你还能让编译通过吗?你理解这个文件里有哪些内容吗,把这个文件里的定义弄明白了,51单片机的寄存器也就差不多了。这时,你应该熟悉了51单片机了。这时学习其他单片机也应该很简单了,只是换一种编译器,寄存器改了而已,原理是不变的,反正都是用C语言编程,只要稍微改一下就完全可以适应另一种芯片。这就是我的整个学习过程,仅供参考。

这时,你需要的就是培养单片机的开发经验。这时,不能说你精通了单片机,只能说会用单片机了。我想问一句,这时,你可以开发一个仓库多点温度测控系统,数据传回电脑并处理吗?不能,我也不能,但是如果你花大学四年时间就搞51的话,我确定是可以的。在这里就涉及到一个方向选择问题,关于方向选择,我的学长张永翔给了我比较好建议,这时你有两个方向,一个往低层做,就是继续学习51单片机开发,你的目标就是用最简单的芯片,最低的成本实现最复杂的系统,比的是成本,也就是说,实现同样功能的系统,你可以用比别人更低的成本,更简单的硬件,更高效的算法去完成,这样你才有市场。另一个当然是往高层做,去学习更高级的单片机,学习ARM嵌入式,操作系统,不过这条路比前一条难很多,当然就业的报酬也很多。只是,你要花更多的时间以及更高的投资,ARM开发板等等,这可不是一笔小数目,你要花的起,当然,从文章的第一句就知道了,我选的是后者。其实我觉得,作为本科生,还是选择后者比较好,回旋余地大,可以继续考研的。我现在还记得我的电路分析老师说的一句话,“现在学电子的本科生,如果你毕业时只会一个单片机,你就废了”,我觉得还是挺有道理的,作为本科生,尤其是电子专业的本科生,往高层做是必须的,而且随着技术的发展,高级单片机例如STM32的成本也一直在下降,高级单片机的普及已成为一种趋势了。

当然,这只是个人的理解,仁者见仁,智者见智。若有不同见解,欢迎讨论。再次重申,本文系个人的总结,若有不对的地方,请指正。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 【立即预约】Keysight直播:搞懂介电常数那些事儿


  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • 基于C51单片机实现汽车座椅自动控制系统的软硬件设计

    引言 随着人们生活水平的提高,对汽车座椅的舒适性要求也越来越高,要求对汽车座椅地调节能够更加简单、方便、快捷。目前,汽车座椅位置的调节多采用基于手动调节方式的机械和电动控制两种方式。汽车座椅位置的调节...

    昨天
  • MCS51单片机程序设计时堆栈的计算方法解析

    用C语言进行MCS51系列单片机程序设计是单片机开发和应用的必然趋势。Keil公司的C51编译器支持经典8051和8051派生产品的版本,通称为Cx51。应该说,Cx51是C语言在MCS51单片机上的扩展,既有C语言的共性,又有它自己...

    昨天
  • 51单片机定时器工作原理及用法

    TMOD : 控制定时器的工作方式。8个bit,高四位 bit 控制 T1,、低四位 bit 控制 T0。因为定时器有4种工作方式;TMOD = 0x00(工作方式0),TMOD = 0x01(工作方式0),TMOD = 0x02(工作方式2),TMOD = 0x03(工作方式3)。...

    昨天
  • hot51增强型单片机开发板原理图

    功能要求: 一):绿灯25s倒计时,绿灯过度红灯有5s黄灯时间,红灯25s后直接跳绿灯。 二):按键按下模拟闯红灯输入,产生5s蜂鸣器鸣叫。 开发环境: 软件:Keil uVision4 硬件:HOT51增强型单片机开发板 程序代码:...

    前天
  • 51单片机的延时子程序

    延时程序在单片机编程中使用非常广泛,但一些读者在学习中不知道延时程序怎么编程,不知道机器周期和指令周期的区别,不知道延时程序指令的用法, ,本文就此问题从延时程序的基本概念、机器周期和指令周期的区别和联系...

    前天
  • 什么是Flash盘?Flash盘的结构是什么样的?

    Flash是大家常使用的存储之一,对于Flash,大家或多或少有所了解。上篇文章中,小编对Flash闪存的类型有所介绍。为继续增进大家对Flash的认识,本文将对Flash盘、Flash盘结构以及Flash读写操作予以介绍。如果你对本...

    前天
  • 深谈嵌入式系统,嵌入式系统是如何组成的?

    嵌入式系统在生活中有诸多应用,大家对于嵌入式系统或多或少有所耳闻。在前两篇文章中,小编对嵌入式系统进行过详细介绍。为继续增进大家对嵌入式系统的认识,本文将对嵌入式系统的组成加以说明。如果你对嵌入式系...

    06-27
  • 嵌入式系统秘籍共享,最全嵌入式系统解析

    嵌入式系统的应用十分广泛,因此越来越多的人学习嵌入式系统。由此,在学习嵌入式系统之前,我们应当对嵌入式系统具备一些认识。所以在本文余下部分,小编将对嵌入式系统进行全面解析。如果你对嵌入式系统具有兴趣...

    06-27
  • 51单片机超声波测距程序详解

    51单片机超声波测距程序详解 超声波四通道测距:超声波测距实现分为三大块: 其一是12864带字库的液晶驱动程序: 代码如下: /////////////////12864驱动程序/////////////////////////// //1写数据 void WriteDat...

    06-25
  • 51系列单片机的引脚图

    51系列单片机的引脚图 端子介绍 l P0.0~P0.7 P0口8位双向口线(在引脚的39~32号端子)。 l P1.0~P1.7 P1口8位双向口线(在引脚的1~8号端子)。 l P2.0~P2.7 P2口8位双向口线(在引脚的21~28号端子)。 l P3.0~P3.7 P2口8...

    06-25
  • 51单片机串口通信需要加超时中断吗?

    接收数据时,超过一定时间就算出错. 这个超时的时间是单片机自己算出的吗?超时的时间是由编程序的人定的,他定多长就多长从一段程序开始 实现电脑向 单片机发送一些数据,单片机返回Iget +数据 #include #define u...

    06-25
  • 51单片机电机pid控制系统程序

    51单片机电机pid控制系统程序 本程序来源网上,小编进行了简单修改,还未验证。 /************************* 应用背景:直流电机的额定功率12V,额定转速3000rpm,光码盘12孔, 晶振为12MHz,定时/计数器T0检测转...

    06-25
下载排行榜
更多
评测报告
更多
EE直播间
更多
广告