|
感覺這個難度系數對于我這個初學者來說有點大,求大神們指導!- #include "reg52.h"
- sbit pwm0=P2^0;
- unsigned char tim=0,zkb=1,flag=0; //tim用來記錄定時次數
- void Timer1_ini() //定時器1初始化函數
- {
- EA=1; //開總中斷
- ET1=1; //開定時器1中斷
- TMOD=0x20; //定時器1工作在方式2
- TR1=1; //啟動定時器1
- TH1=255-50; //定時50us高8位初值
- TL1=255-50; //定時50us低8位初值
- }
- void INT_Timer1() interrupt 3 //定時器1中斷入口,定時器1中斷服務
- {
-
- tim++; //定時器1中斷次數,每進入中斷一次,次數加1
- if(tim>=200) //pwm周期=250*定時時間
- {
- tim=0;
-
- if(flag==0) {zkb++; if(zkb>=150) flag=1;} //改變占空比 得到呼吸燈效果
- else {zkb--;if(zkb<1) flag=0;} //改變占空比 得到呼吸燈效果
- }
-
- if(tim<zkb) //zkb為占空比
- {
- pwm0=0;
- }
- else
- {
- pwm0=1;
- }
-
- }
- void main()
- {
- Timer1_ini();
- while(1);
- }
復制代碼
|
-
-
呼吸燈.rar
2018-12-11 02:24 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
11.63 KB, 下載次數: 15, 下載積分: 黑幣 -5
評分
-
查看全部評分
|