資源簡介
proteus仿真adc0808多通道數據采集,8051時鐘為6MHz,利用8051中斷,巡回檢測4個通道,按鍵改變顯示通道。是學習8051中斷編程,ADC0808與MCU接口的好例子。

代碼片段和文件信息
#include?“reg51.h“
#include?“absacc.h“
#define?T0_H?((65536-5000)/256)//定時顯示刷率
#define?T0_L?((65536-5000)%256)
#define?T1_H?((65536-1000)/256)//采樣周期
#define?T1_L?((65536-1000)%256)
unsigned?char?value[4];
unsigned?char?data??ch=0;
unsigned?char?dch=0;
static?int?dink=0;
unsigned?int?Adress;
unsigned?char?code?seg_code[]={0xc00xF90xA40xB00x99//0-4
??????????????????0x920x820xF80x800x90//5-9
??0x880x830xC60xA10x86//AbCdE
??0x8E0xFF0x0C0x890x7F0xBF//F空格PH.-
};
unsigned???char??bit_code[]={0x010x020x040x08};
void?main()
{
?IT1=1;EX1=1;
?IT0=1;EX0=1;
?TMOD=0x11;
?TH0=T0_H;?TL0=T0_L;
?TH1=T1_H;?TL1=T1_L;
?ET0=1;ET1=1;TR0=1;TR1=1;
?EA=1;
?
?while(1);
}
void?EX1_INT()?interrupt?2
{
?Adress=P2<<8;
?Adress=Adress&0x7fff;
?value[ch]=XBYTE[Adress];
?ch++;
?if(ch>3)?ch=0;
?
?
}
//根據按鍵切換顯示通道
void?EX0_INT()?interrupt??0
{dch++;
?if?(dch>3)?dch=0;
}
//顯示通道dch的AD轉換值
void?T0_INT()?interrupt?1
{
?TH0=T0_H;?TL0=T0_L;
?d=n%10;n=n/10;
?P2=0;
?P1=seg_code[d];
?P2=bit_code[k];
?k++;
?if(n==0)?{
???n=value[dch];k=0;
?}
}
//每隔20ms檢測一個通道
?void?T1_INT()?interrupt?3
{?
??Adress=P2<<8;
??Adress=Adress&0x7fff;
??XBYTE[Adress]=ch;
?
??TH1=T1_H;?TL1=T1_L;
??
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????5115??2002-04-16?14:32??multiCh\STARTUP.A51
?????文件???????3226??2011-12-06?01:38??multiCh\adc0_3.plg
?????文件???????1303??2011-12-06?01:36??multiCh\adc0_3.c
?????文件??????11665??2011-12-06?01:36??multiCh\STARTUP.LST
?????文件?????????45??2011-12-06?01:36??multiCh\adc0_3.lnp
?????文件???????7594??2011-12-06?01:36??multiCh\adc0_3.M51
?????文件???????1960??2011-12-06?01:36??multiCh\adc0_3.hex
????.......??????2039??2011-12-02?02:54??multiCh\adc0_3_Uv2.Bak
?????文件???????2043??2011-12-02?04:47??multiCh\adc0_3.Uv2
?????文件???????1342??2011-12-06?01:10??multiCh\MultiCh.PWI
?????文件?????102327??2011-12-06?00:19??multiCh\Last?Loaded?MultiCh.DBK
?????文件?????102326??2011-12-06?01:10??multiCh\MultiCh.DSN
?????文件????????749??2011-12-06?01:36??multiCh\STARTUP.OBJ
?????文件???????3202??2011-12-06?01:36??multiCh\adc0_3.LST
?????文件???????6136??2011-12-06?01:36??multiCh\adc0_3.OBJ
?????文件???????6166??2011-12-06?01:36??multiCh\adc0_3
????.......??????1514??2011-12-05?09:02??multiCh\adc0_3_Opt.Bak
?????文件???????1539??2011-12-06?01:38??multiCh\adc0_3.Opt
?????文件?????299124??2011-12-06?23:32??multiCh\MultiCh.EMF
????..A.SH.??????9216??2011-12-06?23:37??multiCh\Thumbs.db
?????目錄??????????0??2011-12-02?00:42??multiCh
-----------?---------??----------?-----??----
???????????????568631????????????????????21
- 上一篇:STM32 IIC軟件模擬讀寫24C02
- 下一篇:0012校園網絡模擬-4.pkt
評論
共有 條評論