密封胶厂家
免费服务热线

Free service

hotline

010-00000000
密封胶厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

PWM控制LED渐亮渐灭示例程序

发布时间:2020-07-21 18:34:16 阅读: 来源:密封胶厂家

/***********************************************************程序说明:利用定时器控制产生占空比可变的 PWM按S6,PWM值增加,则占空比减小,LED 灯渐暗。 按S3,PWM值减小,则占空比增加,LED 灯渐亮。当PWM值增加到最大值或减小到最小值时,蜂鸣器将报警。***********************************************************/#include reg51.h >#include intrins.h >sbitK1 =P3^2 ; //增加键sbitK2 =P3^3 ; //减少键sbitBEEP =P3^7 ; //蜂鸣器unsigned char PWM=0x7f ; //赋初值void Beep();void delayms(unsigned char ms);void delay(unsigned char t);/*********************************************************/void main(){ P0=0xff; TMOD=0x21 ; TH0=0xfc ; //1ms延时常数 12M TL0=0x18 ; //频率调节 TH1=PWM ; //脉宽调节 TL1=0 ; EA=1; ET0=1; ET1=1; TR0=1 ; while(1) { do{ if(PWM!=0xff) { PWM++ ; delayms(10); } else Beep(); }while(K1==0); do{ if(PWM!=0x01) { PWM-- ; delayms(10);} else Beep() ; }while(K2==0); }}/*********************************************************/// 定时器0中断服务程序./*********************************************************/void timer0() interrupt 1{ TR1=0 ; TH0=0xfc ; TL0=0x66 ; TH1=PWM ; TR1=1 ; P0=0x00 ; //启动输出}/*********************************************************/// 定时器1中断服务程序/*********************************************************/void timer1() interrupt 3{ TR1=0 ; P0=0xff ; //结束输出}/*********************************************************///蜂鸣器子程序/*********************************************************/void Beep() { unsigned char i; for (i=0;i100;i++) { delay(100); BEEP=!BEEP; //Beep取反 } BEEP=1; //关闭蜂鸣器 delayms(100);} /*********************************************************/// 延时子程序/*********************************************************/void delay(unsigned char t){ while(t--) ;}/*********************************************************/// 延时子程序/*********************************************************/void delayms(unsigned char ms) { unsigned char i ; while(ms--) { for(i = 0 ; i 120 ; i++) ; }} pwm相关文章:pwm是什么

pwm相关文章:pwm原理

蜂鸣器相关文章:蜂鸣器原理

深圳双眼皮

兰州吸脂价格

北京吸脂医院