单片机学习笔记(2)
单片机学习之——C51初识
在搞清楚进制转换之后,接下来就正式进入C51单片机的学习了,在学习的过程中会穿插一些关于C语言的一些知识,毕竟C51本身就是C语言的一种衍生与应用。接下来我将会按照哔哩哔哩上找的视频教程针对C51进行逐步的学习。
视频传送门:C51单片机编程基础-变量
一、C51的头文件
我们先从程序框架来了解C51程序。
#include<reg51.h> //头文件 |
这里的头文件分别有两种类型,一种是带有尖括号的叫做系统头文件,另一种是带有双引号的叫做自定义头文件。即:
<reg51.h> //系统头文件 |
这意味着未来我们可以编写自己的头文件以用于我们自己写的程序。
二、C51当中的数据类型
C语言当中常见的数据类型有以下几类:
char 字符型
int 整型
long 长整型
float 单精度浮点型
double 双精度浮点型
unsigned char 无符号字符型
unsigned int 无符号整型
unsigned long 无符号长整型
然而在C51当中则还有以下几种常见的数据类型:
sfr 特殊功能寄存器
sfr16 16位特殊功能寄存器
bit 位类型
sbit 可寻址位
例:
sfr P0 = 0x80; //定义P0为P0端口在片内的寄存器,P0端口地址为80H |
在了解完前面的内容之后,我们可以通过一个简单的案例来实际应用一下。
例题:简单地实现灯的亮灭。
具体的代码过程如下:
#include <STC15.h> //和C语言一样,在程序的开头引入STC15单片机的头文件。 |
上述代码当中出现了这么一段“奇怪”的代码:
for(g=0;g<1000;g++); |
其实这一段代码是下面这段代码的缩写:
foe(g=0;g<1000;g++) |
“delay”函数在执行的时,程序执行“for”语句的嵌套循环,由代码可知,该“delay”函数将空代码执行了183000次。执行这一代码的时间刚刚好满足1秒,从而实现对LED灯亮灭的控制。