AutoLeaders控制组——五一单片机学习笔记(一)

单片机基础介绍

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);
	} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值