|
单片机源程序如下:
- #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提供下载:
|
|