/*-----------------------------------------------
名称:PWM调光
论坛:www.doflye.net
编写:shifang
日期:2009.5
修改:无
内容:通过PWM(脉宽调制)调节LED的亮度
------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
sbit LED0=P1^0;// 用sbit 关键字 定义 LED到P1.0端口,LED是自己任意定义且容易记忆的符号
void Delay(unsigned int t); //函数声明
/*------------------------------------------------
主函数
------------------------------------------------*/
void main (void)
{
unsigned int CYCLE=600,PWM_LOW=0;//定义周期并赋值
while (1) //主循环
{
LED0=1;
Delay(60000); //特意加延时,可以看到熄灭的过程
for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++){ //PWM_LOW表示低
//电平时间,这个循环中低电平时长从1累加到CYCLE(周期)的值,即600次
LED0=0; //点亮LED
Delay(PWM_LOW);//延时长度,600次循环中从1加至599
LED0=1; //熄灭LED
Delay(CYCLE-PWM_LOW);//延时长度,600次循环中从599减至1
}
LED0=0;
for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--){ //与逐渐变亮相反的过程
LED0=0;
Delay(PWM_LOW);
LED0=1;
Delay(CYCLE-PWM_LOW);
}
//主循环中添加其他需要一直工作的程序
}
}
/*------------------------------------------------
延时函数,含有输入参数 unsigned int t,无返回值
unsigned int 是定义无符号整形变量,其值的范围是
0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{
while(--t);
}
没有合适的资源?快使用搜索试试~ 我知道了~
51单片机pwm调光程序
共13个文件
bak:3个
uvproj:1个
plg:1个
需积分: 48 72 下载量 50 浏览量
2018-05-07
17:57:53
上传
评论 15
收藏 19KB ZIP 举报
温馨提示
51单片机实现pwm调光程序,通过pwm调节led等的亮度,程序简单易懂
资源推荐
资源详情
资源评论
收起资源包目录
PWM调光.zip (13个子文件)
PWM调光
PWM调光.opt.bak 853B
PWM调光.c 2KB
PWM调光_Opt.Bak 855B
PWM调光.uvopt 5KB
PWM调光.uvgui.lenovo 67KB
obj
PWM调光 2KB
PWM调光.m51 4KB
PWM调光.plg 172B
PWM调光.obj 2KB
PWM调光.hex 444B
PWM调光.lst 3KB
PWM调光.Uv2.bak 2KB
PWM调光.uvproj 13KB
共 13 条
- 1
资源评论
751197694@qq.com
- 粉丝: 10
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功