4.5 LED1602液晶显示部分的程序设计
对于人机交互式单片机系统来说,不仅需要响应用户输入,同时也需要将一些测控信息输出显示。这些显示信息可以提供实时的数据或图形结果,以便于掌握系统的状态并进行分析处理。目前,在单片机中最常用的是LED1602液晶显示屏。其成本低廉、使用简便,可以显示数字或几个特定的字符。 4.5.1显示流程图设计
LED1602液晶显示流程图如下图4-5所示。
图4-5 LED1602液晶显示流程
五 PM2.5粉尘检测仪的测试结果及结论
5.1 调试
调试过程中首先要检测的就是硬件电路的设计原理是否正确、能否达到预期效果以及实现方法是否简便等等;其次在焊接好难有线电路之后,认真检查电路的焊接情况。这次采用的是分块调试的方法,PM2.5粉尘检测电路,控制电路以及单片机控制电路进行调试。在对每个模块的进行调试过程中又采用了由局部到整体,由简单到复杂的调试方法,最后再将各个模块总和成一个整体。
19
在调试过程中遇到的问题有:
(1)由于在焊电路之前没有彻底调查过电阻的大小对PM2.5粉尘检测电路的影响,导致一直以为传感器不工作,显示屏是没有数据显示,后来换了合适的电阻,数据也检测出来了;
(2)在解码程序的编写过程中,经过多次的程序修改与硬件调试,基本上能很好地实现自动报警,智能开启换风机,及时改善空气环境的功能。
解决:对电路进行测试,如对单片机的输出管脚信号进行测试,观察是否存在漏焊,虚焊,或者元件损坏的现象。若无此问题查看烧写的程序是否正确无误,对程序进行认真修改。当显示亮度不好时阻器的阻值,直到看到合适的亮度为止。
经过多次的反复调试与分析,可以对电路的原理及功能更加熟悉,同时提高了设计能力与及对电路的分析能力。同时在软件的编程方面得到更到的提高,对编程能力得到加强,同时对所学的知识得到很大的提高与巩固。
如下为硬件实物图:
开关电源 1602LED液晶显示 PM2.5空气检测仪的设计与制作 LED灯显示 外接AT24C02,有掉电保存数据功能 GP2Y1010AUOF粉尘传感器每间隔10S更换一次采集浓度值检测更准确 STC12C5A60S2换风机系统,当超过预定值时自动转动 可通过手动按键设置报警值 声光报警系统,当超过预定值时自动报警
20
结论
经过一番努力后,粉尘测试仪设计的终于完成。在设计该粉尘测试仪的过程中,我首先按照粉尘检测仪的功能设计出其大致的电路电路方框图,然后分析各个功能模块:信号采集模块、信号转换模块、LED1602显示模块的。选好材后画出电路原理图,再到编写程序,最后进行仿真,这次课题设计可以说成功完成。说到编写程序是可花了不少功夫,因为该设计需要精确到小数位的个位,这个可给我带来了苦恼,在同学的帮助下最终解决了这个问题。实验结果表明此粉尘测试仪实现后具有读取方便、显示直观、电路简洁等优点,符合电子仪器仪表的发展趋势,具有良好的市场前景。
在整个设计过程中,充分发挥了人的主观能动性,自主学习,学到了许多没学到的知识。程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考查资料,和同学讨论,向老师请教,理清了思路,完成对程序的编写。通过设计提高了对单片机的认识,进一步熟悉和掌握单片机的结构及工作原理。通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术,提高软件设计、调试能力;通过这次设计熟悉以单片机核心的应用系统开发的全过程,掌握硬件电路设计的基本方法和技术,掌握相关电路参数的计算方法。最终较好的完成了设计,达到了预期的目的。
但是由于个人能力的原因,这个没能解决所显示的数字有些闪动的效果,以及焊接技能需要加强锻炼在功能方面是显得非常的简单,只实现了三个最基本的功能,还有许多不足和可以扩展的地方。例如实现粉尘检测系统智能化、人性化等,这些有待以后来弥补,还望各位老师予以指正和修改。
参 考 文 献
[1] 何立民.单片机应用技术选编[M].北京:北京航空航天大学出版社,1993:23-24 [2] 李卫东,李铁军,刘华,曹福德.HG-HC智能烟尘粉尘测量仪[J].仪器仪表学报,2004, [3] 董爱华,余琼芳.煤矿井下粉尘信号光电检测电路的研究[J] .仪器仪表学报,2003,[5] 董晓红.同步粉尘测试仪的设计与实现[D].成都:四川大学.2004
[4] 梅丽凤,王艳秋,汪琉铎,任国臣.单片机原理及接口技术[M].北京:清华大学出版社,2009:310-321.
[5] 唐娟.粉尘浓度在线监测技术的现状及发展趋势[J].矿业安全与保护,2009:69-74. [6] 吴泉英.数字式粉尘测试仪中的信号处理[J].苏州城建环保学院学报,1999:89-100
21
附录一:系统程序
主程序
//头文件
#include #include #include
#define uchar unsigned char #define uint unsigned int
//定义按键
sbit Key_Up_ = P3^4; sbit Key_Down = P3^5; //定义风扇
sbit fs = P2^0;
//定义蜂鸣器LED报警
sbit DUST_Warn = P3^3; sbit LED1 = P2^3; sbit LED2 = P2^4; //定义标识
uchar FlagStart = 0; sbit LED = P3^2;
//全局变量定义,
const char ADC = 0x00; //P1^0 uint Counter;
uint DUST_SET; //固体颗粒的阈值 float DUST_Value;
uchar ADC_Get[10]={0}; //定义AD采样数组 uchar num=0;
//函数声明
void Data_Init(); void Timernit(); void ADC_Init(); 0_Init();
void Port_I
22
uchar GetADVal(uchar); void KeyProcess(void);
//数据初始化 void Data_Init() {
Counter = 0; FlagStart=0; DUST_Value=0; DUST_Warn=1; LED=0; fs=1; }
//DS---185页 定时器初始化 定时10ms void Timer0_Init() {
//AUXR=0x80; //Time work in 1T mode TMOD = 1;
TL0 = (65536-30000)/256; TH0 = (65536-30000)%6; TR0 = 1; ET0 = 1; EA = 1; }
//定时器0中断
void Timer0_ISR (void) interrupt 1 using 0 {
uint i,j;
TL0 = (65536-30000)/256; TH0 = (65536-30000)%6;
LED=1; //开启传感器的LED
for (j=0;j<222;j++); //0.28ms //延时0.28ms
ADC_Get[num]=GetADVal(ADC); //开启ADC采集 num++; if(num>9) {
FlagStart=1; num=0;
TR0 = 0; //先关闭定时器0 EA = 0;
} //采集10次,关闭定时器0,进行数据处理// for (j=0;j<25;j++);
23
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库PM2.5空气质量检测仪的设计与制作 - 图文(5)在线全文阅读。
相关推荐: