1、本科生毕业论文(设计)打印专用纸毕业设计 题 目 S7-200 PLC在十字路口交通信号灯的控制学生姓名 杨元琮 学号 0702250002 班 级 08221班 专 业 自动化电气技术 系 部 电气工程系 指导教师 陈家敏 题目类型: 理论研究 实验研究 工程设计 工程技术研究 软件开发 2009 年 12月 10日目 录目录1摘要21、S7-200 PLC的概述31.1 S7-200 PLC的基本配置3图1.121.2 S7-200 PLC 的主要技术性能22、S7-200 PLC的基本指令12.1 基本逻辑指令1表2.112.2 定时器指令12.3 计数器指令23、十字路口交通信号灯PL
2、C控制器的设计43.1 交通信号灯PLC控制系统的控制要求43.2 交通信号灯布置4图2.143.3 交通信号灯的时序图4图2.253.4 交通信号灯的I/O分配及I/O接线图53.5 交通信号灯PLC的控制指令表63.6 交通信号灯PLC的控制系统调试8 致谢语10参考文献11摘 要随着社会经济快速的发展,现在城市交通控制与管理问题的现状,是人们越来越关注的问题了。结合城乡交通的实际情况阐述交通信号灯控制系统的工作原理。本文介绍了应用PLC实现十字路口交通信号灯的自动控制。对PLC控制系统的电路原理、设计计算和程序调试等问题进行具体分析讨论。关键词:(PLC ; 交通信号灯 ; 自动控制 ;
3、 程序 ; 设计)1、S7-200 PLC的概述 SIMATIC S7-200系列PLC适用于各行各业,各种场合中的检测、监测及控制的自动化。S7-200系列的强大功能使其无论在独立运行中,或相连成网络皆能实现复杂控制功能。【1】因此S7-200系列具有极高的性能/价格比。S7-200系列出色表现在以下几个方面: * 极高的可靠性* 极丰富的指令集* 易于掌握* 便捷的操作* 丰富的内置集成功能* 实时特性* 强劲的通讯能力S7-200系列在集散自动化系统中充分发挥其强大功能。使用范围可覆盖从替代继电器的简单控制到更复杂的自动化控制。【1】应用领域极为广泛,覆盖所有与自动检测,自动化控制有关的
4、工业及民用领域,包括各种机床、机械、电力设施、民用设施、环境保护设备等等。【2】如:冲压机床,磨床,印刷机械,橡胶化工机械,中央空调,电梯控制,运动系统。1.1 S7-200 PLC的基本配置因为S7-200PLC有5种CPU,其中CPU226XM与CPU226基本相同,所以S7-200共有4种基本配置。CPU221(6入/4出)CPU222(8入/6出)CPU224(14入/10出)CPU226(XM)(24入/16出)输入点地址I0.0、I0.1、I0.2、I0.3、I0.4、I0.5I0.0、I0.1、I0.2、I0.3、I0.4、I0.5、I0.6、I0.7I0.0、I0.1、I0.2
5、、I0.3、I0.4、I0.5、I0.6、I0.7I1.0、I1.1、I10.2、I0.0、I0.1、I0.2、I0.3、I0.4、I0.5、I0.6、I0.7I1.0、I1.1、I1.2、I1.3、I1.4、I1.5 I1.6、I1.7I2.0、I2.1、I2.2、I2.3、I2.4、I2.5 I2.6、I2.7输出点地址Q0.0、Q0.1、Q0.2、 Q0.3Q0.0、Q0.1、Q0.2、Q0.3、Q0.4、 Q0.5Q0.0、Q0.1、Q0.2、Q0.3、Q0.4、Q0.5、Q0.6、 Q0.7Q1.0、 Q0.0、Q0.1、Q0.2、Q0.3、Q0.4、Q0.5、Q0.6、 Q0.7Q
6、1.0、 Q1.1 、Q1.2、Q1.3、Q1.4、Q1.5、Q1.6、 Q1.7图1.11.2 S7-200 PLC 的主要技术性能下面以S7-200 CPU224为例说明S7系列PLC的主要技术性能。1一般性能S7-200 CPU224的一般性能如表所示。电源电压DC 24V,AC 100230V方案二:液晶显示方式。液晶显示效果出众,可以运用菜单项来方便操作,比较简电源电压波动DC 20.4-28.8V,AC 84-264 V(47-63Hz)环境温度、湿度水平安装0550C,垂直安装0450C,595%大气压8601080hPa保护等级IP20到IEC529输出给传感器的电压DC 24
7、V (20.4-28.8V)输出给传感器的电流280mA,电子式短路保护(600mA)为扩展模块提供的输出电流660mA程序存储器8K字节/典型值为2.6K条指令数据存储器2.5K字存储器子模块1个可插入的存储器子模块数据后备整个BD1在EEPROM中无需维护在RAM中当前的DB1标志位、定时器、计数器等通过高能电容或电池维持,后备时间190h(400C时120h),插入电池后备200天编程语言LAD,FBD,STL程序结构一个主程序块(可以包括子程序)程序执行自由循环。中断控制,定时控制(1255ms)子程序级8级用户程序保护3级口令保护指令集逻辑运算、应用功能位操作执行时间0.37s扫描时
8、间监控300ms(可重启动)内部标志位256,可保持:EEPROM中0112计数器0256,可保持:256,6个高速计数器定时器可保持:256,4个定时器,1ms30s16个定时器,10ms5min236个定时器,100ms54min接口一个RS485通信接口可连接的编程器/PCPG740P = 2 * ROMAN II,PG760P = 2 * ROMAN II,PC(AT)本机I/O数字量输入:14,其中4个可用作硬件中断,14个用于高速功能数字量输出:10,其中2个可用作本机功能,模拟电位器:2个可连接的I/O数字量输入/输出:最多94/74模拟量输入/输出:最多28/7(或14)AS接
9、口输入/输出:496第 5 页 振荡源的稳定性,主要由起振时间频率稳定度和占空比稳定度决定 起振时间可由电路参数整定稳定度受振荡器类型温度和电压等参数影响复位电路的可靠性。2输入特性S7-200 CPU224的输入特性如表所示。【2】 S7-200 CPU224输入特性类型源型或汇型输入电压DC 24V,“1信号”:14-35A,“0信号”:0-5A,隔离光耦隔离,6点和8点输入电流“1信号”:最大4mA输入延迟(额定输入电压)所有标准输入:全部0.2-12.8ms(可调节)中断输入:(I0.0-0.3)0.2-12.8ms(可调节)高速计数器:(I0.0-0.5)最大30kHz表1.23输出
10、特性S7-200 CPU224输出特性如表示。S7-200 CPU224的输出特性类型晶体管输出型继电器输出型额定负载电压DC 24V(20.4-28.8V)DC 24V(4-30V)AC24-230V(20-250V)输出电压“1信号”:最小DC 20VL+/L-隔离光耦隔离,5点继电器隔离,3点和4点最大输出电流“1信号”:0.75A“1信号”:2A最小输出电流“0信号”:10sA“0信号”:0mA输出开关容量阻性负载:0.75A灯负载:5W阻性负载:2A灯负载:DC30W,AC200W2、S7-200 PLC的基本指令2.1 基本逻辑指令S7-200系列的基本逻辑指令与FX系列和CPM1
11、A系列基本逻辑指令大体相似,编程和梯形图表达方式也相差不多,这里列表表示S7-200系列的基本逻辑指令(见表)。表 S7-200系列的基本逻辑指令指令名称指令符功能操作数取LD bit读入逻辑行或电路块的第一个常开接点Bit:I,Q,M,SM,T,C,V,S取反LDN bit读入逻辑行或电路块的第一个常闭接点与A bit串联一个常开接点与非AN bit串联一个常闭接点或O bit并联一个常开接点或非ON bit并联一个常闭接点电路块与ALD串联一个电路块无电路块或OLD并联一个电路块输出= bit输出逻辑行的运算结果Bit:Q,M,SM,T,C,V,S置位S bit,N置继电器状态为接通Bit
12、: Q,M,SM,V,S复位R bit,N使继电器复位为断开表2.12.2 定时器指令(1) 类型、编号及分辨率2 TON接通延时 TONR有记忆接通延时 TOF断开延时3种分辨率(时基):1ms、10ms、100ms分别对应不同的定时器号定时器6个要素:指令格式(时基、编号等) 预置值PT使能IN 复位3种定时器不同当前值Txxx 定时器状态(位)可由触点显示定时值=时基预置值PT。由于定时器的计时间隔与程序的扫描周期并不同步,定时器可能在其时基(1ms、10ms、100ms)内任何时间启动,所以,未避免计时时间丢失,一般要求设置PT预置值必须大于最小需要的时间间隔。例如:使用10ms时基定
13、时器实现140ms延时(时间间隔),则PT应设置为15(10ms15=150ms)。【3】(2)功能1、接通延时定时器TON一般用于单一时间间隔的定时2、断开延时定时器TOF一般用于故障时间后的时间延时3、有记忆接通延时定时器TONR一般用于累计许多时间间隔2.3 计数器指令(1)类型及编号 CTU增计数 CTD减计数 C0C255 CTUD增减计数计数器6个要素: 指令格式(类型、编号等)预置值PV. 使能CU、CD 复位R、LD当前值Cxxx 计数器状态(位)与定时器类似(2)功能、时序图及应用示例此例为一个增减计数器的应用示例,其与MODICON PLC计数器指令的比较,同学可自己进行,
14、并注意到,计数器指令的使能均是采样上升沿(“0” 3、十字路口交通信号灯PLC控制器的设计3.1 交通信号灯PLC控制系统的控制要求(1)接通启动按钮后,信号灯开始工作,南北方向红灯、东西方向绿灯同时亮。(2)东西方向绿灯亮25,闪烁3次(每次0.5s),接着东西方向黄灯亮2s后,东西方向红灯亮30后东西方向绿灯又亮、如此不断循环,直到停止工作。(3)南北方向红灯亮30s后,向绿灯亮25s后方向绿灯闪烁3次(每次0.5s),接着南北方向黄灯亮2s后,南北方向红灯又亮、如此不断循环,直到工作停止。3.2 交通信号灯布置十字路口交通信号灯设置示意图如下:图2.13.3 交通信号灯的时序图十字路口交
15、通信号灯时序图如下:图2.23.4 交通信号灯的I/O分配及I/O接线图I/O分配表如下图所示:输入信号 停止按钮SB1 I0.0 启动按钮SB2 I0.1 输出信号南北向红灯HL1 Q0.0南北向黄灯HL2 Q0.1南北向绿灯HL3 Q0.2南北向红灯HL4 Q0.4南北向黄灯HL5 Q0.5南北向绿灯HL6 Q0.6表2.1I/O接线图如下图所示: 图2.33.5 交通信号灯PLC的控制指令表交通信号灯指令表如下图所示:LD I0.1 R M1.3, 1AN Q0.0 LD M.1.2AN Q0.1 LD C1AN Q0.2 LD I0.1AN Q0.4 EUAN Q0.5 OLD AN
16、Q0.6 CTU C1, +4S M0.0 , 2 LD M1.2LD M0.0 TON T45, +5TON T37, +300 LD T45LD M0.1 R M1.2, 1TON T38 , +25 S M1.3, 1LD T38 LD M1.3 R M0.1, 1 AW= C1, +3S M0.2, 1 S M1.4, 1LD M0.2 LD M1.4O M0.4 TON T46, +20TON T39 , +5 R M1.2, 1LD T39 LD T46R M0.2, 1 R M1.4, 1LD M1.1 S M0.0, 1O M1.3 LD M0.0 TON T44, +5 =
17、Q0.0LD T44 LD M1.4R M1.1, 1 = Q0.1S M1.2, 1 O M1.2= Q0.2 LD T41LD M0.6 R M0.5, 1= Q0.4 S M0.6, 1LD M0.5 LD M0.6= Q0.5 TON T42, +30LD M0.1 LD T42O M0.3 R M0.6, 1= Q0.6 S M0.1, 1LD I0.1 LD T37R M0.0 , 16 R M0.0, 1R Q0.0 , 7 S M1.0, 1S M0.3, 1 LD M1.0, 1R M0.4, 1 TON T43LD M0.3 R M1.0, 1LD C0 S M1.1, 1
18、LD I0.0 S M0.4, 1EU LD M0.4OLD AW= C0, +3CTU C0 , +4 S M0.5, 1LD M0.3 LD M0.5TON T40, +5 TON T41, +20LD T40 R M0.3R M0.3, 13.6 交通信号灯PLC的控制系统调试PLC系统的调试分为硬件调试和PLC程序。硬件调试主要是测试PLC控制系统的接线是否正确,PLC控制器及其模块是否正常工作。当整个系统设计并接线完毕以后,调试人员要根据接线图仔细检查,看是否出现了接线错误,特别是警告电源线电路这种情况,因为电源电路将会烧坏系统元器件,甚至烧坏PLC。如果接线正确,则可以打开电源,查
19、看PLC系统的远行情况,这主要依赖PLC本身的报错指示灯,一般报错指示灯亮表明系统有错误。【3】当然这有可能是PLC程序及配置参数出错,也可能是PLC本身硬件出错,可根据系统的实际情况来判断,如果是PLC本身硬件出错,那么要及时修复。(1)将指令表程序输入到计算机。(2)按I/O连接图接好PLC的输入与输出端,将PLC与计算机连接好。(3)对程序进行调试运行。将S闭合,按下启动按钮SB1,观察HL1HL6的指示状态。将S打开,按下启动按钮SB1,观察HL1HL6的指示状态。按下停止按钮,再观察HL1HL6的指示状态。结束语通过此次毕业设计,我不仅把知识融会贯通,而且丰富了大脑,同时在查找资料的
20、过程中也了解了许多课外知识,开拓了视野,认识了将来电子的发展方向,使自己在专业知识方面和动手能力方面有了质的飞跃。毕业设计是我作为一名学生即将完成学业的最后一次作业,他既是对学校所学知识的全面总结和综合应用,又为今后走向社会的实际操作应用铸就了一个良好开端,毕业设计是我对所学知识理论的检验与总结,能够培养和提高设计者独立分析和解决问题的能力;是我在校期间向学校所交的最后一份作业,从老师的角度来说,指导做毕业设计是老师对学生所做的最后一次执手训练。其次,毕业设计的指导是老师检验其教学效果,改进教学方法,提高教学质量的绝好机会。总之,不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道
21、如何入手。最后终于做完了有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。谢 辞在此要感谢学院在这三年里对我的培养。在这三年的学习中,我不断学习与努力,不断的提高自己,使我成为一个有理想、有志向的大学生。在这里我度过了我人生中最快乐、最有意义的一段日子,我不但在这里学到了很有用的知识与技能,还学到了做人的道理。谢谢!我更要谢谢那些带我课的老师,谢谢他们不辞辛苦的教导我。参考文献1陈建明,电气控制和PLC应用,北京电子工业出版社,2006.82. 肖宝兴,西门子S7-200P
22、LC的使用经验与技术北京机械工业出版社, 2008.83张泽荣,可编程序控制器原理与应用,北京清华大学出版社,2004.10“1” )。3.6复位电路的可靠性设计复位是单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。 复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开 关或电源插头分-合过程中引起的抖动而影响复位。图5 R
23、C复位电路 Fig.5 RC Reset Circuit2.3.7 按键部分本设计总的用了四个按扭开关作为键盘,其中一个是复位键,另三个中的其中两个是调整时间增加、减少的键,第三个是切换年、月、日及时、分、秒的显示状态并在所切换的显示状态下配合加减两个键调整时间。图6 按键电路Fig.6 Key circuit2.3.8蜂鸣器电路利用AT89S51单片机的IO口控制一个8550的三极管,三极管控制蜂鸣器的电源通断。从而实现输出声音。图7 蜂鸣器电路Fig.7 Buzzer circuit 3.3.9 根据各模块的功能互相连接成电子万年历的控制电路图8 控制模块示意图Fig.8 Control
24、Module Sketch3各硬件介绍3.1 AT89S51的引脚说明AT89S51系列单片机中有PDIP,PLCC,TQFP多种封装形式。本设计采用的是PDIP封装40管脚的单片机,各引脚如图2-2所示。图9 AT89S51的PDIP封装引脚图Fig.9 AT89S5140个引脚中, 4组8位共32个I/O口,正电源和地线两根,外置石英振荡器的时钟线两根,现在对这些引脚的功能加以说明:(1)Pin9:RESET/Vpd复位信号复用脚,当AT89S51通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统开始复位。而RESET由高电平下降为低电平后,系统即从0000H地
25、址单元开始执行程序。(2)Pin29:PESN当访问外部程序存储器时,此脚输出负脉冲选通信号,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。(3)Pin30:ALE/PROG 地址锁存允许信号端。单片机上电后,ALE引脚不断向外输出正脉冲信号, ALE信号可以用作对外输出时钟或定时信号。(4)Pin31:EA/Vpp程序存储器的内外部选通线,89S51单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。3.2 发光二极管指示电路设计发光
26、二极管简称为LED。由镓(Ga)与砷(AS)、磷(P)的化合物制成的二极管,当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管, 在电路及仪器中作为指示灯,或者组成文字或数字显示。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。它是半导体二极管的一种,可以把电能转化成光能;常简写为LED。发光二极管与普通二极管一样 是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N 区的电子和P区的空穴复合,产生自发辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时
27、释放出的能量多少不同,释放出的能 量越多,则发出的光的波长越短。常用的是发红光、绿光或黄光的二极管。设计中,我使用了1个发光二极管作为电源的指示。为了避免供给发光二极管的电流过大,使用1K的电阻进行限流。3.3 蜂鸣器电路设计3.3.1 蜂鸣器的介绍1蜂鸣器的作用 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。2蜂鸣器的分类 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。3蜂鸣器的电路图形符号 蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。3
28、.3.2 蜂鸣器的结构原理1压电式蜂鸣器 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.515V直流工作电压),多谐振荡器起振,输出1.52.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。2电磁式蜂鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈
29、和磁铁的相互作用下,周期性地振动发声。有源蜂鸣器直接接上额定电源(新的蜂鸣器在标签上都有注明)就可连续发声。3.4 LCM1602简介 图11 LCM1602 Fig.11 LCM1602LCM1602采用标准的16脚接口,其中: 第1脚:VSS为地电源 第2脚:VDD接5V正电源 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度 第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RSRW共同为低电平
30、时可以写入指令或者显示地址,当RS为低电平RW为高电平时可读忙信号,当RS为高电平RW为低电平时可以写入数据.第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第714脚:D0D7为8位双向数据线。 第1516脚:空脚 3.5 DS1302 简介DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电
31、(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。DS1302的外部引脚分配如图1所示及内部结构如图2所示。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。图12 DS1302的外部引脚分配Fig.12 DS1302 external pin assignment图13 DS1302的内部结构Fig.13 The internal structure of the DS1302各引脚的功能为: Vcc1:主电源;Vcc2:备份电源。当Vcc2Vcc1+0.2V时,由Vcc2向
32、DS1302供电,当Vcc2 Vcc1时,由Vcc1向DS1302供电。SCLK:串行时钟,输入;I/O:三线接口时的双向数据线;CE:输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。4 系统硬件设计所需的器材5V电源 3V电源AT89S51单片机1个液晶显示器1个DS1302 1个电阻 1 K的2个、4.7K的2个4.7欧排阻8550三极管晶振12M的一个 32768K的一个电容(30P的两个)蜂鸣器1个LED二极管1个22f电容1个轻触开关5个5 系统软件总体设计 系统的软件设计采用汇编语
33、言,对单片机进行编程实现各项功能。程序在WindowsXP环境下采用LCA51软件编写。软件控制程序主要有主控程序、电子万年历的时间控制程序组成。主控程序中对整个程序进行控制,进行了初始化程序及计数器、还有键盘功能程序、以及显示程序和时间控制程序是电子万年历中比较重要的部分。时间控制程序体现了年、月、日、时、分、秒及星期的计算方法。时间控制程序主要是定时器0计时中断程序每隔10ms中断一次当作一个计数,每中断一次则计数加1,当计数100次时,则表示1秒到了,秒变量加1,同理再判断是否1分钟到了,再判断是否1小时到了,再判断是否1天到了,再判断是否1月到了,再判断是否1年到了,若计数到了则相关变
34、量清除0。先给出一般年份的每月天数。如果是闰年,第二个月天数不为28天,而是29天。闰年的判断规则为,如果该年份是4或100的整数倍或者是400的整数倍,则为闰年;否则为非闰年。 5.1 公历与星期的换算方法在现行公历中,历年的长度365天(平年)或者366天(闰年)都不是七的整数倍,所以日期与星期之间没有明显的对应关系。一般情况下,不看日历牌就无法知道某月某日是星期几。不过,它们之间还是有一定规律可循的,只要经过简单计算,或者查找表格,就可以知道与任何日期相对应的星期数。这里列出两种方法供读者选用。 (1)公式法:设y麦示公元年数,d表示从1月1日起算的日数。首先求出1月0日(即上一年12月
35、31日)的星期序数,然后与日数d相加,其和用7除,余数就是答案。为了推导公式,我们想一想,第一年1月0日的星期序数与第二年1月0日的星期序数有什么关系?平年365天,等于52个星期零1天,所以第二年1月0日的星期序数比第一年的多l,但这个l已包含在y中了,因为第二年的年数y比第一年大1;闰年366天,等于52个星期零二天,所以第二年1月0日的星期序数等于第一年(闰年)的星期序数加2,除了y中包含的1外,还需加修正值1。根据这些道理我们可以推得三个公式,将式中S用7除,余数就表示星期几。从公元1900年1月1日到公元210I年1月1日之间这201年,可用公式:S y1900 + (y1901)/
36、4 + d 方括号表示取商的整数部分,对于1900年1904年这五年方括号值为0。这个公式是这样来的:1900年1月0日(即1899年12月31日)是星期天。这年是平年,以后直到2100年前都是每隔4年一闰,闰年多出的那一天,影响到下一年1月0日的星期序数,并不影响闰年本身,闰年产生的修正值应加到下一年上去,所以(y1901)/4中,计算时用190l而不是1900。例:求2000年12月31日是星期几?2000年是闰年,从1月1日算起,12月31日是第366天,所以d366。根据公式有:S20001900 +(20001901)/4+ 366100 +99/4+ 366l00 + 24 + 3
37、66490490为7的整数倍,即余数为0,所以2000年12月31日为星期日。(2)更普遍的公式为:sv1 +(y1/4(y1/100+(y1/400+ d对于这个公式,我们不妨这样考虑:公历400年中有97个闰年,共365x 400 + 97 146.097天,146,09720,871 7,即正好是7的整数倍。这表明某年某月某日所对应的星期序数与四百年前同月同日所对应的星期序数完全相同。前边例中我们已算出公元2001年1月0日(即2000年12月31日)是星期日,那么,公元1601年、1201年以及公元1年的1月0日都是星期日。假如每个历年都是365天的话,那么,由于公元1年1月0日是星期
38、日,只要公式Sy1 + d就可以了,但实际上闰年是366天,所以我们必须根据闰年的有关规定进行修正。(y1)/4是四年一闺产生的修正值。如果只取这一个修正项,就会多修正以至造成错误,这是因为,根据公历的规定,逢百之年虽然能被4整除,却不一定是闰年,所以必须减去多修正的值,它等于(y1/100)。如果逢百之年都是平年,只要这两个修正项也就可以了。可是,公元年数能被400整除的年(当然也一定能被100整除)仍是闰年,所以还必须加上(y1/400)。这个修正项才行。方括号中之所以用y1而不用y,是由于修正值是加到闰年的下一年上去,而不是加到闰年本身上。6 系统功能介绍 6.1 按键处理当系统在正常显示状态下要进行调整时,按一下切换键进入按键处理中断程序,并且此时默认的是调整年,在液晶显示器上显示N,此时按加或减按钮可以进行加减调整,若再按一下切换键,则跳到月上显示Y,同样可以调整加减,同样的道理,进入日(R)、时(S)、分(F)、秒(M)的调整,最后再按一下切换键时退出中断程序,星期系统自动的调整过来。7.2星期计算星期计算流程框图图15 星期计算Fig.15 Weeks diagram7 主程序流程图 开始单片机读DS1302数据单片机送数据到LCM1602单片机判断按键单片机处理按键调显示数据结束图16 主流程框图