首页 毕业设计(论文)-用VB语言编写短信控制器的上位机控制软件

毕业设计(论文)-用VB语言编写短信控制器的上位机控制软件

举报
开通vip

毕业设计(论文)-用VB语言编写短信控制器的上位机控制软件毕业设计(论文)-用VB语言编写短信控制器的上位机控制软件 毕 业 设 计 设计题目:用VB语言编写短信控制器的 上位机控制软件 姓 名 院 系 电子与电气工程学院 专 业 电气工程及其自动化 年 级 2006级 学 号 指导教师 2010年6月5日 目 录 1. 引言 1 2. VB的发展历史和特点 1 2.1 VB的发展历史 1 2.2 VB的特点 2 2.2.1 VB的语言特点 2 2.2.2 VB的功能特点 2 3. 短信控制器硬件简介 3 4. 程序的设计思路及其程序框图 3 4.1程序...

毕业设计(论文)-用VB语言编写短信控制器的上位机控制软件
毕业设计( 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 )-用VB语言编写短信控制器的上位机控制软件 毕 业 设 计 设计题目:用VB语言编写短信控制器的 上位机控制软件 姓 名 院 系 电子与电气工程学院 专 业 电气工程及其自动化 年 级 2006级 学 号 指导教师 2010年6月5日 目 录 1. 引言 1 2. VB的发展历史和特点 1 2.1 VB的发展历史 1 2.2 VB的特点 2 2.2.1 VB的语言特点 2 2.2.2 VB的功能特点 2 3. 短信控制器硬件简介 3 4. 程序的设计思路及其程序框图 3 4.1程序的原理 3 4.2 程序的设计思路 3 4.2.1 开始运行程序 3 4.2.2 总控区设置 3 4.2.3 分控制区设置 3 4.3程序框图: 4 5. 软件功能介绍 5 6. 程序的部分软件代码 6 6.1 总控区(Form4) 6 6.2串口设置(Form12) 11 6.3高杆灯设置(Form3) 15 7. 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf 19 参考文献 19 致谢 19 鲁东大学毕业设计 用VB语言编写短信控制器的上位机控制软件 XXX (电子与电气工程学院 电气工程及其自动化 2006级1班) 本文介绍了运用VB语言编写的短信控制器的上位机控制软件~着重讲述摘 要: 了它的设计思路~给出了该软件的设计框图和VB程序的部分源代码~形成了正确 的可执行文件。 关键词:VB;控制软件;短信控制器;设计 Programming A Control Software Of Short Message Controller For Upper Computer In The VB Language Wang Chengcheng (College of Electric and Electronic Engineering, Electric Engineering and Its Automation,, Class1 Grade2006, 062312334) Abstract: This paper introduces a control software of short message controller for upper computer in the VB language, describes its designed thought, gives the designed software diagram and VB program's parts source code of the control software, and creates a correct executable file. Key Words: VB; control software;short message controller; design 1 引言 Visual Basic(VB)是在Windows环境下运行的、支持可视化编程的、面向 对象的、采用事件驱动方式的结构化程序设计语言,也是进行应用系统开发最简 [1]单的、易学易用的程序设计工具。从任何标准来说,VB都是世界上使用人数 最多的语言,它源自于BASIC编程语言,其开发的应用程序的运行采用事件驱动 原理。在VB代码窗口输入代码时,对于VB中的对象的属性、方法、内置的函数 和已定义的自定义函数等,能自动给出拼写提示,这样可大大减少编程人员的记 [2]忆量,程序员可以轻松的使用VB提供的组件快速建立一个应用程序 。 2 VB的发展历史和特点 2.1 VB的发展历史 1991年,美国微软公司推出了Visual Basic(可简称VB),目前的最新版本是 1 鲁东大学毕业设计 VB 2005(VB8)中文版。Visual 意即可视的、可见的,指的是开发像windows操作系统的图形用户界面(Graphic User Interface, GUI)的方法,它不需要编写大量代码去描述界面元素的外观和位置,只要把预先建立好的对象拖放到屏幕上相应的位置即可。Basic指的是Beginners all_purpose symbolic instruction code 初始者通用符号指令代码语言。Visual Basic有学习版、专业版和企业版三种版本,以满足不同的开发需要。5.0版以后,Visual Basic推出了中文版,与前个版本相比, [2][3][4]其功能有了很大提升。 2.2 VB的特点 2.2.1 VB的语言特点 Visual Basic(以下简称VB)是运行于Windows平台下的一种可视化的高级编程语言,有以下显著的特点: 1) VB继承了Basic语言简单易学的特点。 2) 与基于dos环境下的编程语言相比,VB编程思想上发生了根本的改变。 VB中引入了面向对象的程序设计方法,使程序设计人员从烦琐的程序设计细 节中解脱出来。 3) VB具有强大的数据库管理功能。 4) 程序开发环境高度集成化。 5) VB适应于开发视窗类应用程序。 2.2.2 VB的功能特点 VB开发的应用程序的运行采用事件驱动原理。程序设计人员不仅在程序设计时不需要考虑程序代码执行的先后问题,而且同一个对象可以因用户的不同操作而产生不同的结果。 VB中提供的编辑器不仅提供了典型的Windows文字处理应用程序的各种功能,如剪切、复制、粘贴等,使得程序的输入和修改非常方便。而且在VB代码窗口输入代码时,对于VB中的对象的属性、方法、内置的函数、已定义的自定义函数、过程和已定义的变量等,能自动给出拼写提示,这样可大大减少编程人员的记忆量。 在VB开发环境下,通过API(Application Program Interface)函数调用,可充分使用Windows提供的各种系统资源,来扩充所开发的应用程序的功能。 VB全面支持Windows系统的OLE(Object Linking And Embedding)技术,因此可以方便、快捷地实现不同应用程序之间的动态数据交换。 2 鲁东大学毕业设计 3短信控制器硬件简介 GSM短信控制器只需在控制器中插入手机卡,将串口插入上位机,可以通过访问本控制器从而操作高杆灯,达到用手机短信远程控制设备的目的。 图1 短信控制器硬件 4程序的设计思路及其程序框图 4.1程序的原理 短信控制器的上位机软件就是在PC端,通过串口通信控制发送端发送短信而实现远程控制高杆灯亮灭的程序。能实现随时修改控制程序,以改变各灯的控制时间和工作状况,满足不同状况要求,有很强的现场应用性。 4.2程序的设计思路 4.2.1 开始运行程序 扫描默认串口,判断是否有效,是否被占用。 进入主窗口(MDIForm1),若串口无效或被占用,则更改串口设置(Form12);若串口有效,可进入总控区(Form4)开始使用。 4.2.2 总控区设置 使用原有控制区,添加控制区(Form11)或删除控制区(Form10),在原来无控制区的情况下,最多可添加10个控制区。 4.2.3 分控制区设置 添加(Form2)、删除、设置高杆灯,查询高杆灯状态,向高杆灯发送短信形式的指令(Form3)。 3 鲁东大学毕业设计 4.3 程序框图 开始 检查端口 YES 端口是否被 占用 提示:“无效端口,或NO 端口被占用~” 更改端口设置 开始使用 NO 是否已有控 制区 新建控制区 YES 进入控制区 NO 是否已有被 控对象 新建被控对象 YES 操作被控对象 退出程序 图2总体程序框图 4 鲁东大学毕业设计 5 软件功能介绍 图3 总控区界面 界面功能: 单击菜单栏“添加控制区”和“删除控制区”来添加、删除分控制区。单击“连接设备”可以检测端口使用情况并连接短信控制器。可通过单击右键选择“串口设置”改变串口设置参数。 图4 串口设置界面 界面功能: 5 鲁东大学毕业设计 可根据实际情况修改串口设置。 图5 控制区界面 界面功能: 单击菜单栏上“添加高杆灯”可添加高杆灯,上限为5个高杆灯。单击“设置”按钮可更改高杆灯名称、电话号码和数量。 图6 高杆灯设置界面 界面功能: 可更改高杆灯名称、电话号码和数量,设定灯的开启或关闭,删除高杆灯,查询高杆灯状态和发送开关指令。 6程序的部分软件代码 6.1 总控区(Form4) Dim s As Integer Private Sub addarea_Click(Index As Integer) Form11.Show End Sub 6 鲁东大学毕业设计 Private Sub Command1_Click(Index As Integer) Select Case Index Case 0 Form5.Caption = Command1(Index).Caption Form5.Show Case 1 Form6.Caption = Command1(Index).Caption Form6.Show Case 2 Form7.Caption = Command1(Index).Caption Form7.Show Case 3 Form8.Caption = Command1(Index).Caption Form8.Show Case 4 Form9.Caption = Command1(Index).Caption Form9.Show Case 5 Case 6 Case 7 Case 8 Case 9 End Select End Sub Private Sub Command11_Click() Form11.Show End Sub Private Sub Command2_Click() Dim i As Integer Dim j As Integer Dim inputdata As String Dim dat As String Dim area() As String 7 鲁东大学毕业设计 Dim mes() As String Dim err As Boolean err = initGSMmode() If err = True Then MsgBox "连接成功~", 64, "提示" Call write_daily_record("成功连接发射装置~") Open App.Path & "\Manager.txt" For Input As #1 Do While Not EOF(1) Line Input #1, dat If dat <> "" Then inputdata = inputdata + dat End If Loop Close #1 area = Split(inputdata, ";") For i = LBound(area) To UBound(area) If area(i) = "" Then Exit For End If mes = Split(area(i), ",") j = Val(Trim$(mes(0))) If j < 9 And mes(1) = "true" Then Command1(j).Visible = True Command1(j).Caption = mes(2) Command1(j).Enabled = True End If Next i MDIForm1.Timer1.Interval = 1000 Else Call write_daily_record("连接发射装置失败~") MsgBox "连接失败~请选择正确的端口和波特率~", 64, "提示" 8 鲁东大学毕业设计 MDIForm1.Timer1.Interval = 0 End If End Sub Private Sub delarea_Click(Index As Integer) Form10.Show End Sub Private Sub end_Click() End End Sub Private Sub Form_Load() Dim i As Integer Dim j As Integer Dim inputdata As String Dim dat As String Dim area() As String Dim mes() As String On Error GoTo err '从文本文档中读取数据 s1: Open App.Path & "\Manager.txt" For Input As #1 Do While Not EOF(1) Line Input #1, dat If dat <> "" Then inputdata = inputdata + dat End If Loop Close #1 area = Split(inputdata, ";") 9 鲁东大学毕业设计 For i = LBound(area) To UBound(area) If area(i) = "" Then Exit For End If mes = Split(area(i), ",") j = Val(Trim$(mes(0))) If j < 9 And mes(1) = "true" Then Command1(j).Visible = True Command1(j).Caption = mes(2) Command1(j).Enabled = False End If Next i Exit Sub err: Open App.Path & "\Manager.txt" For Output As #1 Print #1, "" Close #1 GoTo s1 End Sub Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) If Button = 2 Then '如果是鼠标右键按下时 Form4.PopupMenu mnufile, 0, x, y End If End Sub Private Sub setcom_Click() Form13.Show End Sub Private Sub 删除控制区_Click() Form10.Show 10 鲁东大学毕业设计 End Sub Private Sub 添加控制区_Click() Form11.Show End Sub 6.2串口设置(Form12) Dim s As String Private Sub Command1_Click() Unload Me End Sub Private Sub Command2_Click() On Error GoTo err If MDIForm1.MSComm1.PortOpen = True Then MDIForm1.MSComm1.PortOpen = False End If Dim a As Integer a = Val(Mid$(Combo1.Text, 4, 1)) MDIForm1.MSComm1.CommPort = a MDIForm1.MSComm1.Settings = Combo2.Text + "," + Combo4.Text + "," + Combo3.Text + "," + Combo5.Text MDIForm1.MSComm1.PortOpen = True If Check1.Value = 1 Then Open App.Path & "\comset.txt" For Output As #1 Print #1, "" Close #1 11 鲁东大学毕业设计 s = str(MDIForm1.MSComm1.CommPort) + ";" + MDIForm1.MSComm1.Settings Open App.Path & "\comset.txt" For Output As #1 Print #1, s Close #1 End If Form4.Show Unload Me Exit Sub err: MsgBox "无效端口,或端口被占用~", 64, "提示" End Sub Private Sub Form_Load() Dim dat As String On Error GoTo err Combo1.AddItem ("COM1") Combo1.AddItem ("COM2") Combo1.AddItem ("COM3") Combo1.AddItem ("COM4") Combo1.AddItem ("COM5") Combo1.AddItem ("COM6") Combo2.AddItem (2400) Combo2.AddItem (4800) Combo2.AddItem (9600) Combo2.AddItem (19200) Combo2.AddItem (115200) 12 鲁东大学毕业设计 Combo3.AddItem (8) Combo3.AddItem (7) Combo3.AddItem (6) Combo3.AddItem (5) Combo3.AddItem (4) Combo4.AddItem ("O") Combo4.AddItem ("E") Combo4.AddItem ("M") Combo4.AddItem ("N") Combo4.AddItem ("S") Combo5.AddItem (1) Combo5.AddItem (1.5) Combo5.AddItem (2) Combo5.AddItem (4) s1: Open App.Path & "\comset.txt" For Input As #1 Do While Not EOF(1) Line Input #1, dat If dat <> "" Then s = s + dat End If Loop Close #1 If s <> "" Then Call setcom Form4.Show Unload Me Exit Sub End If Combo1.Text = "COM" + Trim$(str(MDIForm1.MSComm1.CommPort)) 13 鲁东大学毕业设计 a = Split(MDIForm1.MSComm1.Settings, ",") Combo2.Text = a(0) Combo3.Text = a(2) Combo4.Text = UCase$(a(1)) Combo5.Text = a(3) Exit Sub err: Open App.Path & "\comset.txt" For Output As #1 Print #1, "" Close #1 GoTo s1 End Sub Private Sub setcom() Dim str() As String str = Split(s, ";") On Error GoTo err If MDIForm1.MSComm1.PortOpen = True Then MDIForm1.MSComm1.PortOpen = False End If Dim a As Integer a = Val(Trim$(str(0))) MDIForm1.MSComm1.CommPort = a MDIForm1.MSComm1.Settings = Trim$(str(1)) MDIForm1.MSComm1.PortOpen = True Exit Sub err: MsgBox "无效端口,或端口被占用~", 64, "提示" End Sub 14 鲁东大学毕业设计 6.3高杆灯设置(Form3) Private Sub Command1_Click() Dim name As String Dim count As Integer Dim phone As String name = Trim$(Text1.Text) If name = "" Then MsgBox "请输入名称", 64, "提示" Exit Sub End If phone = Trim$(Text2.Text) If name = "" Then MsgBox "请输入电话号码", 64, "提示" Exit Sub End If If Text3.Text <> "" Then count = Trim$(Text3.Text) If count > 5 Then MsgBox "灯的数量必须小于或等于5", 64, "提示" Exit Sub End If If count = 0 Then count = 1 End If Else MsgBox "请填入灯的数量", 64, "提示" Exit Sub End If 15 鲁东大学毕业设计 light_M(manager_index).light_N(light_index).phonenumber = phone light_M(manager_index).light_N(light_index).nane = name light_M(manager_index).light_N(light_index).lightcount = count If Check1.Value = 1 Then light_M(manager_index).light_N(light_index).enable = True Else light_M(manager_index).light_N(light_index).enable = False End If Call savelights(manager_index) MsgBox "设置成功", 64, "提示" Unload Me End Sub Private Sub Command2_Click() Unload Me End Sub Private Sub Command3_Click() Dim msg As Integer msg = MsgBox("确定要删除,", 48 + 1, "提示") If msg = vbCancel Then Exit Sub End If Call dellight(manager_index, light_index) MsgBox "删除成功", 64, "提示" Unload Me End Sub Private Sub Command4_Click() Dim message As mes 16 鲁东大学毕业设计 Dim err As Boolean MDIForm1.Timer1.Interval = 0 message.message = Trim$(Text4.Text) message.phone = Trim$(Text2.Text) err = SendMES(message) If err = True Then Call write_daily_record("向" + Trim$(Text1.Text) + "(" + Trim$(message.phone) + ")" + "发送 " + Trim$(message.message) + " 命令" + ".并且发送成功~") MsgBox "发送成功~", 64, "提示" Else Call write_daily_record("向" + Trim$(Text1.Text) + "(" + Trim$(message.phone) + ")" + "发送 " + Trim$(message.message) + " 命令" + ".发送失败~") MsgBox "发送失败~", 64, "提示" End If Timer1.Interval = 1000 End Sub Private Sub Command5_Click() Dim message As mes Dim err As Boolean message.message = "返回开关信息" message.phone = Trim$(Text2.Text) err = SendMES(message) If err = True Then Call write_daily_record("向" + Trim$(Text1.Text) + "(" + Trim$(message.phone) + ")" + "发送 返回开关信息 命令" + ".并且发送成功~") MsgBox "发送成功~", 64, "提示" Else Call write_daily_record("向" + Trim$(Text1.Text) + "(" + Trim$(message.phone) + ")" + "发送 返回开关信息 命令" + ".发送失败~") MsgBox "发送失败~", 64, "提示" End If 17 鲁东大学毕业设计 End Sub Private Sub Form_Load() Text1.Text = light_M(manager_index).light_N(light_index).nane Text2.Text = light_M(manager_index).light_N(light_index).phonenumber Text3.Text = str(light_M(manager_index).light_N(light_index).lightcount) If light_M(manager_index).light_N(light_index).enable = True Then Check1.Value = 1 Else Check1.Value = 0 End If End Sub Private Sub Form_Unload(Cancel As Integer) MDIForm1.Timer1.Interval = 1000 Timer1.Interval = 0 End Sub Private Sub Timer1_Timer() Dim err As Boolean Dim message As mes Dim i As Integer err = ScanGSMMode() If err = False Then Exit Sub End If i = GSMMode.MESCount While i > 0 message = ReadMSG(GSMMode.MESNumber(GSMMode.MESCount)) If message.phone <> "" Then Text4.Text = message.message 18 鲁东大学毕业设计 End If GSMMode.MESCount = GSMMode.MESCount - 1 i = GSMMode.MESCount Wend End Sub 7总结 本设计是在熟悉掌握VB的基础上写成的,VB编程以其简约的设计风格、可视化的界面编辑和极小的体积广受程序员们的欢迎。通过本软件的设计,对VB的编程特点有了更深的理解。 本程序用于控制发射端发送短信远程控制高杆灯的亮灭,能容易地随时修改控制程序,以改变各灯的控制时间和工作状况,满足不同状况要求,有很强的现场应用性。实践证明,采用短信控制器对高杆灯的自动控制是完全可行的。 参考文献 [1] 李雁翎.Visual Basic程序设计[M].北京: 清华大学出版社, 2004. [2] 陈元春,王淮亭,陶恂. Visual Basic数据库编程[M].北京: 高等教育出版社, 2003. [3] 王国荣编著. Visual Basic 6.0 Windows API 讲座[M]. 北京: 人民邮电出版社, 1999. [4] 龚沛曾. Visual Basic简明教程[M].北京: 高等教育出版社出版, 2003. [5] 何光渝编著. Visual Basic 常用数值算法集[M].北京: 科学出版社, 2002. [6] 李勇帆. Visual Basic 6.0 程序设计实践指导[M].北京: 人民邮电出版社, 2006. [7] 史斌星,史佳. Visual Basic 贯通教程[M].北京: 清华大学出版社, 2003. [8] 张健主编. Visual Basic 6.0程序设计[M].江苏: 浙江大学出版社, 2007. [9] 李长林编著. Visual Basic 串口通信技术与典型实例 [M].北京: 清华大学出 版社, 2006. 致谢 本文是在周鲁平老师的悉心指导下完成的,我要感谢我的指导老师周鲁平老师对我毕业设计的悉心指导和热诚的帮助,同时还要向在完成设计论文过程中给我提供帮助的王均彬同学致以最诚挚的谢意。老师的严谨、同学的互助深深地影响了我,才使我能够顺利地完成此次毕业设计,获益匪浅。再次感谢他们~ 19
本文档为【毕业设计(论文)-用VB语言编写短信控制器的上位机控制软件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_266065
暂无简介~
格式:doc
大小:110KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-10-17
浏览量:15