欢迎来到天天文库
浏览记录
ID:61488290
大小:14.50 KB
页数:6页
时间:2021-02-05
《单片机PWM控制LED渐明渐暗.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、//PWM控制LED灯渐亮渐灭程序[转摘自伟纳电子]//晶振为11.0592M//利用定时器控制产生占空比可变的PWM波//按K1,PWM值增加,则占空比减小,LED灯渐暗。//按K2,PWM值减小,则占空比增加,LED灯渐亮。//当PWM值增加到最大值或减小到最小值时,蜂鸣器将报警。#include#includesbit K1=P1^4; //增加键sbit K2=P1^5; //减少键sbit BEEP=P3^7; //蜂鸣
2、器unsignedcharPWM=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) {
3、 do{ if(PWM!=0xff) {PWM++;delayms(10);} elseBeep(); } while(K1==0); do{ if(PWM!=0x02) {PWM--;delayms(10);} elseBeep(); } while(K2==0); }}/*********************************************************///定时器0中断服务程序
4、./*********************************************************/voidtimer0()interrupt1{ TR1=0; TH0=0xfc; TL0=0x66; TH1=PWM; TR1=1; P0=0x00; //启动输出}/*********************************************************///定时器1中断服务程序/*******************************************************
5、**/voidtimer1()interrupt3{ TR1=0; P0=0xff; //结束输出}/*********************************************************///蜂鸣器子程序/*********************************************************/voidBeep() { unsignedchari ; for(i=0 ;i<100 ;i++) { delay(100) ; BEEP=
6、!BEEP ; //Beep取反 } BEEP=1 ; //关闭蜂鸣器 delayms(100); }/*********************************************************///延时子程序/*********************************************************/ voiddelay(unsignedchart) { while(t--) ; }/*************
7、********************************************///延时子程序/*********************************************************/voiddelayms(unsignedcharms){ unsignedchari; while(ms--) { for(i=0;i<120;i++); }}
此文档下载收益归作者所有