51 单片机[2-2]:LED闪烁

news2024/12/26 23:10:52

摘要:

本文使用STC89C52RC单片机实现单个LED闪烁


新建一个项目,具体步骤见[2-1]

分析: 要使 LED 闪烁(以D1为例),就要先让 P2 = 0xfe; 再让 P2 = 0xff;
先在keil5中把程序写成这样:

#include <REGX52.H>

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

在STC-ISP中下载程序后,发现 D1 灯没有闪烁,好像只是变得比之前暗了。

这是因为程序执行是按兆赫兹MHz执行的,闪得太快了,肉眼看不出来。

所以需要调整一下。点击“软件延时计算器”,调整“系统频率为12MHz”(因为我用的开发板的晶振电路是12MHz),调整“定时长度”为500,单位是毫秒,调整“指令集”为STC-Y1,这个指令集是适用于我的开发板的。最后点击复制代码。
img

进入Keil5,把刚才复制的代码粘贴到主函数之前。build一下发现报了一个警告和一个错误:
img

解决办法:再添加一个头文件#include <INTRINS.H>

现在再build一下,可以看到,0错误,1警告
img
这个警告翻译过来是:未调用段,覆盖过程忽略。
意思是说,主函数中没有调用子函数Delay500ms()

现在在主函数中调用Delay500ms()

void main()
{
	while(1)
	{
		P2 = 0xfe;
		Delay500ms();
		P2 = 0xff;
		Delay500ms();
	}
}

点击build,发现0错误、0警告。
在STC-ISP中,把代码下载到单片机中。重启单片机。

可以看到D1灯在闪烁!

附上完整代码:

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

void Delay500ms()		//@12.000MHz
{
	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();
	}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1677012.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

12.snmp协议监控

snmp协议监控 安装snmp服务器端 yum install net-snmp -y服务器端&#xff1a;配置&#xff08;centos&#xff09; vim /etc/snmp/snmpd.conf com2sec notConfigUser default public view systemview included .1服务器端&#xff1a;配置&#xff0c;瑞数防护系统botgate&…

【保姆级介绍自动化的讲解】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

JavaEE 初阶篇-深入了解网络原理 TCP/IP 协议

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 TCP 协议概述 1.1 TCP 协议格式 2.0 TCP 协议的特性 2.1 确认应答 2.2 超时重传 2.2.1 超时的时间如何确定&#xff1f; 2.3 连接管理 2.3.1 三次握手 2.3.2 四次…

win11配置MongoDB6详情记录

一.电脑配置 如下~ 二.下载MangoDB 1.官网download&#xff1a;Download MongoDB Community Server | MongoDBhttps://www.mongodb.com/try/download/community 2.开始安装 自定义安装位置&#xff01;&#xff01;&#xff01; &#xff08;有一个要不要安装compass的选项&am…

C语言如何在链表中的指定位置插⼊结点?

一、问题 在链表中的指定位置插⼊⼀个结点&#xff0c;要求链表本身必须已按某种规律排好序。如何在链表中的指定位置插⼊新结点&#xff0c;需要掌握怎样找到插⼊的位置以及怎样实现插⼊&#xff1f; 二、解答 由于链表是链式结构的&#xff0c;因此要插⼊⼀个结点&#xff0…

防火墙技术的演进,什么是下一代防火墙(NGFW)?

防火墙技术的演进 防火墙技术的演进经历了不同阶段&#xff0c;从包过滤防火墙到状态检测防火墙&#xff0c;再到集成多种安全功能的UTM&#xff08;统一威胁管理&#xff09;设备&#xff0c;最终发展到具备应用识别能力的NGFW&#xff08;下一代防火墙&#xff09;。 包过滤…

随笔:贝特弹琴

半年前&#xff0c;我买了一架朗朗代言的智能电子琴。所谓智能是指&#xff0c;它配套的手机软件知道你在按哪个键&#xff0c;它还能让任意按键发光。用专业术语说&#xff0c;它的键盘具有输入和输出功能&#xff0c;和软件组合起来是一个完整的计算机系统。 随着软件练习曲…

运维别卷系列 - 云原生监控平台 之 03.prometheus label 实践

文章目录 [toc]label 简介自定义标签relabel_configsregexrelabel_action metric_relabel_configs两者的区别 实践 label 简介 label 对于 Prometheus 来说&#xff0c;属于数据处理的方式&#xff0c;Prometheus 是通过指定的 label 来查询数据 Prometheus 的 target 中实例&…

LeetCode算法题:128. 最长连续序列

给定一个未排序的整数数组 nums &#xff0c;找出数字连续的最长序列&#xff08;不要求序列元素在原数组中连续&#xff09;的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1&#xff1a; 输入&#xff1a;nums [100,4,200,1,3,2] 输出&#xff1a;4 …

pnpm:无法加载文件 C:\Users\PC\AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运行脚本。

使用pnpm命令启动vue时报了个错&#xff1a; 解决起来也简单&#xff0c;右击开始菜单&#xff0c;用管理员身份打开终端。win11的如下图&#xff1a; win10我记得应该是PowerShell&#xff08;管理员&#xff09;&#xff0c;这样的。 打开之后执行命令&#xff1a; set-…

二维数组经典题型---环形数组和蛇形矩阵(Java)

文章目录 前言1.环形数组1.1.题目1.2.题目分析1.3.代码展示1.4.不足 2.[蛇形矩阵](https://ac.nowcoder.com/acm/problem/22231)2.1.题目2.2.题目分析2.3.代码展示 总结 前言 每日一题—第四届上海理工大学程序设计全国挑战赛 —环形数组 1.环形数组 1.1.题目 这道题跟牛客网…

HTML静态网页成品作业(HTML+CSS)——动漫喜羊羊网页设计制作(4个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有4个页面。 二、作品演示 三、代…

​​​【收录 Hello 算法】6.2 哈希冲突

目录 6.2 哈希冲突 6.2.1 链式地址 6.2.2 开放寻址 1. 线性探测 2. 平方探测 3. 多次哈希 6.2.3 编程语言的选择 6.2 哈希冲突 上一节提到&#xff0c;通常情况下哈希函数的输入空间远大于输出空间&#xff0c;因此理论上哈希冲突是不可避免的。比如&a…

2、快速搭建Vue框架以及项目工程

本篇文章详细讲解在配置完vue2环境后如何快速搭建一个Vue框架和项目工程。&#xff08;以智慧农业云平台为例&#xff09; 2.1 Vue工程创建 2.1.1创建想要存放的Vue文件夹 找到想要存放的文件夹并在目录搜索框中&#xff0c;并用管理员的方式打开。 2.1.2创建Vue工程 2、安装…

UStaticMesh几何数据相关(UE5.2)

UStaticMesh相关类图 UStaticMesh的数据构成 UStaticMesh的FStaticMeshSourceModel UStaticMesh的Mesh几何元数据来自于FStaticMeshSourceModel&#xff0c; 一级Lod就存在一个FStaticMeshSourceModel. FStaticMeshSourceModel几何数据大致包含以下几类: Vertex(点), VertexI…

【源码】Spring Data JPA原理解析之Repository的自动注入(一)

Spring Data JPA系列 1、SpringBoot集成JPA及基本使用 2、Spring Data JPA Criteria查询、部分字段查询 3、Spring Data JPA数据批量插入、批量更新真的用对了吗 4、Spring Data JPA的一对一、LazyInitializationException异常、一对多、多对多操作 5、Spring Data JPA自定…

4种现象表明你的血糖控制良好!

如果你出现以下4种现象&#xff0c;恭喜你&#xff0c;说明你的血糖控制的不错&#xff0c;需要继续坚持。 1.饥饿感减少&#xff0c;我们的脏腑能够吸收血液中的糖分了&#xff0c;就用不着饿了。&#xff0c;血液中的糖能够得到充分的利用&#xff0c;血糖自然降下去。 2.体…

找到字符串中所有字母异位词 ---- 滑动窗口

题目链接 题目: 分析: 要找的是在s中和p是异位词的子串, 也就是说子串大小和p相同, 那么就是窗口大小固定的滑动窗口问题可以使用哈希数组来记录每个元素出现的个数, 定义hash1存放p中的各元素个数定义left 0; right 0;进窗口 让right指向的元素进窗口, 即更新hash2中的元素…

vue3自定义指令​(通过指令钩子获得dom和钩子参数)

实现文本框自动获得焦点 Index.vue: <script setup> import { ref, onMounted } from vue import ./index.cssconst vFocus {mounted: (el, binding) > {el.focus()console.log(binding)} }onMounted(() > {}) </script><template><div class&qu…

C#委托以及在事件驱动编程中的使用

C#中的委托&#xff08;Delegate&#xff09;是一种类型&#xff0c;它可以存储对方法的引用&#xff0c;并且可以像其他类型一样传递给方法。委托提供了一种灵活的方式来实现事件处理、回调函数和多播委托等功能。以下是关于C#委托的详细介绍&#xff1a; 定义&#xff1a; …