C51单片机模拟电机调速,为什么无法实现调速
 #include<reg52.h>
 sbit motor_1=P2^4;
 sbit motor_2=P2^5;
 sbit motor_3=P2^6;
 sbit motor_4=P2^7; 
 static int count;
static int dc1,dc2,dc3,dc4;
 void timer0_init()   
 {

    TMOD=0x11;     //1ms    
    TH0=0Xfc;     
    TL0=0X66;             
    TR0=1;
 }
 void int_Init()

 {
    ET0=1;      
    EA=1;
 }  
  void time0_int() interrupt 1
  {
    count++;
    if(1000==count)
    {
        count=0;
    }
  }

   void pwm_motor_1(unsigned int dc1)   
 {
    if(count<(dc1*100))
        motor_1=1;
      else
        motor_1=0;      
 }
 void pwm_motor_2(unsigned int dc2)  
 {
    if(count<(dc2*100)) 
        motor_2=1;
      else
        motor_2=0;  
 }
 void pwm_motor_3(unsigned int dc3)  
 {
    if(count<(dc3*100)) 
        motor_3=1;
      else
        motor_3=0;  
 }
 void pwm_motor_4(unsigned int dc4)  
 {
    if(count<(dc4*100)) 
        motor_4=1;
      else
        motor_4=0;  
 }
 void main()
 {

    timer0_init();
    int_Init();

    while(1)
    {
        dc1=1;
        dc2=0;
        dc3=10;
        dc4=0;
        pwm_motor_1(dc1);
        pwm_motor_2(dc2);
        pwm_motor_3(dc3);
        pwm_motor_4(dc4);
    }

 }

2个回答

count 定义为 static 是不可修改的!怎么累加?

Tiger_Zhao
Tiger_Zhao 回复qq_16690637: 逻辑对不对自己去画曲线验证啊,外人又不知道怎样的曲线才是正确的。
接近 3 年之前 回复
qq_16690637
笔杆 之前是 int 类型不行,调试过了应该不是这儿的问题,我想知道是不是调速逻辑上的问题,或者是定时器设置的问题
接近 3 年之前 回复

count的值是不确定的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问