首页 毕业设计(论文)-基于AT89C51单片机的智能IC卡煤气表控制装置设计

毕业设计(论文)-基于AT89C51单片机的智能IC卡煤气表控制装置设计

举报
开通vip

毕业设计(论文)-基于AT89C51单片机的智能IC卡煤气表控制装置设计毕业设计(论文)-基于AT89C51单片机的智能IC卡煤气表控制装置设计 摘 要 随着信息社会的到来,人类所拥有的信息种类和数量呈爆炸性增长,IC卡,一种方便安全可靠的高技术,高附加值的信息载体便应运而生。IC卡技术以其广泛的应用领域和巨大的产品市场成为近几年来我国信息产业的一大特点。与此同时,我国燃气收费管理长期以来都是以人工抄表为主,存在着工作量大、收费时间长、收费困难、效率低、易出错的问题,为了减少燃气收费管理中人力、物力的浪费,减少不安全因素,进行了“智能煤气表的研究”。这既是IC卡技术实际应用的进一步...

毕业设计(论文)-基于AT89C51单片机的智能IC卡煤气表控制装置设计
毕业设计(论文)-基于AT89C51单片机的智能IC卡煤气 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 控制装置设计 摘 要 随着信息社会的到来,人类所拥有的信息种类和数量呈爆炸性增长,IC卡,一种方便安全可靠的高技术,高附加值的信息载体便应运而生。IC卡技术以其广泛的应用领域和巨大的产品市场成为近几年来我国信息产业的一大特点。与此同时,我国燃气收费管理长期以来都是以人工抄表为主,存在着工作量大、收费时间长、收费困难、效率低、易出错的问题,为了减少燃气收费管理中人力、物力的浪费,减少不安全因素,进行了“智能煤气表的研究”。这既是IC卡技术实际应用的进一步探索,也是燃气收费管理方式的改革。 本设计对智能IC卡煤气表控制装置的组成、功能及技术要求进行了理论上的分析和技术上的应用研究。设计依据低成本,高可靠性的原则完成了以下工作: 1. 软件设计中均采用模块化设计结构,完成了燃气表的计费功能以及故障的查询和处理。 2.采用性价比较高的AT89C51单片机作为控制装置的核心,控制装置的硬件电路实现了脉冲采集、数据存储、电磁阀驱动控制、IC卡读写、电源监测及声音报警和等功能。 3.本文用Visual Basic6.0成功地实现了对IC卡的管理以及煤气收费系统的管理。数据库软件具有建立用户档案、销售、写卡、统计、查询等功能。 关键词: IC卡技术 煤气表 AT89C51单片机 I ABSTRACT With the coming of information society, human beings have the amount and type of information in the explosive growth, IC card, a convenient safe, reliable and high technology and high value-added information carrier will come into being. IC technology with its extensive applications and great products market in China has become a feature of the information industry. Meanwhile, China's gas charges administration have long been mainly on artificially meter, there are big workload and charging time is long, difficult charging, the efficiency is low, the error-prone problems, in order to reduce gas fee manpower and material resources in the management of the waste and reduce the safety factor, "smart MeiQiBiao research". This is both practical application of IC card technology explore further, also is the reform of fuel gas fee management mode. Technical requirements makes a theoretical analysis and technical application research. Design basis low cost, high reliability principle completed the following job: 1. The software design is all adopt modular design structure, completed the gas meter charging functions and fault inquiries and processing. 2. The ratio of higher AT89C51 as control device, the core of the hardware circuit implementation control device of pulse acquisition, data storage, electromagnetic valve driving control, IC literacy, power monitoring and voice alarm and etc. Function. 3. This article with the Visual Basic6.0 successfully realized the management of IC card and gas fee system management. Database software has II build user archives, sales, write CARDS, statistics, inquiry, and other functions Keywords: IC technology Gas meter AT89C51 Micro-controller III 目 录 第1章 摘 要 ...................................................... 7 1.1 智能IC卡的作用和地位 .................................................. 7 1.2 研制智能IC卡煤气表控制装置的目的和意义 ............................ 8 1.3 IC卡在中国的应用与发展 .............................................................................. 9 第2章 智能煤气表硬件的设计 ................................................................................ 9 2.1 硬件总体结构 .................................................................................................. 9 2.2 AT89C51单片机简介 ...................................................................................... 10 2.2.1 AT89C51的引脚结构 ............................................................................. 10 2.2.2 内部结构 ................................................................................................ 14 2.2.3 外围电路.................................................................................................. 14 2.3 AT24C02 的应用 ............................................................................................. 15 2.3.1 AT24CXX介绍 ......................................................................................... 15 2.3.2 AT24C02的简介 ..................................................................................... 16 22.3.3 IC总线特性的简介 .............................................................................. 18 2.3.4 AT24C02在智能煤气表中的应用 .......................................................... 19 2.4 8155的简介 ................................................................................................... 20 2.4.1 8155的结构 ........................................................................................... 20 2.4.2 8155的引脚及功能 ............................................................................... 21 2.4.3 8155的工作原理 ................................................................................... 22 2.5 LED显示电路的设计 ...................................................................................... 23 2.5.1 LED显示器结构与原理.......................................................................... 24 2.5.2 LED显示器与显示方式.......................................................................... 24 2.6 耗气量计数电路的设计 ................................................................................. 26 2.6.1 霍尔效应 ................................................................................................ 26 IV 2.6.2 计数电路的设计 .................................................................................... 27 2.6.3 霍尔元件的材料及结构特点 .................................................................. 27 可燃气报警电路的设计 ................................................................................. 28 2.7 2.7.1 传感器 ................................................................................................... 28 2.7.2 探测报警电路 ........................................................................................ 28 2.7.3 调试 ....................................................................................................... 29 2.8 电源电路的设计............................................................................................. 29 2.8.1 电源变压器 ............................................................................................ 30 2.8.2 单相整流电路 ........................................................................................ 31 2.8.3 滤波电路 ................................................................................................ 33 2.8.4 稳压电路 ................................................................................................ 34 2.9 防作弊电路的设计 ..................................................................................... 35 第3章 智能煤气表软件的设计 .............................................................................. 35 3.1 流程图 ........................................................................................................ 35 3.2 软件抗干扰技术 ......................................................................................... 37 第 4 章 收费管理软件设计 .................................................................................... 39 4.1 开发平台及开发选用的语言 ......................................................................... 40 4.1.1 Visual Basic概述 ............................................................................... 40 4.1.2 Access的介绍 ....................................................................................... 41 4.2 收费管理中心主机软件流程图...................................................................... 45 4.2.1 收费管理中心各部分功能的简介 ......................................................... 46 4.2.2 用量查询程序 ........................................................................................ 47 4.2.3 报表输出程序 ........................................................................................ 49 4.2.4 用气信息及断气控制功能 ..................................................................... 50 4.2.6 IC卡智能煤气表充值系统源程序代码................................................. 52 总 结......................................................................................................................... 56 致 谢...................................................................................... 错误~未定义书签。55 参考文献 ..................................................................................................................... 58 附录1:智能煤气表原理图 ....................................................................................... 59 V 附录2:智能煤气表程序清单 ................................................................................... 60 VI 第1章 摘 要 1.1 智能IC卡的作用和地位 随着社会的进步和现代化程度的不断提高,人类所拥有的信息种类和数量都在成倍增加,人们每天都要处理许多与个人有关的信息,如购物、打电话、交水费、电费、燃气费、到银行存款取款等,这样就需要携带多种票证、现金、单据,给人们带来极大的不便和不安全感。于是,人们开始寻求一种具有支付、查询、密码查验等多功能及携带方便、安全可靠的“卡”。IC卡就是随着计算机技术、微电子技术和信息化技术的发展应运而生的一种现代社会重要的信息载体和交易工具。 IC卡又被称为集成电路卡(Integrated Circuit Card),它是将集成电路芯片镶嵌于塑料基片之中,并被封装成卡片的形式,其外形与普通信用卡完全相同,尺寸大小符合ISO7816 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 。IC卡具有突出的3S特点,即Standard(国际标准化)、Smart(灵巧智能化)和Security(安全性)。因而发展迅速,被广泛地应用于移动数据计算场合,如银行、电信、交通、广播电视、公用事业等领域。IC卡不仅改进了现有多种卡的使用方法和功能作用,它还不断开创新的应用领域。虽然IC卡本身并不创造任何价值,但是,如果将IC卡和其它设备组成系统就能够提供非常丰富的服务功能。把这些功能与生产或流通领域有机地结合起来,将出现令人意想不到的奇迹,创造出巨大的经济和社会效益。我国的金融和非金融产业部门都己认识到发展IC卡产业对加速我国国民经济信息化的重大作用。因此,与国外有关公司合作,引进制卡、读卡设备及应用的先进技术,成立了有关集团、公司、以加速我国应用和发展IC卡的应用和发展。 在国际上不少国家由于受到当时历史条件和技术发展的限制,都是先发展磁卡,其中大多数国家磁卡己发展得相当普遍,拥有数量庞大的磁卡应用设备,若要将其完全改造成IC卡读写设备将是相当困难的。此外,伴随着使用磁卡犯罪现象的日趋严重,采用IC卡已成为势在必行的潮流。IC卡可以最有效地杜绝恶性透支, 便于正常用款、存款,其内部有各种安全措施,可免除伪造,它无须计算机网络 的实时支持,可脱机作业,还可以实现一卡多用。因此普遍受到人们的赞誉和青睐,根据我国国情,我们没有必要也不应该重复走国外的老路,而应尽快开发适用于我国的IC卡。1993年6月,政府提出了全民推行使用信用卡,以减少大量的现金流通,加强国家对经济的宏观调控,实施以“电子货币”工程为重点启动的卡基础应用系统工程,即“金卡”工程。有关专家预计,IC卡必将在世界范围内逐步取代磁卡等卡种,在金融、电信、保险、公共福利事业等领域大量的应用,并正在我国实施的“金卡”工程中扮演着重要角色。 1.2 研制智能IC卡煤气表控制装置的目的和意义 IC卡的使用与其应用系统是密切相关的。一方面,采用IC卡可以使系统的运作更富创造性,另一方面,应用系统又会不断地对IC卡提出新的要求,促使其功能更加完善。因此,怎样把IC卡与实际应用有机地结合起来,充分发挥IC卡的优越性,一直是IC卡技术的一个重要课题,智能IC卡燃气表控制系统就是IC卡技术的一种实际应用。 我国大规模发展燃气化工程是从七十年代开始的,与世界发达国家相比,不论是从燃气普及率上,还是从燃气的计量、收费和管理上,都有很大的差距。更突出的问题是,我国燃气化工程一次性投资很大,燃气经营多处于微利润或亏损,除了政策性亏损外,其中计量供销差和收费管理漏洞是各地煤气公司普遍存在的重要亏损原因。所以国家每年要投入大量资金来弥补亏损,这就给国家增加了相当大的负担,也使城市燃气事业的自身发展缺乏活力。目前,随着国家开发大西北“西气东输”计划的正式启动,对燃气管理的进一步规范提出了更高的要求。此外,国家的“金卡工程” 的深入开展为新型的智能IC卡预付费燃气表的研制提供了十分广阔的应用前景。我国各地已研制了电子卡、磁卡、光卡和IC卡的智能燃气表,这些技术的共性就是把卡作为信息载体,作为“开”表的钥匙。因为IC卡除了在价格上暂时比其它几种卡稍贵一些(光卡除外),IC卡的技术性能等指标均高于其它卡。鉴于IC卡的优点,IC卡与燃气表的结合是未来发展的一种趋势。 随着IC卡技术的不断发展以及国内相关行业服务意识的提高,在与居民用户日常 生活相关的计量表计中使用IC卡技术己经得到了迅速的推广和广泛的应用。目前在电表、水表、燃气表及暖气热力表中都开始采用IC卡作为抄表收费、控制以及数据管理的媒介,使得IC卡表已经成为当前国内应用技术发展的一个亮点。 此外,从燃气表的管理模式和收费方式上看,我国采用智能IC卡燃气表装置是可行的。 1.3 IC卡在中国的应用与发展 我国的信用卡正跳过磁卡发展阶段而直接进入IC卡时代,国内先后组建华旭、华鑫集团公司等,出现了一批科研及生产、经营单位。96年10月,国内第一张用芯片设计、研制到卡片制作生产全部国产化的中华IC卡顺利通过技术鉴定,哈尔滨工业大学微电子中心与航天金卡电子公司联合研制成功的HWZ—201型IC卡也在96年年底鉴定,该逻辑加密型IC卡芯片用1微米以CMOS与EEPROM工艺小批量生产,据称一年内可提供10万张IC卡。另外,上海贝岭微电子有限公司也从美国引进了1.2微米EEPROM关键技术,制造IC卡芯片。目前,国内引进IC卡后部装配生产线较多,它们采用国外芯片,生产能力未充分发挥,97年研制出加密算法,IC卡操作系统COS,着手开发智能IC卡,其CPU芯片拟先用国外芯片,而操作系统采用国产的,国内IC卡应用市场发展迅猛,截止98年6月,7家银行共有发卡机构2023个,发卡量2040万张,存款余额670多亿元,特约商户18万多家,取现网点24万多个,自动柜员机ATM 7万多台。 目前国内IC卡的应用已跳出单一的银行业务与传统的信用功能,与其它产业联袂发展,它的付费功能,可用于交电费、水费、燃气费、电话费、车船费,甚至医疗费、保险费、纳税等。我国目前正按多种使用要求开发IC卡新品种,以便最大限度地发挥IC卡的各种功能和作用。 第2章 智能煤气表硬件的设计 2.1 硬件总体结构 AT24CO2(1)报警显示电路 AT24CO2(2)AT89C51电源切换电路 浓度检测电路电机驱动电路 计量机构脉冲发生阀门 图2-1 硬件总体结构 如图2.1所示,系统采用了AT89C51单片机作为核心,IC卡采用了AT24CO2卡,其中AT24CO2(1)为IC卡内存储芯片,AT24CO2(2)中存储用户信息。浓度检测电路、计量机构、报警显示电路、电源切换电路、电器驱动电路等构成了煤气表系统。 2.2 AT89C51单片机简介 2.2.1 AT89C51的引脚结构 从应用的角度来看,AT89C51单片机具有集成度高、系统结构简单、系统扩展方便、可靠性高、处理功能强、处理速度高、容易产品化等特点。图2.2是AT89C51双列直插封装方式的引脚结构图。 AT89C51运用了ATMEL公司的高密度非易失存储器技术,与工业标准的80C51的指令和管脚排列兼容。芯片内可下载的FLASH存储器可通过SPI串行接口或通过通用的非易失存储器编程器对其进行系统内的重新编程。通过将可下载的 FLASH存储器与通用的8位CPU相结合,AT89C51成为一种许多嵌入式应用系统中低成本,灵活性好的单片机。如图2-2。 图2-2 AT89C51单片机引脚配置图 其主要特点如下:与MCS-51产品兼容,4K字节可系统内重复编程的FLASH EPROM,128字节的内部RAM,操作电压为4V至6V,32路可编程I/O,2个16位计数器/定时器,5个中断源,可编程的UART串行接口。 下面分别叙述这些引脚的功能: (1)电源:AT89C51单片机正常工作时,其40脚(Vcc)接+5V电源,20脚(Vss) 接地。 (2)外接晶体引脚XTAL1,XTAL2。 XTAL1接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的反相放大器的输人端。当采用外部振荡器时,该引脚接收振荡器的信号,即把此信号直接接到内部时钟发生器的输人端。 XIAL2接外部晶体的另一个引脚。在单片机内部,它是上述振荡器的反相放大器的输出端。采用外部振荡器时,此引脚应悬浮不连接。 EA(3)控制或与其他电源复用引脚RST;ALE/PROG;和/VPP。 PSEN RST复位输人端。当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位。 ALE/;当访问外部存储器时,ALE地址锁存允许的输出用于锁存地址PROG 的低位字节。即使不访问外部存储器,ALE端仍以不变的频率输出。此频率为振荡器频率的1/6周期性地出现正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是:每当访问外部数据存储器时,将跳过一个ALE脉冲。在对Flash存储器编程期间,该引脚还用于输入编程脉冲PROG。如果需要的话,通过对专用寄存器SFR区中8EH单元的D0位置数,可禁止ALE操作。该位置数后,只有在执行一条MOVX或MOVC指令期间,ALE才会被激活。另外,该引脚会被微弱拉高,单片机执行外部程序时,应该设定禁止ALE位为无效。 程序存储允许,输出是外部程序存储器的读选通信号。当AT89C51由PSEN 外部程序存储器取指令时,每个机器周期两次PSEN有效即输出2个脉冲。但在此期间内,每当访问外部数据存储器时,这两次有效的PSEN信号将不出现。 /VPP外部访问允许端。要使CPU只访问外部程序存储器地址为EA 00C0H--FFFFH则端必须保持低电接到GND端。然而要注意的是,如果保密位EA LBI被编程,复位时在内部会锁存EA端的状态。当端保持高电平(接VCC端)EA 时, CPU则执行内部程序存储器中的程序。在Flash存储器编程期间,该引脚也用于施加12V的编程允许电源VPP(如果选用12V编程)。 (4)输人/输出引脚P0.0--P0.7,P1.0--P1.7,P2.0--P2.7,P3.0--P3.7。 1.P0口 P0口是多功能口,即可作为地址/数据总线使用,又可作为普通I/O口使用。 P0口作为地址/数据总线时,控制线为高电平,用来输出外存储器地址的8位D0——D7,因此P0口进行分时复用操作。 P0端口是一个8位漏极开路型双向1/0端口。作为输出口用时,每位能以吸收电流的方式驱动8个TTL输人,对端口写1时,又可作高阻抗输人端用。 在访问外部程序和数据存储器时,它是分时多路转换的地址(低8位)数据总线,在访问期间激活了内部的上拉电阻。 在Flash编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻 2.P1口 Pl口是一个带有内部上拉电阻的8位双向I/0端口。Pl口的输出缓冲器可 驱动4个TTL输人。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输人口。Pl口作输人口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流IIL。在对Flash编程和程序校验时,Pl口接收低8位地址。 3.P2口 P2口是一个带有内部上拉电阻的8位双向I/0端口。 P2口的输出缓冲器可驱动吸收或输出电流方式)4个TTL输人。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输人口。P2作输人口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流IIL。在访问外部程序存储器和16位地址的外部数据存储器时,如执行MOVX DPTR时,P2口送出高8位地址。在访问8位地址的外部数据存储器时,如执行MOVX R1指令时,P2口引脚上的内容就是专用寄存器SFR区中P2口寄存器的内容,在整个访问期间不会改变。在对Flash编程时和程序校验期间,P2口也接收高位地址和一些控制信 号。 4.P3口 P3口是一个带内部上拉电阻的8位双向1/0端口。P3口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输人。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输人口。P3口作输人口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流IIL。P3口也是准双向口,在作第 二功能使用时,相应的口锁存器必须为“1”。 对并行口进行读写时有两种操作:一是锁存器,二是读引脚。 1(读引脚的指令是绝大部分的并行口作为操作数的数据指令。 2(读锁存器指令执行器如下操作,读入锁存器的值,改写,然后再写入。 在AT89C51中,P3端口还有一些复用功能。复用功能如表2-1所列。 表2-1 P3各端口引脚与复用功能表 端口引脚 复用用能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INT0(外部中断0) P3.3 INT1(外部中断1) P3.4 T0(定时器0的外部输入) P3.5 T1(定时器1的外部输入) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读写通) 2.2.2 内部结构 AT89C51单片机内部集成口多达8个部件: 1.数据存储器(RAM):片内为128个字节(单元),片外最多可扩展至64K字节 2.程序存储器(ROM/EPROM):有4K的EPROM。 3.中断系统:有5个中断源,两个中断优先级 4.定时器/计数器:两个16位的定时/计数器,具有四种工作方式。 5.串行口:1个全双工的串行口,具有四种工作方式。 6.P0口、P1口、P2、P3口:为4个并行的8位I/O口。 7.特殊功能寄存器(SFR):共有21个,用于对片内各个功能模块进行管理、控监视。实际上是一些控制寄存器和状态寄存器,是一个特殊功能的RAM区域。 8.处理器(CPU):为8位的CPU,而且内含一个位处理器,不仅可以处理字节数据,还可以进行多位变量的处理。 2.2.3 外围电路 1.复位电路 通过某种方式,使单片机内各寄存器的值变为初始状态的操作称为复位。为使单片机正常工作,必须保证良好的复位。复位可分为上电复位和外部复位两种方式。 上电复位是指单片机在接通电源时对单片机复位,外部复位可由外部脉冲复位或由手动复位。本系统采用上电复位方式。复位电路如图2-3。 上电瞬间,由于电容C两端电压不能突变,所以电容正极电压为低,单片机RESET脚保持高电平。随着电容正极电压的逐渐上升,RESET脚的电压逐渐下降。只要合理选择R、C的值使RESET脚上高电平的保持时间超过两个机器周期,就可以使单片机可靠复位。 23456 2.时钟电路 D 1单片机的定时控制功能是用片内的时钟电路和定时电路来完成的,而片内的 时 钟产生有两种方式:内部时钟方式和外部时钟方式。 本课题采用内部时钟方式(如图2-4所示),片内高增益反相放大器通过 XTALI和XTAL2外接作为反馈元件的晶体(呈感性)与电容组成的并联谐振回路构 成一个自激振荡器向内部时钟电路提供振荡时钟。AT89C51工作的时钟频率范围 为0到24MHz.本课题选择12MHz的石英晶振与30pF的电容构成并联谐振电路。 D 30pF XTAL2 12MHZ 30pF 图2-3 复位电路 XTAL1 C 图2-4 时钟电路 2.3 AT24C02 的应用 C 2.3.1 AT24CXX介绍 AT24CXX系列采用低功耗COMS工艺制造,内部设有高压泵电路,可以单电 压工作,具有擦除/写入10万次和数据保留100年的高可靠性,提供双线串行接 口,支持ISO/ICE7816—3同步 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 ,便于与各种微机系统进行接口,使用方便。 另外,对存储器在芯片中的数据,还可通过软件的方法利用各种算法进行加密处 B B A RSizeevision B Date:19-Jun-2005Sheet of 桌面Drawn By:\图\BACKUP~11.DDBFile:C:\Documents and Settings\Administrator\ 123456 A Title Number 理,从而提高安全性,扩大器件的应用范围。 AT24CXX含24C01/24C02/24C04/24C08/16,它们分别提供1K/2K/4K/8K/16K 2位串行EPROM,内部组态为128/256/512/2048×8位,支持8字节(1K,2K)、16字节(4K,8K,16K)页面写入方式。如将这些芯片的输入地址引脚A2、A1和A0按 照表2-2所示进行硬件接地后,便可用于IC卡中。 表2-2 AT24CXX用于IC卡的硬件连接 AT24CXX 01 02 04 08 16 接地引脚 A2,A1,A0 A2,A1.A0 A2,A1 A2 无 2.3.2 AT24C02的简介 1.AT24C02引脚简介,如图2-5。 (1)A2,A1,A0接地引脚 (2)GND 模拟地 (3)SDA 数据引脚 (4)SCL 时钟引脚 (5)Vcc 电源引脚 (6)TEST 测试端 AO5Vcc1 A126TEST 37A2SCL 48SDAGND 图 2-5 AT24C02引脚图 2.AT24C02的卡模块触点(图 2-6)及功能设置(表2—3)。 VccC1C5GND NCC2C6NC SCLC3C7SDA NCC4C8NC 图2-6 卡模块触点图 表2—3 功能设置 引脚 卡触点 符号 功能 1 C1 VCC 操作电压5V 2 C2 NC 复位 3 C3 SCL 串行时钟线 4 C4 NC 未用 5 C5 GND 地 6 C6 NC 未用 7 C7 SDA 串行数据线 8 C8 NC 未用 3.AT24C02卡工作状态 AT24C02卡工作时的总线时序如图2-7所示。SCL和SDA两总线平时通过一个电阻上拉为高电平,SDA总线上的数据仅在SCL低电平时间周期内可能改变。SCL高电平周期期间数据的改变表示“开始”或“停止”两种状态:当SCL处于高电平时,SDA由高电平转向低电平表示一个“开始”状态必须在其他操作之前执行,而“停止”状态则终止所有操作。除了以上两种状态外,AT24C02卡与外界的通讯还需要另外一个状态,那就是“确认(ACK)”:总线上的任何接收数据设备必须将SDA总线置于低电平以确认它成功的收到了每个字节(所有的地址和数据都是以8位码串行输入、输出AT24C02卡),该确认是在每个字节之后,第九个时钟周期时发生。AT24C02卡也通过在收到每个地址或数据码之后置SDA于低电平的方式确认。为了正确地访问AT24C02卡,外部数据传送设备必须在发出“开始”状态之后,随即给出一个8位地址码,称为器件寻址码。该码高四位为1010,这在AT24C02系列所有芯片中都是一样的。接下来3位依次是A2,A1和A0,它们与芯片各自的输入地址引脚硬件连接相对应,未作硬件连接的引脚所对应位用于页面寻址。最后1位是读、写操作选择位,该位为0(低电平)时激发写操作,为1(高电平)时激发读操作。 4.AT24C02的读写方法 AT24C02具有写字节和写页面两种写操作方式。图2-8所示为写字节方式,该 方式在器件寻址和确认之后跟随一个数据寻址码,卡片在收到该寻址码后通过 SDA发出确认,并随时钟输入8位数据码,同样,收到数据之后卡片再次发出确认,数据传送设备必须用停止状态来终止写操作。这时,卡片进入一个内计时固定存储器写入周期,在该写周期内,所有输入都被禁止,直至写操作完成。 图2-7 AT24C02卡总线时序 AT24C02的读操作分为立即地址读取、随机地址读取和顺序地址读取三种方式。随机读取方式式需要一个“空”字节序列来加载数据地址,一旦器件寻址码和数据寻址码随时钟输入,并被确认,传送设备必须产生另一个开始状态。通过送出一个读、写选择位处于高电平的器件寻址码去激发一次立即寻址读取,卡片确认器件地址,并随时钟串行输出数据。数据的读取不通过确认应答,而通过产生一个停止状态来应答。 图2-8 写字节操作 22.3.3 IC总线特性的简介 2 IC双向二线制串行总线协议定义:只有在总线处于“非忙”状态时,数据传输才能被初始化。在数据传输期间,只要时钟线为高电平,数据线都必须保持 2稳定,否则数据线上的任何变化都被当作“启动”或“停止”信号。IC串行总线支持所有NMOS、CMOS, 工艺制造的器件,通过两根线(SDA-串行数据线,SCL ,串行时钟线)再连接到总线之间传递信息,根据地址识别每个器件,根据器件的功能可以工作在发送接收方式,对于发送器和接收器而言,在进行数据传递时可以认为时主器件或从器件。主器件是启动在总线上传的数据并产生时钟信号以允许传送的器件,这时能寻址的器件即认为时从器件。 1.总线非忙状态(A段):数据线SDA和时钟线SCL都保持高电平。 2.启动数据传输(B段):当时钟总线SCL为高电平状态时,数据线SDA由高电平变为低电平的下降沿被认为时“启动”信号。只有出现“启动”信号以后,其他的命令才有效。 3.停止数据传输(C段):当时钟线 SCL为高电平状态时,数据线SDA由低电平变为高电平的上升沿被认为时“停止”信号。随着“停止”信号的出现,所有的外部操作都结束。 4.数据有效(D段):在出现“启动”信号以后,在时钟线为高电平时数据线是稳定的,这是数据线的状态就表示要传送的数据。数据线上的数据改变必须在时钟线为低电平期间完成,每位数据占一个时钟脉冲宽度。每个数据的传输都是由“启动”信号开始,结束语“停止”信号。在“启动”与“停止”信号之间传输的数据字节数由微机处理机确定,并且从理论上设字节数没有限制。起始(S),停止(P)都是由SCL高电平期间SDA的跳变决定的。SDA电平下拉时启动22IC总线,上拉时停止使用总线。在启动IC总线后,对应SCL高电平期间SDA上的数据有效,对应SCL低电平期间允许SDA上的数据更迭。 25.应答信号:每个正在接收数据的EPROM在接到一个字节的数据后,通常需要发出一个应答信号,微处理机必须产生一个与这个应答相联系的额外的时钟脉冲。在应答时钟脉冲周期内,时钟脉冲为高电平,数据线必须下拉成稳定的低 22电平。微处理机对EPROM完成的最后一个字节不产生应答位,但是应该给EPROM 2一个结束信号。在这种情况下,EPROM应该结束数据线的高电平状态,而使微处理机能够 产生“停止”信号。但是,如果正在进行内部定时编程周期,那么将不产生应答位。 2.3.4 AT24C02在智能煤气表中的应用 2AT24C02(1)为IC卡内存储芯片,该芯片是一种具有IC总线结构的串行2EPROM,容量为256字节。用气前,用户持卡向煤气公司购买煤气,由煤气公司写卡机把所购煤气量编码加密后写入IC卡中。然后插入家中煤气表IC卡插槽内, 由AT89C51对该卡进行解码和核对工作,并读取购气量。卡中的密码信息经某种算法得到且每次不同,内容完全相同的两次插卡操作,其后面一次将被视为非法,这样可防止通过复制IC卡进行窃气的行为。同时,表内记录的累积已耗用气量被写入IC卡中,供气插卡时煤气公司的计算机管理系统查对,发现累积已耗用气量比累积购气量大的情况,即进行调查。在插槽中插入IC卡时,触动K2闭合,引起中断,且P1.5由高变低供该中断服务程序查询确认是IC卡插入。表INT1 内非易失性内存芯片与IC卡内芯片一样,即AT24C02(2)。煤气表中诸如累积已耗用气量、结余气量、购气次数等重要数据都存在AT24C02(2)中,这样可克服由充电电池长期维持RAM中信息所潜在的不可靠性。AT24C02仅有8条引脚,串行通信只用两根口线,做成IC卡时外界连线少,作为非易失性内存更是比采 2用并行EPROM减少许多连线,PCB布线更简洁,体积更小。IC卡煤气表中所需 2存取的重要数据少,且数据存储速度要求不太高,故这种小容量的串行EPROM 2非常适用。AT24C02是IC总线结构器件,这就要求AT89C51通过编程使其P1.0 2和P1.1完全遵循IC总线时序及AT24C02的数据传送格式,去分别等效串行数据线SDA和串行时钟线SCL,从而实现两者的通信。 2.4 8155的简介 8155芯片内具有256个字节的RAM,两个8位、一个6位的可编程I/O口和一个14位计数器,与单片机的接口简单,是单片机应用系统中广泛使用的芯片。 2.4.1 8155的结构 按照器件的功能,8155可由下列三部分组成; 1.随机存储部分 容量为256×8位的静态RAM。 2.I/O接口部分 (1)端口A:可编程8位I/O端口PA0,PA7。 (2)端口B:可编程8位I/O端口PB0,PB7 (3)端口C:可编程6位I/O端口PC0,PC5 3.计数器/定时器部分 是一个14位的二进制减法计数器/定时器 2.4.2 8155的引脚及功能 如图2-9所示,8155具有40条引脚线,采用双列直插式封装。 图2-9 8155引脚图 1.AD7,AD0(8条) AD7,AD0是地址/数据总线,与单片机的P0口相连,用于分时传送地址/数据信息。 2.I/O总线(22条) PA7,PA0为通用I/O线,用于传送A口上的外设数据,数据传送方向由写入 8155命令字决定的;PB7,PB0通用I/O线,用于传送B口上的外设数据,数据传送方向也由8155命令字决定。PC5,PC0制线,共有6条,在通用I/O方式下,用作传送I/O口数据,在选用I/O方式下,用作传送命令/状态信息。 3.控制总线(8条) RESET:复位输入线,在RESET线上输入一个宽大于600ns的正脉冲8155立即处于复位状态,A、B、C三口也定义为输入方式。 M和IO/:为8155片选输入线,若=0,CPU选中本8155工作;否则,CECE 本8155不工作。IO/M为I/O端口或RAM存储器的选通输入线;若IO/M=0, M则CPU选中8155的RAM存储器工作。若IO/=1,则CPU选中8155片内某一存 储器。 和:是8155的读/写命令输入线,为写命令线,当=0和RDRDRDWRWR =1时,8155处于读出数据状态:当=1和=0时,8155处于写入数据RDWRWR 状态。 ALE:为允许地址输入线,高电平有效,若ALE=1,则8155允许AD7,AD0上地址锁存到地址锁存器;否则,8155的地址锁存器处于封锁状态。 TIMERIN和:TIMERIN是计数器输入线,输入的脉冲上跳沿用于TIMEROUT 对8155片内的14位计数器减1,为计数器输出线,当14位的计数TIMEROUT 器减为0时就可以在该引线上输出脉冲或方波,输出脉冲的形状与所选的计数器工作方式有关。 4.电源线(2条)Vcc为+5V电源输入线,Vss接地。 2.4.3 8155的工作原理 8155的结构框图见图2-10。这里主要介绍它的三组I/O端口电路及14位二进制减法器的工作原理。 1.8155I/O端口工作原理 8155的三组I/O端口电路的工作方式,均由可编程的命令寄存器的内容所 规定 关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定 ,而其状态可由读出状态寄存器的内容而获得,上面已经叙述,8155的命令寄存器和状态寄存器分别为各自独立的8位寄存器。在8155的器件内部,从逻辑上来说,只允许写入命令寄存器和读出状态寄存器的内容。而实际上,读命令寄存 的内容及写入状态寄存器的操作实际不允许、也不可能实现的。因此完全可将命令 寄存器和状态寄存器的地址合用一个地址通道,以减少器件占用通道地址;同时将两个寄存器简称为命令/状态寄存器,有时以C/S寄存器来表示。 PA0-PA7AD0-AD7 256×8 A静态 RAMIO/M CEPB0-PB7 BALE RD WR计PC0-PC5REST时 CTIMERIN器TIMEROUT 图2-10 8155结构框图 (1) 8155的命令字格式。命令寄存器由8位组成,每一位都能锁存。其中低4位(0,3)用来定义PA、PB和PC口的工作方式;当PC用作控制PA或PB端口工作时,第4、5两位分别用来允许和禁止PA和PB的中断;而最高两位(第6、7两位)则用来定义计数器/定时器的工作方式。利用输出指令,可以把命令寄存器的各位编码打入其中。 (2)8155状态字格式。状态寄存器为8位,各位均可锁存,其中最高位为任意位,第6位用于指定转换接口的状态,另一位用作指示计数器/定时器的状态之用。通过C/S寄存器的操作(即用指令系统的输入指令),可读出状态寄存器的内容。 2.8155计数器/定时器工作原理 8155的定时器是一个14位的减法计数器,它能对输入定时器的脉冲进行计数,在达到最后计数值时,有一个矩形波或脉冲输出。 为了对定时器进行程序控制,首先装入计数长度。由于计数长度为14位,因 每次装入长度只能是8位,所以必须分两次装入。装入计数长度寄存器的值为2H,3FFH。而第14、15位用来规定定时器的输出方式。 应该注意,硬件复位信号的到达,会使8155计数器停止计数,只有C/S寄存器发出启动定时器命令为止。 单片机可以和8155直接连接,不需要任何外加电路,对系统增加256个字节的RAM、22位I/O线及一个计数器。在同时需要扩展RAM和I/O口及计数器的单片机应用系统中选用8155时特别经济的。8155I/O口可以外接打印机、A/D、D/A、键盘等控制信号的输入输出。8155的定时器可以作为分频器或定时器。 2.5 LED显示电路的设计 单片机应用系统中,显示器是最常用的输出设备。特别是LED(发光二极管显示器)和LCD(液晶显示器)。这两种显示器成本低廉,配置灵活,与单片机 接口方便。本设计采用的是LED显示电路。 2.5.1 LED显示器结构与原理 LED显示块是单片机应用产品中常用的廉价输出设备。它是由发光二极管显 示字段的显示器件,在单片机应用系统中通常使用的是七段LED数码管。当发光123456 二极管导通时,相应的一个点或一段发光,控制不同组合的二极管导通,就能显 示出各种字符。这种显示块有共阴和共阳两种接法,如图2-11所示。共阴极LED 显示块的发光二极管阴极共地,如图中(a)所示当某个发光二极管的阳极为高 电平时,发光二极管点亮。共阳极LED显示快的发光二极管阳极并接,如图中(b)123456 所示。7段发光二极管再加上一个小数点位,共计8段。 DD七段显示块与单片机接口非常容易。只要将一个8位并行输出口与显示快的 VCC发 aa bb光二极管引脚相连即可。8位并行输出口输出不同的字节数据即可获得不同的数 DDcc字或字符。通常将控制发光二极管的8位字节数据称为段选码。共阳极与共阴极 dd7的段选码互为补偿。 65ee 43ff 281ggdp dpadpdpDPY bca defbg fCCgecDS?d DPY_7-SEG_DP CC(a) (b) (c) (a)共阴极 (b)共阳极 (c)管脚配置 图2-11 七段LED 显示器 2.5.2 LED显示器与显示方式 在单片机应用系统中使用LED显示块构成N位LED显示器。N位LED显示器BB BB AA Title SizeNumberRevision B Date:21-Jun-2005Sheet of 桌面\datu3.ddbDrawn By:File:C:\Documents and Settings\lenovo\123456 AA Title SizeNumberRevision B Date:21-Jun-2005Sheet of File:C:\Documents and Settings\lenovo\桌面\datu3.ddbDrawn By: 123456 123456 有N×8根段选线。根据显示方式不同,位选线与段选线的连接方法不同。段选 线控制字符选择,位选线控制显示位的亮、暗。LED显示器有静态显示和动态显 示两中方式。 DD1.LED静态显示方式 LED显示器工作在静态显示方式下,共阴极或共阳极连接在一起接地或+5v; DPYDPYDPY每位的段选线(a,dp)与一个8位并行口相连。如图2-12所示该图表示了一个 aaa四位静LED显示电路。该电路每一位可独立显示,只要在该位的段选线上保持段 fbfbfbggg选码电平,该位就能保持相应的显示字符。由于每一位由一个8位输出口控制段 ececec选码,故在同一时间里每一位显示的字符可以不同。 ddd 7777 N位静态显示器要求由N×8根I/O口线,占用I/O资源较多,故在位数多时6666 5555往往采用动态显示方式。 4444 3333 2222 81181818dpdpdpdp dpaadpdpdpaaDPYbbbb ccccadddd CCeeeefbgffff 123456ggggecd 图2-12 四位静态LED显示电路 2.LED动态显示方式 DD 在多位LED显示时,为了简化电路,降低成本,将所有位的段选线并联在一 起,由一个8位I/O口控制,而共阴极点或共阳极点分别由相应的I/O口线控制。 图2-13就是一个8位LED动态显示器电路。 DPYDPYDPYDPYDPYDPY aaaa aafbfbfbfbfbfbgggggg ececececececdddddd 7777777766666666 55555555BB44444444CC33333333 222222228181811811818188dpdpdpdpdpdpdpdp dpdpdpaadpaadpaadpadpadpDPYbbbbbbbbcccccccc addddddddeeeeeeeefbgffffffff ggggggggecd BB AA Title SizeNumberRevision AAB TitleDate:21-Jun-2005Sheet of 桌面\datu3.ddbDrawn By:File:C:\Documents and Settings\lenovo\SizeNumberRevision B123456Date:21-Jun-2005Sheet of 桌面\datu3.ddbDrawn By:File:C:\Documents and Settings\lenovo\123456 DPY afbg ecd 图2-13 八位LED动态显示器电路 八位LED动态显示器电路只需要两个8位I/O口。其中一个控制段选码,另一个控制位选。由于所有的段选码皆有一个I/O控制,因此,八位LED只可能显示相 同的字符。要想每位显示不同的字符,必须采用扫描方式。即在每一瞬间只使某一位显示相应字符。在此瞬间,段选控制I/O输出相应字符段选码,位选控制I/O在该显示位送入选通电平(共阴极送低电平、共阳极送高电平)以保证该位显示相应字符。如此轮流,使每位显示该位应显示字符,并保持一段时间,以造成视觉暂留 效果。不断循环送出相应的段选码,位选码,就可以获得视觉稳定的显示状态。 在本设计中,由LED数码管及驱动电路构成四位动态显示,平时四位LED所显示的是累计已耗用气量的低四位,按K1键可依次循环显示累积已经耗用气量的高三位和节余气量。 2.6 耗气量计数电路的设计 2.6.1 霍尔效应 图2-14 霍尔效应原理图 如图2-14所示的金属或半导体薄片,若在它的两端通过控制电流I,并在薄片的垂直方向上施加磁感应强度位B的磁场,那么,在垂直于电流和磁场的方向上(即霍尔输出端之间)将产生电动热(霍尔电动势或霍尔电压)。这种现UH 象称为霍尔效应。 霍尔效应的产生是由于运动电荷受磁场中洛仑兹力作用的结果。假设在N型半导体薄片的控制电流端通过电流I,那么,半导体中的载流子(电子)将沿着和电流相反的方向运动,若在垂直于半导体薄片平面的方向上加一磁场B,则由于洛仑兹力 fL的作用,电子向一边偏转(fL和v之间所夹线的方向),并使该边积累电子,而另一边则积累正电荷,于是产生电场。该电场阻止运动电子的继续偏转。当电场作用在运动电子上的电场力fE与罗伦次力fL相等时,电子的累积便达到动态平衡。这时,在薄片两横断面之间建立的电场称为霍尔电场,相应的电动势EH 就称为霍 尔电势。霍尔电动势的大小正比于控制电流I和磁感应强度B的乘积。称UKHH为霍尔元件的灵敏度,它是表征在单位磁感应强度和单位控制电流时输出霍尔电压大小的一个重要参数,一般要求它越大越好霍尔元件的灵敏度与元件材料的性质和几何尺寸有关。由于半导体(尤其是N型半导体)的霍尔元件常数要比RH金属的大的多,所以,在实际应用中,一般都采用N型半导体材料制作霍尔元件。此外,元件的厚度d对灵敏度的影响也很大,元件的厚度越薄,灵敏度越高。所以霍尔元件的厚度一般都比较薄。 当控制电流的方向或磁场的方向改变时,输出电动势的方向也将改变。但当磁场与电流同时改变方向时,霍尔电动势并不改变原来的方向。 2.6.2 计数电路的设计 本设计沿用了传统煤气表的气量计量部分,这样,就能够节省大量的人力,物力,财力等。将霍尔元件H固定在转轴附近,当贴在转轴上的小磁钢转过H时,霍 尔元件HZ-4就会产生一个正脉冲,经斯密特触发器倒相整形,送到AT89C51的 端产生一次耗气量计数中断。当节余气量为临界值时,声光提醒去购气,INT0 节余量为零时则置相应标志,回主程序后立即关气。 2.6.3 霍尔元件的材料及结构特点 霍尔元件一般采用具有N型的锗、砷化铟等半导体单晶材料制成。锗元件的输出小,但它的温度性能和线性度却比较好。砷化铟元件的输出信号不是很大,但是受温度的影响却很小,而且线性度也比较好。因此,采用砷化铟为霍尔元件的材 料受到普遍重视。 在选用霍尔元件时,要根据具体应用场合和要求来选用不同材料的元件。例如, 用于一般测量指示仪表中,大多采用锗和砷化铟元件。 本设计采用的是HZ-4型霍尔传感器。它的参数如下:电阻率—0.4-0.5(Ω?cm),几何尺寸—8×4×0.2(mm),输入电阻—45,+2,(Ω),输出电阻40,+20,(Ω), 灵敏度—〉4(mV/A.T),不等位电阻—<0.02(Ω),寄生直流电动势—<100(uF), 额定控制电流—50(mA),霍尔电动势温度系数—0.03,(1/C),热阻—0.1(?/mW),工作温度—-- -40,+75(?)。 2.7 可燃气报警电路的设计 煤气是有毒可燃气体,当空气中达到一定浓度时,将危及人的健康与安全。本电路线路简单,但具有很高的灵敏度,对探测有毒气体是行之有效的。 2.7.1 传感器 用MQ-N10气敏传感器作为探测头,它是一种新型的低功耗高灵敏的气敏元件。 2.7.2 探测报警电路 图2-15为探测报警电路。和其他气敏传感器一样,MQ-N10也有一个加热丝和一对探测电极,它是用N型半导体材料制成的。 当空气不含有毒气体时,A,K两点间的电阻很大,流过RP的电流很小,K点为低电位,达林顿管U850不导通;当空气中含有还原性气体时(如煤气时),A,K两点间的电阻迅速下降,通过RP的电流增大,K点电位升高,向C2充电直至达到U850导通电位(约1.4V),U850导通,驱动发声集成片KD9561发声。 当空气中有毒气体浓度下降致使A,K两点间恢复高阻时,K点电位低于1.4V,U850截至,报警解除。 图2-15 有毒气体探测报警电路 2.7.3 调试 将300ppm浓度的气体充入塑料袋中,将探测头也封入塑料袋中,调节电位器RP直至使VT导通发声报警为止。 可燃气传感器MQ-N10感应到可燃气浓度过量时,有一正跳变经施密特触发器倒相整形后送到P1.3,当查询到P1.3低时则程序转去执行声光报警。光报警时终止正常显示,利用显示器中的一位特定字符来指示,声报警由P2.4控制。低功耗工作时,P1.2送出一高电平停止MQ-N10的工作。 2.8 电源电路的设计 本设计采用市电结合充电电池双重供电。当市电供电时,煤气表工作于正常状态。当市电停电时,锂电池自动续接供电。CPU查询到P1.7为高即知断市电,煤气表转入低功耗待机工作状态,主要功能都可通过中断请求得以保持。此时停止显示及可燃气报警这两部分耗电较大的电路的工作,平均耗电流可降至1.5mA以下,锂电池满电量为1300mA?h,电池可维持工作时间为5年。可见双供电 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 与单独电池供电相比可靠性提高。 万一电池供电时电压降至5.5V,比较器LM393正跳变触发单稳电路产生一个 负脉冲,引起中断,该中断服务程序通过查询P3.4为高确认是电池欠压,INT1 返 回主程序后立即关气。 电子设备中所用的直流电源,通常是由电网提供的交流电经过整流,滤波和稳压以后得到的。对于直流电源的主要要求是输出电压幅值稳定,当电网电压或负载电流波动时能基本保持不变,直流输出电压平滑,脉冲成分小,交流电变换成直流电时转换效率高。这种电源可以直接使用干电池,但比较经济实用的办法是利用由交流电源经过交换而成的直流电源。 方框图2-16中电源变压器用来把220V的市电变成合适的电压;整流是把交变的电压(电流)变成单方向的脉动电压(电流);滤波器的作用是把脉动的电源要求更高,就需要稳压部分,稳压电路的作用是可使输出的直流电压在电网电压波动或负载阻抗变化时,基本保持稳定。 电网电压 负载 电源变压器 整流电路 滤波器 稳压电源 图2-16 直流电源产生过程 电源变压器 2.8.1 电网提供的交流电一般为220V或380V,而各种电子设备所需要的直流电压 变幅值,却各不相同。因此,常常需要将电网电压先经过电源变压器,然后经将换以后的副边电压再去整流、滤波和稳压,最后得到所需的直流电压幅值。 可以根据不同的设备需要选择一定的变压比K=U1/U2。 图2-17 电压变换 2.8.2 单相整流电路 二极管具有单向导电性,因此可以利用二极管的这一特性组成整流电路,将交流电压变为单向脉动电压。在小功率直流电源中,经常采用单相半波,单相全波和单相桥式整流电路。 在分析整流电路的性能时,主要考察以下几项参数:整流电路的输出电压(即 输出电压平均值),整流输出电压脉动系数S,整流二极管正向平均电流Ui0D和 最大反向峰值电压。前两项参数表征整流电路的质量,后两项参数体现了整VRM 流电路对二极管的要求,可以根据后面两项参数来选择适用的器件。 单相半波整流电路:经过半波整流以后,负载上得到的直流电压幅值只有变压器副边电压有效值的45%。而且,这个结果是在理想情况下得出的,如果考虑导电时电流在整流电路内阻(包括二极管的正向内阻和变压器的等效内阻)上的压降,则的数值还要低。 Ui 1.整流电路的选择 单相半波整流电路的优点结构简单,使用的元件少。但是其缺点也很明显,输出波形脉动大;直流成分比较低;变压器有半个周期不导电,利用率低;变压器电流含有直流成分,容易饱和。所以,只能用在输出电流较小,要求不高的地方。 单相全波整流电路是在半波整流电路的基础上加以改进而得到的。除了脉动系数仍然比较大的缺点外,必须采用具有中心抽头的变压器,而且每个线圈只有一半时间通过电流,所以变压器的利用率不高。 在同样的变压器副边电压U2之下,半波整流电路的输出直流电压最低,而 动系数最高。桥式整流电路和全波整流电路当U2相同时,输出直流电压相等,脉动系数也相同,但桥式整流电路中每个整流管所承受的反向峰值电压比全波整 流电路低。因此,它的应用比较广泛。故本设计采用单相桥式整流电路。单相桥式整流电路用四只整流二极管组成电桥的形式,常用画法见图2-18。 图2-18 单相桥式整流电路 2(单相桥式整流电路的工作原理 当电流在0?ωt?π的正半周期时,变压器副边a端为正,b端为负,则二极管D1,D2处于正向偏置而导通,同时二极管D3,D4则处于反向偏置而截至。电流自变压器a端经二极管D1,负载R2,二极管D2返回变压器副边b端。当电源在π?ωt?2π半周时,变压器副边a为负,b为正,这时二极管D3,D4因正向偏置而导通,D1,D2因反向偏置而截至,电流经D3,D4二极管构成通路,负载上电压同样是上正下负,就是说电源的负半周也被整流出来。图2-19为桥式整流波形。 U2 0 ωt U0 0 ωt 图2-19 桥式整流波形 3(各电量的关系 设=sinωt 公式(2-1) uU222 ,1 输出电压平均值U= 公式(2-2) 2Usin,td,t02,,0 UU0.902 输出电流平均值== 。 公式(2-3) I0RRLL 由于两组二极管轮流导通,每组管子只工作半个周期,流过每组二极管的平 U12均电流为输出电流的一半= =0.45。由电路可知截止的二极管所承受IID02RL 的反向电压的最大值,即= 。二极管的平均电流和最大反向电压UUU22RFM2 可作为组成滤波桥式整流电路时,选择整流二极管的依据。 2.8.3 滤波电路 变压器经整流后变成了单方向的电压,但是脉动成分很大,为减小直流电压的脉动程度,提高其平稳程度,就需要增加滤波电路。本设计采用的是电容滤波电路。图2-20是在整流电路后面接在负载两端并联一个大容量的电容C。 UL 图2-20 电容滤波电路 滤波电路的工作原理 电容滤波是根据在电容器两端的电压不能突变的原理制成的。当电路接通时,二极管D导通,输出电流在流经负载的同时,还向电容器C充电,充电RL 常数T=C很小。电容两端的电压将跟随电源而呈正弦规律。图2-21所示当达RL 到最大值a点 后将随下降;在b点低于,于是二极管D承受反向电压而截止,电容UUUC22 停止充电并经RL放电。由于放电常数τ= C很大,所以电容两端电压比电RULC源电压下降的速度慢的多于是b后的一段时间内,,输出电压靠电UUUUCC22 容C通过负载电阻放电来维持。曲线按电容C的放电曲线下降,达到c点RUL2 时,经整流后的电压将上升足够大,并使整流二极管导通 ,滤波重新开始,U2 电容C又开始充电,输出电压随的正弦规律上升直到的最大值之后二UUUL22 极管D又被截止,电容C又开始放电,如此反复充放电。 根据以上分析,可见电容滤波适当整流输出电压上升时,使电容器被充电,而在整流输出电流下降时,利用已充电的电容对负载放电,使负载两端的电压平稳,完成滤波作用。桥式整流的滤波作用与半波整流电路一样,输出电压更加平稳。 UL π 2π 3π ωt (a) 截止 导通 UL a b c π 2π 3π ωt (b) 图2-21 (a)未接电容的负载电压 (b)接电容的负载电压 2.8.4 稳压电路 经过滤波后的输出信号虽然比较平直,但是它的稳定性还得不到保证,如当负载变化或电网电压波动时,输出电压也随之改变。因此,在对电压稳定度RL 要求更高的情况下,还必须采取稳压电路。 (a) (b) 图2-22(a) 组件外形图 (b) 三端集成稳压器接线图 随着半导体集成电路工艺的迅速发展,集成稳压电路已经广泛地应用于直流稳压电源的设计中。对于许多电子仪器,电子计算机或其他电在设备中所用的稳压电源必须要经常改变稳定电压的输出值,只要固定的稳定电压即可,故本设计采用三端集成稳压电源W78XX系列,如图2-22。 这种三端式集成稳压器有两种:一种为 W78XX系列输出正电压,一种为W79XX系列输出负电压。输出电压可以是5V,6V,7V,8V,12V,15V,24V等规格,型号中最后两位数字即代表输出电压值。其中C1C2都是为了改善稳压电路的性能设置的。 2.9 防作弊电路的设计 用户私开表盖将导致K3闭合,触发中断,该中断服务程序查询到P1.6INT1 为低电平则转去执行声光报警,同时私开表盖被记录到表内E?PROM中,返回主程序后立即关气。此后要开气必须将私开表盖记录清除,而只有煤气公司能清除这种不良记录。表内的通断气分别由P2.5和P2.6控制,继电器J1和J2组合控制微电机M正转和反转,通过减速增力机构驱动气阀开和关,气阀开状态导致K4闭合,气阀关状态导致K5闭合,CPU通过查询P3.0和P3.1可确认气阀的状态。 第3章 智能煤气表软件的设计 3.1 流程图 软件由主程序及四个中断服务程序组成,程序框图如3-1 初始化 N 符合开气条件,N Y已开气, Y开气 Y 符合关气条件, N关气 Y 10分钟没用气, N Y关T1及其中断 断市电,保存数据 N 显示 关显示及燃气报警 关T0及其中断 可燃气浓度过量,N Y 待机声光报警(等待外部中断) 置T0初值, 启动并开中断 图3-1 主程序 保护内容进栈 耗气量计数 声光提醒 Y 结余气量临界, N Y声光提醒结余气量=0, 置气量为零标志N 置T1初值,启动并开 中断清软件计时值 保护内容出栈 中断返回 图3-2 耗气量计数中断服务程序 3.2 软件抗干扰技术 程序正常运行因强干扰跑飞的情况,采用指令冗余和软件陷阱方法可得到有效恢复。但在程序区中一旦形成死循环则上述措施难起作用,采用“看门狗”电路,又由于该CPU绝大部分时间处于待机状态而不便实施。本设计中采用了双重软件“看门狗”来解决该难题,不增加硬件。 首先置定时器T0定时70ms,并在主程序循环中加入置T0初值的操作,当程序正常运行时,T0会由于不断地置初值操作而出现不了溢出中断,但当程序进入死循环时,置T0初值操作终止,T0计满70ms会发出一个高优先级中断请求,在该中断服务程序中将中断返回的入口地址修改为主程序中指定入口地址,使程序跳出死循环。进入待机状态前关闭T0。为进一步确保程序能自动跳出死循环,由定时器T1及其中断计时程序构成一个10分钟定时器,耗气量计数中断服务程序中清软件计时值的操作,使T1的中断服务程序始终计不满10分钟而正常中断返回。当用气结束不再出现耗气量计数中断时,T1的中断服务程序能顺利计满10分钟而跳 转至主程序指定入口地址。同时,停止用气10分钟被认为是一次用气结束而进入待机状态,进入待机状态前关闭T1,只有当下一次用气时,才在耗气量计数中断服务程序中重新启动T1。 由于程序跑飞和死循环可能出现在运行中断服务程序期间,则相应的RETI指令将得不到执行,因此无论从何种情况下转入主程序中指定入口后,都必须首先执行两条RETI指令释放两级中断逻辑,否则可能留下不再响应后续中断的隐患。 保护内容进栈 置T0初值 保护内容出栈 修改栈顶内容 中断返回主程序 中断指令入口地址 图3-3 T0中断服务程序(70ms定时) 保护内容进栈 N计时值=10分钟, Y 置T1初值置10分钟没用气标志保护内容出栈 保护内容出栈 修改栈顶内容 中断返回 中断返回主程序 中断指定入口地址 图3-4 T1中断服务程序(10分钟定时) 保护内容进栈 声光报警 置欠压标志消抖延时 Y 电池欠压, N声光报警 置开盖记录Y 开表盖, N Y 插卡, 读写IC卡 N Y 交替显示, N置交替显示标志 保护内容出栈 修改栈顶内容 中断返回主程序 中断指定入口地址 图3-5 中断服务程序 INT1 第 4 章 收费管理软件设计 4.1 开发平台及开发选用的语言 4.1.1 Visual Basic概述 本机管理软件开发是基于Windows操作系统平台的。选用Visual Basic 作为软件开发工具。Visual Basic功能强大,操作方便,使用户可以根据需要进行软件开发。 而Visual Basic6.0是运行于Windows平台上的交互式的可视化集成开发环境,它是美国Microsoft公司开发的Microsoft Visual Studio 套件的一部分。像其他的可视化集成开发环境(如Visual C++,Delphi,C++ Builder)一样,Visual Basic6.0集程序的代码编辑,编译,连接和调试等功能于一体,给编程人员提供了一个完整方便的开发界面和许多有效的辅助开发工具。 因此VB的出现可以说是Microsoft Windows的日渐成熟的必然产物。Microsoft Windows为程序员和最终用户提供了一个共同的人机界面。对用户,Windows提供了一个图形鼠标的操作环境,该环境对所有的应用程序都一样;对程序员,Windows提供了一组预定义工具,称之为Microsoft Windows的软件开发工具箱(SDK),该工具能使程序员建立一个与Windows界面相同的应用程序,而且,程序员不必关心最终用户的硬件配置情况。在这一开发环境中,程序员唯一困难是Microsoft SDK提供了六百多个函数和与其一致的事件驱动(event-driven)编程技术。两种新方法的交叉使众多的程序员重新陷入困境,程序员不仅要掌握程序驱动编程技术和六百多个函数的功能,而且还得有C语言描述这些问题。因此一般情况下,程序员首先要掌握C语言设计技术。而后再开始学习SDK。这样的条件下就要求在Microsoft多任务环境下出现一种操作方便,使用简单的新工具——Visual Basic由此诞生。 英文Visual的意思是“视觉的”,“可视的Basic”这个名字可能抽象了点, 但实际上它却是最直观的编程方法,之所以叫做“可视”,你只要看到VB的界面就会明白,实际上你无需编程,就可以完成许多卡骤。在VB中引入了控件的概念,在Windows中控件的身影无处不在,各种各样的按钮,文本框,无线钮,都是控件的种类,VB把这些控件模式化,并且每个控件都有若干属性用来控制控件的外观,工作方法。这样你就可以向以前的编程语言下是要经过相当复杂的工作的。 面向对象技术近年来发展迅速,它被广泛地应用到计算机研究的各个方面,如文件处理,操作系统设计,多媒体技术,网络与数据库开发等。用面向对象技术进行程序设计,开发软件已经成为一种时尚。这种技术从根本上改变了人们以往设计软件的思维方式,从面使程序设计都可以最大限度地摆脱烦琐的数据格式和研发过程,将精力集中在对要处理的对象的设计和研究上,大大的提高了软件开发的效率 Microsoft Visual Basic 是当今最流行的编程语言之一。到1999年初,Visual Basic 软件开发团体已经超过了350万人,而且这个数字还在不断增长。学生、管理人员和技术人员使用Visual Basic学习编写实用的Windows 程序;商业人士使用Visual Basic在他们的Microsoft Office 应用程序编写宏;有经验的软件开发人员使用Visual Basic编写功能强大的商业程序以及协同生产工具。 Visual Basic的不同版本: Visual Basic以三种版本销售的:学习版、专业版和企业版。这三种版本的基础特性都一样。Visual Basic学习版是最基础的产品。它充分支持在Windows98和WindowsNT下的32位编程。Visual Basic专业版包含了一些附加特性,如创建IIS和DHTML应用程序、数据库编程、创建OLE自动化服务器和增强的数据绑定。专业版还包括更多得Windows图元文件和位图文件,可以用来给予程序添加色彩丰富的艺术效果。Visual Basic企业版是最顶级的客户机/服务器版本。它包含了专业 版的所有特性,另外还包括支持团队开发、远程自动化和可视数据的元素集成。 Visual Basic还出现在几种Microsoft应用程序中,如Word、Excel、Access、Microsoft Power Point和Microsoft Project. 建立Visual Basic程序包含三个编程步骤: 1.用Visual Basic控件创建用户界面。 2.根据需要设置用户界面元素的特性,即属性。 3.根据需要给一个或多个用户界面元素编写程序代码。 完整的编程过程通常叫做软件开发周期。 测试程序—就是根据实际操作中的各种条件,确定程序工作是否正常。 编译程序—当创建并完成程序后,把它编译成Windows98或WindowsNT环境下的可执行文件。 发布程序—把程序和一些必要的支持文件存到盘中(或网络中),使用或客户能够获得它们。 4.1.2 Access的介绍 1.Access关系数据库简介 计算机是一种数据处理机,它能够存出大量的数据,并能够通过执行编制的程序来处理这些数据,使人们获得有用的信息。计算机存储的数据绝不是杂乱无章的,而是根据对数据处理的要求按照一定的结构组织起来的。数据库一直是计算机软件开发的重要话题。在利用计算机辅助办公的时代,人们很难不和数据库打交道。几乎所有的应用程序都离不开数据的存取操作,而这种存取操作往往是用数据库来实现的。企业的信息和管理软件,则基本上是一个标准的数据库应用系统。 数据库是一种概念,不是一种产品。它包括电子邮件文档、语音邮件文档、CD-ROM、多媒体信息以及还未考虑到的数据。数据库最根本的特点是物理地存放数据,而且这些数据并不是最新的、专用的,而是来源于其他的数据库。数据库的建立并不是要取代原有的数据库,而是建立在一个较全面、完善的信息应用的基础上,用于高层决策分析。数据库是数据库技术的一种新的应用,它是数据库管理系统来管理其中的数据。数据库的目的是要建立一种体系化的数据存储环境,将分析决策所需的大量数据从传统的操作环境中分离出来,使分散的、不一致的操作数据转换成集成的、统一的信息,企业内不同单位的成员都可以在此单一的环境之下,通过运用其中的数据与信息,发现全新的视野和新的问题、新的分析和想法,进而发展出制度化的决策系统,并获取更多的经营效益。 社会的需求和计算机技术的不断发展,人们开始尝试对原来数据库中的数据进行再加工,形成一个综合的、面向分析的环境,以支持科学决策的产生。由此,数 据库的思想、技术、产品逐渐开始形成。对于什么是数据库,许多人提出了不同的 看法。数据库概念的创始人W.H.Inmon在《建立数据库》一书中指出:“数据库是面向主题的、集成的、稳定的、随时间变化的数据集合,用以支持经营管理中的决策制定过程。” 虽然还没有形成统一的定义,但以上观点都或多或少地指出了数据库有以下几个特点: (1)面向主题 主题是一个抽象的概念,是在较高层次上将企业信息系统中的数据综合、归类并进行分析利用的抽象。在逻辑意义上,它是对企业中某一宏观分析领域所涉及到的分析对象,是针对某一决策问题而设置的。面向主题的数据库组织方式, 就是在较高层次对分析对象的数据的一个完整的、统一的、一致的描述,能完整、统一地刻画各个分析对象所涉及的企业的各项数据,以及数据之间的联系。 目前,数据库的实现主要是基于关系数据库,每个主题由一组关系表或逻辑视图实现。这些表和视图的内容与原来各个运行系统数据源的数据本质上是一致的,但为了方便支持分析数据处理,对数据结构进行了重组,其中还可能会增加一些数据。 (2)集成的数据 数据库中存储的数据是从原来分散的各个子系统中提取出来的,但并不是原有数据的简单拷贝而是经过统一、综合的。其一,数据库的数据不能直接从原有数据库中得到。原有数据库系统记录的是每一项业务处理的流水线,这些数据不适合于分析处理,在进入数据库之前必须经过综合、计算,抛弃分析处理不需要的数据项,增加一些可能涉及的外部数据。其二,数据库每一个主题所对应的源数据在原分散数据库中有许多重复或不一致和错误的地方,以保证数据的质量。否则,对不准确,甚至不正确的数据分析得出的结果将不能用于指导企业作出科学的决策。对原数据的集成是数据库建设中的关键,也是最复杂的一步。 (3)数据不可更新(稳定的) 从数据的使用方法上看,数据库的数据不可更新,这是指当数据被存放到数据库中以后,最终用户只能通过分析工具进行查询、分析,而不能修改其中存储的数据,也就是说,数据库的数据对最终用户而言是只读的。由于数据库的查询数据量往往 很大,所以对数据库进行查询分析的用户多是企业的高层领导,它们是所在领域的 专家,但对计算机却不一定熟悉。从数据的内容上看,数据库存贮的是企业当前的和历史的数据,在一定的期间间隔以后,当前的数据需要按一定的方法转换成历史数据,年代久远的、查询率低的数据需要丛数据库脱离到廉价慢速设备(如磁带)上,分析处理不再有用的数据需要从数据库中删除。但这些工作是由系统管理员来做,或由系统自动完成。因此,也可以说数据库在一定时间间隔内是稳定的。 (4)数据随时间不断变化 数据库数据不可更新是针对应用而言,即用户进行分析处理时不对数据进行更新操作,但并不是说,数据从进入数据库以后就永久不变。数据库中的数据随时间变化而定期地被更新,每隔异端固定的时间间隔后,动作数据库系统中产生的数据被抽取、转换以后集成到数据库中,而数据的过去版本仍被保留在数据库 中,如同“定期摄影术”,每隔一周、一月或适当的间隔就照一张像,随着时间的变化,数据以更高的综合层次被不断综合,以适应趋势分析的要求;当数据超过数据库的存储期限,或对分析不在有用时,这些数据将从数据库中删去。关于数据库的结构信息、维护信息被保存在数据库的元数据中,数据库维护工作由系统根据元数据中的定义自动进行,或由系统管理员定期维护,用户不必关心数据库如何被更新的细节。 (5)使用数据库 建立数据库并不是要取代原有的运作数据系统,建立数据库的目的是为了将企业多年来已经收集的数据按一个统一、一致的企业级视图组织、存贮,对这些数据进行分析,从中得出有关企业经营好坏客户需求、对手情况、以后发展趋势等有用信息,帮助企业及时、准确的把握机会,以求在激烈的竞争中获得更大的利益。 2.Access概述 作为Microsoft的Office套件产品之一,Access已经买出了近700万份,成为世界上最流行的桌面数据库系统。与许多优秀的关系数据库一样,可以让你很容易的连接相关的信息而且还对其他的数据库系统有所补充。它能操作其他来源的资料,包括许多流行的PC数据库程序(如dBASE,Paradox,Microsof Foxpro)和服务器、小型机及大型机上的许多SQL数据库。Access还完全支持Microsoft的OLE技术。 由于VB6.0本身没有数据库处理功能,故须籍助外部数据库,乃发展出许多连 接资料来源方式,包括DAO、ADO及RDO等,尤其ADO在VB6.0大副扩充之后,几 乎所有数据库的常见格式,其驱动程序皆罗列其内,如ODBC、SQL Server等。Access本身就是数据库,当然除此之外,若要使用外部档案,主要管道有二,分别是ODBC及ISAM等,如果在Access内连接SQL Server数据库,即须使用ODBC,ISAM则是Jet引擎针对外部数据库的定义的格式,如Excel、DBF等皆可透过ISAM,连接或汇入至Access,但不包括SQL Server。 Access还提供Windows操作系统的高级应用程序开发系统。Access与其它数据库开发系统之间相当显著的区别就是:您不用写一行代码,就可以在很短的时间里开发出一个功能强大而且相当专业的数据库应用程序,并且这一愉快的过程是完全可视的~如果您能给它加上简短的VBA代码,那么您的程序决不比专业程序员潜心开发的程序差。 3.Access的总体结构 Access将所有有名字的东西都成为对象(object),在Access2000中,最重要的对象有表,查询,窗体,报表,宏和模块。 (1)表 用户定义的存储资料的对象。每一个表都包含有关某个主题的信息。表包括存储不同资料的字段(列),而记录(行)则收集特定主体实例的所有信息。 (2查询 为来自一个或多个表的资料提供定制视图的对象。在Access中,可以利用图形化的实例查询机构(QBE)或通过SQL语句建立查询。你可以在查询中选择、更新、插入或删除资料,也可以用查询来建立新表。 (3窗体 窗体是主要的人机接口。大量的操作(几乎所有)都要通过窗体完成。窗体通过运行宏(macro)或Visual Basic For Applications(VBA)过程,来响应大量的事件。Access2000为我们提供了强大的(同时也是相当方便的向导)来建立标准的Windows窗体。 4报表 为格式化、计算、打印选定资料而设计的对象。它是衡量一个优( 秀的数据库的重要标准(有时甚至是唯一的标准)。 (5)宏 为了响应已定义的事件,需要让Access去执行一个或多个操作,而宏就是对这些操作的结构化的定义对象。它可以让你像堆积木一样建立一个功能强大的程序,而无须写大量的代码。 (6)模块 包括用VBA编码的定制过程的一个对象。模块提供了独立的动作 流图以捕获错误,而宏做不到。模块能直接响应窗体或报表事件,也可以从应用程 序的任何地方被调用。 4.2 收费管理中心主机软件流程图 收费管理中心主机软件主要包括一下功能: 1.用户用气的数据采集 2.用户用气管理及查询 3.日、月、年报表的打印功能 4.送气费及断气控制信息 5.送控制器参数 6.人员管理的功能 7 收取费用的收据输出打印功能 8.价格修改 其流程图如图4-1所示: 开始 打用户气量采气量统计、气费送控制器参数、报表程序 印 集程序 结算、用气查询用气信息及关阀 程序 控制功能 按送送关 按用气气阀定不 单 相户表量控时定用日月年位 地参电制 统时户报报报 址 数 费 抄 统采表表 表 抄 集 图4-1 收费管理中心主机软件 4.2.1 收费管理中心各部分功能的简介 1.用气记录表结构及用户气量采集程序 (1)用气记录表结构 表4-1 存储采集量的记录表结构 字段1 用户地址 字段4 用气量 字段5 采集日期 表4-2 存储结算数据的现记录表结构 字段1 用户地址 字段2 用户姓名 字段3 气费 字段4 存入金额 字段5 存款余额 ? ? (2)用户气量采集程序 在程序主界面的菜单上单击“抄表”菜单,弹出“抄表操作”窗口如图4.2所示。 用气采集程序可以进行定时统抄、不定时统抄及单用户随时采集;采集程序界面如图4.2所示。 用户任何时候想抄表时,操作员就可以利用“单用户采集”选项来完成此任务。 在平时操作员想什么时候抄表就什么时候抄,此功能可利用“不定时抄表”完成。 如果操作员想每隔一定时间抄一次表,就可以利用“定时抄表”来完成。 工作过程如下: (3)单用户抄表 在“请选择抄表方式”的选择框中选择“单用户采集”则显示“请输入用户地址”的输入框,输入用户地址后,单击“开始抄表”按钮,这时状态栏显示“正在抄表,请稍后„„”,此时,后台操作是把用户地址送到用户终端并把“取数报文”信息发给用户终端,用户终端会把本用户的用气量发送到管理中心主机,主机的用气显示区把用户地址、煤气量以及抄表日期显示在数据区;这时单击“结算”按钮, 程序就会根据气量的单价算出气量的费用,同时把采集到的数据量和气费用存储到历史记录库和现记录库中; (4)不定时抄表 在任何时候操作员想抄表时,就可以选择选择框中的“不定时抄表”,程序就循环发出和抄回所有用户的各数据量;结算同单用户抄表。 (5)定时抄表 “定时抄表”的工作过程同不定时抄表,唯一不同的是每隔一定的时间抄一次表。 4.2.2 用量查询程序 查询程序界面如图4-4 查询可按不同需要分为:按用户代码查询、按用户姓名查询和按相位查询。 查询程序的工作过程如下: 首先在查询选择框中选择查询方式,选择不同的查询方式相应就出现不同的输入框,输入相应的查询条件,单击“确定”按钮,这时满足你输入查询条件的所有数据量就会出现在数据显示区,拖动竖、横滑动条就可以看到所有的量。例如上图所示。如果没有你所输入的用户代码、用户姓名,则出现如下的信息提示窗口如图4-3。 此功能能形成用量日报表、月报表和年报表。 报表程序的工作过程如下: 首先在汇总选择框中选择汇总方式,选择不同的汇总方式会出现不同的输入框,输入汇总的条件后,单击“确定”按钮,程序就会从存储记录的记录库中把满足你输入条件的统计量:新开户数、用气量、收款额、所收气费、支出金额、支出气费、结余。 图4-2 抄表界面 图4-3 信息提示窗口 图4-4 查询界面 4.2.3 报表输出程序 图4-5 报表程序图界面 4.2.4 用气信息及断气控制功能 单击程序主界面的菜单“信息发送”,则出现送用电信息及断电控制的程序界面如图4-6,此时“送断气信息”按钮无效。 其工作过程如下: 单击“送用气信息”按钮,则程序循环发送各用户的用量信息,以便用户得知所剩余额,进而使用户知道应当何时去交费用。 单击“欠费查询”按钮,则程序查找欠费用户,如果没有欠费用户,“送断气信息”按钮仍然无效;如果有欠费用户,则“送断气信息”按钮有效,这时单击“送断气信息”按钮,程序就给欠费用户把断电信息发送过去,以督促用户及时交费用。 图4-6 发送信息操作界面 4.2.5 价格管理程序 如果煤气的单价变化了,那么就应该有相应的修改价格的程序,修改价格的用户界面如4-7所示: 图4-7 价格修改界面 其工作过程如下: 单击程序主界面的“价格管理”菜单,出现以上窗口,窗口中把目前的价格显示在“现在价格”框中;这时把修改为的价格输入在“修改单价为”的框中, 单击“修改”按钮,即可完成修改价格的任务。 以上只介绍管理中心主机程序的主要部分,除此以外还有使用权限程序、 人员管理程序等等,就不一一介绍了。 4.2.6 IC卡智能煤气表充值系统源程序代码 1.充值操作的软件流程图 主窗口 进入“充值”子窗口 打开串口 重试 否否 卡型正确 , 计数值=0,是是 否 密码正确 , 卡自毁是 送数据库保存 将存款余额写入IC卡 从IC卡中读取用气信息 打印 关闭串口 退出“充值”子窗口 充值操作的软件流程 2.源程序 im C(127),e(127),lxm(127),11xm(127),rlxm(127) Dim d As String *4 Dim f As String *10 Dim G As String *6 Private Sub cmdQd_Click() If jch =1 Then GoTo jlp IC卡初始化 Labe 12.Visible =True Labe12.Caption =“机器正在工作,请少候~” Dim com As Integer com =0 Icdev =IC_InitComm(com) If icdev <0 Then Labe 18.Caption=“串行口错误,请推出读卡操作”+Str(icdev) X=ic_ExitComm(byval icdev) Exit Sub Else Labe18.Caption=“串行口选择正确~” Labe18.Caption=“没有连接读写器或没有初始化串口~” Labe18.Caption=“请将钥匙卡插入~” Command1.Enabled=True Labe18.Caption=“此卡为非法卡~退出系统,请插入合法卡后,重试。” Exit Sub Else X=IC_Read_Hex(Byval icdev,6,2,ByVal P) If X<0 Then Labe 18.Caption =“此卡为非法卡~推出系统请插入合法卡后,重试。” Exit Sub Else If left(P,4)<>“A015”Then Labe18.Caption=“此卡为非法卡~退出系统,请插入合法卡后,重试。” Labe18.Caption=“此卡为非法卡~退出系统,请插入合法卡后,重试。” Exit Sub Else Prompt$=“请输入用户代码” Searchstr$=InputBox(Prompt$,“充值”) Data2.Recordset.MoveFirst Data2.Recordset.Index=“用户代码” Data 2.Recordset.Seek“=”,Searchstr$ If Data2.Recordset.NoMatch Then MsgBox(“对不起,该用户没有进行新开户登记,请先开户再进行充值操作~”) Else If Data2.Recordset!用户代码<>Z Then labe18.Caption=“代码输入错误~” EIse X=IC_Read_Hex(ByVal icdev,57,3,ByVal G)读余款额 Y=CDec(G) Z=CStr(Y) Text7.Text=Z X=IC_Read_Hex(ByVal icdev,60,2,ByVal d)读正常用煤气量 X=IC_Read_Hex(ByVal icdev,62,2,ByVal d)读超限用煤气量 Text4.Yext=Z X=IC_Read_Hex(ByVal ICdev,74,3,ByVal G)读正常煤气费 X=IC_Read_Hex(ByVal icdev,77,3,ByVal G)读超限煤气费 C(34) =Val(Text8.Text)写交款额 Else Labe 18.Caption=“” Labe18.Caption=“写卡成功” End if P=Text1.Text Q=Text2.Text Data2.Recordset!超限煤气费,0 Data2.Recordset!余款额,0 Data2.Recordset!存款额,X Data2.Recordset!操作员,Dbcombo1.Text Data2.Recordset!煤气号,Data2.Recordset!煤气号+1 Data2.Recordset!状态,正常 Data2.Recordset!备注,充值 Data2.Recordset!Update P=Text1.Text Q=Text2.Text Data6.Recordset.Edit 现记录表 Data6.Recordset!用户代码,P Data6.Recordset!用户姓名,Q Data6.Recordset!充值日期,Data Data6.Recordset!正常用煤气量,0 Data6.Recordset!超限用煤气量,0 Data6.Recordset!正常煤气费,0 Data6.Recordset!超限煤气费,0 Data6.Recordset!余款额,0 Data6.Recordset!存款额,x Data6.Recordset! 操作员,DBCombo1.Text Data3.Recordset!正常用煤气量,0 Data3.Recordset!超限用煤气两,0 Data3.Recordset!正常煤气费,0 Data3.Recordset!超限煤气费,0 Data3.Recordset!收款额,Text7.Text Data3.Recordset!年份,Year(Now) Data3.Recordset.Update Else Data3.Recordset.Edit Data3.Recordset!新开户数,Data3.Recordset! 新开户数+1 Data3.Recordset。Update End If 送年份数据表 P=Year(Now) Data4.Recordset.Index=“年份” Data4.Recordset.seek“,”, P If data 4.Recordset.Nomatch Then Data4.Recordset.Addnew Data4.Recordset! 年份,P Data4.Recordset! 新开户数,1 Data4.Recordset! 正常用煤气量,0 Data4.Recordset.Update Else Data5.Recordset!操作员,DBCombo1.Text Data5.Recordset.Update End If Labe18.Caption=“” Labe18.Caption=“充值成功~” X=IC_Exitcomm(ByVal icdev) Data2.Recordset.Close End Sub Private Sub Form_Load() Command1.Enabled=False Command2.Enabled=False End Sub 总 结 随着科学技术的发展,生活水平的日益提高,人们对家庭环境的要求越来越来高。家庭信息集成化、自动化将使人们的生活更舒适、更安全、更便捷。家用电器可以通过现实生活中随处可见的电力线进行联网,实现信息共享,实现在远端通过电话线路或其他方式对家电的工作情况进行远程控制和监视。 本文解决的关键性问题如下: 1.本文实现了自动抄表,给客户和煤气公司都带了了很多的方便。从客户方面来说,无需定时抄出自家的用气读数,避免了因看错或写错读数而造成的不便,也省去了等候抄表员上门的麻烦。从燃气公司来说,效率大幅提高。抄表员无需挨家挨户的抄表,抄表人员也不必手工将这些用户的燃气读数输入电脑,一切都可由读数采集程序自动完成,减少了因人为因素造成的纰漏。另外,该系统提供的一些查询手段也比较到位:对于非智能抄表用户,燃气公司营业所对其燃气表上的读数只能每隔一或两个月进行一下检查,若对一些抄表员上门时老不在家的用户将更可能发生半年左右才见一次表的情况,这显然不利于售气量的准确统计,容易导致产销差的加大。而采用了智能远程抄表系统中提供的实时查询功能后,可以通过远程数据采集,及时了解到任何一家智能表用户的当天用气读数,将精确度由按月计提高到了按天计,并且还可以及时掌握该地段的动态用气情报,以便更好进行数据统计分析,做出相应的计划优化调整。 2.高可靠性 作为长期使用的计量仪表,对可靠性的要求不言而喻,是相当重要的。 2(1 使用看门狗防止系统受到干扰造成的死循环或程序飞出。 2(2 采用防断线、防磁、防开盖等保护措施,使窃气能难以实现。 参 考 文 献 [1] 常健生 主编. 检测与转换技术. 机械工业出版社. 1999. [2] 京辉热点工作室 编著.Protel 99 电路设计实用指南. 人民邮电出版社. 2000. [3] (美)Michael Halvorson著 张钟军 沈雪梅 强锐 译.Visual Basic6学习 指南.第一版.北京:机械工业出版社. 1999. [4] 谭浩强等 编著. Visual Basic 程序设计. 清华大学出版社. 2000. [5] 童诗白 主编.清华大学电子学教研组编. 模拟电子技术基础(第二版). 北京高等教育出版社. 1988. [6] 张建华 主编. 数字电子技术. 北京:机械工业出版社. 1994 . [7] 刘刚等著. 单片计算机原理实验及应用技术. 吉林科技技术出版社. 1995. [8] 丁振生 编著. 传感器及传感器技术应用. 电子工业出版社. 1998. [9] 刘振安. 微型机应用系统抗干扰技术. 人民邮电出版社. 1991. [10] 何立民编著. MCS—51单片机应用系统设计. 北京航空航天大学出版社. 1999. [11] Meyer M H, Lehnerd, A P.The Power of Product Platform: Building Value and Cost Leadership.New York:Free Press,1997. [12] Rogers EM.Diffusion of innovations.New York:The Free Press,1983. [13] March JG, Simon HA.Organization.New York:John Wiley and Sons,Inc,1958. [14] Culpan.MultinationalStrategicAlliances[M].TheHoworthPress,1993. [15] OPC Fcundation. Alarms and Events Specification1.0 [S].2001 附录1:智能煤气表原理图 附录2:智能煤气表程序清单 im C(127),e(127),lxm(127),11xm(127),rlxm(127) Dim d As String *4 Dim f As String *10 Dim G As String *6 Private Sub cmdQd_Click() If jch =1 Then GoTo jlp IC卡初始化 Labe 12.Visible =True Labe12.Caption =“机器正在工作,请少候~” Dim com As Integer com =0 Icdev =IC_InitComm(com) If icdev <0 Then Labe 18.Caption=“串行口错误,请推出读卡操作”+Str(icdev) X=ic_ExitComm(byval icdev) Exit Sub Else Labe18.Caption=“串行口选择正确~” jch=1 End If jlp: Print X=IC_Status(ByVal icdev) If x<0 Then Labe18.Caption=“没有连接读写器或没有初始化串口~” X =IC_ExitComm(ByVal icdev) Exit Sub Elself X =1 Then Labe18.Caption=“请将钥匙卡插入~” Command1.Enabled=True Exit Sub End If Dim Password As String *6 Dim P As String *4 X=IC_InitType(ByVal icdev,16) If x <0 Then Labe18.Caption=“此卡为非法卡~退出系统,请插入合法卡后,重试。” Exit Sub Else X=IC_Read_Hex(Byval icdev,6,2,ByVal P) If X<0 Then Labe 18.Caption =“此卡为非法卡~推出系统请插入合法卡后,重试。” Exit Sub Else If left(P,4)<>“A015”Then Labe18.Caption=“此卡为非法卡~退出系统,请插入合法卡后,重试。” Exit Sub Else Password=“FFFFFF” X=IC_checkpass_2402hex(ByVal icdev,ByVal password) If x <0 Then Labe18.Caption=“此卡为非法卡~退出系统,请插入合法卡后,重试。” Exit Sub Else Prompt$=“请输入用户代码” Searchstr$=InputBox(Prompt$,“充值”) Data2.Recordset.MoveFirst Data2.Recordset.Index=“用户代码” Data 2.Recordset.Seek“=”,Searchstr$ If Data2.Recordset.NoMatch Then MsgBox(“对不起,该用户没有进行新开户登记,请先开户再进行充值操作~”) Else Command2.Enabled=True Cmdqd.Enabled=False X=IC_Read_Hex(ByVal icdev,37,5,Byval f) Y=CDec(f) Z=CStr(Y) If Data2.Recordset!用户代码<>Z Then labe18.Caption=“代码输入错误~” EIse X=IC_Read_Hex(ByVal icdev,57,3,ByVal G)读余款额 Y=CDec(G) Z=CStr(Y) Text7.Text=Z X=IC_Read_Hex(ByVal icdev,60,2,ByVal d)读正常用煤气量 Y=CDec(d) Z=CStr(Y) Text3.Text=Z X=IC_Read_Hex(ByVal icdev,62,2,ByVal d)读超限用煤气量 Y=CDec(d) Z=CStr(Y) Text4.Yext=Z X=IC_Read_Hex(ByVal ICdev,74,3,ByVal G)读正常煤气费 Y=CDec(G) Z=CStr(Y) Text5.Text=Z X=IC_Read_Hex(ByVal icdev,77,3,ByVal G)读超限煤气费 Y=CDec(G) Z=CStr(Y) Text6.Text=Z Text8.Text=“” DBCombo1.Text=“” End If End If End If End If End If End If End Sub Private Sub Cmd qx_CIick() Unload Me frmSfglxt.Show End Sub Private Sub Command1_Click() DataReport1.Show Cmdqd.Enableed=False End Sub Private Sub Command2_Click() C(34) =Val(Text8.Text)写交款额 X=“000000”&CStr(C(34)) X=Right$(X,6) Y=IC_write_Hex(icdev,34,3,X) If Y<0 Then Labe 18.Caption=“” Labe18.Caption=“写卡失败,重试~”+Str(Y) Exit Sub Else Labe 18.Caption=“” Labe18.Caption=“写卡成功” End if P=Text1.Text Q=Text2.Text Data2.Recordset.MovePrevious Data2.Recordset.Addnew 送数据到充值数据表 Data2.Recordset!用户代码=P Data2.Recordset!用户姓名=Q Data2.Recordset!充值日期,Data Data2.Recordset!家庭人口,Data1.Recordset!家庭人口 Data2.Recordset!正常用煤气量,0 Data2.Recordset!超限用煤气量,0 Data2.Recordset!正常煤气费,0 Data2.Recordset!超限煤气费,0 Data2.Recordset!余款额,0 Data2.Recordset!存款额,X Data2.Recordset!操作员,Dbcombo1.Text Data2.Recordset!煤气号,Data2.Recordset!煤气号+1 Data2.Recordset!状态,正常 Data2.Recordset!备注,充值 Data2.Recordset!Update P=Text1.Text Q=Text2.Text Data6.Recordset.Edit 现记录表 Data6.Recordset!用户代码,P Data6.Recordset!用户姓名,Q Data6.Recordset!充值日期,Data Data6.Recordset!正常用煤气量,0 Data6.Recordset!超限用煤气量,0 Data6.Recordset!正常煤气费,0 Data6.Recordset!超限煤气费,0 Data6.Recordset!余款额,0 Data6.Recordset!存款额,x Data6.Recordset! 操作员,DBCombo1.Text Data6.Recordset.Update送月份数据表 P=Month(Now) Data3.Recordset.Index=“月份” Data3.Recordset.Seek“,”,p If data3.Recordset.NoMatch Then Data3.Recordset.addnew Data3.Recordset!月份,p Data3.Recordset!新开户数,1 Data3.Recordset!正常用煤气量,0 Data3.Recordset!超限用煤气两,0 Data3.Recordset!正常煤气费,0 Data3.Recordset!超限煤气费,0 Data3.Recordset!收款额,Text7.Text Data3.Recordset!年份,Year(Now) Data3.Recordset.Update Else Data3.Recordset.Edit Data3.Recordset!新开户数,Data3.Recordset! 新开户数+1 Data3.Recordset。Update End If 送年份数据表 P=Year(Now) Data4.Recordset.Index=“年份” Data4.Recordset.seek“,”, P If data 4.Recordset.Nomatch Then Data4.Recordset.Addnew Data4.Recordset! 年份,P Data4.Recordset! 新开户数,1 Data4.Recordset! 正常用煤气量,0 Data4.Recordset! 超限用煤气量,0 Data4.Recordset! 正常煤气费,0 Data4.Recordset! 超限煤气费,0 Data4.Recordset! 收款额,Text7.Text Data4.Recordset.Update Else Data4.Recordset.Edit Data4.Recordset!新开户数,Data4.Recordset!新开户数+1 Data4.Recordset.Update End If 送操作员数据表 Data5.Recordset.Index=“操作员” Data5.Recordset.seek“,”,DBCombo1.text If data5.Recordset..NoMatch Then Data5.Recordset.addnew Data5.Recordset!操作员,DBCombo1.Text Data5.Recordset.Update End If Labe18.Caption=“” Labe18.Caption=“充值成功~” Command1.Enabled=True Cmdqd.Enabled=False Command2.Enabled=False Data2.Recordset.AddNew X=IC_Exitcomm(ByVal icdev) Data2.Recordset.Close End Sub Private Sub Form_Load() jch=0 Command1.Enabled=False Command2.Enabled=False End Sub
本文档为【毕业设计(论文)-基于AT89C51单片机的智能IC卡煤气表控制装置设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_005190
暂无简介~
格式:doc
大小:365KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-12-25
浏览量:25