


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PWM实现LED背光板渐亮渐灭 AT89S52第一次接触PWM脉宽调制,终于实现了LED背光板的渐亮渐灭,把代码贴出来。一则请大家指点,二则把实现的思想跟新人分享。/*硬件说明:AT89S52,晶振11.0592MHz。P3.6为一个LED背光板,等于0时发光。P0.0为一个按键,按下时为0。*/* 程序思路说明:LED背光板的渐亮渐灭实际上就是LED的亮度等级由低到高(渐亮)再由高到低(渐灭)的过程,那么首先要通过PWM脉宽调制实现LED显示不同的亮度等级。(脉宽调制的基本原理可以参考/gdmgb520/blog/item/077f0601810d1a047bec2cb7.html)怎么实现不同的亮度等级呢?假设在某个长度的周期(一个适当的时间长度)内如果LED的管脚一直输出0(我这里输出0时LED背光板点亮),那么很显然LED肯定是最亮的;相反如果一直输出1,那LED肯定是最暗的(也就是不亮)。如果在这个周期内管脚输出的是脉冲波(10101010)那么LED的亮度就只有最亮时的一半,或者说如果前一半时间是高电平后一半时间是低电平,那LED的亮度也是最亮的一半,这是由于LED的余晖效应,但这个时间必须恰当,不然LED就不是亮而是闪烁。下面这段代码即可实现LED显示在某个亮度等级:void timer0(void) interrupt 1 using 2 static uchar counter=0; /中断次数计数器变量TH0=V_TH0; /恢复定时器初始值TL0=V_TL0;counter+; if (counter=(ZKB1) /当小于占空比值时输出低电平,高于时是高电平,从而实现占空比的调整 LED3=0; else LED3=1;if (counter=100)counter=0;那么现在我们就可以依次变换LED的亮度等级,从而实现LED的渐亮渐灭了。若上面的定时器中断是0.1ms触发一次、ZKB1=20,那么整个周期为0.1ms*100=10ms,LED3为低脉冲的时间长度为20*0.1ms=2ms,显示亮度为最亮的20%。如果我们把100个不同的亮度等级挨个显示一遍就出现了有暗到亮的渐亮过程或渐灭过程。那么我们就在每当counter=100的时候,ZKB1+就行了(由暗到亮)。上面的程序第24行内加入ZKB1+;,并在第25行加入if (ZKB1=100) ZKB1=0; 语句即可。这样看到的效果是LED由暗变亮然后又有暗变亮。现在我们再加入由亮变暗。新增一个变量ZKB2,counter=100时ZKB2+,当ZKB2=100时ZKB1=ZKB2,实现有暗变亮;当100ZKB2=200时ZKB1=200-ZKB2,实现由亮变暗;当200ZKB2=400时ZKB1=0,LED保持熄灭。从时间上来说,每一个亮度等级耗时10ms,那么渐亮耗时1s,渐灭耗时1s,熄灭保持2s,然后开始下一个周期。这里我还加了一个flag0变量,作用是当K0按下时使LED停止发光。 */ #include #define uchar unsigned char #define V_TH0 0xff/定时器0初值#define V_TL0 0xa3 sbit LED3=P36; /背光片接口sbit K0=P00;unsigned char ZKB1,ZKB2; bit flag0;/*-定时器初始化-*/ void init_sys(void) TMOD=0x01; /定时器0工作在方式1TH0=V_TH0; /定时周期为0.1msTL0=V_TL0; TR0=1; ET0=1; EA=1; /*-定时器0中断函数-*/ void timer0(void) interrupt 1 using 2 static uchar counter=0; /中断次数计数器变量 TH0=V_TH0; /恢复定时器初始值 TL0=V_TL0;if (flag0=1) counter+; if (counter=100) counter=0; ZKB2+; if (ZKB2=100) /占空比变化部分 ZKB1=ZKB2; else if (ZKB2=200) ZKB1=200-ZKB2; else ZKB1=0; if (counter399) ZKB2=1;else LED3=1;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水泥定价协议书
- 牛奶价格协议书
- 建筑服务保洁合同
- 绿色食品供应链管理系统开发与运营合作协议
- 平安普惠借款合同
- 乡村农业现代化推广协议
- 车队承包维修合同协议
- 运输企业雇车合同协议
- 运输项目合作合同协议
- 油品设备协议书
- 五年级下册科学说课课件 -1.2 沉浮与什么因素有关 |教科版 (共28张PPT)
- 通用城实景三维数据生产项目技术设计书
- 毕业设计(论文)-N402—1300型农用拖拉机履带底盘的设计
- 多重耐药菌感染的预防与控制 课件
- 《出口报关单模板》word版
- 设计公司钉钉考勤管理办法
- 边坡护坡检验批表格模板
- 工会会计制度——会计科目和会计报表(全)
- 砌体结构教案(共34页)
- 《Monsters 怪兽》中英对照歌词
- 煤炭质量分级第2部分 硫分
评论
0/150
提交评论