收藏 分销(赏)

学士学位论文--基于stc12le5a60s2的低压电能表检测仪.doc

上传人:胜**** 文档编号:2910045 上传时间:2024-06-11 格式:DOC 页数:33 大小:1.25MB 下载积分:10 金币
下载 相关 举报
学士学位论文--基于stc12le5a60s2的低压电能表检测仪.doc_第1页
第1页 / 共33页
学士学位论文--基于stc12le5a60s2的低压电能表检测仪.doc_第2页
第2页 / 共33页


点击查看更多>>
资源描述
目录 1 引言 1 1.1 研究背景 1 1.2 研究现状 1 2 总体设计方案 2 2.1 技术要求 2 2.2 方案论证 3 3 硬件电路设计 4 3.1 单片机的选择及外围电路设计 4 3.2 电流互感器的选择与连接 7 3.3 电能计量芯片的选择 7 3.4 LCD显示接口电路设计 12 3.5 键盘接口电路设计 13 3.6 电源电路设计 15 4 软件设计 15 4.1 主程序设计主程序的主要功能 16 4.2 中断服务程序设计 17 4.3 LCD1602程序设计 19 4.4 CS5490程序设计 21 4.5 键盘扫描程序设计 27 结 论 29 致 谢 30 附录:电路原理图 32 1 引言 1.1 研究背景 随着社会的发展,人们的生活水平不断提高,家用电器越来越普及,人人用电、家家用电,使用电量大大增加。同时即将实行的分段电费计费制,将使用电大户的电费支出大幅度地增长,各种各样的窃电行为不可避免,对此,供电部门采取多种方法对用户的电能表进行定期校验或不定期的抽查。 通常校验用户电能表的方法为: 1.1.1、使用钳形电流表和秒表,现场检测电能表:用秒表实测电能表每转时间T1;查看电能表上标明的参数,算出电能表每转一转所需的电能,然后用钳形电流表测量电流求出有功功率,电能表每转1转所需电能与有功功率之比得到的时间即为电能表每转所需时间T2。通过T1与T2的比较,就可以判断电能表是否正常工作,从而达到检测目的。 但这种方法的误差很大,主要产生自秒表的掐表误差。 1.1.2、通过检验电能表的外观,确定电能表有无破坏痕迹。这种方法包括: 1) 检查电能表外壳、封铅及封条是否完好,外壳是否有变形、微小孔洞及铁丝等; 2) 检查电能表接线盒是否封闭完好,进出线是否紧固,电压连接片是否压紧。 3) 核对电能表铭牌上的型号、出厂编号及所计量负荷性质等是否与抄表卡相同,若不符即有窃电行为。 1.1.3、在被测电能表电路中接入标准电能表,然后对被测表和标准表同时采样进行比对。 1.1.4、采用专门的检测仪器对电能表进行校验。这种方法分为两种形式,一种方法是将电能表从供电线路上拆下,利用实验室的电能表校验台对电能表进行校验,另一种方法是不拆下电能表,利用电能表现场检测仪器对电能表进行现场校验。 电能表的现场检验因不影响用户用电而被供电部门广泛采用,随着电子技术的发展,供电部门迫切需要一种携带方便,操作简单,计量准确的单项电表检测仪,用于用户低压电能表的现场检验。 1.2 研究现状 电能表的校验是否准确,取决于有功功率的测量是否准确,有功功率的测量属于电气测量范畴,在电气测量方面,国内外已有大量的研究成果,就测量方法和采用的技术手段综述如下。 采用的技术手段上,一是采用微机加数据采集卡,二是采用微处理器结合自行设计的数据采集通道。 在互感器的选择上,一是在供电电路中接入固定式的电压互感器和电流互感器。二是电压互感器采用固定式,接线端使用线夹,电流互感器采用钳形互感器[6]。固定式互感器中磁路是封闭的,因而具有较好的线形和较小的相移,可以得到较高的精度。但需要停电接线,不便于现场检测。电压互感器采用固定式,接线端使用线夹,电流互感器采用钳形互感器,现场不用接线。固定式互感器的优点是显而易见的,采用线夹后可直接加在供电线路的母线上,避免了现场检测需要停电接线的麻烦。但钳形电流互感器的接触面存在空气间隙,使互感器磁路的磁阻显著增大,且随工况不同呈现非线形,使互感器的线形变差,且相移较大,给功率因数的测量带来影响,为了弥补这一缺陷,对结果采用分段线性化处理,可以提高测量精度。 在有功功率的测量方面,一是采用有效值转换,分别测量出电压、电流和功率因数,利用微处理器计算出功率;二是采用有功功率专用测量集成电路,直接测量出有功功率;三是利用各种电量的传感器,测量出电压、电流、功率因数或直接测量有功功率。采用专用电能计量芯片,直接测量出有功功率,测量方便,硬件电路简单,软件开销小。 2 总体设计方案 2.1 技术要求 由于目前使用的低压电能表多为电子式电能表,机械式电能表基本已淘汰,所以本设计以电子式电能表为检测对象。 本设计以STC公司的MCU为核心,采用电流互感器及电能计量专用芯片对电能进行实时计量,计算出被测电能表的误差,检验电能表计量的准确性。 具体要求如下: (1).电量测量范围:电压220VAC,电流0~40A,单相; (2).检验对象:电子式电能表; (3).测量误差:±0.5%FS; (4).测量方式:不拆线不断电; (5).方便野外使用,强阳光下可清晰显示; (6).220VAC供电。 2.2 方案论证 按照上述技术要求,系统由电流电压互感器、有功功率测量芯片、单片机、显示器、键盘和SD卡几部分组成。系统组成图如图2.1所示。 图2.1系统组成图 利用互感器将供电电路的电压、电流转换为弱电信号,单片机通过有功功率测量芯片对电参数进行实时采集并计算出电能,通过与被测电能表的显示进行比对,从而计算出被测电能表的相对误差。 2.2.1 互感器 方案一:在供电电路中接入固定式的电压互感器和电流互感器。固定式互感器中磁路是封闭的,因而具有较好的线形和较小的相移,可以得到较高的精度。但需要停电接线,不便于现场检测。 方案二:电压采样使用线夹,电流采样使用钳形电流互感器,现场不接线。线夹可直接加在供电线路的母线上,避免了现场检测需要停电接线的麻烦。但钳形电流互感器的接触面存在空气间隙,使互感器磁路的磁阻显著增大,且随工况不同呈现一定的非线形,使互感器的线形变差,且相移较大,给功率因数的测量带来影响。 综上分析,结合低压电能表进行现场检验的特点,确定采用方案二。 2.2.2 有功功率测量通道 方案一:采用有功功率专用测量集成电路。专用电能计量芯片,直接测量出有功功率。测量方便,硬件电路简单,软件开销小。 方案二:采用有效值转换电路,分别测量出电压、电流和功率因数,利用微处理器计算出功率。便于对钳形互感器带来的相移进行修正或补偿,但硬件电路较为繁琐,软件开销大。 综上分析,确定采用方案一,有功功率测量通道由既是专用电能计量芯片。 2.2.3 显示器 方案一:采用LED数码管显示器。传统的数码管具有:低功耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护,同时其精度要求比较高,显示速度快,精确可靠,操作简单。数码管是采用BCD编码显示数字,程序编译容易,资源占用较少。 方案二:使用LCD液晶显示器。液晶显示器具有轻薄短小、超低耗电量、无辐射危险,平面直角显示以及影像稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等优点。LCD符合本设计系统的要求,利用其自带的字符库,进行编程还可以实现各信息的显示,即节省资源又省去了大量编程任务,且在强光照射下的户外进行检测时,LCD可清晰地显示数值。 综上分析,本设计系统采用方案二。 3 硬件电路设计 3.1 单片机的选择及外围电路设计 3.1.1 单片机的选择 本系统主要从编程方式,IO口数量,功耗等方面选择MCU。 编程方式简洁,硬件投资小,与PC连接方式简单。 IO口分配:电量测量芯片6个,键盘8个,RS232接口2个,并口1602LCD 11个。共需至少27个IO口。 目前8位单片机已有百十个系列,上千个种类,市场上可见到的如Intel公司的MCS-51系列产品,Motorola公司的6800、68000系列产品,Zilog公司的Z8、Supper8、Z86系列产品,Rockwell公司的6500系列产品,Philips公司的80C51系列产品,Microchip公司的PIC系列,Ateml公司的AT89、AVR系列,华邦公司、松下公司、三星公司、国产的STC等等。 基于以上分析,本设计采用STC公司的STC12LE5A60S2可以满足设计要求。 3.1.2 STC系列单片机STC12LE5A60S2的简介 STC12LE5A60S2单片机是STC宏晶科技()生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。 3.1.3功能特性概述 1.增强型8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051 2.工作电压: 5.5V- 3.3V(5V单片机) 3.工作频率范围:0 - 35MHz,相当于普通8051的 0~420MHz 4.用户应用程序空间62K字节 5.片上集成1280字节RAM 6.通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口),可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏 每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55mA 7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器 可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片 8.有EEPROM功能 9. 看门狗 10.内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地) 11.外部掉电检测电路:在P4.6口有一个低压门槛比较器,5V单片机为1.32V,误差为+/-5% 12.时钟源:外部高精度晶体/时钟,内部R/C振荡器(温漂为+/-5%到+/-10%以内) 1用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟 13.共4个16位定时器:两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器做串行通讯的波特率发生器再加上2路PCA模块可再实现2个16位定时器 14. 2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟 15.外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块,Power Down模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4, T1/P3.5,RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2 ),CCP1/P1.4 (也可通过寄存器设置到P4.3) 16. PWM(2路)/PCA(可编程计数器阵列,2路) ---也可用来当2路D/A使用 ---也可用来再实现2个定时器 ---也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持) 17.A/D转换, 10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次) 18.通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口 19. STC12LE5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3) 20.工作温度范围:-40 - +85℃(工业级) / 0 - 75℃(商业级)21.封装:PDIP-40,LQFP-44,LQFP-48 I/O口不够时,可用2到3根普通I/O口线外接 74HC164/165/595(均可级联)来扩展I/O口, 还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。 3.1.4 单片机外围电路设计 本设计选择STC12LE5A60S2的外部时钟方式,在引脚XTAL1和XTAL2两端跨接11.0592MHz晶体,以方便和PC编程和采集测量数据。复位采用片内复位电路,外接一个1K下拉电阻。单片机外围电路如图3.1 图3.1 单片机STC12LE5A60S2外围电路设计图 3.2 电流互感器的选择与连接 3.2.1 电流互感器的选择 在测量中,一般规定它的二次绕组的额定电流为5A。其主要特点是:它的一次绕组的匝数比二次绕组少得多,并且串于一次电路中。有些电流互感器仅有铁芯和二次绕组,测量时将被测电路的导线直接穿过铁芯。这些电流互感器称为穿心式互感器。一次绕组中的电流几完全取决于一次电路中的负载电流,而与二次侧无关。 电流互感器有固定式与钳形供电互感器几种。在供电电路中接入固定式的电流互感器,其优点是固定式互感器中磁路是封闭的,因而具有较好的线形和较小的相移,可以得到较高的精度,但需要停电穿线,不便于现场检测。若采用钳形互感器,则现场不用停电接线,避免了现场检测需要停电接线的麻烦。 考虑到方便检测这一要求,可选择钳形电流互感器。本设计中,采用淄博元星电子有限公司()生产的CTC0080N钳形电流互感器,外型如图3.6所示。 图3.2 CTC0080N钳形电流互感器 3.2.2 电流互感器主要参数 1) 一次电流: 1-50A; 2) 匝比: 1:1000,1:2000,1:2500; 3) 等级: 0.1级; 4) 负载: ≤50Ω。 5) 频率: 50-400Hz 3.3 电能计量芯片的选择 CS5490是Cirrus Logic公司()新近推出的带有RS232接口的单相双通道电能计量芯片。 3.3.1 CS5490芯片有如下功能特点 (1) 在4000:1动态范围内,有功和无功电能的测量精度都为0.1%。 (2) 具有两个独立通道24位Δ-∑的AD转换器,可精确测量瞬时电压、电流、功率以及电压、电流有效值。 (3) 计算视在、有功和无功功率,基波有功、谐波功率和功率因数。 (4) 具有瞬时电流、瞬时电压、瞬时功率、电流有效值、电压有效值、功率有效值测量及电能计量功能; (5) 具有片内看门狗定时器(Watch Dog Timer)与内部电源监视器; (6) 提供了外部复位引脚; (7) 带有温度传感器; (8) RS232串行接口与内部寄存器阵列可以方便地与单片机相连接; (9) 低能耗<13mW。 (10) 具有功率方向输出指示。 (11) 极高的信噪比和超低的噪声。 (12) 简单的2线RS232串行接口。 3.3.2 基本结构与技术指标 (1) 内部结构 CS5490内部集成了两个△-∑A/D转换器、高、低通数字滤波器、能量计算单元、串行接口、数字-频率转换器、寄存器阵列和看门狗定时器等模拟、数字信号处理单元。 CS5463 的内部结构框图如图3.3所示, 图3.3 CS5490芯片结构框图 它由2个放大器、2个Δ-∑调制器、配套的高速滤波器、功率计算引擎、偏置和增益校正、功率监测、串行接口及相应功能寄存器等组成。2个可编程放大器采集电压和电流数据,Δ-∑调制器对模拟量采样处理,高速数字低通或可选的高通滤波器滤取可用电压电流数字信号,功率计算引擎计算各类型的功率、电压、电流,并将计算的功率值通过RS232接口对外输出,也可以接微控制器。该电路还有可编程数字输出信号。 (2) 引脚排列及功能 CS5490的引脚排列如图3.4所示。 图3.4 CS5490芯片引脚排列图 XOUT(Pin 1):晶体振荡器输出; XIN(Pin 2):晶体振荡器输入。 RESET(Pin 3):复位输入; IIN-(Pin 4):差分电流负输入端; IIN+(Pin 5):差分电流正输入端; VIN+(Pin 6):差分电压正输入端; VIN-(Pin 7):差分电压负输入端; VREFIN(Pin 8):参考电压输入; VREFOUT(Pin 9):参考电压输出; GNDA(Pin 10):模拟地电源; VDDA(Pin 11):模拟电路电源正极; DO(Pin 12):数据输出; TX(Pin 13):串行232发送;; RX(Pin 14):串行232接收; MODE(Pin 15):操作模式选择; VDDD(Pin 16):数字电路电源正极; 3.3.3 串行接口及其操作 (1) 串行接口 CS5490的RS232串行口包括2条控制线:TX/RX,可以直接连接到STC12LE5A60S2的第二串口。串行口的默认波特率为600,可以通过设置串口控制寄存器来改变波特率。 CS5490可以通过RS232接口接收单片机的4种命令:读寄存器操作、写寄存器操作、寄存器页选择操作、指令操作。 (2) 内部寄存器 CS5490共有64页,每页64个地址的寄存器。其地址设定为12Bit,高6位为页码,低6位为该页的地址码: P5P4P3P2P1P0A5A4A3A2A1A0。 (3) 命令解释及操作 寄存器页选择操作:10 P5P4P3P2P1P0; 读寄存器操作:00 A5A4A3A2A1A0,CS5490回传3个字节的数据; 写寄存器操作:01 A5A4A3A2A1A0+DATA2+DATA1+DATA0; 指令操作:11 C5C4C3C2C1C0 (4) CS5490与STC12LE5A60S2的连接电路如图3.5所示。 图3.5 CS5490与STC12LE5A60S2的连接电路 3.3.4 电源线接口的设计 VIN通过电阻直接夹到L和N,IIN通过互感器CT卡在Line导线上。电源检测输入电路如图3.6。CS5490端口的最大输入电压为250mVp 。 图3.6 CS5490的电源检测电路 3.3.5 常用寄存器定义 串口控制寄存器:PAGE:0,ADDRESS:7,DEFAULT:02004DH 有功功率寄(Pavg)存器:PAGE:16,ADDRESS:5,DEFAULT:000000H 电流有效值(Irms)寄存器:PAGE:16,ADDRESS:6,DEFAULT:000000H 电压有效值(Vrms)寄存器:PAGE:16,ADDRESS:7,DEFAULT:000000H 无功功率(Qavg)寄存器:PAGE:16,ADDRESS:14,DEFAULT:000000H 电流峰值(Ipeak)寄存器:PAGE:0,ADDRESS:37,DEFAULT:000000H 电压峰值(Vpeak)寄存器:PAGE:0,ADDRESS:36,DEFAULT:000000H 视在功率(S)寄存器:PAGE:16,ADDRESS:20,DEFAULT:000000H 功率因数(PF)寄存器:PAGE:16,ADDRESS:21,DEFAULT:000000H 实时温度(Temp)寄存器:PAGE:16,ADDRESS:27,DEFAULT:000000H 总有功功率(Psum)寄存器:PAGE:16,ADDRESS:29,DEFAULT:000000H 总视在功率(Ssum)寄存器:PAGE:16,ADDRESS:30,DEFAULT:000000H 总无功功率(Qsum)寄存器:PAGE:16,ADDRESS:31,DEFAULT:000000H 电流增益寄存器:PAGE:16,ADDRESS:33,DEFAULT:1.0 电压增益寄存器:PAGE:16,ADDRESS:35,DEFAULT:1.0 3.4 LCD显示接口电路设计 3.4.1 LCD显示器的选择 LCD一般分为3类,即段码型液晶模块、点阵字符液晶模块、点阵图形液晶模块。 本系统选择LCD1602液晶显示模块,它可以显示两行,每行16个字符,采用3V3电源供电,外围电路配置简单,价格便宜,具有较高的性价比,很长的寿命。 LCD的控制方法如表3.1所示。 表3.1 LCD602的控制表 RS R/W E DB0-DB7 功能 0 0 下降沿 输入 写指令代码 0 1 1 输出 读标志和AC码 1 0 下降沿 输入 写数据 1 1 1 输出 读数据 主要管脚介绍: V0:液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高。 RS:寄存器选择,高电平时选择数据寄存器;低电平时选择指令寄存器。 R/W:读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址;当RS为高电平R/W为低电平时可以写入数据。 E:使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 LCD1602的操作指令共11条,如表3.2 表3.2 LCD602的操作指令表 3.4.2 显示器接口电路设计 LCD12864在设计时采用3.3V的驱动电源电压。通过显示屏幕,将所测得的各种数据显示出来。 LCD1602显示接口电路设计如图3.7所示。 图3.7 LCD1602显示接口电路 3.5 键盘接口电路设计 3.5.1 键盘的数目及功能确定 在该应用系统中,具有人机对话功能。它包括人对应用系统状态的干预、数据的输入以及应用系统向人报告运行状态与运行结果。 键盘电路的设计应使CPU不仅能识别是否有键按下,还要能识别是哪一个键按下,而且能把此键所代表的信息翻译成计算机所能接受的形式,计算机所用的键盘有编码键盘和非编码键盘两种。编码键盘能够由硬件逻辑自动提供与按键对应的编码。 本系统选择4*4的矩阵式键盘,该键盘一部分为数字按键,另一部分为功能按键。 为了识别键盘上的闭合键,常用的键码识别方法有行扫描法、行反转法及行列扫描法等。本设计采用行扫描方法。 行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,行扫描法识别按键的基本原理是:先将所有的行线置0,读列线的值,若此时列线上的值全为1,说明无键按下。若有某位为0,则说明对应这一列上有键按下,这时改变行扫描码,使行线逐行为0,依次扫描。当读到某一列线的值为0时,就可根据此时的行扫描码和列线的值唯一地确定按键的位置,同时也就确定了该键的扫描码。 3.5.2 键盘电路设计 在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图3.8所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键开关加以连接。这样,一个8IO口就可以构成4*4=16个按键。并且列线通过内部上拉电阻接‘1’,而将行线所接的单片机的I/O口作为输出‘0’端,列线所接的I/O口作为输入。如果所有的8个端口都是高电平,则表示没有按键开关按下;一旦有键按下,则输入线就会被拉低,这样,通过读入P2口的状态就可得知是否有键按下了。 图3.8 矩阵式键盘 此矩阵式键盘根据设计要求,设置了功能键与数字键。功能键主要是启动键、手动按键、自动按键。启动按键要单片机处于待命状态;手动按键要人自己控制时间,计算出误差值;自动按键在设定时间内完成误差计算。数字键用于所测电能表型号选择。各按键所代表的具体功能如下: S1~S10:数字键; S11:启动测量键; S12:停止测量键; S13:确认键; S14:功能键; S15:参数查看键; S16:被测表数据输入键。 3.6 电源电路设计 本系统使用的是3.3V直流电源,供MCU、CS5490、LCD1602等电路使用。 如图3.9所示电路为输出电压+3.3V的稳压电源。它由电源变压器B,桥式整流电路D1~D4,滤波电容C1、C3,防止自激电容C2、C4和一只固定式三端稳压器(1117-3.3)。 220V交流市电通过电源变压器变换成交流低压,再经过桥式整流电路D1~D4和滤波电容C1的整流和滤波,在固定式三端稳压器1117-3.3的输入和GND两端形成一个并不十分稳定的直流电压。此直流电压经过1117-3.3的稳压和C3的滤波便在稳压电源的输出端产生了精度高、稳定度好的3.3V直流输出电压。 图3.9电源电路图 4 软件设计 软件是系统的灵魂,软件的灵活性和强大性将在系统中明显的体现出来,是判断系统的优良与否的主要标准之一。设计软件采用模块化设计方法。系统按照不同的功能予以划分,然后按一定的用途分别编写、调试,最终将所有模块调试成功后,将其各个模块拼接构成为单项电表检测仪系统的软件部分。模块化编程方式有利于程序代码的优化,而且便于设计、调试和维护。 4.1 主程序设计主程序的主要功能 (1) 对单片机系统进行初始化; (2) 内存单元清零; (3) LCD显示器初始化; (4) CS5490初始化; (5) 进行键盘扫描,检测各功能键的闭合情况,并执行相应的子程序; (6) 检测PC机的RS232,用以交换数据。 主程序流程图如图4.1所示。 4.1.1 主程序 ;==================================== ORG 0000H JMP MAIN ORG 000BH JMP INT_T0 ORG 0023H JMP INT_RS232 ;==================================== ORG 0030H MAIN: MOV TMOD,#21H ;T1产生波特率 MOV TH1,#0FDH ;9600@11.0592 MOV TL1,#0FDH MOV TL0,#0 ;T0方式1,50MS定时 MOV TH0,#4CH MOV SCON,#50H ;设定串行口方式1 ANL PCON,#0EFH ;波特率不倍增 SETB TR0 ;打开定时器T0 SETB TR1 ;启动定时器1 图4.1 主程序流程图 SETB ET0 ;T0中断使能 MOV IP,#10H ;设定串行1口为最高中断级别 MOV IE,#92H ;1001 0010B,开启所有中断,允许串行1口、定时器0中断 MOV S2CON,#50H ;设定串行2口方式1, MOV BRT,#0D0H ;600@11.0592MHz,12T MOV AUXR,#10H ;串行2口使用独立波特率发生器,12T MOV A,#00H MOV R0,#20H ;将 20H-7FH 单元清零 MOV R4,#60H MAIN1: MOV @R0,A INC R0 DJNZ R4,MAIN1 ……………… 4.1.2 LCD1602初始化子程序: CALL DELAY5MS ;LCD1602上电后需要延时稳定 CALL DELAY5MS CALL DELAY5MS MOV A,#38H ;LCD,设置8位数据格式,16*2,5*7点阵 CALL LCD_CMD_NC ;第一次写指令,不进行LCD忙检测 CALL DELAY5MS ;延时5MS MOV A,#38H ;LCD,设置8位数据格式,16*2,5*7点阵 CALL LCD_CMD_NC ;第一次写指令,不进行LCD忙检测 CALL DELAY5MS MOV A,#38H ;LCD,设置8位数据格式,16*2,5*7点阵 CALL LCD_CMD_NC ;第一次写指令,不进行LCD忙检测 MOV A,#08H ;显示关,无光标 CALL LCD_CMD ;写指令,进行LCD忙检测 MOV A,#01H ;清除屏幕内容 CALL LCD_CMD ;写指令,进行LCD忙检测 MOV A,#06H ;AC自动加一 CALL LCD_CMD ;写指令,进行LCD忙检测 MOV A,#0CH ;显示开,关光标 CALL LCD_CMD ;写指令,进行LCD忙检测 RET 4.1.3 CS5490初始化子程序: CALL DELAY5MS ; CS5490上电后需要延时稳定 CLR P1.4 CALL DELAY5MS SETB P1.4 CALL DELAY5MS RET 4.2 中断服务程序设计 中断是通过硬件来改变CPU程序运行的方向。程序在执行过程中由于外界的原因而被中间打断的情况称为中断。中断之后所执行的处理程序,称为中断服务程序。本设计主要是定时器的时间中断和串口中断。流程图如图4.2所示。 图4.2中断服务程序流程图 4.2.1 定时器中断程序 定时器中断程序让工作状态指示灯每一秒闪烁一次。 INT_T0: PUSH ACC PUSH PSW MOV TL0,#00H MOV TH0,#4CH ;50MS定时值,@11.0592 INC M_COUNT MOV A,M_ COUNT CJNE A,#10,INT_END ;10*50ms=0.5s MOV M_ COUNT,#0 CPL WORKING ;工作状态灯闪烁 INT_END: POP PSW POP ACC RETI 4.2.2 串口中断程序 串口中断程序用于接收PC机的8位命令数据,可调取测量仪的测量历史数据。 INT_RS232: CLR EA PUSH ACC PUSH PSW JB RI,INT_RS0 ;RI=0,返回 POP PSW POP ACC SETB EA RETI INT_RS0: CLR RI MOV A,SBUF CJNE A,#0F0H,INT_RS9 ;检测第一个'F0',由通讯协议确定 MOV R1,#40H ;第一个'F0'时,赋接收数据区R1=40H MOV @R1,A ;保存接收数据'F0' INT_RS2: MOV R4,#0FFH MOV R5,#0FFH INT_RS3: JB RI,INT_RS4 ;等待,接收数据 NOP DJNZ R4,INT_RS3 DJNZ R5,INT_RS3 JMP INT_RS9 ; 发送的数据错 INT_RS4: CLR RI ;收到,清除RI,以接收下一个 MOV A,SBUF INC R1 MOV @R1,A CJNE R1,#48H,INT_RS2 ;够8位数据? SETB B_REV_OK ;有8位数据接收 POP PSW POP ACC SETB EA RETI INT_RS9: SETB B_REV_ERR ;数据不正确,报错 CALL BEEP_2MS INT_RS232_END: POP PSW POP ACC SETB EA RETI 4.3 LCD1602程序设计 4.3.1 写指令数据到LCD ;RS=L,RW=L,D0-D7=指令码,E=高脉冲 LCD_CMD: CALL CHECKBUSY LCD_CMD_NC: CLR LCD_RS CLR LCD_RW MOV P0,A SETB LCD_EN NOP NOP NOP NOP CLR LCD_EN RET 4.3.2 写显示数据到LCD ;RS=H,RW=L,D0-D7=数据,E=高脉冲 LCD_WDATA: ACALL CHECKBUSY SETB LCD_RS CLR LCD_RW MOV P0,A SETB LCD_EN NOP NOP NOP NOP CLR LCD_EN RET 4.3.3 检测LCD控制器忙状态 ;读数据 ;RS=L,RW=H,E=H,输出:D0-D7=数据 ;P0.7=1,LCD忙,等待。P0.7=0,LCD闲,可以进行读写操作。 CHECKBUSY: PUSH ACC MOV P0,#0FFH CLR LCD_RS SETB LCD_RW SETB LCD_EN BUSYLOOP: NOP JB P0.7,BUSYLOOP CLR LCD_EN POP ACC RET 4.3.4 发送字符串子程序 WRITE: PUSH ACC WRITE1: CLR A MOVC A,@A+DPTR JZ WRITE2 INC DPTR ACALL LCD_WDATA JMP WRITE1 WRITE2: POP ACC RET 4.4 CS5490程序设计 4.4.1 读取温度值 MOV R0,#TEMP MOV A,#10010110B ;PAGE:16 MOV SBUF,A JNB TI,$ ;等待数据发送 CLR TI ;清除数据传送标志 MOV A,#00100111B ;REG ADDRESS:27 MOV SBUF,A JNB TI,$ CLR TI CALL DELAY5MS JNB RI,$ ;等待数据 CLR RI ;收到,清除RI,以接收下一个 MOV A,SBUF MOV @R0,A ;保存温度值,共3个字节 INC R0 JNB RI,$ CLR RI MOV A,SBUF MOV @R0,A INC R0 JNB RI,$ CLR RI MOV A,SBUF MOV @R0,A RET 4.4.2 读取有功功率值 MOV R0,#Pavg MOV A,#10010110B ;PAGE:16 MOV SBUF,A JNB TI,$ ;等待数据发送 CLR TI ;清除数据传送标志 MOV A,#00000101B ;REG ADDRESS:5 MOV SBUF,A JNB TI,$ CLR TI CALL DELAY5MS JNB RI,$ ;等待数据 CLR RI ;收到,清除RI,以接收下一个 MOV A,SBUF MOV @R0,A ;保存,共3个字节 INC R0 JNB RI,$ CLR RI MOV A,SBUF MOV @R0,A INC R0 JNB RI,$ CLR RI MOV A,SBUF MOV @R0,A RET 4.4.3 读取无功功率值 MOV R0,#Qavg MOV A,#10010110B ;PAGE:16 MOV SBUF,A JNB TI,$ ;等待数据发送 CLR TI ;清除数据传送标志 MOV A,#00010100B ;REG ADDRESS:14 MOV SBUF,A JNB TI,$ CLR TI CALL DELAY5MS JNB RI,$ ;等待数据 CLR RI ;收到,清除RI,以接收下一个 MOV A,SBUF MOV @R0,A ;保存,共3个字节 INC R0 JNB RI,$ CLR RI MOV A,SBUF MOV @R0,A
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服