嵌入式开发学习(STC51-3-点亮led)

news2024/10/7 18:20:14

内容

点亮第一个led;
led闪烁;
led流水灯;

led简介

led即发光二极管,它具有单向导电性,通过5mA左右电流即可发光,电流越大,其亮度越强,但若电流过大,会烧毁二极管,一般我们控制在3mA-20mA之间,通常我们会在led管脚上串联一个电阻,目的就是为了限制通过发光二极管的电流不要太大,因此这些电阻又可以称为“限流电阻”;
发光二极管正极又称阳极,负极又称阴极,电流只能从阳极流向阴极;直插式发光二极管长脚为阳极,短脚为阴极;
贴片式发光二极管正面的一端有彩色标记,通常有标记的一端为阴极;

原理图

线路连接
在这里插入图片描述
由线路连接图可知,led灯D1-8连接P20-27口,且阳极管脚接电源VCC,要让led发光,只需使对应阴极口为低电平就行;

点亮第一个led

思路

第一个led阴极对应P20口,只需要让P20口为低电平就行;

编码

main.c

/*
 * @Description: 点亮第一个led(led2-8同理)
 */
#include "reg52.h"

sbit LED1 = P2 ^ 0; // 表示p2.0管脚设置为led1

void main()
{
	LED1 = 0; // 把p2.0电位设置为0(低电位),即灯亮
	while (1)
	{
		// 无限循环,使程序一直运行
	}
}

编译和结果

按F7编译,无错误,生成.hex文件,使用pz-isp将hex文件下载到单片机

结果如图
在这里插入图片描述
第一个led灯亮

led闪烁

思路

  • 要实现led闪烁,只需循环让D1指示灯先亮一会后熄灭;
  • 这里就有一个延时问题,如何来产生延时呢?因为单片机执行每条代码指令都是需要时间的,所以我们可以编写一个循环函数,让cpu不干其它事,专门在那循环运行即可实现延时功能;
  • 依据人的肉眼余晖效应,延时时间不能太短,否则就无法观察到led闪烁;

编码

main.c

/*
 * @Description: led闪烁
 */
#include "reg52.h"

typedef unsigned int u16; // 对系统默认数据类型进行重定义
typedef unsigned char u8;

sbit LED1 = P2 ^ 0; // 表示p2.0管脚设置为led1

/**
 * @description: 延时函数(循环一次大约10us)
 * @param {u16} ten_us
 * @return {*}
 */
void delay_10us(u16 ten_us)
{
	while (ten_us--)
		;
}

void main()
{
	while (1)
	{
		LED1 = 0;		   // 点亮
		delay_10us(50000); // 大约延时450ms
		LED1 = 1;		   // 熄灭
		delay_10us(50000);
	}
}

编译和结果

按F7编译,无错误,生成.hex文件,使用pz-isp将hex文件下载到单片机

结果:
第一个led灯持续闪烁

led流水灯

思路

  • 实现led流水灯,只需循环让D1-D8指示灯逐个点亮即可;
  • 点亮D1(其他不亮),延时一段时间后再点亮D2,延时一段时间后再点亮D3,如此循环,就可以很简单的实现LED流水灯的效果;
  • 我们只需通过移位,使变量LED循环代表P20-27管脚,即可依次点亮led灯;

编码

main.c

/*
 * @Description: led流水灯
 */
#include "reg52.h"
#include "intrins.h" //_crol_或_cror_函数依赖

typedef unsigned int u16; // 对系统默认数据类型进行重定义
typedef unsigned char u8;

#define LED_PORT P2 // 使用宏定义P2端口

/**
 * @description: 延时函数(循环一次大约10us)
 * @param {u16} ten_us
 * @return {*}
 */
void delay_10us(u16 ten_us)
{
	while (ten_us--)
		;
}

void main()
{
	u8 i = 0;

	LED_PORT = ~0x01; // 0x01即p20,对其取反即置低电平,点亮led
	delay_10us(50000);
	while (1)
	{
		// 方法1:使用移位+循环实现流水灯
		for (i = 0; i < 8; i++)
		{
			LED_PORT = ~(0x01 << i); // 将1右移i位,然后取反将结果赋值到LED_PORT
			delay_10us(50000);
		}

		// 方法2:使用循环+_crol_或_cror_函数实现流水灯
		// for (i = 0; i < 7; i++) // 左移一位
		// {
		// 	LED_PORT = _crol_(LED_PORT, 1);
		// 	delay_10us(50000);
		// }
		// for (i = 0; i < 7; i++) // 右移一位
		// {
		// 	LED_PORT = _cror_(LED_PORT, 1);
		// 	delay_10us(50000);
		// }
	}
}

编译和结果

按F7编译,无错误,生成.hex文件,使用pz-isp将hex文件下载到单片机

结果:
led灯依次点亮,关闭

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

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

相关文章

Matplotlib引领数据图表绘制

Matplotlib引领数据图表绘制 前言图像得组成画图设置 figure设置标题设置坐标轴设置 label 和 legend添加注释使用子图中文乱码解决保存图形显示图形条形图直方图散点图饼状图 总结 前言 在数据科学领域&#xff0c;数据可视化是一种强大的工具&#xff0c;能够将复杂的数据转…

Redis单机,主从,哨兵,集群四大模式

Redis 单机模式 Redis 单机模式是指 Redis 数据库在单个服务器上以独立的、单一的进程运行的模式。在这种模式下&#xff0c;Redis 不涉及数据分片或集群配置&#xff0c;所有的数据和操作都在一个实例中进行。以下是关于 Redis 单机模式的详细介绍&#xff1a; 单一实例&#…

数据连接,图文档与BOM数据紧密相连

在现代制造业的产品开发和生产过程中&#xff0c;图文档和BOM数据是不可或缺的重要信息。图文档记录了产品的设计和工程数据&#xff0c;而BOM数据明确了产品所需物料的清单和规格。然而&#xff0c;由于图文档和BOM数据分属不同的系统&#xff0c;数据之间的连接和共享往往成为…

赢在起跑线:美国计算机读研规划攻略

以下是一个去美国学计算机的读研规划&#xff0c;供您参考&#xff1a;01 基础准备 学术准备&#xff1a;在本科阶段&#xff0c;您需要确保已经掌握了计算机科学的基本知识和技能&#xff0c;包括计算机体系结构、编程语言、数据结构和算法等。同时&#xff0c;建议您参与一…

[学习笔记]微信小程序全套开发流程(ing)

https://www.bilibili.com/video/BV1mV4y1o7fu 1.整体概述 2.环境搭建 略 4.纯净版项目 5.快速入门 5.1组件(类似HTML标签) wxml中的标签html中的标签textspanviewdivimageimgiconnavigatora view组件 <view><view class"c0">学生&#xff1a;<…

怎样理解黑盒测试和白盒测试?二者有什么关系

按照使用的测试技术可以将软件测试分为黑盒测试与白盒测试。 &#xff08;1&#xff09;黑盒测试 黑盒测试就是把软件(程序)当作一个有输入与输出的黑匣子&#xff0c;它把程序当作一个输入域到输出域的映射&#xff0c;只要输入的数据能输出预期的结果即可&#xff0c;不必关…

吉利科技携手企企通,打造集团化数智供应链系统

近日&#xff0c;吉利科技集团有限公司&#xff08;以下简称“吉利科技”&#xff09;联合企企通成功召开SRM采购供应链管理项目启动会。企企通与吉利科技高层、项目负责人与团队成员出席此次启动会。 双方将携手在企业供应商全生命周期管理、采购全流程、电子招投标、采购分析…

打造本地户外装备小程序商城教程大揭秘

在如今的移动互联网时代&#xff0c;小程序已经成为了各行各业的发展利器。尤其对于户外用具行业来说&#xff0c;一个专属的小程序商城将能够极大地提升企业的品牌形象和销售业绩。下面就来介绍一下快速上手制作户外用具小程序的攻略吧。 首先&#xff0c;登录乔拓云平台进入商…

TDengine + Telegraf + Grafana 实现图形化服务器状态监控

TDengine Telegraf Grafana 实现图形化服务器状态监控 技术栈环境搭建安装tdenginue下载安装包解压文件运行安装文件启动td运行 taosAdapter 安装Telegraf添加yum源安装生成配置文件修改配置文件启动telegraf 安装Grafana直接yum安装安装td数据源配置启动Grafana配置数据源导…

2021年12月 Python(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

一、单选题(共25题,每题2分,共50分) 第1题 昨天的温度是5摄氏度,今天降温7摄氏度,今天的温度是多少摄氏度? A:12 B:7 C:2 D:-2 正确的答案是 D:-2。 解析: 根据题目描述,昨天的温度是 5 摄氏度,今天降温了 7 摄氏度。降温意味着温度变低,所以今天的温度…

嵌入式开发实用工具——QFSViewer

嵌入式开发实用工具——QFSViewer 介绍 今天给大家推荐个我个人业余时间开发的一个嵌入式开发实用工具——QFSViewer&#xff0c;这个工具主要是用来加载查看各种嵌入式常用的文件系统映像&#xff0c;目前支持JFSS2、Fat32、Fat16、Fat12、exFat、Ext2、Ext3、Ext4等文件系统…

性能测试之性能测试指标详解(详细)

前言 刚开始&#xff0c;以为做性能测试&#xff0c;就是做些脚本、参数化、关联&#xff0c;压起来之后&#xff0c;再扔出一个结果。 但实际上不止这些内容&#xff0c;还要加上性能分析&#xff0c;关注调优之后响应时间有多大的提升&#xff0c;TPS 有多大的提高&#xf…

区块链学习6-长安链部署:如何创建特定共识节点数和同步节点数的链

正常prepare的时候只支持4 7 13 16个节点个数&#xff0c;想要创建10个节点&#xff0c;其中5个是共识节点&#xff0c;如何实现&#xff1f; 1. 注释掉prepare.sh的这几行&#xff1a; 2. 修改 crytogen的模板文件&#xff1a; 如果是cert模式&#xff1a;chainmaker-crypt…

CTF流量题解tcp1

用流量工具进行分析。发现消息长度有点异常。右键TCP跟踪。 ....mos.-mos-.-.mos-.-mos..-.mos..-mos-. 摩斯密码生成-网页工具 (adminun.com)

LeetCode刷题笔试(一起来算法打卡吧!!!)

文章目录 力扣刷题笔记&#xff08;每日更新~&#xff09;一、什么是时间复杂度&#xff1f;二、什么是递归&#xff1f;三、刷题记录leetcode 70-爬楼梯剑指offer 10-斐波那契数列 四、参考地址 力扣刷题笔记&#xff08;每日更新~&#xff09; 提示&#xff1a;这里可以添加…

PY32F003 FLASH

了解py32芯片的flash内容&#xff0c;对于py32进行api升级有更好的了解的操作 //uiOffset 0(4MHz), 1(8MHz), 2(16MHz), 3(22.12MHz), 4(24MHz) void SetFlashParameter(uint32_t uiOffset) {WRITE_REG(FLASH->KEYR, FLASH_KEY1);WRITE_REG(FLASH->KEYR, FLASH_KEY2); …

Android Studio翻译插件

进入File->Settings->Plugins界面&#xff0c;搜索Translation&#xff0c;选择这个 重启AS后&#xff0c;选中目标单词右键点击Translate即可&#xff1a;

MYSQL06高级_为什么使用索引、优缺点、索引的设计、方案、聚簇索引、联合索引、注意事项

文章目录 ①. 为什么使用索引②. 索引及其优缺点③. InnoDb - 索引的设计④. InnoDb中的索引方案⑤. 索引 - 聚簇索引⑥. 索引 - 二级索引⑦. B树索引的注意事项⑧. MyISAM中索引方案 ①. 为什么使用索引 ①. 索引是存储引擎用于快速找到数据记录的一种数据结构,就好比去图书馆…

pytest测试框架之mark标记功能详细介绍

mark标记 ​ 在实际工作中&#xff0c;我们要写的自动化用例会比较多&#xff0c;也不会都放在一个py文件中&#xff0c;如果有几十个py文件&#xff0c;上百个方法&#xff0c;而我们只想运行当中部分的用例时怎么办&#xff1f; ​ pytest提供了一个非常好用的mark功能&…

机械厂工厂360全景展示拍摄制作,以便随时随地进行展示和更新

随着5G互联网技术的不断发展&#xff0c;线上全景虚拟展示已经成为了一种重要的展示方式。在工业领域中&#xff0c;厂区线上全景虚拟展示的应用也越来越广泛。 厂区线上vr全景虚拟展示是VR全景制作公司公司借助VR全景和web3d开发技术把企业的环境、研发、生产、产品、质检、仓…