正如标题所说,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 语言在单片机里面的基本简单运用方式。如有问题请留言,我将一一解答
下一节给大家初略的介绍单片机的三头六臂!