原理圖: 以下兩張圖原理一樣,只是位置不一樣,方便你排版
1.png (165.25 KB, 下載次數(shù): 66)
下載附件
2022-4-22 17:38 上傳
2.png (145.43 KB, 下載次數(shù): 47)
下載附件
2022-4-22 17:38 上傳
仿真結(jié)果:
示波器顯示脈沖
3.png (87.95 KB, 下載次數(shù): 50)
下載附件
2022-4-22 17:38 上傳
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
電壓表顯示輸入輸出電壓:
4.png (37.75 KB, 下載次數(shù): 48)
下載附件
2022-4-22 17:38 上傳
51hei.gif (168.2 KB, 下載次數(shù): 55)
下載附件
2022-4-22 20:25 上傳
單片機(jī)源程序如下: - #include<reg51.h>
- sbit PWM=P2^0; // 定義P2.0輸出pwm脈沖
- unsigned char DutyCount = 0; // 定義占空比的計(jì)數(shù)變量
- unsigned char Duty = 50; // 定義占空比,初始值為50%,可調(diào)
- void main()
- {
- // 初始化定時(shí)器0 , 0.001ms 1Mhz
- TMOD=0x01; //定時(shí)器0工作方式1
- TH0=0xff; //定時(shí)器高八位賦初值 :(65536-12)/256;
- TL0=0xf4; //定時(shí)器低八位賦初值 :(65536-12)%256
- EA=1; //開總中斷
- ET0=1; //開定時(shí)器0中斷
- TR0=1; //啟動定時(shí)器0
- while(1)
- {
- ;//nothing to do!!!
- }
- }
-
- void tim0() interrupt 1 //定時(shí)器0中斷服務(wù)函數(shù)
- {
-
- TR0=0; //賦初值時(shí),暫時(shí)關(guān)閉定時(shí)器
- TH0=0xff; //定時(shí)器高八位賦初值 :(65536-12)/256;
- TL0=0xf4; //定時(shí)器低八位賦初值 :(65536-12)%256
- TR0=1; //打開定時(shí)器
-
- DutyCount++; //計(jì)數(shù)器自加
-
- if(DutyCount>=100) //10khz
- {
- DutyCount=0;
- }
- if(DutyCount<=Duty) //占空比%50,可改
- {
- PWM=1;
- }else
- {
- PWM=0;
- }
-
- }
復(fù)制代碼
Keil5代碼與Proteus8.8仿真下載:
仿真程序.7z
(274.25 KB, 下載次數(shù): 72)
2022-4-22 20:24 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|