⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.c

📁 基于ADuC831的用于直流电机稳速控制中的PWM信号的给定
💻 C
字号:
#include <stdio.h>
#include <ADuC831.h>
#include <MATH.H>
#include <intrins.h>
 int read_dac(void);
 int start_stage(void);
 int middle_stage(void);

main()
{
 
 P0 = 0xFF;
                     //(P1=0x00 的设置删除,因为要将P0口设置为数据输入端,才设置为00H)
 P2 = 0x0F;
 
 RD = 0;             //令SD为0,使IR2133的SD端为0
 WR = 0;             //令F_CLR清零

 _nop_();            //空两个时钟周期
 _nop_();

 WR = 1;             //令F_CLR为1,即IR2133每次需要上电清除错误


 _nop_();                          //空两个时钟周期
 _nop_();

   TMOD=0x11;
   IT1=1;                             //设置T0 T1为下降沿触发
   IT0=1;
                          //(ADCCON的设置删除)
   ADCCON1=0xec;          //(已修改,原来是0xe8)
   ADCCON2=0x27;
   PWMCON=0x93;           //(已修改,原来是0x13),关闭P2.6
   DACCON=0x7E;                    //设置DACCON,让DAC启动

 

  
 
 while(1)
 {   
   while(P1_5==1)
    {
     EA=0;                               //设置wacthdog,2s delay
     WDWR=1;
     WDCON=0x72;                   
     EA=1;
	read_dac();     
    start_stage();
    WDE=1;              //喂狗
    }
 } 
}
 int read_dac(void)
{ 
  bit a;
  DAC1H=P2&0x0f;                   //读高4位到DAC1H
  B=P0;
  a=B_0;                          //低8位翻转     
  B_0=B_7;
  B_7=a;
  a=B_1;
  B_1=B_6;
  B_6=a;
  a=B_2;
  B_2=B_5;
  B_5=a;
  a=B_3;
  B_3=B_4;
  B_4=a;

  DAC1L=B;                         //读低8位到DAC1L
  
  
  
  return 0;
}

int start_stage(void)         //电机启动时,输出PWM
{

 
 ADCDATAH=0xFF;
 ADCDATAL=0xFF;
 PWM1L=0xFF;                  //PWM1L=0xFF;
 PWM1H=0x07;                  //PWM1H=0x0F; 将PWM频率提高一倍,5.9K 
                             //PWM0L=ADCDATAL;      //选择PWM工作模式1,12位PWM给定,在初始阶段给电机加速
                              //PWM0H=0x0F&ADCDATAH;   //读取AD7口的模拟电压量
 if(ADCDATAH%2==1)
 { PWM0L=(ADCDATAL>>1)|0x80;
   PWM0H=0x0F&((0x0F&ADCDATAH)>>1);
  }
 else
 { PWM0L=ADCDATAL>>1;
   PWM0H=0x0F&((0x0F&ADCDATAH)>>1);
  } 


                //由于ADC采样回的满值为4096,要除以2,故将PWM0H/L寄存器里面值顺次右移1位
  return 0;
 }



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -