基于51单片机的TM卡水表控制系统设计

发布者:Xingfu6666最新更新时间:2011-12-05 关键字:51单片机  TM卡  水表控制系统 手机看文章 扫描二维码
随时随地手机看文章

  1 引言

  随着社会科学技术的高速发展,资源短缺现象日益严重,尤其是与人类生存息息相关的水资源。随着我国信息产业的飞速发展,实现自来水收费管理的电子化、信息化及网络化已成为可能。水表系统的智能化可以大大提高供水管理部门的工作效率,节约费用,用以改善供水设施,提高居民饮用水质量。本文以一种智能卡式水表控制系统为研究对象,它结合了控制技术、计算机技术等多方面技术,是一种跨专业的电子信息化系统。

  2 智能水表控制系统的总体结构

  智能水表控制系统具体实现水表的自动计量水流量、读写TM卡、控制阀门、显示报警等功能。控制系统电路由低功耗单片机、流量计、E2PROM存储电路、TM卡读写电路、LCD显示控制电路、阀门控制检测电路、电压检测电路等组成。结构原理如图1所示。

        

  图1 智能水表控制系统结构原理

  当用户将含有购水量等信息的TM卡插入水表上卡座内时,控制阀在电控系统控制下开通供水通道。用户每用一个计量单位(10升),计量电路便发出一组计量脉冲序列,该脉冲序列如经电控系统判定为有效,即可从已购水量中减去一个计量单位。当剩余水量达到报警值时,液晶汉字显示“请购水”;当水量为零时,控制阀自动关闭,水路即被切断,此时用户须重新持卡购水。在正常情况下,控制阀处于接通状态,只有当特殊事件发生时控制阀才从接通状态变为关闭状态。

  3 智能水表控制系统的硬件设计

  TM卡水表控制系统由低功耗单片机、流量计量电路、E2PROM存储电路、TM卡读写电路、LCD显示控制电路、阀门控制检测电路、电压检测电路、实时时钟电路等组成。

  1、单片机

  作为TM卡水表控制系统核心部件的微控制器采用PHILIPS 51LPC系列中的P87LPC764单片机。这种单片机运行速度快、编程灵活、低功耗,自带4K字节OTP程序存储器、128字节的RAM,32字节用户代码区可用来存放序列码及设置参数,并且具有丰富的I/O功能和较强的中断能力,能够很好地满足TM卡水表控制系统高集成度、低成本、低功耗的要求。

  2、E2PROM存储电路

  在智能卡水表控制系统中,信息的存储是非常重要的方面。因此,在本控制系统中,存储器采用2K容量的串行CMOS E2PROM--CAT24WC02,它是低电压(1.8~6V)、低功耗、长寿命(一百万次编程和擦除周期)的器件,采用I2C总线数据传输协议,使用方便。用来存储总购水量、总用水量、上次购水量、卡号、水表状态等信息。接口电路如图2所示。

        

  图2 I2C器件接口电路

  3、TM卡读写电路

  信息的载体--TM卡,采用单总线协议通讯,所有的读写操作均经一信号线(总线)和地线完成,所以读写电路极简单。在次不做详细阐述。[page]

  4、LCD显示控制电路

  LCD驱动器采用HT1621,它是128点、内存映象和多功能的LCD驱动器,特有的软件配置特性使它适用于多种LCD应用场合,用于连接主控制器和HT1621的管脚只有4或5条。在本设计中,采用电阻和PNP三极管来控制HT1621的电源|稳压器,降低功耗,延长LCD的使用寿命。LCD平时处于关闭状态,当有TM卡插入、并确认有效卡或有其它状况时,LCD开启并显示本次购水、已用水量、可用水量、阀门状态等信息。

  5、水量计量电路

  水表的基表采用符合ISO4064B标准的单流旋翼式冷水水表,技术参数如表1所示。该表计数机构与测量机构经磁耦合传动,采用干簧管水量计量发讯,每流经10升水时产生一脉冲;表内设有磁保护装置,具有较强的抗外磁干扰能力。水量计量脉冲通过由电容和电阻组成的防抖电路输入单片机,每输入一个脉冲,在存储器中减去相应水量。

  6、阀门控制检测电路

  阀门控制是水表控制系统中一个很敏感部分,关启阀门的可靠性差,将会给供水部门带来很大的问题。因此,我们自行设计了结构巧妙、关闭可靠、DC2.6-3.6V控制的电动陶瓷阀门,有效地解决阀门关闭不可靠问题。如图3所示为电动阀门的正反控制电路,当正向端输入高电平,反向端输入低电平时,阀门开启;反之,阀门闭合。当单片机P1.6口输入低电平、P1.7口输入高电平时,三极管Q3、Q5、Q6导通,Q2、Q4、Q7截止,故正向端(ON)输出高电平,反向端(OFF)输出低电平,开启阀门,开启到位时,由单片机P1.5口输入检测信号,动作停止;反之,三极管Q2、Q4、Q7导通,Q3、Q5、Q6截止,正向端输出低电平,反向端输出高电平,关闭阀门,同样由单片机P1.6口输入关闭到位检测信号。       

    

     图3 电动阀门的控制电路

  7、电源电压检测电路

  为提高水表运行的可靠性和安全性,采用分级电源电压实时检测,电压实时检测芯片采用RH5VL28和RH5VL30。当电源电压正常时,芯片的Vout脚为高电平;当电源电压小于3.0V时,RH5VL30的Vout脚输出低电平,单片机检测到该信号后,控制液晶显示模块显示欠压,并关阀警告,提示用户更换电池;当电源电压小于2.8V时,RH5VL28的Vout脚输出低电平,单片机检测到该信号后,彻底关阀,直到用户更换完电池。

  8、电源及实时时钟电路

  单片机系统功耗的高低往往和电源电压的大小成正比,因此在以电池供电的系统中,在满足性能要求的前提下,尽可能选择低的供电电压。为此,我们采用武汉力兴公司ER14505型DC3.6V/2.0Ah一次性锂-亚硫酰氯电池作为系统电源,以充分利用单片机和外围器件的低电压、低功耗特性。

  在TM卡式水表的实际应用中,用户因某些原因可能长期不使用。因此,电池在长时间微电流放电(相当于储存时的自放电)后,内阻将上升,电池的瞬时驱动能力下降,极有可能影响电控阀门的动作或者产生欠压,影响系统的稳定性。但同时,电池可能还有足够的容量使用,如果因此而更换电池又将增加水表的使用成本。为解决这个问题,我们在控制系统中增加了一个时钟电路,每隔一个月的时间,时钟芯片(PCF8563)产生中断,单片机接受后,控制阀门开启、关闭,使电池定时产生比较大电流的放电,降低电池内阻,改善电池的性能,进而提高整个系统的稳定性、可靠性以及免维护性。

[page]

  4 智能水表控制系统的软件设计

  如果说硬件电路是控制系统的基础的话,那么控制软件是整个系统的灵魂。控制软件的设计的好坏,直接影响系统运行的性能。在本系统中,考虑到P87LPC764单片机的内部程序存储器的大小,运行速度以及程序的易读性、可维护性等,采用了51汇编语言编写、模块化的方法编制。

T  M卡水表控制系统的软件主要由主程序、中断服务程序、子程序等组成。主程序主要是单片机及接口芯片的初试化、自检、进入掉电状态等;中断服务程序包括水量计量中断、插卡中断、磁干扰输入中断、欠压中断和月报警中断等;子程序主要有LCD显示,存储器的读写和延时程序等。整个水表控制系统平时处在掉电状态下,当有外部中断信号时,才从睡眠中唤醒,执行程序。如图4是控制系统主程序流程。P87LPC764单片机具有较强的中断功能,四个优先级别的中断结构,最多可支持11个中断源。在本控制系统中,考虑到单片机平时都是在掉电模式下,因此,系统所应用的中断类型应该具有把P87LPC764单片机唤醒的能力。为此,控制系统中所用到的中断都采用了P87LPC764中很简便的、具有唤醒功能的KBI中断,并对每个中断源设定了优先级,比如水量计量中断优先级设置为最高等。

  

图4 控制系统主程序流程图

  5 系统抗干扰设计

  1、为防止用户采用电磁干扰来进行偷水、窃水的活动,另外增加了一个防人为电磁干扰的措施。即和计量发讯干簧管并排再放置一干簧管,但它的触动开关值比发讯干簧管稍高,因此,当用户用电磁进行干扰时,只要磁力高过一定限值,防电磁干扰的干簧管闭合,单片机检测到此信号即可进行相应操作,有效防止人为的电磁干扰现象。

  2、在电路板的电源和地之间并接去耦电容,即10μF的电解电容和一个0.1μF的电容,来消除电源干扰。在要求电源质量不是很高的智能水表系统中,取得了比较好的效果。

  3、电路板是电路系统中器件、信号线、电源线的高度集合体,电路板设计的好坏对抗干扰能力影响很大,所以印刷电路板设计时必须符合抗干扰的设计原则。

 

 

 

关键字:51单片机  TM卡  水表控制系统 引用地址:基于51单片机的TM卡水表控制系统设计

上一篇:基于51单片机的低成本心电监护系统设计
下一篇:基于51单片机的超声波测距系统的研究与设计

推荐阅读最新更新时间:2024-03-16 12:47

用汇编语言实现51单片机内部RAM单元的数据传送到外部RAM
下面是实现将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去的8051单片机汇编语言代码: STRAT:MOV R0,#30H MOV R7,#0FH MOV DPTR,#3000H LOOP: MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R7,LOOP RET 下面是实现将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去的8051单片机汇编语言代码: STRAT:MOV R0,#30H MOV R7,#0FH MOV DPTR,#3000H LOOP: MOV A,@R0 MOVX @DPTR,A
[单片机]
用汇编语言实现<font color='red'>51单片机</font>内部RAM单元的数据传送到外部RAM
51单片机通用汇编延时子程序,
[DELY]:通用延时子程序 [地址]:7FEBH - FFEBH [功能]:延时 [入口]:延时常数放在 R2 寄存器中。时间常数 N(十六进制)所对应的延时时间(6MZH 晶振时)见下表: [出口]:R2=0 [占用寄存器]:R2 [调用]:无 例:延时1 秒子程序 MOV R2,#18H LCALL 7FEBH RET ORG 7FEBH ;通用延时子程序(07EBH & 0FEBH & ...) L7FEB: PUSH 02H ;R2(复位后R2即为 02H)存放时间常数,进栈保护 L7FED: PUSH 02H ; R2 进栈保护 L7FEF: PUSH 02H ; 进栈 L7FF1: DJNZ R2,$ ;R2 不为零
[单片机]
AT89S51单片机实验系统的开发与应用
目前单片机应用已渗透到各个领域,单片机技术的发展也因此日新月异。作为实践性很强的应用型学科,单片机研发及教学离不开实验。传统的单片机实验系统需要频繁拔插烧写单片机芯片来编程,依赖于仿真机调试,实验成本高且效率低,已不适应现代科技开发需求。如何充分合理利用单片机的性能,方便用户高效学习与开发产品成为当前的研究热点。 单片机在电子产品中的应用已经越来越广泛,并且在很多学校也开设了相关的课程。通过对在校学生的调查,以及网络上收集到资料的综合分析,得知:目前无论是社会上还是在校学生,学习单片机的人数呈不断增加之势,对于单片机实验板的需求也不断增加。但是由于目前多数实验板价钱较高,实验项目不适于初学者学习。所以,开发出一套价格低廉,易
[单片机]
AT89S<font color='red'>51单片机</font>实验系统的开发与应用
51单片机的内存问题
51单片机寻址内存的空间,不是靠总线而是靠指令的方式。 1:51有以下几个内存模块组成 ROM Flash RAM有------内部RAM的低128位(00-7F) -------内部RAM的高128位(80-FF)---【 89C51 单片机没有这一段空间】 -------特殊功能寄存器(SFR)(80-FF) ------外部RAM 64K(0000-FFFF) 问题1:好多地址是重复的,当向80H写入一个数值,单片机怎么知道读的是内部的高128位RAM?还是SFR?还是外部64K的RAM呢? 答:指令。如果是直接寻址,访问的是SFR、如果是R0或者R1间接寻址,就是内部高128位RAM,如果是D
[单片机]
AT系列51单片机简介
支持ISP的51 单片机 AT89S系列 ATMEL公司新推出的可在编程的MCS51兼容单片机AT89S51/52将全面替代AT89C51/52单片机。 AT89S系列单片机有以下特点: 兼容MCS51微控制器 4/8K字节FLASH存贮器支持在系统编程ISP1000次擦写 周期 128/256字节片内RAM 工作 电压 4.0V到5.5V 全静态时钟0 Hz 到33 MHz 三级程序加密 32个可编程IO口 2/3个16位定时/计数器 6/8个中断源 全双工 UART 完全的双工UART串行口 低功耗支持Idle和Power
[单片机]
C51单片机学习---8*8LED点阵屏
关于8*8LED点阵屏 1.8*8LED点阵屏原理图 74HC595移位器:将串行输入— 并形输出 LED:单色光,三色光(红,绿,蓝– 组成多种颜色) pitch:相邻两个点之间的间距。 2mm=2pitch 实际应用: 广告 //点亮最右边的led #include reg52.h #include intrins.h typedef unsigned char u8; typedef unsigned int u16; sbit SCK =P3^6; sbit RCK =P3^5; sbit SER =P3^4; void Hc595SendByte(u8 dat); void main(void )
[单片机]
C<font color='red'>51单片机</font>学习---8*8LED点阵屏
51单片机1s延时程序设计
#include sbit P1_0 = P1^0; void Delay(); // 下面引用时一定要和这里的大小写一致否则会有警告或错误 void Main() { while (1) // 开始一直循环 { P1_0 = 0; Delay(); // 没有参数也要加 () 否则会有Warning P1_0 = 1; Delay(); } } void Delay() // 12M晶振1s延时 { unsigned char h, i, j, k; for (h = 5; h 》 0; h--) for (i = 4; i 》 0; i--) for (j
[单片机]
<font color='red'>51单片机</font>1s延时程序设计
51单片机控制sim900a,接收到短信点亮LED
已经经过测试,直接上程序,不懂@me #include reg52.h #include string.h #define uchar unsigned char #define uint unsigned int //以下是板子上LED的配置,把Px_x改成自己对应的脚。 #define LED1_ON P3_2 = 1 #define LED1_OFF P3_2 = 0 #define LED2_ON P3_3 = 1 #define LED2_OFF P3_3 = 0 #define LED3_ON P3_4 = 1 #define LED3_OFF P3_4 = 0 #define LED4_ON P3_5 = 1 #
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved