基于MCS-51单片机的路灯检测系统的设计_第1页
基于MCS-51单片机的路灯检测系统的设计_第2页
基于MCS-51单片机的路灯检测系统的设计_第3页
基于MCS-51单片机的路灯检测系统的设计_第4页
基于MCS-51单片机的路灯检测系统的设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于 MCS-51 单片机的路灯检测系统的设计 #学院信息工程系 自动化专业 2008 届 姓名 学号 摘要 本设计对城市路灯自动检测系统方法进行了尝试。采用单片机和PC机组 成上下位机结构的路灯测试系统。单片机作为下位机采集小区各路灯好坏的状 态信息,并通过RS-232将这些信息送到上位机。PC机作为上位机对下位机送来 的各路灯信息进行显示、保存。系统设计了路灯检测电路、RS-232接口电路。 下位机采用汇编语言完成程序设计,上位机采用Visual Basic作为软件开发平 台设计监控界面、文件管理等。实验表明, 系统设计可行,这种通信方案提高 了监测路灯的效率可以提高了监测路灯的效率。 关

2、键词 实时监控 MAX232 电路 串口调试 监控界面 MCS-51 单片机 MCS-51 based road detection system design ChenXiangmei ,Automation major,2008 Dept. of Automation major,Chengyi College of Jimei University Abstract: The system introduces a single chip microcomputer based on MCS-51street lamp monitoring system, analog streetli

3、ght cable communication mode. Aiming at the current lighting quality inspection is usually used artificial way to bring a lot of inconvenience to this problem, put forward PC machine real time monitoring lamp quality plan. System machine using MCS-51microcontroller as the main control chip, using as

4、sembly as the software development platform. In the hardware with LED lights to simulate the lamp, the relay coil is connected in series with the lamp, based on SCM P1 port has potential to judge the corresponding lamp quality. Software on the PC machine through the Visual Basic software to design a

5、 real-time monitoring interface, real-time monitoring the state of road lamp, records and stores the bad light information. Experimental results show that, the scheme improves the monitoring lamp efficiency. Key words: real-time monitoring ;MAX232circuit ;debugging serial; monitoring interface ;chip

6、 MCS-51 目录 引言.1 第 1 章 绪论.2 1.1课题研究的背景、目的和意义.2 1.2国内外的研究与发展概况.3 第 2 章 系统硬件的设计.4 2.1总体方案设计.4 2.2硬件设计.5 2.3串口电路的设计.6 第 3 章 系统软件设计.8 3.1程序设计思路.8 3.2程序的设计.10 3.2.1串口通信程序 .10 3.2.2串口调试 .11 3.2.3上位机软件设计.12 结论.15 致谢.16 参考文献.17 引言 现代的城市生活当中路灯照明已经成为人们生活中不可或缺的公共设施之 一,目前城市范围在不断的扩大,城市道路的路灯数量也成倍的增长;而随着人 们生活水平的提高,

7、人们对于居住环境要求也越来越高,许多高档小区中的路 灯与景观灯数量也达到了一定的规模。随着灯具数量的成倍增长,传统的人工 巡查检测方式不仅耗费人力物力,并且容易产生死角给不法分子以可趁之机, 因此传统的方式在现阶段已经不再适应。对于现阶段的路灯照明系统来说,基 于智能化照明的智能检测系统是满足人们生活要求、保障人身安全、显示现代 化城市和小区风景与形象的科学解决方法1。 第 1 章 绪论 1.1 课题研究的背景、目的和意义 随着中国经济的快速、稳定发展,中国城市进入了一个日新月异、蓬勃发 展的时期,城市路灯照明作为城市建设的重要组成部分,不仅直接关系到人民 群众的交通安全,而且直接关系到城市的

8、形象。随着城市规模的不断扩大,城 市路灯数量也不断增加,目前一些地区采用人工巡检的方式检查路灯的好坏已 经不适合了。对于城市路灯的控制和管理迫切需要一种科学、合理和高效的方 法,对于路灯的开关,特别是路灯好坏的检测提出了更高的要求,城市路灯检 测作为其中最主要的管理系统之一,目前已成为各城市路灯建设的必要内容。 单片机自问世以来,在国内外应用日趋广泛,其性能不断提高和完善,性 能价格比不断提高,体积、重量大为减小,除此之外,还具有稳定性好,抗干 扰能力强,温度范围宽等优点。它广泛用于工业控制、仪器仪表、数据处理、 通讯设备、节能应用、制导和军事、生活消费等方面。本课题要求设计基于单 片机控制的

9、路灯检测系统,本系统采用用一个单片机对小区的多个灯杆的路灯 进行检修,并将本小区的灯杆状态发送到上位机(PC机),上位机将小区的路 灯信息发送到路灯所的网站上,为路灯所的工作人员提供参考。上位机采用 Visual Basic作为软件开发平台,记录并储存坏灯信息。这样该系统就能够实 时地监测各个路灯的运行情况,当某个路灯出现故障时,能自动将路灯的标号 信息送到小区的上位机,上位机再送到网络,使路灯所工作人员及时派电工前 去更换路灯,完善控制功能,方便的管理,能高效可靠地实现路灯的检测。 本课题的研究有利于巩固所学的单片机的知识,特别是对单片机的硬件有 更进一步地提升,不仅加强了Visual Ba

10、sic语言程序设计的理解和应用,也进 一步加强了我的编程能力和硬件的调试能力。为今后从事研究工作打下良好的 基础,具有较强的实用意义。 1.2国内外的研究与发展概况 在市场经济的推动下,在招商引资的投资坏境中,城市的基础建设,备受 投资者的关注。在诸多的基础建设硬件中,城市路灯、景观灯城市照明设施, 无疑是整个城市夜晚的亮点,为城市增添无穷魅力。 根据百度百科上查阅,目前国内一些城市的路灯控制方式,还停留在原来 的手动、光控、钟控模式。受季节、天气和人为因素影响、自动化管理水平不 高,经常该亮时不亮,该灭时不灭,极易造成极大的能源浪费。主要是不具备 远程故障报警,现在有些地方照明设施管理工作主

11、要采用人工巡查模式,不仅 工作量大,还浪费人力、物力、财力。故障依据主要来源于巡视人员上报和市 民投诉,缺乏主动性、及时性和可靠性,不能实时、准确、全面地监控全城的 路灯运行状况,缺乏有效的故障预警机制。不具备设备监测:城市路灯覆盖面 积大,管理手段落后,无法准确发现电缆盗割、短路和断路,一旦出现以上情 况,势必给政府带来巨大的经济损失,同时影响市民的正常生活。也不具备良 好的工作管理:设备的维护和员工的工作考核,主要依赖人工,缺乏对工作人 员的工作考核。 当然随着计算机网络、信息、通讯和自动化技术的飞速发展,城市路灯控 制方式也逐渐步入到了自动化和信息化管理模式。路灯监控系统已经从传统的 控

12、制方法(如手动控制、定时器控制与光敏控制等)发展到能在监控室实现对单 条支路进行自动检测1。 路灯监控系统在国外已经非常成熟,采用电力线载波通信技术和数传机电 台通信技术实现对路灯的实时控制在国外得到了很好的应用。所以我国的路灯 监控系统技术是一项急需提高的项目。 第 2 章 系统硬件的设计 2.1 总体方案设计 将一座城市分成若干个小区,每个小区为方圆 500 米左右,选择具有电信 光纤网的地方放置本小区的灯杆检测信息系统的上位机,用一个单片机作为测 试系统的下位机。单片机检测每个灯杆的好坏信息,并将信息送到上位机并存 储记录。上位机将本小区的灯杆信息送到路灯所的网站,为路灯所的工作人员 查

13、询各灯杆状态提供便利。当路灯维修好后,系统通过人-机对话的方式记录维 修时间,维修人员和维修说明,以备管理之用。各小区的灯杆信息汇集成整个 城市的路灯检测、管理系统。 本次设计的总体设计步骤如下: 1)串口通信功能,主要完成数据有线传输,把转化后的路灯状态通过有线 的方式发送给 PC 机,主要实现上下位机之间的通信,即单片机通过串口把相应 的数据传送到上位机中,进行更进一步数据处理; 2)在路灯电路中加入继电器,通过继电器得失电时相应触头的动作,接通 或切断送给 P1 口的电信号,从而来监测出路灯的工作状态。 3)信号采集,主要对路灯的工作状态进行采集; 4)在 PC 机能够良好的接收到各个区

14、采集到的数据后,通过 VISUAL BASIC 软件平台实现上位机数据的存储和显示。 其系统框图如图 2-1 所示。 上位机 串 口 通 讯 单片机 路灯 1 路灯 n 网 络 图 2-1 一个小区的路灯检测系统结构 本设计主要完成一个小区的路灯状态检测,下位机信息传送,上位机的信 息接收、存储、维修信息记录等功能。上图中上位机到网络过程本设计没有涉 及。 2.2 硬件设计 本系统采用 MCS-51 单片机完成路灯系统的采集,假设本小区有 8 个灯杆, 用单片机的 P1 口进行数据的采集。每个路灯均有路灯检测电路,单片机系统还 将扩展 RS-232 串行接口,实现单片机与 PC 机的串行通信。

15、 本设计只对一个路灯的检测电路进行设计与分析,其余的七盏路灯都使用 同样的电路,通常路灯供电为 220V 的交流电,每个小区均有时间继电器或其他 器件,来控制路灯的开与关(晚上与白天) ,以便在检测电路时区分是路灯不带 电熄灭和故障熄灭的的情况。 路灯与单片机之间的电路是由主电路与控制电路组成,如图 2-2 所示,为 了区分白天晚上,在设计中用了两个时间继电器 T0 和 T1 来控制,在 18 点时闭 合开关 SB1,使时间继电器 T0 线圈得电,记时 24 小时后,T0 的常开触点闭合, KM1 线圈得电,KM1 常开触点闭合,表示晚上,P1.X 就可以读取灯信息。其中, KM2 线圈与路灯

16、串联,当路灯正常亮时,KM2 线圈得电,KM2 的常闭触点断开, P1.x 读入高电平(即无坏灯信息) ;灯坏时,KM2 线圈失电,KM2 常闭触点闭合, P1.x 接地,读入低电平(即有坏灯信息) 。第二天 7 点闭合 SB2,T1 线圈得电, 记时 24 小时后,T1 常闭触点断开断开,KM1 线圈失电,KM1 常开触点断开,表 示白天,P1.x 就无法读取灯信息。 为了更好的理解控制硬件电路的工作原理,增加了电路工作过程的流程如 2-3 所示。 晚上 白天 按下开关 SB1 按下开关 SB2 T0 线圈得电 KM1 线圈得电,KM1 常开触 点闭合,常闭触点断开 T0 记时到 P1.X

17、可读取路灯状态 T1 线圈得电 T1 记时到 KM1 线圈得电,KM1 常开触 点断开,常闭触点闭合 P1.X 口处于悬空状 态 图 2-2 硬件电路工作流程图 +5 V 1K KM1 P1.x KM2 KM1 1 T0 T1 KM1 KM2 1 KM1 路灯 T0 SB1 T1 SB2 主电路 控制电路 图 2-3 硬件电路图 +220V 2.3 串口电路的设计 (1)MAX232 电路的设计原理 MAX232 外围需要 4 个电解电容 C1、C2、C3、C4,是内部电源转换所需电 容,其取值为 10uF,宜选用电容并尽量靠近芯片。 MAX232 是 MAXIM 公司生产 的低功耗、单电源变

18、换器,可以把输入的+5V 电源换成输出电压所需的10V 电 压,所以采用此芯片接口的串口通讯系统只要单一的+5V 即可。MAX232 线驱动 器/接收器内部含有 2 个驱动器、2 个接收器。每个发送器输出端和接收器输入 8KV 的接触放电和15KV 的空气间隙放电试验。 MAX232 芯片之所以需要电容,是因为 RS232 电平是工作在大约9V9V 之间,需要电容将 5V 电压转换成 Rs232 电平所需要的10V 和10V;电路上 叫电荷泵,很形象。在接线时图中 TXIN 和 TXOUT 分别接 MCS-51 单片机的 P3.1(TXD) 和 P3.0(RXD),P3 口除了作为双向 I/O

19、 接口使用外,没一位具有独特的第二功能, 即 P3.0 可作为串口输入端,P3.1 可作为串行口输出端。 对应的原理图如 2-3 所示。 (2)MAX232 电路正常工作的标准 1.将单片机和 MAX232 电路连好。 2.接着短接 P3.0 和 P3.1 跳针,给最小系统板上电,此时点击手动发送, 接手区可以收到数据。 3.至此,可以说 MAX232 部分电路正常。 4.同时可以通过万用表测试 MAX232 产生的电压信号验证。MAX232 的 2 脚对地 是+10V 左右,6 脚对地是-10V 左右,16 脚对地是+5V 左右,15 脚接地, 图 2.3 MAX232 电路原理图 第 3

20、章 系统软件设计 3.1 程序设计思路 本系统就是应用单片机来检测路灯的好坏,用白炽灯来模拟路灯,把继 电器线圈与灯串联,灯完好时,继电器得电,其对应的常闭触点断开,高电 位送到单片机的 P1.x 口。反之,则把低电位送到单片机的 P1.X 口。PC 机 通过 Visual Basic 软件来设计实时监控界面,来实时地监控路灯的状态, 并记录存储坏灯信息。这样,只要有一个灯坏了,继电器就动作,人们就能 得到相应的信息后,人们同样也能得到一个灯修好的信息。 1) 下位机的发送程序流程图如图 3-1 所示。发送模块主程序首先初始 化程序,对单片机的 P1 口状态读入并放入寄存器 A 中,用异或指令

21、 来判断有无坏灯,无则继续读取判断,有则依次右移 8 次把八个灯 的状态依次放入进位标志 C 中来判断哪个灯杆坏,当检测到坏灯时 再把相应的序号发送到上位机中。 2) 上位机的接收显示流程图如图 3-2 所示。在 PC 机中应用 Visual Basic 把坏灯的信息存储在新建的文件中,并把信息显示在界面上, 派维修员维修好后,把维修信息存在灯杆相应的文件中,并改变现 在状态,把维修好后的信息显示出来。通过这样提高了路灯管理的 效率,也减少了城市交通出行的麻烦。 开始 串口初始 化 把灯信息放入寄存器 A 有无坏灯? 有 无 令灯个数 R3=8,把进位标志 C 清 零 A 中的数带进位右移一位

22、 C=1 ? 把 R3 的内容送到 PC 机 R3 自减 1,R3=0 ? 结束 是 否 否 是 图 3-1 单片机上的串口发送流程图 开始 新建 8 个 txt 文件,并把初 始化的灯杆信息放入其中 从 TXT 文件中读灯信息并显示 串口初始化 接收坏灯信息并显示 把之前的灯信息显示为历史状态 派人维修 显示维修后的各种信 息 结束 图 3-2 信息接收与显示程序的流程图 3.2 程序的设计 .1 串口通信程序串口通信程序 串口通信按信息的格式又可分为异步通信和同步通信两种方式,在本设计 中使用的是异步通信,其特点是数据在线路上传送时是以一个字符(字节)为 单位,在程序中 S

23、CON 为 50H(即串行口工作方式 1,8 为异步通信方式) 。波特 率是串口通信中的一个重要概念,它用于衡量串口通信速度的快慢。波特率是 指串行通信中,单位时间传送的二进制位数,单位为 bps。已知 MCS-51 单片机 的震荡频率 fosc 为 12MHZ,程序中用到定时器 1,并工作于方式 1,初始值为 F3H(243) ,SMOD=1。本设计中波特率的计算如下: 定时器 1 的溢出率=(focs/12)/(28-X)(其中 X 为 T1 的初值) =(/12)/(28-243) =76923 方式 1 波特率 =2SMOD/32*(T1 的溢出率) =21/32*76923 =480

24、0 串口函数主要包括:串口初始化函数、串口发送函数,下面对各函数 做相应的介绍。 串口初始化程序: ORG 0000H LJMP MAIN ORG 0100H MAIN:MOV SCON,#50H /REN=1 允许串行接受状态,串口工作方式 1 MOV TMOD,#20H /定时器 1 的工作方式 2 MOV PCON,#80H /波特率提高一倍 MOV TH1,#0F3H /baud*2 /* 波特率 4800、数据位 8 /停止位 1。效验位无 (12 M) MOV TL1,#0F3H SETB TR1 /开启定时器 1 SETB ES /开串口中断 SETB EA / 开总中断 在发送

25、程序中 TI 为发送中断标志位,本次设计用的是串行口工作方 式 1,在停止位发送时由硬件置位。 串口数据发送程序如下: START: MOV SBUF,P1 /读取 P1 口的数据 LOOP: JNB TI,LOOP /判断上个数据是否发送完 CLR TI ACALL DELAY SJMP START DELAY: MOV R5,#30 /延迟程序 LOOP2: MOV R7,#0FFH LOOP1: MOV R6,#0FFH DJNZ R6,$ DJNZ R7,LOOP1 DJNZ R5,LOOP2 RET END .2 串口调试串口调试 本实验下位机、MAX232 电路与上

26、位机的接线图如 3-3 所示,其中单片机 的 P3.0(RXT)为串口输入端,P3.1(TXT)为串口输出端,分别与 MAX232 芯片 的第 9 针和第十针相接通。电源和地也对应连接。 图 3-3 接收模块与 PC 连接示意图 串口调试工具接收结果示意图如图 3-4 所示,在工具上设置波特率为 4800,COM 口为第 3 个口。所有准备设置好后开始进行实验,由图上收到的 数据可以看出,串口调试工具能够良好的循环接收到十六进制的 FF,为实 现单片机与 PC 机通信打下基础。 图 3-4 串口调试工具接收结果示意图 .3 上位机软件设计上位机软件设计 单片机接收到数据后经过处

27、理,通过串口发送到上位机,上位机使用 VB 进行串口数据接收,并将相应的路灯状态显示。监控界面如图 3-5。 进入工作状态界面后,开始接收来自串口的数据,当路灯出现故障时,工 作状态栏会显示相应的路灯故障以及发生故障的日期。工作人员要进行维修时 可在姓名栏选择自己的名字或通过键盘输入并点击维修确定按钮,系统会将故 障的日期、维修人名子保存到文件夹(E:各种习题资料VB 习题灯信息)里 其格式为 text。 图 3-5 上位机监控界面 其中右下角的 Text 空格用来显示坏灯序号。由于白炽灯是使用高压 220v 的电源,考虑到安全的问题,本设计通过把 P1 口的电位拉低来模拟路灯故障, 单片机采

28、集到 P1 口状态信息,判断有低电位后,就把信息送到上位机并显示出 来。运行时,不能看到灯杆运行界面,先看到登录界面如图 4-6 所示。 图 4-6 登录界面 输入正确的用户名、密码,点击“确定”按钮后,进入工作状态界面,其 界面如图 3-7 所示。当输入错误时,在 Text3 中就会显示“输入用户名或密码 错误” 。也就无法看到灯杆的状态信息。 在设计时,把 P1.0、P1.4 和 P1.5 端接地,模拟路灯故障其硬件图如下所 示。 单片机检测到路灯故障后马上把信息发送到上位机,从路灯监控界面的标 号可以清楚看出,哪些路灯坏了,并能快速地派维修人员去维修,接到维修好 的信息后,把维修员的名字

29、填入后点击维修按钮,1,、5 和 6 灯杆的状态自动 更新为 1(即路灯正常时的状态) ,同时也可以清楚地看到修好的时间。 图 3-7 上位机运行时的监控界面 在该工作界面中接收来自串口的数据,并将相应的路灯工作状态显示出来, 若有路灯损坏,将会显示相应的故障日期。并会将维修人员、维修日期记录到 text 文件中,其记录如图 3-8 所示。 图 3-8 信息记录保存示意图 结论 本文以有线通信为基础,对路灯系统做故障检测。简要分析了路灯故障检 测的原理,并详细介绍了下位机系统设计及上位机数据接收及工作方式。下位 机系统设计主要使用了MCS-51单片机硬件平台,下位机用汇编来实现串口发送 和上位

30、机用Visual Basic 语言来处理接收到的路灯信息。所设计的系统实现了 实时监控路灯状态的目的,可方便地应用于城市路灯的管理方面。目前,实时 监控系统在很多城市都已使用。实践证明,该系统还有有一定的可行性。 系统还需改进的地方: 1、由于经济的限制,系统采用的是有线通信,无线通信较通用; 2、系统检测的还只是路灯回路故障,检测范围还不够全面; 3、在上位机进行信息存储时过于繁琐,还不能实现用 excel 表格记录; 致谢 本设计是在导师江小霞教授悉心指导下完成的。在整个设计的过程中,老 师时刻关心着我设计的进展,并且在我遇到问题的时候及时的给予我帮助,使 我在设计的过程中少走了不少弯路。

31、江老师不仅在学业上给我以精心指导,同 时还在思想、生活上给我以无微不至的关怀。老师渊博的专业知识,严谨的治 学态度,精益求精的工作作风以及朴实无华、平易近人的人格魅力对我影响深 远。老师不仅教我掌握了基本的研究方法,还使我明白了许多待人接物与为人 处世的道理。本设计从选题到完成,每一步都是在江老师的指导下完成的,倾 注了老师大量的心血。在此,谨向江老师表示崇高的敬意和衷心的感谢! 本设计最终能够顺利完成,也离不开自动化各位老师的关心和帮助。老师 们课堂上的激情洋溢,课堂下的谆谆教诲,不仅使我很好地掌握了大量的专业 知识,也促使我养成积极地人生态度 。 同时,本设计的完成也得到了生变同学的热情帮

32、助。感谢他们在整个设计 期间给我的鼓励和帮助。在此,我再一次真诚地向帮助过我的老师和同学表示 感谢! 参考文献 1 徐超群.高明煜. 低压电力载波通信技术在城市路灯远程智能监控中的应J.杭州电子科技大 学电子信息学院,2006,(6):145-149. 2 万力,孙超.基于 Lonworks 的路灯智能检测系统的设计 3 P.-C.Tseng.W.-C. Teng,The design of a sing-chip tool monitoring system for on- lineturning operationJ.Springer-var lag Londom.2004,24:204-

33、214. 4 Bin Guangfu,Huang Zhenvu,ZhuGuanghui,LiXueXueiun.Gas concentration monitoring system for small and medium-sized coal mines based on gas-sensingJ.China Academic Journal Electronic Publishing House.2010,8(6):47-51. P.-C. Tseng W.-C. Teng Springer-Verlag London 5 安双利.钱锐.陆翔宇.陆园.基于单片机智能控制的路灯节能系统的研

34、制 J.上海第二工业大 学机电工程学院,2011,28(1):49-53. 6 王玉巧.胡玉玺.基于单片机的路灯智能控制系统 J.山东轻工业学院学报,2010,24(4): 70-72. 7 李立宗.VB 程序设计教程M.南开大学出版社,2009. 8 季宝杰.邹彩虹.王永田.基于单片机的温室自动控制系统设计J.计算机测量与控制, 2007,15(1):73-76. 9 潘清明.刘启新.基于单片机路灯网络控制系统的设计J.南京工程学院,2007,36(21):53- 56. 10 刘银.廖志鑫.贾良茂.曾立文.基于单片机的粉尘检测系统的设计J.煤矿机械,2011,32(07): 240-243

35、. 附录附录 1 单片机上的发送程序单片机上的发送程序 ORG 0000H LJMP MAIN ORG 0100H MAIN:MOV SCON,#50H /REN=1 允许串行接收状态,串口工作方式 1 MOV TMOD,#20H /定时器 1 的工作方式 2 MOV PCON,#80H /波特率提高一倍 MOV TH1,#0F3H /baud*2 /* 波特率 4800、数据位 8/停止位 1。效验位无 (12M) MOV TL1,#0F3H SETB TR1 /开启定时器 1 SETB ES /开串口中断 SETB EA / 开总中断 START: MOV A,P1 XRL A,#0FFH

36、 /判断有没有坏灯 JZ START/无坏灯信息跳回 START,有坏灯 则往下执行 MOV R3,#8 CLR C LOOP3: RLC A JNC LOOP4 /判断是哪个灯坏了 MOV SBUF,R3 LOOP:JNB TI,LOOP CLR TI ACALL DELAY LOOP4:DJNZ R3,LOOP3 DELAY: MOV R5,#10 /延迟程序 LOOP2:MOV R7,#0FFH LOOP1:MOV R6,#0FFH DJNZ R6,$ DJNZ R7,LOOP1 DJNZ R5,LOOP2 RET END 附录附录 2 上位机登录界面的程序上位机登录界面的程序 Priv

37、ate Sub cancel_Click() End End Sub Private Sub certain_Click() Dim x As String, y As String x = Text1.Text y = Text2.Text If (x = 陈香梅 And y = ) Then 登录界面.Hide 路灯监控界面.Show Else: Text3.Text = 输入密码或用户名错误,请重新输入 End If End Sub Private Sub delete_Click() Text1.Text = Text2.Text = Text3.Text = End Sub 附录附录

38、 3 上位机的接收以及界面的显示程序上位机的接收以及界面的显示程序 Private Sub Form_Load() Open E:各种习题资料VB 习题灯信息infor1.txt For Output As #1 Open E:各种习题资料VB 习题灯信息infor2.txt For Output As #2 Open E:各种习题资料VB 习题灯信息infor3.txt For Output As #3 Open E:各种习题资料VB 习题灯信息infor4.txt For Output As #4 Open E:各种习题资料VB 习题灯信息infor5.txt For Output As

39、#5 Open E:各种习题资料VB 习题灯信息infor6.txt For Output As #6 Open E:各种习题资料VB 习题灯信息infor7.txt For Output As #7 Open E:各种习题资料VB 习题灯信息infor8.txt For Output As #8 For i = 1 To 8 Write #i, 1 Write #i, Now Next i Close #1, #2, #3, #4, #5, #6, #7, #8 Open E:各种习题资料VB 习题灯信息infor1.txt For Input As #1 8 个灯杆状态和时间的初始化 Op

40、en E:各种习题资料VB 习题灯信息infor2.txt For Input As #2 Open E:各种习题资料VB 习题灯信息infor3.txt For Input As #3 Open E:各种习题资料VB 习题灯信息infor4.txt For Input As #4 Open E:各种习题资料VB 习题灯信息infor5.txt For Input As #5 Open E:各种习题资料VB 习题灯信息infor6.txt For Input As #6 Open E:各种习题资料VB 习题灯信息infor7.txt For Input As #7 Open E:各种习题资料V

41、B 习题灯信息infor8.txt For Input As #8 Input #1, nowstate, nowtime 灯杆 1 状态和时间的读取和显示 nowstate1.Text = nowstate nowtime1.Text = nowtime Input #2, nowstate, nowtime 灯杆 2 状态和时间的读取和显示 nowstate2.Text = nowstate nowtime2.Text = nowtime Input #3, nowstate, nowtime 灯杆 3 状态和时间的读取和显示 nowstate3.Text = nowstate nowti

42、me3.Text = nowtime Input #4, nowstate, nowtime 灯杆 4 状态和时间的读取和显示 nowstate4.Text = nowstate nowtime4.Text = nowtime Input #5, nowstate, nowtime 灯杆 5 状态和时间的读取和显示 nowstate5.Text = nowstate nowtime5.Text = nowtime Input #6, nowstate, nowtime 灯杆 6 状态和时间的读取和显示 nowstate6.Text = nowstate nowtime6.Text = nowt

43、ime Input #7, nowstate, nowtime 灯杆 7 状态和时间的读取和显示 nowstate7.Text = nowstate nowtime7.Text = nowtime Input #8, nowstate, nowtime 灯杆 8 状态和时间的读取和显示 nowstate8.Text = nowstate nowtime8.Text = nowtime Close #1, #2, #3, #4, #5, #6, #7, #8 开始接收数据 Dim rcvlenth 定义模块级变量接收字符的数组下 标 With MSComm1 .CommPort = 3 使用串口

44、 3 .Settings = 4800,n,8,1 4.8Kbps,无校验,8 位数据位,1 位 停止位 .InputMode = comInputModeBinary 以二进制格式读取接收缓冲区 .RThreshold = 1 接收到的字符大于等于 1 就会产生接 收事件 .InputLen = 0 读缓冲区所有内容 .OutBufferCount = 0 清空发送缓冲区 .InBufferCount = 0 清空接收缓冲区 End With If Not MSComm1.PortOpen Then 打开串口 MSComm1.PortOpen = True End If End Sub Pr

45、ivate Sub MSComm1_OnComm() Dim rcv() As Byte 定义接受字的动态数组 Dim rcvtemp() As Byte 定义存放每次接收的数据的暂存数组 ReDim Preserve rcv(100) As Byte 预设接收字符的数组 rec(最大 101 字节) Text1 = 清除文本框 MsgBox rcvlenth1 MsgBox MSComm1.CommEvent Select Case MSComm1.CommEvent Case comEvReceive 如果接收到字符 rcvtemp = MSComm1.Input 将接收区的内容放入暂存数

46、组 rcv For i = LBound(rcvtemp) To UBound(rcvtemp) rcvlenth = rcvlenth + 1 rcv(rcvlenth) = rcvtemp(i) Next i ReDim Preserve rcv(rcvlenth) As Byte 得到接收字节数组的实际大小 MsgBox rcvlenth For i = LBound(rcv) To UBound(rcv) inpt.Text = Text1 & Str(rcv(i) 在文本框 text1 中显示接收 到的数据 Next i End Select 坏灯信息显示在窗口中 Dim linfo

47、r As Integer linfor = inpt.Text Select Case linfor Case 1 Open E:各种习题资料VB 习题灯信息infor1.txt For Append As #1 把坏灯状态和时间存入文件中 Write #1, 0 Write #1, Now Close #1 Open E:各种习题资料VB 习题灯信息infor1.txt For Input As #1 Input #1, histstate, histtime, nowstate, nowtime nowstate1.Text = nowstate 读取坏灯信息并显示出来 nowtime1.

48、Text = nowtime histstate1.Text = histstate 读历史灯杆的信息 histtime1.Text = histtime Close #1 Case 2 Open E:各种习题资料VB 习题灯信息infor2.txt For Append As #2 把坏灯状态和时间存入文件中 Write #2, 0 Write #2, Now Close #2 Open E:各种习题资料VB 习题灯信息infor2.txt For Input As #2 Input #2, histstate, histtime, nowstate, nowtime nowstate2.T

49、ext = nowstate 读取坏灯信息并显示出来 nowtime2.Text = nowtime histstate2.Text = histstate 读历史灯杆的信息 histtime2.Text = histtime Close #2 Case 3 Open E:各种习题资料VB 习题灯信息infor3.txt For Append As #3 把坏灯状态和时间存入文件中 Write #3, 0 Write #3, Now Close #3 Open E:各种习题资料VB 习题灯信息infor3.txt For Input As #3 Input #3, histstate, his

50、ttime, nowstate, nowtime nowstate3.Text = nowstate 读取坏灯信息并显示出来 nowtime3.Text = nowtime histstate3.Text = histstate 读历史灯杆的信息 histtime3.Text = histtime Close #3 Case 4 Open E:各种习题资料VB 习题灯信息infor4.txt For Append As #4 把坏灯状态和时间存入文件中 Write #4, 0 Write #4, Now Close #4 Open E:各种习题资料VB 习题灯信息infor4.txt For

51、Input As #4 Input #4, histstate, histtime, nowstate, nowtime nowstate4.Text = nowstate 读取坏灯信息并显示出来 nowtime4.Text = nowtime histstate4.Text = histstate 读历史灯杆的信息 histtime4.Text = histtime Close #4 Case 5 Open E:各种习题资料VB 习题灯信息infor5.txt For Append As #5 把坏灯状态和时间存入文件中 Write #5, 0 Write #5, Now Close #5 Open E:各种习题资料VB 习题灯信息infor5.txt For Input As #5 Input #5, histstate, histtime, nowstate, nowtime n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论