普通直流电机调速调试程序- #include "reg52.h"
-
- typedef unsigned int u16;
- typedef unsigned char u8;
- sbit IN1 = P1^4; // 电机0为1正转
- sbit IN2 = P1^5;
- sbit PWM=P3^7;
- u16 timer1;
- void Timer1Init()
- {
- TMOD|=0X10;//选择为定时器1Z模式,工作方式1,仅用TR1打开启动。
- TH1 = 0xFF;
- TL1 = 0xff; //1us
-
- ET1=1;//打开定时器1中断允许
- EA=1;//打开总中断
- TR1=1;//打开定时器
- }
- void forward_1()
- {
- IN1 = 0, IN2 = 1;//电机0正转
- }
- void back_1()
- {
- IN1 = 1, IN2 = 0;//电机0反转
-
- }
- void main()
- {
- back_1();
- Timer1Init(); //定时器1初始化
- while(1)
- {
- if(timer1>1000)
- {
- timer1=0;
- }
-
- if(timer1 <50) //1000范围内调节占空比,越大转速越快
- {
- PWM=1;
- }
- else
- {
- PWM=0;
- }
- }
- }
- void Time1(void) interrupt 3 //3 为定时器1的中断号
- {
- TH1 = 0xff;
- TL1 = 0xFF; //1us
- timer1++;
-
-
- }
复制代码
|