2008-06-22 00:32:26 阅读153 评论0 字号:大中小
论
在当今的信息社会,要想在激烈的竞争中取胜,关键在于能快速、准确地传递和掌握信息,并{zd0}限度地提高工作效率。但现在许多工厂及供电公司仍然采用人工控制电闸开关和一些大型的强电设各的工作,这既不安全,也浪费人力,而且即时性差。随着科技的飞速发展,自动化的进程也在不断加剧,自动化装置在各方面得到广泛应用,给各行各业的人们工作带来了极大的方便,也为科技的进一步向前发展提供了物质保障,受到人们的普遍关注和重视。
随着科技的飞速发展,自动化的进程也在不断加剧,自动化装置在各方面得到广泛应用,给各行各业的人们工作带来了极大的方便,也为科技的进一步向前发展提供了物质保障,受到人们的普遍关注和重视。
这里介绍的6通道继电器输出系统就是利用单片机控制继电器的一种远程多路控制系统,由于体积小,成本低,不仅适合嵌入到各种大功率的工控设备中进行控制,也适合居民的家用电器控制。真正实现对远距离的各种设备进行远程开关控制。
系统方案及功能简介
系统方案
6通道继电器输出系统组成方框图如(2-1)所示,它有单片机控制器,按键输入、LED显示、继电器输出控制、EEPROM等电路组成。
1) EM78P419N单片机是整个系统的核心,负责数据数理,数据输入/输出显示、控制继电器通断等。
2) 按键输入电路负责对系统初始化等一系列工作参数进行设定输入。
3) LED显示器在工作过程中显示控制的继电器工作状态。
4) EEPROM 用于保存和读取设置的延时时间
5) 直流稳压系统电路提供5v、24v电源,分别给控制系统、继电器供电。
功能简介
2.2.1 工作过程及技术要求
1、将拨动开关打到“工作”方式档,“SW1” 、“SW2” 、“SW3” 、“SW4” 、“SW5” 、“SW键有效。
(1) 按“SW1”, 通道1继电器吸合工作,LED1亮,延时设定时长后,自动off。
(2) 按“SW2”, 通道2继电器吸合工作,LED2亮,延时设定时长后自动off。
(3) 按“SW3”,通道3继电器吸合工作,LED3亮,延时设定时长后,关闭。
(4) 按“SW4”, 通道4继电器吸合工作,LED4亮,延时设定时长后,关闭。
(5) 按“SW5”, 通道5继电器吸合工作,LED5亮,延时设定时长后,关闭。
(6) 按“SW6”, 通道6继电器吸合工作,LED6亮,延时设定时长后,关闭。
2、将拨动开关打到“设置”方式档,此时绿色LED闪烁。“5s”、“15s”、“30s” 、“60s” 、“120s” 、“300s” “SW1” 、“SW2” 、“SW3” 、“SW4” 、“SW5” 、“SW6” 键有效。
(1)按“SW1”后,再按“5s”、“15s”、“30s” 、“60s” 、“120s” 、“300s”键,可为通道1设置对应延时启动时间。此时绿色LED闪烁。
(2)按“SW2”后,再按“5s”、“15s”、“30s” 、“60s” 、“120s” 、“300s”键,可为通道2设置对应延时启动时间。此时绿色LED闪烁。
(3)按“SW3”后,再按“5s”、“15s”、“30s” 、“60s” 、“120s” 、“300s”键,可为通道3设置对应延时启动时间。此时绿色LED闪烁。
(4)按“SW4”后,再按“5s”、“15s”、“30s” 、“60s” 、“120s” 、“300s”键,可为通道4设置对应延时启动时间。此时绿色LED闪烁。
(5)按“SW5”后,再按“5s”、“15s”、“30s” 、“60s” 、“120s” 、“300s”键,可为通道5设置对应延时启动时间。此时绿色LED闪烁。
(6)按“SW6”后,再按“5s”、“15s”、“30s” 、“60s” 、“120s” 、“300s”键,可为通道6设置对应延时启动时间。此时绿色LED闪烁。
通道继电器输出系统产品正面视图
单片机及电路设计
EM78P419N单片机的功能选用
3.1.1 概括描述
EM78P419N是采用低功?、高速CMOS 工艺制造的8位单片机。其内部有4K×13 位一次性只读ROM(OTP-ROM)。因此,能够为客户提供开发和校验程序的??。此外,它还提供一个保护位避免用户存在OTP的程序被读取,3个选择位xx可以满足用户的需要。同时,用户可以使用ELAN烧写器轻松开发程序。
3.1.2 功能特点
? 工作电压范围:2.3V~5.5V 基于0°C ~ 70°C (商规)
2.5V~5.5V 基于–40°C ~ 85°C (工规)
? 工作频率范围(基于双时钟信号):石英晶振:DC ~ 20MHz/2clks,5V;
DC ~ 8MHz/2clks,3V
RC振荡:DC ~ 4MHz/2clks,5V; DC ~
4MHz/2clks,3V
? 低功耗: 5V/4MHz 工作条件下电?小于2.2mA
3V/32KHz 条件下电?典型值为15μA
休眠模式下电?典型值为1μA
? 4K×13 位片内ROM
? 144×8位片内寄存器(SRAM)
? 3个双向I/O 端口
? 8级堆栈供子程序嵌套
? 8位实时定时/计数器(TCC),其信号源、触发沿可编程选择,溢出产生中断
? 8位多路A/D转换器,精度达12位
? 3个脉冲宽?调制器(PWM),精度达10位
? 1对比较器(可作为OP使用)
? 省电(SLEEP)模式
? 6个中断源:TCC溢出中断 输入状态变化中断(可从SLEEP模式唤醒) 外部中断
ADC转换结束中断 PWM周期匹配结束中断 比较器输出高/低电平中断
? 可编程自由运行看门狗定时器(WDT)
? 8个I/O引脚可编程设置为下拉
? 8个I/O引脚可编程设置为上拉
? 8个I/O引脚可编程设置为漏极开路
? 每个指?周期为2个时钟周期
? 封装类型:
24 pin skinny DIP 300mil : EM78P419NK
24 pin SOP 300mil : EM78P419NM
? 电压检测器检测范围:(2.0V± 0.1V)
3.1.3 引脚分配(封装)
3.1.4 复位电路
如图3.2所示电路是外部复位电路,使用外部RC脉冲电路,R应使用40k,Rin为避免过大放电电流和保护单片机口,D在掉电时充当短路回路。
3.1.5 晶振电路
EM78需要如图晶振电路,其中石英频率4Mhz。电阻是为保护osco口,电容是帮助谐振的。单片机内部有一个非门,与两个电容,晶体共同构成谐振电路。若不接,大部份情况下也可以用。但是有可能振不起来。C1、C2取值为2.7pf。晶振电路如图3.3
电路设计
3.2.1 键盘
键盘是单片机应用系统中最常用的输入设备,操作人员一般都是通过键盘向单片机系统输入指令、地址和数据,实现简单的人机通讯。
常用的键盘接口分为独立式按键接口和扫描式接口。独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O 口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。本系统采用扫描式按键。
1、扫描键盘工作原理
扫描键盘如下例,工作原理如图3.4所示, EM78P419N单片机P60~P65为行,P66~P67为列。首先将行拉高,扫描各位值,然后,将列拉高,再次读取各位的值。通过读输入口的状态,便可判断击键情况。如输出0111时,输入口的16种状态与击键的对应关系如表1所示。单列线的扫描频率(记为Fs)一般应界于50~400Hz之间。义隆单片机因为内部有上拉电阻,因此可以不外加上拉电阻。简化了电路设计及结构,
增加了电路的可靠性
图 3.4 扫描原理
2、 按键的去抖动问题
由于触点的弹性作用,机械按键在闭合和断开瞬间会产生抖动,实际电压波形如图3.5所示。其中T1、T2、TS分别为前沿抖动时间、后沿抖动时间和按键稳定时间。T1、T2取决于触点的机械特性,一般为5~12ms;TS则主要取决于击键速度的快慢和按键按下时间的长短。统计研究表明,以正常速度击键时,T1、T2、TS之和一般不小于12ms。
按键抖动引起的{zd0}问题是一次击键被误识别为多次击键,因此应避免在抖动期T1、T2内对输入行线状态进行采样。去抖动电路的设计是硬件扫描键盘控制器设计中的关键之一。我们有硬件方法和软件去抖方法可以选择,软件去抖有实现方便可靠,且经济实惠,故常常采用。原理及是利用单片机延时,避开波形闪烁区。
3、全功能键盘控制器的功能要求
在键盘使用过程中,实际击键情况有两种:单击和连击。单击时用户希望通过短时间击键只产生一个有效键值;连击时用户长时间按下按键,希望持续快速产生多个有效键值。为方便使用,键盘设计应区分快速单击和持续连击:两者都用来快速产生多个键值,区别在于击键的动作和使用的场合。前者要求每次单击后释放按键,常用于参数小范围内的精调;而后者则要求按键长时间保持在按下状态,以实现参数大范围内的快速调节。
连击过程如图3.5所示,其中tJ为去抖时间,即从击键起到产生{dy}个有效键值的最小时间间隔,tF和tS分别为首次重复延时和持续连击时间间隔。三者的取值要求参见表3.1。
3.2.2 继电器输出控制
1、工作原理
当单片机P2口某一位输出为高电平时。发光二极管发光。输出回路导通,NPN型三极管1815采用共射接法如图3.6,三极管是电流放大器件,有三个极,分别叫做集电极C,基极B,发射极E。分成NPN和PNP两种。1815为NPN型,其驱动原理如下:对于NPN型硅三极管,我们把从基极B流至发射极E的电流叫做基极电流Ib;把从集电极C流至发射极E的电流叫做集电极电流Ic。这两个电流的方向都是流出发射极的,所以发射极E上就用了一个箭头来表示电流的方向。三极管的放大作用就是:集电极电流受基极电流的控制(假设电源能够提供给集电极足够大的电流的话),并且基极电流很小的变化,会引起集电极电流很大的变化,且变化满足一定的比例关系:集电极电流的变化量是基极电流变化量的β倍,即电流变化被放大了β倍,所以我们把β叫做三极管的放大倍数(β一般远大于1,例如几十,几百)。如果我们将一个变化的小信号加到基极跟发射极之间,这就会引起基极电流Ib的变化,Ib的变化被放大后,导致了Ic很大的变化。如果集电极电流Ic是流过一个电阻R的,那么根据电压计算公式U=R*I可以算得,
图3.6 继电器驱动电路
这电阻上电压就会发生很大的变化。我们将这个电阻上的电压取出来,就得到了放大后的电压信号了。
电路中续流二极管IN4007的作用是保护晶体管T。当继电器J吸合时,二极管D截至,不影响电路工作。继电器释放时,由于继电器线圈存在电感,所以会在线圈的两端产生较高的感应电压。这个感应电压的极性是上负下正,正端接在晶体管T的集电极上,当感应电压与V之和超过集电结反相耐压值时,晶体管T就有可能损坏。加入二极管D后,继电器线圈产生的感应电流由二极管D流过,因此不会产生很高的感应电压,晶体管得到了保护。
3.2.3 继电器
1、主要电气参数
(1)线圈电源和功率:指继电器线圈电源是直流还是交流,以及线圈消耗的额定功率。一般用于微机控制系统的初级输出,其驱动端线圈常用直流型的。
(2)额定工作电压或额定工作电流:指继电器正常工作时线圈需要的电压或电流值。一般同一种型号的继电器都有不同的额定工作电压或额定工作电流,以适应不同电路的需要。
(3)线圈电阻:它指线圈的电阻值。利用该值和额定工作电压,就可知其额定工作电流。反之亦然。
(4)吸合电压或电流:它指继电器能产生吸合动作的最小电压或电流,其值一般为额定电压或电流值的75%左右。如GJ-SH-124LM继电器,其额定电压为24v,而吸合电压应为17v。一般来讲,仅给继电器加吸合电压,其工作是不可靠的。
(5)释放电压或电流:继电器两端的电压减小到一定数值时,继电器就从吸合状态转换到释放状态,释放电压或电流是指产生释放动作的{zd0}电压或电流,其值往往比吸合电压小得多,因此继电器类似于一种带大回差电压的施密特触发器。
(6)接点负荷:指接点的负载能力。因为继电器的接点在切换时能承受的电压和电流值是有限的。如28V(DC)×10A,220V(AC)×5A等,当继电器工作时其电流和电压都不应超过此值。否则会影响甚至损坏接点。一般同一型号的继电器的接点负荷值都是相同的。
2、继电器的选用
在选用继电器时,一般应考虑下列因素:
(1)继电器额定工作电压的选择:其值应等于或小于继电器线圈控制电路的电压;在继电器驱动时,还要考虑其额定工作电流。是否在所设计的驱动电路输出电流的范围之内;必要时可增加一级驱动或需增加一级中间继电器。
(2)接点负荷的选择;根据电路所需驱动的外设,选择合适的负荷,主要是从被驱动设备工作电压的大小,类型和工作电流大小来考虑。
(3)接点的数量和种类:同一系列的继电器接点相接点类型可有不同,如有单刀双掷,双刀双拥,三刀双掷等。可根据需要选择,以充分利用各组节点。达到简化控制线路、缩小体积的目的。
(4)有关继电器的体积、封装形式、工作环境、绝缘能力以及吸合和释放时间等因素,在继电器选择时也应一并考虑。在各种参数均能符合要求的情况下,选用性能价格比高的产品。表3.2为JZC型继电器的一些电气参数。
表3.2 JZC型继电器的一些电气参数
3.2.4 LED显示
发光二极体单向导通,常做工作时的指示灯用。它有不同显示颜色,电路中使用LED用于显示工作状态,其中led7由EM78P419N第P52引脚输出控制。当工作方式为设置模式led7亮。当设置时,led不停闪烁。其他6通道继电器的工作状态由6个led分别显示。其与继电器控制端并联输入。串联电阻是保护发光二极体,阻值为3k左右。电路中如图3.7所示。
电源
本设计需要设计+5v、+24v、独立电源,用来给单片机和诸多数字电路提供电压,独立电源的设计如下:直流稳压电源有四部分组成,即:电源降压电路、整流电路、滤波电路、稳压电路等。其组成框图如图3-8所示, 220V交流电经变压、整流、滤波后,由两个in4742 稳压管串联如图连接后可得到+24v电压,一片78L05三端稳压器将输出电压稳定在+5v。3.4.1 电源降压电路
电容降压(也可理解成电容限流)的电源体积小、经济、可靠、效率高,缺点是不如变压器降压的电源安全。通过电容器把交流电引入负载中,对地有220V电压,人易触电,但若用在不需人体接触的电路内部电路电源中,本缺点也可克服。如冰箱电子温控器或遥控电源的开/关等电源都是用电容器降压原理。
系统中电流粗估如下,6个二极管 6*5mA,6继电器6* 5mA 总共60mA左右,电容取值通过如下:
U/ Xc =I
Xc=1/2*PI*f*C
其中Xc为容抗,PI为圆周率,f为交电频率,C为电容。
可得C取0.82μF X2电容 ;
1M欧 1\8W并联电阻是为了放电之用,防止人接触时触电。
3.4.2 稳压管的特性
稳压二极管(又叫齐纳二极管),此二极管是一种直到临界反向击穿电压前都具有很高电阻的半导体器件.在这临界击穿点上,反向电阻降低到一个很少的数值,在这个低阻区中电流增加而电压则保持恒定,稳压二极管是根据击穿电压来分档的,因为这种特性,稳压管主要被作为稳压器或电压基准元件使用.,稳压二极管可以串联起来以便在较高的电压上使用,通过串联就可获得更多的稳定电压.4749为24v稳压二极管,因其消耗电流较大,发热量大,故采用12v 4742稳压二极管串联。本电路中就是使用串联2只4742来提供24v电源的。
3.4.3 三端稳压器
三端稳压器,主要有两种,一种输出电压是固定的,称为固定输出三端稳压器,另一种输出电压是可调的,称为可调输出三端稳太器,其基本原理相同,均采用串联型稳压电路。在线性集成稳压器中,由于三端稳压器只有三个引出端子,具有外接元件少,使用方便,性能稳定,价格低廉等优点,因而得到广泛应用。其中78L05是常用一种,有时可以与7805换用,在此电路中为了降低电流消耗,取用78L05,它能够提供{zd0}100ml电流,{zd0}稳压电源32伏。
图3.8 独立电源框图
3.4.4 滤波电路
电源降压电路是将交流电网220V的电压变为所需要的电压值,然后通过整流电路将交流电压变成脉动的直流电压。由于此脉动的直流电压还含有较大的波纹,必须通过滤波电路加以滤除,从而得到平滑的直流,220μf 50v电解容为低通滤波,0.1μf50v陶瓷电容为高通滤波。整个电路的供电电源原理图如图3.9所示:
串行I2C总线EEPROM 24LC01A
3.5.1 I2C总线介绍
---- PHILIPS公司早在十几年就前推出了 I2C串行总线,它是具备多主机系统所需的包括裁决和高低速设备同步等功能的高性能串行总线。
1、I2C总线硬件结构和术语
I2C串行总线有两根信号线:一根双向的数据线SDA;另一根是时钟线SCL。所有接到I2C总线上的设备的串行数据都接到总线的SDA线,各设备的时钟线SCL接到总线的SCL。为了避免总线信号的混乱,要求各设备连接到总线的输出端必须是开漏输出或
集电极开路输出的结构。因此SCL SDA需要外加上拉电阻。设备与总线的接口电路如图3.10所示。
设备上的串行数据线 SDA接口电路应该是双向的,输出电路用于向总线上发数据,输入电路用于接收总线上的数据。串行时钟线也应是双向的,作为控制总线数据传送的主机要通过 SCL输出电路发送时钟信号,同时要检测总线上SCL上的电平以决定什么时候发下一个时钟脉冲电平;作为接受主机命令的从机,要按总线上的SCL的信号发 出或接收SDA上的信号,也可以向SCL线发出低电平信号以延长总线时钟信号周期。总线空闲时,因各设备都是开漏输出,上拉电阻RP使SDA和SCL线都保持高电平。任一设备输出的低电平都使相应的总线信号线变低,也就是说各设备的SDA是“与”关系,SCL也是“与”关系。 I2C总线在传送数据的过程中,主要有三种控制信号:起始信号,结不信号,应答信号。
起始信号:当SCL为高电平时,SDA由高电平转为低电平时,开始传送数据
结束信号:当SCL为高电平时,SDA由低电平转为高电平时,结束数据传送
应答信号:接收数据的器件在接收到8bit数据后,向发送数据的器件发出低电平信号,表示已收到数据。这个信号可以是主控器件发出,也可以是从动器件发出。总之由接收数据的器件发出。
---- 总线对设备接口电路的制造工艺和电平都没有特殊的要求(NMOS、CMOS都可以兼容)。数据传送率按I2C总线可高达每秒十万位,高速方式可高达每秒四十万位。总线上允许连接的设备数以总线上的电���量不超过400pF为限。 总线的运行(数据传输)由主机控制。所谓主机即启动数据的传送(发出启动信号),发出时钟信号,传送结束时发出停止信号的设备,通常主机是微处理器。被主机寻访的设备都称为从机。为了进行通讯,每个接到I2C总线的设备都有一个{wy}的地址,以便于主机寻访。主机和从机的数据传送,可以由主机发送数据到从机,也可以是从机发到主机。凡是发送数据到总线的设备称为发送器,从总线上接收数据的设备被称为接收器。24LC01A是单主控EEPROM,在系统中,使用之保存数据,以使我们的设置信息掉电后不丢失。
程序设计
程序设计
4.1.1 主程序工作过程
程序复位入口后,先进行端口、ROM初始化工作,之后看SET/SW档是否在SET模式,是EEPROM初始化,否则,读取EEPROM,然后判断是否完成EEPROM初始化,是且有健按下,根据健值进行对应的处理,热机完成。程序开始主循环。判断是否SET/SW模式,后执行按键扫描及手动触发子程序。主程序流程图如图4.1
4.1.2 子程序原理及流程图
1、时间设置子程序
子程序入口,判断是否SET模式,根据按键设置延时时长,将设置值写入EEPROM中,返回主程序。时间设置子程序流程如图4.2
2、计时子程序流程如图4.3
子程序入口,判断继电器是否为ON,若为是则计数器减一,若否至中断返回子程序;判断时间到否,到继电器OFF,否则计数器减一;计数器清零。
3、继电器转换子程序流程如图4.4
子程序入口,设置按键档位,是否为SET档,是则至LED闪烁子程序。否则计数器清零,继电器是否ON,若ON则OFF,若OFF则ON;返回主程序。
4、LED闪烁子程序流程如图4.5
子程序入口,LED关闭,延时一段时间,LED开,延时一段时间,LED关,延时一段时间,LED开,延时,至主程序。
变量定义及初始化模块
;文件名 6RLY.DT
;文件功能 六通道继电器控制系统头文件
;MCU型号 EM78P419N
;首次创作 CW (-.-)
;创建日期 2008-4-13 18:16:55
;{zh1}修改 2008-4-23 8:17:06
;==================================================
;引脚定义
;==================================================
;P5口
SWSET == R5.0 ;设置/工作模式选择
RLY6 == R5.1 ;继电器6
RLY5 == R5.2 ;继电器5
RED == R5.3 ;红色LED
RLY4 == R5.6 ;继电器4
RLY3 == R5.7 ;继电器3
;==================================================
;P6口
H1 == R6.0 ;键盘行0
H2 == R6.1 ;键盘行1
H3 == R6.2 ;键盘行2
H4 == R6.3 ;键盘行3
H5 == R6.4 ;键盘行4
H6 == R6.5 ;键盘行5
L1 == R6.6 ;键盘列1
L2 == R6.7 ;键盘列2
;==================================================
;P7口
IR == R7.0 ;红外数据
SDA EQU R7.1 ;数据线
;SDAC EQU 1 ;数据控制
SCL EQU R7.2 ;时钟线
;SCLC EQU 2 ;时钟控制
RLY1 == R7.3 ;继电器1
RLY2 == R7.4 ;继电器2
;==================================================
;常数定义
;==================================================
;==================================================
;数据变量申明
;==================================================
;JSQ1 EQU 0X0D
JSQ EQU 0X10 ;计数器
;RCFG EQU 0X11 ;标志
AJL EQU 0X12 ;
AJZ EQU 0X13 ;
AJD EQU 0X14 ;
EPDZ EQU 0X15 ;EEP中数据起始地址
QSDZ EQU 0X16 ;MCU中数据起始地址
NUM EQU 0X17 ;数据字节数
DATA1 EQU 0X18 ;临时寄存器
MOVB EQU 0X19 ;8BIT计数
AJDW EQU 0X1A ;按键档位
TMP0 EQU 0X1B ;
TMP1 EQU 0X1C ;
TMP2 EQU 0X1D ;
ZTBH0 EQU 0X1F ;状态保护0
;==================================================
;BANK0
C1TML EQU 0X20 ;通道1定时时间
C1TMH EQU 0X21 ;
C2TML EQU 0X22 ;通道2定时时间
C2TMH EQU 0X23 ;
C3TML EQU 0X24 ;通道3定时时间
C3TMH EQU 0X25 ;
C4TML EQU 0X26 ;通道4定时时间
C4TMH EQU 0X27 ;
C5TML EQU 0X28 ;通道5定时时间
C5TMH EQU 0X29 ;
C6TML EQU 0X2A ;通道6定时时间
C6TMH EQU 0X2B ;
TIME0 EQU 0X2C ;定时器0
TIME1 EQU 0X2D ;定时器1
TIME2 EQU 0X2E ;定时器2
TIME3 EQU 0X2F ;定时器3
C1TM0 EQU 0X30 ;通道1计时时间
C1TM1 EQU 0X31 ;
C2TM0 EQU 0X32 ;通道2计时时间
C2TM1 EQU 0X33 ;
C3TM0 EQU 0X34 ;通道3计时时间
C3TM1 EQU 0X35 ;
C4TM0 EQU 0X36 ;通道4计时时间
C4TM1 EQU 0X37 ;
C5TM0 EQU 0X38 ;通道5计时时间
C5TM1 EQU 0X39 ;
C6TM0 EQU 0X3A ;通道6计时时间
C6TM1 EQU 0X3B ;
ZTBH1 EQU 0X3E ;状态保护1
ZTBH2 EQU 0X3F ;状态保护2
;==================================================
;BANK1
;==================================================
;标志位定义
;==================================================
RCFG EQU 0X018
KAD == R11.7 ;锁定状态
BGY == R11.6
SDJX == R11.5 ;锁定状态
BKOF == R11.4 ;不SW OFF
LXOK == R11.3 ;LUX 超出
LXH == R11.2
LXZS == R11.1
BGY1 == R11.0
;==================================================完整的程序代码见附录1
4.3 定时器计时周期
计时周期T=8*256*256*分频系数*时钟周期=0.262144s
延时时长t=n*T
5S延时时有5s=n*0.262144s
n=5/0.262144s=19
15s延时时有15s=n*0.262144s
n=15/0.262144s=57
30s延时时有30s=n*0.262144s
n=30/0.262144s=114
60s延时时有60s=n*0.262144s
n=60/0.262144s=229
120s延时时有 120s=n*0.262144s
n=120/0.262144s=458
300s延时时有300s=n*0.262144s
n=300/0.262144s=1144
通道继电器仿真
仿真程序界面
仿真使用方法
打开“设置”菜单下的“设置延时“项,系统会弹出如图5.2“设置窗口”,分别为每一通道设置延时后,单击“设置”按钮,退出设置窗口。回主界面,单击需要开通的继电器。Eg:单击继电器1,会出现如图5.3所示延时画面,文本框xxx。小灯表示继电器开通。按钮变为“断开”,单击“断开”,按钮变为“闭合”.
延时时间到,自动关闭。图片转化为。界面显示如图5.4所示。
如需帮助单击“帮助”菜单。退出界面单击菜单“文件”---“关闭”即可。
这次设计马上就要搁笔了,{zh1}对本次设计作简要的总结。
这个设计是选定指导老师给的题目之后,通过查阅相关资料,综合运用自己大学所学的所有课程知识,针对具体的设计目的,设计出的系统。在这个全过程中,本人不仅在理论层次上有大的提升,同时在具体的实践中也受益匪浅。
从对题目的研究设定到硬件电路图的绘制,以及软件方面的编程和各个模块中芯片的理解,特别是硬件电路的制作充满挑战伴随挫折,充满热情伴随打击的过程中,我感触颇深,它已不仅是一个对我四年学习知识情况和我综合能力的检验,而且还是对我的钻研精神,面对困难的心态,做事的毅力和耐心的考验。我在这个过程中深刻的感受到了做毕业设计的意义所在。
这个课题的根本技术就是单片机控制与串口通讯技术,加部分外围电路来实现一些复杂的功能。可以根据要求改变软件来实现功能的更新和扩展。
本课题的重点、难点是:
a) 单片机控制大功率器件问题。
b) 大功率器件的驱动。
c) 串口芯片的认识以及编程。
通过完成本课题,我了解并掌握了单片机的基本理论知识,更深入的掌握单片机在实际电路中的开发和应用。为以后从事单片机软硬件产品的设计开发打下了一定的基础,培养了从事产品研发的信心。也培养了作为工程技术人员所应该具备的基本专业素质。
而由于本人时间和能力有限,本文所作的研究也一定有很多疏漏和不足之处。在此,恳请各位老师和同学多提宝贵意见和建议。在以后的学习和工作中,我会以此为出发点,不断完善在这方面的技术知识和能力,争取在该项技术的学习和研究方面取得更大的进步。
谢
在此毕业论文完成之际,谨向为此论文倾注了大量心血的老师,以及提供了许多帮助的同学表示深深的敬意和谢意!
衷心感谢我的指导老师李长诗、王增胜老师。本文的完成离不开老师们的悉心指导和大力支持。无论是在课题的研究分析阶段,还是在课题设计的各个阶段,以及{zh1}论文的撰写阶段,自始至终都是在李老师全面、具体的指导下进行的。对我们完成的各项内容,李老师都认真的检查,并及时的为我们分析指正其中的不足之处,并为设计的进一步进行提出很多宝贵的建议。这些建议和帮助为我的设计和论文的完成起到了关键的作用。不仅在此次设计上,在以后的工作和生活上,李老师给我的教诲我也将铭记于心。认真的完成每一个项目和课题。李老师这种谦虚谨慎的治学态度,一丝不苟的工作作风,以及关心同学、帮助同学的精神令我们敬佩,是我们学习的榜样。在此,再次向;李老师表示衷心的感谢!
在本设计的完成过程中,也得到了系里诸多领导和老师的支持和指导,再此也表示诚挚的谢意和敬意!
我还要感谢我的同学。在设计完成的过程中,我们进行了广泛的交流和协作,他们也给我提出了很多意见和建议。也正是在他们热情的帮助下使我的设计得以顺利的完成。
父母在我的求学道路上倾注了大量的心血和汗水,父亲甚至为我上学也出了车祸,人事不知。衷心的感谢他们对我的培育之恩,正是他们坚实的后盾使我顺利完成学业。衷心地祝福我的父母健康、幸福!
{zh1},我想借此机会,向大学四年来,所有关心、帮助和支持我的各位领导、老师和同学表示衷心地感谢,并祝他们工作顺利、万事如意!
[1]李学海. EM78单片机实用教程[M].北京:电子工业出版社 2003,5.
[2] 周兴华.C语言设计实例详解[M].北京:北京航空航天大学出版社,2006,7.
[3] 张毅刚,彭喜元.新编MCS-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社,2004,11.
[4] 尹勇,李宇.µVision2单片机应用程序开发指南[M].北京:科学出版社,2005,2.
[5] 崔讳.Protel 99 SE[M].北京:海军出版社,2006,2.
[6] 戴家.51单片机C语言应用程序设计[M].北京:电子工业出版社,2006,7.
[7] 刘文涛.基于C51语言编程的MCS-51单片机实用教程[M].北京:原子能出版社,2004,6.
[8] 窦振中.单片机外围器件实用手册输出通道器件分册[M].北京:北京航空航天大学出版社,2002.
[9] 李华.MCS-51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,1993.
[10] 王晓明.电动机的单片机控制[M].北京:北京航空航天大学出版社,2000.
[11] 高吉祥.电子技术基础实验与课程设计[M].北京:电子工业出版社,2002.
[12] 朱定华.单片机原理及接口技术[M] .北京:电子工业出版社,2001,4.
[13] 吴微,文军.单片机原理及制作[M].武汉:武汉大学出版社,1992.
[14] 刘志强,罗庆生.一种智能化温度检测系统的设计[J].中国测试技术,2003,29(3):95-98.
[15] 薛小玲,吴寿强.数字式温度检测系统的设计[J].闽江学院学报,2003,24(2):120-125
[16] 王洪明,基于 DS18B20 的储粮温度检测系统的设计[J].经济技术协作信息,2003(7):48-52.
[17] 丁英丽.基于光纤传感器的智能温度检测系统的设计[J].计量与测试技术,2003,30(2):74-78.
附录A 材料清单
Part Type |
Designator |
Footprint |
Description |
0.68u275VAC |
C1 |
CC5 |
电容 |
0.1u16V |
C10 |
CC5 |
电容 |
0.1u16V |
C2 |
CC5 |
电容 |
220u50V |
C3 |
CE3.5 |
电解电容 |
0.1u50V |
C4 |
CC5 |
电容 |
0.1u50V |
C5 |
CC5 |
电容 |
220U16V |
C6 |
CE2.5 |
电解电容 |
0.1u16V |
C7 |
CC5 |
电容 |
27p |
C8 |
CC5 |
电容 |
27p |
C9 |
CC5 |
电容 |
220AC |
CON1 |
DZT2 |
2PIN端子 |
OUT1 |
CON2 |
DZT2 |
2PIN端子 |
OUT2 |
CON3 |
DZT2 |
2PIN端子 |
OUT3 |
CON4 |
DZT2 |
2PIN端子 |
OUT4 |
CON5 |
DZT2 |
2PIN端子 |
OUT5 |
CON6 |
DZT2 |
2PIN端子 |
OUT6 |
CON7 |
DZT2 |
2PIN端子 |
4MHz |
CY1 |
XTAL |
晶体谐振器 |
4007 |
D1 |
DO41 |
晶体二极管 |
4007 |
D10 |
DO41 |
晶体二极管 |
4007 |
D11 |
DO41 |
晶体二极管 |
4007 |
D2 |
DO41 |
晶体二极管 |
4007 |
D3 |
DO41 |
晶体二极管 |
4007 |
D4 |
DO41 |
晶体二极管 |
4148 |
D5 |
DO35 |
晶体二极管 |
4007 |
D6 |
DO41 |
晶体二极管 |
4007 |
D7 |
DO41 |
晶体二极管 |
4007 |
D8 |
DO41 |
晶体二极管 |
4007 |
D9 |
DO41 |
晶体二极管 |
RED |
LED1 |
LED3 |
发光二极管 |
RED |
LED2 |
LED3 |
发光二极管 |
RED |
LED3 |
LED3 |
发光二极管 |
RED |
LED4 |
LED3 |
发光二极管 |
RED |
LED5 |
LED3 |
发光二极管 |
RED |
LED6 |
LED3 |
发光二极管 |
GREEN |
LED7 |
LED3 |
发光二极管 |
1815 |
Q1 |
TO-92 |
NPN型晶体三极管 |
1815 |
Q2 |
TO-92 |
NPN型晶体三极管 |
1815 |
Q3 |
TO-92 |
NPN型晶体三极管 |
1815 |
Q4 |
TO-92 |
NPN型晶体三极管 |
1815 |
Q5 |
TO-92 |
NPN型晶体三极管 |
1815 |
Q6 |
TO-92 |
NPN型晶体三极管 |
20K |
R1 |
R6 |
固定电阻器 |
10K |
R10 |
R6 |
固定电阻器 |
100K |
R11 |
R6 |
固定电阻器 |
3K |
R12 |
R6 |
固定电阻器 |
3K |
R13 |
R6 |
固定电阻器 |
3K |
R14 |
R6 |
固定电阻器 |
20K |
R15 |
R6 |
固定电阻器 |
20K |
R16 |
R6 |
固定电阻器 |
20K |
R17 |
R6 |
固定电阻器 |
150 2W |
R18 |
R5L |
固定电阻器 |
1.5M |
R19 |
R5L |
固定电阻器 |
10K |
R2 |
R6 |
固定电阻器 |
10K |
R3 |
R6 |
固定电阻器 |
3K |
R4 |
R6 |
固定电阻器 |
3K |
R5 |
R6 |
固定电阻器 |
3K |
R6 |
R6 |
固定电阻器 |
20K |
R7 |
R6 |
固定电阻器 |
20K |
R8 |
R6 |
固定电阻器 |
100K |
R9 |
R6 |
固定电阻器 |
OJE-SS-124DM |
RLY1 |
RLY6 |
单刀单掷继电器 |
OJE-SS-124DM |
RLY2 |
RLY6 |
单刀单掷继电器 |
OJE-SS-124DM |
RLY3 |
RLY6 |
单刀单掷继电器 |
OJE-SS-124DM |
RLY4 |
RLY6 |
单刀单掷继电器 |
OJE-SS-124DM |
RLY5 |
RLY6 |
单刀单掷继电器 |
OJE-SS-124DM |
RLY6 |
RLY6 |
单刀单掷继电器 |
5S |
S1 |
SWPB |
轻触按键开关 |
120S |
S10 |
SWPB |
轻触按键开关 |
SW6 |
S11 |
SWPB |
轻触按键开关 |
300S |
S12 |
SWPB |
轻触按键开关 |
SET |
S13 |
BDKG2 |
单刀单掷开关 |
SW1 |
S2 |
SWPB |
轻触按键开关 |
15S |
S3 |
SWPB |
轻触按键开关 |
SW2 |
S4 |
SWPB |
轻触按键开关 |
SW3 |
S5 |
SWPB |
轻触按键开关 |
30S |
S6 |
SWPB |
轻触按键开关 |
SW4 |
S7 |
SWPB |
轻触按键开关 |
60S |
S8 |
SWPB |
轻触按键开关 |
SW5 |
S9 |
SWPB |
轻触按键开关 |
78L05 |
U1 |
TO-92B |
稳压IC |
EM78P419N |
U2 |
DIP24 |
EMC 8位A/D型MCU EM78P458 |
24LC01A |
U3 |
DIP8 |
I2C接口电可擦除只读存储器 |
4742A |
ZD1 |
DO41 |
稳压二极管 |
4742A |
ZD2 |
DO41 |
稳压二极管 |
;文件名 6RLY.DT
;文件功能 六通道继电器控制系统源程序
;MCU型号 EM78P419N
;首次创作 SW (-.-)
;创建日期 2008-4-13 18:16:55
;{zh1}修改 2008-4-23 8:17:06
;时钟频率 4MHz
;修改记录
;2008-4-13 18:17:35 首建
INCLUDE "EM78P419N.H"
INCLUDE "6RLY.H"
;==================================================
;主程序
;==================================================
;==================================================
;PAGE 0
;==================================================
ORG 0X0000
MOV A,@0X08
CONTW
JMP CSH
;==================================================
ORG 0X0008 ;中断程序
;==================================================
INIT PROC
MOV ZTBH0,A ;备份ACC
SWAPA R4 ;备份R4
MOV ZTBH1,A
SWAPA STATUS ;备份R4
MOV ZTBH2,A
CLR R4
CLR RF
;==================================================
JS1:
JZ TIME0 ;计时器加1
JMP ZD1
;==================================================
JS: INC TIME1 ;计时处理
JBS TIME1,3 ;是否到1000b 及8
JMP ZD1
CLR TIME1
C1SJBJ: ;C1时间到自动OFF
JBS RLY1 ;ON否?
JMP C2SJBJ
JZ C1TM0 ;计时
JMP $+2
INC C1TM1
MOV A,C1TM0 ;时间到否?
SUB A,C1TML
JBS Z
JMP $+3
MOV A,C1TM1
SUB A,C1TMH
JBC C
JMP C2SJBJ
BC RLY1
CLR C1TM0
CLR C1TM1
;==================================================
C2SJBJ: ;C2时间到自动OFF
JBS RLY2 ;ON否?
JMP C3SJBJ
JZ C2TM0 ;计时
JMP $+2
INC C2TM1
MOV A,C2TM0 ;时间到否?
SUB A,C2TML
JBS Z
JMP $+3
MOV A,C2TM1
SUB A,C2TMH
JBC C
JMP C3SJBJ
BC RLY2
CLR C2TM0
CLR C2TM1
;==================================================
C3SJBJ: ;C3时间到自动OFF
JBS RLY3 ;ON否?
JMP C4SJBJ
JZ C3TM0 ;计时
JMP $+2
INC C3TM1
MOV A,C3TM0 ;时间到否?
SUB A,C3TML
JBS Z
JMP $+3
MOV A,C3TM1
SUB A,C3TMH
JBC C
JMP C4SJBJ
BC RLY3
CLR C3TM0
CLR C3TM1
;==================================================
C4SJBJ: ;C4时间到自动OFF
JBS RLY4 ;ON否?
JMP C5SJBJ
JZ C4TM0 ;计时
JMP $+2
INC C4TM1
MOV A,C4TM0 ;时间到否?
SUB A,C4TML
JBS Z
JMP $+3
MOV A,C4TM1
SUB A,C4TMH
JBC C
JMP C5SJBJ
BC RLY4
CLR C4TM0
CLR C4TM1
;==================================================
C5SJBJ: ;C5时间到自动OFF
JBS RLY5 ;ON否?
JMP C6SJBJ
JZ C5TM0 ;计时
JMP $+2
INC C5TM1
MOV A,C5TM0 ;时间到否?
SUB A,C5TML
JBS Z
JMP $+3
MOV A,C5TM1
SUB A,C5TMH
JBC C
JMP C6SJBJ
BC RLY5
CLR C5TM0
CLR C5TM1
;==================================================
C6SJBJ: ;C6时间到自动OFF
JBS RLY6 ;ON否?
JMP ZD1
JZ C6TM0 ;计时
JMP $+2
INC C6TM1
MOV A,C6TM0 ;时间到否?
SUB A,C6TML
JBS Z
JMP $+3
MOV A,C6TM1
SUB A,C6TMH
JBC C
JMP ZD1
BC RLY6
CLR C6TM0
CLR C6TM1
;==================================================
ZD1:
SWAPA ZTBH2
MOV STATUS,A
SWAPA ZTBH1
MOV R4,A
SWAP ZTBH0
SWAPA ZTBH0
RETI
ENDP
;==================================================
MAIN: ;主程序循环
;==================================================
ENI
WDTC ;等到许可后进行A/D
MOV A,@0X01
IOW ZDPBC ;中断屏蔽
CLR RF
BC RED
JBC SWSET
BS RED
MOV A,P6 ;扫描有键下按否?
AND A,@0X3F
JBC Z
JMP MAIN
;==================================================
AJSM: ;按键处理
;==================================================
MOV A,@2
CALL DELAYNMS
MOV A,P6 ;扫描有键下按否?
AND A,@0X3F
JBC Z
JMP MAIN
; BS RED
MOV AJL,A
CLRA
JBC AJL,0
MOV A,@1
JBC AJL,1
MOV A,@2
JBC AJL,2
MOV A,@3
JBC AJL,3
MOV A,@4
JBC AJL,4
MOV A,@5
JBC AJL,5
MOV A,@6
JBC AJL,6
MOV A,@7
OR A,@0
JBS Z
JMP AJSM1
MOV A,@1
CALL DELAYNMS
JMP MAIN
AJSM1: ;按键扫描
MOV AJZ,A
DEC AJZ
MOV A,@0XC0 ;扫描列值
IOW P6C
MOV A,@0XFF
MOV P6,A
MOV A,@2
CALL DELAYNMS
MOV A,P6
MOV AJL,A
CLRA
JBC AJL,7
MOV A,@6
ADD AJZ,A
AJSM2:
MOV A,@0X3F ;等待按键释放
IOW P6C
MOV A,@0XFF
MOV P6,A
MOV A,@2
CALL DELAYNMS
MOV A,P6
AND A,@0X3F
JBS Z
JMP $-3
MOV A,@2
CALL DELAYNMS
;==================================================
AJCL:
MOV A,@7
JBS SWSET
MOV AJDW,A
MOV A,AJZ
ADD PC,A
JMP SW1CL
JMP SW2CL
JMP SW3CL
JMP SW4CL
JMP SW5CL
JMP SW6CL
JMP TM5SCL
JMP TM15SCL
JMP TM30SCL
JMP TM60SCL
JMP TM120SCL
JMP TM300SCL
JMP MAIN
;==================================================
KADF: JMP MAIN
;==================================================
CSH: ;设置各IO口及功能控制寄存器状态 测试
;==================================================
WDTC
MOV A,@0X01
IOW P5C ;设置P5口
IOW P7C
CLR P5
CLR P7
MOV A,@0X3F
IOW P6C ;设置P6口
MOV A,@0XFF
MOV P6,A
CLR WUCR
CLR AOSR
CLR RF
MOV A,@0X00
IOW XLC ;设置上拉
WDTC
MOV A,@0X00 ;80
IOW WDTCON ;WDT控制
MOV A,@0X01
IOW ZDPBC ;中断屏蔽
BC IOCS
CLRA
;==================================================
;设置各变量初始值
CLR RF
CLR TCC
BS RED
CLRA
CALL DELAYNMS
CLRA
CALL DELAYNMS
BC RED
;==================================================
ZRCCZ: ;载入存储值
;==================================================
;读及比较EEP初始化标志
MOV A,@JSQ
MOV QSDZ,A
MOV A,@0X10
MOV EPDZ,A
CALL BYTEREAD
MOV A,@10
CALL DELAYNMS
MOV A,@5AH
XOR A,JSQ
JBS Z
CALL EPCSH ;未初始化则EEP初始化
;从EEP中读入C1-C4设定时间
MOV A,@8
MOV NUM,A
MOV A,@C1TML
MOV QSDZ,A
MOV A,@0
MOV EPDZ,A
CALL PAGEREAD
MOV A,@10
CALL DELAYNMS
;从EEP中读入C5-C6设定时间
MOV A,@4
MOV NUM,A
MOV A,@C5TML
MOV QSDZ,A
MOV A,@0X08
MOV EPDZ,A
CALL PAGEREAD
CLR R4
CLR TIME2
CLR TIME3
CLR RCFG
MOV A,@7
MOV AJDW,A
JMP MAIN
;==================================================
EPCSH: ;E2P初始化
;==================================================
BC RAMP0
MOV A,@0X13 ;C1预设时间
MOV C1TML,A
MOV A,@0
MOV C1TMH,A
MOV A,@0X39 ;C2预设时间
MOV C2TML,A
MOV A,@0
MOV C2TMH,A
MOV A,@0X72 ;C3预设时间
MOV C3TML,A
MOV A,@0
MOV C3TMH,A
MOV A,@0XE4 ;C4预设时间
MOV C4TML,A
MOV A,@0
MOV C4TMH,A
MOV A,@8 ;向EEP中写入数据
MOV NUM,A
MOV A,@C1TML
MOV QSDZ,A
MOV A,@0X0
MOV EPDZ,A
CALL PAGEWRITE
MOV A,@10
CALL DELAYnMS
MOV A,@0XC9 ;C5预设时间
MOV C5TML,A
MOV A,@0X01
MOV C5TMH,A
MOV A,@0X78 ;C6预设时间
MOV C6TML,A
MOV A,@0X04
MOV C6TMH,A
MOV A,@4 ;向EEP中写入数据
MOV NUM,A
MOV A,@C5TML
MOV QSDZ,A
MOV A,@0X08
MOV EPDZ,A
CALL PAGEWRITE
MOV A,@10
CALL DELAYnMS
MOV A,@0X5A ;向EEP中写入初始化标志5A
MOV JSQ,A
MOV A,@JSQ
MOV QSDZ,A
MOV A,@0X10
MOV EPDZ,A
CALL BYTEWRITE
MOV A,@10
CALL DELAYnMS
RET
;==================================================
INCLUDE "E2PROM.ASM"
;==================================================
SW1CL:
MOV A,@0 ;设档位
MOV AJDW,A
JBC SWSET ;不是SET模式,ON/OFF
JMP LEDTS
CLR C1TM0 ;清计时
CLR C1TM1
JBS RLY1
JMP $+3
BC RLY1 ;ON则OFF
JMP MAIN
BS RLY1 ;OFF则ON
JMP MAIN
;==================================================
SW2CL:
MOV A,@1 ;设档位
MOV AJDW,A
JBC SWSET ;不是SET模式,ON/OFF
JMP LEDTS
CLR C2TM0 ;清计时
CLR C2TM1
JBS RLY2
JMP $+3
BC RLY2 ;ON则OFF
JMP MAIN
BS RLY2 ;OFF则ON
JMP MAIN
;==================================================
SW3CL:
MOV A,@2 ;设档位
MOV AJDW,A
JBC SWSET ;不是SET模式,ON/OFF
JMP LEDTS
CLR C3TM0 ;清计时
CLR C3TM1
JBS RLY3
JMP $+3
BC RLY3 ;ON则OFF
JMP MAIN
BS RLY3 ;OFF则ON
JMP MAIN
;==================================================
SW4CL:
MOV A,@3 ;设档位
MOV AJDW,A
JBC SWSET ;不是SET模式,ON/OFF
JMP LEDTS
CLR C4TM0 ;清计时
CLR C4TM1
JBS RLY4
JMP $+3
BC RLY4 ;ON则OFF
JMP MAIN
BS RLY4 ;OFF则ON
JMP MAIN
;==================================================
SW5CL:
MOV A,@4 ;设档位
MOV AJDW,A
JBC SWSET ;不是SET模式,ON/OFF
JMP LEDTS
CLR C5TM0 ;清计时
CLR C5TM1
JBS RLY5
JMP $+3
BC RLY5 ;ON则OFF
JMP MAIN
BS RLY5 ;OFF则ON
JMP MAIN
;==================================================
SW6CL:
MOV A,@5 ;设档位
MOV AJDW,A
JBC SWSET ;不是SET模式,ON/OFF
JMP LEDTS
CLR C6TM0 ;清计时
CLR C6TM1
JBS RLY6
JMP $+3
BC RLY6 ;ON则OFF
JMP MAIN
BS RLY6 ;OFF则ON
JMP MAIN
;==================================================
TM5SCL:
JBS SWSET
JMP MAIN
MOV A,@0X13
MOV TMP0,A
MOV A,@0
MOV TMP1,A
JMP TMSV
;==================================================
TM15SCL:
JBS SWSET
JMP MAIN
MOV A,@0X39
MOV TMP0,A
MOV A,@0
MOV TMP1,A
JMP TMSV
;==================================================
TM30SCL:
JBS SWSET
JMP MAIN
MOV A,@0X72
MOV TMP0,A
MOV A,@0
MOV TMP1,A
JMP TMSV
;==================================================
TM60SCL:
JBS SWSET
JMP MAIN
MOV A,@0XE4
MOV TMP0,A
MOV A,@0
MOV TMP1,A
JMP TMSV
;==================================================
TM120SCL:
JBS SWSET
JMP MAIN
MOV A,@0XC9
MOV TMP0,A
MOV A,@0X01
MOV TMP1,A
JMP TMSV
;==================================================
TM300SCL:
JBS SWSET
JMP MAIN
MOV A,@0X78
MOV TMP0,A
MOV A,@0X04
MOV TMP1,A
JMP TMSV
;==================================================
TMSV:
MOV A,AJDW
XOR A,@7
JBC Z
JMP MAIN
MOV A,AJDW
MOV TMP2,A
BC C
RLC TMP2
MOV A,@2 ;向EEP中写入数据
MOV NUM,A
MOV A,@TMP0
MOV QSDZ,A
MOV A,TMP2
MOV EPDZ,A
CALL PAGEWRITE
MOV A,@10
CALL DELAYnMS
MOV A,@C1TML
ADD A,TMP2
MOV R4,A
MOV A,TMP0
MOV R0,A
INC R4
MOV A,TMP1
MOV R0,A
;==================================================
LEDTS:
BC RED
MOV A,@65
CALL DELAYNMS
BS RED
MOV A,@65
CALL DELAYNMS
BC RED