|
單片機一箭穿心的學習- //作者:成長路DIY
- //品名:成長路愛心燈套件
- #include <reg52.h>
- #include <intrins.h>
- #define uint unsigned int
- #define N 2 //亮暗的速率
- //#define T 100 //PWM的周期
- //sbit led=P1^0;
- void pwm(int x);
- void delayms(uint Ms);
- void main()
- {
- int T=600;
- int t=0;
- char f=0;//亮暗標志,0為亮
- while(1)
- {
- //led=0;
- P0=0x00;
- P1=0x00;
- P2=0x00;
- P3=0x00;
- pwm(t);//Toff,亮的時間
- // led=1;
- P0=0xff;
- P1=0xff;
- P2=0xff;
- P3=0xff;
- pwm(T-t);//Ton,暗的時間
- if(!f) t+=N+1;//亮速率較快,模擬呼吸
- else t-=N;//暗速率較慢
- if(t>T) {f=1;t=T;}//超過最大值時,返回最大值,標志為暗
- if(t<0)
- {
- f=0;
- t=0;
- delayms( 500);
- T+=10;
- if(T>=650)T=600;
- }//超過最小值時,返回最小值,標志為亮
-
- }
- }
- void pwm(int x)
- {
- while(x--);
- }
- /*====================================================================
- 設定延時時間:x*1ms
- ====================================================================*/
- void delayms(uint Ms)
- {
- uint i,TempCyc;
- _nop_();
- for(i=0;i<Ms;i++)
- {
- TempCyc =70;
- while(TempCyc--);
- }
- }
復制代碼
|
-
-
S04一箭穿心參考代碼.zip
2018-7-17 10:27 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
6.61 KB, 下載次數: 7, 下載積分: 黑幣 -5
一箭穿心
|