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