1.c

来自「数据采集模拟端口选择」· C语言 代码 · 共 65 行

C
65
字号
#include<reg51.h>
#include<intrins.h>
sbit sel_A=P1^1;
sbit sel_B=P1^2;
sbit sel_C=P1^3;
unsigned char ABC;
void timer_set();//定时器初始化函数
void collection_data();//采集函数声明
#define dalayNOP();{_nop_();_nop_();_nop_();_nop_();};
//----------------------------------------------------------------------------
#define on_system_interrupt();{EA=1;};//打开系统中断允许,与硬件有关
#define off_system_interrupt();{EA=0;};//关掉系统中断允许,与硬件有关

//----------------------------------------------------------------------------
//函数名称:TIMER-SET
//功能说明;设定定时器工作状态,与硬件有关
//------------------------------------------------------------------------------

void timer_set()
{
  TMOD=0X22;//定时器1为工作模式2(8位自动重装),0为模式2(8位自动重装)
  PCON=0X00;
  TH0=(256-100);//100微秒定时
  TL0=TH0;
  ET0=1;
}

//--------------------------------------------------------------------------------
//函数名称:INTTIMER0()
//功能说明:定时器中断函数,与硬件有关,但不做处理,直接调用通用中断处理函数
//---------------------------------------------------------------------------------

void intTimer0()interrupt 1
{
  off_system_interrupt();
  ABC++;
  sel_A=ABC&0x01;
  sel_B=ABC&0x02;
  sel_C=ABC&0x03;
  delayNOP();//定时消除抖动
  collection_data();
  on_system_interrupt();
}

//----------------------------------------------------------------------------------
//函数名称:COLLECTION——DATA(
//功能说明:数据采集子函数,与具体应用有关
//----------------------------------------------------------------------------------

void collection_data()
{
 
}

//----------------------------------------------------------------------------------------
//函数名称:MAIN()
//功能说明:一个程序的关键
//-----------------------------------------------------------------------------------------

void main()
{
  timer_set();
  on_system_interrupt();
}

⌨️ 快捷键说明

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