国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee
ELEOK
標題:
51單片機pwm控制直流電機,內含程序源碼及Proteus仿真電路圖
[打印本頁]
作者:
風兒吹
時間:
2020-6-6 09:42
標題:
51單片機pwm控制直流電機,內含程序源碼及Proteus仿真電路圖
pwm控制直流電機,內含程序源碼及仿真電路圖
51單片機pwm控制直流電機.zip
(66.11 KB, 售價: 2 E幣)
2020-6-6 13:11 上傳
點擊文件名下載附件
售價: 2 E幣
[記錄]
[
購買
]
1.png
(38.28 KB)
下載附件
2020-6-6 13:06 上傳
部分代碼:
/*以下是一段產生占空比為20%的脈沖信號的c51程序,我想電機轉速*/
/*對應于一定的占空比,如果你要改變占空比,可能需要建立一個對應*/
/*于不同轉速的參數表(如定時器初值等),查表*/
/*得到不同參數,以改變占空比和轉速。你用什么驅動電路?*/
/*采用6MHz晶振,在P1.0腳上輸出周期為2.5s,占空比為20%的脈沖信號*/
/*定時100ms,周期2.5s需25次中斷,高電平0.5s需5次中斷*/
#include <reg51.h>
typedef unsigned char uchar;
sbit P0_0=P0^0;
sbit P0_1=P0^1;
sbit P0_2=P0^2;
sbit P0_3=P0^3;
sbit P2_0=P2^0;
sbit P2_1=P2^1;
uchar time=0;
uchar period=25;
uchar high=10;
uchar th1=0;
uchar tl1=0;
uchar th0=0;
uchar tl0=0;
void timer0() interrupt 1 using 1
{
TH0=0x3c; /*定時器初值重裝載*/
TL0=0xb0;
//TH0=0xc3;/*定時器初值重裝載*/
//TL0=0x50;
time++;
if(time==high) /*高電平持續時間結束,變低*/
{ P2_0=tl0;
P2_1=tl1;
}
else if(time==period) /*周期時間到,變高*/
{ time=0;
P2_0=th0;
P2_1=th1;
}
}
void main()
{
TMOD=0x01; /*定時器0方式1*/
TH0=0x3c; /*定時器裝載初值,設置脈沖信號的占空比為1/5*/
TL0=0xb0;
//TH0=0xc3;/*定時器裝載初值,設置脈沖信號的占空比為4/5*/
//TL0=0x50;
EA=1; /*開CPU中斷*/
ET0=1; /*開定時器0中斷*/
TR0=1;/*啟動定時器0*/
if(P0_2==1)
復制代碼
歡迎光臨 ELEOK (http://m.afoofa.cn/)
Powered by Discuz! X5.0