C51代码(PWM)1.#include2.#include3.4.sbit K1=P1^4; //增加键5.sbit K2=P1^5; //减少键6.sbit P00=P0^1;7.sbit BEEP=P3^7; //蜂鸣器8.unsignedcharPWM=0xe7; //赋初值9.10.voidBeep();11.voiddelayms(unsignedcharms);12.voiddelay(unsignedchart);13.14./**************************...
1.#include2.#include3.4.sbit K1=P1^4; //增加键5.sbit K2=P1^5; //减少键6.sbit P00=P0^1;7.sbit BEEP=P3^7; //蜂鸣器8.unsignedcharPWM=0xe7; //赋初值9.10.voidBeep();11.voiddelayms(unsignedcharms);12.voiddelay(unsignedchart);13.14./*********************************************************/15.voidmain()16.{ 17.18. P1=0xff;19. TMOD=0x21;20. TH0=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. do{35. if(PWM!=0xff)36. {PWM;delayms(10);}37. elseBeep();38. }39. while(K1==0);40.41. do{42. if(PWM!=0xce)43. {PWM--;delayms(10);}44. elseBeep();45. }46. while(K2==0);47. }48.}49.50.voidtimer0()interrupt151.{ 52. TR1=0;53. TH0=0xff;54. TL0=0xce;55. TH1=PWM;56. TR1=1;57. P00=0; //启动输出58.}59.60.61.voidtimer1()interrupt362.{63. TR1=0;64. P00=1; //结束输出65.}66.67./*********************************************************/68.//蜂鸣器子程序69./*********************************************************/70.71.voidBeep() 72. {73. unsignedchari ;74. for(i=0 ;i<100 ;i)75. {76. delay(100) ;77. BEEP=!BEEP ; //Beep取反78. }79. BEEP=1 ; //关闭蜂鸣器80. delayms(100);81. }82.83./*********************************************************/84.//延时子程序85./*********************************************************/ 86.voiddelay(unsignedchart)87.{88. while(t--) ;89.}90.91./*********************************************************/92.//延时子程序93./*********************************************************/94.voiddelayms(unsignedcharms)95.96.{97. unsignedchari;98. while(ms--)99. {100. for(i=0;i<120;i);101. }102.}103.104./*********************************************************/105.#include106.#include107.108.sbit K1=P1^4; //增加键109.sbit K2=P1^5; //减少键110.sbit P00=P0^1;111.sbit BEEP=P3^7; //蜂鸣器112.unsignedcharPWM=0xe7; //赋初值113.114.voidBeep();115.voiddelayms(unsignedcharms);116.voiddelay(unsignedchart);117.118./*********************************************************/119.voidmain()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. do{139. if(PWM!=0xff)140. {PWM;delayms(10);}141. elseBeep();142. }143. while(K1==0);144.145. do{146. if(PWM!=0xce)147. {PWM--;delayms(10);}148. elseBeep();149. }150. while(K2==0);151. }152.}153.154.voidtimer0()interrupt1155.{ 156. TR1=0;157. TH0=0xff;158. TL0=0xce;159. TH1=PWM;160. TR1=1;161. P00=0; //启动输出162.}163.164.165.voidtimer1()interrupt3166.{167. TR1=0;168. P00=1; //结束输出169.}170.171./*********************************************************/172.//蜂鸣器子程序173./*********************************************************/174.175.voidBeep() 176. {177. unsignedchari ;178. for(i=0 ;i<100 ;i)179. {180. delay(100) ;181. BEEP=!BEEP ; //Beep取反182. }183. BEEP=1 ; //关闭蜂鸣器184. delayms(100);185. }186.187./*********************************************************/188.//延时子程序189./*********************************************************/ 190.voiddelay(unsignedchart)191.{192. while(t--) ;193.}194.195./*********************************************************/196.//延时子程序197./*********************************************************/198.voiddelayms(unsignedcharms)199.200.{201. unsignedchari;202. while(ms--)203. {204. for(i=0;i<120;i);205. }206.}207.208./*********************************************************/209.#include210.#include211.212.sbit K1=P1^4; //增加键213.sbit K2=P1^5; //减少键214.sbit P00=P0^1;215.sbit BEEP=P3^7; //蜂鸣器216.unsignedcharPWM=0xe7; //赋初值217.218.voidBeep();219.voiddelayms(unsignedcharms);220.voiddelay(unsignedchart);221.222./*********************************************************/223.voidmain()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. ET1=1;237. 238. TR0=1;239.240. while(1)241. {242. do{243. if(PWM!=0xff)244. {PWM;delayms(10);}245. elseBeep();246. }247. while(K1==0);248.249. do{250. if(PWM!=0xce)251. {PWM--;delayms(10);}252. elseBeep();253. }254. while(K2==0);255. }256.}257.258.voidtimer0()interrupt1259.{ 260. TR1=0;261. TH0=0xff;262. TL0=0xce;263. TH1=PWM;264. TR1=1;265. P00=0; //启动输出266.}267.268.269.voidtimer1()interrupt3270.{271. TR1=0;272. P00=1; //结束输出273.}274.275./*********************************************************/276.//蜂鸣器子程序277./*********************************************************/278.279.voidBeep() 280. {281. unsignedchari ;282. for(i=0 ;i<100 ;i)283. {284. delay(100) ;285. BEEP=!BEEP ; //Beep取反286. }287. BEEP=1 ; //关闭蜂鸣器288. delayms(100);289. }290.291./*********************************************************/292.//延时子程序293./*********************************************************/ 294.voiddelay(unsignedchart)295.{296. while(t--) ;297.}298.299./*********************************************************/300.//延时子程序301./*********************************************************/302.voiddelayms(unsignedcharms)303.304.{305. unsignedchari;306. while(ms--)307. {308. for(i=0;i<120;i);309. }310.}311.312./*********************************************************/313.#include314.#include315.316.sbit K1=P1^4; //增加键317.sbit K2=P1^5; //减少键318.sbit P00=P0^1;319.sbit BEEP=P3^7; //蜂鸣器320.unsignedcharPWM=0xe7; //赋初值321.322.voidBeep();323.voiddelayms(unsignedcharms);324.voiddelay(unsignedchart);325.326./*********************************************************/327.voidmain()328.{ 329.330. P1=0xff;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. do{347. if(PWM!=0xff)348. {PWM;delayms(10);}349. elseBeep();350. }351. while(K1==0);352.353. do{354. if(PWM!=0xce)355. {PWM--;delayms(10);}356. elseBeep();357. }358. while(K2==0);359. }360.}361.362.voidtimer0()interrupt1363.{ 364. TR1=0;365. TH0=0xff;366. TL0=0xce;367. TH1=PWM;368. TR1=1;369. P00=0; //启动输出370.}371.372.373.voidtimer1()interrupt3374.{375. TR1=0;376. P00=1; //结束输出377.}378.379./*********************************************************/380.//蜂鸣器子程序381./*********************************************************/382.383.voidBeep() 384. {385. unsignedchari ;386. for(i=0 ;i<100 ;i)387. {388. delay(100) ;389. BEEP=!BEEP ; //Beep取反390. }391. BEEP=1 ; //关闭蜂鸣器392. delayms(100);393. }394.395./*********************************************************/396.//延时子程序397./*********************************************************/ 398.voiddelay(unsignedchart)399.{400. while(t--) ;401.}402.403./*********************************************************/404.//延时子程序405./*********************************************************/406.voiddelayms(unsignedcharms)407.408.{409. unsignedchari;410. while(ms--)411. {412. for(i=0;i<120;i);413. }414.}415.416./*********************************************************/417.#include418.#include419.420.sbit K1=P1^4; //增加键421.sbit K2=P1^5; //减少键422.sbit P00=P0^1;423.sbit BEEP=P3^7; //蜂鸣器424.unsignedcharPWM=0xe7; //赋初值425.426.voidBeep();427.voiddelayms(unsignedcharms);428.voiddelay(unsignedchart);429.430./*********************************************************/431.voidmain()432.{ 433.434. P1=0xff;435. TMOD=0x21;436. TH0=0xff; //50us延时常数437. TL0=0xce; //频率调节438.439. TH1=PWM; //脉宽调节440. TL1=0;441.442. EA=1;443. ET0=1;444. ET1=1;445. 446. TR0=1;447.448. while(1)449. {450. do{451. if(PWM!=0xff)452. {PWM;delayms(10);}453. elseBeep();454. }455. while(K1==0);456.457. do{458. if(PWM!=0xce)459. {PWM--;delayms(10);}460. elseBeep();461. }462. while(K2==0);463. }464.}465.466.voidtimer0()interrupt1467.{ 468. TR1=0;469. TH0=0xff;470. TL0=0xce;471. TH1=PWM;472. TR1=1;473. P00=0; //启动输出474.}475.476.477.voidtimer1()interrupt3478.{479. TR1=0;480. P00=1; //结束输出481.}482.483./*********************************************************/484.//蜂鸣器子程序485./*********************************************************/486.487.voidBeep() 488. {489. unsignedchari ;490. for(i=0 ;i<100 ;i)491. {492. delay(100) ;493. BEEP=!BEEP ; //Beep取反494. }495. BEEP=1 ; //关闭蜂鸣器496. delayms(100);497. }498.499./*********************************************************/500.//延时子程序501./*********************************************************/ 502.voiddelay(unsignedchart)503.{504. while(t--) ;505.}506.507./*********************************************************/508.//延时子程序509./*********************************************************/510.voiddelayms(unsignedcharms)511.512.{513. unsignedchari;514. while(ms--)515. {516. for(i=0;i<120;i);517. }518.}519.520./*********************************************************/521.#include522.#include523.524.sbit K1=P1^4; //增加键525.sbit K2=P1^5; //减少键526.sbit P00=P0^1;527.sbit BEEP=P3^7; //蜂鸣器528.unsignedcharPWM=0xe7; //赋初值529.530.voidBeep();531.voiddelayms(unsignedcharms);532.voiddelay(unsignedchart);533.534./*********************************************************/535.voidmain()536.{ 537.538. P1=0xff;539. TMOD=0x21;540. TH0=0xff; //50us延时常数541. TL0=0xce; //频率调节542.543. TH1=PWM; //脉宽调节544. TL1=0;545.546. EA=1;547. ET0=1;548. ET1=1;549. 550. TR0=1;551.552. while(1)553. {554. do{555. if(PWM!=0xff)556. {PWM;delayms(10);}557. elseBeep();558. }559. while(K1==0);560.561. do{562. if(PWM!=0xce)563. {PWM--;delayms(10);}564. elseBeep();565. }566. while(K2==0);567. }568.}569.570.voidtimer0()interrupt1571.{ 572. TR1=0;573. TH0=0xff;574. TL0=0xce;575. TH1=PWM;576. TR1=1;577. P00=0; //启动输出578.}579.580.581.voidtimer1()interrupt3582.{583. TR1=0;584. P00=1; //结束输出585.}586.587./*********************************************************/588.//蜂鸣器子程序589./*********************************************************/590.591.voidBeep() 592. {593. unsignedchari ;594. for(i=0 ;i<100 ;i)595. {596. delay(100) ;597. BEEP=!BEEP ; //Beep取反598. }599. BEEP=1 ; //关闭蜂鸣器600. delayms(100);601. }602.603./*********************************************************/604.//延时子程序605./*********************************************************/ 606.voiddelay(unsignedchart)607.{608. while(t--) ;609.}610.611./*********************************************************/612.//延时子程序613./*********************************************************/614.voiddelayms(unsignedcharms)615.616.{617. unsignedchari;618. while(ms--)619. {620. for(i=0;i<120;i);621. }622.}623.624./*********************************************************/
本文档为【C51代码(PWM)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。