课程设计电脑显示的数字温湿度计设计资料.docx

上传人:b****3 文档编号:3862621 上传时间:2023-05-06 格式:DOCX 页数:22 大小:2.38MB
下载 相关 举报
课程设计电脑显示的数字温湿度计设计资料.docx_第1页
第1页 / 共22页
课程设计电脑显示的数字温湿度计设计资料.docx_第2页
第2页 / 共22页
课程设计电脑显示的数字温湿度计设计资料.docx_第3页
第3页 / 共22页
课程设计电脑显示的数字温湿度计设计资料.docx_第4页
第4页 / 共22页
课程设计电脑显示的数字温湿度计设计资料.docx_第5页
第5页 / 共22页
课程设计电脑显示的数字温湿度计设计资料.docx_第6页
第6页 / 共22页
课程设计电脑显示的数字温湿度计设计资料.docx_第7页
第7页 / 共22页
课程设计电脑显示的数字温湿度计设计资料.docx_第8页
第8页 / 共22页
课程设计电脑显示的数字温湿度计设计资料.docx_第9页
第9页 / 共22页
课程设计电脑显示的数字温湿度计设计资料.docx_第10页
第10页 / 共22页
课程设计电脑显示的数字温湿度计设计资料.docx_第11页
第11页 / 共22页
课程设计电脑显示的数字温湿度计设计资料.docx_第12页
第12页 / 共22页
课程设计电脑显示的数字温湿度计设计资料.docx_第13页
第13页 / 共22页
课程设计电脑显示的数字温湿度计设计资料.docx_第14页
第14页 / 共22页
课程设计电脑显示的数字温湿度计设计资料.docx_第15页
第15页 / 共22页
课程设计电脑显示的数字温湿度计设计资料.docx_第16页
第16页 / 共22页
课程设计电脑显示的数字温湿度计设计资料.docx_第17页
第17页 / 共22页
课程设计电脑显示的数字温湿度计设计资料.docx_第18页
第18页 / 共22页
课程设计电脑显示的数字温湿度计设计资料.docx_第19页
第19页 / 共22页
课程设计电脑显示的数字温湿度计设计资料.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

课程设计电脑显示的数字温湿度计设计资料.docx

《课程设计电脑显示的数字温湿度计设计资料.docx》由会员分享,可在线阅读,更多相关《课程设计电脑显示的数字温湿度计设计资料.docx(22页珍藏版)》请在冰点文库上搜索。

课程设计电脑显示的数字温湿度计设计资料.docx

课程设计电脑显示的数字温湿度计设计资料

 

河南大学物理与电子学院

2012级单片机课程设计论文

 

电脑显示的数字温湿度计设计

 

河南大学物理与电子学院

电子开放实验室

0前言

1系统总体概述

1.1系统功能

1.2系统组成

2系统硬件设计

2.1单片机及其最小系统

2.2温湿度电路模块

2.3时钟电路模块

2.4显示电路模块

2.5通信电路模块

2.6按键电路模块

2.7报警电路模块

3系统软件设计

3.1温湿度程序设计

3.2时钟程序设计

3.3显示程序设计

3.4上位机程序设计

4系统制作与调试

4.1电路焊接与制作

4.2主要调试方法

4.3硬件调试

4.4软件调试

5结论

参考文献

基于单片机的数字温湿度采集与处理系统设计

陈看席俊辉

(河南大学物理与电子学院,河南开封,475004)

0前言

随着科技的不断进步,在工业生产中温度与湿度是常用的被控参数,而采用单片机来对这些被控参数进行控制已成为当今的主流。

本文从硬件和软件两方面入手,分别介绍了以宏晶科技的STC12C5A60S2单片机为核心的数字温湿度采集与处理系统。

关键词:

单片机STC12C5A60S2温湿度传感器DHT11

1系统总体概述

根据要实现的功能,综合比较几种设计方法,以下是对系统要实现的功能和系统如何来实现分别论证。

1.1系统功能

本设计是一个数字温度控制系统,要实现以下功能。

1.1.1温度和湿度的数据采集与处理,并具有限温报警功能

1.1.2具有实时时钟功能。

1.1.3时间、温度和湿度的显示。

1.1.4为增强系统的稳定性,应具有故障检测能力。

1.2系统组成

本设计硬件和软件均采用自上而下、模块化设计的思想,尽量降低各个子模块之间的耦合度。

由各个模块分别完成部分功能,最后再由主模块将其整合,形成一个完整的系统。

以下是按制作进度排列的各个模块。

1.2.1单片机最小系统

1.2.2串口通信模块

1.2.3显示电路模块

1.2.4温湿度采集与处理模块

1.2.5报警电路模块

1.2.6按键电路模块

1.2.7实时时钟模块

2系统硬件设计

系统各个硬件组成图:

2.1单片机及其最小系统

STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。

内部集成MAX810专用复位电路,2路PWM,8

路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。

1.增强型8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051;

2. 2.工作电压:

STC12C5A60S2系列工作电压:

5.5V-3.3V(5V单片机)STC12LE5A60S2系列工作电压:

3.6V-2.2V(3V单片机); 

3.工作频率范围:

0 - 35MHz,相当于普通8051的 0~420MHz; 

4.用户应用程序空间8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K字节; 

5.片上集成1280字节RAM; 

6.通用I/O口(36/40/44个),复位后为:

准双向口/弱上拉(普通8051传统I/O口),可设置成四种模式:

准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏,每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55Ma;

7.外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块,

INT0/P3.2,INT1/P3.3,T0/P3.4, T1/P3.5, RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2 ), CCP1/P1.4 (也可通过寄存器设置到P4.3);

8.A/D转换, 10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)

9.通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口;

2.2温湿度电路模块

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传

感器。

它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。

传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。

因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。

每个DHT11传感器都在极为精确的湿度校验室中进行校准。

校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。

单线制串行接口,使系统集成变得简易快捷。

超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。

产品为4针单排引脚封装。

总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。

DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后,读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线由上拉电阻拉高。

数字0信号表示方法如图

数字1信号表示方法如图

2.3时钟电路模块

DS1302是DALLAS公司推出的涓流充电时钟芯片。

内含有一个实时时钟/日历和31字节静态RAM通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM指示决定采用24或12小时格式DS1302与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1RES复位2I/O数据线3SCLK串行时钟时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信DS1302工作时功耗很低保持数据和时钟信息时功率小于1mW。

DS1302是由DS1202改进而来增加了以下的特性双电源管脚用于主电源和备份电源供应Vcc1为可编程涓流充电电源。

附加七个字节存储器它广泛应用于电话、传真、便携式仪器以及电池供电的仪器仪表等产品领域。

2.4显示电路模块

显示部分采用的是TFT1P3080-E320*480LCD点阵式显示屏和ILI9481显示驱动器组成的LCD显示模块。

其中ILI9481是一个262144颜色的单片集成SoC驱动,可驱动一个大小为320*480点阵LCD液晶显示器,内部有345600字节的GRAM以显示图像。

支持18、16、9、8比特的并行数据总线接口和串行数据总线SPI,本次设计采用16位并行数据总线接口。

以下是LCD显示模块的接口电路图:

2.5通信电路模块

RS-232是美国电子工业联盟(EIA)制定的串行数据通信的接口标准,原始编号全称是EIA-RS-232(简称232,RS232)。

它被广泛用于计算机串行接口外设连接。

在RS-232标准中,字符是以一串行的比特串来一个接一个的串行(serial)方式传输,优点是传输线少,配线简单,传送距离可以较远。

最常用的编码格式是异步起停(asynchronousstart-stop)格式,它使用一个起始比特后面紧跟7或8个数据比特(bit),然后是可选的奇偶校验比特,最后是一或两个停止比特。

所以发送一个字符至少需要10比特,带来的一个好的效果是使全部的传输速率,发送信号的速率以10划分。

一个最平常的代替异步起停方式的是使用高级数据链路控制协议(HDLC)。

在RS-232标准中定义了逻辑1和逻辑0电压级数,以及标准的传输速率和连接器类型。

信号大小在正的和负的3-15v之间。

RS-232规定接近0的电平是无效的,逻辑1规定为负电平,有效负电平的信号状态称为传号marking,它的功能意义为OFF,逻辑0规定为正电平,有效正电平的信号状态称为空号spacing,它的功能意义为ON。

根据设备供电电源的不同,±5、±10、±12和±15这样的电平都是可能的。

UART作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。

其中各位的意义如下:

起始位:

先发出一个逻辑”0”的信号,表示传输字符的开始。

资料位:

紧接着起始位之后。

资料位的个数可以是4、5、6、7、8等,构成一个字符。

通常采用ASCII码。

从最低位开始传送,靠时钟定位。

奇偶校验位:

资料位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。

停止位:

它是一个字符数据的结束标志。

可以是1位、1.5位、2位的高电平。

由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。

因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。

适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

[3]

空闲位:

处于逻辑“1”状态,表示当前线路上没有资料传送。

波特率:

是衡量资料传送速率的指标。

表示每秒钟传送的符号数(symbol)。

一个符号代表的信息量(比特数)与符号的阶数有关。

例如资料传送速率为120字符/秒,传输使用256阶符号,每个符号代表8bit,则波特率就是120baud,比特率是120*8=960bit/s。

本次设计采用USB转串口线(DB9),再通过MAX3232电平转换芯片与单片机实现串行通信。

2.6按键电路模块

由于使用的是STC12C5A60S2,自带P1端口8通道A/D转换电路,为了节约端口,本设计采用A/D转换实现的按键,该方法只需一个端口即可实现多个按键的识别。

以下是此方法的示意图:

2.7报警电路模块

当温度超过一定温度时,单片机会发出一个信号,使轰鸣器响。

电路图如下所示:

3系统软件设计

软件执行流程图:

3.1温湿度程序设计

由于温湿度的值不是突变的,故温湿度数据的处理,采用了一种非常流行的称之为滑动平均滤波器的非递归系统,滑动平均相当于低通滤波。

通过在前L个样本上作累加平均可以得到滑动平均;然后随着每个接踵而来的样本组被取上,新的样本被包括在平均中,而老的样本被剔除。

这样累加信号总是在L个最靠近的样本上作平均。

这个非递归差分方程的描述是

以下是该算法的一个示例图:

具体算法和测温湿度程序描述如下:

voiddht_read_data()

{

INT8Ui,j,k,temp=0;

DHT_DAT=0;

delay_ms(18);

DHT_DAT=1;

delay_us(40);

DHT_DAT=1;

if(!

DHT_DAT)

{

k=255;

while(!

DHT_DAT&&--k);

if(k!

=0)

{

k=255;

while(DHT_DAT&&--k);

if(k!

=0)

{

for(i=0;i<5;i++)

{

for(j=0;j<8;j++)

{

k=255;

while(!

DHT_DAT&&--k);

if(k!

=0)

{

delay_us(30);

temp=temp<<1;

if(DHT_DAT)

{

temp+=1;

k=255;

while(DHT_DAT&&--k);

if(k==0)

{

uart_send_string("DHTreaddataerror!

NO:

5\n");

}

}

}else

{

uart_send_string("DHTreaddataerror!

NO:

4\n");

}

}

dht_data_buffer[i]=temp;

}

temp=dht_data_buffer[0]+dht_data_buffer[1]+

dht_data_buffer[2]+dht_data_buffer[3];

if(dht_data_buffer[4]!

=temp)

{

uart_send_string("DHTcheckdataerror!

NO:

3\n");

}else

{

if(is_first)

{

for(i=0;i<10;i++)

{

average_data[0][i]=dht_data_buffer[0];

average_data[1][i]=dht_data_buffer[2];

}

sum1=dht_data_buffer[0]*10;

sum2=dht_data_buffer[2]*10;

is_first=0;

}else

{

sum1-=average_data[0][count];

sum2-=average_data[1][count];

average_data[0][count]=dht_data_buffer[0];

average_data[1][count]=dht_data_buffer[2];

count=(++count)%10;

sum1+=dht_data_buffer[0];

sum2+=dht_data_buffer[2];

dht_data_buffer[0]=(INT8U)(sum1/10.0f+0.5f);

dht_data_buffer[2]=(INT8U)(sum2/10.0f+0.5f);

}

for(i=0;i<4;i++)

{

update_buffer[i]=(dht_data_buffer[i]/10)*16+dht_data_buffer[i]%10;

}

}

}else

{

uart_send_string("DHTreaddataerror!

NO:

2\n");

}

}else

{

uart_send_string("DHTreaddataerror!

NO:

1\n");

}

}else

{

uart_send_string("DHThasno-response!

NO:

0\n");

}

DHT_DAT=1;

}

3.2时钟程序设计

DS1302的控制字如图2所示。

控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。

各寄存器地址如下:

3.3通信程序设计

本设计采用的是STC12C5A60S2自带的独立波特率发生器产生时钟信号,与上位机以19200波特率,8比特,无校验的数据收发模式。

下面是辅助寄存器的相关控制位:

3.4上位机程序设计

C#是微软公司发布的一种面向对象的、运行于.NETFramework之上的高级程序设计语言。

C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。

它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。

C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。

C#是面向对象的编程语言。

它使得程序员可以快速地编写各种基于MICROSOFT.NET平台的应用程序,MICROSOFT.NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。

本次设计上位机程序采用C#编写,界面直观清晰,易于操作,人机互动友好,能够动态实时显示温湿度曲线,更好地观察温湿度的变化趋势。

下面是一次实验的截图:

红为温度,蓝为湿度,

老师评:

推荐此文就是其上位机的显示

 

4系统制作与调试

电路硬件焊接是课程设计的重要内容之一,其焊接工艺的好坏直接关系到系统的整体性能。

本设计的样品制作采用手工焊接,在焊接制作中应遵守手工焊接的工艺流程和技术要求。

1、印刷线路板或铆钉板上的焊盘及元件引线上氧化层的刮除。

2、焊盘及元件引线表面的及时上锡。

3、选用合适的方法进行焊接,一般初学者用带锡焊接法。

4、焊接时如怕烫,可用镊子、尖嘴钳夹住元件的引线或用布垫在元件上进行焊接。

5、焊接时在焊锡未凝固以前不得摇动元件的引线,以免造成虚焊或假焊。

6、焊点形成后烙铁头应从板子斜上45度离去。

7、电烙铁在长期使用过程中,由于温度过高,和焊剂的腐蚀作用会造成烙铁头烧死,出现沾不上锡的现象,此时需对刀口重新整形和上锡。

8、电烙铁使用时应防止机械撞击,不用时应切断电源以延长烙铁寿命。

4.1电路焊接与制作

4.2主要调试方法

(1)测试单片机软件功能的完善性。

这是针对整个单片机系统功能的测试,测试软件是否写的正确完整。

单片机是否能正常工作。

(2)上电、掉电测试。

在使用中用户必然会遇到上电和掉电的情况,可以进行多次开关电源,测试单片机系统的可靠性。

(3)整个显示系统的测试。

这是针对整个单片机显示系统功能的测试,单片机正常工作后,加上负载液晶整个系统共同测试。

4.3硬件调试

静态测试。

在电路板制作好以后,先不要急着加电,首先进行静态测试。

检查线路:

通过目测和使用万用表,检查线路连接的正确性,有无断路和短路,无虚焊的存在等。

核对元件:

检查元件是否安装正确,有无损坏等。

4.4软件调试

软件采用分模块编写,测试,全部模块测试完成并确定无误后再整体组合。

本设计在实现最小系统的基础上最先实现串口通信,利用串口来调试程序,通过对系统回送的日志进行分析,从而判断系统是否按照期望的运行,当系统出现异常是能够通过串口把日志发送到上位机,从而精确的判断系统出错的原因,方便调试。

5结论

通过这学期单片机的学习我学到了不少东西,学会了有的东西需要自己通过自己的努力来解决。

这次单片机作品的制作学会了焊接的初步技术,以及一些查找问题的方法。

由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。

从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此。

参考文献

[1]现代线性系统西安交通大学出版社刘树棠译

[2]单片机原理及接口技术北京航空航天大学出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2