单片机基础介绍
1.单片机,英文Micro Controller Unit,简称MCU
内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能
单片机的任务是信息采集(依靠传感器)、处理(依靠CPU)和硬件设备(例如电机,LED等)的控制
单片机跟计算机相比,单片机算是一个袖珍版计算机,一个芯片就能构成完整的计算机系统。但在性能上,与计算机相差甚远,但单片机成本低、体积小、结构简单,在生活和工业控制领域大有所用
单片机结构图
![在这里插入图片描述](https://img-blog.csdnimg.cn/2e3be70ad81a42519b37161855fc8200.png#pic_cent
CPU:(中央处理单元)负责处理和执行指令 CPU的核心是从程序或应用程序获取指令并执行计算。该过程分为三个关键阶段:获取,解码和执行。CPU从RAM中提取指令,对指令的实际含义进行解码,然后使用CPU的相关部分执行指令。
RAM: RAM是随机存取存储器(random access memory),是计算机内部存储器中的一种,也是其中最重要的,计算机和手机中一般把其叫做(运行)内存,它的速度要比硬盘快得多,所以用运行程序在RAM中,而存放运行时不用的数据则在硬盘中,什么时候需要数据,便把数据从硬盘中拿到内存,但同时RAM断电会丢失数据,所以我们电脑如果断电了就会丢失原来正在运行的数据。
ROM:ROM是只读存储器(Read-Only Memory),它具有断电不丢失数据的特性。
点亮一个LED
LED模块中有电阻, 作用是用来限流,电阻大小为102(即表示1k欧)
高电平为5V,低电平为0V
当端口输出高电平时(表示为1),与电源正极均为5V,此时led灯不亮
当端口输出低电平时(表示为0),此时有电流通过,led灯被点亮
在写代码时要写十六进制(原因为十六进制与二进制类似,二进制中每四位表示十六进制中一位),其中0x为十六进制的的前缀
#include <REGX52.H> //单片机编程所需头文件
void main()
{
P2=0xFE; //1111 1110 表示点亮第一个led灯
while(2>1);
}
LED闪烁
要做到led闪烁则需要引入延时函数,在stc中的软件延时器可复制其中的延时代码
用 _ nop _() 这个 需要头文件#include <INTRINS.H>
#include <REGX52.H>
#include <INTRINS.H> //使用的延时函数中所需要的头文件
void Delay500ms()
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 205;
k = 187;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
while(1)
{
P2 = 0xFE;
Delay500ms();
P2 = 0xFF;
Delay500ms();
}
}
LED流水灯
可选用1ms的延时函数再通过一定修改可实现之后能灵活修改的延时函数
#include <REGX52.H>
void Delay1ms(unsigned int xms) //@12.000MHz
{
unsigned char i, j;
while(xms){
//可改成一个自己定义延时时间的
i = 2;
j = 239;
do
{
while (--j);
}