首页 > 其他分享 >01-点亮第一个led,led闪烁,led流水灯

01-点亮第一个led,led闪烁,led流水灯

时间:2023-11-24 14:44:56浏览次数:37  
标签:P2 01 led 点亮 -- void Delay500ms while

01-点亮第一个led,led闪烁,led流水灯

前言

最近跟着江协科技的教程([2-1] 点亮一个LED_哔哩哔哩_bilibili)学习51单片机,以此记录。实验的单片机集成板如下:

软件:Keil-v5, stc-isp-v6.92F

一、点亮一个led灯

其中有两点需要注意:

  1. 江协科技上的开发版最右边一个led是D1,而我使用的最右边的led是D8。所以如果要点亮最右边一个led,需要修改P2的值为0x7E

  2. 使用stc-isp烧录程序的时候,芯片型号需要选择STC89C52RC/LE52RC,而不是STC89C52。否则会烧录不进去

#include <REGX52.H>

void main()
{
	P2 = 0x7E;
    while(1);
}

二、led闪烁

闪烁需要用到延迟,其中延迟函数可以使用stc-isp中生成,怎么计算生成的后续可以再研究,暂时先不理(实在是目前对电路还知之甚少)

#include <REGX52.H>
#include <INTRINS.H>        // _nop_() head

void Delay1000ms(void)	//@12.000MHz
{
	unsigned char data i, j, k;

	_nop_();
	i = 8;
	j = 154;
	k = 122;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

void main()
{ 
    while(1)
    {
        P2 = 0x7F;
        Delay1000ms();
        P2 = 0xFF;
        Delay1000ms();
    }
}

三、led流水灯

由于ledD1~D8与江协科技使用开发版的排列相反,所以如果需要流水灯从右向左的话,代码也要反着来

#include <REGX52.H>
#include <INTRINS.H>

void Delay500ms(void)	//@12.000MHz
{
	unsigned char data i, j, k;

	_nop_();
	i = 4;
	j = 205;
	k = 187;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}


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

标签:P2,01,led,点亮,--,void,Delay500ms,while
From: https://www.cnblogs.com/yljblogs/p/17853693.html

相关文章

  • Tomcat报错Pailed to start component [StandardEngine[CatalinalStandardHost[localh
    话不多说直接上图就完了就下边这个错困扰了我一两个小时,到现在说实话我也没找到到底是什么原因,就是之前的一个版本war包还可以在tomcat上边运行但是最近更新的war包就不行就会报一个这个错,我看到网上有人说是tomcat的问题,我看其他war包都能正常使用我就没想到会是这个问题但最终的......
  • Failed to load property source from location ‘classpath:/bootstrap.yml‘
    日常报错之无中生有,这个错误实属低级,原因是因为bootstrap.yml文件格式错误。仔细检查下格式是否有重的地方错误配置实例因为两个spring应该都归属到spring下边server:port:9001#指定开发环境spring:这里写错了。应该放到下边application:name:sys#指向......
  • [SCOI2012] 滑雪
    Description给定一个带边权有向图。现在从点\(1\)开始走,走的过程中可以无代价回溯任意多步,求在经过最多点的情况下(重复的点算一次),最小边权和是多少。Solution先从点\(1\)BFS,能走到的点就是第一小问答案。根据回溯条件,在最优答案中,每条边至多走一次(考虑走两次的话,一定有一次......
  • uniapp开发[Vue warn]: Unhandled error during execution of scheduler flush. This
    如下,uniapp开发nvue页面报如下警告:15:30:25.079[Vuewarn]:Unhandlederrorduringexecutionofrenderfunctionat<UniGroupclass="w710cell_groupbg_whiteborder_radius16flex_row"top="10">at<Index__pageId=1__pagePath="pages/g......
  • org.springframework.context.ApplicationContextException: Failed to start bean ‘
    错误信息org.springframework.context.ApplicationContextException:Failedtostartbean'documentationPluginsBootstrapper';nestedexceptionisjava.lang.NullPointerException  atorg.springframework.context.support.DefaultLifecycleProcessor.doStar......
  • threejs—01—概念
    一、物体如何移动所有的物体不管是PerspectiveCamera()还是mesh()构造函数,都是继承Object3D()的。因为继承,所以,camera实例和mesh实例,不仅可以访问自己构造函数的函数原型prototype对象里的东西,也可以访问Object3D()函数的属性。其中,Object3D()函数有一个position属性很重要,通......
  • Bean instantiation via constructor failed; nested exception is org.springframewo
    一、从公司的的GitLab下载项目到本地二、nacos-2.0.1启动不了我以为是我中文路径问题,然后放到全是英文的一样报错,百度一圈没找到解决方法。三、大佬路过,瞟了我一眼的电脑解决了。删除D:\nacos-2.0.0\data 下面的所有文件即可 原因就是有人把自己的数据上传到git了,导致......
  • 【略读论文|时序知识图谱补全】Learn from Relational Correlations and Periodic Eve
    会议:SIGIR,时间:2023,学校:国防科技大学摘要:之前模型存在的问题:未能利用快照内结构信息的关系之间的语义相关性与快照间时间交互沿时间轴的周期性时间模式。本文的工作:提出了一种新的推理模型(RPC);它通过两个新的通信单元,即关系通信单元(RCU)和周期通信单元(PCU),充分挖掘关系关联和周......
  • openharmonyOS 编译报错:ERROR: Failed :entry:default@LegacyCompileResource
    解决方法:把build包删除,让系统重新生成......
  • 关键字 开发-01 pytest收集yaml用例
    1.pytest收集测试用例规则pytest框架在收集用例的时候,默认会查找test_开头的.py模块,并且在模块中找到test_开头的函数或Test开头的类。根据这个规则,如果我们想收集yaml格式的文件当用例执行,需解决2个问题:1.修改用例收集规则,改成收集yaml格式文件作为收集的目标2.将yaml文件......