参考文献
[1] 李文忠,段朝玉 .短距离无线数据通信[M].北京:北京航空航天大学出版社,2006.
[2] 李艳红,李海华.传感器原理及其应用[M].北京:北京理工大学出版社,2010.
[3] 傅扬烈. 单片机原理与应用教程[M].北京:电子工业出版社,2002. [4] 谭浩强.C程序设计[M].北京:清华大学出版社,1999 .
[5] 何希才, 薛永毅.传感器及其应用实例[M].北京:机械工业出版社,2004.
[6] Simon Haykin,Machael Moher,郑宝玉.现代无线通信[M].北京:电子工业出版社, 2006.
[7] 武庆生,仇梅.单片机原理与应用[M].成都:电子科技大学出版社,1998. [8] 周航慈.单片机应用程序设计技术[M].北京:北京航空航天大学出版社,1991.
[9] 郭天祥.51单片机C语言教程[M].北京:电子工业出版社,2009.36-92 [10] 王新贤.通用集成电路速查手册第二版.[M] 山东科学技术出版社,22-57
26
附录1:系统整体电路原理图
27
附录2:系统设计部分源程序
#include\ //添加LCD1602头文件 #include\添加ADC0832头文件 //#include\
sbit BUZZER = P1^3; //蜂鸣器驱动端口==P1^2
sbit Reduc = P1^7; //按键键输入端口==P1^7 sbit Add = P3^0; //按键加输入端口==P3^1
sbit vled = P3^2;
void Delay1us(uint t) //@12MHz {
while(t--)_nop_(); }
uint read_data(uchar N) {
uint val=0; vled=0;
Delay1us(20); val=adc0832(N); vled=1;
Delay1us(400); return val; }
/************************************************ ** 函数名称 : void main(void) ** 函数功能 : 主函数 ** 输 入 : 无 ** 输 出 : 无 ** 说 明 :
************************************************/ void main(void) {
double PM,pm1,pm2;
int PMVAL=0,HPM=200,PM_count=0,pm1_count=0;
28
uchar bueezr_flag=0,bueezr_count=0,buzzer_time=25;//蜂鸣器报警变量 LCD_Init();
WriteChar(1,0,16,\ WriteChar(2,0,16,\while(1) { Delay(120); pm1+=read_data(1); if(++PM_count>=40) { PM_count=0; pm1=pm1/40; pm2+=pm1; if(++pm1_count>=3) { PM=pm2/3; PM=PM*50/255; PM-=4; PM/=5; PM*=1000; PMVAL=PM; PMVAL+=235; if(PMVAL>=9999)PMVAL=9999; if(PMVAL<=0)PMVAL=0; WriteCOMDATA(0x83,0); WriteCOMDATA(PMVAL/1000+0x30,1); WriteCOMDATA(PMVAL/100+0x30,1); WriteCOMDATA(PMVAL/10+0x30,1); WriteCOMDATA(PMVAL+0x30,1); PM=pm1=pm2=0; } } //PM值与报警值比较 if(PMVAL>HPM) { bueezr_flag=1; } else { bueezr_flag=0;
29
BUZZER=1; } if(PMVAL>=100) WriteChar(1,12,4,\ else if((PMVAL<100)&&(PMVAL>=50)) WriteChar(1,12,4,\ else if(PMVAL<50) WriteChar(1,12,4,\ /*******蜂鸣器报警********/
bueezr_count++;if(bueezr_count>buzzer_time*10)bueezr_count=buzzer_time+1; if(bueezr_count%buzzer_time==0 && bueezr_flag) { BUZZER=~BUZZER;//蜂鸣器取反 发出声音提示 } if(!Reduc) { Delay(100); HPM--; WriteCOMDATA(0xC7,0); WriteCOMDATA(HPM/1000+0x30,1); WriteCOMDATA(HPM/100+0x30,1); WriteCOMDATA(HPM/10+0x30,1); WriteCOMDATA(HPM+0x30,1); } if(!Add) { Delay(100); HPM++; WriteCOMDATA(0xC7,0); WriteCOMDATA(HPM/1000+0x30,1); WriteCOMDATA(HPM/100+0x30,1); WriteCOMDATA(HPM/10+0x30,1); WriteCOMDATA(HPM+0x30,1); } } }
/************************************************ * 编写时间: 2016.05.09
30
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库一种基于51单片机的粉尘监测系统的设计—定稿 - 图文(7)在线全文阅读。
相关推荐: