我们以大家最熟悉的 51 单片机为例子,讲解之前我们所有讲到的点。然后以 51 拓展到其他方方面面的单片机。要做到,一片在手说走就走!
首先,先回忆一下,我们想要控制单片机需要什么(不就是 C 语言吗?),是的,我们靠 C 语言来控制单片机,但是有了 C 语言就够了吗?当然不够,我们还需要开发工具等等一系列的乱七八糟的东西,但是本章我们只讲解开发过程,不涉及实际项目和正确的工程,我只是想说明一个大概的思路,毕竟有了思路,才知道自己缺少了什么。
芯片简介
实物图
这样就是我们所谓的 51 单片机实物图。也就是它把你搞得欲仙欲死,现在就跟我说来把它的衣服一层一层的剥开。实物图虽然具体但是你暂时没法分辨那门多针脚是用来干什么的。以下我带来原理图给大家介绍一下引脚功能。
这是张将包含了单片机的最小系统,也就是说,只要你能保证电阻,电容,晶振等等(你问我啥叫晶振,啥叫电阻?不好意思,我就不告诉你。)和图上的连接方式保持一致,那么,你只要提供 VCC 和 GND 的外部供电,整个单片机就会活过来了,它就会一步一步的执行你写的代码了。
看到上面的 P1.0-P1.7 P2.0-P2.7 P3.0-P3.7 P0.0-P0.7 这些引脚就是我们可以控制的 IO 口了(什么叫 IO 口,请回看之前章节)。
控制心法
好了,我记得之前有说过 IO 口是可以控制的,而 51 单片机也有这么多 IO 口。我们又知道了需要使用 C 语言来控制单片机。那么,我现在到底需要怎么做?我真的好烦。
先看图,给大家依次讲解:
- #include“XXX” 是 C 语言的标准写法,而后面跟着的 reg52.h 是 52 芯片的一个编号文件,还记得我们说的,我们和单片机交流,需要告诉它一个编号。这样我们就能使用像下面的 P2 这种符号了。如果你不 #include “reg52.h”的话,后面的 P2 你是不能用的,因为单片机再想,这是个啥玩意。
- 第二行是一个标准的 C 语言写法,也就是说,你不管在写什么单片机程序,你都需要提供一个main函数(至于什么叫函数,自行恶补C语言知识,或者下面专门一章讲解一下)。
- 第三行,我们实现了让整个 P2 端口(P2.0-P2.7)为 1。这是什么意思呢?且听我娓娓道来,这就是咱们功法的最高技巧!一定要注意。我们先将P2.7 P2.6 … P2.0 依次排列下来。如下图
这样你就可以通过 P2 这个符号来控制 P2 端口上的任意一个引脚(P2.7 ~ P2.0)的输出电平了。如上图的话我们可以简单的用二进制表示为 :0b10101100,注意这是二进制,换成你看懂的样子也就是十进制:172,换算成16进制就是 0xAC。也就是说 0b10101100 = 172 = 0xAC,大家习惯使用 16 进制的 0x 表示。
这时候我们想让单片机的 P2.6 输出高电平怎么处理呢?(不就是 P2 = 0b11101100嘛)。对楼,就是这么简单。这样,你就会了如何控制一个单片机的引脚了。