基于单片机的大棚温湿度监测系统的设计-本科毕业论文(设计)(6)

2019-04-14 23:48

第二章系统硬件设计

18

南昌工程学院本科毕业设计(论文)

第三章系统软件设计

3.1 系统主程序设计方法

本系统使用的是Keil 软件,它是C51系列兼容单片机C语言软件开发系统,能够应用通俗易懂的高级C语言对单片机进行软件开发。

当然,在写程序之前必须要对系统的电路有足够的了解,各个接口,还有系统各个芯片或者模块的时序,在编程过程中都要对其遵守,那样才能将你所预设的功能付诸实现。在搞清楚了硬件的特性之后,根据该特性首先要做的就是画出流程图,组织好每个模块的处理先后顺序。另外,也要善于利用软件去替代部分硬件做的事情,比如在此设计里,消除键盘按键抖动现象就使用了软件除抖,使得硬件电路更简洁,也降低了系统总体成本。

所有的程序,使用C51编程语言,在keil开发环境中编译和调试,整个程序利用了中断技术、数字滤波技术、系数补偿技术以及其他先进技术。程序设计都分了模块,模块化的程序结构清晰,易于修改[8]。由以下主要模块组成:主程序模块、温湿度采集模块,报警模块、数据显示模块、按键模块和其他的附加模块。

图3.1是该系统的主程序流图。

19

第三章系统软件设计

有无按下设定键 是 进入设定子程序

是否超出设定值 开始 初始化 显示欢迎界面 调用读取实时温湿度子程序值 显示 否 否 是 输出报警

结束 图3.1 系统主程序流图

3.2 LCD1602显示子程序

首先要对LCD模块进行初始化,另外由于该器件是慢显器件,在对其进行操作前要先读忙标示,为低电平时操作才有效,这个读忙标示也可以用延时操作来替代,作用是一样的[9]。这些都可以放在 LCD_init(void) 里面去实现。根据程序功能思路,结

20

南昌工程学院本科毕业设计(论文)

合硬件特性,得出下面程序流图:

图3.2 LCD1602显示子程序流图

1602初始化 延时 有无按键按下 无 有 按键子程序 按键程序完成 读温湿度 否 读取成功? DHT11通信重启 线性拟合数据 1602显示数据 延时0.8s

下面给出LCD1602初始化代码:

void LCD_Initial()

21

第三章系统软件设计

{ E=0;

LCD_Write(LCD_COMMAND,0x38); //8位数据端口,2行显示,5*7点阵 LCD_Write(LCD_COMMAND,0x38);

LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //开启显示, 无光标 LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏

LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); }

将字符输出到液晶显示部分代码:

void Print(unsigned char *str) {

while(*str!='\\0') {

LCD_Write(LCD_DATA,*str); str++; } }

3.3 DHT11温湿度采集子程序

下面给出这部分程序的流图:

22

//AC递增, 画面不动


基于单片机的大棚温湿度监测系统的设计-本科毕业论文(设计)(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:历年司考商法试题--不定项选择及主观题部分

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

马上注册会员

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