1. #include<reg51.h> 2. #define uint unsigned int//定義uint為無符號(hào)整形 3. #define uchar unsigned char//宏定義,同上 4. 5. sbit PWM=P2^0;// P2.0輸出pwm 6. uchar time; // 定義占空比的變量 7. 8. void main() 9. { 10. TMOD=0x01;//定時(shí)器0工作方式1 11. TH0=? 這兩個(gè)初值該怎樣設(shè)置 12. TL0=? 13. EA=1;//開總中斷 14. ET0=1;//開定時(shí)器0中斷 15. TR0=1;//啟動(dòng)定時(shí)器0 16. while(1) 17. { 18. } 19. } 20. 21. void tim0() interrupt 1 22. { 23. TR0=0;//賦初值時(shí),關(guān)閉定時(shí)器 24. TH0=0xff;//(65536-100)/256;//賦初值定時(shí) 25. TL0=0xf7;//(65536-100)%256;//0.01ms 26. TR0=1;//打開定時(shí)器 27. 28. time++; 29. if(time>=100) //1khz 30. time=0; 31. if(time<=30) //占空比%30,可改 32. PWM=1; 33. else PWM=0; 34. }
|