adc0832的c语言程序,基于51单片机的ADC0832的C语言程序

#ifndef __ADC_0832_H #define __ADC_0832_H #include #include #include "hubj.h" sbit AD_Cs = P3^2; //ADC0832 chip seclect sbit AD_Clk = P3^3; //ADC0832 clock signal sbit AD_Di = P3^6; //ADC0832 data in sbit AD_Do = P3^6; //ADC0832 data out static uint AD_Conv ( ); void ADC_Fun ( ); #endif #include "adc_0832.h" extern uint Real_Temperature; extern bit Adc_Flag; uchar code CH = 0 x02; double MN = M * N; static uint AD_Conv ( ) { uchar i=0; uint data_f = 0, data_c = 0; AD_Di = 1; AD_Cs = 1; _nop_ ( ); AD_Cs = 0; AD_Di = 1; AD_Clk = 1; _nop_ ( ); _nop_ ( ); AD_Clk = 0; _nop_ ( ); _nop_ ( ); AD_Clk = 1; AD_Di = (bit)(0 x02 _nop_ ( ); AD_Clk = 0; _nop_ ( ); _nop_ ( ); AD_Clk = 1; AD_Di = (bit)(0 x01 _nop_ ( ); _nop_ ( ); AD_Clk = 0; // AD 转换 的初始化完成 AD_Di = 1; AD_Clk = 1; _nop_ ( ); _nop_ ( ); AD_Clk = 0; _nop_ ( ); AD_Clk = 1; for (i = 8; i > 0; i --) { data_f |= AD_Do; data_f < 0; i --) { data_c <<= 1; data_c |= AD_Do; _nop_ ( ); AD_Clk = 1; _nop_ ( ); _nop_ ( ); AD_Clk = 0; _nop_ ( ); } AD_Clk = 0; _nop_(); _nop_(); AD_Clk = 1; _nop_(); _nop_(); AD_Clk = 0; _nop_(); _nop_(); AD_Clk = 1; _nop_(); AD_Cs = 1; _nop_(); _nop_(); return data_f; } void ADC_Fun ( ) { uchar adc_data[10] ; // 定义一位数组,存放 AD 转化的 10 个值 uchar i; uint t, sum; double realT; /* 连续转化 10 次,转化的值存于数组中 */ for (i = 0; i < 10; i ++) { adc_data[i] = AD_Conv(); Delayms (1); } /* 挑出 10 个值中的最大值与最小值 */ for (i = 0; i adc_data[i] ) { t = adc_data[0]; adc_data[0] = adc_data[i]; adc_data[i] = t; } if (adc_data[9] < adc_data[i] ) { t = adc_data[9]; adc_data[9] = adc_data[i]; adc_data[9] = t; } } /* 求出剩余 8 个值的和 */ sum = adc_data[1] + adc_data[2] + adc_data[3] + adc_data[4] + adc_data[5] + adc_data[6] + adc_data[7] + adc_data[8]; /* 将 AD 转换值转变为对应的温度值,并赋值给实际温度变量 */ realT = (1.0 /127.0) * ( sum / 8 ) / MN; Real_Temperature = (uint)(realT); Adc_Flag = 1; }

展开阅读全文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值