基于51单片机的智能温控电扇设计(3)

2019-06-11 00:22

3.1.4 LCD1602简介

字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。一般1602字符型液晶显示器实物如图:

图5 LCD1602

LCD1602主要技术参数:

显示容量:16×2个字符 芯片工作电压:4.5—5.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V 字符尺寸:2.95×4.35(W×H)mm 第1脚:VSS为地电源。 第2脚:VDD接5V正电源。

第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第7~14脚:D0~D7为8位双向数据线。 第15脚:背光源正极。 第16脚:背光源负极。 3.1.5对射式光电开关简介

图6 对射式光电开关

光电开关E18的技术参数:

7

1、输出电流 DC/SCR/继电器 Control output:100mA/5V供电 2、消耗电流DC<25mA 3、响应时间 <2ms

4、指向角:≤15°,有效距离3-50CM可调 5、检测物体:透明或不透明体 6、工作环境温度:-25℃~+55℃

7、标准检测物体:太阳光10000LX以下 白炽灯3000LX以下 8、外壳材料:塑料 电气特性: U:5VDC I:100mA Sn:3-50CM

3.2 各部分电路设计

3.2.1 开关复位与晶振电路

单片机系统中,有两个非常重要的电路,一个是开关复位电路,用来对单片机本身和其外部扩展I/O接口电路进行复位,还有一个是晶振电路,用于产生谐振,使单片机得以工作。电路图如图7所示:

图7 晶振电路与复位电路

单片机的XTAL1和XTAL2用来外界石英晶体和微调电容,连接单片机内OSC的定时反馈电路。如图所示,当按下按键开关是,系统复位一次。其中电容C1、C2为20pF,C3为10uF,电阻R1为10k,晶振为12MHz。

3.2.2 独立控制键盘电路

本设计还有两个独立按键,分别连接单片机的P3.2口和P3.3口,如图8所示:

8

图8 按键电路

独立按键S1和S2一端与单片机相连,另一端接地,当按下时,P3口读取低电平有效。系统上电进入工作后,扫描按键子程序,此时可以设定温度。其中S1为加按键,S2为减按键,每按下一次后,都会使对应的预设值加一或者减一。 3.2.3 LCD显示电路

本设计采用的是LCD1602A作为显示模块,它与单片机的连接如图9所示。其中第一行显示温度与红外探测结果,温度显示到小数点后2位。第二行显示设定温度与风扇的风力等级。

图9 LCD连接电路

3.2.4 红外探测电路

红外光电开关一共有三个接口,一个接+5V,一个接地,还有一端与单片机相连,输出高电平或者低电平信号,在电路中直接用按键开关代替了,就是按键电路中的开关S3。

9

3.2.5 温度采集电路

DS18B20数字温度传感器通过其内部计数时钟周期来的作用,实现了特有的温度测量功能。低温系数振荡器输出的时钟信号通过由高温度系数振荡器产生的门周期而被计数,计数器预先置有与-55℃相对应的一个基权值。如果计数器计数到0时,高温度系数振荡周期还未结束,则表示测量的温度值高于-55℃,被预置在-55℃的温度寄存器中的值就增加1℃,然后这个过程不断重复,直到高温度系数振荡周期结束为止。此时温度寄存器中的值即为被测温度值,这个值以16位二进制形式存放在存储器中,通过主机发送存储器读命令可读出此温度值,读取时低位在前,高位在后,依次进行。由于温度振荡器的抛物线特性的影响,其内用斜率累加器进行补偿。DS18B20由于直接可以输出数字信号,所以可以直接输出给单片机,但是需要在输出口上接一个上拉电阻来确保工作,连接图如图10所示:

图10 DS18B20连接电路

3.2.6 风扇驱动电路

本设计采用单片机模拟PWM波的方式通过I/O口输出TTL信号,再通过一个电机驱动模块L298N来驱动12V直流无刷电机工作,从而实现电扇转速的调节。

红外探测控制电机开关,键盘改变设置的温度,然后和预设的温度进行比较,通过软件判断后由单片机的P3.4口输出脉冲信号,经由L298N驱动风扇直流电机电路,实现电机的启动和转速的改变。当环境温度改变时,电机的转速会按照设定的程序相对进行改变,温度升高转速变快,温度降低,转速变慢,温度过低时自动停止,无人状态下也会自动停止。当有人出现后,并且温度高于预设温度,电机重新开始工作。如图12所示:

图11 L298N驱动电路

10

图12 直流电机连接电路

4 软件设计

软件编写有C语言和汇编语言两种,这两种语言我都有所了解,两种语言各有特点。

C语言具有编写简单,容易上手的特点,而且看起来条理清晰,便于修改,能够快速准确的找到错误并进行改正。相对于汇编语言,作为一种低级的机器语言,读程序相对繁琐,但程序写好后意思明了,效率也要高于C语言编写的程序,具有很好的开发功能。

结合自身实际,我还是选择了C语言,容易上手,可以更好的调试与编译程序。

4.1 主程序流程图

主程序开始

与预设温度进行比调用电机控制函数 图13 主程序流程图

程序初始读取DS18B20温度读取预设温度无人 显示温度 调用键盘扫描函数 显示设定温度 判断是否有显示有人/无人 有人 显示风速等级 主程序如下:

11


基于51单片机的智能温控电扇设计(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:毕业设计~师元胜

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

马上注册会员

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