|
51单片机的烟雾报警系统原理图:
51单片机源代码:
- #include <reg52.h>
- #include <intrins.h>
- sfr P1ASF = 0x9D;
- sfr ADC_CONTR = 0XBC;
- sfr ADC_RES = 0xBD;
- sfr ADC_RESL = 0xBE;
- void adc_init()
- {
- P1ASF=0x03;//选择adc通道为p1.0
- ADC_RES=0;
- ADC_RESL=0;
- //ADC_POWER=1; CHS2,1,0为0,用p1.0作为输入。SPEED1,0为0,540个时钟,
- ADC_CONTR=0x80;
- }
- unsigned int read_adc1()
- {
- unsigned int ywdata;
- ADC_RES=0;
- ADC_RESL=0;
- ADC_CONTR=0x88;//开启adc测量
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- while(!(ADC_CONTR & 0X10));//查询数据标志位
- ADC_CONTR &= ~0X10; //软件清0
- ywdata |= ADC_RES;
- ywdata <<= 2;
- ywdata |= ADC_RESL;
- ADC_CONTR&=0x7f; //关闭电源
- return ywdata;
- }
- unsigned int read_adc2()
- {
- unsigned int ywdata;
- ADC_RES=0;
- ADC_RESL=0;
- ADC_CONTR=0x89;//开启adc测量
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- while(!(ADC_CONTR & 0X10));//查询数据标志位
- ADC_CONTR &= ~0X10; //软件清0
- ywdata |= ADC_RES;
- ywdata <<= 2;
- ywdata |= ADC_RESL;
- ADC_CONTR&=0x7f; //关闭电源
- return ywdata;
- }
复制代码
原理图下载:
原理图.doc
(60.5 KB, 下载次数: 50)
|
|