基于单片机的分时计费智能电表设计.doc_第1页
基于单片机的分时计费智能电表设计.doc_第2页
基于单片机的分时计费智能电表设计.doc_第3页
基于单片机的分时计费智能电表设计.doc_第4页
基于单片机的分时计费智能电表设计.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

智能化测控应用系统设计报告 目目 录录 1 1 前言前言. 1 1 2 2 总体方案设计总体方案设计. 2 2 2.1 方案比较.2 2.1.1 方案一. 2 2.1.2 方案二. 3 2.2 方案比较及选择.4 3 3 单元模块设计单元模块设计. 5 5 3.1 各单元模块功能介绍及电路设计.5 3.1.1 电源模块电路. 5 3.1.2 计量模块电路. 5 3.1.3 时钟及 lcd 显示模块. 6 3.1.4 信号采集电路. 8 3.2 电路参数的计算元器件的选择.9 3.3 特殊器件介绍.9 3.3.1 ad7755 介绍. 9 3.3.2 stc89c52 单片机介绍. .10 3.3.3 ds1302 时钟芯片介绍. .10 3.3.4 lcd1602 液晶显示屏介绍. .11 4 4 软件设计软件设计. 智能化测控应用系统设计报告 1313 4.1 软件设计原理及设计.13 4.2 设计软件介绍.14 4.2.1proteus 软件介绍. 14 4.2.2 keil 8051 开发工具. .14 4.3 软件结构图.14 4.3.1 电压电流采集子程序. 15 4.3.2 ad 转换子程序. .16 5 5 系统调试系统调试. 1 17 7 5.1 单片机及 1602 显示部分. 17 5.2 万用板电路部分调试.17 6 6 系统功能、指标参数系统功能、指标参数. 1 19 9 6.1 系统能实现的功能.19 6.2 系统指标参数分析.19 7 7 结论结论.2 20 0 8 8 总结与体会总结与体会.2 21 1 9 9 谢辞谢辞.2 22 2 1010 参考文献参考文献.2 23 3 附录附录 1 1 系统设计图(系统设计图(原理图、原理图、pcbpcb、实物图、实物图)2424 附录附录 2 2 元件清单元件清单. 2 26 6 附录附录 3 3 程程序序代码代码. 2 27 7 智能化测控应用系统设计报告 0 智能化测控应用系统设计报告 1 1 前言前言 随着我国经济的不断发展,各地对电能的需求也随之迅速增加,电力已经 成为国家的最重要能源。因此我们需要尽可能的节约用电。但是,当前我国大 多数地方对于用电的管理还比较落后,用电收费多年来一直采用先用电、后抄 表、再付费的传统方式。居民用电绝大多数实行“分表制” ,即若干集中居住的 家庭使用一个总的电表,每户装一个分电表,作为居民交付电费的依据。加上 现在很多电表不能分时计费,这样就进一步增加了电量的不合理消耗。所以, 我们一致决定选择了基于单片机的分时计费智能电表设计。 所谓智能电表,就是应用计算机技术,通讯技术等,形成以智能芯片(如 cpu)为核心,具有电功率计量计时、计费、与上位机通讯、用电管理等功能的 电度表。本新型智能电表主要实现分时智能计费。本次设计主要采用 ad7755 电 能计量芯片和 stc89c52 单片机为核心,结合电流、电压采集,再通过信号滤波 传给 ad7755,再经过 stc89c52 处理,最终在键控的触发下,送到 lcd1602 显 示。此电表能实现用户所用功率的计算,并根据国家规定的用电高峰和低谷设 置阶梯电价计算,并显示出用户各时段所耗功率。不仅具有传统电表的功能, 还能对用户的用电情况进行管理和控制,智能电表利用微机技术,通讯技术等 等,减少了能量的消耗,把采集,处理集中于一体,节省成本和人力资源,提 高了工作效率,适应了现代用户的需求。 本设计的意义在于能够实现电表的分时段计费功能,这对我国在控制人们 合理使用电量上具有深远的影响。 1 智能化测控应用系统设计报告 2 2 总体方案设计总体方案设计 本电表采用分时计费原则,将电压,电流等参数进行采集,并通过处理后 输入微处理器 stc89c52,进行运算,并最终实现对于电能的准确计量和控制 显示。 通过查阅大量相关技术资料,在老师的建议下,结合自己的实际知识,我 们主要提出了两种技术方案来实现系统功能。下面将首先对这两种方案的组成 框图和实现原理分别进行说明,并分析比较它们的特点,然后阐述最终选择方 案的原因。 2.12.1 方案比较方案比较 智能电表的设计,是基于对用户电压电流信号进行采集,并通过微处理器 进行核心运算,当电压电流信号通过采集以后,通过高精度的 ad 采样保持, 最终输入微处理器,并通过用 c 语言编写的程序键控控制处理器单片机,并且 要求通过功率和电费的计算,进行显示。 对于电力参数的测试,例如电压,电流,有功功率,无功功率等,现在都 有成熟的测量计算方法,对于电压有效值的测量,可以利用积分电路来实现, 也可以利用时间采样信号,将信号值平方,去均值以后,得到平方根,通过 ad,进行采样,有功功率定义为,和为电压和电流的有效值,uicosp ui 为功率因数。而对于非正弦波形的计算,只有通过积分运算来完成。cos 2.1.12.1.1 方案一方案一 在本设计方案中,核心器件为微处理器,这里我们选用是 stc89c52 单片 机,当信号采样后通过 ad 转换,送入微处理器,进行数据的分析和计算,智 能电表的实现必须对用户的功率进行准确的计算,在信号采集模块中,通过电 压互感器和电流互感器,对用户的电压和电流信号进行采集,微处理器进行功 率和电费的计算,可通过 lcd 显示,并可以通过键盘对分时电价进行调整,实 现显示的转换和调整,并运用单片机内部时钟设计计时系统,以实现分时的控 制。但是此设计有诸多缺陷,首先,在信号采集方面,由于智能电表对于功率 的计算,如果单纯的使用单片机,会造成功率计算不准确,如果要提高计算的 精度,对于信号的 ad 转换就必须采用高精度期间,成本费用增加,其次即便 使用了高精度的 ad,在功率计算,补偿方面的程序也相对繁琐,再则,由于 使用分时计费系统,只用单片机内部时钟信号进行粗略的计时,产生的时间误 差比较大,长时间的使用下会导致计时不准确,而使得电费的计算出现误差。 2 智能化测控应用系统设计报告 软件系统方面,其核心是编写功率计算程序和 ad 采样程序,并通过键盘扫描 实现显示的切换。 方案一如图 2.1 所示 信号采集 信号滤波 ad7755 转换微处理器lcd 显示 键盘控制 图 2.1 2.1.22.1.2 方案二方案二 本方案的设计思路与方案一大致相同,选用 stc89c52 单片机,作为微处 理器,通过电压传感器,电流传感器实现对用户的电压电流采集,并在单片机 中进行电价的计算,与方案一的不同之处在于,方案二中功率计算部分和 ad 转换采集部分被一块电能计量芯片 ad7755 进行代替,该芯片是以一款高准确 度的三相电能采集芯片,适用于计量各种三相,单项配置条件下的有功,无功, 视在电能,可省去高精度 ad 的费用的同时,也可以减少单片机内部处理功率 的步骤,转由 ad7755 完成。同时,由于该智能电表采用分时计费系统,方案 二中采用一块时钟芯片以提高对于时间的计时准确程度,以确保该电表可以准 确计费,同时,由于时钟芯片本身集成有微型电池,可以在断电的情况下继续 运行,保证了在智能电表断电的同时,计时系统不至于停止工作。 在本方案中,由ad7755进行功率的计算并进行校准,在该芯片中,通过有 功增益寄存器写入数据,可对输出产生的平均功率进行改变,该芯片中在每个 相位集成了一个有功偏移寄存器,该寄存器为12位寄存器,用以对有功功率进 行校准,由于实际电路的工作环境的复杂和多变,以及芯片本身制造工艺和各 通道之间进行的干扰,都会造成误差的产生,有功功率寄存器的一个lsb相当 于有功功率乘法器输出的lsb的1/16。在满刻度输出时,如果乘法器的输出为 xccccs(838861d) ,lpf2输出端的1个lsb相当于在电流通道满刻度60db 计量误差的 3 智能化测控应用系统设计报告 0.0075。在满刻度时,60db(输入信号级别为满刻度信号输入的1/1000) , lpf2的平均数值为838.861 (838,861/1,000)。lsb1/838.861/16100% = 测量值 的0.0075% 。有功功率偏移寄存器修正分辨率为0.0075% ( 60 db) 。 方案二如图 2.2 所示 信号采集 ad7755 转换 微处 理器 键盘输入 信号滤波 lcd 显示 时钟芯片 图 2.2 另外ad7755的各相拥有一个空载阀值,如果有功功率的测量值低于满刻度 的0.005%,则该值不会被累加,有效的避免了电表的浅动。ad7755通过41个电 能寄存器连续累加有功功率以实现对信号的积分作用,这种离散的累加作用就 相当于连续时间的积分作用,平均有功功率的计算时,是有符号运算的,负电 能将会在有功功率寄存器中被扣除。当有功功率为正,且达到最大值时,有功 功率的数值将反转到达满刻度的负值0x800,并继续增加,当有功功率为负值, 且持续减小到达最小时,会自动转为正的对大刻度0x7fff,并继续降低。 2.22.2 方案比较及选择方案比较及选择 虽然两种方案都能实现本次设计。但是在软件系统上,方案二与方案一的 区别重点在对于 ad7755 和 ds1302 两块芯片的程序的书写,在硬件的搭建上 降低了难度,但是在程序书写上难度有所增加。而且方案二增加了时钟芯片, 这样增加了 stc89c52 的精确度和灵敏度,增强了系统的实时性,时效性。通过 对以上两种方案的具体描述,对他们各自的优缺点有了一定的了解。考虑到控 制精度,操作习惯和美观以及成本等因素,要完成对于电费的准确计算,并综 合本次课程设计成本进行考虑,最终选择了方案二为本次设计的最终设计方案。 4 智能化测控应用系统设计报告 3 3 单元模块设计单元模块设计 本系统主要包括以下部分:电源模块电路、信号采集电路、计量模块电路、 时钟及 lcd 显示模块电路。辅助元件有电阻、电容、晶振、电源、按键等。先 对各模块分别作具体介绍: 3.13.1 各单元模块功能介绍及电路设计各单元模块功能介绍及电路设计 3.1.13.1.1 电源模块电路电源模块电路 电源模块电路从电网 220v 电压作为输入,通过该电路后,输出端输出 大小为 5v 的电压,作为单片机及其他芯片的 vcc 电源,具体的电路图如 图 3.1 所示: t3 trans1 1 2 3 4 d1 b ridge1 c 10 100uf c 11 0.01uf vin 1 gnd 2 vout 3 u2 78l05 c 12 0.01uf r 6 1k vcc 1 2 j3 c on2 图 3.1 电源模块接线图 图 3.1 为电压模块的电路图,该模块以电网 220 交流电作为输入,通 过整流桥整流后,再经过滤波,最后通过一块 78l05 稳压芯片进行稳压, 得到一个稳定的 5v 电源,78l05 的输出电流可达到 100ma,无需外接元件, 内部本身带有热过载保护,内部短路电流限制。通过 proteus 软件仿真可 以看到,通过该电源模块可以很好的工作,并最终得到一个稳定的 5v 的电 源。然后此 5v 的电压就可以供给 stc89c52 和时钟芯片 ds1302。 3.1.23.1.2 计量模块电路计量模块电路 计量模块的核心是通过一块 ad7755 芯片来完成,通过信号采集电路, 将变换后的电压电流信号输入到该芯片,ad7755 是一款高准确度的三相电 能计量芯片,带有两路脉冲输出功能和一个串行接口。ad7755 集成了二 阶 -d 模数转换器, 数字积分器,基准电路,温度传感器,以及所有进行 5 智能化测控应用系统设计报告 有 功,无功和视在电能计量以及有效值计量所需的信号处理元件。 图 3.2 计量模块电路接线图 图 3.2 为芯片 ad7755 的具体接线图,ad7755 作为一款适用范围极广 且功能强大的电能计量芯片在本次设计中担任了重要的角色,通过 cf 管脚 直接与单片机连接,与单片机实现数据之间相互通信,从而实现功率的计 算,其中 cf 管脚与单片机 p3.5 连接。 3.1.33.1.3 时钟及时钟及 lcdlcd 显示模块显示模块 本次设计中,该电表要实现分时计费,既必须引入时钟系统,该时钟 系统必须准确,且在电表短时间断电之内,不会停止工作,因此,该模块 采用了一块时钟芯片 ds1302,该芯片为一款使用很广泛的时钟芯片,具体 电路图如图 3.3 所示: 图 3.3 ds1302 接线图 图 3.3 为时钟芯片 ds1302 的连线图,其中 sclk 与单片机 p1.2 口连接, rst 与单片机 p1.3 口连接,io 与单片机 p1.2 口连接。通过该芯片可以提供比 6 智能化测控应用系统设计报告 较精确的万年历。 同时智能电表的显示模块选用 lcd 显示,下图为 lcd1602 显示电路: 图 3.4 lcd1602 接线图 通过该 lcd 液晶显示器,显示我们需要的一些信息。上述两个模块通过与 stc89c52 单片机进行连接,可以实现万年历的功能,且可以保证,在智能电 表短时间断电的情况下,时钟不会停止运行,继而使智能电表的分时计费系统 可以准确的运行,我们用 proteus 仿真,电路图如图 3.5 所示: 图 3.5 lcd 显示电路仿真图 图 3.5 为 lcd1602 显示模块,上图中可以通过按键对 lcd 显示进行调整,可 以显示,分时电价,余额等信息。 7 智能化测控应用系统设计报告 3.1.43.1.4 信号采集电路信号采集电路模块模块 本次设计为智能电表,所以要对用户的电压和电流都进行采样,再通 过 ad7755 芯片来得到一个较为准确的功率值并输入单片机中,因此电压 电流的采集电路如图 3.6 所示: 图 3.6 信号采集电路 图 3.6 为电流电压采集电路,在电流采集电路中,通过将电流互感器 ta32bm 串联到用户电路中,以采集用户的电流信息,ta32bm 额定输入输出 为 5a/2.5ma,通过电流互感器将大电流转换到 ad7755 可以接受的小电流范围 内,然后通过滤波降低信号的干扰,最终输入芯片,在电压采集电路中,通过 将电压互感器 tv31b-02 并联到用户的负载上,采集用户的电压信息,tv31b- 02 是一款电流型电压互感器,额定电流是 2ma/2ma,所以要在电压互感器的缘 边串联一个 51k 的电阻以降低互感器原边电流值到可承受的范围,最后通过 rc 电路滤波后,得到一个近似 0.5v 的电压以输入到 ad7755 芯片,和前面的 电流值一起,计算出用户的功率。 电压互感器相当于一个内阻很小的电压源,正常运行时它的负载阻抗会很 大,相当于开路状态,二次侧只有很小的电流,当二次侧短路时,负载阻抗为 零,将产生很大的短路电流,会将电压互感器烧坏。因此,电压互感器二次侧 严禁短路。 电流互感器在正常运行时,二次电流产生的磁通势对一次电流产生的磁通 势起去磁作用,励磁电流很小,铁芯中的总磁通就很小,二次绕组的感应电动 势不会超过几十伏。如果二次侧开路,二次电流的去磁作用消失,其一次电流 完全变为励磁电流,会引起铁芯内磁通剧增,铁芯处于高度饱和状态,加之二 次绕组的匝数很多,就会在二次绕组两端产生很高(甚至可达数千伏)的电压, 8 智能化测控应用系统设计报告 不但可能损坏二次绕组的绝缘,再者,由于磁感应强度剧增,使铁芯损耗增大, 严重发热,甚至烧坏绝缘。 3.23.2 电路参数的计算元器件的选择电路参数的计算元器件的选择 因为我们要测量的范围是,负载电压不超过 25v,电流不超过 2a,而单片 机能够接受的电压小于 5v,所以我们电压采样时,用和电阻分压的k47k1 . 5 方式,这样就算电压得到 25v 时,我们所采的电压也只有 2.447v,单片机也能 正常工作,电压采样后经过一个电压跟随器,降低输出阻抗,电流采样时,通 过电压间接采样,因为我们所串联的电阻很小,并联一个的电阻得到一个1 . 0 小电压,然后再放大,得到送入单片机。 3.33.3 特殊器件介绍特殊器件介绍 3.3.13.3.1 ad7755 介绍介绍 ad7755是一种高准确度电能测量集成电路,其技术指标超过了iec1036准 确度的指标要求。ads只在adc和基准源中使用模拟电路,所有其它信号处理 都是用数字电路。这使ad7755在恶劣的环境下然能保持极高的准确度和长期稳 定性。ad7755内部包含一个对电源引脚的监控电路,内部相对匹配电路使电压 和电流通道的相位始终是匹配的,无论通道1内的高通滤波器是接通的还是断开 的。内部的空载伐值特性保证ad7755在空载时没有潜动。ad7755有24脚dif和 ssop两张封装。两个adc对来自电流和电压传感器的电压信号进行数字化,这 两个adc 都是16二阶模拟转换器。过采样速率达900khz。ad7755的模拟输入 结构具有宽动态范围,大大简化了传感器接口,也简化了传感器接口,电流通 道中的hpf 滤掉电流信号中的直流分量,从而消除了由于电压或电流失调造成 的有功功率计算上的误差。有功功率是从瞬时功率信号计算出来的,是用电流 和电压信号直接相乘得到的。为了等到有功功率分量,只要对瞬时功率信号进 行低通滤波就行。ad7755的管脚图如图3.7所示: 9 智能化测控应用系统设计报告 图 3.7 ad7755 管脚图 3.3.23.3.2 stc89c52 单片机介绍单片机介绍 stc89c52 是一款高速度,高密度,低功耗的单片机,内置 8 位中央处理 单元,256 字节片内数据 ram,8k 片内程序 rom,32 个双向 i/o 口,还包含 3 个定时/计数器,拥有 pdip(40pin)和 plcc(44pin)两种封装形式,本次设计中采 用 40 管脚双列直插封装,功能强大,可以适用于较为复杂的工作环境, stc89c52 单片机管脚图如图 3.8 所示: 图 3.8 stc89c52 管脚图 3.3.33.3.3 ds1302ds1302 时钟芯片介绍时钟芯片介绍 ds1302 是美国 dallas 公司推出的一种高性能、低功耗的实时时钟芯片, 附加 31 字节静态 ram,采用 spi 三线接口与 cpu 进行同步通信,并可采用突发 方式一次传送多个字节的时钟信号和 ram 数据。实时时钟可提供秒、分、时、 日、星期、月和年,一个月小与 31 天时可以自动调整,且具有闰年补偿功能。 工作电压宽达 2.55.5v。采用双电源供电(主电源和备用电源) ,可设置备用 10 智能化测控应用系统设计报告 电源充电方式,提供了对后背电源进行涓细电流充电的能力。ds1302 的外部引 脚分配如图 1 所示及内部结构如图 2 所示。ds1302 用于数据记录,特别是对某 些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录, 因此广泛应用于测量系统中。ds 1302 引脚脚图如图 3.9: 图 3.9 ds12887 管脚图 3.3.43.3.4 lcd1602lcd1602 液晶显示屏介绍液晶显示屏介绍 lcd1602是一款工业字符型液晶显示屏,能够同时显示32个字符,内部带 有80*8为的内部ram缓冲区,可显示阿拉伯数字,引文字母大小写,常用符号 和日文片假名等,每一个字符都有一个固定的代码,在本次设计中,可以通过 lcd显示万年历,分时电价,剩余金额等数据信息,可以通过键盘来切换显示。 部分主要指令说明如下: 表3.1 lcd1602指令码 指令码功能 00111000设置16*2显示,5*7点阵,8位数据接口 00001dcbd=1 开显示;d=0关显示 c=1显示光标;c=0不显示光标 b=1光标闪烁;b=0光标不闪烁 000000nsn=1当读或写一个字符后地址加一,光标加一 n=0当读或写一个字符后地址减一,光标减一 s=1时写一个字符,整屏显示左移(n=1)或右移 (n=0) ,以得到屏幕移动光标不移动的效果 s=0时写一个字符,整屏显示不移动 80h+地址码设置地址数据指针 01h显示清屏:所有指针清零,所有显示清零 02h显示回车:数据指针清零 lcd1602 读写时序图如图 3. 10、3.11 所示: 11 智能化测控应用系统设计报告 图 3.10 lcd1602 写时序图 图 3.11 lcd1602 读时序图 12 智能化测控应用系统设计报告 4 4 软件设计软件设计 本设计中,以 stc89c52 作为微处理器,采用 c 语言进行编程,配合硬件电 路,共同构成了本次设计的核心部分。 4.14.1 软件设计原理及设计软件设计原理及设计 本次设计采用 c 语言,c 语言具有简洁明了的特点,在本次设计中,按照 各芯片的读写操作时序,以 spi 总线操作方式,分别对 ds1302 时钟芯片, ad7755 电能计量芯片进行读写操作,即可基本完成本次设计的主要功能。 ds1302 控制字节的最高有效位(位 7)必须是逻辑 1,如果它为 0,则不能把 数据写入 ds1302 中,位 6 如果为 0,则表示存取日历时钟数据,为 1 表示存取 ram 数据;位 5 至 位 1 指示操作单元的地址;最低有效位(位 0)如为 0 表示要进 行写操作,为 1 表示进行读操作,控制字节总是从最低位开始输出。在控制指 令字输入后的下一个 sclk 时钟的上升沿时,数据被写入 ds1302,数据输入从 低位即位 0 开始。同样,在紧跟 8 位的控制指令字后的下一个 sclk 脉冲的下 降沿读出 ds1302 的数据,读出数据时从低位 0 位到高位 7。ds1302 有 12 个寄 存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 bcd 码形式。此 外,ds1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发 寄存器及 与 ram 相关的寄存器等。时钟突发寄存器可一次性顺序读写(除充电寄存器外) 所有寄存器内容。ds1302 与 ram 相关的寄存器分为两类:一类是单个 ram 单元,共 31 个,每个单元组态为一个 8 位的字节,其命令控制字为 c0hfdh,其中奇数为读操作,偶数为写操作;另一类为突发方式下的 ram 寄存器,此方式下可一次性读写所有的 ram 的 31 个字节,命令控制字为 feh(写)、ffh(读)。而 ad7755 本身就是一款处理器,不要编写代码,内部已 经一体化了。 本次设计的另一个重点就是显示程序,1602 的显示程序同样按照其读写时 序图完成,不同的是,1602 的显示,需要在主程序的开始写一个初始化函数用 以设定 1602 的显示方式,光标等等,在本次设计中,只涉及到 1602 的写程序, 写数据时,同样需要先写入地址,写地址时,先将 rs,en 置低,延迟后再将 en 拉高,赋予地址,最后将 en 拉低,写数据与读不同之处在于要将 rs 拉高 其余同写地址时一样。 13 智能化测控应用系统设计报告 4.24.2 设计软件介绍设计软件介绍 本次设计采用 keiluvision2 作为编程工具,用 proteus 进行实物制作前的 仿真,keil 作为现在主流的单片机编程工作具有操作简单,快捷的优点,同时 可以与 proteus 联动方便调节和仿真,另用 stc-isp-15xx 将程序下载至单片机 上运行。下面对涉及到的软件作进一步的介绍。 4.2.14.2.1 proteus 软件介绍软件介绍 proteus 软件是来自英国 labcenter electronics 公司的 eda 工具软件。 proteus 软件有十多年的历史,在全球广泛使用,除了其具有和其它 eda 工具 一样的原理布图、pcb 自动或人工布线及电路仿真的功能外,其革命性的功能 是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图 的虚拟原型上编程,并实现软件源代码的实时调试,如有显示及输出,还能看 到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等。 proteus 组合了高级原理布图、混合模式 spice 仿真,pcb 设计以及自动布 线来实现一个完整的电子设计系统。 4.2.24.2.2 keilkeil 80518051 开发工具开发工具 keil c51 是美国 keil software 公司出品的 51 系列兼容单片机 c 语言软 件开发系统,与汇编相比,c 语言在功能上、结构性、可读性、可维护性上有 明显的优势,因而易学易用。用过汇编语言后再使用 c 来开发,体会更加深刻。 keil c51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体 会到 keil c51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑, 容易理解。在开发大型软件时更能体现高级语言的优势。 4.34.3 软件结构图软件结构图 软件设计的主要功能是完成分时计费,程序流程图如图 4.1 所示: 14 智能化测控应用系统设计报告 结束 开始 报警 程序初始化 是 读取 ad7755 读取完成? 否 计算余额 余额是否 为 0? 否 检测标志位 键盘扫描 lcd 显示 检测中断? 是 否 是 图 4.1 主程序流程图 4.3.14.3.1 电压电流采集子程序电压电流采集子程序 电压电流采集子程序主要实现对电压电流信号的同步采样,其程序流程图 如图 4.2 所示: 15 智能化测控应用系统设计报告 打开电源 程序初始化 检测信号 传输给 ad 转换端 口 关闭电源 否 是 图 4.2 电压电流子程序图 4.3.24.3.2 ad 转换子程序转换子程序 ad 转换子程序主要是实现将采集的电压电流信号进行 ad 转换, 得到单片 机能处理的数据,并计算出直流功率大小,然后锁存功率,电流,电压数据, 以供显示。其程序流程图如图 4.3 所示: 打开 ad 电源 初始化 ad 转换 停止转换保存 转换是否完成 否 是 是 图 4.3 ad 转换子程序图 16 智能化测控应用系统设计报告 5 5 系统调试系统调试 随着各种智能电表的应用与普及,这一技术在科学研究,生产过程等领域 中发挥着越来越重要的作用。在科技社会的今天,人们对电表的计精度、稳定 性以及综合利用等要求愈来愈高。因此,对电路的精确调试是必不可少的一步, 为保证设计的质量,我们小组对本次设计中的软硬件进行了分块调试。 5.15.1 单片机及单片机及 lcd1602lcd1602 显示部分显示部分 在按照原理图将单片机的最小系统焊接完成后,我们用 stc-isp 软件对其 进行下载程序的调试,如图 5.1 所示: 图 5.1 程序烧写 lcd1602 显示部分,在 proteus 软件中进行了仿真,运行结果如图 5.2 所 示,在确认仿真可行后,我们调用单独的显示程序,能正常显示。 图 5.2 1602 仿真图 5.25.2 万用板电路部分调试万用板电路部分调试 由于焊接的问题,首先需要检测电路是否导通,连接是否通畅。万用板电 路主要分成三块:电流互感器 ta32b-m、电压互感器 tv31 作为信号转换,将 220v 转换为电能处理芯片需要的信号,时钟芯片 ds1302 进行计时,电能处理 17 智能化测控应用系统设计报告 芯片 ad7755 对转换后的电流电压信号进行处理,计算出负载消耗的有功、无 功、视在功率,并将所得信号进行存储。 调试过程中,首先应对电流、电压互感器的输出端信号进行检测,包括信 号的大小(是否符合 ad7755 所需信号) 、波形是否符合要求,另外则应注意检 查电流电压互感器与 ad7755 的连接是否正确。在确定电流、电压互感器能正 常工作后,就要开始调试芯片 ad7755,首先,应用万用表对各个引脚进行测 试。其次,应该注意检查连线过程中的接触问题,开始时没有注意,结果发生 了干扰,对于这一问题,就是将各个引脚的连线接牢。对于时钟芯片 ds1302, 这款芯片的管脚需要特别加以注意,认真阅读芯片资料,否则容易将控制信号 线和数据线的位置连接错误,硬件电路的调试主要使用万用表、示波器完成, 主要需要注意防止短路,保证各元件在正常上电时的安全。 在本次设计中,硬件部分的调试比较顺利,软件部分就相对较难。分时计 费功能在软件部分的程序中实现较为容易,主要是分清各个时间段的收费标准, 在按键的设计上,采用了复用的思想,在程序中运用了矩阵键盘扫描,但按键 数量有点多,对于程序编写感到十分困难。在软件的调试过程中,出现了一些 问题,由于程序较长,有好几个全局变量比较混乱,我们对于程序的理解和把 握还不是很熟悉。以后还需要多加练习。 6 6 系统功能、指标参数系统功能、指标参数 由于时间、条件和我们自身知识上的限制,我们设计的智能电表只是简略 的实现其功能,在实物的构架中,利用一块单片机开发板,并自己利用万用板 18 智能化测控应用系统设计报告 搭建了其他的外围电路,因此该硬件总共分为三大部分:电源部分,采集部分, 核心处理部分。 6.16.1 系统能实现的功能系统能实现的功能 本系统实现的功能是分时段计费。主要实现以下功能: (1)用户在 220v 电压下所用功率的计算。 (2)显示用户各时段所耗功率。 (3)具有应用 led 实时显示各时段费用及总费用功能。 6.26.2 系统指标参数分析系统指标参数分析 电源部分使用 220v 交流电,通过变压器变压为 9v 之后,利用一块 l7805 稳压芯片,很好的得到了一个较为稳定,且接近 5v 的电压,误差在+0.02v 左 右,可以利用其很好为单片机与核心芯片进行供电,但在此次设计中由于经费、 时间有限,并未采用原定供电方案,而是直接采用了 usb 接口供电。采集电路 部分,也是自己利用万用板搭建,运用电压互感器,电流互感器为核心,进行 变压采样,变压后的电压理想值为 0.5v,由于实际环境等影响,其电压真实值 为 0.57v,但不会对功率计算造成太大的影响,电压电流信号进 ad7755 之后, 即可由单片机进行读取,获得有功功率,用于计算电价,在制作过程中,可以 测量电脑的负载功率,可以用 15w 的灯泡作为用户的负载。 7 7 结论结论 本次系统以单片机为控制核心,实现了电路电压电流的采样,并最终分时 计费。lcd 能随着按键控制显示被测功率,并能通过按键切换显示各时段的功 率、费用。 本系统设计可推广到各种电子测量系统中,实现直流电路各参数的测量。 19 智能化测控应用系统设计报告 在生产生活中,本系统简单明了为生活带来便利;在工业生产中,可以加以各 种适当变化,进行电路参数的自动测量,如对电路负载的直流电压、电流和功 率自动测量显示。进而可以随时的观察到电路的变化,进行电路的检测,维护。 如在电路系统中可以根据不同的负荷得到不同的电压信号,再由电压信号得到 各种参数了解电路负荷的变化,以便实时检测。实现系统的自动化调度。综上 所述,该系统的设计和研究具在社会生产和生活中具有重要地位。 本系统设计实现了电路的直流输入功率的测量,并能通过键盘切换控制负 载电压和被测电流。当被测电压高于 25v 或电流高于 2a 时,数码管将闪烁,作 为超过量程的报警功能。但是由于以前做的实践性工作不是很多,设计的器件 不够精确和环境不够专业,该系统设计并不能实现精确的功率测量,但是由于 时间的限制,以没有在进一步的改进,这和工业生产生活中的要求还有差距。 该系统的进一步研究应该从提高采样精度和系统工作电压的稳定性出发,取得 更精确的测量结果。 8 8 总结与体会总结与体会 此次课程设计作品是基于单片机的分时计费智能电表的设计,通过对电路 负载电压和电流的采样,对采样进行 ad 转换,再根据功率计算公式,由uip 单片机计算并控制 lcd 动态显示。 总的来说,这次设计给我带来了很大的感触。智能化测控应用系统设计, 20 智能化测控应用系统设计报告 是以学生自己动手,掌握一定操作技能并亲手设计、制作、组装与调试为特色 的。它将基本技能训练,基本工艺知识和创新启蒙有机结合,培养我们的实践 能力和创新精神, 。作为信息时代的大学生,作为国家重点培育的高技能人才, 仅会操作鼠标是不够的,基本的动手能力是一切工作和创造的基础和必要条件。 通过三个星期的学习,使我们对智能化测控应用系统的理论有了初步的了 解。我们了解到了焊普通元件与电路元件的技巧、工艺流程、功率计的工作原 理与组成元件的作用等。这些知识不仅在课堂上有效,对以后的电子工艺课的 学习有很大的指导意义,在日常生活中更是有着现实意义;也对自己的动手能 力是个很大的锻炼。实践出真知,纵观古今,所有发明创造无一不是在实践中 得到检验的。没有足够的动手能力,就奢谈在未来的科研尤其是实验研究中有 所成就。在实习中,我锻炼了自己动手技巧,提高了自己解决问题的能力。比 如做功率计组装与调试时,好几个焊盘的间距特别小,稍不留神,就焊在一起 了,但是我还是基本上完成了任务。我觉得自己在这次设计中有很大的收获: 1、我对单片机有了进一步的了解,对其各个引脚的功能、作用也有了了解, 这是之前上单片机课程时不曾记住的东西。 。 2、对自己的动手能力是个很大的锻炼。在实习中,我锻炼了自己动手技巧, 提高了自己解决问题的能力。使自己的动手能力也有所提高,我想在以后的理 论学习中我就能够明白自己的学习方向,增进专业知识的强化。 3、通过此次设计我又了解了几种平时在书本上未成学到的芯片,并对其功 能、参数等有了了解,这对以后的工作中有一定的帮助。 4、在程序的编写上也有了进一步的了解,在之前我是完全不懂程序的编写, 对于程序总是感到头疼,但经过这次设计,对编程也产生了兴趣,虽然现在还 不能随性所欲的编写各个程序,但我相信在以后的学习工作中能掌握这一技术。 9 9 谢辞谢辞 本次设计是在老师和两位学长的悉心指导和严格要求下完成的,从课程设 计选题到具体的写作过程,论文初稿与定稿无不凝聚着老师和两位学长的心血 和汗水,在我的课程设计期间,通过定时的见面,老师和两位学长对我们进行 了悉心的指导,对我设计中存在的问题和不足进行了批评和指正,不厌弃烦的 21 智能化测控应用系统设计报告 进行讲解,让我受益匪浅,同时,老师和两位学长为我提供了种种专业知识上 的指导和一些富于创造性的建议,老师和两位学长一丝不苟的作风,严谨求实 的态度使我深受感动,没有这样的帮助和关怀和熏陶,我不会这么顺利的完成 课程设计。在此向老师和两位学长表示深深的感谢和崇高的敬意! 同时,在课程设计写作过程中,我还参考了有关的书籍和论文,在这里一 并向有关的作者表示谢意。 最后,我还要感谢同组的各位同学以及我的各位室友,在课程设计的这段 时间里,你们给了我很多的启发,提出了很多宝贵的意见,对于你们帮助和支 持,在此我表示深深地感谢! 1010 参考文献参考文献 1 张毅刚.单片机原理及应用m.北京:高等教育出版社,2009.2. 2 张培仁.基于 c 语言编程 mcs-51 单片机原理与应用m. 北京:清华大学出版社, 2003. 3 龙忠琪、金燕、李如春.模拟集成电路教程.北京:科学出版社,2004. 4 求是科技.8051 系列单片机 c 程序设计完全手册.北京:人民邮电出版社,2006. 5 张广军.微机原理及接口技术m.成都:电子科技大学出版社,2007.7. 22 智能化测控应用系统设计报告 6 李泉,海保军.rs-232 收发器接口芯片sp3223e3243e 的原理及应用j.国外电子元 器件,2004(9):42-44. 7 王庆芬、秦 华、李文娟.基于单片的智能电表设计.期刊.石家庄铁道大学四方学院电 气工程系 河北石家庄 051132. 8 蓝振帮.智能电表程序.程序联合开发网.2008.5.14. 9 康华光.电子技术基础数字部分(第五版)m.北京.高等教育出版社.2006. 10 康华光.电子技术基础模拟部分(第五版)m.北京.高等教育出版社.2006. 附录附录 1 1 系统设计图(原理图、系统设计图(原理图、pcbpcb 版图、实物图)版图、实物图) 原理图:原理图: 23 智能化测控应用系统设计报告 pcbpcb 板图:板图: 实物图:实物图: 24 智能化测控应用系统设计报告 附录附录 2 2 元件清单:元件清单: 25 智能化测控应用系统设计报告 元件名 型号 参数 数量 单片机 at89c52 1 电能计量芯片 ad7755 1 lcd 显示屏 lcd1602 1 时钟芯片 ds1302 1 存储芯片 24c02 1 电压互感器 tv31b-02 1 电流互感器 ta32bm 1 电阻 10k 1 1k 7 200 2 电位器 w502 10k 1 瓷片电容 100nf 2 10nf 3 22pf 5 33nf 4 电解电容 10uf 3 按键 16 晶振 32.768k 1 11.0592m 1 3.58m 1 附录附录 3 3: 程序代码程序代码: : #include 26 智能化测控应用系统设计报告 #include“lcd1602.h“ #include“key.h“ #include“24c02.h“ #include“ds1302.h“ #define uchar unsigned char; #define uint unsigned int; uchar result; uchar code shuzu=0x01,0x02,0x03,0x04,0x05;/测试用数组 uchar data ds13027; void delay1(void)/大约 1ms 延时,对 24c02 每读 or 写操作都有个过程, 需要一个短延时 uint a=1000; while(a-); void init() tmod=0x01; th0 = 0x0fc; tl0 = 0x66; /以 1ms 作为基准,即每过 1ms 进入一次定时器中断 ea=1; et0=1; tr0=1; void main() unsigned int count = 0; uchar j,temp,addres=0x80; uchar i; write_page(shuzu,3,5); delay1();/等待一下 i = read_byte(7); init(); lcd_initial(); gotoxy(0,0); print(“the 1602lcd test“); gotoxy(0,1); print(“test by mb“); ds1302_reset(); while(1) 27 智能化测控应用系统设计报告 if(result=5) gotoxy(0,0); print(“keydown“); / printchar(i); gotoxy(1,1); for(j=0;j0;m-) for(n=110;n0;n-); 24c02 部分: #include #include “iic.h“ #include “24c02.h“ 30 智能化测控应用系统设计报告 /* function: void write_byte(uchar add,uchar dat) description:在 24c02 某一地址写一位数据 calls:iic_star(),iic_ack(),iicwr_byte(),iic_stop() input:add,dat output;无 return:无 others: */ void write_byte(uchar add,uchar dat) scl = 1; /初始化 iic 总线 sda = 1; iic_start(); iicwr_byte(0xa0); iic_ack(); iicwr_byte(add);/写地址上 iic_ack(); iicwr_byte(dat);/要写的数据 iic_ack(); iic_stop(); /* function: write_page(uchar *buff,uchar n,uchar add) description:在 24c02 某一地址开始,连续写一数组 calls:iic_star(),iic_ack(),iicwr_byte(),iic_stop() input:*buff(数组名),n(要写数组的个数),add(开始写的地址) output;无 return:无 others:采用指针进行数组的读操作 */ void write_page(uchar *buff,uchar n,uchar add) uint i; iic_start(); iicwr_byte(0xa0); iic_ack(); iicwr_byte(add); iic_ack(); for(i=0;i #include #include“ds1302.h“ #define uchar unsigned char #define uint unsigned int /初始时间 秒 分 时 日 月 星期 年 uchar start_time7=0x55,0x59,0x23,0x31,0x12,0x07,0x09; /24 小时制 /*发数据(1 字节)*/ void send_byte(uchar datesend) uchar i; for(i=0;i= 1; sclk = 1;/置位时钟总线,产生上升沿,数据被写入 /*接收数据(1 字节)*/ uchar receive_byte(void) uchar i,receive=0; for(i = 8;i 0;i -) sclk = 1; receive = 1; _nop_()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论