产品概述

51单片机闪烁灯 灯闪烁程序,51单片机

小编 2024-11-25 产品概述 23 0

灯闪烁程序,51单片机

#记录我的9月生活#​

首先先写上这么一段话,这句话的作用是让程序知道他下面写的是要给51单片机的程序,其他型号的就不一定能适用。

要怎么看你是什么型号的呢,单片机上有写。

STC好像是这种单片机是针脚式的意思,你看图片上,单片机上的每一个引脚都很长。

旁边的89C51RC是它的型号,烧录程序的时候一定要找到对应的型号。

另外51跟52的程序好像是适用的,也就是说你在include里面写成reg51.h,也能烧录进52型号的单片机里面。

然后下一行是定义了一个叫S1的东西,把P1.0端口的值赋给S1,=是赋值的意思。后面就用S1的值来修改P1.0的值。

这一段给了一个延时函数,void后面跟的是函数名。unsigned是没有符号的意思,从0开始往上数,int表示两个字节,一个字节是2的8次方,256,两个字节就是65536。i是定义的变量,也就是定义的i的取值范围为0到65535,因为是从0开始数,所以65536要减去一个1。

下面还定义了一个k,对于这个k,k刚开始等于0,只要k小于delay里面i的值,k就会一直自己加自己,直到加到k等于i。

这一段是主函数,main是主要的意思,一个函数里面只有一个主函数。

while是循环的意思,里面的1是经判断永远为真,也就是直接执行循环的内容。

如果发光二极管正极,接电源正极,负极接单片机P1.0引脚,那么当S1=0时,灯亮。当S1=1时,灯灭。因为只有当二极管正极是高电平,负极是低电平时才会亮,其他情况都不亮。

delay里面的数字是i的值,可以修改,不超过65535就能用,可以发现数字越大,发光和熄灭的时间就越长。

这是实物效果,图片不是很能拍出灯闪烁的效果,大概就是这样。

也有同学告诉我,延时函数里面不用k,用while(i--)。我也不知道为什么能这样。有懂的老师,可以解释一下。

最后,还是要提醒一下,写程序一定要在英文输入法下写,中文它不认。还要注意书上的程序有没有分号,以及该大写的你有没有大写。

最最后,才疏学浅,可能有讲的不对的地方,还请各位老师同学指正。

电子仿真:51单片机实现LED灯闪烁

昨天看到一篇关于今日头条CEO张一鸣的访谈,其中谈到他的大学专业,张总最开始也是学电子的,但由于不能广泛的接触电子产品,更不能进行开创性实验,因而最终转学软件。喜欢电子小伙伴的确实面临着一个这样的困境,不能很好的把自己想法以实物的方式展现出来。除了购买电子元器件之外,不知道你们都是怎么解决这个问题的?

电子仿真软件:Proteus

笔者认为对于没有条件的小伙伴,最好的办法是用电子仿真软件来模拟实验。

需要软件的小伙伴可以私信笔者“Proteus”来获取 ,里面不仅有官方正版的软件、安装教程、汉化补丁、还有关于此软件的详细使用教程,如下图所示。至于Proteus到底是一个可以干什么的软件,现在不做解释,请往下看实验现象。

物料清单

笔者所选的是一个最基础、简单的单片机例子,需要的电子元器件自然不多,总共6种,清单如下

单片机89C51一个

电容3个

电阻两个

12M晶振一个

黄色LED灯一个

原理图

电路原理图如下,除了LED灯之外,其余的组成了单片机的最小系统,分别为晶振电路和复位电路,这个不需要我们去深究,因为它是单片机官方提前设计好的。LED灯的阳极接电源,当我们单片机P1.0输出高电平的时候,因为LED之间没有压差,所以此时LED灯是熄灭的;只有当P1.0输出低电平的时候,LED灯才可以被点亮。

程序

#include <reg52.h> //头文件

//Author:爱上半导体

//Date:2018年4月2日

#define uchar unsigned char //宏定义

#define uint unsigned int //宏定义

sbit LED = P1^0; //把P1.0赋值给LED

void main()

{

while(1)

{

LED = ~LED; //LED取反

DelayMS(150); //延时

}

}

程序烧录

程序是用Keil编写的,完成之后需要生成hex格式的文件,然后打开Proteus,双击单片机,之后出现如下界面,然后点击Program File后面的文件夹,选择我们刚才生成的hex文件,至此大功告成。

实验现象

实验现象如下视频所示,LED灯以3.3Hz的频率闪烁。

视频加载中...

源文件

为了让小伙伴们更好的学到电子知识,关于此次实验的电路图仿真源文件和程序源文件,笔者已经给大家打包,需要的私信“LED”便可获取。

如果不想用软件仿真,也可以购买51单片机开发板,这时候可能又要说我加广告了,笔者通过比较全网的单片机,最后选出了一款“普众科技”的51单片机开发板,在同等价位上,这款开发板的外设最多,之所以如此廉价,并不是它的质量不行,而是因为他家的单片机出货量最大,只有这样才能压缩成本,把价格压下去!有兴趣需要的小伙伴可以考虑一下。

#pgc-card .pgc-card-href { text-decoration: none; outline: none; display: block; width: 100%; height: 100%; } #pgc-card .pgc-card-href:hover { text-decoration: none; } /*pc 样式*/ .pgc-card { box-sizing: border-box; height: 164px; border: 1px solid #e8e8e8; position: relative; padding: 20px 94px 12px 180px; overflow: hidden; } .pgc-card::after { content: " "; display: block; border-left: 1px solid #e8e8e8; height: 120px; position: absolute; right: 76px; top: 20px; } .pgc-cover { position: absolute; width: 162px; height: 162px; top: 0; left: 0; background-size: cover; } .pgc-content { overflow: hidden; position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .pgc-content-title { font-size: 18px; color: #222; line-height: 1; font-weight: bold; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .pgc-content-desc { font-size: 14px; color: #444; overflow: hidden; text-overflow: ellipsis; padding-top: 9px; overflow: hidden; line-height: 1.2em; display: -webkit-inline-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .pgc-content-price { font-size: 22px; color: #f85959; padding-top: 18px; line-height: 1em; } .pgc-card-buy { width: 75px; position: absolute; right: 0; top: 50px; color: #406599; font-size: 14px; text-align: center; } .pgc-buy-text { padding-top: 10px; } .pgc-icon-buy { height: 23px; width: 20px; display: inline-block; background: url(https://lf6-cdn-tos.bytescm.com/obj/cdn-static-resource/pgc/v2/pgc_tpl/static/image/commodity_buy_f2b4d1a.png); } 普中科技 51单片机开发板 51单片机学习板 AVR ARM STM32 实验板 ¥121 购买

相关问答

51单片机 一个LED 灯闪烁 电路图原理-ZOL问答

3条回答:【推荐答案】图上是用R1、C3构成的复位电路,文字说明有点问题。。文字说明中的R2对应图上的R1,文中的C1对应图上的C3,文字说明没什么问题,主要是和图不是...

51单片机 烧录程序的时候为什么单片机一直闪不能烧录?

单片机一直闪烁而无法烧录的原因可能有几种可能性。首先,检查烧录器和单片机之间的连接是否正确,确保接线没有松动或接触不良。其次,确认所使用的烧录软件和...

单片机 控制的led 灯闪烁 适用什么场合 - 187****9709 的回答 -...

信号灯,电子玩具。充电装置这个在一些节日彩灯或者广告牌上用的比较多

单片机 如何控制一个LED 灯闪烁 频率不断加快?

暂时想到两种解决方案:1.最简方案——利用延时函数:进入主函数后,初始化LED,设置一个延时初始值,然后进入while循环,里边只做四件事,打开LED,利用键盘返回...

单片机 灯光交替 闪烁 的原理?

这是一个简单的震荡电路,由散件组成,可以使两个LED交替闪烁。两个电容C1、C2轮流充放电,是关键。1、Q1导通时C1放电,LED1亮。此时C2充电。2、Q2导通时C2放...

单片机 外部中断控制led 灯闪烁 怎么插线?

单片机外部中断控制led灯闪烁插线的方法:51单片机的IO口接按键,实现外部触发(外部中断,高低电平,上下降沿),触发后再通过IO控制LED的开关即可。单片机外部中...

怎么让 单片机 流水灯每秒10次?

要让单片机流水灯每秒10次闪烁,可以通过以下步骤来实现:1.设置计时器的定时周期为每秒100毫秒(即10次闪烁)。2.在中断服务程序中,设定一个计数器,初始值...

单片机 在proteus上仿真时四位数码管显示时不停 闪烁 移动,这是为什么?

显然从你的图上看,你用的是动态显示,动态显示是每位的显示时间在1-2ms,如果你的时间大于此值就会出现闪烁。如果你的显示间隔时间没问题,那请不要纠结此事,...

mcs 51 就是8351吗?

一、工艺不同1、MCS51单片机:采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计...

单片机 矩阵led灯原理?

原理就是用51单片机的一个引脚同时驱动两只LED,并在这个引脚上输出0.5赫兹以上的方波,就可以让发光管产生交替闪烁效果原理就是用51单片机的一个引脚同时驱动...

猜你喜欢