047
基于单片机8031煤气表的设计样本
(样本只提供该系统的基本情况介绍,若需要完整的设计和论文,建议您购买本系统,凡是购买本站系统的,本站均根据您的要求,把系统上的开发信息,题目等修改成符合您的要求)
本系统开发工具:单片机/汇编
本设计包含内容:源代码+毕业论文+开题报告+答辩稿
论文大概:
基于单片机煤气表的设计
1 摘
要
随着信息社会的到来,人类所拥有的信息种类和数量呈爆炸性增长,IC卡—一种方便安全可靠的高技术,高附加值的信息载体便应运而生。IC卡技术以其广泛的应用领域和巨大的产品市场成为近几年来我国信息产业的一大热点。与此同时,我国燃气收费管理长期以来都是以人工抄表为主,存在着工作量大、收费时间长、收费困难、效率低、易出错的问题,为了减少燃气收费管理中人力、物力的浪费,减少不安全因素,进行了“IC卡燃气表控制装置”的研究。这既是IC卡技术实际应用的进一步探索,也是燃气收费管理方式的改革。
本课题对IC卡燃气表控制装置的组成、功能及技术要求进行了理论上的分析和技术上的应用研究。设计依据低成本,高可靠性的原则完成了以下工作:
(1)用功耗低、价格便宜的51系列单片机作为控制装置的核心,控制装置的硬件电路实现了脉冲采集、数据存储、电机阀驱动控制、IC卡读写、电源检测以及声音报警和LCD液晶显示等功能。
(2)模糊控制原理解决了电机阀的控制问题,软件设计中均采用模块化设计结构,完成了燃气表的计费功能以及故障的查询和处理。
本装置同样适用于各类水表、电表等其它流量计量装置中,如在此基础上做进一步的改进,将更具有经济性和实用性。
关键词:IC卡技术、燃气表、电机阀、
2 Abstract
With the advent of the information society, human owned by the type
and quantity of information is explosive growth IC cards as a
convenient, safe and reliable high-tech, high-value-added
information carrier appeared. - IC card technology with a wide range
of application areas and huge domestic market in recent years become
China's information industry a hot topic. Meanwhile, China Gas
management fees are artificially for a long time mainly meter
reading, there is a heavy workload, long time charges, fees
difficult, inefficient and error-prone problem, in order to reduce
the gas charges of human management, material waste and reduce the
factors of insecurity, "IC card gas meter control devices" study.
This is the actual IC card technology to further explore the
application, as well as gas charges management reform.
The issue
of gas meter IC card control device component, functional and
technical requirements for a theoretical analysis and technical
application. Design based on low-cost, high reliability completed
the following principles :
(1) a low-power, low price of PIC
microcontroller as a core control device, The hardware device
control circuit of the pulse acquisition, data storage, valve motor
drive control, IC Card Reader, Power detection and voice alarm and
LCD display.
(2) fuzzy principles for the control valve
motor control problems, the software design is a modular design
structure, completed the gas meter billing function and the failure
of inquiries and handling.
This device applies equally to all
types of water, and electricity meters and other flow measurement
devices, such as the basis for further improvement, will be more
economical and practical.
Key Words: IC card technology, The gas
meter, The electrical valve
3 目录
摘
要 0
ABSTRACT 0
目录 1
第一章 绪言 1
1.1
课题背景 1
1.2
本课题的任务和要求 9
1.3系统解决的问题和拟采用的研究手段 14
1.4本文的工作 15
第二章
系统的总体设计 16
2.1核心单元电路 16
2.2工作控制程序设计 34
2.3模拟软件调试 38
第三章系统的实现和关键技术 48
3.1硬件的选择与说明 48
3.2汇编程序与模拟软件 58
第五章
总结 84
致谢 86
参考文献 87
附
录 88
4 第一章 绪言
4.1 1.1 课题背景
随着世界计算机技术和信息技术的发展,全球的信息时代已来临,各国都在高科技领域制订适合自己的发展道路,我国政府正在致力于国民经济信息化的建设,以“金卡工程”为代表的信息化应用工程使我们加速向全球经济一体化迈进。
作为金卡工程的代表,IC技术无疑是当今世界最优秀应用技术。它从早期的投币式,过渡到磁卡式,直到现在的IC卡式。IC卡即智能卡,又称集成电路卡,它将一个集成电路芯片镶嵌于塑料基片中,封装成卡的形式,其外形与覆盖磁条的磁卡相似,开发IC卡技术的主要目的是实现现金支付和存兑的电子化、减少现金的流通量、实现电子商务、实现公用事业预付费等。IC卡的概念是20世纪70年代初提出来的,最初应用于金融、交通、医疗、身份证明等多个行业,它将微电子技术和计算机技术结合在一起,大大提高了人们生活和工作的现代化程度。后来,IC卡技术的应用逐步拓展,由过去的金融卡发展到今天的非金融卡,如各种事务管理、安全管理、职工考勤、水电气的预付费等,其影响是前所未有的,全球发卡数量超过10亿张,我国也已超过1亿张。
IC卡燃气表是近十几年发展起来的新型燃气表,一般由计量传感器电路、微功耗单片机、微功耗阀门、电压测试电路、防窃气电路、流量监测等部分组成。具有精确记数功能、功能卡传输媒介功能、阀门自动处理功能、非法操作处理功能、欠压处理功能、掉电处理功能、数据下载功能、数据显示与声音提示功能等。经过广大IC卡生产厂家多年的技术改进和革新,IC卡技术日益成熟,应用也越来越普及。IC卡燃气表基本解决了气费收费难的问题,同时,随着时代的进步、居民民主意识的增强、生活水平的提高,也要求改变过去落后的上门抄表收费问题,IC卡技术的推广应用,从根本上解决了上述问题,兼顾了企业和用户的利益。对燃气企业来说:一是解决了入户抄表难的问题;二是解决了催费收费难的问题;三是解决了企业和用户的纠纷问题。对用户来说:一是消除了抄表人员的打扰和时间预约问题;二是用气自由;三是消除了地方性收费方式的约束限制。既方便了用户,也减轻了企业负担和诸多难题,简化了操作程序,促进了社会发展,提高了人民群众的生活质量,降低了企业的经济成本,IC卡燃气表是今后的发展方向。
虽然IC卡燃气表具有一系列优点,解决了许多实际问题,但是,IC卡燃气表的发展并不顺利,一些早期使用IC卡燃气表的燃气企业,由于产品质量不过关,给企业带来了巨大的经济损失,计量输差几乎全部由此产生,也使得多数燃气公司对此望而却步,或心有余悸;也造成多数IC卡表生产单位步履维艰,四面楚歌。
目前,国内IC卡燃气表生产厂家较多,估计将超过100家,生产规模大小不一,产品质量参差不齐,技术水平和研究方向也存在较大差异。因此,在选用过程中,燃气企业必须选择适合当地使用的、具有先进技术性能的IC卡燃气表,同时必须综合考虑仪表的技术指标、安全性能、售后服务等因素,否则,可能因选型不当,仪表故障率高而造成较大经济损失。
国家建设部为加强IC卡技术的应用管理,促进建设事业IC卡应用工作健康、规范、有序、安全、高效地发展,归口领导IC卡应用试点及推广,制订全国建设事业IC卡应用的总体规划和政策法规,特成立建设部IC卡应用管理领导小组,对全国建设事业IC卡应用工作实行归口管理,建设部IC卡应用管理领导小组办公室(简称IC卡办)负责日常管理工作。
为加强IC卡燃气表的质量管理、统一标准,提高燃气行业经营管理水平,促进燃气收费系统的现代化管理,国家也制定了相应的行业标准,即CJ/T112-2000《IC卡家用膜式燃气表》,它是在GB/T6968-1997《膜式煤气表》的基础上,增加了预付费控制器有关技术要求,并遵循有关电子产品的标准要求。
作为新技术的推广,不同厂家的IC卡燃气表技术是存在较大差异的,大家工作的重点都是致力于解决智能卡的安全问题,其方案千差万别,但是,问题的有效解决无疑是产品成熟的主要标志。IC卡技术
需要解决的主要技术问题:
1、影响IC卡安全的基本问题
智能卡和接口设备之间的信息交换:这些信息可以被截取分析,从而可被复制或插入假信号;
伪造智能卡的出现:伪造智能卡与接口设备之间的信息,使接口设备无法判断出是合法的还是伪造的;
操作人员的作弊行为:私下的泄露密钥和人为非法修改信息等;
用户的非法攻击:通过各种手段对设备的关键部位进行攻击。
2、安全措施
对持卡人、卡、接口设备的合法性互相检验;
重要数据加密后传送;
检验数据的完整性;
卡和接口设备中设置安全区,对于任何不合规范的操作,将自动禁止卡的进一步操作;
操作人员的责任与道德规范;
设置黑名单。
3、密钥与认证:
对持卡人、卡、接口设备之间的相互认证以及数据的加密,均可采用DES和RSA两种密码算法中的一种;与加密有关的还有解密和密钥管理(密钥的生成、分配、保管、销毁等);对传输的信息进行加密,以防被窃取、更改;对存储的信息进行加密保护,使得只有掌握密钥的人才可以读取信息。
为防止信息被篡改、伪造或过后否认,对传输的信息进行加密认证是必要的。
以上讨论的问题是在接口设备完整、成熟、具有强大的抗攻击性能的前提下进行的,设备自身的技术落后、设计缺陷或器件失效等引起的一系列问题除外。
IC卡燃气表的硬件部分包括:
基
表:燃气流量的原始计量
控制阀:通过信号控制阀门的关闭与开启
控制器:包括CPU、读写卡接口、显示、计数等辅助部件,是IC卡燃气表的核心设备,具有控制、显示、报警等功能
IC卡卡片:记录购气量,传递数据信息
销售管理系统:包括计算机、打印机、读写卡器、系统软件、应用软件等,是必不可少的部分,完整的售气管理系统可以实现交费售气管理、数据查询、用户管理等。
IC卡卡片作为信息载体,通过IC卡实现信息传递,使用户现场的IC卡燃气表同燃气公司的IC卡燃气表销售管理系统建立联系,实现燃气使用的预付费管理,控制器通过对基表的流量信号检测,来控制阀门的动作,以达到燃气用户预付费使用天然气的目的。
IC卡燃气表在我公司使用已有6年的时间,到目前为止,IC卡用户超过到6万户。在使用的初期,由于存在一系列问题,如:控制器计数乱码、电磁阀失控、无法输气、传感器存在较大误差、电池失效、元器件故障率高等问题,以及在管理上存在的一些漏洞,使得IC卡技术应用之初便出师不利,为公司工程安装和燃气销售带来一定的工作负荷和难度。当然,随着时间的推移,技术的进步,产品质量的提高,售后服务的完善,许多问题大都已解决。目前,我们认为,以下几个问题是当前IC卡燃气表中普遍存在的问题。
1、兼容问题
目前,在全市数万IC卡用户中,我们所使用的IC卡燃气表有两家,但由于两家的IC卡售气系统不兼容,造成日常管理较为混乱,重复设置销售网点,居民用户有时不了解情况,常常感到购气不方便,因此,我们一直建议两家能够实现互相兼容,方便用户。
2、电池问题
由于IC卡燃气表安装位置不好,一般处于高温高湿环境中,一般电池自然漏电严重,常常造成电解液腐蚀电路板和电子元件,影响仪表正常工作,同时也影响用户的正常用气。
3、阀门问题
阀门是控制仪表的关键部件,但是,阀门的内漏、失灵、功耗大,易引起仪表出现故障,受到外界攻击,使仪表无法正常工作,这是IC卡燃气表的一个薄弱环节。
4、攻击性问题
由于IC卡表具有预付费的优点,可以免去入户抄表,但是,不排除一些用户会对IC卡表进行尝试攻击,以达到不交费的目的,因此,仪表的抗攻击性能显得尤为重要。我们在对仪表检测时,非常重视对抗攻击性能的测试,保证燃气公司利益不受侵害。
5、卡片发放管理问题
卡片的制造、发放、管理、服务等一系列工作,关系到燃气企业的经济利益,必须严格管理,尤其对生产卡、清零卡、测试卡等非用户卡的管理,关系到仪表生产厂家和燃气销售单位、仪表检测单位的管理。易存在一定漏洞,需严格管理。
6、系统安全性问题
IC卡表除了抗攻击性问题的物理安全性之外,还有其他逻辑安全性问题,如工作人员的素质和安全意识,密码密钥管理的安全等。
7、一卡多用问题
现在,许多城市都在开展“一卡通”、“金卡工程”等工作,就是希望有一张IC卡就可以办完所有的事,因此,不但要做到同一种IC卡表之间能互相使用,还要做到不同厂家IC卡表之间通用,以及水、电、气、暖、公交、电信等等都可以互相通用,真正实现“一卡通”。
目前,IC卡表在我国的应用还处于初级阶段,但是,随着国家“金卡工程”的全面开展,IC卡应用领域迅速扩大,各行各业独自发卡的情况越来越多,彼此自成系统互不通用(包括卡和读写卡器),同时持卡人手中的各种卡也越来越多,产生诸多不便,也造成大量资源浪费,因此,未来的发展趋势将是“一卡多用”,象计算机一样普及到千家万户,统一协议,资源共享,互通互联。
当然,一卡多用要涉及到不同部门、不同行业之间的合作和利益分配问题,因此协调与管理更加重要,实现一卡多用、一卡通用一定要通过国家IC卡办和各级地方政府主管部门的积极参与和领导,组织协调这一宏伟的系统工程,到那时,IC卡燃气表才会真正得到飞速发展。
针对我们燃气行业,IC卡燃气表的使用时间还不太长,今后还有更长的路要走,我们必须扬长避短,不断开拓进取,加快科技进步和技术革新,对目前存在的各种问题,进行分析研究,制定长远规划,坚定不移地支持IC卡新技术、新工艺的应用推广工作。我们不能因为暂时的困难和挫折就放弃对先进科技的追求,不能因为现在的缺陷而阻止IC卡技术的发展。IC卡表是当前的新生事物,是技术进步的具体体现,当然,此类仪表尽管还存在这样那样的缺点、问题,但是,并不影响它的普及应用,相信在未来的时间里,IC卡燃气表会克服其缺陷,象普通家用煤气表一样,进入千家万户。
4.2 1.2
本课题的任务和要求
单片机又称微控制器,或称嵌入式控制器。而现在的智能家电无一例外是采用微控制器来实现的,所以家用电器是单片机应用最多的领域之一。它是家用电器实现智能化的心脏和大脑。
由于家用电器体积小,故要求其控制器体积更小以便能嵌入其结构之中。而家用电器品种多,功能差异也大,所以又要求其控制器有灵活的控制功能。单片机以微小的体积和编程的灵活性而产生多种控制功能,完全可以满足家用电器的需求。
单片机主要用于计算机外设、实时控制、仪器仪表、通信和家用电器等各个领域,是计算机技术和电子技术的综合性应用,在不同应用场合其技术要求各不相同,因此设计方法和研制的步骤不完全一样。
单片机应用系统由硬件和软件组成。硬件是指MCU、存储器、I/O接口和外设等物理器件的有机组合。软件是指系统监控程序的总称。在开发的过程中,它们的设计不能完全分开,二者需要互相配合、不断调整才能组成高性能的应用系统。单片机应用系统的开发包括系统总体设计、硬件设计、软件设计、系统调试等几个阶段,它们有时交叉进行。
一、 设计任务
(1)系统总体设计任务
在进行系统设计之前,首先应根据对系统的功能要求及其应用环境等确定合理的、具体的功能和技术指标,对应用系统的可靠性、通用性、先进性、可维护性、以及成本等进行综合考虑,以尽量合理并符合相应的标准。然后根据市场上各种单片机的货源情况和单片机的性能及开发工具等因素选择合适的机型。接下来要根据系统中可能遇到的传感器、模拟电路、I/O接口、存储器和显示器等器件和设备进行器件选择,使之符合系统在精度、速度和可靠性等方面的要求。最后确定硬件和软件的功能划分。由于在系统设计中某些功能用硬件和软件都能实现,在设计中应综合考虑研制周期和成本等因素具体划分软硬件功能。
(2)系统硬件设计任务
硬件设计的任务是根据总体要求,在所选的MCU和各个元器件型号的基础上设计出系统的电路原理图,做一些必要的不见实验,以及工艺结构的设计加工,印刷电路板的设计制作和样机的组装等。在硬件设计中,需要考虑系统总线的负载能力、系统扩展时的片选方式、模拟电路的速度和精度等,如需扩展存储器则尽量用一片完成,这样既降低了成本,又减小了线路板的面积,同时提高了系统的可靠性。
(3)系统软件设计任务
单片机应用系统的软件设计是系统设计中最基本而且工作量较大的任务。与系统机上操作系统支持下的纯软件不同,单片机的软件设计是在裸机的条件下进行的,而且随应用系统的不同而不同。在软件中一般需考虑以下几个方面:
1) 根据要求确定软件的具体任务细节,然后确定合理的软件结构。一般系统软件的主程序和若干个子程序及中断服务程序组成,详细划分主程序、子程序和中断服务程序的具体任务,确定各个中断的优先级。主程序是一个顺序执行的无限循环的程序,不停地顺序查询各种软件标志,以完成对事务的处理。在子程序和中断服务程序中,要考虑现场的保护和恢复,以及它们和主程序之间的信息交换方法。
2) 程序的结构用模块化结构,即把监控程序分解为若干个功能相对独立的较小的程序模块分别设计,以便于调试。具体设计时可采用自底向上或自顶向下的方法。
3) 在进行程序设计时,先根据问题的定义描述出各个输入变量和输出变量之间的数学关系,即建立数学模型,然后绘制流程图,再根据流程图用汇编语言进行具体程序的编写。
4) 在程序设计完成后,利用相应的开发工具和软件进行程序的汇编,生成程序的机器码。
(4)系统的调试任务
在系统样机的组装和软件设计完成以后,就进入系统的调试阶段。应用系统的调试步骤和方法是相同的,但具体细节与采用的开发系统(即仿真器)及选用的单片机型号有关。调试的过程就是软硬件的查错过程,分为硬件调试和软件调试。
1) 硬件调试
单片机应用系统的软硬件调试是分不开的,通常是先排除明显的硬件故障后再和软件结合起来进行调试。常见的硬件故障有逻辑错误、元器件失效、可靠性差和电源故障等。在进行硬件调试时先进行静态调试,用万用表等工具在样机加电前根据原理图和装配图仔细检查线路,核对元器件的型号、规格和安装是否正确。然后加电检查各点电位是否正常。接下来再借助仿真器进行联机调试,分别测试扩展的RAM、I/O口、I/O设备、程序存储器以及晶振和复位电路,改正其中的错误。
2)软件调试
软件调试就是检查系统软件中的错误。常见的软件错误有程序失控、中断错误(不响应中断或循环响应中断)、输入/输出错误和处理结果错误等类型。要把各个程序模块分别进行调试,调试通过后再组合到一起进行综合调试,达到预定的功能技术指标后即可将软件固化。系统的调试过程要结合具体的仿真器进行。
二、系统设计要求
(1)煤气流量的累积,煤气可用数的递减
(2)
LCD显示煤气累积数、煤气可用数,以及IC卡中的购气数。
(3)
LCD显示“没欠量”、“关阀”、“过流”等提示汉字。
(4)“欠量,’.“过流”、“异常”等情况下,有声音报警。
(5)煤气流量的输入脉冲频率范围在0.1-200Hz之间。
(6)微功耗设计,1节3.6V的锂电池可使用3年以上。
(7)掉电保护,系统电压低于一定值时,将有关数据写入EEPROM后即关阀
设计实现的主要功能
(1)数据采集装置:采集基表的计数值,将其机械计数值转换为数字信号并输入控制器,供控制器处理分析。
(2)控制器:接收数据采集装置的数字信号,辨认IC卡的真伪,根据从IC卡读入的购入煤气量,计算并判断可用的煤气量,完成对煤气表阀的控制,并将相应信息输出至提示装置和IC卡读写装置。
(3)表阀:接收控制器的指令,完成阀门的开闭。
(4)提示装置:接受控制器的信息并做出相应反应(液晶屏显示、声音提示、信号灯提示)。
(5)IC卡读写装置:将卡片内有关数据输出至控制器,并将控制器输出的相应信息返写回卡内。
(6)基表:IC卡表使用的皮膜式煤气表。
4.3 1.3系统解决的问题和拟采用的研究手段
单片机选用8031作为CPU。
IC
卡用的是德国西门子公司的SIM4442 逻辑加密卡。
干簧管为磁灵敏开关型传感器控制器采用2
只干簧管来实现计数和保护功能。
电机控制采用BH3024 大电流双向驱动器电路
液晶显示器用ZY886D
煤气表液晶模块
另有蜂鸣器作为提示音器件
所用知识有:数字电路设计,模拟放大电路,单片机原理与接口电路,石英晶体振荡电路等。
技术指标:
(1)煤气流量的输入脉冲频率范围在0.1-200Hz之间。根据单片机的时钟频率而定。
(2)
流量计精度为0.05立方米. 干簧管由一对磁性材料制造的弹性舌簧组成,密封于玻璃管中。当恒磁铁或线圈产生的磁场施加于舌簧上时,使2
个舌簧磁化,若生成的磁场吸引力克服了舌簧的弹性产生的阻力,舌簧被吸引力作用接触导通。一旦磁场消失,舌簧因弹力作用又重新分开。控制器采用2
只干簧管来实现计数和保护功能。1 只干簧管(连于图1 中的J4 处) 安装于靠近0. 01 m3单位计数拨码盘附近,在0. 05 m3
单位计数拨码盘上均匀嵌有2 只微型磁钢,则当煤气表走过0. 05 m3时,该干簧管开关2 次;
(3)3节1.5V电池
因为单片机的工作电压为3~5V
(4)电压监控的精度为±0.025V.
电压比较器的最小动作电压为0.025V
(5)LCD现实的煤气累计数,可用数,IC卡中的购气数的精度均为0.05立方米
因为他们由煤气表的流量计精度决定的。
(6)报警时间为5s.
4.4 1.4本文的工作
本文的工作就是介绍如何做一个IC卡煤气表,第2部分给出相关方案的研究为后面程序设计打下基础,第3部分给出了系统的总体设计,对程序的模块分析、设计思想第4部分给出详细的实现过程和重要的技术实现。最后给出了我对这个设计一个看法,这个系统有些什么特色,还有展望之类的。
5 第二章
系统的总体设计
5.1 2.1核心单元电路
煤气是现代家庭中不可缺少的能源之一,对煤气使用的管理工作十分重要。目前绝大多数地区仍采用管理人员上门抄表及收费这样一种管理方式,因此,燃气、公司的工作量很大,管理效率很低。
随着“西气东送”工程的快速开展,天然气必将进入我国的千家万户。煤气表将、和电表、水表一样,成为家庭的必需品。传统的机械式煤气表因齐功能单一,只能累计煤气流量,且是先用气后付费,给煤气公司的管理造成诸多不便。因此,研制、开发符合当前收费标准的智能煤气表是十分必要的。
硬件电路框图如图1所示,在该硬件系统中主要由核心单元电路、计量,工作,防磁检测、电压监控、电源、显示器、阀门驱动等单元组成。
图1
1. 核心单元电路
单芯片微处理器是属于Embedded System(嵌入系统),此系统的是把CPU
加上一些少量的记忆体和输出入组件(I/O),都嵌入在一颗芯片内,再使用 特定的组译和编译软体编辑程序,利用烧录器把程序储存到单芯片,如此
加上一些简单的周边电路,即可变成一个控制系统,所以单芯片又称为微
程控器(microcontroller)。
8051是由INTEL公司发展出来的8bit MCU(微处理器),目前在工业界
的应用相当的普及化,目前已有相当多家的公司也制造与8051兼容的单晶 片,除的基本的构造相同外,更增加其周边的控制功能
,例如DALLAS 公司生产的DS87C550,已经内建A/D转换和PWM,如此可减少周边组件
和布线的成本,而国内的华邦电子公司也推出了40MHZ W78C51/52/54/58
ATMEL半导体公司的AT89C51系列的产品,不需紫外线的清除,而是用电
子式抹除,比一般的51系列更为方便,目前在一般的学校实习,大都采用此
系列产品。PHILIPS半导体公司出产的P87C552家族,除了51本身的UART 外,更增加的I2C(Inter-integrated
Circuit)的功能,这是利用SDA和SCL两条 传输线,和周边的IC互相沟通、传送资料,而且这些IC都必须有I2C的编
号,这使得选购IC时,受到一些限制,所一在目前的工业应用上,还不是
相当的普及化。由于51家族繁多,所以在设计之前,必须针对51家族功能有相当的认识
如此才能选购符合自己所需,而且价格便宜的MCU。
INTEL 8051家族介绍:
INTEL公司是第一家出产8051,其它公司也依照INTEL所发展出来的8051
为最基本的架构,再加上自己一些额外的功能以显示出自己的特色,让使用
者能依照电路所需,选择最适合的8051去做控制,而且最重要的是,为了方
变设计者能随时更换不同厂牌的8051,其接脚大都是40Pin,而且每Pin的定
亦都相同,但也有24Pin(87C748、87C751)和68Pin PLCC
包装(DS87C550),不过这些都是特殊规格的MCS-51。
MCS-51单芯片一般分为三个版本:
1. 单芯片内部不包含程序记忆体,称为ROMless。
2. 单芯片内部已内建ROM。
3. 单芯片内部已内建EPROM。
其中(2)和(3)的区别在于(2)的单芯片只可烧录一下,较适合于程序已完成,用
于大量生产,因为其价格较便宜,可节省产品的成本,(3)的单芯片适合用于
程序发展阶段,因为需要重复的更改程序,而内含有EPROM的MCS-51,只
需要使用紫外线清除器,就可把MCS-51的程序记忆体清为空白,达到重复烧录的特性。
INTEL公司出产的各版本MCS-51编号如下:
组件编号 内部程序内存大小 定时器 中断个数
ROM容量 RAM容量
8031AH None 128*8RAM 2*16Bit 5
8051AH 4K*8ROM 128*8RAM 2*16Bit 5
8051AHP 4K*8ROM 128*8RAM 2*16Bit 5
8751H 4K*8EPROM 128*8RAM 2*16Bit 5
8751H-8 4K*8EPROM 128*8RAM 2*16Bit 5
8751BH 4K*8EPROM 128*8RAM 2*16Bit 5
8032AH None 256*8RAM 3*16Bit 6
8052AH 8K*8ROM 256*8RAM 3*16Bit 6
8752BH 8K*8EPROM 256*8RAM 3*16Bit 6
其特性如下:
1. 是一个8位的MCU。
2. 具有布尔代数的运算能力。
3. 4个8位Port,共有32条双向且可独立被控制的I/O Port。
4. 有128*8
RAM,可以储存资料记忆体(8052为256*8)。
5. 有4K*8 ROM的程序记忆体(8052为8K*8)。
6. 有2组16 Bit计时器(8052有3个)。
7. 具有全双工传输信号UART。
8. 5个中断源(8052有6个),具有两层优先权中断架构。
9. 内部有时脉(CLOCK)振荡器电路(12MHZ)。
10. 程序记忆体(ROM)可扩充至64K
Byte。
11. 资料记忆体(RAM)可扩充至64K Byte。
ATMEL家族介绍:
ATMEL公司所出产的ATC89C51可以说是目前一般在实验阶段最时常
被用到MCS-51,因为ATMEL所出产的MCS-51系列其程序记忆体是做成 Flash
memory,可以省略使用EPROM照紫外线的时间,而且重复烧录的次
数多,价格又比价一般的便宜,其烧录的次数可高达1000次,8051之所以
能如此盛行,ATMEL公司其功不可没,因为它使学习者的学习方式变的简单
价格上也EPROM型的8051系列便宜的多,虽然目前DALLAS公司所推行
的高速8051(HSM)已渐渐威胁到ATMEL的地位,不过它目前所推出的51系
列含有更高的速度和增加了更多功能,未来和DALLAS公司所推出的8051
都值得消费者注意。为了方便让读者选购ATMEL公司出产的MCS-51,以下 介绍其IC编号所代表的意义:
ATMEL公司生产的各版本MCS-51编号如下:
组件编号 程序内存(Program
Memory) 数据存储器容量(Data Memory Bytes) 16bit定时器(16bit
timer)
AT89C1051 1K Flash 64
RAM 1
AT89C2051 2K Flash 128
RAM 2
AT89C51 4K Flash 128
RAM 2
AT89C32 8K Flash 256
RAM 3
AT89C55 20K Flash 256
RAM 3
AT89S8252 8K Flash 256 RAM
2K
EEPROM 3
AT89S53 12K Flash 256
RAM 3
由于AT89C51/52/55是一般较为通用的MCU,我们就把它与8051/8052做功能上的比较,其所增加功能如下
:
1. 具有4K/8K Bytes可重复规划的快闪记忆体(Reprogrammable Flash
Memory),可写入/抹除1000次以上,程序可保存10年以上。
2. 操作频率:0MHz~24MHz(AT89C55为高速可达33MHz)。
3. 操作电压:5V
。
4. AT89C51 具有两层优先权的5个中断向量结构,AT89C52/55具两层优先权的6个中断向量结构。
5. 三个可规划的记忆体上锁位。
6. ALE脚可规划为,只在执行MOVC和MOVX时才动作。(可减少EMI,因为方波的电磁干扰很大)
7. AT89C52/55的计数器2共有四种操作模式:
1)捕获(capture)。
2)自动重载(auto-reload)(往上或往下计数) 。
3)鲍率产生器(baud rate generator)
。
4)时钟输出(clock-out)。
其中第(2)种操作模式增加了可往上或往下计数的功能(一般为上数功能),
第(4)种操作模式为新增加的功能,利用P1.0可以规划出50%责任周期的 时钟输出。
而AT89S53增加了一个相当令人注意的功能:ISP,这个功能使得程序可经 由ISP(In-System
Reprogrammable)接口下载,其具有12K可可重复规划的快
闪记忆体,可写入/抹除1000次以上,使得使用者更加方便使用。
Dallas家族介绍:
Dallas公司所出产的8051家族,一般都是用在对高速有严格要求之下才会考虑使用,一般统称为高速微控器(HSM),目前较为常用得有DS80C310和DS80C320,如果考虑高速动作这两颗是一般常用的微控器,而且价格和其它高速微控器来比是较为便宜的,但唯一的缺点是其内部没有ROM,一般都是外接EPROM,但不能超过64K
位组,由于在高速动作,所以周边的IC存取速度就需要相当的注意,以74HC373来说,就要换成74F373,在EPROM的存取速度也要配合微控器的振荡器频率,一般模拟所用的ICE是无法做高速模拟的所以必须使用Dallas公司自己出产的ICE;以往Dallas公司所标榜的是高速微控器,但目前华邦公司也出厂了高速微控器(40MHZ),其速度不输于Dallas的产品,如果设计上对速度有严格的要求,倒也可以考虑一下华邦的W78E51/52
/54/58,但假设你要整合性强又要高速的话DS87C550或许可以满足你的要求。以下介绍其IC编号所代表的意义:
Dallas公司出产的各版本MCS-51编号如下:
组件编号 程序内存(Program
Memory) 定时器/计数器 串联I/O
(Serial
I/O)
DS80C310 NO 3
1
DS80C323 NO 3+WDT 2
DS87C520 16KB
EPROM 3+WDT 2
DS83C530 16KB
EPROM 3+WDT 2
DS87C530 16KB
EPROM 3+WDT 2
DS87C550 8KB
EPROM 3+WDT 2
WDT:看门狗计时器
Serial I/O:UART
一般常用的为DS80C310和DS80C320,我们就把它与80C32做功能上的比较,其所增加功能如下 :
DS80C310:
1. 有两组DPTR,一般只有一组。
2. 振荡器频率范围:0~33MHZ,一个机械周期需4个振荡周期,一般为12个振荡周期。
3. 可变机械周期的MOVX指令,用来配合ROM或周边组件的读取速度。
4. 有6个外部中断,一般只有/INT0和/INT1。
5. 有两层优先权的10个中断,因为外部中断多了4个。
DS80C320除了具有DS80C310外,还增加了一些功能:
1. 有13个中断源,其中包含了6个外部中断。
2. 有看门狗计时器(Watchdog timer)的功能。
3. 提早警告电源失效中断。
4. 电源下降自动重置(Rest)功能。
目前Dallas公司所出产的微控器除了以上介绍的功能外,更添加了其它的功能,而且是百分之百和8051兼容,这使得使用者在设计时更加的方便,现就以DS87C520为例:
1. 有OTP(只能烧录一次)和EPROM(可多次烧录)版本,增加使用的弹性。
2. 可用软体规划特殊功能暂存器(SFR),控制ALE脚对EMI干扰。
3. 可用软体规划特殊功能暂存器(SFR),控制指令周期速度为÷64或是÷1024,一般内定÷4(8051为÷12)。
4. 可用MOVX指令读取内部1K Bytes 的SRAM(一般只有256 Bytes的资料记忆体)。
5. 内部的16K Bytes
的ROM,可用软体规划特殊功能暂存器(SFR),成为从0到16Kbytes的ROM使用。
由于Dallas的微控器增加了许多的功能,如果使用者有需要使用的话,就必须事先在程序中定义特殊功能暂存器(SFR),否则在组译时会产生错误的讯息,但如果你没有使用到这些特殊功能,就不需去定义,这是在使用Dallas微控器时必须注意的事情。
目前在8位微控器的市场,有Microchip公司出产的PIC16CXX,其特色为省电、低功率,而且对于周边的电路整合性比8051强,因为其内部有些已内建A/D、PWM、I2C、LCD控制功能,这让使用者有更多选择的空间,如果读者有兴趣也可上网(
http://www.microchip.com/)查看该公司的资料,而且也可向该公司索取资料;另外还有Motrola公司所出产68HC05,该公司所出产的微控器在工业界更是占有一席之地,其使用者和8051相比是不相上下;ATMEL公司目前也相当积极在推动AVR微控器,而且它还提供整套发展工具给学校做实验,未来的发展值得注意。
综合考虑系统扩展方便性、系统工作可靠性、性价比等因素,系统主机芯片采用INTEL
8051。
硬件电路如图2所示。它由单片机8051为核心加上有关集成电路及元器件组成。从图中看出。
根据系统功能进行硬件设计。各部分说明如下。
(1)单片机本设计采用8051单片机作为其中央控制器,通过相应的软件实现煤气表的各种控制功能。包括计数信号,显示信号,报警信号,驱动信号的传输和控制。
(2)
电源模块: 为设备提供稳定电压,本煤气表使用普通的三节1. 5V 电池串连供电,因为单片机的工作电压为3~5V。
(3) IC
卡模块:完成IC卡的读写功能, 将卡片内有关数据输出至控制器,并将控制器输出的相应信息返写回卡内。IC
卡用的是德国西门子公司的SIM4442 逻辑加密卡,IC 卡卡座选用的是常开型卡座。
(4)显示和声响电路模块:
8031串行口的移位寄存器有四种工作方式,通过外接移位寄存器74HC164实现串/并转换后控制并驱动数码管及LCD显示;利用单片机8031的一个I/O口控制并驱动蜂鸣器工作。
(5)
计量信号、工作信号、防磁检测信号模块:
采集基表的计数值,将其机械计数值转换为数字信号并输入控制器,供控制器处理分析。这三个信号线由基表部分引出,三个信号线在基表内各自通过干簧管与地相连,当磁体靠近时干簧管吸合,远离时断开。现在市场上有一种防磁干扰电水气干簧管信号采集装置,它包括干簧管、磁芯以及基表计量结构,在相对电、水、气基表计量结构位置处所设干簧管与磁芯的外部设有隔磁材质层可为电工纯铁材质。隔磁材质层上开设有对应电水气表原计量显示位置的孔洞。该方案根据性价比方面考虑不采用该装置。
(6) 阀门驱动电路模块: 接收控制器的指令,完成阀门的开闭。
控制器的硬件电路如图3所示。单片机采用8051 , IC
卡采用西门子SL E4442 卡,电机控制采用BH3024 大电流双向驱动器电路,液晶显示器用ZY886D
煤气表液晶模块,另有蜂鸣器作为提示音器件。
1.2IC 卡接口
用8051 的RA1 接IC 卡座的CL K 脚、RA2
接I/ O 脚、RA3 接VCC脚、RB6 接RST 脚、RBO接卡座常闭触点(有卡插进断开) 。注意RA1 、RA2 、RB6
均要接一上拉电阻。由于8051 的RBO为外中断输入脚,所以有卡插入将引起外部中断请求,但在软件处理中要考虑去抖动问题。
1. 3
干簧管
干簧管为磁灵敏开关型传感器,其结构见图4
。干簧管由一对磁性材料制造的弹性舌簧组成,密封于玻璃管中。当恒磁铁或线圈产生的磁场施加于舌簧上时,使2
个舌簧磁化,若生成的磁场吸引力克服了舌簧的弹性产生的阻力,舌簧被吸引力作用接触导通。一旦磁场消失,舌簧因弹力作用又重新分开。控制器采用2
只干簧管来实现计数和保护功能。1 只干簧管(连于图1 中的J4 处) 安装于靠近0. 01 m3单位计数拨码盘附近,在0. 01 m3
单位计数拨码盘上均匀嵌有2 只微型磁钢,则当煤气表走过0. 01 m3时,该干簧管开关2 次;另1 只干簧管(连于图1 中的J5处)
安装于靠近外壳处,拨码盘上磁钢磁场对其没有影响。当外界有强磁场时,则2
只干簧管均会导通。由此,单片机软件可将此判断为干扰或恶意破坏而放弃该次计数,因而实现了保护功能。
1. 4
计数
由干簧管来的信号送至RB7 ,注意RB7 应接一合适电阻值的上拉电阻,程序每收到2 个有效的下降沿,则认为走过了0. 1
个字。由于PIC16F84 的RB4~RB7
可设置成电位变化引起的中断源,故计数输入可用中断形式来实现,干簧管输入可不考虑去抖动。
1. 5
阀控
用一可正、反转的直流电机控制一特制机电阀。驱动电路用BH3024 ,其连线可参见图1 。单片机通过对BH3024A、B 2
个输入脚输出不同波形来控制电机的正、反转和停转。输入A、B 与输出QA 、QB 的关系如表1 所示。
表1 BH3024 真值表
输入端A
输入端B 输出端QA
输出端QB
1
0
1
0
0
1
0
1
0
0
7
1
高阻
高阻
图3控制器硬件电路图
1. 6 液晶显示---ZY886D
煤气表液晶模块
(1)概述
ZY886D
液晶模块是本公司生产的煤气表液晶模块显示信息齐全优美大方具有接口简单工作
电源可选3.6V 或5V
低功耗等优点是煤气表配套显示部件的首选
(2)LCD
外观及真值表
液晶片(77.0mm*25.5mm)
真值表:
模块尺寸(98mm*33mm)
(3)液晶模块与单片机接口
以与PHILIPS
的51LPC 单片机接口为例原理图如下
如果要使用/IRQ 信号请在/IRQ 接口线加一个5 10K
的上接电阻
MCU 设置为内部上电复位复位IO 口为高内部6M 振荡器WDT 关12 CLOCK 掉电检测为
2.5V
在不对LCM 进行数据传送时请把对应接口IO 置为高阻态或高电平以降低LCM 的功耗
(4)HT1621
功能详细说明
HT1621 的基本特性:
操作电压2.4V~5.2V
内置256KHz RC
振荡器也可使用32.768KHz 晶振或256 KHz 外部时钟源
掉电Power down
模式可降低功耗
内置32 4 位显示RAM
3 线串行接口
读/写地址自动增加
HT1621 的AC 特性
5.2 2.2工作控制程序设计
主程序框图如图4
所示。
图5 主程序框图
主程序中,初始化等待2 min ,读E2PROM
数据,则存于单片机E2PROM 中的一些数据(断电时保存) 读出到特定的RAM
单元。
气量不足处理程序
预付费煤气表对用户剩余气量为8 m3 和8
m3以下时会作出相应的警示和处理。具体为:
(1) 剩余气量为8 m3 、6 m3 、4 m3 、2 m3
时,蜂鸣器发出提示音,并显示相应的气量。
(2) 剩余气量为1 m3
时,蜂鸣器报警,显示相应的气量,阀门关闭。此时用户插入自己的零气量IC 卡,则阀门打开,直至用尽剩余气量。
(3)
表内为零气量时,用户插入相应的零气量IC 卡,蜂鸣器提示,显示零气量,但阀门不会打开。其程序框图分别见图6 、图7 和图8
。
图6 气量不足处理子程序框图
图7 气量为1 m3
时处理子程序框图
低电压(或电磁干扰) 报警子程序
低电压(或有电磁干扰) 时,会在RB5
端口引起中断,在中断服务程序中置相关标志,其处理子程序如图9 所示。
图8
零气量时处理子程序框图
图9 低电压报警处理子程序框图
该种IC
卡预付费可阀控煤气表在实际应用中稳定可靠、读数正确、抗干扰能力强。但由于用干电池供电,一些用户反映了换电池的问题,故在供电问题上还有待进一步的完善。
5.3 2.3模拟软件调试
单片机的程序设计调试分为两种,一种是使用软件模拟调试,意思就是用开发单片机程序的计算机去模拟单片机的指令执行,并虚拟单片机片内资源,从而实现调试的目的,但是软件调试存在一些问题,如计算机本身是多任务系统,划分执行时间片是由操作系统本身完成的,无法得到控制,这样就无法时时的模拟单片机的执行时序,也就是说
,不可能像真正的单片机运行环境那样执行的指令在同样一个时间能完成(往往要完成的比单片机慢)。为了解决软件调试的问题,第二种是硬件调试,硬件调试其实也需要计算机软件的配合,大致过程是这样的:计算机软件把编译好的程序通过串行口、并行口或者USB口传输到硬件调试设备中(这个设备叫仿真器),仿真器仿真全部的单片机资源(所有的单片机接口,并且有真实的引脚输出),仿真器可以接入实际的电路中,然后与单片机一样执行。同时,仿真器也会返回单片机内部内存与时序等情况给计算机的辅助软件,这样
就可以在软件里看到真实的执行情况。不仅如此,还可以通过计算机断的软件实现单步、全速、运行到光标的常规调试手段。总结一下两者的不同与相同:
相同点:
1:都可以检测单片机执行时序下的片内资源情况(如R0-R7
、PC计数器等)
2:可以实现断点、全速、单步、运行到光标等常规调试手段。
不同点:
1:软件调试无法实现直接连接硬件电路的调试,只能通过软件窗口虚拟硬件端口的电平输出情况而仿真器可以实现与单片机一样的功能的硬件连接,从某种意义上说这个时候仿真器就是一个单片机。
2:软件调试执行单片机指令的时间无法与真实的单片机执行时间画上等号,也就是说如果一个程序在单片机中要执行300us,可能在计算机中执行的时间可能会比这个长很多,而且无法预料。仿真器则是完全与单片机相同。
3:软件调试只能是一种初步的,小型工程的调试,比如一个只有几百上千行的代码的程序,软件调试能很好的完成,如果是一个协调系统,可能还需要借助几个单片机仿真器和相关的仪器才能解决。
4:软件仿真不需要额外花钱,而硬件需要,一个仿真器一般都上千元,同时可以仿真许多种单片机的工作。
Keil
uVision2是目前使用广泛的单片机开发软件,它集成了源程序编辑和程序调试于一体,支持汇编、C、PL/M语言。
这里我们仅仅介绍
Keil uVision2 的简单使用,更详细的使用方法见本光盘\单片机软件\Keil
c51\Keil书籍与资料目录中的内容。
下面将具体介绍如何使用Keil uVision
来软件调试单片机程序。
首先:打开一个已经编译通过的单片机项目(如何新建与编译单片机程序项目这里省略)
选择Debug下面的Start/Stop Debug
Session,这个选项可以打开调试也可以关闭调试
接下来看到的窗口就是调试窗口了:
下面具体说说相关子窗口的功能:
1:左侧的ProjectWorkspace
Regs是片内内存的相关情况值,Sys是系统一些累加器、计数器等。Regs很简单就不多说。具体介绍一下Sys
a
累加器ACC,往往在运算前暂存一个操作数(如被加数),而运算后又保存其结果(如代数和)。
b
寄存器B ,主要用于乘法和除法操作
Sp sp_max
dptr 数据指针DPTR
PC $
states
执行指令的数量
sec 执行指令的时间累计(单位 秒)
psw
程序状态标志寄存器PSW,八位寄存器,用来存放运算结果的一些特征,如有无进位、借位等。
p
奇偶标志P。反映累加器ACC内容的奇偶性,如果ACC中的运算结果有偶数个1(如11001100B,其中有4个1),则P为0,否则,P=1。
f1
ov
溢出标志位OV。MCS-51反映带符号数的运算结果是否有溢出,有溢出时,此位为1,否则为0。
rs
f0
ac
辅助进位标志AC。又称半进位标志,它反映了两个八位数运算低四位是否有半进位,即低四位相加(或减)有否进位(或借位),如有则AC为1状态,否则为0。
cy
进位标志CY(PSW7)。它表示了运算是否有进位(或借位)。如果操作结果在最高位有进位(加法)或者借位(减法),则该位为1,否则为0
由于PSW存放程序执行中的状态,故又叫程序状态字?运算器中还有一个按位(bit)进行逻辑运算的逻辑处理机(又称布尔处理机)
根据指令执行的不同上述值会有相应的变化,也正是为了监测这些在单片机中看不到的值而达到调试的目的。
虽然软件调试无法实现硬件调试那样的信号输出,但是可以通过软件窗口的模拟监测输出信号的高低电平以及单片机相关端口的变化。
上图所示,Port0,Port1,Port2,Port3就对应于单片机的四个P0,P1,P2,P3
口,共32个针脚。
这是全部打开后的效果。
有了输出,就应该有输入的设置:
这个按钮可以打开输入预设窗口,输入值窗口如下:
选择不同的Int Source 会有不同的 Selected
Interrupt的变化,通过选择与赋值达到模拟输入的目的。
接下来是串口的设置:
这是设置串口的窗口
监测窗口数据还有一个窗口: