PWM按键控制灯亮度(改变占空比)(word文档良心出品).docxVIP

  • 6
  • 0
  • 约1.94千字
  • 约 5页
  • 2021-01-28 发布于天津
  • 举报

PWM按键控制灯亮度(改变占空比)(word文档良心出品).docx

uchar PWM_T = 0; // uchar PWM_T = 0; //占空比控制变量 PWM 按键控制灯亮度(改变占空比) MCU 2010-04-05 20:32:09 阅读63评论0字号:大中小 明文作品,谢谢欣赏! 功能说明:PWM,通过改变占空比,PWM_T/100, 这里100是周期,每个按键都会给PWM_T 一个定值, 这样就改变了输出波形。 S按键改变占空比跛掘灯的」启度M QMfiQRd iKdTO S按键改变占空比 跛掘灯的」启度 M QMfiQ Rd iKd TO A9i ro iwj ro TO 曲逊 PflW R2-Ji*W 密 P?4W3 FUDWC 禺叩d 眄曲in r3-lK!T n 1 ntrio Pl E man Fl 1 nyflv Fl T FJfff 明文 仿真运行后, 点击debug-4. digital oscillicope( 最后一项)就能够看到波形了。 观察低电平占的比例 10%,这里 观察低电平占的比例 10% ,这里 WPM-T=10 10/100=10% ,这里 WPM-T=6060/100=60%/** ,这里 WPM-T=60 60/100=60% /** 观察低电平占的比例 60% ************************************************** 6个按键决定6个亮度 占空比:PWM_T/100,越大越亮 ************************************************** #in elude reg51.h #defi ne ulnt un sig ned int #defi ne uchar un sig ned char sbit c7=P3A7; 〃6个按键,决定输出 PWM_T 值 sbit c6=P3A6; sbit c5=P3A5; sbit c4=P3A4; sbit c3=P3A3; sbit c2=P3A2; /**************************************************** 主程序 ****************************************************/ void mai n(void) { ulnt n; TMOD=0x02; //定时器0,工作模式2, 8位定时模式 TH0=210; 〃写入预置初值(取值 1-255,数越大PWM频率越高) TL0=210; 〃写入预置值 (取值1-255,数越大PWM频率越高) TR0=1; //启动定时器 ET0=1; 〃允许定时器0中断 EA=1; 〃允许总中断 P仁0xff; //初始化P1,输出端口 P0=0xff; // 初始化 P0 while(1) //PWM 周期100,高电平100- PWM_T , 低电平 PWM_T,低电平工作 { for(n=0;n200;n++); //延时,取值0-65535,数字越大变化越慢 if(!c7||!c6||!c5||!c4||!c3||!c2) 〃通过按键改变占空比 { if(!c7) PWM_T=O; // if(!c7) PWM_T=O; //这些值可以改变 P0=0xff; // P0=0xff; //使LED灯灭 if(!c7) PWM_T=O; // if(!c7) PWM_T=O; //这些值可以改变 P0=0xff; // P0=0xff; //使LED灯灭 else if(!c6) PWM_T=10; else if(!c5) PWM_T=35; else if(!c4) PWM_T=60; else if(!c3) PWM_T=85; else if(!c2) PWM_T=100; /**************************************************** /定时器0中断模拟PWM ****************************************************/ timer0() in terrupt 1 using 2 static uchar t ; //PWM 计数 t++; //每次定时器溢出加1 if(t==100) //PWM 周期 100 个单位 t=0; //使 t=0,开始新的 PWM周期 P1=0x00; //使LED灯亮,输出端口 P0=0x00; //使LED灯亮,输出端口 if(PWM_T==t) //按照当前占空比切换输出为高电平 { P1=0xff; //使LED灯灭

文档评论(0)

1亿VIP精品文档

相关文档