基于51单片机的智能节水型水表的设计内容摘要:
BrP)时,触发器输出低电压,三极管截止,使 OC 门输出高电压,这种状态为关。 这样两次电压变换,霍耳元件完成了一次开关动作。 使开关输出稳定可靠,这也就是集电成霍耳传感器优良特性之一。 数据显示电路 图 9 液晶屏显示电路 滑动变阻器用以调节背光灯与字符显示度的对比度,读写选择端接地,设置成写状态。 采集的数据经过单片机处理后,通过 P2 口将所得到的数据显示在液晶屏上。 使用户能够即使知道用水量的信息。 复位电路 10uFS?SWPB10KRSTVCC 图 10 复位电路 复位是单片机的初始化操作,其主要功能是 PC 初始化为 0000H,是单片机从0000H 单元开始执行程序。 除了进入系统的正常初始化之外,当由于程序运行错误获操作错误使系统处在死锁状态,为了摆脱困境,也需按复位键以重新启动。 我采用按键复位电路,按键电平复位 是通过使复位端经电阻与 VCC 电源接通而实现的 报警灯电路 图 11 报警灯电路 P0 口外接上拉电阻,以便更好的驱动 P0 口的电路,报警灯 由黄色和红色二极管组成,黄色二极管亮起表示第一个设定的用水量已经达到,红色二极管亮起表示第二个设定的用水量已经达到,再次提醒用户节约用水。 报警器采用蜂鸣器进行报警,报警器可以更好的提醒用户及时知道用水量超标的情况。 4 软件设计 主流程框图 主程序流程图如图 2,所示。 主程序包括六个判断。 第一次判断在设定完报警值后,判断按键 K1 是否按下,是则进入检测流水量阶段,否则继续判断;第二次判断是在进入流水计数状态时,检测第一个报警值是否大于水流量的值,是则进入第一次报警状态,此时报警灯黄灯亮,提醒用户节水,否则继续判断;第三个判断是检测按键 K2 是否按下,是则停止报警,否则继续报警;第四次判断是检测第二个报警值是否大于水流量的值,是就进入第 二次报警,否则继续报警;第五次判断是检测按键 K2 是否按下,是则停止报警,否则继续报警;第六次判断是检测是否进入下个月,是则重新开始计数。 图 12 主程序流程图 框图 第二次报警 开始 按键设报警值 A1 和报警值 A2 K1 按下。 显示水流量 Y N 系统初始化 第一次报警 水流量 A1? 按键 K2 按下。 按。 下。 Y N N Y 继续显示 按键 1 按下。 Y 水流量 A2。 按。 下。 Y N N 下个月到。 N Y 停止报警 停止报警 按键扫描 子程序 框图 按键扫描程序是有四个功能和动作相同的步骤组成。 整个程序顺序扫描~ 口,扫描每个口,先判断是否有按键按下,有则对按键消抖,然后根据当前状态识别按键,进而继续读取下一个;否则直接读取下一个。 图 13 按键扫描子程序框图 P1=FEH 跟据当前状态识别按键 有键按下。 延时 10ms 真的有键按下。 P1=FDH 有键按下。 延时 10ms 真的有键按下。 跟据当前状态识别按 键 P1=FBH 有键按下。 延时 10ms 真的有键按下。 P1=F7H 有键按下。 延时 10ms 真的有键按下。 跟据当前状态识别按键 跟据当前状态识别按键 流水量计数程序 框图 流水量计数时,先对计数量进行初始化,利用外部中断进行 加一设置。 当叶轮上的磁铁接近霍尔元件时,霍尔元件输出一个脉冲,中断 0 口每来一个低电平,每中断一次,计数值每加 一次,将流水计的容乘以计数量就得到了水流量。 图 14 流水量计数程序框图 开始 计数变量 num 初始化 水流量 n 初始化 num 自加 1 有外部中断。 N Y 返回 n=num X 12 报警子程序框图 控制 黄 灯亮 灭,用来发出第一次提醒, 控制 红 灯亮 灭,用来发出第二次提醒, 用来 控 制 蜂鸣器的工作。 进入 流水计数状态时, 首先检测第一个报警值是否大于水流量的值,是则进入第一次报警状态,此时报警灯黄灯亮,提醒用户节水,否则继续判断; 再次, 检测第 二个报警值是否大于水流量的值,是就进入第二次报警,否则继续报警。 直到有按键按下就解除报警状态。 图 15 报警子程序框图 Y 绿灯亮,黄灯和 红灯灭,蜂鸣器不响 水流量 A1? N 黄灯灯亮,蜂鸣器响 红灯灯亮,蜂鸣器响 水流量 A1? 5 系统调试 设计好电路原理图后,按照原理图,根据电子元件认真焊接好电路,保证电路的稳定性,焊接好电路图后用电流表检测好 电路的正确性,防止电路的短路现象的发生。 利用 WV 仿真器进行软件仿真和硬件仿真。 根据硬件电路的设计, 编译好相应的汇编程序,先利用 WV 软件进行软件调试,确保程序大体正确。 然后利用 WV仿真器进行硬件仿真 调试, 并按顺序检查错误进行修改, 尽快完成系统的调试。 最终将程序的 HEX 文件烧录进入单片机进行实测。 在调试过程中出现的主要问题分析: 一) 发现电路的稳定性不好。 原因分析:在多次检查电路后,发现为了 达到较好的稳定性,我们应该防止漏焊,而且尽可能的少用焊锡丝作为导线。 二 ) P0 口不能很好得驱动显示电路或报警电 路部分。 原因分析:由于 P0口 输出电流比较 小, 用上拉电阻提供电流分量, 可以 把电平 “ 拉高 ”。 三) 排线用的多会之间影响电路接触问题,因此尽可能避免外接排线的使用。 四)液晶屏会出现乱码。 原因分析:在程序中没有将数据指针确定好,同时没有控制好液晶屏的时序问题。 经过认真的调试分析,最终完成了数显节水型水表的制作,达到了一开始设计的效果。 6 总结 回顾此次单片机培训论文设计从理论到实践,不仅巩固了以前所学的知识,而且学到了很多书本上学不到的东西。 通过论文设计使我懂得了理论与实践相结合非常重要,光有理论知识是远 远不够的,从理论和实践中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。 当看到 LCD 显示屏上显示出 事先设定的字符时,内心的喜悦真的是无法形容,辛苦了这么长时间总算没有白费。 不过在完成此次单片机论文设计后 ,我们发现我还有许多不足 ,所学到的知识还远远不够 ,以至于还有一些功能不能顺利完成。 但通过学习这一次实践 ,增强了我们的动手能力 ,提高和巩固了单片机方面的知识 ,特别是软件方面。 从中我认识到把理论应用到实践中去是多么重要。 致谢 论文设计过程中需要特别感谢的是我的指导老师,贺新民老师和王 玉芝老师,没有他们的指导和帮助我不可能如此顺利的完成本次设计。 实验室实验设备非常齐全,室内环境良好,有专业的教师辅导监督我们的论文设计。 焊接电路板时老师耐心讲解和示范,写论文时老师细心指导和更正,调试电路时老师仔细检查并修改错误。 我们不仅感受到实验时良好的学术氛围,还感受到老师们渊博的学识和平易近人的学者风范。 附录 : 附录 一: 1602LCD 简介 引脚功能说明 1602LCD 采用标准的 14 脚(无背光)或 16 脚(带背光)接口,各引脚接口说明如表 31所示 : 表 1:引脚接口说明表 编号 符号 引脚说明 编号 符号 引脚说明 1 VSS 电源地 9 D2 数据 2 VDD 电源正极 10 D3 数据 3 VL 液晶显示偏压 11 D4 数据 4 RS 数据 /命令选择 12 D5 数据 5 R/W 读 /写选择 13 D6 数据 6 E 使能信号 14 D7 数据 7 D0 数据 15 BLA 背光源正极 8 D1 数据 16 BLK 背光源负极 第 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 脚:背光源负极。 表 2:控制命令表 序号 指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 1 清显示 0 0 0 0 0 0 0 0 0 1 2 光标返回 0 0 0 0 0 0 0 0 1 * 3 置输入模式 0 0 0 0 0 0 0 1 I/D S 4 显示开 /关控制 0 0 0 0 0 0 1 D C B 5 光标或字符移位 0 0 0 0 0 1 S/C R/L * * 6 置功能 0 0 0 0 1 DL N F * * 7 置字符发生存贮器地址 0 0 0 1 字符发生存贮器地址 8 置数据存贮器地址 0 0 1 显示数据存贮器地址 9 读忙标志或地址 0 1 BF 计数器地址 10 写数到 CGRAM或 DDRAM) 1 0 要写的数据内容 11 从 CGRAM 或 DDRAM 读数 1 1 读出的数据内容 1602 液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。 (说明: 1为高电平、 0 为低电平) 指令 1:清显示,。基于51单片机的智能节水型水表的设计
相关推荐
于软件版本的实际限制 , 标准系列里面没有 GB, 现选择与 GB 相近 , 且 6 通用性强的 ISO 标准。 打开此标准 ,选择传动零件里的齿轮传动 , 从列表里右键单击直尺圆柱齿轮 , 选择生成零件 , 弹出对话框 , 从此对话框里设定参数便可生成所设计的齿轮。 见图 1 和 图 2。 图 1 齿轮参数化设计界面 图 2 齿轮 两次保存齿轮 , 并分别命名 “齿轮 _1”、 “齿轮 _2”
的这四个函数,当然,我们还有许多有用的函数可以使用,我们将在以后介绍他们。 涎 注意:如果你需要使用 ezsql 的函数,你需要首先将它放到 global 中并初始化。 涎 涎 涎 7 涎 涎 系统功 能结构图 涎 本系统预计是一个基于 PHP 的 B/S 模式的论坛网站系统。 通过对网站系统需求的调查研究,确定网站系统应该对不同的用户提供不同的功能。 论坛网站主要用于交流和互动信息,沟通
整个程序修改容易,不会因为其中一个功能模块出现错误而影响整个系统。 经济可行性 经过详细周密的调查,借鉴成功的开发案例,采用科学有效的开发方式,可以降低开发的成本,达到经济高效的目的。 本系统在开发方面主要使用了、 、 MySQL 等软件,而这些软件在网上均可以免费下载,因此,在开发成本方面可以说是非常低,所以,该系统在经济方面可行。 功能需求 经过详细的调查
名 数据类型 长度 是否允许为空 id int 4 否 sid int 4 否 rongyu varchar 100 否 descs ntext 16 是 ( 8)过级情况表,表名称标识 ,结构见表 表 等级表 列名 数据类型 长度 是否允许为空 id int 4 否 sid int 4 否 dengjiname varchar 100 否 descs ntext 16 是 系统功 能模块实现
强调了国内需求对竞争优势的获取所起 的推动作用。 本国的需求会推动产品质量的提高和科学技术的改进,服务生产成本就会大大降低,市场国际化随之加快,国际竞 在我国,以保险为例,由于保险种类有限,公民的保险意识较差,随着金融服务市场逐步开放,外资保险公司不仅带来了雄厚的资金、先进的技术和完善的管理制度,同时也带来了崭新的保险理念和众多的保险产品,这极大地丰富了我国消费者的保险知识