当前位置:首页 > 基于单片机STC89C52的家用湿度控制器
大学课程设计说明书 4.5.3 加湿电路
当检测到环境湿度低于设定下限值时,单片机便输出开门信号,送到开锁驱动电路,然后驱动继电器吸合,加湿器通电工作,使居室内空气湿度增加。电路如图4.11所示。
电路由驱动和开锁两级组成。由R3、Q3组成驱动电路,其中Q3可以选择普通的小功率三极管如9012都可以满足要求。由D3、RL2组成开锁。其中D3是为了消除继电器可能产生的反向高电压。继电器的选用要视情况而定,但是吸合力要足够且有一定的余量。
图 4.11 加湿电路原理图
4.6 键盘电路模块
4.6.1 键盘电路的分类
键盘接口通常包括硬件和软件两部分。硬件是指键盘的结构及其主机的连接方式;软件是指对键盘的操作的识别与分析,即键盘管理程序。
键盘一般是一组开关(按键)的集合。常用的按键有三种: 机械触点式:利用金属的弹性使键盘复位。 导电橡胶式:利用橡胶的弹性使按键复位。
柔性按键:外形及面板布局等可按整机要求设计,在价格、寿命、防潮、防锈等方面显示出加强的优越性。
键盘按其工作原理又可分为编码式键盘和非编码式键盘。这两类键盘的主要区别是识别键符及给出相应键码的方法。
编码键盘主要是用硬件来实现对键的识别。
非编码键盘主要是由软件来实现键盘的定义与识别。
非编码式键盘按照与主机连接方式的不同,分为独立键盘和矩阵式键盘。 (1)独立式键盘:独立式键盘中,每个按键占用一根I/O口线,每个按键电路相对独立。I/O口通过按键与地相连,I/O口有上拉电阻,无键按下时,引脚为高电平,有
第 13 页
大学课程设计说明书 键按下时,引脚电平被拉低。I/O口内部有上拉电阻时,外部可不接上拉电阻。 (2)矩阵式键盘:行列式键盘采用行列电路结构,当按键较多时所占用的口线相对较少,键盘规模越大,其优点越明显。所以,当按键数目大于8时,一般采用矩阵式键盘结构。
本设计采用机械触点式键盘按非编码方式工作。 4.6.2 键盘电路的工作原理
当无键按下时,单片机的P1.0、P1.1口为高电平。当有按键按下时,单片机相应口线通过按键与地相连的电路被接通,单片机接口被拉成低电平,此时其他口线的电平状态不变。所以,通过检测P1.0、P1.1口的电平状态,即可判断键盘上哪个键被按下。
键盘电路工作原理图如图4.12所示:
图 4.12 键盘电路图
第 14 页
大学课程设计说明书
5 软件设计
5.1 开发工具介绍
单片的使用除了硬件,同样也要软件的使用,我们写汇编程序编程CPU可执行的机器码有两种方法,一种是手工汇编,一种是机器汇编。机器汇编通过汇编软件变为机器码,用于MSC-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从使用普通汇编语言到高级语言的不断发展,Keil是目前最流行开发MCS-51系列单片机的软件。Keilc51汇编,PLM语言和C语言的程序设计,界面友好。Keil是美国keil software公司出品的52系列兼容单片机c语言开发系统。用过汇编语言后再使用C语言来开发,体会更加深刻。
KeilC51软件提供丰富的库,与汇编相比,C语言在功能上,结构上,可读性,可维护性上有明显的优势,因而易学易用函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生产的汇编代码,就能体会到KeilC51DE 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解,在开发大型软件时更能体现高级语言的优势。
5.2 主程序源程序
5.2.1 主程序源程序
本设计的关键是对房间湿度的控制和显示。其中,当电源打开的时候,单片机控制单元STC89C52进行复位,寄存器清零,单片机使设置湿度显示器的数值为50,同时当前湿度显示器开始显示检测到的湿度。
主程序的工作是循环调用键扫描函数和湿度检测函数,根据键扫描函数的值判断有无按键按下。若无按键按下,直接调用显示函数,显示设置的湿度上、下限值。若KEY2按下,令设置湿度上、下限值增加1,然后调用显示子函数,显示设置湿度值。若KEY3按下,令设置湿度上、下限值减少1,然后调用显示子函数,显示设置湿度值。根据湿度检测函数检测到的湿度进行显示以及同设计湿度相比较,根据比较结果而采取相应的措施,当湿度超过设定上限值时候,单片机控制蜂鸣器报警,控制继电器闭合,使电电机通电旋转,进行排风。使湿度降低,当湿度低于设定下限值的时候,单片机控制蜂鸣器报警和另一个继电器闭合,使加湿器通电工作,增加空气湿度。
主程序流程图如图5.1所示。
第 15 页
大学课程设计说明书
排风扇转动(湿度降低) 蜂鸣器报警 湿度值是否超过上限值? Y 开始 调用湿度检测程序,获取湿度值,用数码管显示。 湿度值是否超过下限值? Y 蜂鸣器报警 加湿器工作(湿度增加) 退出 图 5.1 主程序流图 5.2.2 显示子程序源程序
本设计采用LED显示器动态显示电压数值,所以需要两组单片机接口,一组为P1口,一组为P3口,P1口负责接收段控码。先将设定湿度上、下限值显示出来,第一个循环点亮设定湿度的第一位,第二个循环点亮设定湿度的第二位。再通过一个循环语句依次点亮当前湿度显示LED显示器的第一位,再下一个循环点亮当前湿度显示LED显示器的第二位。
程序流程图如图5.2所示。
第 16 页
共分享92篇相关文档