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

下载本文档

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

文档简介

1、智能化测控应用系统设计报告目目 录录1 1 前言前言.1 12 2 总体方案设计总体方案设计.2 22.1 方案比较.2 2.1.1 方案一.2 2.1.2 方案二.32.2 方案比较及选择.43 3 单元模块设计单元模块设计.5 53.1 各单元模块功能介绍及电路设计.5 3.1.1 电源模块电路.5 3.1.2 计量模块电路.5 3.1.3 时钟及 lcd 显示模块.6 3.1.4 信号采集电路.83.2 电路参数的计算元器件的选择.93.3 特殊器件介绍.9 3.3.1 ad7755 介绍.9 3.3.2 stc89c52 单片机介绍.10 3.3.3 ds1302 时钟芯片介绍.10

2、3.3.4 lcd1602 液晶显示屏介绍.114 4 软件设计软件设计.智能化测控应用系统设计报告.13134.1 软件设计原理及设计.134.2 设计软件介绍.14 4.2.1proteus 软件介绍.14 4.2.2 keil 8051 开发工具.144.3 软件结构图.14 4.3.1 电压电流采集子程序.15 4.3.2 ad 转换子程序.165 5 系统调试系统调试.1 17 75.1 单片机及 1602 显示部分.175.2 万用板电路部分调试.176 6 系统功能、指标参数系统功能、指标参数.1 19 96.1 系统能实现的功能.196.2 系统指标参数分析.197 7 结论结

3、论.2 20 08 8 总结与体会总结与体会.2 21 19 9 谢辞谢辞.2 22 21010 参考文献参考文献.2 23 3附录附录 1 1 系统设计图(系统设计图(原理图、原理图、pcbpcb、实物图、实物图).2424附录附录 2 2 元件清单元件清单.2 26 6附录附录 3 3 程程序序代码代码.2 27 7智能化测控应用系统设计报告0智能化测控应用系统设计报告1 1 前言前言随着我国经济的不断发展,各地对电能的需求也随之迅速增加,电力已经成为国家的最重要能源。因此我们需要尽可能的节约用电。但是,当前我国大多数地方对于用电的管理还比较落后,用电收费多年来一直采用先用电、后抄表、再付

4、费的传统方式。居民用电绝大多数实行“分表制” ,即若干集中居住的家庭使用一个总的电表,每户装一个分电表,作为居民交付电费的依据。加上现在很多电表不能分时计费,这样就进一步增加了电量的不合理消耗。所以,我们一致决定选择了基于单片机的分时计费智能电表设计。所谓智能电表,就是应用计算机技术,通讯技术等,形成以智能芯片(如cpu)为核心,具有电功率计量计时、计费、与上位机通讯、用电管理等功能的电度表。本新型智能电表主要实现分时智能计费。本次设计主要采用 ad7755 电能计量芯片和 stc89c52 单片机为核心,结合电流、电压采集,再通过信号滤波传给 ad7755,再经过 stc89c52 处理,最

5、终在键控的触发下,送到 lcd1602 显示。此电表能实现用户所用功率的计算,并根据国家规定的用电高峰和低谷设置阶梯电价计算,并显示出用户各时段所耗功率。不仅具有传统电表的功能,还能对用户的用电情况进行管理和控制,智能电表利用微机技术,通讯技术等等,减少了能量的消耗,把采集,处理集中于一体,节省成本和人力资源,提高了工作效率,适应了现代用户的需求。本设计的意义在于能够实现电表的分时段计费功能,这对我国在控制人们合理使用电量上具有深远的影响。1智能化测控应用系统设计报告2 2 总体方案设计总体方案设计本电表采用分时计费原则,将电压,电流等参数进行采集,并通过处理后输入微处理器 stc89c52,

6、进行运算,并最终实现对于电能的准确计量和控制显示。通过查阅大量相关技术资料,在老师的建议下,结合自己的实际知识,我们主要提出了两种技术方案来实现系统功能。下面将首先对这两种方案的组成框图和实现原理分别进行说明,并分析比较它们的特点,然后阐述最终选择方案的原因。2.12.1 方案比较方案比较智能电表的设计,是基于对用户电压电流信号进行采集,并通过微处理器进行核心运算,当电压电流信号通过采集以后,通过高精度的 ad 采样保持,最终输入微处理器,并通过用 c 语言编写的程序键控控制处理器单片机,并且要求通过功率和电费的计算,进行显示。对于电力参数的测试,例如电压,电流,有功功率,无功功率等,现在都有

7、成熟的测量计算方法,对于电压有效值的测量,可以利用积分电路来实现,也可以利用时间采样信号,将信号值平方,去均值以后,得到平方根,通过ad,进行采样,有功功率定义为,和为电压和电流的有效值,uicosp ui为功率因数。而对于非正弦波形的计算,只有通过积分运算来完成。cos2.1.12.1.1 方案一方案一在本设计方案中,核心器件为微处理器,这里我们选用是 stc89c52 单片机,当信号采样后通过 ad 转换,送入微处理器,进行数据的分析和计算,智能电表的实现必须对用户的功率进行准确的计算,在信号采集模块中,通过电压互感器和电流互感器,对用户的电压和电流信号进行采集,微处理器进行功率和电费的计

8、算,可通过 lcd 显示,并可以通过键盘对分时电价进行调整,实现显示的转换和调整,并运用单片机内部时钟设计计时系统,以实现分时的控制。但是此设计有诸多缺陷,首先,在信号采集方面,由于智能电表对于功率的计算,如果单纯的使用单片机,会造成功率计算不准确,如果要提高计算的精度,对于信号的 ad 转换就必须采用高精度期间,成本费用增加,其次即便使用了高精度的 ad,在功率计算,补偿方面的程序也相对繁琐,再则,由于使用分时计费系统,只用单片机内部时钟信号进行粗略的计时,产生的时间误差比较大,长时间的使用下会导致计时不准确,而使得电费的计算出现误差。2智能化测控应用系统设计报告软件系统方面,其核心是编写功

9、率计算程序和 ad 采样程序,并通过键盘扫描实现显示的切换。方案一如图 2.1 所示信号采集信号滤波ad7755 转换微处理器lcd 显示 键盘控制图 2.1 2.1.22.1.2 方案二方案二本方案的设计思路与方案一大致相同,选用 stc89c52 单片机,作为微处理器,通过电压传感器,电流传感器实现对用户的电压电流采集,并在单片机中进行电价的计算,与方案一的不同之处在于,方案二中功率计算部分和 ad转换采集部分被一块电能计量芯片 ad7755 进行代替,该芯片是以一款高准确度的三相电能采集芯片,适用于计量各种三相,单项配置条件下的有功,无功,视在电能,可省去高精度 ad 的费用的同时,也可

10、以减少单片机内部处理功率的步骤,转由 ad7755 完成。同时,由于该智能电表采用分时计费系统,方案二中采用一块时钟芯片以提高对于时间的计时准确程度,以确保该电表可以准确计费,同时,由于时钟芯片本身集成有微型电池,可以在断电的情况下继续运行,保证了在智能电表断电的同时,计时系统不至于停止工作。在本方案中,由ad7755进行功率的计算并进行校准,在该芯片中,通过有功增益寄存器写入数据,可对输出产生的平均功率进行改变,该芯片中在每个相位集成了一个有功偏移寄存器,该寄存器为12位寄存器,用以对有功功率进行校准,由于实际电路的工作环境的复杂和多变,以及芯片本身制造工艺和各通道之间进行的干扰,都会造成误

11、差的产生,有功功率寄存器的一个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 转换微处理器键盘输入信号

12、滤波lcd 显示 时钟芯片图 2.2 另外ad7755的各相拥有一个空载阀值,如果有功功率的测量值低于满刻度的0.005%,则该值不会被累加,有效的避免了电表的浅动。ad7755通过41个电能寄存器连续累加有功功率以实现对信号的积分作用,这种离散的累加作用就相当于连续时间的积分作用,平均有功功率的计算时,是有符号运算的,负电能将会在有功功率寄存器中被扣除。当有功功率为正,且达到最大值时,有功功率的数值将反转到达满刻度的负值0x800,并继续增加,当有功功率为负值,且持续减小到达最小时,会自动转为正的对大刻度0x7fff,并继续降低。2.22.2 方案比较及选择方案比较及选择虽然两种方案都能实现

13、本次设计。但是在软件系统上,方案二与方案一的区别重点在对于 ad7755 和 ds1302 两块芯片的程序的书写,在硬件的搭建上降低了难度,但是在程序书写上难度有所增加。而且方案二增加了时钟芯片,这样增加了 stc89c52 的精确度和灵敏度,增强了系统的实时性,时效性。通过对以上两种方案的具体描述,对他们各自的优缺点有了一定的了解。考虑到控制精度,操作习惯和美观以及成本等因素,要完成对于电费的准确计算,并综合本次课程设计成本进行考虑,最终选择了方案二为本次设计的最终设计方案。4智能化测控应用系统设计报告3 3 单元模块设计单元模块设计本系统主要包括以下部分:电源模块电路、信号采集电路、计量模

14、块电路、时钟及 lcd 显示模块电路。辅助元件有电阻、电容、晶振、电源、按键等。先对各模块分别作具体介绍:3.13.1 各单元模块功能介绍及电路设计各单元模块功能介绍及电路设计3.1.13.1.1 电源模块电路电源模块电路电源模块电路从电网 220v 电压作为输入,通过该电路后,输出端输出大小为 5v 的电压,作为单片机及其他芯片的 vcc 电源,具体的电路图如图 3.1 所示:t3trans11234d1b ridge1c 10100ufc 110.01ufvin1gnd2vout3u278l05c 120.01ufr 61kvcc12j3c on2图 3.1 电源模块接线图图 3.1 为电

15、压模块的电路图,该模块以电网 220 交流电作为输入,通过整流桥整流后,再经过滤波,最后通过一块 78l05 稳压芯片进行稳压,得到一个稳定的 5v 电源,78l05 的输出电流可达到 100ma,无需外接元件,内部本身带有热过载保护,内部短路电流限制。通过 proteus 软件仿真可以看到,通过该电源模块可以很好的工作,并最终得到一个稳定的 5v 的电源。然后此 5v 的电压就可以供给 stc89c52 和时钟芯片 ds1302。 3.1.23.1.2 计量模块电路计量模块电路计量模块的核心是通过一块 ad7755 芯片来完成,通过信号采集电路,将变换后的电压电流信号输入到该芯片,ad775

16、5 是一款高准确度的三相电能计量芯片,带有两路脉冲输出功能和一个串行接口。ad7755 集成了二阶 -d 模数转换器, 数字积分器,基准电路,温度传感器,以及所有进行5智能化测控应用系统设计报告有功,无功和视在电能计量以及有效值计量所需的信号处理元件。图 3.2 计量模块电路接线图图 3.2 为芯片 ad7755 的具体接线图,ad7755 作为一款适用范围极广且功能强大的电能计量芯片在本次设计中担任了重要的角色,通过 cf 管脚直接与单片机连接,与单片机实现数据之间相互通信,从而实现功率的计算,其中 cf 管脚与单片机 p3.5 连接。3.1.33.1.3 时钟及时钟及 lcdlcd 显示模

17、块显示模块本次设计中,该电表要实现分时计费,既必须引入时钟系统,该时钟系统必须准确,且在电表短时间断电之内,不会停止工作,因此,该模块采用了一块时钟芯片 ds1302,该芯片为一款使用很广泛的时钟芯片,具体电路图如图 3.3 所示:图 3.3 ds1302 接线图图 3.3 为时钟芯片 ds1302 的连线图,其中 sclk 与单片机 p1.2 口连接,rst 与单片机 p1.3 口连接,io 与单片机 p1.2 口连接。通过该芯片可以提供比6智能化测控应用系统设计报告较精确的万年历。同时智能电表的显示模块选用 lcd 显示,下图为 lcd1602 显示电路:图 3.4 lcd1602 接线图

18、通过该 lcd 液晶显示器,显示我们需要的一些信息。上述两个模块通过与stc89c52 单片机进行连接,可以实现万年历的功能,且可以保证,在智能电表短时间断电的情况下,时钟不会停止运行,继而使智能电表的分时计费系统可以准确的运行,我们用 proteus 仿真,电路图如图 3.5 所示:图 3.5 lcd 显示电路仿真图图 3.5 为 lcd1602 显示模块,上图中可以通过按键对 lcd 显示进行调整,可以显示,分时电价,余额等信息。7智能化测控应用系统设计报告3.1.43.1.4 信号采集电路信号采集电路模块模块本次设计为智能电表,所以要对用户的电压和电流都进行采样,再通过 ad7755 芯

19、片来得到一个较为准确的功率值并输入单片机中,因此电压电流的采集电路如图 3.6 所示:图 3.6 信号采集电路图 3.6 为电流电压采集电路,在电流采集电路中,通过将电流互感器ta32bm 串联到用户电路中,以采集用户的电流信息,ta32bm 额定输入输出为 5a/2.5ma,通过电流互感器将大电流转换到 ad7755 可以接受的小电流范围内,然后通过滤波降低信号的干扰,最终输入芯片,在电压采集电路中,通过将电压互感器 tv31b-02 并联到用户的负载上,采集用户的电压信息,tv31b-02 是一款电流型电压互感器,额定电流是 2ma/2ma,所以要在电压互感器的缘边串联一个 51k 的电阻

20、以降低互感器原边电流值到可承受的范围,最后通过rc 电路滤波后,得到一个近似 0.5v 的电压以输入到 ad7755 芯片,和前面的电流值一起,计算出用户的功率。电压互感器相当于一个内阻很小的电压源,正常运行时它的负载阻抗会很大,相当于开路状态,二次侧只有很小的电流,当二次侧短路时,负载阻抗为零,将产生很大的短路电流,会将电压互感器烧坏。因此,电压互感器二次侧严禁短路。电流互感器在正常运行时,二次电流产生的磁通势对一次电流产生的磁通势起去磁作用,励磁电流很小,铁芯中的总磁通就很小,二次绕组的感应电动势不会超过几十伏。如果二次侧开路,二次电流的去磁作用消失,其一次电流完全变为励磁电流,会引起铁芯

21、内磁通剧增,铁芯处于高度饱和状态,加之二次绕组的匝数很多,就会在二次绕组两端产生很高(甚至可达数千伏)的电压,8智能化测控应用系统设计报告不但可能损坏二次绕组的绝缘,再者,由于磁感应强度剧增,使铁芯损耗增大,严重发热,甚至烧坏绝缘。3.23.2 电路参数的计算元器件的选择电路参数的计算元器件的选择因为我们要测量的范围是,负载电压不超过 25v,电流不超过 2a,而单片机能够接受的电压小于 5v,所以我们电压采样时,用和电阻分压的k47k1 . 5方式,这样就算电压得到 25v 时,我们所采的电压也只有 2.447v,单片机也能正常工作,电压采样后经过一个电压跟随器,降低输出阻抗,电流采样时,通

22、过电压间接采样,因为我们所串联的电阻很小,并联一个的电阻得到一个1 . 0小电压,然后再放大,得到送入单片机。3.33.3 特殊器件介绍特殊器件介绍3.3.13.3.1 ad7755 介绍介绍ad7755是一种高准确度电能测量集成电路,其技术指标超过了iec1036准确度的指标要求。ads只在adc和基准源中使用模拟电路,所有其它信号处理都是用数字电路。这使ad7755在恶劣的环境下然能保持极高的准确度和长期稳定性。ad7755内部包含一个对电源引脚的监控电路,内部相对匹配电路使电压和电流通道的相位始终是匹配的,无论通道1内的高通滤波器是接通的还是断开的。内部的空载伐值特性保证ad7755在空

23、载时没有潜动。ad7755有24脚dif和ssop两张封装。两个adc对来自电流和电压传感器的电压信号进行数字化,这两个adc 都是16二阶模拟转换器。过采样速率达900khz。ad7755的模拟输入结构具有宽动态范围,大大简化了传感器接口,也简化了传感器接口,电流通道中的hpf 滤掉电流信号中的直流分量,从而消除了由于电压或电流失调造成的有功功率计算上的误差。有功功率是从瞬时功率信号计算出来的,是用电流和电压信号直接相乘得到的。为了等到有功功率分量,只要对瞬时功率信号进行低通滤波就行。ad7755的管脚图如图3.7所示:9智能化测控应用系统设计报告图 3.7 ad7755 管脚图3.3.23

24、.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 公司推出的一种高性能

25、、低功耗的实时时钟芯片,附加 31 字节静态 ram,采用 spi 三线接口与 cpu 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和 ram 数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与 31 天时可以自动调整,且具有闰年补偿功能。工作电压宽达 2.55.5v。采用双电源供电(主电源和备用电源) ,可设置备用10智能化测控应用系统设计报告电源充电方式,提供了对后背电源进行涓细电流充电的能力。ds1302 的外部引脚分配如图 1 所示及内部结构如图 2 所示。ds1302 用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,

26、因此广泛应用于测量系统中。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位数据接口00001dcb

27、d=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智能化测控应

28、用系统设计报告4 4 软件设计软件设计 本设计中,以 stc89c52 作为微处理器,采用 c 语言进行编程,配合硬件电路,共同构成了本次设计的核心部分。4.14.1 软件设计原理及设计软件设计原理及设计本次设计采用 c 语言,c 语言具有简洁明了的特点,在本次设计中,按照各芯片的读写操作时序,以 spi 总线操作方式,分别对 ds1302 时钟芯片,ad7755 电能计量芯片进行读写操作,即可基本完成本次设计的主要功能。 ds1302 控制字节的最高有效位(位 7)必须是逻辑 1,如果它为 0,则不能把数据写入 ds1302 中,位 6 如果为 0,则表示存取日历时钟数据,为 1 表示存取r

29、am 数据;位 5 至 位 1 指示操作单元的地址;最低有效位(位 0)如为 0 表示要进行写操作,为 1 表示进行读操作,控制字节总是从最低位开始输出。在控制指令字输入后的下一个 sclk 时钟的上升沿时,数据被写入 ds1302,数据输入从低位即位 0 开始。同样,在紧跟 8 位的控制指令字后的下一个 sclk 脉冲的下降沿读出 ds1302 的数据,读出数据时从低位 0 位到高位 7。ds1302 有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 bcd 码形式。此外,ds1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发 寄存器及与 ram 相关的寄存器

30、等。时钟突发寄存器可一次性顺序读写(除充电寄存器外)所有寄存器内容。ds1302 与 ram 相关的寄存器分为两类:一类是单个 ram单元,共 31 个,每个单元组态为一个 8 位的字节,其命令控制字为c0hfdh,其中奇数为读操作,偶数为写操作;另一类为突发方式下的 ram寄存器,此方式下可一次性读写所有的 ram 的 31 个字节,命令控制字为feh(写)、ffh(读)。而 ad7755 本身就是一款处理器,不要编写代码,内部已经一体化了。本次设计的另一个重点就是显示程序,1602 的显示程序同样按照其读写时序图完成,不同的是,1602 的显示,需要在主程序的开始写一个初始化函数用以设定

31、1602 的显示方式,光标等等,在本次设计中,只涉及到 1602 的写程序,写数据时,同样需要先写入地址,写地址时,先将 rs,en 置低,延迟后再将en 拉高,赋予地址,最后将 en 拉低,写数据与读不同之处在于要将 rs 拉高其余同写地址时一样。13智能化测控应用系统设计报告4.24.2 设计软件介绍设计软件介绍本次设计采用 keiluvision2 作为编程工具,用 proteus 进行实物制作前的仿真,keil 作为现在主流的单片机编程工作具有操作简单,快捷的优点,同时可以与 proteus 联动方便调节和仿真,另用 stc-isp-15xx 将程序下载至单片机上运行。下面对涉及到的软

32、件作进一步的介绍。4.2.14.2.1 proteus 软件介绍软件介绍proteus 软件是来自英国 labcenter electronics 公司的 eda 工具软件。 proteus 软件有十多年的历史,在全球广泛使用,除了其具有和其它 eda 工具一样的原理布图、pcb 自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源代码的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等。 proteus 组合了高级原理布图、混合模式 spice 仿真

33、,pcb 设计以及自动布线来实现一个完整的电子设计系统。4.2.24.2.2 keilkeil 80518051 开发工具开发工具keil c51 是美国 keil software 公司出品的 51 系列兼容单片机 c 语言软件开发系统,与汇编相比,c 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用 c 来开发,体会更加深刻。keil c51 软件提供丰富的库函数和功能强大的集成开发调试工具,全windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 keil c51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,

34、容易理解。在开发大型软件时更能体现高级语言的优势。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

35、.3.2 ad 转换子程序转换子程序ad 转换子程序主要是实现将采集的电压电流信号进行 ad 转换, 得到单片机能处理的数据,并计算出直流功率大小,然后锁存功率,电流,电压数据,以供显示。其程序流程图如图 4.3 所示:打开 ad 电源初始化ad 转换停止转换保存转换是否完成否是 是图 4.3 ad 转换子程序图16智能化测控应用系统设计报告5 5 系统调试系统调试随着各种智能电表的应用与普及,这一技术在科学研究,生产过程等领域中发挥着越来越重要的作用。在科技社会的今天,人们对电表的计精度、稳定性以及综合利用等要求愈来愈高。因此,对电路的精确调试是必不可少的一步,为保证设计的质量,我们小组对本

36、次设计中的软硬件进行了分块调试。5.15.1 单片机及单片机及 lcd1602lcd1602 显示部分显示部分在按照原理图将单片机的最小系统焊接完成后,我们用 stc-isp 软件对其进行下载程序的调试,如图 5.1 所示: 图 5.1 程序烧写lcd1602 显示部分,在 proteus 软件中进行了仿真,运行结果如图 5.2 所示,在确认仿真可行后,我们调用单独的显示程序,能正常显示。图 5.2 1602 仿真图5.25.2 万用板电路部分调试万用板电路部分调试由于焊接的问题,首先需要检测电路是否导通,连接是否通畅。万用板电路主要分成三块:电流互感器 ta32b-m、电压互感器 tv31

37、作为信号转换,将220v 转换为电能处理芯片需要的信号,时钟芯片 ds1302 进行计时,电能处理17智能化测控应用系统设计报告芯片 ad7755 对转换后的电流电压信号进行处理,计算出负载消耗的有功、无功、视在功率,并将所得信号进行存储。调试过程中,首先应对电流、电压互感器的输出端信号进行检测,包括信号的大小(是否符合 ad7755 所需信号) 、波形是否符合要求,另外则应注意检查电流电压互感器与 ad7755 的连接是否正确。在确定电流、电压互感器能正常工作后,就要开始调试芯片 ad7755,首先,应用万用表对各个引脚进行测试。其次,应该注意检查连线过程中的接触问题,开始时没有注意,结果发

38、生了干扰,对于这一问题,就是将各个引脚的连线接牢。对于时钟芯片 ds1302,这款芯片的管脚需要特别加以注意,认真阅读芯片资料,否则容易将控制信号线和数据线的位置连接错误,硬件电路的调试主要使用万用表、示波器完成,主要需要注意防止短路,保证各元件在正常上电时的安全。在本次设计中,硬件部分的调试比较顺利,软件部分就相对较难。分时计费功能在软件部分的程序中实现较为容易,主要是分清各个时间段的收费标准,在按键的设计上,采用了复用的思想,在程序中运用了矩阵键盘扫描,但按键数量有点多,对于程序编写感到十分困难。在软件的调试过程中,出现了一些问题,由于程序较长,有好几个全局变量比较混乱,我们对于程序的理解

39、和把握还不是很熟悉。以后还需要多加练习。6 6 系统功能、指标参数系统功能、指标参数由于时间、条件和我们自身知识上的限制,我们设计的智能电表只是简略的实现其功能,在实物的构架中,利用一块单片机开发板,并自己利用万用板18智能化测控应用系统设计报告搭建了其他的外围电路,因此该硬件总共分为三大部分:电源部分,采集部分,核心处理部分。6.16.1 系统能实现的功能系统能实现的功能本系统实现的功能是分时段计费。主要实现以下功能:(1)用户在 220v 电压下所用功率的计算。(2)显示用户各时段所耗功率。(3)具有应用 led 实时显示各时段费用及总费用功能。6.26.2 系统指标参数分析系统指标参数分

40、析电源部分使用 220v 交流电,通过变压器变压为 9v 之后,利用一块 l7805稳压芯片,很好的得到了一个较为稳定,且接近 5v 的电压,误差在+0.02v 左右,可以利用其很好为单片机与核心芯片进行供电,但在此次设计中由于经费、时间有限,并未采用原定供电方案,而是直接采用了 usb 接口供电。采集电路部分,也是自己利用万用板搭建,运用电压互感器,电流互感器为核心,进行变压采样,变压后的电压理想值为 0.5v,由于实际环境等影响,其电压真实值为 0.57v,但不会对功率计算造成太大的影响,电压电流信号进 ad7755 之后,即可由单片机进行读取,获得有功功率,用于计算电价,在制作过程中,可

41、以测量电脑的负载功率,可以用 15w 的灯泡作为用户的负载。7 7 结论结论本次系统以单片机为控制核心,实现了电路电压电流的采样,并最终分时计费。lcd 能随着按键控制显示被测功率,并能通过按键切换显示各时段的功率、费用。本系统设计可推广到各种电子测量系统中,实现直流电路各参数的测量。19智能化测控应用系统设计报告在生产生活中,本系统简单明了为生活带来便利;在工业生产中,可以加以各种适当变化,进行电路参数的自动测量,如对电路负载的直流电压、电流和功率自动测量显示。进而可以随时的观察到电路的变化,进行电路的检测,维护。如在电路系统中可以根据不同的负荷得到不同的电压信号,再由电压信号得到各种参数了

42、解电路负荷的变化,以便实时检测。实现系统的自动化调度。综上所述,该系统的设计和研究具在社会生产和生活中具有重要地位。本系统设计实现了电路的直流输入功率的测量,并能通过键盘切换控制负载电压和被测电流。当被测电压高于 25v 或电流高于 2a 时,数码管将闪烁,作为超过量程的报警功能。但是由于以前做的实践性工作不是很多,设计的器件不够精确和环境不够专业,该系统设计并不能实现精确的功率测量,但是由于时间的限制,以没有在进一步的改进,这和工业生产生活中的要求还有差距。该系统的进一步研究应该从提高采样精度和系统工作电压的稳定性出发,取得更精确的测量结果。8 8 总结与体会总结与体会此次课程设计作品是基于

43、单片机的分时计费智能电表的设计,通过对电路负载电压和电流的采样,对采样进行 ad 转换,再根据功率计算公式,由uip 单片机计算并控制 lcd 动态显示。总的来说,这次设计给我带来了很大的感触。智能化测控应用系统设计,20智能化测控应用系统设计报告是以学生自己动手,掌握一定操作技能并亲手设计、制作、组装与调试为特色的。它将基本技能训练,基本工艺知识和创新启蒙有机结合,培养我们的实践能力和创新精神, 。作为信息时代的大学生,作为国家重点培育的高技能人才,仅会操作鼠标是不够的,基本的动手能力是一切工作和创造的基础和必要条件。通过三个星期的学习,使我们对智能化测控应用系统的理论有了初步的了解。我们了

44、解到了焊普通元件与电路元件的技巧、工艺流程、功率计的工作原理与组成元件的作用等。这些知识不仅在课堂上有效,对以后的电子工艺课的学习有很大的指导意义,在日常生活中更是有着现实意义;也对自己的动手能力是个很大的锻炼。实践出真知,纵观古今,所有发明创造无一不是在实践中得到检验的。没有足够的动手能力,就奢谈在未来的科研尤其是实验研究中有所成就。在实习中,我锻炼了自己动手技巧,提高了自己解决问题的能力。比如做功率计组装与调试时,好几个焊盘的间距特别小,稍不留神,就焊在一起了,但是我还是基本上完成了任务。我觉得自己在这次设计中有很大的收获:1、我对单片机有了进一步的了解,对其各个引脚的功能、作用也有了了解

45、,这是之前上单片机课程时不曾记住的东西。 。2、对自己的动手能力是个很大的锻炼。在实习中,我锻炼了自己动手技巧,提高了自己解决问题的能力。使自己的动手能力也有所提高,我想在以后的理论学习中我就能够明白自己的学习方向,增进专业知识的强化。 3、通过此次设计我又了解了几种平时在书本上未成学到的芯片,并对其功能、参数等有了了解,这对以后的工作中有一定的帮助。 4、在程序的编写上也有了进一步的了解,在之前我是完全不懂程序的编写,对于程序总是感到头疼,但经过这次设计,对编程也产生了兴趣,虽然现在还不能随性所欲的编写各个程序,但我相信在以后的学习工作中能掌握这一技术。9 9 谢辞谢辞本次设计是在老师和两位

46、学长的悉心指导和严格要求下完成的,从课程设计选题到具体的写作过程,论文初稿与定稿无不凝聚着老师和两位学长的心血和汗水,在我的课程设计期间,通过定时的见面,老师和两位学长对我们进行了悉心的指导,对我设计中存在的问题和不足进行了批评和指正,不厌弃烦的21智能化测控应用系统设计报告进行讲解,让我受益匪浅,同时,老师和两位学长为我提供了种种专业知识上的指导和一些富于创造性的建议,老师和两位学长一丝不苟的作风,严谨求实的态度使我深受感动,没有这样的帮助和关怀和熏陶,我不会这么顺利的完成课程设计。在此向老师和两位学长表示深深的感谢和崇高的敬意!同时,在课程设计写作过程中,我还参考了有关的书籍和论文,在这里

47、一并向有关的作者表示谢意。最后,我还要感谢同组的各位同学以及我的各位室友,在课程设计的这段时间里,你们给了我很多的启发,提出了很多宝贵的意见,对于你们帮助和支持,在此我表示深深地感谢!1010 参考文献参考文献1 张毅刚.单片机原理及应用m.北京:高等教育出版社,2009.2.2 张培仁.基于 c 语言编程 mcs-51 单片机原理与应用m. 北京:清华大学出版社,2003.3 龙忠琪、金燕、李如春.模拟集成电路教程.北京:科学出版社,2004.4 求是科技.8051 系列单片机 c 程序设计完全手册.北京:人民邮电出版社,2006.5 张广军.微机原理及接口技术m.成都:电子科技大学出版社,

48、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 版图、实物图)

49、版图、实物图)原理图:原理图: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

50、 按键 16 晶振 32.768k 1 11.0592m 1 3.58m 1附录附录 3 3:程序代码程序代码: :#include26智能化测控应用系统设计报告#includelcd1602.h#includekey.h#include24c02.h#includeds1302.h#define uchar unsigned char;#define uint unsigned int;uchar result;uchar code shuzu=0 x01,0 x02,0 x03,0 x04,0 x05;/测试用数组uchar data ds13027;void delay1(void)/大

51、约 1ms 延时,对 24c02 每读 or 写操作都有个过程,需要一个短延时uint a=1000;while(a-);void init()tmod=0 x01;th0 = 0 x0fc;tl0 = 0 x66; /以 1ms 作为基准,即每过 1ms 进入一次定时器中断ea=1;et0=1;tr0=1; void main()unsigned int count = 0;uchar j,temp,addres=0 x80;uchar i;write_page(shuzu,3,5);delay1();/等待一下i = read_byte(7);init();lcd_initial();go

52、toxy(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;j8;j+)ds1302j = read_data(addres);addres +=2;printchar(ds1302j/16);printchar(ds1302j%16);addres=0 x80;void timer0() interrup

53、t 1static num=0;th0 = 0 x0fc;tl0 = 0 x66; /以 1ms 作为基准,即每过 1ms 进入一次定时器中断num+;if(10=num)num=0;result=keyboardscan();lcd1602 显示部分:#include reg52.h#include lcd1602.h#include string.hvoid lcd_check_busy(void) /检测 lcd 状态,看它是不是还在忙呢 while(1) lcd_en=0; lcd_rs=0; lcd_rw=1; lcd_data=0 xff; lcd_en=1; if(!lcd_bu

54、sy)break;28智能化测控应用系统设计报告 lcd_en=0;void lcd_cls(void) /lcd 清屏 lcd_check_busy(); lcd_rs=0; lcd_rw=0; lcd_data=1; lcd_en=1; lcd_en=0;void lcd_write_instruction(unsigned char lcd_instruction) /写指令到 lcd lcd_check_busy(); lcd_rs=0; lcd_rw=0; lcd_data=lcd_instruction; lcd_en=1; lcd_en=0; void lcd_write_dat

55、a(unsigned char lcd_data) /输出一个字节数据到lcdlcd_check_busy(); lcd_rs=1; lcd_rw=0; lcd_data=lcd_data; lcd_en=1; lcd_en=0; void lcminit(void) /初始化 lcd lcd_write_instruction(0x38); / 显示模式 lcd_write_instruction(0x0e); / 开显示,显示光标 0x0b:关闭显示(不显示字符,只有背光亮) / 0 x0c:开显示,光标闪烁都关闭 /0x0d:开显示,不显示光标,但光标闪烁 /0x0e:开显示,显示光标,

56、但光标不闪烁29智能化测控应用系统设计报告 /0x0f:开显示,光标闪烁都显示 lcd_write_instruction(0x06); /指针加 1 lcd_cls();void displayonechar(unsigned char x, unsigned char y, unsigned char ddata)y &= 0 x1;x &= 0 xf; /限制 x 不能大于 15,y 不能大于 1if (y) x |= 0 x40; /当要显示第二行时地址码 0 x40;x |= 0 x80; / 算出指令码lcd_write_instruction(x); /这里不检测

57、忙信号,发送地址码lcd_write_data(ddata);void display_string(unsigned char x, unsigned char y, unsigned char *str)unsigned char num;y &= 0 x1;x &= 0 xf; /限制 x 不能大于 15,y 不能大于 1if (y) x |= 0 x40; /当要显示第二行时地址码 0 x40;x |= 0 x80; / 算出指令码lcd_write_instruction(x); /这里不检测忙信号,发送地址码num=strlen(str)+x;while(x0;m-

58、) for(n=110;n0;n-);24c02 部分:#include #include iic.h#include 24c02.h30智能化测控应用系统设计报告/*function: void write_byte(uchar add,uchar dat)description:在 24c02 某一地址写一位数据calls:iic_star(),iic_ack(),iicwr_byte(),iic_stop()input:add,datoutput;无return:无others:*/void write_byte(uchar add,uchar dat)scl = 1; /初始化 iic

59、 总线sda = 1;iic_start();iicwr_byte(0 xa0);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(开始写的地址)

60、output;无return:无others:采用指针进行数组的读操作*/void write_page(uchar *buff,uchar n,uchar add)uint i; iic_start();iicwr_byte(0 xa0);iic_ack();iicwr_byte(add);iic_ack();for(i=0;in;i+)iicwr_byte(buffi);/要写的数据31智能化测控应用系统设计报告iic_ack(); iic_stop(); /*function: uchar read_byte(uchar add)description:从 24c02 中任一地址读取一位数据(随机读)calls:ii

温馨提示

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

评论

0/150

提交评论