历史上的今天
返回首页

历史上的今天

今天是:2025年02月01日(星期六)

2021年02月01日 | 51单片机入门led闪烁程序

2021-02-01 来源:eefocus

简介:51单片机入门led闪烁程序 这一节简单讲下proteus仿真软件的使用,关键在于需要的元器件的代号,比如电阻是resistor,电容是capacitor等等,不过不用刻意去记,用得多了自然就记住了,碰到新的元器件就网上查找。 上图中的例子是单片机的最小系统以及LED灯,......


这一节简单讲下proteus仿真软件的使用,关键在于需要的元器件的代号,比如电阻是resistor,电容是capacitor等等,不过不用刻意去记,用得多了自然就记住了,碰到新的元器件就网上查找。

上图中的例子是单片机的最小系统以及LED灯,左侧栏里显示了这一原理图的元器件列表,如果要添加某元器件,那么就单击“P”,就会弹出选择元器件的对话框,包含了proteus自带的所有元器件,这个时候就需要输入元器件的代号进行查找,或者明确知道元器件的类别,直接一级一级搜都是可

这一节要使LED进行闪烁,可想而知LED的闪烁需要P0.0电平高低以一定频率变换,频率越快那么LED闪烁频率也越快。知道了这一点,相应C代码就很容易了。


#include


sbit led = P0^0;


void delayxms(unsigned int xms);


void main()


while(1)


led = 0; //LED发光


delayxms(1000); //延时1s


led =1; //LED熄灭


delayxms(1000); //延时1s


void delayxms(unsigned int xms) //延时函数


unsigned int i,j;


for(i=xms;i>0;i--) //通过for循环嵌套,实现xms延时


for(j=110;j>0;j--);


这一段C代码相比第一节,多了一个带参子函数delayxms,每次赋值xms的不同,那么该函数实现的延时时间也就不同,如本例中实现1s延时,那么xms就赋值1000。在编写单片机程序时要养成好的编程习惯,在实际项目中函数会有很多个,而且常见的都是多个头文件和源文件分开。因此在写程序的时候,我们可以这样理解,就是程序有两大部分,一部分是变量和函数的声明区,就是告诉单片机我这段程序里要用到什么变量和函数;第二部分就是功能实现,也就是声明的函数的具体实现代码。本例中的C代码,在包含了头文件之后,声明了led和delayxms函数,告诉单片机接下来的代码中操作led实际上就是操作P0.0,delayxms函数的参数类型是无符号整型且无返回值。为什么delayxms函数就能实现xms的延时呢?这里要说明下单片机的时钟周期。


时钟周期


时钟周期是单片机周期中的最小单位,定义为时钟频率的倒数,如本例中时钟频率是11.0592MHz,那么时钟周期就是其倒数。一个机器周期等于12个时钟周期,约等于1.09us。在一个时钟周期内,单片机完成最基本的一个动作,就相当于人的心脏跳动。显然单片机的时钟频率越高,单片机工作速度就越快,当然这局限于单片机的硬件设计,高级的单片机如飞思卡尔,STM32等带有倍频功能。单片机中的C代码,每执行一次都是需要时间的。通过KEIL软件仿真中的断点功能,我们可以计算出代码执行所需的时间,这就是为什么delayxms函数这么写的原因,当然还能做得更加精确,那就是运用单片机的内置模块定时器,我们放到第三节课来讲。


另外这段C代码中出现while循环和for循环,本质上是一样的,两者循环都是满足一定条件时循环继续,而条件不满足时则跳出循环。首先说下main函数中的while循环,while循环理解起来非常直观,当条件为真(非零)时循环就进行,因为单片机中的代码是顺序执行的,如果没有这个while(1)的死循环,那么实现的效果就是LED发光和熄灭一次,不能进行第二次的发光,因为程序已经执行完毕。对于延时函数中的for循环,for循环中的第一部分是控制变量的初始值,第二部分是控制变量要满足的条件,第三部分是执行一次循环后对控制变量的操作。如本例中首先i=xms满足i>0的条件,那么就进入for循环,之后对i变量减1,如果还满足i>0的条件,那么循环继续,就是这么简单。


推荐阅读

史海拾趣

EHC(ELECTRONICHARDWARE)公司的发展小趣事

随着环保意识的不断提高,绿色环保已经成为电子行业的发展趋势。EHC公司积极响应这一趋势,致力于研发和生产绿色环保的电子产品。公司采用环保材料和工艺,减少生产过程中的污染排放。同时,EHC公司还积极推动废旧电子产品的回收和再利用工作,为环保事业做出了积极贡献。这种对环保的关注和行动让EHC公司在行业中树立了良好的形象。

Chemtronics公司的发展小趣事

为满足电子行业对无铅应用的需求,Chemtronics专门设计了完整的无铅产品线,并成为业内第一个向市场提供此类产品的公司。这一创新不仅满足了市场对环保和高效产品的需求,也进一步巩固了Chemtronics在电子行业的领先地位。

Brand-Rex公司的发展小趣事

除了在欧洲和中国市场取得显著成就外,Brand-Rex还积极拓展全球市场。其亚太区总部设在澳大利亚墨尔本市,大中国区办事处分别设在北京、上海及香港,东南亚办事处设在新加坡。这些布局使得Brand-Rex能够更好地服务全球客户,满足不同地区的市场需求。同时,Brand-Rex还积极寻求与全球知名企业的合作机会,通过战略合作和技术交流不断提升自身的竞争力和创新能力。

综上所述,Brand-Rex在电子行业中的发展是一个充满挑战和机遇的过程。凭借其卓越的技术、优质的产品和全球市场的布局,Brand-Rex不断壮大并成为行业内的佼佼者。未来,随着全球电子行业的不断发展,Brand-Rex有望继续保持其领先地位,并为全球客户提供更加优质的产品和服务。

德旭电子(DEXU)公司的发展小趣事

随着公司规模的不断扩大和业务范围的不断拓展,德旭电子开始注重履行社会责任和推动可持续发展。公司积极参与公益事业和社会活动回馈社会。

在环保方面德旭电子坚持绿色生产和低碳发展理念积极推广环保技术和设备降低生产过程中的能耗和排放。同时公司还注重产品的环保性能研发和生产符合环保标准的产品满足客户的环保需求。

在社会责任方面德旭电子关注员工福利和职业发展为员工提供良好的工作环境和培训机会促进员工的成长和发展。此外公司还积极参与社会公益事业和慈善活动为社会做出积极贡献。

通过这些举措德旭电子在履行社会责任和推动可持续发展方面取得了显著成效赢得了社会的广泛认可和赞誉。

EPCOS (TDK)公司的发展小趣事

2009年10月1日,EPCOS与TDK元件事业部合并,成立了TDK-EPC公司。这次合并进一步增强了EPCOS在电子元器件领域的实力,使其在全球市场中的地位更加稳固。合并后,TDK-EPC公司继续秉承EPCOS的技术创新和产品拓展战略,不断推出具有竞争力的新产品和解决方案,以满足客户日益增长的需求。

GE Power Electronics Inc公司的发展小趣事
为企业或个人提供定制化的声控音乐玩具娃娃电路方案,满足不同的礼品需求。

问答坊 | AI 解惑

《新型开关电源及其应用》

《新型开关电源及其应用》比较全面的介绍了开关电源的原理及其应用…

查看全部问答>

到底买不买笔记本

我现在是大二的学生,不知道要不要买笔记本。希望高人指点一下。 我是大二电子信息工程的学生,犹豫要不要买笔记本 不买的理由: 1。每天要上自习11点回宿舍,大二马上下学期了,可多得很。 2。要考研 3。明年考4级 4。本科读完后想买个好一 ...…

查看全部问答>

如何通过串口将两台计算机连接起来?

我的问题是, 想通过串口将两台计算机连接起来, 需要哪些硬件? 我的工作环境, HP台式机Vista操作系统, Dell笔记本XP操作系统, 我知道COM1和USB都串口. 我想知道, 分别用COM1连COM1, COM1连USB, USB连USB都需要些什么配置. 硬件需要准备什么, 在操 ...…

查看全部问答>

vxworks的IO重映射问题

现在有如下一个功能要实现: 把用作Console口的那个串口暂时用作他用(即当作一个纯的串口用来传送数据,例如下载程序),然后再恢复成console。 如下是我的实现方案: 首先通过IO重映射来取消console终端: ioGlobalStdSet(STD_IN, 0); ioGlo ...…

查看全部问答>

谁画LM3S9B96的板子了吗?

用了LM3S9B96的那些资源啊?   EPI外扩了什么啊?…

查看全部问答>

请问IAR for msp430如果要用来开发8051需要下载补充什么?

请问IAR for msp430如果要用来开发8051怎么办?再下载一个for 8051的版本?安装的时候有无冲突?官网那种全系列的有破解的么?…

查看全部问答>

IAR6.3使用JLINK不能下载程序

1、 我今天使用IAR6.3对STM32进行下载,出现这样的错误: fatal error:Communication timed out:Requested 1 bytes,received 0 bytes!  session aborted! 开始以为是JLINK有问题了,但是我返回用Keil下载又可以用,不知道是为什么,是不是 ...…

查看全部问答>

求大神看看这个是什么板子

求大神看看这个是什么板子,这个是不是开发板啊,求知道的给说说…

查看全部问答>

求继电器驱动优化方案

求高手优化电路,包括哪些元件是多余的,哪些东西少了,电阻电容值没改过来,求推荐电阻电容值。…

查看全部问答>