一种基于51单片机的粉尘监测系统的设计—定稿 - 图文(7)

2019-04-21 20:24

参考文献

[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


一种基于51单片机的粉尘监测系统的设计—定稿 - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:稀土厚膜电热芯片设计应用指南0130 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: