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)
復制代碼
【必讀】版權免責聲明
1、本主題所有言論和內容純屬會員個人意見,與本論壇立場無關。2、本站對所發內容真實性、客觀性、可用性不做任何保證也不負任何責任,網友之間僅出于學習目的進行交流。3、對提供的數字內容不擁有任何權利,其版權歸原著者擁有。請勿將該數字內容進行商業交易、轉載等行為,該內容只為學習所提供,使用后發生的一切問題與本站無關。 4、本網站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。 5、本網站所有軟件和資料均為網友推薦收集整理而來,僅供學習用途使用,請務必下載后兩小時內刪除,禁止商用。6、如有侵犯你版權的,請及時聯系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|