单片机控制灯光亮度c语言程序,基于51单片机控制LED灯光亮度并报警

利用pwm控制led灯光亮度大小。可以显示许多亮度等级 到最低或者最高亮度等级会发出报警。设计思路:

LED一般是恒流操作的,如何改变LED的亮度呢?答案就是PWM控制。在一定的频率的方波中,调整高电平和低电平的占空比,即可实现。比如我们用低电平点亮一个LED灯,我们假设把一个频率周期分为10个时间等份,如果方波中的高低电平占空比是9:1,这是就是一个比较暗的亮度,如果方波中高低电平占空比是10:0,这时,全部是高电平,灯是灭的。如果占空比是5:5,就是一个中间亮度,如果高低比是1:9,是一个比较亮的亮度,如果高低是0:10,这时全部是低电平,就是最亮的。

实际上应用中,电视屏幕墙中的几十百万LED象素都是这样控制的,而且每一个象素都有红绿蓝3个LED,每个LED可以变化的亮度是几百到几万或者更多的级别,以实现真彩色的显示。还有在您的手机中,背光灯的亮度如果是可以变化的,也应该是这种工作方式。目前的城市彩灯也有很多都使用了LED,需要控制亮度是也是PWM控制。

在程序中,我们将定时器2溢出定为1/1200秒。每10次脉冲输出一个120HZ频率。这每10次脉冲再用来控制高低电平的10个比值。这样,在每个1/120秒的方波周期中,我们都可以改变方波的输出占空比,从而控制LED灯的10个级别的亮度。

为什么输出方波的频率要120HZ这么高?因为如果频率太低,人眼就会看到闪烁感觉。一般起码要在60HZ以上才感觉好点,120HZ就基本上看不到闪烁,只能看到亮度的变化了。

程序设计完成后写到存储器中,在单片机运行时程序只需从存储器中读取出来运行。用来存放程序的存储器,我们称之为程序存储器(只读存储器),简称ROM。而在单片机运行时,数据将随着程序的运行发生变化,我们将存放数据的存储器称为数据存储器(随机存储器),简称RAM。   单片机的存储器又可分为片内和片外存储器。片内存储器是在单片机内部的存储器,通常容量有限。当单片机程序很大,同时单片机运行时的数据较大,片内存储器容量不够,就需要对单片机扩展外部存储器,这就是片外存储器。   综上所述,51单片机有两种存储器:程序存储器和数据存储器。51单片机同时拥有4个存储空间(物理结构上):片内ROM、片外ROM、片内RAM和片外RAM。图2-1所示为51单片机存储器地址空间,其中使用最频繁的是片内数据存储器,应重点掌握。   程序存储器 程序存储器用于存放用户程序、数据和表格等信息,其存储单元只能读不能写。51单片机程序存储器有16位地址,可寻址的范围为64KB,因此片外程序存储器最大容量为64KB,而片内程序存储器容量为4KB。程序存储器在物理结构上分为片内程序存储器和片外程序存储器两个部分,在逻辑结构上(即用户使用角度)为一个部分,采用同一指令(MOVC指令)进行数据读取,用外部引脚进行区分低4KB空间使用的是片内程序存储器还是片外程序存储器。   对于8031单片机来说,它的内部没有ROM,因此,在实际使用时,必须对它扩展外部程序存储器,最大可扩展空间地址为64KB,此时8031单片机的端必须接地,强制CPU从外部程序存储器读取程序。对于内部有ROM的8051,8751,89C51,89S51等单片机,正常运行时,则需接高电平,使CPU先读内部程序存储器中的程序,当PC值超过内部ROM的容量时,才会转而读外部程序存储器中的程序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值