單片機(jī)源程序如下:
- //**************************************************************************//
- // 程序名稱:直流電機(jī)測試程序
- // 功能描述:直流電機(jī)正轉(zhuǎn)2秒,反轉(zhuǎn)2秒,自動加速正轉(zhuǎn),自動減速反轉(zhuǎn),依次循環(huán)
- // 單片機(jī): AT89S52,外接12M晶振
- // 硬件連接:P1.0----IN1
- // P1.1----IN2
- // P1.2----ENA
- // 直流電機(jī)兩端分別接OUT1和OUT2,
- // 電機(jī)驅(qū)動電壓根據(jù)所接電機(jī)而定,驅(qū)動板芯片邏輯電壓為+5V
- //**************************************************************************//
- #include<reg52.h>
- sbit IN1=P1^0;
- sbit IN2=P1^1;
- sbit ENA=P1^2;
- void delay(unsigned int z);
- void delay_us(unsigned int aa);
- /*******************主函數(shù)**************************/
- void main()
- {
- while(1)
- {
- unsigned int i,cycle=0,T=2048;
- IN1=1; //正轉(zhuǎn)
- IN2=0;
- for(i=0;i<200;i++)
- {
- delay(10);//PWM占空比為50%,修改延時調(diào)整PWM脈沖
- ENA=~ENA;
- }
- IN1=0; //反轉(zhuǎn)
- IN2=1;
- for(i=0;i<100;i++)
- {
- delay(20);//PWM占空比為50%,修改延時調(diào)整PWM脈沖
- ENA=~ENA;
- }
- IN1=1; //自動加速正轉(zhuǎn)
- IN2=0;
- while(cycle!=T)
- { ENA=1;
- delay_us(cycle++);
- ENA=0;
- delay_us(T-cycle);
-
- }
- IN1=0; //自動減速反轉(zhuǎn)
- IN2=1;
- while(cycle!=T)
- { ENA=1;
- delay_us(cycle++);
- ENA=0;
- delay_us(T-cycle);
-
- }
- }
- }
- /******************z秒延時函數(shù)*************************/
- void delay(unsigned int z)
- {
- unsigned int x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- /****************微妙延時******************************/
- void delay_us(unsigned int aa)
- {
- while(aa--);
- }
復(fù)制代碼
所有資料51hei提供下載:
直流電機(jī)測試程序.rar
(19.69 KB, 下載次數(shù): 27)
2017-9-25 10:06 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|