51单片机特有的程序语法以及 Keil 软件的根柢操作进程,请咱们必定要有耐性。
咱们首要是用 C 言语来对单片机编程,而有的单片机有那么几条很分外的特有的编程句子,51 单片机就有,先介绍 2 条。
榜首条句子是:sfr P0 = 0x80;
sfr 这个要害字,是 51 单片机特有的,他的作用是界说一个单片机分外功用寄存器(special function register)。51 单片机内部有许多个小模块,每个模块寓居在具有仅有房间号的房间内,一同每个模块都有 8 个操控开关。P0 便是一个功用模块,就住在了 0x80 这个房间里,咱们便是经过设置 P0 内部这个模块的 8 个开关,来让单片机的 P0 这 8 个 IO 口输出高电平或许低电平的。而 51 单片机内部有许多寄存器,假定咱们想运用的话有必要提行进行 sfr 声明。不过 Keil 软件现已把悉数这些声明都预先写好并保存到一个专门的文件中去了,咱们要用的话只需文件开端添加一行#include即可,这个在后边有用法详解。
第二条句子是:sbit LED = P0^0;
这个 sbit,便是对方才所说的 SFR 里面的 8 个开关其间的一个进行界说。经过上边第二条句子后,往后只需在程序里写 LED,就代表了 P0.0 口(“^”这个符号在数字键 6 上边),留神这个 P 有必要大写,也便是说咱们给 P0.0 又取了一个更形象的姓名叫做 LED。
了解了这两个句子后,咱们来大约看一下单片机的分外功用寄存器。请留神,每个类型的单片机都会配有出产厂商所编写的数据手册(Datasheet),所以咱们来看一下 STC89C52 的数据手册,从 21 页到 24 页,悉数是对分外功用寄存器的介绍以及地址映射列表。咱们在运用这个寄存器之前,有必要对这个寄存器的地址进行阐明。是不是花花绿绿的太多了,记不住啊,这个没联络的,不需求你记住,了解一下,后边大有些我会逐步给咱们阐明,稀有些需求用到的时分,自个过来查手册就能够了,做技能不是为了唐塞考试,你能够随时翻阅手册查找你需求的材料。
如图 2-7,是截取的手册中第 22 页最下边的一个表格。
图 2-7 IO 口分外功用寄存器
咱们来看一下这个表,其间 P4 口 STC89C52 对规范 51 的拓宽,咱们先疏忽它,只看前边的 P0、P1、P2、P3 这 4 个,每个 P 口自身又有 8 个操控端口。咱们能够联络咱们的开发板原理图或许图 2-1 来看,那么这么就断定了咱们的单片机一共有 32 个 IO 口(IO,Input 和 Output,别离是输入和输出)。
其间 P0 口地址的地址是 0x80,一共有从 7 到 0 这 8 个 IO 口操控位,后边有个 Reset Value(复位值),这个很首要,是咱们看寄存器必看的一个参数,8 个操控位复位值悉数都是 1。
这便是通知咱们,每逢单片机上电复位的时分,悉数的引脚的值默许是都是 1,即高电平,咱们在方案电路的时分也要充沛的思考这个疑问。
那么上边那 2 条句子,咱们写 sfr 的时分,有必要要根据手册里的这个地址(Add)去写,写sbit 的时分,就能够直接将一个字节其间某一位取出来。咱们编程的时分,也有现成的写好寄存器地址的头文件,咱们直接包括该头文件就能够了,不需求逐一去写了。