900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > CC2530—MQ-2气敏式烟雾传感器

CC2530—MQ-2气敏式烟雾传感器

时间:2022-08-06 02:38:28

相关推荐

CC2530—MQ-2气敏式烟雾传感器

电路图

连接引脚:P07

寄存器设置

1、ADCCFG

模拟io使能:ADCCFG |= 0x80; //由于引脚为P07,第7位置为1(1000 0000)

模拟io禁用:ADCCFG &= (0x80^0xFF);

//(0x80^0xFF=1000 0000 ^ 1111 1111 = 0111 1111)该异或操作相当于取反,给第7位置为0。

2、ADCCON3

ECH[3:0]: 因为连接引脚为P07,所以通道选择AIN7,0到3位设为0111。

EDIV[5:4]:抽取率选择64(7位),4、5设置为00。

EREF[6:7]:选择AVDD5引脚,6、7位设置为10。

由此:ADCCON3 = 0x87; //(1000 01111)

3、ADCCON1

①开启转换,将第六位设置为1:ADCCON1 |= 0x40;

②循环检测ADCCON1的最高位是否为1,为1则代表转换完成:while(!(ADCCON1 & 0x80));//判断7位是否为1。

4、ADCL、ADCH

读取ADCL、ADCH的值。

驱动代码

uint16 myApp_ReadGasLevel(void){uint16 reading = 0;//P07作为模拟io,第七位设为1,(1000 0000)ADCCFG |= 0x80;//ADCCON3设置参考电压AVDD5引脚(10)。抽取率64,7位(00)。设置通道7:AIN7(0111)。(1000 0111)ADCCON3 = 0x87;//开启下一转换,ADCCON1第6位设为1ADCCON1 |= 0x40;//循环判断转换是否完成,ADCCON1高位是否唯一while(!(ADCCON & 0x80));//禁用使能,第七位设为0ADCDFG &= (0x80 ^ 0xFF);//读取ADCL、ADCHreading = ADCL;reading = (uint16)(ADCH << 8);reading >>= 8;return (reading);}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。