我提供您主要思路好了:
ADC0832可以同时采集两路AD。对于DS18B20来讲,它是单总线的,可以数据口直接挂单片机就OK了,MQ2是模拟信号输出,需要接ADC0832的一个输入口,如IN0,然后输出给单片机即可。至于数码管,兄弟总知道怎么做了吧。
如果实在不知道,请加我吧:417179642
1、spi是一个通信协议,spi器件其实就是一个电平转换器不是单片机
2、按键去抖就是按键加延时
3、ad是电压信号采集
4、最小系统是单片机能运作起来的最简装置(姑且这么说吧)
5、没看到电路我怎么知道
6、也不知道你写啥程序啊
7、不知道你啥器件啊
8、也不知道用的啥温度传感器呀
9、没有具体的信息这个也答不了呀
10、采集电压信号有的哦。最小分辨率是10的2次幂分之一伏特
11、你得把问题详细点
12、有32个i0口;没做出来我也不知道你用了哪些啊。
还有什么问题继续问我吧,不过你得问的详细点啊!
我就18B20的
/us级延时函数 /
//
void Delay(unsigned int num)
{
while( --num ) ;
}
/初始化ds1820 /
//
Init_DS18B20(void)
{
DQ = 1 ; //DQ复位
Delay(8) ; //稍做延时
DQ = 0 ; //单片机将DQ拉低
Delay(90) ; //精确延时 大于 480us
DQ = 1 ; //拉高总线
Delay(8) ;
presence = DQ ; //如果=0则初始化成功 =1则初始化失败
Delay(100) ;
DQ = 1 ;
return(presence) ; //返回信号,0=presence,1= no presence
}
/ 读一个字节 /
//
ReadOneChar(void)
{
unsigned char i = 0 ;
unsigned char dat = 0 ;
for (i = 8 ; i > 0 ; i--)
{
DQ = 0 ; // 给脉冲信号
dat >>= 1 ;
DQ = 1 ; // 给脉冲信号
if(DQ)
dat |= 0x80 ;
Delay(4) ;
}
return (dat) ;
}
/ 写一个字节 /
//
WriteOneChar(unsigned char dat)
{
unsigned char i = 0 ;
for (i = 8 ; i > 0 ; i--)
{
DQ = 0 ;
DQ = dat&0x01 ;
Delay(5) ;
DQ = 1 ;
dat>>=1 ;
}
}
/ 读取温度 /
//
Read_Temperature(void)
{
Init_DS18B20() ;
WriteOneChar(0xCC) ; // 跳过读序号列号的 *** 作
WriteOneChar(0x44) ; // 启动温度转换
Init_DS18B20() ;
WriteOneChar(0xCC) ; //跳过读序号列号的 *** 作
WriteOneChar(0xBE) ; //读取温度寄存器
temp_data[0] = ReadOneChar() ; //温度低8位
temp_data[1] = ReadOneChar() ; //温度高8位
}
以上就是关于各位大侠 :基于STC89c52单片机 烟雾传感器MQ2 温度传感器DS18B20 ADC0832 数码管显示全部的内容,包括:各位大侠 :基于STC89c52单片机 烟雾传感器MQ2 温度传感器DS18B20 ADC0832 数码管显示、基于STC89C52单片机的烟雾报警器的相关问题 烟雾器MQ2 AD转换芯片ADC0832 温度传感器DS18B20、求STC89C51型单片机与DS18B20传感器和MQ-2烟雾传感器电路连接图(A\D转换),及软件控制程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)