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

📄 中断.c

📁 单片机接口技术实用子程序配套源代码
💻 C
字号:
//-----------------------函数声明,变量定义--------------------------------------------------------
#include <reg51.h>
#include <intrins.h>
#include<ABSACC.H>	
unsigned char CH_data[8];
#define   CH0 XBYTE[0xFEF8]
#define   CH1 XBYTE[0xFEF9]
#define   CH2 XBYTE[0xFEFA]
#define   CH3 XBYTE[0xFEFB]
#define   CH4 XBYTE[0xFEFC]
#define   CH5 XBYTE[0xFEFD]
#define   CH6 XBYTE[0xFEFE]
#define   CH7 XBYTE[0xFEFF]
//-----------------------定义寻址的基址--------------------------------------------------------
#define base_Adr  0xFEF8   
//-----------------------定义地址指针,指向基址--------------------------------------------------------
unsigned char xdata *CH_base_Adr = base_Adr;
//--------------------------------------------------------------------------------------------------
// 函数名称: delay
// 入口参数: N
// 函数功能:延时子程序,实现(16*N+24)us的延时 
// 系统采用11.0592MHz的时钟时,延时满足要求,其它情况需要改动
//--------------------------------------------------------------------------------------------------
  void delay(unsigned  int N)  
  {
  int i; 
  for(i=0;i<N;i++);
  }
//--------------------------------------------------------------------------------------------------
// 函数名称:system_init
// 函数功能:系统初始化,初始化中断设置
//--------------------------------------------------------------------------------------------------
  void system_init()  
       {
        IT0=1;    //设定INT0为边沿触发
		EA=1;     //
		EX0=1;    //开放外部中断
       }
//------------------------------------------------------------------------------------------------------
// 函数名称 read_oneCH 
// 入口函数 CH_num通道号码(0~7)
// 出口函数 返回AD转换的值
// 函数功能 写外部数据存储区
//------------------------------------------------------------------------------------------------------
unsigned char read_oneCH(unsigned char CH_num)
           {
		    unsigned char ADC_data;
			*(CH_base_Adr+ CH_num)=0;             //选通通道,写入的值任意
            delay(0);                             //延时24us
            ADC_data= *( CH_base_Adr+ CH_num);    //读出AD转换的值
			return(ADC_data);
            }
//--------------------------------------------------------------------------------------------------
// 函数名称: INT0_intrupt
// 函数功能: 外部中断0处理程序:依次采集8个通道的电压信号
//--------------------------------------------------------------------------------------------------
void INT0_intrupt() interrupt 0 using 1
              {
		       unsigned char i;
               EA=0;         //系统中断禁止
		      for(i=0;i<8;i++)
		        {
			    CH_data[i]=read_oneCH(i);
			    }
			   EA=1;
}
//------------------------------------------------------------------------------------------------------
// 函数名称 main
// 函数功能 依次采集8个通道的电压信号
//------------------------------------------------------------------------------------------------------
void main()
         {
		system_init();
	       }

⌨️ 快捷键说明

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