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

📄 impulse.c

📁 数据采集及A/D转换滤波处理采用数字滤波
💻 C
字号:
            //用定时器0和定时器1分别产生周期为60ms和2.5ms的两种脉冲
#include <absacc.h>  //头文件
#include <intrins.h>
#include <reg52.h>
#include <ctype.h>

#define uchar unsigned char  //宏定义
uchar data i=0,j=0;          //定义全局变量

sbit T_INT0=P2^0;            //位定义
sbit T_INT1=P2^1;
sbit DIRECTION=P2^2;
sbit WDI=P2^4;
sbit LED=P0^0;

void initial(void);        //函数(子程序)声明
void delay(void);

main()                      //主程序
{
  for(i=0;i<5;i++)          //灯闪五次
  {
    for(j=0;j<100;j++)
    {
      delay();
    }
    LED=0;
    for(j=0;j<100;j++)
    {
      delay();
    }
    LED=1;
  }
  initial();         //调用初始化子程序
  DIRECTION=0;
  TR0=1;             //启动定时器1
  delay();           //延时1ms
  TR1=1;             //启动定时器0
  for(;;)            //主循环
  {
  }
}

void initial(void)      //初始化子程序
{
  TMOD=0x11;            //定时器0和1都选择方式1
  TH0=-(30000/256);     //定时器0初值   晶振6CLK 每个机器周期2微秒
  TL0=-(30000%256);
  TH1=-(1250/256);      //定时器1初值
  TL1=-(1250%256);
  EA=1;                 //CPU开中断
  ET0=1;                //定时器0开中断
  ET1=1;                //定时器1开中断
}

void timer0() interrupt 1 using 1    //定时器0中断子程序
{
  T_INT0=0;                          //下降沿来触发主机外部中断0
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  T_INT0=1;                          //变高电平
  TH0=-(30000/256);                  //定时器0重载初值
  TL0=-(3000%256);
}

void timer1() interrupt 3 using 3     //定时器1中断子程序
{
  T_INT1=0;                           //下降沿来触发主机外部中断1
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  T_INT1=1;                           //变高电平
  TH1=-(1250/256);                    //定时器1重载初值
  TL1=-(1250%256);
}

 void delay(void)                    //延时子程序
{
  uchar a;                           //局部变量
  for (a=0;a<100;a++)
  {
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    WDI=!WDI;
    _nop_();
  }
}

⌨️ 快捷键说明

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