|
PWM演示.zip
(37.74 KB, 下載次數(shù): 218)
2013-10-16 01:36 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
- ///////////////////////////////////////////////////////////
- //呼吸燈演示程序(PWM脈寬調(diào)制模型)
- ///////////////////////////////////////////////////////////
- #include<reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- uint cycle=500; //PWM周期
- uint pwm=0; //高電平持續(xù)時(shí)間
- sbit led=P1^0; //LED端口
- sbit sw=P2^5; //74HC573鎖存端口
- void delay(uint t)
- {
- unsigned int i;
- for(i=0;i<t;i++); //之前演示時(shí)燈閃爍的原因是此處延時(shí)太大
- }
- void pwm_demo(void)
- {
- sw=1; //數(shù)據(jù)不鎖存
-
- led=1;
- delay(60000);
- for(pwm=1;pwm<cycle;pwm++)//在這個(gè)循環(huán)里pwm的值逐漸升高(pwm的值代表高電平持續(xù)時(shí)間),占空比增大,燈由暗變亮。
- {
- led=0;
- delay(pwm);
- led=1;
- delay(cycle-pwm);
- }
-
- led=0;
- delay(60000);
- for(pwm=cycle-1;pwm>0;pwm--)//在這個(gè)循環(huán)里pwm的值逐漸減小(pwm的值代表高電平持續(xù)時(shí)間),占空比減小,燈由亮變暗。
- {
- led=0;
- delay(pwm);
- led=1;
- delay(cycle-pwm);
- }
- }
復(fù)制代碼
|
|