基于rs-232c的串口通信毕业设计(编辑修改稿)内容摘要:
度的参数。 它表示每秒钟传送的 bit 的个数。 例如 200 波特表示每秒钟发送 200 个 bit。 当提到时钟周期时,就是指波特率。 例如如果协议需要 9600 波特率,那么时钟是 9600Hz。 这意味着串口通信在数据线上的采样率为 9600Hz。 数据位: 是衡量通信中实际数据位的参数。 当计算机发送一个信息包,实际的数据不会是 8 位的,标准的值是 7 和 8位。 如何设置取决于要传送的信息。 比如,标准的 ASCII 码是 0~ 127( 7位)。 扩展的 ASCII 码是 0~ 255( 8 位)。 如果数据使用简单的文本(标准 ASCII 码),那么每个数据包使用 7 位数据。 每个包是指一个字节,包括开始 /停止位,数据位和奇偶校验位。 由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。 停止位:用于表示单个包的最后一位。 典型的值为 1, 和 2 位。 由于数据是在传输线上定时的,并且每一 个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。 因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。 适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。 奇偶校验位:在串口通信中一种简单的检错方式。 有四种检错方式:偶、奇、高和低。 当然没有校验位也是可以的。 对于偶和奇校验的情况,串口会设置校验(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。 例如,如果数据是 011,那么对于偶校验,校验位为 0,保证逻辑高的位数是偶数个。 如果是奇校验, 校验位位 1,这样就有 3个逻辑高位。 高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。 这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。 ( 3) Portopen 设置并返回通讯端口的状态,也可以打开和关闭端口。 ( 4) Input 从接收缓冲区返回和删除字符。 该属性在运行时为只读。 ( 5) InputLen 设置并返回每次 Input 属性从接收缓冲区中读取的字符数。 InputLen 属性的缺省值为 0。 设置 InputLen 为 0 时, Input 将读取接收缓冲区的全 部字符。 ( 6) Output 向传送缓冲区写数据。 要传送的数据可是文本数据或二进制数据。 ( 7) CommEvent 返回最近的通讯事件或错误。 只要有通讯错误或事件发生错误时就会产生 Onm 事件。 CommEvent 属性中存有该错误或事件的数值代码。 在 VB 开发串口程序时需多次用到 Timer 控件,其主要属性如下: ( 1) Enabled 返回或设置一个值,该值用来确定一个窗体或控件否能够对用户产生的事件作出反应。 通过把 Enabled 设置为“ False”来使 Timer 控件成为无效,将取消由控件的 Interval 属性所建立的倒计时数。 ( 2) Interval 返回或设置对 Timer 控件的计时事件调用间的毫秒数。 Timer 控件的 Enabled 属性决定该控件是否对时间的推移作出响应。 将 Enabled 设置为“ False”会关闭 Timer 控件,设置为“ True”则打开 Timer 控件。 当 Timer 控件置为有效时,倒计时总是从其 Interval 属性设置值开始。 创建 Timer 事件程序。 可通知 VB 在每次 Interval 到时该做什么。 Timer 控件和 Enabled 属性设置为“ True”时, VB 将在 Interval 时间到后自动访问 Timer_Timer 过程。 为实现通信程序,须在 VB 开发环境下设置一个用做控制通信的窗体。 窗体上主要有通信控件 msm 和 Timer 控件。 VB的特点是事件驱动,定时器控件会定时触发相应事件的驱动程序。 通信程序如下: ( 1)在添加的 msm 控件的属性中选择 CommPort 的端口号为 1。 (若 Comm1 口被占用可选择 Comm2 口)此属性也可以通过代码设置其程序如下: =1 ( 2)设置握手协议即 msm 的 HandShanking 为 0ComNone ( 3)设置传输速度参 数属性 Setting 为“ 1200, N, 8, 1”其意义(即通信协议)表示为所使用的通信端口是以每秒 1200Bit 的速度传输,不作字符校验,每次数据位是 8 个 Bit,而停止位是 1 个 Bit。 (4)设置两个文本框 TEXT1, TEXT2 用于接收与发送数据。 在添加一个 Timer控件控制自动侦测接受数据。 Timer 控件的 Interval 属性值为 20。 ( 5)打开通信端口: = True ( 6) 接收数据程序的实现方法: Private Sub Command4_Click() Dim Buf$ Buf = Trim() If Len(Buf) = 0 Then = Else = Buf End If End Sub ( 7) 启动自动侦测读取数据的程序: Private Sub Command5_Click() = Not End Sub Private Sub Timer1_Timer() If 0 Then = + End If End Sub ( 8)发送程序的实现方法: Private Sub Command1Click() Comm1. Output = Text1. Text ; 将发送区文本框中的内容放入 End Sub ( 9)清空接收区显示数据 Private Sub Command6_Click() = End sub (10)结束 Private Sub Command 3Click() Comm1. PortOpen = False End Sub Visual Basic 开发串口通信程序界面设计 封面 1的设计: ( 1)打开一个新的 Visual Basic 工程,在新建工程选项框中选择标准 EXE。 在 Form 属性中的 Picture 中选择添加图片。 这样就完成了显示屏幕中出现图片的效果。 初始化代码为: Private Sub Form_Load() Set = LoadPicture(D:\04 计通 1\图片 \) X = 10 Y = 10 ;定义添加图片出现的起始位置 a = 30 b = 50 End Sub ( 2) 动态图片的设计: 在 Form 界面中添加一个 Timer 控件,设其 Interval 属性值为 20, enable属性为 Ture。 这样就实现了封面中类似屏保的图片的移动。 在 Timer 事件中的图片动态显示程序代码: Private Sub Timer1_Timer() X, Y X = X + a Y = Y + b If X = Then a = 50 If Y = Then b = 20 If X = 0 Then a = 10 If Y = 0 Then b = 20 End Sub ( 3)添加两个标签分别设 Caption 属性为“您好。 欢迎使用。 ”“下一步”来显示文本。 图 3 封面 1 界面 1的设计: ( 1)动态标签字幕颜色变换放大的实现: 在 Form 界面中添加一个计时器 Timer 控件, 设其 Interval 属性值为 100。 再添加一个标签设 Caption 属性为“ Visual Basic 与单片机的串口通信演示”。 程序代码为: Dim X, Y, a, b As Single Private Sub Timer2_Timer() Static X, Y Y = Y + 1 X = X + 1 If X 30 Then X = 1 If Y 15 Then Y = 1 = QBColor(Y) = X End Sub ( 2)同理在在 Form 界面中添加一个计时器 Timer( Timer3)控件,设其Interval 属性值为 100。 添加一个标签 Label2 设 Caption 属性为“欢迎点击进入” 此标签用于提示进入主界面。 程序代码为: Dim X, Y, a, b As Single Private Sub Timer3_Timer() Static X, Y Y = Y + 1 X = X + 1 If X 40 Then X = 1 If Y 15 Then Y = 1 = QBColor(Y) = X End Sub ( 3)移动图片实现的方案: 添加 1个计时器 Timer ( Timer1)控件设其 Interval 属性值为 100。 添加Image1, Image2 , Image3, Image4, Image5, Image6 控件, Stretch 属性均为 Ture, Image1, Image2 加载 PC机图片, Image4, Image5 添加单片机图片。 Image1, Image2, Image4, Image5 的 visible 为 False。 这样可以实现图片从屏幕左边逐渐右移并循环移动的效果。 程序代码为: Private Sub Timer1_Timer() If Then = 200 End If = + 350 If = Then = Else = End If If Then = 200 End If = + 350 If = Then = Else = End If End Sub 图 4 界面 1 选项对话框的设计 在工具箱中空白处单击鼠标右键选择部件选项,在弹出的对话框中选择添加Sstab 控件。 在该控件的属性中分别设置标题为“通用”、“缓存”、“硬件”。 在每一个标题下添加命令按钮用以三个标题的切换。 选项对话框 可以使得用户随时查看串口通信的参数信息。 程序如下: Private Sub mand1_Click() = False End Sub Private Sub Command2_Click() = False End Sub Private Sub Command3_Click() = False End Sub 图 5 选项对话框 主界面的设计 ( 1)菜单的设计: 新建一个 form 界面。 通过工具栏的菜单编辑器选项编辑菜单,设计标题为“启动程序”、“字体”、“颜色”、“选项”然后通过菜单的 Click事件调用各个程序。 在工具箱中空白处单击鼠标右键选择部件选项,在弹出的对话框中选择添加 2个 CommonDiolag 控件。 单击 “字体”、“颜色”、“选项”后可以调出各 个对话框。 程序代码如下: 颜色对话框 程序代码: Private Sub color_Click() = 1 = BackColor = 3 = End Sub 字体对话框 程序代码: Private Sub Fontname_Click() = 3 = = = = = = End Sub ( 2)动态字幕的实现方案 在主界面中添加一个 picture 控件和一个 Label 标签与一计时器控件。 Label 标签的 Caption 属性为“ 基于 RS232 的单片机与 PC 机串口通信实验演示” Timer 控件设其 Interval 属性值为 100。 将 Label 标签添加在 picture 控件中,这样实现了字幕自左端向右循环移动的效果。 程序代码为: Dim thetitle As String, counter1 As Integer Private Sub Timer2_Timer() Dim str As String str = Mid(thetitle, 1, counter1) If Len(str) = Len(thetitle) Then counter1 = 0 End If = str counter1 = counter1 + 1 End Sub ( 3)图片交替显示的实现方案: 在主界面中添加 Image1 , Image2, Image3 控件, Stretch 属性均为TureImage1,加载 PC 机图片 Image2 添加单片机图片。 在加入一个 Timer。基于rs-232c的串口通信毕业设计(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。