单片机led灯闪烁实验总结_玩转51单片机(1):点亮led灯

最新更新时间:2022-11-14来源: csdn关键字:单片机  led灯闪烁  51单片机  点亮led灯 手机看文章 扫描二维码
随时随地手机看文章

01

新建工程与点亮LED小灯,LED小灯即发光二极管,它具有单向导电性,对于发光二极管而言,需要根据它的压降与额定电流来选择合适的限流电阻,打开Keil4软件,选择Project,New uVision Project

b8de35828de3e94ef323e1e057abe8a4.png

选定工程的保存路径,并给工程命名,保存类型默认.uvproj,点击保存

bb845ca8b09115821376c14a27a1d93c.png

出现如下对话框,点击下拉按钮,选择STC MCU Database,点击OK

97f59b39f5894b65e0f299accbe5c507.png

选择STC89C52RC,点击OK

32a5443429d4bb9377be5a4d849b30cf.png

选择否

8bc56136f059491891961b2fb39502ce.png

点击New,生成一个Text1文件

37107dc0fcbe7bcdaf65e23a264cf03a.png

点击 File, Save, 出现如下对话框,将文件命名为后缀为.c的文件,默认保存类型,点击保存

0a5da52f9ea577aadf4a7dd7218a0fe5.png

点击Target 1前面的加号,在Source Group 1上右击,选择Add Files to Group'Source Group 1'

0874222f600ddd4f39ecbe3aec8931f9.png

选择刚刚保存的以.c为后缀的文件,点击Add,然后关闭窗口

0659e65634b8473dbc6ff89352b3b44f.png

点击Source Group 1前面的加号,会发现下面多了刚刚添加的.c文件

79ec90f31acb9f45342fdf06e8c5585e.png

在右侧文本框中写入程序

d5b521009228f4cd9f14ab959a61756e.png

点击Target Options按钮

e2ba172f51f481546d0b2687f127351d.png

在Output标签页勾选Create HEX File,点击OK

8aef884a60c2777a9f7640b779dda841.png

点击Rebuild按钮,可以看到最下方Build Output对话框出现已经生成hex文件的信息,以及0个错误,0个警告的信息

5a92a5f0e1eaa4f7b462531be172c475.png

打开STC-ISP软件,选择单片机型号为STC89C52,串口号就是安装了USB转串口驱动之后虚拟的COM口,可在计算机管理-设备管理器-端口中查看

18bd7ba63f0d3a94e95eb0d1206a2040.png

点击打开程序文件,选择工程的存储路径,可以看到工程文件夹下有一个hex文件,打开它

66808f8973ab0ccb53dfcca9d67b16b7.png

点击下载/编程按钮

e192fa5b2c6e5b8524a3aee4c2fd94b3.png

打开单片机开发板的开关,可以看到操作成功提示,LED小灯被成功点亮

a9bb49607fe971230079ea7730ec59c6.png

e4efa4222bb04e38caa0111c46c9fcf0.png

以下是点亮LED小灯的程序

8be4cebedd6b442e11b99cb2314a3442.png

下面是开发板原理图的LED显示电路,由于发光二极管的单向导电性,决定了LED小灯是低电平点亮,因此在main函数中给LED1低电平,就可以点亮小灯;然后利用while(1)进行无限循环,保持LED小灯一直是亮的;sbit是定义特殊功能寄存器的位变量,将P1^0另起名为LED1,以便进行位操作

ac730782486406ce21b97e9474ac7864.png

02

让LED小灯闪烁起来

新建一个工程,写入如下程序,整个新建工程的过程如上

6a96ab391af5fe82dec13f4c316afbb9.png

typedef用于为已有类型创建一个别名,便于后面使用;Delay为延时函数,利用循环结构不断地进行空跑,从而实现延时,这里的延时为粗计算,后文将介绍如何利用定时器进行精确延时;main函数中不断地循环着将8个LED灯全部点亮,延时保持,又将8个LED灯全部熄灭,延时保持的整个过程,以实现在人眼中的闪烁现象;0x00与0xff均为十六进制数,表示为二进制即00000000与11111111

03

LED流水灯

新建一个工程,写入如下程序

88c7335448471f84258eed2b46037d25.png

其中<

04

LED跑马灯

新建一个工程,写入如下程序

6a04e564dfb6b35a9992d5a69463c8ee.png

_crol_()函数包含于intrins.h头文件中,因此程序需要添加#include ,P1=_crol_(P1,1)表示每次将P1循环左移1位,P1由11111110,依次变为11111101,11111011,11110111,11101111,11011111,10111111,01111111,然后重复循环


关键字:单片机  led灯闪烁  51单片机  点亮led灯 编辑:什么鱼 引用地址:单片机led灯闪烁实验总结_玩转51单片机(1):点亮led灯

上一篇:STC89C52单片机学习(一)----点亮LED
下一篇:51单片机知识重点汇总一,学单片机必须要了解的知识。

推荐阅读

极海推出APM32A全系列车规级MCU
极海宣布推出具有高效CPU处理性能、增强型存储空间、以及丰富连接功能的APM32A系列车规级MCU,以有效满足汽车电子多样化通信与车身控制应用开发需求,可广泛应用于车身控制、安全系统、信息娱乐系统、动力系统等车用场景。APM32A系列车规级MCU,拥有APM32A407、APM32A103、APM32A091三大产品线,共计6款产品,覆盖Arm®Cortex®-M0+/M3/M4内核, 进一步扩展了极海车规级MCU产品阵容。全系列新品已通过AEC-Q100 Grade1/Grade2车规认证,工作温度覆盖-40℃~125℃,符合车用芯片高可靠性、高工作温度范围等要求,有助于客户实现更稳定可靠的产品。在汽车“四化”趋势影响下,下一代汽
发表于 2023-02-02
极海推出APM32A全系列车规级<font color='red'>MCU</font>
恩智浦MCX系列MCU专为边缘AI普及而生
随着构成物联网 (IoT) 的连接节点数量每天都在增长,人们普遍认为机器学习 (ML) 推理的执行方式必须改变。对实时响应的需求意味着费力地来回传输数据只会花费太长时间,而需要在更短的时间内做出决策。另一个考虑因素是安全性,因为这种安排会增加网络攻击的风险。因此,物联网节点传感器获取的大部分数据将需要在源头进行处理,而不是在云端或集中式数据中心站点完成所有工作。通过这种方法,可以提供安全、低延迟的操作。通过更智能的边缘,系统将有可能对不断变化的情况做出更快的反应,例如,在有严重成本影响或安全关键的情况下,以及允许更好的用户体验而不会产生任何烦人的滞后。 能够访问基于边缘的 ML 推理将有利于广泛的应用场景。 其中包括工厂自动化、机器
发表于 2023-02-02
一文熟悉车规MCUMCU在智能电动汽车产业的应用
一辆传统燃油车需要大约500到600颗芯片,轻混汽车大约需要1000颗,插电混动和纯电动汽车则需要至少2000颗芯片。这意味着,随着智能电动汽车的飞速发展,不但先进制程的芯片需求量越来越大,传统芯片的需求量也将继续提升。MCU就是这样,除了单车搭载的数量在不断增长,域控制器也带来了对高安全、高可靠、高算力MCU的新需求增长。MCU,Microcontroller Unit,中文称单片微型计算机/微控制器/单片机,将CPU、存储器、外围功能整合在单一芯片上,形成具有控制功能的芯片级计算机,主要用于实现信号处理和控制,是智能控制系统的核心。MCU与我们的生活工作息息相关,如汽车电子、工业、计算机与网络、消费电子、家电、物联网等,其中汽车
发表于 2023-02-02
一文熟悉车规<font color='red'>MCU</font>,<font color='red'>MCU</font>在智能电动汽车产业的应用
单片机工作电压5V的来历
5V来自于TTL电平。5为True,0为False,之后用了压降更低的PN节,衍生出了3.3这个电平。 12V和24V来自于汽车电瓶,早年乘用车又12V和24V两个系统,现在一般小型车12V,商用车24V,再究其由来应该是铅酸电池。所以3.3V和5V一般出现在信号电路或者单片机等VCC供电,而12V/24V一般出现在低压动力电,例如主板、显卡、轴流风机、监控器。硬件决定系统基础,如果锂电池早点应用的话估计还会有3.7/7.4这个系统。为什么很多单片机的工作电压是5v?因为大多数芯片都是5V的TTL电平,要做到电平兼容,电平匹配,避免要电平转换操作,所有很多单片机的工作电压都是5V。早期(196x)的晶体管电路(TTL)单管的压降是0
发表于 2023-02-02
谈谈单片机编程思想——状态机
玩单片机还可以,各个外设也都会驱动,但是如果让你完整的写一套代码时,却无逻辑与框架可言。这说明编程还处于比较低的水平,你需要学会一种好的编程框架或者一种编程思想!比如模块化编程、状态机编程、分层思想等本文来说一下状态机编程。什么是状态机?状态机(state machine)有5个要素:状态(state)迁移(transition)事件(event)动作(action)条件(guard)状态:一个系统在某一时刻所存在的稳定的工作情况,系统在整个工作周期中可能有多个状态。例如一部电动机共有正转、反转、停转这 3 种状态。一个状态机需要在状态集合中选取一个状态作为初始状态。迁移:系统从一个状态转移到另一个状态的过程称作迁移,迁移不是自动发
发表于 2023-02-02
单片机程序又跑飞?! 三种跑飞现象分析
在编写单片机程序的时候,由于中断服务程序写的不好,导致单片机程序总是跑飞,最后费了好长时间,花了很大功夫才找到问题原因,由此总结了单片机程序跑飞的三种现象、原因及解决方法。1 数组越界/溢出现象:单片机程序在函数中运行时,总是在运行到函数末尾,要跳出函数时,程序跑飞。原因:数组越界(数组溢出),函数中定义的数组元素的个数小于程序中实际使用的数组元素的个数,例如在函数中定义了一个数组ucDataBuff[10],这个数组只有10个元素,但是在函数中却有这样的语句ucDataBuff[10]=0x1a,这个语句是给数组的第11个元素赋值,:由于定义的数组只有10个元素,从而导致赋值语句中不知道把0x1a放到什么地方,从而导致程序跑飞。解
发表于 2023-02-02
小广播
设计资源 培训 开发板 精华推荐

何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved