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