1. 能夠檢測煤氣的濃度;
2. 液晶LCD1602顯示煤氣的濃度;
3. 超標進行聲光報警。
由于是仿真,煙霧濃度傳感器采用仿真里面的光敏傳感器代替,用ADC0832測電壓值。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
3.gif (111.09 KB)
下載附件
2021-7-12 00:45 上傳
部分源碼:完整源碼見附件
- void init()
- {
- write_com(0x38); //顯示模式設置:16×2顯示,5×7點陣,8位數據接口
- delay(20);
- write_com(0x0c); //顯示模式設置
- delay(20);
- write_com(0x06); //顯示模式設置:光標右移,字符不移
- delay(20);
- write_com(0x01); //清屏幕指令,將以前的顯示內容清除
- delay(20);
- }
- void dis(uchar k)
- {
- CO=k;
- write_com(0x80); //設置所要顯示字符的位置為第一行第一列
- a=0;
- for(a=0;a<3;a++) //總共要顯示3個字符,故循環三次。
- {
- write_data(table[a]);
- delay(10);
- }
- write_com(0x83); //顯示濃度百位
- write_data(0x30+CO/100);
- delay(10) ;
- write_com(0x84); //顯示濃度十位
- write_data(0x30+CO/10%10);
- delay(10) ;
- write_com(0x85); //顯示濃度個位
- write_data(0x30+CO%10);
- delay(10) ;
- write_com(0x86);
- write_data('%'); //顯示“%”
- delay(10) ;
-
- }
- unsigned char ad0832read(bit SGL,bit ODD)
- {
- unsigned char i=0,value=0,value1=0;
- SCL=0;
- DO=1;
- CS=0; //開始
- SCL=1; //第一個上升沿
- SCL=0;
- DO=SGL;
- SCL=1; //第二個上升沿
- SCL=0;
- DO=ODD;
- SCL=1; //第三個上升沿
- SCL=0; //第三個下降沿
- DO=1;
- for(i=0;i<8;i++)
- {
- SCL=1;
- SCL=0; //開始從第四個下降沿接收數據
- value<<=1;
- if(DO)
- value++;
- }
- for(i=0;i<8;i++)
- { //接收校驗數據
- value1>>=1;
- if(DO)
- value1+=0x80;
- SCL=1;
- SCL=0;
- }
- CS=1;
- SCL=1;
- if(value==value1) //與校驗數據比較,正確就返回數據,否則返回0
- return value;
- return 0;
- }
- void main()
- ……………………
- …………限于本文篇幅 余下代碼請下載附件…………
復制代碼 完整源碼和proteus仿真文件:
煤氣泄漏檢測報警器.rar
(51.17 KB, 售價: 2 E幣)
2021-7-12 00:46 上傳
點擊文件名下載附件
售價: 2 E幣 [記錄]
[ 購買]
【必讀】版權免責聲明
1、本主題所有言論和內容純屬會員個人意見,與本論壇立場無關。2、本站對所發內容真實性、客觀性、可用性不做任何保證也不負任何責任,網友之間僅出于學習目的進行交流。3、對提供的數字內容不擁有任何權利,其版權歸原著者擁有。請勿將該數字內容進行商業交易、轉載等行為,該內容只為學習所提供,使用后發生的一切問題與本站無關。 4、本網站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。 5、本網站所有軟件和資料均為網友推薦收集整理而來,僅供學習用途使用,請務必下載后兩小時內刪除,禁止商用。6、如有侵犯你版權的,請及時聯系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|