?? 中斷.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 + -