肉嘟嘟的程序媛
认证:普通会员
所在专题目录 查看专题
暴揍单片机知识点 1 -- 一门和芯片对话的外语
暴揍单片机知识点 2 -- 三头六臂
暴揍单片机知识点 3 -- 51初窥
暴揍单片机知识点 4 -- 51的手表和闹钟 (1)
暴揍单片机知识点 5 -- 51的手表实操(2)
暴揍单片机知识点 6 -- 51的闹钟 + 闹铃
作者动态 更多
git 情景 4 —— 永世不灭
2021-12-16 22:14
git 情景 3 —— 多重分身
2021-08-06 17:28
git 情景 2 —— 时空穿梭
2021-06-08 01:20
git 情景 1 —— 封存历史,探索代码的前世今生
2021-05-13 21:11
git 版本管理 —— 使用场景以及入门
2021-05-11 13:12

暴揍单片机知识点 1 -- 一门和芯片对话的外语

正如标题所说,c语言是我们和各种芯片对话的语言(其他吹牛逼的话请去多找找专业书籍,我就不赘述了)。我在本张只会讲解一些常用和简单的用法,便于大家入门和熟悉单片机的程序的设计原理。

第一招,开门见山。

单片机是怎样运行的?它内部是怎么设计的?这些问题,可以说是很重要,但也不重要(这句话,你品你细品,就是装逼用的)。

其实单片机就认识一个东西,他的一生最爱:main小姐。每次单片机只要苏醒了(也就是给他点电,像打了鸡血似的),它就会疯狂的找寻它们女朋友(MAIN小姐)。当他找到main小姐后,man小姐就会把它肚子里面的所有想法和要求告诉单片机。而单片机就像一个好丈夫,孜孜不倦的满足main小姐的全部要求。最终换来的可能只是一句:你是个好单片机,我们不合适。哈哈。。。

给你们看看 main 小姐的美妙身材:

main

{

    // ........... 我们存放所有流程的地方。

}

第二招,认祖归宗。

举个例子:比如在课堂上,老师叫小明,你给我滚出去。这时候小明会看看自己,然后老老实实的滚出去。但是如果班级里面没有小明,那么同学们就会没有反应。这可以理解为简单的死机了。哈哈哈。

所以,我们一定要告诉单片机,我们想让谁干嘛。

比如:

int nums = 10;此时,我们用int(类似的还有char ...)来告诉单片机,臭小子,我现在需要生个孩子,它的名字叫做 nums,它现在初始值是10(单片机中的所有东西都只是数字)。这句话只要单片机读完或者运行完,那它知道我一个儿子叫 nums 并且也知道 nums 等于 10。

nums = nums + 1;我随后想让我儿子自己加一下。那好,我只需要告诉单片机,把我儿子加1,至于为什么是 nums = nums + 1 而不是 nums + 1 = nums 。这就好比吃饭为什么要用筷子,因为我们是中国人,这是我们的骄傲。(其实就是编译器是别人写的,我们必须准守这样的规则一样)。

第三招,明码标价

比如,出门你去买衣服,或者买手机。这手机你再喜欢一看标价:10w,你心里就在想,卧槽,老子穷屌丝,你这么贵,我怎么买。这样你连头都不带回的就溜了。

单片机也是会这样的,比如我们告诉单片机,如果我要的这个儿子比 10 大,那你把它丢掉。如果比 10 小,那你就给他加点。这样单片机每次检查你儿子的时候就会看他是不是比10大。

代码如下:

if(nums > 10){

    丢掉

}else{

    nums = nums + 1

}

第四招,偷工减料

我想知道大家都很不愿意做一些傻瓜式,枯燥,重复性的事情吧。但是单片机没得选,它不做就得我们自己来做,每个人都是贪婪的,我们都喜欢偷懒,那就把我们的轻松转嫁到单片机的身上了,这样我们就轻松了。

举个例子:比如我现在需要找到 1-100 之间的偶数。

第一种,自己没事找事型:

首先按照第二招,我们要告诉单片机我们又要一个孩子了,比如:int nums = 1;这时候我们只需要检测 i 是不是 2 的倍数。然后让 nums = nums + 1,再检测一次。我感觉从 1 - 100 我需要写 n 个。

nums 是不是2 的倍数?

nums = nums + 1

nums 是不是2 的倍数?

nums = nums + 1

nums 是不是2 的倍数?

nums = nums + 1

....

自我写个 100 遍,我tm又不是默写出错了,凭什么让我罚写。这时候我们观察一下,其实这些都是有规律的,他总是检查,检查完后加1.这样我们的先辈们就给我们提供了一个更好的解决方式:

for(nums = 1;nums < 100;nums ++){

    nums 是不是2 的倍数?

}

卧槽,真的这么简单吗?是的就是这么简单。原本几百行的代码,在你面前被缩减成了 3 行。卧槽,你真牛逼。但是对于单片机而言,它的工作量没有太大的变化,我们确实节约了不少的时间。

====

我们开发的主要流程,以及一些步骤:

  • 我们需要使用 C 语言编写一段符合 C 语言规范的程序。(这时候你如想想深入学习,扩展一下自己的 C 语言功底)。
  • 我们需要找到合适的编译器(比如,keil,iar,gcc 。。。)将 C 语言文件转化你要烧录芯片的二进制文件(这个类型的文件可以是,hex,bin,mot。。。哪怕是 txt 类型文件也无所谓,主要看编译器可以生成什么样的文件)。
  • 想办法把编译器生成的二进制文件烧录到单片机中。这样单片机就能按照你编写的 c 语言逻辑运行了。

烧录的部分细节说明:编译生成的文件只是一个载体,就是说这个文件里面存放了我们要烧录到单片机中的信息。其实烧录过程就是讲二进制文件中的信息解析出来,然后存放到单片机当中,至于这个流程细节怎么实现的不知道也没关系,因为你只要会用就可以了。

====

至此,你基本就需要会了 C 语言在单片机里面的基本简单运用方式。如有问题请留言,我将一一解答

下一节给大家初略的介绍单片机的三头六臂!

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 7
收藏 10
关注 54
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧