|
8路8位串行AD TLC0838與51系列單片機(jī)的接口程序,可多片并聯(lián),共用時(shí)鐘線與數(shù)據(jù)線適用于多路采集,本程序中使用兩片可采集16路
完整代碼下載:
0838.rar
(722 Bytes, 下載次數(shù): 33)
2016-6-23 21:57 上傳
點(diǎn)擊文件名下載附件
- void main(void)
- {
- Byte data1;
- data1=AD_0838(0,2);
- while(1);
- }
- /**********************************************************
- 目的:運(yùn)用TLC0838,輸入通道值,讀取AD轉(zhuǎn)換值
- 輸入?yún)?shù):1、通道值TDZ
- 輸出參數(shù):1、AD轉(zhuǎn)換結(jié)果AD_JG
- 相關(guān)管腳:1、ADCS1=P1^3 第一個(gè)0838-AD片選 2、ADCS2=P1^0 第二個(gè)0838-AD片選
- 3、ADCLK=P1^1 0832-AD時(shí)鐘 4 、ADIO=P1^4 0832-AD數(shù)據(jù)
- */
- Byte AD_0838(Byte TDZ,Byte Number)
- {
- Byte Bit[8];
- Byte TDZ_MID;
- Byte i;
- Byte AD_JG=0x00;
- Bit[0]=0x01;
- Bit[1]=0x02;
- Bit[2]=0x04;
- Bit[3]=0x08;
- Bit[4]=0x10;
- Bit[5]=0x20;
- Bit[6]=0x40;
- Bit[7]=0x80;
- switch(TDZ)
- {
- case 0 :TDZ_MID=0x18;break;
- case 1 :TDZ_MID=0x1c;break;
- case 2 :TDZ_MID=0x19;break;
- case 3 :TDZ_MID=0x1d;break;
- case 4 :TDZ_MID=0x1a;break;
- case 5 :TDZ_MID=0x1e;break;
- case 6 :TDZ_MID=0x1b;break;
- case 7 :TDZ_MID=0x1f;break;
- }
- switch(Number)
- {
- case 1:ADCS1=1;break;
- case 2:ADCS2=1;break;
- }
- RS_ADIO=0;
- CM8880CLK_ADCLK=0;
- switch(Number)
- {
- case 1:ADCS1=0;break;
- case 2:ADCS2=0;break;
- }
- for(i=5;i>0;i--)
- {
- RS_ADIO=TDZ_MID&Bit[i-1];
- AD_0838_Pulse();
- }
- CM8880CLK_ADCLK=1;
- for(i=8;i>0;i--)
- {
- AD_0838_Pulse();
- if(RS_ADIO)AD_JG|=Bit[i-1];
- }
- switch(Number)
- {
- case 1:ADCS1=1;break;
- case 2:ADCS2=1;break;
- }
- return AD_JG;
- }
- void AD_0838_Pulse(void)
- {
- Byte i;
- CM8880CLK_ADCLK=1; //get a pulse about 52 us
- for(i=0;i<4;i++)
- {
- _nop_();
- }
- CM8880CLK_ADCLK=0;
- for(i=0;i<4;i++)
- {
- _nop_();
- }
- }
復(fù)制代碼
|
|