版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上摘 要随着电网的信息化改造,传统人工抄表方式已经不能满足现在的抄表需求。居民用电远程抄表作为一种智能抄表方式,将逐渐替代原有的人工抄表。远程抄表系统包括智能电能表设计和RS485通信方式设计。智能电表利用AT89S52单片机作为微控制器,并且加入电量采集模块、RS485通信模块、LCD显示模块、数据存储模块以及时钟模块。单片机利用I/O口模拟IIC总线,实现与存储模块的通信。运用单片机的串行口与上位机进行数据传输。RS485通信设计主要包括通信线路的架构和抗干扰保护设计,保证通信渠道稳定畅通。设计出的居民用电远程抄表系统,能够分别累计不同时间段的总用电量。当断电时,数
2、据可以存储到片外数据存储器中。可以将数据实时传送至上位机。远程抄表系统实现了抄表过程的智能化,简化了抄表流程,提高了抄表精度,减少了人力资源的浪费。关键字:AT89S52;远程抄表;RS485通信ABSTRACTWith the information technology of the grid, the traditional manual meter reading has been unable to meet the current meter reading needs. Residential electricity meter as an intelligent remote
3、meter reading, will gradually replace the existing manual meter reading.Remote meter reading system includes a smart meter design and RS485 communication design. Smart meters use AT89S52 microcontroller as the microcontroller, and added power collection module, RS485 communication module, LCD displa
4、y module, data storage module and a clock module. Use microcontroller I/O port simulation IIC bus to communicate with the memory module. Use SCM serial interface with the host computer for data transfer. RS485 communication architecture and design includes anti-jamming protection design communicatio
5、n lines, to ensure stable channels of communication open.Design of residential electricity remote meter reading system, capable of respectively the cumulative total electricity consumption in different periods. When a power failure, data can be stored off-chip data memory. Data can be transmitted in
6、 real time first bit machine.Remote meter reading system to achieve intelligent meter reading process, simplifying the process of meter reading, meter reading to improve the accuracy and reduce the waste of human resources.Key words:AT89S52;remote meter reading;RS485 communication目录 专心-专注-专业1 绪论1.1
7、课题背景与意义抄表工作是供电系统中重要的一环,传统抄表是抄表员到各家各户抄写电表上的数据,再将数据送至供电局统计,用电量由人工输入到电脑中。人工抄表方式不仅繁琐,还可能出现误读,给居民和供电公司带来损失。而且受天气交通情况的限制,一些比较偏远地区的抄表工作很难进行,抄表人员外出进行抄表作业时可能会发生意外。现如今,居民用电实行的一户一表政策,抄表工作量大大增加。随着劳动力成本不断上升,供电公司在抄表工作中的投入也越来越大。传统的感应式电能表采用机械结构,只能单一显示总电量,限制了电网的信息化改造。随着电子技术的发展,利用单片机设计的智能电表不仅可以实现传统感应式电表的功能,还可以加入不同的模块
8、,使电能表的功能更加丰富。特别是增加了通信模块,实现了智能电表与上位机的通信,使远程抄表成为可能。如今,国家推行的分时计费方式,只能依靠智能电表作为下位机,传统电表都会被淘汰。这就为智能电表带来了巨大的市场。可预见的将来,以智能电表为下位机的居民用电远程抄表系统将会得到普及。居民用电远程抄表系统作为一种智能系统,既能改善人们的生活质量,又节约了大量的人力资源,有着广阔的升级潜力。未来可以将电能表、水表、燃气表集合到一个系统中,节约系统的成本。1.2 设计的主要工作居民用电系统设计包含下位机软硬件设计和通讯方式设计。智能电表作为系统的下位机。第一,智能电表要实现计量电能的功能,可以利用专用的电能
9、测量芯片;第二,为了让用户知道自己的用电量,智能电表应该显示出总电量等信息;第三,分时计费必须读取当前时间,智能电表要加入时钟模块;第四,因为居民用电会遇到停电的情况,智能电表要具有掉电保护功能;最后,为了实现远程抄表,智能电表应设有通讯接口,实现与上位机通信。通信方式设计包括通信方式选择和通信渠道设计。选择合适的通信方式,在满足远程通信对信号质量的要求基础上,最大程度地简化设计,降低成本。通信渠道应具备抗干扰能力,使信息传输畅通。1.3 本文各章主要安排本次毕业设计说明书分为六个章节:第1章 为绪论,介绍了设计的意义、发展趋势以及设计要求;第2章 为方案的选择,介绍了通信方式的选择,包括电力
10、线载波、GPRS通信、红外线通信和RS485通信的比较与选择;第3章 为硬件电路的设计,包括微处理器AT89S52、电能计量芯片ADE7755、时钟芯片DS1302、LCD1602、EEPROM AT24C04、RS485收发芯片MAX485的硬件电路设计,还介绍了RS485通信渠道的设计;第4章 为软件系统的设计,包括主程序设计与各个模块的子程序设计;第5章 为仿真调试,利用Keil与Proteus软件进行仿真,验证了系统功能的实现。2 方案选择2.1 设计要求居民用电远程抄表系统包括了下位机软硬设计:电能表包含电能采集模块,实现对电能参数的采集;利用RS485总线将智能电表采集的电能参数信
11、息实时上传;累计电量本地存储。设计智能电表作为抄表系统的下位机部分。智能电表要求额定电流为5(20)A;仪表常数3200imp/kWh;用电量、时间日期等信息通过LCD循环显示;电表能在停电时,把当前数据保存到片外EEPROM中;能够实现与上位机的远程通信。在居民用电远程抄表系统中,智能电能表技术已经发展成熟。现在的发展方向主要是远程通信方式的选择。主流的通信方式有电力线载波通信、无线GPRS通信、无线电台、MODEN拨号等。这些通信方式各有利弊,最经济的方式是电力线载波通信,但是对电力系统要求较高。采用的GPRS通信的成本又太高。供电系统的特殊性决定了远程抄表系统的通信方式要经济、稳定、安全
12、、覆盖面广,所以将来满足这些条件的通信方式将成为远程抄表系统的首选。2.2 通信方式选择2.2.1 电力线载波远程抄表系统电力线载波通信通过电力线将电能表中的数据传输至变压器的集中器,再由集中器将数据传输至上位机。电力线载波直接利用电力系统的供电网作为通信渠道,不用铺设专用的通信电缆。即降低了系统的安装成本,又减少了后期的维护成本与难度。当要增加一户电表时,不用另外铺设通信线。但是电力线载波通信也有一些弊端:由于配电变压器对信号有阻隔作用,电力载波信号只能在一个配电变压器区域范围内传送,所以要在每个配电变压器中设置集中器对信号进行收集;电力线载波通信相间信号损失比较大,所以一般采用单相电力线传
13、输;电力线载波通信对电网的供电质量要求比较高,电力线会对载波信号产生干扰,电网负荷的变化也会限制信号传输距离。考虑到设计要求,放弃选择此方案。2.2.2 基于GPRS远程抄表系统GPRS电力远程抄表系统是利用电信运营商的GPRS网络进行信息的传输。下位机是居民电表数据采集点,上位机是位于供电所的服务器。由于实行“一户一表”制度,每一个智能电表通过加装SIM卡模块,实现与上位机通信。对于用电比较密集的居民区,采用下位机通过RS485连接到采集器,再由采集器将数据发送上位机,实现数据的实时上传。这种方案避免了个别电表安装位置信号差,而导致传输不畅,也减少了SIM卡的需求量,降低了成本。现在,基于G
14、PRS的电力远程抄表系统已经在一些地区投入使用,技术已经相当成熟。虽然采用GPRS通信短期投入比较低,但是长期运行成本还是偏高。GPRS通信模块的价格偏高,通信协议比较复杂,初学者很难掌握,所以放弃此方案。2.2.3 红外线通信方式红外线通信是利用红外线进行信息的传递。由其物理特性决定了红外线通信保密性强、抗干扰性强;通信模块体积小、重量轻、结构简单、价格低廉,一般只需要一个红外线发送管和一个红外线接收器加上调制解调电路就可以实现通信功能;利用红外线的传播进行数据传送,不用铺设通信线路。但是受红外线传播特性的限制,红外线通信只能在短距离进行通信,一般超过十米,通信信号就会不稳定。很明显红外线通
15、信不能进行远距离通信。但是红外线通信在近距离通信中优势明显。所以在现在的智能电表中都加入了红外通信模块,与手抄器配合以便在远程抄表出现故障时进行现场抄表之用。2.2.4 RS485通信远程抄表系统RS485通信方式使用专用的带屏蔽层的双绞线连接上位机与下位机。RS485通信速率采用9600bps,最长传输距离可达1200米。一般电表到上位机的距离都较远,所以在远距离通信中,采用增加中继的方式来对信号进行放大,在设计中可以将中继模块集合到采集器中。在实际应用中,也可以采用光纤为通信渠道,在收发两端各加一个,将电信号转化成光信号进行传输,再转化成电信号。另外,一条RS485总线上最多允许连接128
16、个收发器,这样可以满足在小范围内电表组网的要求。采取RS485通信模式需要铺设专用的通信线,所以前期投入的资金较多,通信线路的维护比较麻烦。距离越远,建设成本与维护成本也越高。在居民小区中,电表分布密集,电表间距离不会太远。采用RS485通信的成本大大降低,而且信号传输更稳定,安全性也更高,通信协议较简单。所以采用RS485作为远程抄表系统的通信方式。2.3 系统框图一般电表与集中器之间采用RS485组网,集中器与上位机采取RS485通信。这种方案选取RS485作为系统的通信方式。不仅得到了稳定的传输渠道,而且设计更加简单。图 1 系统框图系统的总体框图如图1所示,测量模块将测得的电能信号转化
17、成数字脉冲信号,信号传送至单片机进行计算存储。数据通过RS485传输至采集器,再由集中器将数据传送至上位机。测量模块得到电能参数,时钟模块为电表提供时间参数,显示模块显示电量信息,存储模块存储电量数据。3 硬件电路设计3.1 主电路设计智能电表采用AT89S52单片机作为微控制器。电量采集模块选用ADE7755,将瞬时功率模拟信号转化成数字脉冲信号;时钟模块选用DS1302,为电表提供精确的时间;显示模块选用LCD1602,循环显示分时电量和时间日期;存储模块选用AT24C04,系统掉电后存储数据;RS485通信模块选用MAX485作为收发器,与上位机进行通信;掉电保护电路。主电路图见附录A。
18、3.2 MCU控制模块智能电表选用AT89S52控制。AT89S52是一种低能耗、高性能CMOS8位微控制器。采用8K字节可编程Flash程序存储器,可以擦写1000万次,满足设计调试时反复烧写程序的要求;256字节的数据存储器分为片内RAM与片外RAM。片内RAM共128个字节,又分为工作寄存器区、位寻址区和通用RAM;32个可编程I/O口线,分别为P0、P1、P2、P3口 ,每个口线为8位;三个16位定时器/计数器 ;八个中断源 ;全双工UART串行通道; 低功耗空闲和掉电模式 ,掉电后中断可唤醒 ;看门狗定时器 ;双数据指针 。AT89S52引脚图如图2所示:图 2 AT89S52引脚图
19、AT89S52的P3口定义了第二功能,具体功能见表1:表1 P3.0口第二功能口线第二功能信号说明 P3.0RXD串行数据接收P3.1TXD串行数据发送P3.2INT0外部中断0申请P3.3INT1外部中断1申请P3.4T0定时器/计数器0计数输入P3.5T1定时器/计数器1计数输入P3.6外部RAM写选通P3.7外部RAM读选通AT89S52模块包括电源电路、晶振电路、下载电路、复位电路和备用电源电路。电源采用5V直流稳压电源,电源使用连接到V-G端,为单片机提供电源。使用一个开关控制电源通断,电阻与发光二极管构成电源指示电路。晶振选用11.0592MHz的陶瓷晶振,经过瓷片电容接地。单片机
20、通过下载口向ROM中写程序,1、4、5脚接单片机的编程口P1.5、P1.7和P1.6口,6脚可以为单片机提供电源。复位电路采用上电复位加按键复位电路。利用电解电容的充放电,保证复位信号高电平在上电和按复位键时保持2个机器周期以上。系统加入可充电电池,用于在系统掉电时提供电源,保存重要数据。AT89S52及外围电路如图3所示: 图 3 AT89S52及外围电路图AT89S52接口有限,为了设计的方便,要合理地分配I/O口线。掉电保护使用外部中断0;ADE7755脉冲输入使用外部中断1;RS485通信使用串行口中断。单片机与各个模块连接情况见表2:表2 单片机引脚分配序号引脚说明1P0.0P0.7
21、接LCD1602数据线2P2.0P2.2接LCD1602控制口3P1.1P1.2接DS13024P2.3、P2.4接AT24C045P3.2接ADE7755 CF端6P3.3接掉电保护电路7P3.0接MAX485 RO口8P3.1接MAX485 DI口9P3.2接MAX485 RE、DE口3.3 电源电路电源电路采用直流稳压电源。输入220V交流电,经变压器降压为12V左右,再经过整流桥,将交流电转化为直流电,依次经过电解电容和瓷片电容,滤去高频与低频谐波,再经过稳压管LM7805稳压,得到直流5V电压。LED为电源指示灯。电源电路如图4所示:图 4 电源电路电源电路接线时,保证变压器一次侧接
22、在电量采集电阻的前面,使智能电表的耗电量不会被自身检测到,防止不合理收费的发生。3.4 电量采集电路3.4.1 ADE7755工作原理电量采集模块选用ADE7755。ADE7755是一种高精度电能计量芯片,专门用于居民用电的单相有功电能测量。ADE7755中只有模数转换电路和参考电压电路使用了模拟电路。所有其它信号都是通过数字信号处理。采用数字信号处理的方式可在电网电压与电流发生突变时,保证信号的稳定性和精度。ADE7755技术指标超过了IEC1036规定的准确度要求。它将有功功率的信息以频率的形式输出。在50/60Hz输入信号时都能满足IEC687/1036标准规定的测试精度要求,在1000
23、:1的输入动态范围内,测试误差小于0.1%。满足设计精度要求的±0.2%。ADE7755的内部硬件电路图如图5所示。ADE7755的输入信号分别是电流、电压互感器的模拟信号。信号送到16位-模/数转换器中,得到的数字信号经过处理送到乘法器中相乘。结果就是瞬时功率信号。瞬时功率由瞬时有功功率和瞬时无功功率组成,经过低通滤波电路后,得到有功功率分量。再送入数字频率转换器中,将功率大小转化成输出频率。ADE7755有低频的F1、F2输出端和高频同步输出CF端。ADE7755内部设有一个电源监控电路,监视AVDD引脚的电压。在电源电压即AVDD电压上升到 4V 之前和下降到4V以下时,ADE
24、7755会一直保持复位状态,此时 ADE7755没有输出。当电源电压高于基准电压时,AE7755芯片才能工作,输出电能信号。图 5 ADE7755硬件框图采样电流送到ADE7755电流通道后,通过增益放大器放大,由表3可知,增益倍数由G0、G1决定。表3 ADE7755增益G0G1PGA增益最大差动电压001470mV012235mV10860mV111630mV电网中由于有谐波的存在,入户电压电流波形不是严格的正弦波形。当电压电流非正弦波形时。由傅里叶分解得电流电压正弦谐波成分:式中,是瞬时电压;是电压平均值;是h次电压谐波的有效值;是h次电压谐波的相位角。式中,是瞬时电流; 电流平均值;
25、是h次电流谐波的有效值;是h次电流谐波的相位差。瞬时有功功率由基波有功功率和多次谐波有功功率组成,即:式中,表示基波瞬时功率;表示h次谐波瞬时功率之和。ADE7755对纯正弦波计量精确,而多次谐波也由纯正弦波组成,所以ADE7755对谐波有功功率也可精确计量。3.4.2 ADE7755电路设计电量采集通过电流电压互感器得到小电流小电压。电流采样采用阻值小线性度好的铜锰合金电阻,电阻为88350。将火线上的大电流转化为小电流信号。电路原理图如图6所示:图 6 ADE7755电流通道电流通道采用完全差动输出。最大峰值差动电压应小于470mv。有一个共同的共模参考点。电压的采样采用纯电阻分压得到。电
26、压通道最大峰值差动电压为±660mV。差动电压选用零线作为参考点。滑动变阻器用于改变分压电阻值,通过调节电位器来改变得到的电压信号的电压值,在调试中可以校准电表。等效电路图如图7所示:图 7 ADE7755电压通道电量采集电路如图8所示:图 8 ADE7755接线图电流通道接ADE7755的V1P、V1N端;电压通道接V2P、V2N端;晶振电路接CLKIN和CLKOUT脚,频率选用3.58MHz;输出脉冲CF脚经过光耦接单片机。图 9 ADE7755模块实物图ADE7755模块如图9所示,从左到右依次为零线进线和出线、CF输出线、火线出线和火线进线。3.5 时钟电路智能电表需要统计峰
27、时与谷时的用电量,所以需要获取当前时间参数。单片机自带的定时/计数器虽然可以得到时间,但是时间并不精确,容易造成测量误差。DS1302时钟芯片可以得到年、月、日、周、时、分、秒的精确数值。图 10 DS1302引脚图DS1302时钟芯片是一种高性能、低功耗、自带RAM的实时时钟芯片,其工作电压为2.5V5.5V。DS1302内部有一个31×8B的RAM寄存器。DS1302芯片采用三线接口与单片机进行同步通信。DS1302引脚功能如下:表4 DS1302引脚功能引脚号标号功能1、8Vcc2、Vcc1电源与后备电源引脚2、3X1、X2晶振接入引脚,晶振频率为32.768KHz4GND 接
28、地引脚5复位引脚,高电平启动输入/输出,低电平结束输入/输出6I/O数据输入/输出引脚7SCLK串行时钟输入引脚DS1302的X1、X2口接晶振,晶振频率选用32.768KHz;SCLK、I/O、RST分别接单片机P11、P10、P12口;Vcc1可接后备电源,保证在掉电时,时钟电路仍可以运行。图 11 DS1302接线图3.6 存储电路存储电路采用AT24C04,采用IIC总线协议与单片机相连。由于总线上只有AT24C04一个器件,所以A1、A2、A3直接接地。WP为写保护控制端,接地将其设为0,表示允许写入。SCL、SDA接到单片机的P2.4和P2.3口。图 12 AT24C04接线图3.
29、7 显示电路显示模块选用的是LCD1602。其体积小、重量轻、能耗低。LCD1602包含控制器HD44780、驱动器HD44100和液晶板三个部分。HD44780又包含字符发生器CGROM、自定义字符发生器CGRAM和显示缓冲区DDRAM三个部分。LCD1602显示为2行,每行有16个字。采用16引脚接线。其具体引脚功能见表5:表5 LCD1602引脚功能引脚号标号功能1、2Vss、Vdd接地引脚和电源引脚3VL对比度调整。选高电平时对比度最高4RS 数据/命令寄存器选择。高电平为数据寄存器,低电平为命令寄存器5R/W读/写选择。高电平为读操作,低电平为写操作6E使能端。有高电平变为低电平(下
30、降沿)时,液晶屏执行命714D0D78位双向数据线15、16BLA、BLK背光正极与背光负极LCD1602接线图如图13:图 13 LCD1602接线图LCD控制口RS、R/W、E分别接单片机P20P22;数据口D0D7接P0口;V0为对比度设置位,接VCC时对比度最高。3.8 掉电保护电路在实际生活中,经常会遇到停电,此时电表就会突然掉电。而单片机的数据存储器是掉电易失的。当系统上电时,单片机初始化就会丢失数据。设计中要统计累计电量等数据,所以在停电时,要及时将数据保存起来。TL7705是一种电源监视芯片,当电源低于设定的基准电压时,TL7705就会响应发出一个脉冲信号。选用的下降沿信号作为
31、触发单片机外部中断的信号源。将这个信号接入单片机的外部中断口,一旦系统掉电,TL7705产生的脉冲信号会使系统触发中断。在中断服务程序中,将片内数据存储器中的数据存储到片外,并将单片机设为掉电模式。为了维持有足够的电压维持单片机的运行,在系统加入一个可充电的电池,在系统掉电时为系统提供电源。图 14 掉电保护电路掉电保护电路如图14所示。TL7705芯片SN口上的电位器用来调节检测电压的大小,调节范围为4.54.75V,为了使芯片能够在掉电时快速反应,将基准电压设为4.75V。当掉电时,电源电路的电压下降到4.75V时,TL7705发出信号触发单片机的外部中断,通过中断服务程序将片内RAM中需
32、要保护的数据写入片外RAM中,并使单片机进入掉电工作方式以完成数据保护。当电源电压降至4.75V时,TL7705由向单片机发出中断请求信号。单片机运行到一个可断断点后,响应中断,在中断服务程序中保护现场数据,使单片机进入掉电工作状态。在掉电模式中,由备用电池供电,所以数据存储器中的数据不会丢失。退出掉电模式的唯一方法是硬件复位,系统重新初始化,数据存储器中的数据保持掉电前的内容。在电路中加入掉电保护是为了节约电池的电量。单片机进入掉电模式后,关闭不必要的功能,功耗大幅降低,数据保存时间更长。3.9 RS485接口电路3.9.1 RS485简介RS485采用差分信号负逻辑,2V6V表示“0”,-
33、 6V- 2V表示“1”。采用的是两线制接线方式,可以在同一条RS485总线上挂接32个结点。在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。其典型网络图如图15所示:图 15 RS485典型半双工网络RS485的通信线采用带屏蔽层的双绞线。在使用RS485接口时,由于受信号失真及噪声等影响,信号传输的波特率越高,RS485数据信号传输的最大电缆长度越长。根据GB/T 645-1989平衡电压数字接口电路电气特性中的传输速率与最大电缆长度的关系图可知,当波特率为9600bps时,RS485通信的最长传输距离可以达到1200米。在传输过程中,可以采用增加中继的方法对信号进行
34、放大,信号最大的传输距离可以达到9.6公里。为了降低干扰,提高通信质量,RS485通信要求从总线到每个节点应采用尽量短的引出线。在RS485组网过程中,应在总线电缆的开始和末端都并接终端电阻。因为RS485通信选用的双绞线的电缆特性阻抗大约在100120之间,所以终接电阻一般选用120,以达到终端匹配的目的。在设计中,采用光耦隔离进行通信线路的保护。当遇到闪电时,通信线上会产生大幅值的瞬时干扰,如果不添加保护就可能损坏RS485接口,甚至直接损坏电能表。3.9.2 RS485电路设计通信模块选用MAX485芯片。MAX485芯片是RS485通信的低功率半双工收发器,具有标准的12k接收器输入阻
35、抗。MAX485芯片引脚功能见表6:表6 MAX485引脚功能引脚号标号功能1RO接收器输出2RE接收器输出使能3DE 驱动器输出使能4DI驱动器输入5GND地6A接收器同相输入端和驱动器同相输出端7B接收器反向输入端和驱动器反向输出端8VCC电源MAX485芯片通过A、B两端口来接收来自与RS485总线上传输的电平信号,RO为接收器输出端,通过光耦隔离接单片机的RXD引脚;MAX485通过DI引脚接收由单片机发送的数据,再由A、B发送到RS485总线上,Dl为发送器输入端,通过隔离接单片机的TXD引脚;RE、DE引脚分别是接收器、发送器的使能端。因为设计中,MAX485的工作方式为半双工,所
36、以将RE、DE并联接到单片机的一个I/O口,来起到控制的作用。MAX485的AB口之间加入120的匹配电阻。A口经3.3K电阻接高电平,B口经3.3K电阻接地,这样保证RS485总线在空闲时,A口和B口是稳定的高电平和低电平。图 16 MAX485接线图为了使电表免受RS485的瞬时干扰,MAX485芯片采用光耦与单片机隔离。其中,RO通过光耦接单片机的P3.0口,即串行数据接收口RXD;DI口通过光耦接单片机的P3.1口,即串行数据发送口TXD;RE和DE通过光耦接单片机的P3.2口,用于MAX485的使能端。4 软件设计4.1 主程序设计程序设计要满足数据的实时上传、数据的存储。主要流程包
37、括:电量值的获取、时间参数的获取、信息的显示、计费费段电量累计、数据传送等步骤。当系统上电时。第一步,初始化单片机、时钟芯片、LCD显示屏等模块;第二步,向DS1302写入实时时钟,时钟数据通过RS485从上位机获取;第三步,读取存储器中的断点数据送到单片机数据存储器中;第四步,ADE7755发送的脉冲触发外部中断,在中断服务程序中,判断是峰时还是谷时费段,再计算出各时段的用电量;第五步,数据传送至上位机。软件系统中还有2个外部中断服务程序:电能计量使用外部中断0;电源监视使用外部中断1。具体程序流程如图9所示:图 3 主程序流程图在设计中,需要用到一些专用寄存器见表7:表7 常用专用寄存器寄
38、存器符号寄存器地址寄存器名称说明IEA8H中断允许控制寄存器控制各种中断开关PCON87H电源控制寄存器定义单片机掉电工作模式SCON98H串行口控制寄存器串行发送接受中断请求标志位SBUF99H串行数据缓冲器存储将要传送或接受的数据TCON88H定时器控制寄存器选定外部中断的触发方式TMOD89H定时器方式选择寄存器定义计数器工作方式TL08AH定时器0低8位定时器/计数器0初值的低8位TH08CH定时器0高8位定时器/计数器0初值的高8位系统上电之后,对单片机进行初始化。void init() IE=0xF7;/*IE=1111 0111, /*总中断允许,允许外部中断,允许定时器计数器0
39、中断,允许串行中断。*/SCON=0x50; /串行口工作方式1TCON=0x05; /外部中断0、1采用脉冲触发方式,下降沿有效4.2 外部中断0服务程序在程序设计中,采用2个外部中断。ADE7755的脉冲输出接外部中断P33口,TL7705的掉电保护信号接外部中断P32口。中断由中断控制寄存器IE控制,在程序开始运行时,要先初始化中断控制寄存器。中断控制寄存器IE位定义及位地址见表8:表8 中断控制器IE位地址位地址AFHAEHADHACHABHAAHA9HA8H位符号EAESET1EX1ET0EX0EA为中断允许位,EA=1中断允许,EA=0中断禁止;EX0和EX1为外部中断允许位,EX
40、0=0禁止外部中断,EX0=1外部中断允许;ET0和ETC1为定时器中断允许位,为1时表示允许定时器中断,为0时表示禁止定时器中断。设计中需要总中断允许、串行中断允许和外部中断0、1允许,即IE=83H。表9中,定时器控制寄存器TCON定义了外部中断的触发方式。表9 TCON位地址位地址8FH8EH8DH8CH8BH8AH89H88H位符号TF1TR1TF0TR0IE1IT1IE0IT0IE0和IE1为外部中断请求标志位;IT0和IT1为外部中断触发方式控制位,为1时表示脉冲触发,下降沿有效,为0时表示电平触发方式,低电平有效。设计中根据输入信号为脉冲信号,选用脉冲触发更合理。所以TCON应设
41、为ADE7755CF端输出的高频脉冲信号频率设定为3200imp/KWh。一般电表的最大工作电流为20A,负载为4.4KW时,脉冲频率约为4Hz,外部中断1秒触发4次,每一个脉冲表示0.KWh。程序运行时,每一个脉冲都会触发一次中断服务程序,再根据时间参数累计分时电量。程序流程如图17所示:void du() interrupt 0 /外部中断0服务程序du()if(8<date_time2<20) /读取小时值。当在820之间时,峰时电量累加p1=p1+0.; /峰时电量累加,每一个脉冲表示0.度电else p2=p2+0.; /否则,谷时电量累加p=p1+p2; /求出总电量,
42、即峰时电量与谷时电量之和图 4 外部中断0程序流程图4.3 外部中断1服务程序外部中断1用于电源监视。当电源电压低于设定的基准电压时,TL7705发出一个中断信号,中断采用低电平触发。中断服务程序将单片机中需要保存的数据送到AT24C04中存储。数据存储完成后,将单片机设定成掉电模式以节约电池电量。图 5 掉电保护程序流程图AT89S52单片机有2种低能耗工作方式:待机模式和掉电模式。低能耗模式由电源控制寄存器PCON控制,PCON寄存器位格式见表10:表10 PCON位地址D7D6D5D4D3D2D1D0SMODGF1GF0PDIDLSMOD为波特率倍增位,进行波特率加倍处理;GF0和GF1
43、为通用标志位;PD为掉电方式位,为1时进入掉电方式。IDL为待机模式位,为1时进入待机模式。系统掉电以后,TL7705检测到电源电压下降到基准电压以下,发送电平信号触发中断程序;备用电池为系统提供电源;单片机将数据传送到AT24C04中存储;存储完成以后,用软件将PCON中的PD位设为1,使单片机进入掉电模式。4.4 RS485通信程序RS485通信是基于C51单片机的串行通信。串行通信协议内容包括同步方式、数据格式、传输速率、校验方式。RS485通信采用异步半双工通信方式,半双工是指数据传输可以沿两个方向,由于只采用一条数据线传输,所以需要分时进行。异步通信以字符(构成的帧)为单位进行传输。
44、每一帧的数据由1位起始位、8位数据位、1位奇偶校验位、1位停止位组成。数据传送时先传送低位。串行口由特殊功能寄存器SCON和电源控制寄存器PCON控制。表11 SCON位地址9FH9EH9DH9CH9BH9AH99H98HSM0SM1SM2RENTB8RB8TIRI其中,SM0和SM1决定了串行口的工作方式,具体见表11;SM2用于方式2、3的多机通信控制;REN为串行接受使能位;TB8和RB8在方式2、3中分别发送和接受数据的第9位;TI和RI分别为发送中断标志位和接受中断标志位。设计中,串行口选择工作方式1,所以SM0=0,SM1=1。由于工作方式1为双机通信方式,所以SM2为0。此外,R
45、EN设为1,允许串行口接受数据。则串行口初始化时SCON=50H。表12 串行口的工作方式SM0SM1方式说明波特率000移位寄存器/1201110位UART(8位数据)可变10211位UART(9位数据)/64或/1211311位UART(9位数据)可变PCON中的SMOD位为单片机串行通信波特率倍增位。为1时表示波特率增加一倍。系统波特率选用9600bps,不用增倍就可以达到,即SMOD=0。工作方式1、3的波特率可调,由定时器T1的溢出率决定。将T1设为工作方式2,溢出率与T1的初值有关。T1溢出率=/12×256-(TH1)方式1波特率=(/32)·(T1溢出率)根
46、据单片机的晶振频率,计算得出TH1应设为FDH。串行口初始化包括:确定T1的工作方式,TMOD=20H;计算T1的初值,设定TH1、TL1初值;启动T1;确定串行口工作方式;串行口在中断方式工作时,进行中断设置。void max_Init(void)TMOD=0x20; /定时器1,工作方式2 TH1=0xfd;/波特率为9600TL1=0xfd;PCON=0x00; TR1=1; /定时器1开始工作 SCON=0x50;/0101 0000B,工作方式1,8位UART,波特率可变,允许接收 RI = 0; /接收中断标志位清零TI = 0; /发送中断标志位清零 数据接收程序:void Re
47、ceive(void) while(RI=0) /等待数据接收完成;DAT2=SBUF; /接收到的数据由SBUF送入DAT2中RI=0; /接收停止,接收标志位清零数据发送程序:void Send(uchar ShowData)SBUF=ShowData; /写发送寄存器while(TI=0) /等待串行发送完成;TI=0; /对发送标志位清零4.5 时钟程序DS1302的基本操作为读字节操作和写字节操作,DS1302各种操作由命令字节实现。DS1302命令字节格式见表13:表13 DS1302命令字节格式位D7D6D5D4D3D2D1D0值1R/CA4A3A2A1A0R/WD7固定为1;R
48、/C位为0时选择操作时钟数据,为1时选择操作RAM数据;A0A4为操作地址;R/W位为0时进行写操作,为1时进行读操作。写操作指将一个字节的数据写到DS1302中。当SCLK上升沿时,数据写入DS1302,写时先传输低位数据。写操作时序如图19所示:图 19 写操作时序图DS1302写操作程序:void write_ds1302(uchar dat)uchar i;for(i=0;i<8;i+)IO=dat & 0x01; /保持dat最后一位送至IO端SCLK=1; /产生上升沿,数据写入delay(1); /延时,给DS1302反应时间SCLK=0; /设为0准备下一个上升沿
49、dat >>= 1; /dat右移1位,准备传送第2位读操作为读DS1302的数据送到单片机中。读操作跟随读命令字节后,数据在SCLK下降沿送出,读操作先传输低位数据。读操作时序如图20所示:图 20 读操作时序图uchar read_ds1302() /DS1302读字节程序uchar i,b=0x00; /设置读出的数据放在b中,初值为0for(i=0;i<8;i+)b |= _crol_(uchar)IO,i);/IO口强制转化为8位uchar型,再左移i位,再与b按位或,结果送给bSCLK=1; /产生上升沿,数据传送delay(1); /延时SCLK=0; /设为0
50、,准备下一个数据传送return b/16*10+b%16; /与BCD码转换时间日期数据是以BCD码格式存放在DS1302中,所以读出的数据要转化成uchar型的值。表14 DS1302日历时钟寄存器寄存器名命令字节位内容写读D7D6D5D4D3D2D1D0秒80H81HCH秒的十位秒的个位分82H83H0分的十位分的个位时84H85H12/240A/PHR小时个位日86H87H00日的十位日的个位月88H89H0000/1月的个位年8CH8DH年的十位年的个位DS1302中的数据的存放地址见表14。利用读指令将数据读取到单片机。也可利用写命令校准写入当前时间。4.6 显示程序LCD1602
51、的显示由控制口控制,数据传送至LCD1602的数据口D0D7。LCD1602一共有11条操作指令,下表中介绍了其中的9个指令。表15 LCD1602的操作命令指令RSR/WD7D6D5D4D3D2D1D0清屏0000000001输入模式设置00000001I/DS显示与不显示设置0000001DCB功能设置00001DLNF*CGRAM地址设置0001CGRAM地址DDRAM地址设置001DDRAM地址读忙标志和计数器地址设置01BF计数器地址续表15指令RSR/WD7D6D5D4D3D2D1D0写DDRAM或CGROM10要写的数据读DDRAM或CGROM11读出的数据清屏命令:光标回到屏幕
52、左上角,地址计数器设置为0。输入模式设置:设置每写入一个数据字节后,光标的移动方向及字符是否移动。设置为0x06s时,I/D=1,S=0,表示光标右移一格且地址计数器加一。显示与不显示设置:显示开关。当设置为0x0c时,D=1,C=0,B=0,表示开显示,无光标,光标不闪烁。读忙标志和计数器地址设置:BF是忙标志位,BF=1表示忙,此时LCD不能接收命令或数据。显示程序设计使用了LCD写指令。void lcd_write_com(uchar com)LCDRS=0;/RS为0时,写指令,RS为1时,读写数据P0=com; /将命令字写入P0口delay(5); /延时5ms,给LCD写入时间LCDEN=1; /将EN端设为高电平,保证可以得到一个下降沿delay(5); /延时5msLCDEN=0; / 置0,产生下降沿,液晶模块执行命令LCD写数据程序同写指令程序相似,只是要将RS端设为1。LCD1602使用前要进行初始化,初始化内容为:清屏;功能设置;显示与不显示设置;输入模式设置。LCD1602的读写是通过RS,R/W和E三个引脚控制。void lcd_init()LCDEN=0;lcd
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年智能工厂数据采集与治理体系建设
- 2026年用户单位联合研制单位申报材料编写要点
- 2026年继续教育培训项目立项与课程开发标准化手册
- 四川省成都市简阳市2026年初三第三次质检生物试题含解析
- 天津市南开大附属中学2026届初三三模化学试题含解析
- 2026年陕西省宝鸡市扶风县重点达标名校校初三第三次模拟化学试题含解析
- 贵州省从江县2026年初三下学期期中考化学试题含解析
- 2026年天津市河西区第四中学初三年级四月考试化学试题试卷含解析
- 甘肃省民乐县第四中学2026年初三适应性月考(八)化学试题含解析
- 广东省湛江地区六校联考2026届初三第二学期化学试题统练(8)含解析
- 2026四川成都市金牛国投人力资源服务有限公司招聘金牛区街区规划师8人考试参考试题及答案解析
- CMA质量手册(2025版)-符合27025、评审准则
- 海岛游策划方案
- 洁净车间安全施工方案
- 《中租联工程机械操作标准-旋挖钻机司机》征求意见稿
- 2023年考研考博-考博英语-煤炭科学研究总院考试历年高频考点真题荟萃带答案
- Peppa-Pig第1-38集英文字幕整理
- 统计用产品分类目录
- 雅培Perclose血管缝合器使用过程中常见问题及解决方法
- 中小学生课外读物负面清单自查表
- YS/T 73-2011副产品氧化锌
评论
0/150
提交评论