资源描述
数理与信息工程学院
《单片机原理及应用》期末课程设计
题目:IC卡式单片机预付费电度表的设计
专 业: 计算机科学与技术
班 级:
姓 名:
学号:
指导老师:
成 绩:
( 2010.1 )
目 录
第1节 引 言…………………………………………………………………………1
1.1 IC卡式单片机预付费电度表概述……………………………………………1
1.2 本设计任务和主要内容…………………………………………………………2
第2节 系统主要硬件电路设计………………………………………………………4
2.1 方案设计与比较论证……………………………………………………………4
2.1.1电能计量系统方案设计…………………………………………………4
2.2 预付费电度表工作过程及基本原理……………………………………………5
2.2.1预付费电度表工作过程…………………………………………………5
2.2.2有功电能测量的基本原理………………………………………………6
2.3预付费电度表电路………………………………………………………………7
2.3.1 电能计量电路……………………………………………………………7
2.3.2 控制部分………………………………………………………………8
2.3.3 显示电路………………………………………………………………9
2.3.4 IC卡接口电路…………………………………………………………10
2.3.5 电能存储电路…………………………………………………………11
2.3.6 掉电检测电路…………………………………………………………12
2.3.7 磁保持继电器驱动电路………………………………………………12
第3节 系统软件设计…………………………………………………………………14
3.1 主程序设计流程图以及相应代码………………………………………………14
3.2 IC卡检测及读写程序设计………………………………………………………15
3.3外中断0服务程序流程图以及相应代码………………………………………18
3.4 定显示器0中断服务程序流程图以及相应代码………………………………20
第4节结束语…………………………………………………………………………30
参考文献………………………………………………………………………32
IC卡式单片机预付费电度表的设计
第1节 引 言
在工业和日常生活中,电已经成为不可或缺的生活品之一,其重要地位不言而喻。同时,电度表作为电能计量产品被国家列为影晌国计民生的重点仪器仪表产品,无论是计划经济时代还是市场经济时代电度表都是国家重点支持的产品。在我国发展过程中,电度表技术经历了“仿制探索阶段、联合攻关阶段、引进消化阶段、自举创新阶段”四个阶段的发展。使用的电度表种类有机械式、电子式等,但是,诸如此类的电度表均存在数据的重复性和一致性较差、笨重、耗电、需要手工抄表、防窃电差、抗恶劣环境能力差等缺点。
随着微电子技术的迅猛发展,微控制器(单片机)和大规模集成电路在电能计量领域的广泛应用,使电度表的技术水平和性能得到长足发展。本系统利用单片机的可靠性高、便于扩展、控制功能强、低电压、低功耗等优点展开设计,并采用IC卡设置预付费系统,得到电能计量准确、精度高、保密性好、抗干扰强的优质预付费电度表。
1.1 IC卡式单片机预付费电度表概述
IC卡式单片机预付费电度表是一种新型的IC卡式预付费仪表,具主要包括电能计量系统和预付费系统。电能计量系统采用成熟的电子式电能表技术,整体结构合理、工艺先进,实现电能测量、电能值显示、超负荷断电等功能,并具有电子式电能表的各种优点;预付费系统主要利用IC卡实现先付费、再用电。该表在设计过程中,充分考虑到在线仪表的特点,在可靠性和抗干扰能力方面采取了一系列措施,完全符合电磁兼容性标准。该产品各项性能指标符合JBT8328-1996《预付费电度表》标准中对单相电子式预付费电能表的全部技术要求。
结合用户的群众性及经济利益等诸多特殊要求与条件,本电度表引入微控制器,其具有更多的技术特点和优越功能,具体如下:
(1) 采用新型IC卡,一户一卡,互不通用,具有良好的可靠性和安全性。
(2) 具有负荷设定功能,超负荷跳闸功能并记录超负荷次数(可选功能)
(3) 可在20A电流下长期工作,温升小于30度
(4) 具有数据回写功能,回写累积电量,剩余电量,超负荷次数,非正常用电时间,电能脉冲常数至售电系统,便于电力部门管理。
(5) 剩余电量为0时跳闸断电,此时若用户使用短路方式窃电,该表可记录窃电
时间,并回写至售电系统。
(6) 剩余电量不足报警。
(7) IC插座自保护功能,当金属片等异体物质插入IC插座时,读卡部分自动保护但不影响正常计费和其他功能,确保电表不会损坏。
1.2 本设计任务和主要内容
本论文主要研究IC卡式单片机预付费电度表,分别对电能计量、预付费系统、控制电路、显示、IC卡接口等方面进行了深入研究,并增加采用IC卡付费和掉电保护功能。
预付费电度表的设计任务是实现相关的功能及要求,符合现实生产生活的需要。其必须满足具备以下一些要求和功能:
(1) 电能计量准确、精度高、要求至少达到二级表(误差为2%)的精度;
(2) 用户将存有电能的IC卡插入卡槽,卡中电能被读入表中,同时把IC卡清”0”;
(3) 专卡专用.当有非本机卡或异物插入卡槽时,能及时发现,切断卡座的供电,并在液晶显示屏上给出相应的汉字提示信息,且保密性高;
(4) 电度表正常工作时,液晶显示剩余电能值、已用电能值,并随时改写剩余电能和已用的工作是否正常及用电负荷的大小;
(5) 当表内剩余电能不足20KW.H时,在液晶显示器上显示“请及时购电”以提醒用户余电不多,及时购电;
(6) 当表内剩余电能为0时,自动断电,这时用户不能用电。在用户将重新购电的IC卡插入槽中时,表完成上述第一项的功能,恢复供电;
(7) 有负荷限制功能:当用户电流大于25A时自动断电,1min后恢复供电;
(8) 具有掉电保护功能:掉电时,自动把剩余电能从RAM转储在EEPROM中。
预付费电度表的设计主要内容包括电能计量系统设计和预付费系统设计两方面的内容。此处,预付费系统并非本论文讨论的重点。但是为了描述的方便,我们从整体上进行考虑,具体分硬件设计和软件设计等两个方面进行讨论。
[1]硬件设计
预付费电度表根据设计任务的需要,其硬件电路主要包括电能计量电路、控制电路、显示电路、IC卡接口、电能存储器、掉电检测和电源等模块。
电能计量电路:采用电子电度表专用集成电路SM9903。芯片内部包含了模拟乘法器、电压N频率转换器、VFC、计数器(分频器)及控制逻辑。
控制部分为整个电能表的心脏,实现电能脉冲、掉电信号、IC卡信号、串行EFPROM数据的采集和读写,完成显示驱动模块的控制和继电器的驱动等功能。
显示电路:采用液晶显示,其特点是显示内容丰富(可显示汉字),功耗小,可靠性高,电路简单。
IC卡接口电路:采用Atmel公司的存储IC卡AT23C01,用于存储由售电管理系统写入密码、卡号、电度数等。
[2]软件设计
硬件是系统的基础,则软件是系统的灵魂。本系统的软件设计主要依托于硬件设计,采用模块化编程,可分为系统初始化程序、主程序MAIN、IC卡检测及读写程序、定时器0中断服务程序、外中断0服务程序(掉电保护)等。
第2节 系统主要硬件电路设计
2.1 方案设计与比较论证
预付费电度表主要包括电能计量系统和预付费系统。电能计量系统完成了电能测量、电能值显示、超负荷断电等功能;预付费系统主要是利用IC卡实现先付费,再用电的模式。前者追求可靠性,后者追求高安全性。因为预付费系统在此设计中并非重点,所以接下去仅对电能计量系统方案进行设计和论证比较。
2.1.1电能计量系统方案设计
根据电能计量系统的功能要求,有以下一些设计方案,对各类方案进行描述并比较论证,得出结论。
方案一:机械电子式
前置通道采用原感应式电度表电路,通过对转盘转动圈数的计数来测量电能。具体方案是在转盘上涂上大约1cm的“黑条”,在转盘上方或者下方设置一红外线发射接收对管。当红外线照射在“黑条”处,红外线被吸收,无反射,即接收管接收不到红外线;当红外线照在其他部分时,被反射,接收管能接收到红外线。这样转盘每转一圈,产生一个脉冲,再通过对脉冲的整形、计数、显示完成电能的计量。这种方案显示直观,读数容易。但它仍然具有机械式感应电度表的缺点,即耗电多,笨重。
方案二:模数转换式
对电流和电压分别采样,再通过A/D转换器转换成数字信号,然后送入单片机进行相乘运算。并在CPU中设置一个定时器定时对功率进行累加,其系统如图2-1所示。
A/D变换
I/U变换
A/D变换
CPU
液晶显示器
控制键盘
IC卡卡座
图2-1 方案二的系统图
这种方案对信号的采样速度快,但A/D转换器的精度要求高,而且由于电网的电力谐波引入前置通道,导致A/D转换后产生错误数据。为抑制这种干扰,必须在软件上加数字滤波器或在硬件上采用隔离放大器和高精度的运算放大器。这将增加CPU的负担和硬件电路成本,其方案可行而不可取。
方案三:电压频率转换式
采用电压/频率(V/F)转换器加单片机实现对电流和电压的A/D转换。这样,模拟通道中本身的干扰信号被抑制。无须专门的A/D转换器,大大减小了硬件成本。CPU只需对V/F转换后的脉冲进行定时计数,便可测出电压和电流的数字量。同时,电压和电流分别经过零检测电路。将过零脉冲送CPU处理,得出电流和电压的相位差,经过查表得功率因数(cosΦ),按公式P=UIcosΦ计算,便得有功功率,再定时累加就是电能值。系统框图如图2-2所示。
I/U变换
模拟开关
过零检测
过零检测
V/F转换
CPU
液晶显示器
控制键盘
IC卡卡座
图2-2 方案三的系统图
这种方案CPU要实现读写卡控制、求功率因数(cosΦ)、电能计算等功能,负担较重,一般的MCS-51、MCS-96和PIC系列单片机难以胜任。
2.2 预付费电度表工作过程及基本原理
2.2.1预付费电度表工作过程
结合系统设计的要求,我们可知,预付费电度表的工作过程如下:
(1)上电时,在液晶屏上显示“电子电能表”。随后将存放在EEPROM中的剩余电能调出到RAM中;
(2)当单片机工作正常时,能显示剩余电能和已用电能;
(3)当有本机IC卡插入卡槽时,根据有电卡和无电卡(空卡)做出不同的处理。若为有电卡,则显示“正在读卡,主稍候”。稍候显示:“请抽卡”。这时卡中的电能被写入表中,且将卡清零;若为空卡,则显示“空卡”;
(4)当用电时,剩余电能递减,已用电能递增;
(5)当插入无效卡时,系统提示“IC卡型号不对,请换卡”;
(6)当电用完时,切断电源,并显示:“电用完,请及时购电”;
(7)液晶显示器显示的内容与处理,如表2-1所示。
表2-1 液晶显示器显示内容以及处理
显示内容
处理
超负荷
减少用电负荷
密码有误
非本机卡,请换卡
卡短路
卡座的电源短路,可能是认为破坏
非法卡
IC卡型号不对,请换卡
读写错误
IC卡可能已坏,请换卡
电子电能表
上电复位
正在读卡,请稍后
将IC卡中数据送入表中,清IC卡
请抽卡
IC卡已读写完
空卡
所插IC卡无电能
2.2.2有功电能测量的基本原理
本设计采用有功电能测量集成电路SM9903,芯片内部包含了四象限模拟乘法器、积分器、电压/频率转换器VFC、计数器(分频器)及控制逻辑,它能将正弦电压和电流相乘后,转换为频率输出。只需对输出脉冲累计计数,就可计量出电能。
SM9903内部电路模型如图2-3所示。
四象限模拟乘法器
积分器
V/F
转换器
P
P
图2-3SM9903内部电路模型示意图
在正弦稳态情况下,设正弦电压和电流分别为:
(2-1)
(2-2)
式中,u为交流电压瞬时值,i为交流电流瞬时值,U为交流电压有效值,I为交流电流有效值,为交流电的角频率,=u-i为电压电流的相位差。
经四象限模拟乘法器相乘后的瞬时功率为:
(2-3)
可见,瞬时功率有恒定分量UI和正弦分量两面三量两面三刀部分,正弦分量的频率是电压(或电流)频率的两倍。图2-4所示为正弦电流、电压和瞬时功率的波形图。
图2-4 正弦电流、电压和瞬时功率的波形图
在图2-4中,u是瞬时电压,i是瞬时电流,p是瞬时功率。
瞬时功率p经积分器后,得有功功率P,即
P= (2-4)
以上分析表明,有功功率P为恒定分量,将正比于P的电压经V/F变换后,输出的是频率随P变化的脉冲,只需将脉冲累计计数,则计数值N即为电能。
2.3预付费电度表电路
预付费电度表的硬件电路可分为电能计量电路、显示电路、IC卡接口、电能存储器、掉电检测和电源几大模块。下面分别介绍各部分电路。
2.3.1电能计量电路
电能计量电路采用了电度表专用集成电路SM9903。
SM9903采用3m硅栅BICMOS工艺制成。电路设计先进,内部集成有缓冲放大器、乘法器、V/F型A/D转换器等电路。本芯片模拟部分和数学部分可分开供电,所以可靠性较高。封装采用DIP20塑封。
SM9903是将取自电阻网络的交流电压和交流电流信号进行放大。应用乘法器将功率转换成电压,再通过V/F(电压/频率转换)型A/D转换器等电路将电压信号转换成可供MCU读取和直接驱动步进电机的数字信号。SM9903同时具有测量负向有功功率的功能,测量负向有功功率以正向有功功率计算,并通过IND(9脚)输出负电平以指示测量负向有功功率。
如图2-5所示,此即为由SM9903构成的电能计量电路。该电路采用340Ω的锰铜片作为电流采样电阻,用精密金属膜作为电压采样电阻。C4、R17、VD1、VD2、C8、C9、VZ1、VZ2为电容降压式电源,为SM9903提供±5V的工作电压。32768Hz为表用晶体振荡器,为SM9903提供时钟。C6、C7为积分电容。R8为参考电压调整电位器。本电路无须机械计数器。
图2-5 SM903构成的电能计量电路
2.3.2控制部分
控制部分为整个电度表的心脏,实现电能脉冲、掉电信号、IC卡信号、串行EEPROM数据的采集与读写,完成显示驱动模块的控制和驱动等功能。
单片机的选择是决定电度表性能的关键因素,本设计采用MCS-51系列单片机,其特点是通用强,堆栈丰富和编程容易。51系列单片机的指令系统中,2-3B的指令很多。当程序指针PC跳飞至某条指令的中间时,会把操作数当成指令码执行而引起混乱,这一致命的弱点将导致电度表的可靠性下降。
本设计选用Atmel公司的AT89C52,其内部有8KB的程序存储器,无须外部扩展,使硬件电路简单,电路图如2-6所示。
图2-6 由AT89C52组成的主控电路
2.3.3 显示电路
本系统采用液晶显示器。其特点是显示内容丰富(可显示汉字),功耗小,可靠性高,电路简单。器件型号是:SMG12232B-2,显示容量为122*32点阵。采用总线方式连接。显示电路如图2-7所示。
图2-7液晶显示接口电路
2.3.4 IC卡接口电路
IC卡接口电路采用的是Atmel公司的存储IC卡AT24C01,用于存储由售电管理系统写入的密码、卡号、电度数等,是电管部门与用户连接的桥梁。为了提高IC卡操作的可靠性,必须有卡上下电控电路、卡插入检测电路、卡短路检测电路等辅助电路,结合软件可以大大提高其读写的准确性和可靠性。IC卡接口电路如图2-8所示。
图2-8IC卡接口电路
2.3.5 电能存储器
电能存储器由串行EEPROM和上拉电阻组成,在串行时钟和数据端接了上拉电阻R25和R27,分别连接到IC4的P3.0和P3.1 端。串行EEPROM选用AT24C04,AT24C04为低电压(2.5V-5.5V)、长寿命(可擦写10万次以上)器件。在掉电时存储剩余电度数。
图2-9电能存储电路
2.3.6 掉电检测电路
掉电检测电路比较器(运放LM393)、电压基准LM336(2.5V)、R31、R32、R33、R34、R35、R36和二极管VD7组成。
图2-10掉电检测电路
R31为VZ3提供合适的工作电流,VZ3上端作为电压基准,R32、R33对5V电压分压,为VZ做比较。电源电压正常时,V-《V+,比较器输出高电平;当电源掉电时,V-跟随电源电压下降,而V+在一定时间内保持2.5V不变。当下降到V-》V+时,比较器输出低电平,使微处理器产生外中断,做掉电处理。VD7、R36为施密特电路,是为了避免电压在阀值左右波动时引起反复的写操作。
2.3.7 磁保持继电器驱电路
磁保持继电器使电器能使电磁线圈中保持上次驱动脉冲所注入的磁场不变,即在正常工作时不需要加驱动电流,只在需要改变触点状态时加上200ms左右的反向脉冲即可。随后不需要任何驱动。这就大节省了能量,降低了功耗。
磁保持继电器由AT89C52的P1.0、P1.1发出控制信号,P1.1为高电平时线圈中有正向电流,P1.0为高电平时线圈渡过反向电流。驱动电路由电阻R21、R45、R46、R47、R48、R49、R50、R51、PNP三极管VT1、VT4,三极管VT5、VT6、VT7、VT8组成。L为电磁圈。当P1.1=1、P1.0=0时三极管VT4、VT7、VT8导通,而VT1、VT5、VT6截止。流经L的电流方向为+12V=>VT4的E极=>VT4的C极=>线圈B端=>线圈A端=>VT7的C极=>VT7的E极=>地,继电器触点接通;当P1.1=0、P1.0=1时三极管VT4、VT7、VT8截止,而VT1、VT5、VT6导通。流经L的电流方向为+12V=>VT1的E极=>VT1的C极=>线圈A端=>线圈B端=>VT6的C极=>VT6的E极=>地,继电器触点断开。当P1.1=P1.0=0时,所有三极管均截止,线圈无电流。P1.1=P1.0=1是不允许的情况,因为这时所有的三极管导能,功耗很大。
图2-11磁保持继电器驱动电路
第3节 系统的软件设计
为求的高可靠性要求的电度表,我们针对该系统的特征对其进行系统模块化程序结构,主要可以分为系统初始化程序、主程序MAIN、IC卡检测及读写程序、外中断0服务程序、定时器0中断服务程序等。
3.1主程序设计流程图以及相应代码
主程序是程序的核心,主要判断是否有卡插入、是否有键按下,基于此种判断是否需进行相关操作运行。下面就是主程序的算法流程图和相关程序代码。
开 始
初始化
是否有卡插入
卡操作
是否有键按下
读键值
显 示
Y
Y
N
N
图3-1主程序流程图
主程序程序清单:
ORG 0100H
MAIN: MOV SP,#60H ;堆栈设置
LCALL DIRRST ;执行显示复位程序
LCALL KEYRST ;执行键盘复位程序
LCALL AT24RST ;执行E2PROM复位程序
LCALL AT24RSTI ;执行IC卡复位程序
LCALL DDJCRST ;设置中断
LCALL DLCSRST ;设置定时器
MAIN1: LCALL KEY ;执行键扫描程序
MOV A,SEER
CJNE A,SEE,MAIN3
MOV A,#1
CJNE A,SEE,MAIN2
SJMP MAIN4
MAIN2: MOV A,#2
CJNE A,SEE,MAIN5
SJMP MAIN4
MAIN3: MOV SEER,SEE
LCALL LCDRESET ;执行液晶显示器复位程序
MOV A,#00H
LCALL LCDFILL
MAIN4: LCALL DIR ;执行显示程序
MAIN5: LCALL ICK ;执行IC卡检测及读写程序
AJMP MAIN1
3.2 IC卡检测及读写程序设计
IC卡检测程序清单:
ICK: JNB K2,ICK1
SETB VCCI
RET
ICK1: MOV DEL,#10
LCALL DELY
JNB K2,ICK2
SETB VCCI
RET
ICK2: CLR VCCI
MOV DEL,#10
LCALL DELY
JB VCCDL,ICK3
SETB VCCI
MOV SEERR,SEE
MOV SEE,#5
MOV SEER,SEE
LCALL LCDRESET ;执行液晶显示器复位程序
MOV A,#00H
LCALL LCDFILL
LCALL DIR
MOV DEL,#60
LCALL DELY
MOV SEE,SEERR
RET
ICK3: MOV MRDI,#00H
MOV NUMBYT,#8
MOV SLA,#0A0H
LCALL RDNBYTI
MOV A,#0AAH
CJNE A,MRD1I,ICK4
CJNE A,MRD2I,ICK4
CJNE A,MRD3I,ICK4
CJNE A,MRD4I,ICK4
CJNE A,MRD5I,ICK4
CJNE A,MRD6I,ICK4
CJNE A,MRD7I,ICK4
CJNE A,MRD8I,ICK4
SJMP ICK5
ICK4: MOV SEERR,SEE
MOV SEE,#4
MOV SEER,SEE
LCALL LCDRESET ;执行液晶显示器复位程序
MOV A,#00H
LCALL LCDFILL
LCALL DIR
MOV DEL,#60
LCALL DELY
MOV SEE,SEERR
RET
ICK5: MOV MRDI,#10H
MOV NUMBYT,#3
MOV SLA,#0A0H
LCALL RDNBYTI
MOV A,#00H
CJNE A,MRD1I,ICK6
CJNE A,MRD2I,ICK6
CJNE A,MRD3I,ICK6
MOV SEERR,SEE
MOV SEE,#7
MOV SEER,SEE
LCALL LCDRESET ;执行液晶显示器复位程序
MOV A,#00H
LCALL LCDFILL
LCALL DIR
MOV DEL,#60
LCALL DELY
MOV SEE,SEERR
RET
ICK6: MOV SEERR,SEE
MOV SEE,#8
MOV SEER,SEE
LCALL LCDRESET ;执行液晶显示器复位程序
MOV A,#00H
LCALL LCDFILL
LCALL DIR
MOV MTD1I,#00H
MOV MTD2I,#00H
MOV MTD3I,#00H
MOV MTDI,#10H
MOV NUMBYT,#4
MOV SLA,#0A0H
LCALL WRNBYTI
CLR ET0
CLR TR0
MOV A,MRD3I
CLR C
ADD A,SDL3
MOV SDL3,A
MOV A,MRD2I
ADDC A,SDL2
MOV SDL2,A
MOV A,MRD1I
ADDC A,SDL1
MOV SDL1,A
LCALL ZHCS
MOV TH0,#0FFH
MOV TL0,#0FEH
SETB ET0
SETB TR0
MOV DEL,#60
LCALL DELY
MOV SEE,#12
LCALL LCDRESET ;执行液晶显示器复位程序
MOV A,#00H
LCALL LCDFILL
LCALL DIR
ICK7: JB K2,ICK8
SJMP ICK7
ICK8: SETB VCCI
MOV SEE,#2
RET
3.3外中断0服务程序的流程图以及代码
外中断0主要用于实现电能的掉电保护,当电源突然断开时,由于掉电保护的作用,使单片机产生中断,迅速将电能保护到AT24C04中去,以便下次来电时重新恢复电能值。以下为程序流程图和程序代码清单。
中断入口
保护现场
将剩余电能存入EEPROM中
恢复现场
中断返回
图3-2外中断0服务程序(掉电保护)流程图
外中断初始化程序清单:
DDJCRST: SETB IT0
SETB EA
SETB EX0
RET
;外中断服务程序
DDJC: PUSH A
PUSH B
PUSH DPL
PUSH DPH
PUSH 00H
PUSH 01H
PUSH 02H
PUSH 03H
PUSH 04H
PUSH 05H
PUSH 06H
PUSH 07H
MOV JWW,C
MOV MTD1,YDL1
MOV MTD2,YDL2
MOV MTD3,YDL3
MOV MTD4,YDL4
MOV MTD5,SDL1
MOV MTD6,SDL2
MOV MTD7,SDL3
MOV MTD,#00H
MOV NUMBYT,#8
MOV SLA,#0A0H
LCALL WRNBYT
MOV C,JWW
POP 07H
POP 06H
POP 05H
POP 04H
POP 03H
POP 02H
POP 01H
POP 00H
POP DPH
POP DPL
POP B
POP A
RETI
3.4定时器0中断服务程序以及代码
定时器0中断服务主要用以实现脉冲计数,从而实现电能的累加。以下即为服务程序流程图和程序代码清单。
中断入口
保护现场
剩余电能减1
已用电能加1
是否超负荷
显示“超负荷”,延时5min
恢复现场
中断返回
Y
N
图3-3定时器0中断服务程序流程图
定时器0中断服务程序清单:
DLCSRST: MOV TMOD,#05H
MOV TH0,#0FFH
MOV TL0,#0FFH
MOV MRD,#00H
MOV SLA,#0A0H
MOV NUMBYT,#7
LCALL RDNBYT
MOV YDL1,MRD1
MOV YDL2,MRD2
MOV YDL3,MRD3
MOV YDL4,MRD4
MOV SDL1,MRD5
MOV SDL2,MRD6
MOV SDL3,MRD7
LCALL ZHCS
MOV A,SDL1
CJNE A,#00H,DLCSRST1
MOV A,SDL2
CJNE A,#00H,DLCSRST1
MOV A,SDL3
CJNE A,#00H,DLCSRST1
SETB DYKG
MOV SEE,#9
RET
DLCSRST1: CLR DYKG
MOV DEL,#10
LCALL DELY
SETB EA
SETB ET0
SETB TR0
RET
DLCS: PUSH A
展开阅读全文