《C51代码(PWM)》由会员分享,可在线阅读,更多相关《C51代码(PWM)(20页珍藏版)》请在金锄头文库上搜索。
1、1. #include 2. #include 3.4. sbitK1 =P14 ; /增加键5. sbitK2 =P15 ; /减少键6. sbitP00 =P01;7. sbitBEEP =P37 ; /蜂鸣器8. unsigned char PWM=0xe7; /赋初值9.10. void Beep();11. void delayms(unsigned char ms);12. void delay(unsigned char t);13.14. /*/15. void main()16. 17.18. P1=0xff;19. TMOD=0x21 ;20. TH0=0xff ; /50
2、us延时常数21. TL0=0xce ; /频率调节22.23. TH1=PWM ; /脉宽调节24. TL1=0 ;25.26. EA=1;27. ET0=1;28. ET1=1;29. 30. TR0=1 ;31.32. while(1)33. 34. do35. if(PWM!=0xff)36. PWM+ ;delayms(10);37. else Beep() ;38. 39. while(K1=0);40.41. do42. if(PWM!=0xce)43. PWM- ;delayms(10);44. else Beep() ;45. 46. while(K2=0);47. 48.
3、49.50. void timer0() interrupt 151. 52. TR1=0 ;53. TH0=0xff ;54. TL0=0xce ;55. TH1=PWM ;56. TR1=1 ;57. P00=0 ; /启动输出58. 59.60.61. void timer1() interrupt 362. 63. TR1=0 ;64. P00=1 ; /结束输出65. 66.67. /*/68. /蜂鸣器子程序69. /*/70.71. void Beep() 72. 73. unsigned char i;74. for (i=0;i100;i+)75. 76. delay(100
4、);77. BEEP=!BEEP; /Beep取反78. 79. BEEP=1; /关闭蜂鸣器80. delayms(100);81. 82.83. /*/84. / 延时子程序85. /*/86. void delay(unsigned char t)87. 88. while(t-) ;89. 90.91. /*/92. / 延时子程序93. /*/94. void delayms(unsigned char ms)95.96. 97. unsigned char i ;98. while(ms-)99. 100. for(i = 0 ; i 120 ; i+) ;101. 102. 10
5、3.104. /*/105. #include 106. #include 107.108. sbitK1 =P14 ; /增加键109. sbitK2 =P15 ; /减少键110. sbitP00 =P01;111. sbitBEEP =P37 ; /蜂鸣器112. unsigned char PWM=0xe7; /赋初值113.114. void Beep();115. void delayms(unsigned char ms);116. void delay(unsigned char t);117.118. /*/119. void main()120. 121.122. P1=0
6、xff;123. TMOD=0x21 ;124. TH0=0xff ; /50us延时常数125. TL0=0xce ; /频率调节126.127. TH1=PWM ; /脉宽调节128. TL1=0 ;129.130. EA=1;131. ET0=1;132. ET1=1;133. 134. TR0=1 ;135.136. while(1)137. 138. do139. if(PWM!=0xff)140. PWM+ ;delayms(10);141. else Beep() ;142. 143. while(K1=0);144.145. do146. if(PWM!=0xce)147. P
7、WM- ;delayms(10);148. else Beep() ;149. 150. while(K2=0);151. 152. 153.154. void timer0() interrupt 1155. 156. TR1=0 ;157. TH0=0xff ;158. TL0=0xce ;159. TH1=PWM ;160. TR1=1 ;161. P00=0 ; /启动输出162. 163.164.165. void timer1() interrupt 3166. 167. TR1=0 ;168. P00=1 ; /结束输出169. 170.171. /*/172. /蜂鸣器子程序1
8、73. /*/174.175. void Beep() 176. 177. unsigned char i;178. for (i=0;i100;i+)179. 180. delay(100);181. BEEP=!BEEP; /Beep取反182. 183. BEEP=1; /关闭蜂鸣器184. delayms(100);185. 186.187. /*/188. / 延时子程序189. /*/190. void delay(unsigned char t)191. 192. while(t-) ;193. 194.195. /*/196. / 延时子程序197. /*/198. void delayms(unsigned char ms)199.200. 201. unsigned char i ;202. while(ms-)203. 204. for(i = 0 ; i 120 ; i+) ;205. 206. 207.208. /*/209. #include 210. #include 211.212. sbitK1 =P14 ;