4051.c

来自「《单片机接口技术实用子程序》配套源代码,MCS-51系列单片机常用子程序」· C语言 代码 · 共 57 行

C
57
字号
//-----------------------函数声明,变量定义--------------------------------------------------------
#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 delayNOP(); {_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()
      {

	  }
//-------------------------------------------------------------------------------------------------------
//  函数名称: collection_data
//  功能说明: 数据采集子函数,与具体应用有关
//--------------------------------------------------------------------------------------------------------
void main()
     {
	 timer_set();
	 on_system_interrupt();
	 }

⌨️ 快捷键说明

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