附件有程序,AD電路,仿真,以及詳細的操作手冊和文檔,
方便快速開發利用。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (17.63 KB, 下載次數: 84)
下載附件
2019-7-16 16:38 上傳
元件清單
1、9*15萬用板
2、stc89c51單片機
3、40腳IC座
4、ADC0832
5、8腳IC座
6、1602液晶
7、(粉塵傳感器、150歐姆電阻、220uf電容)
8、470uf電解電容
9、16p母座
10、16p排針
11、103排阻
12、30pf電容*2
13、10uf電容
14、12m晶振
15、10k電阻*2
16、1k電阻
17、2.2k電阻*3
18、220電阻
19、9012三極管
20、5mmLED(紅綠黃)
21、5V有源蜂鳴器
22、按鍵*3
23、自鎖開關
24、DC座
25、焊錫若干
26、導線若干
27、usb電源線
單片機源程序如下:
- sbit CS = P1^3;
- sbit Clk = P1^0;
- sbit DATI = P1^1;
- sbit DATO = P1^1;
- /*******************************定義全局變量********************************/
- unsigned int dat = 0x00; //AD值
- unsigned char CH; //通道變量
- unsigned char data dis[] = {0x00, 0x00,0x00,0x00}; //顯示數值
- unsigned char adc0832(unsigned char CH)
- {
- unsigned char i,test,adval;
- adval = 0x00;
- test = 0x00;
- Clk = 0; //初始化
- DATI = 1;
- _nop_();
- CS = 0;
- _nop_();
- Clk = 1;
- _nop_();
-
-
- if ( CH == 0x00 ) //通道選擇
- {
- Clk = 0;
- DATI = 1; //通道0的第一位
- _nop_();
- Clk = 1;
- _nop_();
- Clk = 0;
- DATI = 0; //通道0的第二位
- _nop_();
- Clk = 1;
- _nop_();
- }
- else
- {
- Clk = 0;
- DATI = 1; //通道1的第一位
- _nop_();
- Clk = 1;
- _nop_();
- Clk = 0;
- DATI = 1; //通道1的第二位
- _nop_();
- Clk = 1;
- _nop_();
- }
-
- Clk = 0;
- DATI = 1;
- for( i = 0;i < 8;i++ ) //讀取前8位的值
- {
- _nop_();
- adval <<= 1;
- Clk = 1;
- _nop_();
- Clk = 0;
- if (DATO)
- adval |= 0x01;
- else
- adval |= 0x00;
- }
- for (i = 0; i < 8; i++) //讀取后8位的值
- {
- test >>= 1;
- if (DATO)
- test |= 0x80;
- else
- test |= 0x00;
- _nop_();
- Clk = 1;
- _nop_();
- Clk = 0;
- }
- if (adval == test) //比較前8位與后8位的值,如果不相同舍去。若一直出現顯示為零,請將該行去掉
- dat = test;
- nop_();
- CS = 1; //釋放ADC0832
- DATO = 1;
- Clk = 1;
- return dat;
- }
復制代碼
所有資料51hei提供下載:
PW2.5資料.rar
(224.52 KB, 下載次數: 163)
2019-7-16 09:36 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|