单片机学习报告1阶段

<h2>如果说单片机是CPU那只是片面的</h2>

单片机又称单片微控制器,它是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。(以上内容来自百度百科(ฅ>ω<*ฅ))

没错,CPU只是单片机的一部分,那我们给单片机通上电他就能工作了吗?当然不行,就算是我们日常使用的电脑,没有操作系统,没有鼠标键盘,没有显示屏,那我们也用不了.单片机也一样,而使单片机能够实现简单运行的最少的元器件的组合就是单片机的最小系统.


单片机最小系统

既然知道这些那我们也不难理解为什么单片机的程序是用C语言和汇编语言来写的了,因为两者都是比其他语言更接近硬件底层的语言。所以学好单片机就要注意这几点
(๑•̀ㅂ•́)و✧:

  1. 学好C语言
  • 为什么要使用接近硬件低层的语言

单片机可没有像电脑一样有优秀且庞大的操作系统给你方便操作,我们必需要手把手得指挥单片机下一步该干什么——输入代码,不用惊讶,三四十年前的计算机就是这么使用的。

  • 为什么是学C语言?感觉C语言好难啊

我们只有两个选择:汇编和C语言。汇编是低级语言,它比C难多了。虽然很多人学了一学期跟没学差不多,但这并不意味着着它难,更多人觉得难一是因为他大脑本身排斥C,二是他不知道其语法规则和使用方法。

  1. 学好硬件知识
    我学C语言谈不上精通,但基本使用还是会的,可是当我觉得我能轻松驾驭单片机时我发现我错了。当C语言遇上单片机,它就开始变异了,常用的<stdio.h>变成了<reg52.h>,点亮一个led灯的命令竟然是P1=0xfe;......
    高低电位,各种元器件的认识与使用,电路分析与设计,二进制与十六进制的转换....所以在单片机上C语言程序要考虑更多硬件方面的内容。

  2. 多玩单片机
    玩单片机是个动手又动脑的游戏,玩久了一款游戏的人总比初来的菜鸟厉害吧。


我是个漂亮的分割线


学习经验总结

1.看视频还是看书?

光看郭天祥十天学会单片机的视频并不能完全理解单片机的运行原理,看完第二讲我就有很强的冲动(这种冲动应该归结为求知欲吧)去看书了。果然,借到书看了一下之后明白了更多的细节。

但是当我天真得以为可以看书而不看视频就能学时,我又被打脸了。这写的什么鬼啊,看得我云里雾里似懂非懂!(╯‵□′)╯︵┻━┻

然后我又有很强的冲动去看视频了,看完后又变得豁然开朗,醍醐灌顶……总结一句话:能软能硬才是真正法器,书和视频都看最好,先看哪个都行随你喜欢。

2.while(1)还是for(;;)?

单片机只要一通电就会一直工作不停,这也就能解释为啥有时要在程序后面加个while(1);了。无限的死循环在程序设计里并不常用,而且很多时候算是个错误。可是因为单片机不会停止工作的特性,所以无限循环就经常能派上用场了。可是!问题来了

到底是用
while(1)
还是用
for(;;)

郭天祥用的是while(1)而国外的大神一般用的是for(;;)。而我更赞同使用for(;;)。喂喂,你可别以为我是崇洋媚外,for(;;)的确比while(1)更好,原因如下
-for(;;)效率更高
在一些优化过的编译器上while(1)和for(;;)是完全等价的。可是!如果编译器并没有对此优化过,那两者就有明显区别了。while(1)明显比for(;;)多了一步判断( )里面的值!当然这多出来的一个步骤对运行速度的影响几乎没有。
-for(;;)能延长键盘寿命
好吧其实这个好处明显是夸张了。但for(;;)比while(1)更好打是显而易见的。

3.写程序很多时候是和二进制还有各种接口打交道

虽然C语言不能直接使用二进制来赋值(要换成十六进制),但是单片机是硬件,是微型计算机,它的本质就是二进制。比如控制led灯,控制数码管,几乎可以说是用二进制的命令来控制了。其次就是要记接口了,因为你要知道这些命令要传送到哪个地方去执行。所以可以看出初学单品机要更偏向学硬件方面,软件方面主要是后期提高。

嗯,1阶段就这么些感悟,另外还有一些要吐槽的:程序写好了却总是报些莫名其妙的错误时不时遇到单片机拷不进程序的问题……………………ヽ(‘⌒´メ)ノ真是(哔——)了狗了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 正在写作这篇文章的笔者是一名大四的软件工程学生,因为实习工作的需要,奉命研究单片机开发,所以我所扯的内容可能...
    兔子泽阅读 10,930评论 18 57
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,991评论 18 399
  • TITLE: 编程语言乱炖 码农最大的烦恼——编程语言太多。不是我不学习,这世界变化快! 有时候还是蛮怀念十几、二...
    码园老农阅读 10,794评论 2 35
  • 姓周的人这么少,遇见就嫁了吧!
    分子间引力阅读 962评论 0 0
  • 决定今天的不是今天,而是昨天对人生的态度;站得高才能看得远,看得淡才能放得下。背负太多,就会活得很累,放...
    东方新材粉末彩涂板阅读 929评论 0 0