|
|
沒(méi)有用到定時(shí)器,代碼簡(jiǎn)易,效果也還行。
使用的是atc89c52RC,P1^1口接led,P1^1口位高電平小燈亮起,代碼如下:
- #include "reg52.h"
- void delay(int t)
- {
- while(t--);
- }
- int main(void)
- {
- int c=400;//定義周期
- int h,l;//定義高電平低電平highlow
- while(1)
- {
- for(h=1;h<=c;h++)
- {
- P1=0x01;
- delay(h);
- P1=0x00;
- l=c-h;
- delay(l);
- }//高電平逐漸增加
- for(l=1;l<=c;l++)
- {
- P1=0x00;
- delay(l);
- P1=0x01;
- h=c-l;
- delay(h);
- }//低電平逐漸增加
- }
- }
復(fù)制代碼 我也是偶然看到這個(gè)方法的,感覺(jué)還行分享出來(lái)。
首先我們定義了一個(gè)delay,接著是main主函數(shù),在主函數(shù)里定義死循環(huán),while里面用了for循環(huán),目的是為了增加占空比,先讓小燈置位高電平,延時(shí)h秒,接著低電平,延時(shí)L秒,就這樣模擬了PWM的占空比,就有了高電平比例逐漸上升又逐漸下降的效果。
不喜勿噴,還是新手。
管理員求黑幣!!!
|
評(píng)分
-
查看全部評(píng)分
|