栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

(二)51单片机基础

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(二)51单片机基础

        本节介绍的是有关LED灯的控制,也就是控制那8个小灯的熄灭与点亮,在这之前,先来补一下有关电路的一些知识点吧,LED模块原理图如下所示。

                 首先,VCC是电源正极,RP9和RP10是限流电阻(就是下面那两个小东西)电阻是1000欧姆,(102,代表的是10*10^2=1000),所以想要让D1这个LED亮,就需要给相应的接口一个低电平(注意,要将电位信息转换成16进制数),相应代码如下所示:

#include 
void main(){
	P2 = 0xFE;//1111 1110
}

运行结果如下所示:

         其次,想要让LED灯闪烁,我们就需要一个新的概念,就是延时函数,不过这个函数在烧录软件里可以自动生成,下面先来介绍一下如何生成演算函数吧!

        先选择系统频率,这个要看自己的单片机型号,还需要把8051指令集改成STC-Y1,再复制代码就行了。但是使用延时函数的时候,还需要添加一个头文件才能正常运行。接下来就来看一下LED灯闪烁的代码吧!(后期有高级一点的写法,先用这个来理解一些原理)

#include //就是这个哦

 具体每个16进制数我就不一一列开来讲了,相信各位可以理解的。

#include 
#include 


void Delay1ms(unsigned int xms)		//@11.0592MHz
{                                    //我稍微修改了一下延时函数,可以便于延时不同的时间
	unsigned char i, j;
	while(xms)
	{
		_nop_();
	_nop_();
	_nop_();
	i = 11;
	j = 190;
	do
	{
		while (--j);
	} while (--i);
		xms--;
	}
	
}


void main() 
{	
	while(1)
	{
		P2 = 0xFE;
		Delay1ms(200);
		P2 = 0xFD;
		Delay1ms(200);
		P2 = 0xFB;
		Delay1ms(200);
		P2 = 0xF7;
		Delay1ms(200);
		P2 = 0xEF;
		Delay1ms(200);
		P2 = 0xDF;
		Delay1ms(200);
		P2 = 0xBF;
		Delay1ms(200);
		P2 = 0x7F;
		Delay1ms(200);
	}
}

运行结果如下所示:

        

VID_20220513_213444

好了,关于LED灯的知识先介绍这么多。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/878920.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号