欢迎来到天天文库
浏览记录
ID:40007009
大小:32.50 KB
页数:3页
时间:2019-07-17
《LED呼吸灯C51源程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、*【使用说明】:晶振为11.0592M利用定时器控制产生占空比可变的PWM波按K3,PWM值增加,则占空比减小,LED灯渐亮按K4,PWM值减小,则占空比增加,LED灯渐暗当PWM值增加到最大值或减小到最小值时,蜂鸣器将报警**********************************************************************************/#include#includesbitK1=P3^4;//PWM值增加键sbitK2=P3^5;//PWM值减少键sbitBEEP=P0^4;//蜂鸣器uns
2、ignedcharPWM=0x7f;//赋初值voidBeep();voiddelayms(unsignedcharms);voiddelay(unsignedchart);/*********************************************************/voidmain(){P1=0xff;TMOD=0x21;TH0=0xfc;//1ms延时常数TL0=0x66;//频率调节TH1=PWM;//脉宽调节TL1=0;EA=1;ET0=1;ET1=1;TR0=1;while(1){do{if(PWM!=0xff){PWM++;delayms(10);
3、}elseBeep();}while(K1==0);do{if(PWM!=0x02){PWM--;delayms(10);}elseBeep();}while(K2==0);}}/*********************************************************///定时器0中断服务程序(频率)/*********************************************************/voidtimer0()interrupt1{TR1=0;TH0=0xfc;TL0=0x66;TH1=PWM;TR1=1;P1=0x00;//启
4、动输出}/*********************************************************///定时器1中断服务程序(脉宽)/*********************************************************/voidtimer1()interrupt3{TR1=0;P1=0xff;//结束输出}/*********************************************************///蜂鸣器子程序/*********************************************
5、************/voidBeep(){unsignedchari;for(i=0;i<100;i++){delay(100);BEEP=!BEEP;//Beep取反}BEEP=1;//关闭蜂鸣器delayms(100);}/*********************************************************///延时子程序/*********************************************************/voiddelay(unsignedchart){while(t--);}/****************
6、*****************************************///延时子程序/*********************************************************/voiddelayms(unsignedcharms){unsignedchari;while(ms--){for(i=0;i<120;i++);}}/*********************************************************/
此文档下载收益归作者所有