|
單片機源程序如下:
- #include"AD.H"
- //UINT8 code tongdao[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07}; //通道選擇0-7
- int getad(UINT8 tongdao);
- void ad_init()
- {
- P1M0=0xff;
- P1M1=0xff; //P1口設置成開漏模式
- ADC_CONTR=0xe0; //開A/D控制寄存器 ADC_POWER(AD電源控制位) SPEED1、SPEED0(為轉換速率選擇位(都為1時)速度最快為210個時鐘/次) ADC_FLAG 轉換結束標志位 ADC_START:ADC轉換器的啟動控制位 CHS2、CHS1、CHS0:模擬量信號輸入通道選擇位
- delay(2000);
- }
- int getad(UINT8 tongdao) //轉換函數
- {
- UINT8 jieshu=0;
- int jieguo;
- ADC_CONTR|=tongdao;
- ADC_CONTR|=0x08;
- while(jieshu==0)
- {
- jieshu=(ADC_CONTR&0x10);
- }
- //jieguo=(ADC_DATA<<2)+ADC_LOW2; //5410ad單片機用數據調取
- jieguo=ADC_RES; //60s2單片機用數據調取
- ADC_CONTR&=0xef;
- return (jieguo);
- }
- float qiuzhi(UINT8 tongdao) //濾波求值函數
- {
- float junzhi=0;
- UINT8 i;
- for(i=15;i>0;i--)
- {
- junzhi+=getad(tongdao);
- }
- junzhi/=15.0;
- junzhi=((junzhi*5.0)/0.256)+5;
- //junzhi=junzhi*0.13-30.0;
- //junzhi=junzhi/6.5536;
- junzhi=(2507-junzhi)/0.86;
- return (junzhi);
- }
復制代碼
所有資料51hei提供下載:
|
|