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

LED流水灯多种点灯方式代码0基础讲解

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

LED流水灯多种点灯方式代码0基础讲解

话不多说 上代码

#include   //51单片机的头文件,可以用来调用P2口,寄存器
#include 

void Delay500ms()		//这是我在stc-isp下载的延时函数 ,在我主页会有讲解
{
	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;//1111 1110
		Delay500ms();
		P2=0xFD;//1111 1101
		Delay500ms();
		P2=0xFB;//1111 1011
		Delay500ms();
		P2=0xF7;//1111 0111
		Delay500ms();
		P2=0xEF;//1110 1111
		Delay500ms();
		P2=0xDF;//1101 1111
		Delay500ms();
		P2=0xBF;//1011 1111
		Delay500ms();
		P2=0x7F;//0111 1111
		Delay500ms();
	}	
	
}

这是个流水灯代码,点灯方式是通过16进制的0 1进行高低电平控制
一次可以控制8个灯 ,0就是亮,1就是灭。
而sbit取名一次只能控制一个灯

LED灯单向导电,左边是正极,右边是负极。
正极是高电平,为1 。右边VCC已经通电,我们能控制的是负极,如果右边是0,刚好是个通路,就会点亮,反之则不会亮。

在数字电路中,
高电平一般是5V,用1代替,
低电平一般是0V,用0代替,
这里的“1”指的就是高电平,“0”代表低电平,
电流从高电平流向低电平,用电器才能收到信号工作。
是绝对的,固定不变的。

还有一种sbit的写法

#include 

//对八个LED分别进行位定义,可以理解为C语言中的赋值,把P口对应的给一个新的名字
//sbit就是取名的
sbit LED1 = P2^0;
sbit LED2 = P2^1;
sbit LED3 = P2^2;
sbit LED4 = P2^3;
sbit LED5 = P2^4;
sbit LED6 = P2^5;
sbit LED7 = P2^6;
sbit LED8 = P2^7;

void main()
{
  //LED为共阳极低电平LED亮
  LED1 = 0;
  LED2 = 0;
  LED3 = 0;
  LED4 = 0;
  LED5 = 0;
  LED6 = 0;
  LED7 = 0;
  LED8 = 0;
}

定义方法:sbit 位名=特殊功能寄存器^位置;
sbit LED1 = P2^0;
符号"^"前面是特殊功能寄存器的名字,后面的数字定义的可寻址位在特殊功能寄存器中的位置,取值必须是0~7
p2是连接LED的IO口,p2^0到7分别对应LED1到8


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

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

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