VB与单片机的温度测控系统实习报告.doc_第1页
VB与单片机的温度测控系统实习报告.doc_第2页
VB与单片机的温度测控系统实习报告.doc_第3页
VB与单片机的温度测控系统实习报告.doc_第4页
VB与单片机的温度测控系统实习报告.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

粮库温度监控管理系统实习报告 系别:电气工程系 班级:应电121班 姓名:啜文彬 学号:27号 指导教师:曹世超老师、李鑫老师VB与单片机实习1、 实习内容 实习名称:粮库温度监控管理系统 实习时间:14-15周 A312 CAD实训室 所需软件:VB.NET 、Proutues、Keil、串口调试助手、虚拟串口。 实习目的:1、掌握MCS51单片机与上位机的串行通信方法 2、掌握MCS51单片机的程序汇编 3、掌握仿真器使用方法 4、掌握MCS51单片机的调试步骤 5、掌握VB的图形绘制二、电路仿真图 三、MCS51单片机程序#include unsigned char i=0,z;unsigned char IDD85=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,; void DelayMs(unsigned char n)unsigned char i=0,j=0;for(i=0;in;i+)for(j=0;j 4; /分离出温度值整数部分 decT = temp & 0xF; /分离出温度值小数部分 len = IntToString(str, intT); /整数部分转换为字符串 strlen+ = .; /添加小数点 decT = (decT*10) / 16; /二进制的小数部分转换为1位十进制位 strlen+ = decT + 0; /十进制小数位再转换为ASCII字符 while (len 4) /用空格补齐到6个字符长度 strlen+ = ; strlen = 0; /添加字符串结束符 switch(lcdadd) case 0:LcdShowStr(0, 0, 1:);LcdShowStr(2, 0, str);break; /显示到液晶屏上 case 1:LcdShowStr(8, 0, 2:);LcdShowStr(10, 0, str);break;case 2:LcdShowStr(0, 1, 3:);LcdShowStr(2, 1, str);break; /显示到液晶屏上 case 3:LcdShowStr(8, 1, 4:);LcdShowStr(10, 1, str);break;case 4:LcdShowStr(0, 0, 5:);LcdShowStr(2, 0, str);break; /显示到液晶屏上 case 5:LcdShowStr(8, 0, 6:);LcdShowStr(10, 0, str);break;case 6:LcdShowStr(0, 1, 7:);LcdShowStr(2, 1, str);break; /显示到液晶屏上 case 7:LcdShowStr(8, 1, 8:);LcdShowStr(10, 1, str);break; default: break; for(z=0;z2;z+) IDDlcdaddz=strz;IDDlcdadd2=0; else /读取失败时,提示错误信息 LcdShowStr(0, 0, error!); /*/ if(tmp=1) while(IDDlcdaddi!=0) SBUF=IDDlcdaddi;while(!TI);TI=0;i+;DelayMs(30); / SBUF=lcdadd+1+0x30;/ while(!TI); /TI=0; i=0; Start18B20(); /重新启动下一次转换 /* 整型数转换为字符串,str-字符串指针,dat-待转换数,返回值-字符串长度 */ unsigned char IntToString(unsigned char *str, int dat) signed char i = 0; unsigned char len = 0; unsigned char buf6; if (dat 0) /如果为负数,首先取绝对值,并在指针上添加负号 dat = -dat; *str+ = -; len+; if(dat0)*str+ = 0; len+; do /先转换为低位在前的十进制数组 bufi+ = dat % 10; dat /= 10; while (dat 0); len += i; /i最后的值就是有效字符的个数 while (i- 0) /将数组值转换为ASCII码反向拷贝到接收指针上 *str+ = bufi + 0; *str = 0; /添加字符串结束符 return len; /返回字符串长度 /* 配置并启动T0,ms-T0定时时间 */ void ConfigTimer0(unsigned int ms) unsigned long tmp; /临时变量 tmp = 11059200 / 12; /定时器计数频率 tmp = (tmp * ms) / 1000; /计算所需的计数值 tmp = 65536 - tmp; /计算定时器重载值 tmp = tmp + 12; /补偿中断响应延时造成的误差 T0RH = (unsigned char)(tmp8); /定时器重载值拆分为高低字节 T0RL = (unsigned char)tmp; TMOD &= 0xF0; /清零T0的控制位 TMOD |= 0x01; /配置T0为模式1 TH0 = T0RH; /加载T0重载值 TL0 = T0RL; ET0 = 1; /使能T0中断 TR0 = 1; /启动T0 /* T0中断服务函数,完成1秒定时 */ void InterruptTimer0() interrupt 1 static unsigned char tmr1s = 0; TH0 = T0RH; /重新加载重载值 TL0 = T0RL; tmr1s+; if (tmr1s = 100) /定时1s tmr1s = 0; flag1s = 1; 四、VB登录窗体 VB登录界面窗体 VB登录界面窗体 VB登录界面窗体程序:Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load TextBox1.Text = TextBox2.Text = TextBox1.MaxLength = 8 TextBox2.MaxLength = 6 TextBox2.PasswordChar = * End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If Not IsNumeric(TextBox1.Text) Then MsgBox(用户名必须为数字, , 提示!) TextBox1.Text = End If If TextBox1.Text = Then MsgBox(请输入用户名!, MsgBoxStyle.RetryCancel + 48, 提示!) Exit Sub Else If TextBox1.Text = 1 And TextBox2.Text = 1 Then MsgBox(登陆成功,欢迎进入!) Form2.Show() Me.Hide() Else MsgBox(你输入的用户名或密码有错误!, MsgBoxStyle.RetryCancel + 48, 提示!) TextBox1.Text = TextBox2.Text = End If End If End Sub Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged If ComboBox1.Text = 保存 Then TextBox1.Text = TextBox1.Text TextBox2.Text = TextBox2.Text Else If ComboBox1.Text = 不保存 Then TextBox1.Text = TextBox1.Text TextBox2.Text = End If End If End SubEnd Class5、 VB主窗体VB主窗体程序:Imports system.drawing.drawing2dPublic Class Form2 Dim tada As String Dim s As Integer Dim h, z As Single, a!, i, x1!, y1!, x2!, y2! Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Text = 粮仓温度监控管理系统 Timer1.Enabled = True Timer4.Enabled = False Timer2.Enabled = False Timer5.Enabled = False TextBox1.Visible = False Button1.Enabled = False Button9.Visible = False PictureBox10.Visible = False PictureBox2.Visible = False PictureBox3.Visible = False PictureBox4.Visible = False PictureBox5.Visible = False PictureBox6.Visible = False PictureBox7.Visible = False PictureBox8.Visible = False PictureBox9.Visible = False End Sub Private Sub ComboBox8_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox8.SelectedIndexChanged If ComboBox8.Text = 仓库监控 Then Button9.Visible = False PictureBox10.Visible = False PictureBox2.Visible = False PictureBox3.Visible = False PictureBox4.Visible = False PictureBox5.Visible = False PictureBox6.Visible = False PictureBox7.Visible = False PictureBox8.Visible = False PictureBox9.Visible = False End If If ComboBox8.Text = 全部仓库 Then Button9.Visible = False PictureBox10.Visible = False PictureBox2.Visible = True PictureBox3.Visible = True PictureBox4.Visible = True PictureBox5.Visible = True PictureBox6.Visible = True PictureBox7.Visible = True PictureBox8.Visible = True PictureBox9.Visible = True End If If ComboBox8.Text = 仓库1 Then PictureBox10.Visible = False PictureBox2.Visible = True Button9.Visible = False PictureBox3.Visible = False PictureBox4.Visible = False PictureBox5.Visible = False PictureBox6.Visible = False PictureBox7.Visible = False PictureBox8.Visible = False PictureBox9.Visible = False End If If ComboBox8.Text = 仓库2 Then Button9.Visible = False PictureBox10.Visible = False PictureBox2.Visible = False PictureBox3.Visible = True PictureBox4.Visible = False PictureBox5.Visible = False PictureBox6.Visible = False PictureBox7.Visible = False PictureBox8.Visible = False PictureBox9.Visible = False End If If ComboBox8.Text = 仓库3 Then Button9.Visible = False PictureBox10.Visible = False PictureBox2.Visible = False PictureBox3.Visible = False PictureBox4.Visible = True PictureBox5.Visible = False PictureBox6.Visible = False PictureBox7.Visible = False PictureBox8.Visible = False PictureBox9.Visible = False End If If ComboBox8.Text = 仓库4 Then Button9.Visible = False PictureBox10.Visible = False PictureBox2.Visible = False PictureBox3.Visible = False PictureBox4.Visible = False PictureBox5.Visible = True PictureBox6.Visible = False PictureBox7.Visible = False PictureBox8.Visible = False PictureBox9.Visible = False End If If ComboBox8.Text = 仓库5 Then Button9.Visible = False PictureBox10.Visible = False PictureBox2.Visible = False PictureBox3.Visible = False PictureBox4.Visible = False PictureBox5.Visible = False PictureBox6.Visible = True PictureBox7.Visible = False PictureBox8.Visible = False PictureBox9.Visible = False End If If ComboBox8.Text = 仓库6 Then PictureBox10.Visible = False Button9.Visible = False PictureBox2.Visible = False PictureBox3.Visible = False PictureBox4.Visible = False PictureBox5.Visible = False PictureBox6.Visible = False PictureBox7.Visible = True PictureBox8.Visible = False PictureBox9.Visible = False End If If ComboBox8.Text = 仓库7 Then Button9.Visible = False PictureBox10.Visible = False PictureBox2.Visible = False PictureBox3.Visible = False PictureBox4.Visible = False PictureBox5.Visible = False PictureBox6.Visible = False PictureBox7.Visible = False PictureBox8.Visible = True PictureBox9.Visible = False End If If ComboBox8.Text = 仓库8 Then Button9.Visible = False PictureBox10.Visible = False PictureBox2.Visible = False PictureBox3.Visible = False PictureBox4.Visible = False PictureBox5.Visible = False PictureBox6.Visible = False PictureBox7.Visible = False PictureBox8.Visible = False PictureBox9.Visible = True End If End Sub Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged TextBox7.Text = ComboBox1.Text If ComboBox1.Text = Then Button1.Enabled = False End If If ComboBox1.Text = 1号仓库 Then x1 = 0 PictureBox10.Refresh() TextBox1.Text = Button1.Enabled = True End If If ComboBox1.Text = 2号仓库 Then x1 = 0 PictureBox10.Refresh() TextBox1.Text = Button1.Enabled = True End If If ComboBox1.Text = 3号仓库 Then x1 = 0 PictureBox10.Refresh() TextBox1.Text = Button1.Enabled = True End If If ComboBox1.Text = 4号仓库 Then x1 = 0 PictureBox10.Refresh() TextBox1.Text = Button1.Enabled = True End If If ComboBox1.Text = 5号仓库 Then x1 = 0 PictureBox10.Refresh() TextBox1.Text = Button1.Enabled = True End If If ComboBox1.Text = 6号仓库 Then x1 = 0 PictureBox10.Refresh() TextBox1.Text = Button1.Enabled = True End If If ComboBox1.Text = 7号仓库 Then x1 = 0 PictureBox10.Refresh() TextBox1.Text = Button1.Enabled = True End If If ComboBox1.Text = 8号仓库 Then x1 = 0 PictureBox10.Refresh() TextBox1.Text = Button1.Enabled = True End If End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick TextBox2.Text = Now End Sub Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick Dim g As Graphics = PictureBox10.CreateGraphics h = PictureBox10.Height g.TranslateTransform(40, h - 55) Dim p1 As Pen = New Pen(Color.LimeGreen) z = Val(TextBox3.Text) a = 4.2 i = 20 x2 = x1 + i y2 = -z * a g.DrawLine(p1, x1, y1, x2, y2) x1 = x2 y1 = y2 If x2 = 780 Then x1 = 0 PictureBox10.Refresh() End If g.Dispose() p1.Dispose() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click PictureBox10.Visible = True End Sub Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged SerialPort1.Close() Button2.Text = 打开串口 SerialPort1.PortName = ComboBox2.Text End Sub Private Sub ComboBox3_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox3.SelectedIndexChanged SerialPort1.BaudRate = ComboBox3.Text End Sub Private Sub ToolStripMenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem3.Click Me.Close() End Sub Private Sub 当前温度ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 当前温度ToolStripMenuItem.Click 当前温度ToolStripMenuItem.Text = TextBox3.Text End Sub Private Sub 上限温度ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 上限温度ToolStripMenuItem.Click 上限温度ToolStripMenuItem.Text = 45 End Sub Private Sub 下限温度ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 下限温度ToolStripMenuItem.Click 下限温度ToolStripMenuItem.Text = 0 End Sub Private Sub 关于ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 关于ToolStripMenuItem1.Click MsgBox(如有问题请登录www.坑你一会儿.com) End Sub Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged Button9.Text = TextBox3.Text & End Sub Private Sub PictureBox10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox10.Click Button9.BackColor = Color.Green Button9.Visible = True If Timer2.Enabled = False Then Timer2.Enabled = True Timer4.Enabled = True Else Timer2.Enabled = False Timer4.Enabled = False End If End Sub Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click If Button6.Text = 记录数据 Then Button6.Text = 已打开 TextBox1.Visible = True Else Button6.Text = 记录数据 TextBox1.Visible = False End If End Sub Private Sub Timer4_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer4.Tick If s = 0 Then TextBox1.Text &= TextBox2.Text & & TextBox7.Text & & TextBox3.Text & & vbCrLf Else TextBox1.Text &= TextBox2.Text & & TextBox7.Text & & TextBox3.Text & & vbCrLf End If End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But

温馨提示

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

评论

0/150

提交评论