毛敏博士《C51单片机实战》常见问题回答
2025-10-27 来源:bilibili

Q《单片机C51实战》和其他课程相比有什么特点
这个课程学习路径短,学习目标清晰,目标和方法匹配导致学习成功率高,学习成就感高。学完不容易忘记。
这一块我们用另外一篇文章来写,详见B站我的主页文稿“坐高铁学单片机”
Q这课程适合什么样的人学习单片机
适合想学习的人学习,有清晰的逻辑思维能力。
Q这个课程主要在哪一类单片机上学习
这个课程学习STC8h系列,比较先进的一种8位单片机,向下兼容8051,可以无缝链接到32位单片机。10多年前的技术要实现STC8H这样的功能,大约需要100x100的线路板,芯片成本至少是现在的100倍。
Q我们是不是需要购买一块开发板
我在课程视频中一直用的这款开发板,大家可以购买来用,也可以按照我课程中搭面包板的方式自己制作开发板。自己制作的开发板对提高自己的硬件能力有很大的好处。
Q可不可以购买流行的开发版,那种十多年前用89C51的
不建议购买这种开发板,因为我课上讲的很多功能在这种开发板上没法完成,举个简单的例子我们的芯片GPIO有推挽输出功能,简单讲芯片可以高电平输出大电流,而老式的单片机高电平无法输出大电流,所以接数码管的时候,老式的单片机必须用锁存器、晶体管等来驱动,硬件比较复杂。还有,新的芯片有片上AD功能,需要将GPIO设置为高阻,而老开发板的这些口线都已经被各种外设占领,无法进行高阻采样,过桥小板也无法克服这个困难。过桥小板假定是用比较新的STC芯片,可以向下兼容老的开发板,这样兼容的结果是STC芯片的90%功能会被老开发板限制。
Q学习单片机是硬件重要还是软件重要?
都重要,硬件花一成时间,软件要花九成时间,我的课程也是这样安排的。
Q为什么我学习这门单片机课会有成就感?
因为课程和你的学习目标一致,课程符合大家的认知规律,在你会用黏贴复制的情况下,课程会在10分钟内教会定时器,10分钟内教会矩阵键盘,10分钟内教会串口……这样你怎么会没有成就感呢?
课程名称 《单片机C51实战》
Q:不要问哪一类问题:
1. 有确定性回答的问题
1) 查手册或者网站就能找到答案的。比如: void() 是什么意思?
2) 已经有人回答的。比如:如何在Windows下面安装keil?
2. 程序正常编译,也能够运行,但是结果不符合自己的预期——也就是程序的逻辑有问题
1)你必须要学会调试自己的程序。除非你的程序特别有趣,否则不会有人帮你去做本应该你自己做的调试工作
2)你需要学习极简单软件,比如十行以内,并使之可靠运行
3)即便不作单步调试,尝试用实验板上的LED,数码管,串口显示出你的中间结果,也会有助于你查找自己的错误
Q:课程的目标是什么?
A:课程的目标是学会用单片机,其中一个目标是制作一个可以用的数字钟。
在学习做单片机数字钟的过程中,我们将花10%的时间让同学们理解整个硬件系统,主讲老师设计这个硬件过程中应用新生代的8051兼容单片机芯片,这个单片机芯片在备课期间还没有正式上市。
同时我将用90%的时间来介绍能完成数字中功能的详细的软件代码。其余项目见目录。
Q:有问题怎么办?
1. 提问前先自己读文档、手册,搜索百度、谷歌、CSDN、众多单片机的网站
2. 你做了哪些尝试去解决问题
1) 天助自助者。软件工程师的时间,1/3在编程序,2/3在解决程序中的问题。尝试解决问题是走在正确的道路上
2)你所描述的尝试方法,有助于别人判断你遇到的问题的状态,以便给出更准确的回答。
3.不能只看视频。找到相应的参考资料,在自己的板子上实现视频中老师演示的功能。
Q:建议学习过程是什么?
1) 项目不一定按顺序,先浏览一遍视频,熟悉课程目标;
2) 然后默念你的目标,平心静气,专注。第二遍看视频;
3) 随后,你打开自己的keil开发环境,对照课时中的代码示例视频,一边看视频,一边对着视频敲代码;
4) 看示例视频写代码时,你可能要不时地暂停视频,以便跟上老师的进度;
5) 几乎可以肯定:你在对着视频写代码时,会敲错代码,会看串行,会把半角分号写成全角分号——错误百出;
6) 你能犯错误,这非常棒:耐心一点,尝试去解决你的错误;
7) 当你写程序不再犯错时,那么你就掌握了这一单元的主要内容。
Q:我们用什么样的单片机?
我们这次课程用stc8系列,这是Intel8051单片机的更新换代产品,入门简单。如果用传统的8051单片机来完成这个新型单片机的所有功能,需要做一块巨大的板子,十几片芯片。硬件成本是老芯片的一百倍,同时这块新的芯片的运行速度是古老的89c51的12倍到24倍。关键这片芯片还非常便宜,一个芯片的价钱不到老芯片的一半。这个类型(指51单片机)的市场占有率据说也是51%。
Q:学习这门课可以获得什么,特别是对自己有什么帮助?
首先,你会学到用新型的国产stc单片机,能够在学会数字中的基础上,开发自己的应用系统。你可以获得详细的源代码,完整的硬件电路图。这类单片机市场占有率高,学了直接应用(工作),也可以在此基础上进阶学习。
其次,学习过程中,希望同学们关注学习方法,以项目学习法为主,用到先学,好比你不必要学会康熙词典里所有的汉字才可以说汉语,学单片机也是这样。可以参考问题“《单片机C51实战》和常见的单片机教学课程有什么不同?”
Q:用什么方法来学习单片机和C语言?
A:学习单片机主要精力是学习单片机的软件编程。硬件我们只要模仿就可以了。学习单片机的软件就是学习计算机语言,我们要用学母语的方法来学习。这种学习方法是最符合人类认知规律,并且是最快的。
Q:《单片机C51实战》和常见的单片机教学课程有什么不同?
A:常见的单片机类教材或者是网上课程的共同点就是:这些教材和课程的构建都是从单片机这个科目的小知识点开始,通过知识点的积累试图让学习者合成整个单片机知识,并希望学习者能够将学习到的知识点合起来用来开发。
这是专著或者芯片手册的构建方式,而不是学习应用单片机的正确方法。设想一下,单片机定时器应用,常见的教学方法很多就有100多张PPT,讲解下来可以覆盖70%左右定时器的知识点,学生看到这么多的知识点,能记住已经很难了,更别提应用了,大多数是前学后忘记。
而本课程讲定时器不到五分钟,保证同学会用,用到先学,让学生有成就感,获得感,让学生专注于应用本身,而不是知识结构的完整性。
Q:为什么不用汇编语言?
A:这就牵涉到课程的目标,如果你们去看某一个单片机课程,是让学习者学完以后去设计单片机芯片,改革单片机内部结构,那样必须学习单片机的汇编语言。不仅要学好学精,前提必须先学会使用单片机,会用,才能改进它。当然,学会使用单片机,用C语言最快,还是要学C语言。
如果某门课程或某本教材声称让你学会以后去做单片机开发,去应用单片机,它还在讲汇编语言,那就出问题了。用汇编语言开发单片机应用系统,和用C语言开发相比效率极其低下,好比高铁和绿皮火车的关系,汇编语言在二三十年前就被市场淘汰了。
这类教材显然目标跟手段背离了。
你从上海到北京是坐高铁去呢?还是打算走路或者骑自行车去?除了你想饱览祖国的大好河山,沿途的风景,一般情况不会用自行车,同样用汇编语言学习的话,至少先会用c语言,如果你的工作是要重新开发一个新的单片机芯片,你必须深入汇编语言。还有一个行当就是逆向工程,你把人家的编制程序芯片拿来,把芯片打开,读内部的程序,需要汇编能力。
- 六大全新产品系列推出,MCX A微控制器家族迎来创新
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 从控制到系统:TI利用边缘AI重塑嵌入式MCU的边界
- 模组复用与整机重测在SRRC、CCC、CTA/NAL认证中的实践操作指南
- 有源晶振与无源晶振的六大区别详解
- 英飞凌持续巩固全球微控制器市场领导地位
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 蓝牙信道探测技术原理与开发套件实践
- Microchip 推出生产就绪型全栈边缘 AI 解决方案,赋能MCU和MPU实现 智能实时决策
- LoRa、LoRaWAN、NB-IoT与4G DTU技术对比及工业无线方案选型分析




