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
9、. 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 ; /增加键213. sbitK2 =P15 ; /减少键214. sbitP00 =P01;215. sbitBEEP =P37 ; /蜂鸣器216. uns
10、igned char PWM=0xe7; /赋初值217. 218. void Beep();219. void delayms(unsigned char ms);220. void delay(unsigned char t);221. 222. /*/223. void main()224. 225. 226. P1=0xff;227. TMOD=0x21 ;228. TH0=0xff ; /50us延时常数229. TL0=0xce ; /频率调节230. 231. TH1=PWM ; /脉宽调节232. TL1=0 ;233. 234. EA=1;235. ET0=1;236. ET
11、1=1;237. 238. TR0=1 ;239. 240. while(1)241. 242. do243. if(PWM!=0xff)244. PWM+ ;delayms(10);245. else Beep() ;246. 247. while(K1=0);248. 249. do250. if(PWM!=0xce)251. PWM- ;delayms(10);252. else Beep() ;253. 254. while(K2=0);255. 256. 257. 258. void timer0() interrupt 1259. 260. TR1=0 ;261. TH0=0xff
12、 ;262. TL0=0xce ;263. TH1=PWM ;264. TR1=1 ;265. P00=0 ; /启动输出266. 267. 268. 269. void timer1() interrupt 3270. 271. TR1=0 ;272. P00=1 ; /结束输出273. 274. 275. /*/276. /蜂鸣器子程序277. /*/278. 279. void Beep() 280. 281. unsigned char i;282. for (i=0;i100;i+)283. 284. delay(100);285. BEEP=!BEEP; /Beep取反286. 2
13、87. BEEP=1; /关闭蜂鸣器288. delayms(100);289. 290. 291. /*/292. / 延时子程序293. /*/294. void delay(unsigned char t)295. 296. while(t-) ;297. 298. 299. /*/300. / 延时子程序301. /*/302. void delayms(unsigned char ms)303. 304. 305. unsigned char i ;306. while(ms-)307. 308. for(i = 0 ; i 120 ; i+) ;309. 310. 311. 312
14、. /*/313. #include 314. #include 315. 316. sbitK1 =P14 ; /增加键317. sbitK2 =P15 ; /减少键318. sbitP00 =P01;319. sbitBEEP =P37 ; /蜂鸣器320. unsigned char PWM=0xe7; /赋初值321. 322. void Beep();323. void delayms(unsigned char ms);324. void delay(unsigned char t);325. 326. /*/327. void main()328. 329. 330. P1=0x
15、ff;331. TMOD=0x21 ;332. TH0=0xff ; /50us延时常数333. TL0=0xce ; /频率调节334. 335. TH1=PWM ; /脉宽调节336. TL1=0 ;337. 338. EA=1;339. ET0=1;340. ET1=1;341. 342. TR0=1 ;343. 344. while(1)345. 346. do347. if(PWM!=0xff)348. PWM+ ;delayms(10);349. else Beep() ;350. 351. while(K1=0);352. 353. do354. if(PWM!=0xce)355
16、. PWM- ;delayms(10);356. else Beep() ;357. 358. while(K2=0);359. 360. 361. 362. void timer0() interrupt 1363. 364. TR1=0 ;365. TH0=0xff ;366. TL0=0xce ;367. TH1=PWM ;368. TR1=1 ;369. P00=0 ; /启动输出370. 371. 372. 373. void timer1() interrupt 3374. 375. TR1=0 ;376. P00=1 ; /结束输出377. 378. 379. /*/380. /
17、蜂鸣器子程序381. /*/382. 383. void Beep() 384. 385. unsigned char i;386. for (i=0;i100;i+)387. 388. delay(100);389. BEEP=!BEEP; /Beep取反390. 391. BEEP=1; /关闭蜂鸣器392. delayms(100);393. 394. 395. /*/396. / 延时子程序397. /*/398. void delay(unsigned char t)399. 400. while(t-) ;401. 402. 403. /*/404. / 延时子程序405. /*/406. void delayms(unsigned char ms)407. 408. 409. unsigned char i ;410. while(ms-)411. 412. for(i = 0 ; i 120 ; i+) ;413. 414. 415. 416. /*/41
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1