|
51單片機的煙霧報警系統原理圖:
0.png (32.26 KB, 下載次數: 106)
下載附件
2017-4-7 21:44 上傳
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)
2017-4-7 20:50 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
|