51单片机——LED基础

news2024/11/23 15:37:46

  从小就对电器元件比较感兴趣吧,经常拿坏的电器里面的芯片拆下来玩,甚至那些没坏的电器,比如我家的电视,也会希望它能坏掉,我好去看看里面是什么样子的,为什么能播放节目……,所以我第一眼看到51单片机的时候,更多的是兴奋。

        但是在学习的时候,遇到了许多的困难和问题,在此记录一下,看看能不能帮到需要的人。首先就是关于软件的,相比于其他语言的集成编译环境的安装,我觉得Keil5的安装更为困难,并且需要破解使用,并且需要选择合适的型号,一旦选错,代码就不能运行,还要在每个项目编写的时候勾选生成hex文件;还有安装CH341SER串口,安装好了好久都没能成功,后来发现是数据线的问题,在更换了几根数据线的情况下终于成功了,所以以后遇到类似的情况,可以选择换数据线;还有stc-isp-v6.88R烧录软件,同样需要选择型号,选错了同样不能找到单片机,自然不能成功烧录,并且每次烧录的时候要重启一下单片机(冷启动),才能烧录成功。还有一个就是关于芯片的问题,之前乱玩的时候,不小心把芯片接反了,导致芯片烧坏,还是自己重新买了一块芯片安装上去,才恢复正常,所以一定要注意正反。

        我使用的的芯片型号是STC89C52RC,在Keil里创建项目的时候可以选择AT89C51RC2,如图所示:

        之后是头文件,可以选择这个,如图所示。

#include <REGX52.H>
void main(){
	while(1){
		
	}
}

         接下来是Keil软件,选择这个勾选生成hex文件,如图所示:

        最后是stc-isp-v6.88R烧录软件,选择STM89C52RC这个型号就行:

        关于51单片机的前期准备差不多就是这些,下载软件就不在此处介绍,希望我能一直保持热爱吧!

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

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

#include <REGX52.H>
void main(){
	P2 = 0xFE;//1111 1110
}

运行结果如下所示:

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

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

#include <INTRINS.H>//就是这个哦

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

#include <STC89C5xRC.H>
#include <INTRINS.H>


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);
	}
}

  

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

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

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

相关文章

阿里云-解决EDAS创建应用文件过大无法上传部署问题

文章目录1、背景2、问题具体描述3、解决方案3.1、 2种方案3.2 、OSS 简介3.3、 OSS 功能特性4、 OSS 实操4.1、 上传程序文件4.2、 创建应用1、背景 在一次使用阿里云-EDAS发布应用服务过程中出现EDAS 上传应用包过大无法上传现象。 2、问题具体描述 最近在使用阿里云-EDAS发…

1.1.2续 特殊二极管部分选型

目录 1.稳压管 2.发光二极管 4.光电二极管 5.整流二极管 1.稳压管 利用二极管的反向击穿特性制成的&#xff0c;在电路中其两端的电压保持基本不变&#xff0c;起到稳定电压的作用 Vz 稳定电压&#xff1a;反向击穿后稳定工作的电压 Iz 稳定电流&#xff1a;工作电压等于…

Java异常情况了解

作者&#xff1a;爱塔居的博客_CSDN博客-JavaSE,数据结构领域博主 专栏&#xff1a;JavaSE 作者介绍&#xff1a;大三学生&#xff0c;希望一起进步~ 文章目录 目录 文章目录 一、异常结构体系 二、异常分类 三、异常处理 3.1异常抛出 3.2 异常捕获 四.【面试题】 五、题目练习…

大数据必学Java基础(一百一十九):Maven仓库与JDK的配置

文章目录 Maven仓库与JDK的配置 一、Maven仓库 二、JDK的配置 Maven仓库与JDK的配置 一、Maven仓库 Maven仓库是基于简单文件系统存储的,集中化管理Java API资源(构件)的一个服务。 仓库中的任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存储路…

Linux:gcc工具

文章目录一.程序的翻译二.gcc工具的使用2.1gcc 文件名(直接编译)2.2gcc -o 自定义 原文件(自定义生成可执行程序名称)2.3./可执行文件2.4gcc -E(程序运行到预处理后结束)2.5gcc -S(程序运行到编译之后结束)2.6gcc -i(程序运行到汇编之后结束)2.7小结三.链接的过程3.1ldd命令3.2…

2023年最新谷歌Google帐号Gmail邮箱账号怎么注册成功的方法与教程?

因为工作、游戏或其他需求&#xff0c;有时需要使用谷歌Google帐号或Gmail邮箱账号。首先明确&#xff1a;谷歌google帐号不一定是Gmail邮箱帐号&#xff0c;但是Gmail邮箱账号一定是谷歌帐号。所以&#xff0c;大家注册Google谷歌帐号时默认为谷歌Gmail邮箱帐号就可以满足谷歌…

Linux基础命令,常用操作

Linux基础命令Linux的目录结构ls命令(list)隐藏文件、文件夹pwd命令(print work directory)cd命令(change directory)HOME目录相对路径、绝对路径特殊路径符mkdir命令(make directory)touch命令(touch)cat命令more命令cp命令mv命令rm命令(remove)which命令find命令grep命令wc命…

私有云建设,ALLINONE还是分层自主建设优化?

新钛云服已累计为您分享720篇技术干货私有云建设有两种思路&#xff0c;一种是使用整合解决方案&#xff0c;即ALLINONE的思路。一种是将私有云分层每层自主建设&#xff0c;使用不同的产品和解决方案分层优化组合使用。两种思路各有优缺点&#xff0c;适合不同的场景。一、ALL…

Mybatis-plus(上)

1.什么是mybatis-plus升级版的mybatis&#xff0c;目的是让mybatis更易于使用&#xff0c; 用官方的话说“为简化而生”官网&#xff1a;https://baomidou.com/初体验按照官网中的快速开始即可1.准备数据库脚本数据库 Schema 脚本如下&#xff1a; DROP TABLE IF EXISTS user; …

javaWeb RequestResponse

Request Request 继承体系 Tomcat解析请求数据&#xff0c;封装为request对象&#xff0c;并且创建request对象传递到service方法中 。Java提供了接口&#xff0c;tomcat的RequestFacade提供了实现。 Request 获取请求数据 请求数据分为3部分&#xff1a; 请求行&#xff…

一台手机即可完成 3D 建模,功能有多强大? #Luma AI

AIGC 的出现拓展了内容生产的诸多可能&#xff0c;借助 AI 技术来进行 3D 建模&#xff0c;可以节省不少的时间&#xff0c;市面上也出现了许多功能强大的 3D 建模工具。1 月 9 日&#xff0c;AppStore 上架了一款名为“Luma AI”的软件&#xff0c;能够将现实中的 2D 照片快速…

通过Terraform创建GCP Pubsub

1 简介 Terraform是管理许多平台的基础设施的工具&#xff0c;如AWS、GCP和Azure。这篇文章将讲解如何通过Terraform来管理GCP Pub/Sub。 创建GCP项目请参考&#xff1a;初始化一个GCP项目并用gcloud访问操作 2 Terraform创建Pub/Sub 2.1 下载Terraform插件 我们需要安装G…

【Blende UV映射01】创建UV 使用UV贴图处理纹理

写在前面 这是进行云渲染的最后一步&#xff0c;实践&#xff01;&#xff01; 会跟着这个Blender 2.8 UV Mapping教程快速学习一边UV映射的东西&#xff0c;已经是最最最最基础的了。 本文是教程的P1-P7的过程记录。 1 UV映射 拿一个3D物体&#xff0c;怎么去切割它&…

1301. C 循环(扩展欧几里得算法)

题目如下&#xff1a; 思路 or 题解: 抽象出数学公式&#xff1a; ak∗c≡b(mod1<<k)a k * c \equiv b (mod\ 1 << k)ak∗c≡b(mod 1<<k) 等价&#xff1a; x∗c−y∗(1<<k)b−ax * c - y * (1 << k) b - ax∗c−y∗(1<<k)b−a 用扩展欧…

[Python逆向] 逆向Pyinstaller打包的exe文件源码及保护

Python逆向Pyinstaller打包的exe文件源码及保护 写在前面 我们都知道可以使用Pyinstaller库可将.py文件编译成.exe文件运行&#xff0c;这篇文章我们就从将脚本编译成.exe并将.exe的源码内容反编译出源文件&#xff0c;再顺便谈谈如何防止被逆向。 环境工具 Python 3.6&#x…

(一)MicroPython——WIFI点灯

目录 学习目标 成果展示 硬件知识 代码 总结 学习目标 成果展示 预备知识 代码 总结 学习目标 我们今天来学习有关MicroPython的知识点&#xff0c;相比于用C语言来开发&#xff0c;MicroPython有许多的优点&#xff0c;比如可以交互&#xff0c;有大量的库可以调…

Allegro如何把快速BUS组高亮成不同颜色操作指导

Allegro如何把快速BUS组高亮成不同颜色操作指导 在做PCB设计的时候,会需要把BUS组高亮成不同颜色,方便评估与布线,Allegro支持快速把BUS高亮成不同的颜色,如下图 具体操作如下 打开颜色管理器出现颜色管理器

1576_AURIX_TC275_MTU控制与状态寄存器

全部学习汇总&#xff1a; GreyZhang/g_TC275: happy hacking for TC275! (github.com) 在这一页之前&#xff0c;连续有好几个寄存器都是预留的&#xff0c;因此可以直接跳过。访问使能寄存器的功能&#xff0c;从描述看其实是非常熟悉的&#xff0c;因为这个描述的模板可以从…

Java多线程:线程通信:生产者 和 消费者 || 顺序打印

Java多线程&#xff1a;线程通信&#xff1a;生产者 和 消费者 || 顺序打印 每博一文案 靠谱&#xff0c;是最高级的聪明&#xff1a;师父说&#xff1a;人生一回&#xff0c;道义一场。你对人对事的态度&#xff0c;藏着你一生的福报。 千金难买好人缘&#xff0c;人活的就是…

Android编译Skia库

Android编译Skia库 本文档提供两种方法编译Skia库 使用aosp源码进行编译使用skia源码进行编译 两种编译方法都可以编译,并且都可以使用在多个平台中,且可以使用在不同Android版本中 使用aosp源码编译 第一步是拿到aosp的源码.因为写这篇教程,使用的是msm8996的源码,因此,我…