1、C51代码PWM1. #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. TH
2、0=0xff ; /50us延时常数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. whil
3、e(K2=0);47. 48. 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
4、;i+)75. 76. delay(100);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
5、 120 ; i+) ;101. 102. 103. 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. v
6、oid main()120. 121. 122. P1=0xff;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
7、. 145. do146. if(PWM!=0xce)147. PWM- ;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 ;
8、 /结束输出169. 170. 171. /*/172. /蜂鸣器子程序173. /*/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 intrins
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1