上位机与下位机的程序.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一.上位机程序: 1.添加MScomm控件,并在窗体装入时进行初始化 Private Sub Form_Load() Timer1.Enabled = False MSComm1.InBufferSize = 40 '初始化串口 MSComm1.InBufferCount = 0 MSComm1.InputMode = comInputModeBinary '二进制方式 MSComm1.CommPort = 1 MSComm1.Settings = "9600,N,8,1" MSComm1.RThreshold = 1 MSComm1.InputLen = 0??????????????????????????????????? '每次读入缓冲区所有字符 If MSComm1.PortOpen = False Then MSComm1.PortOpen = True???????????????????????????? '打开串口 End If End Sub 2.添加一个命令按钮Command“应用”用于确认信息无误后发送。 Private Sub Command1_Click() Dim A,B A =Check1(0).Value + Check1(1).Value * 2 + Check1(2).Value * 4 + Check1(3).Value * 8 B = Check1(4).Value + Check1(5).Value * 2 + Check1(6).Value * 4 + Check1(7).Value * 8 If MSComm1.PortOpen = False Then MSComm1.PortOpen = True???????????? '打开串口 End If MSComm1.OutBufferCount = 0 MSComm1.Output = Chr(CInt(B))???????????????? '向单片机发送数据 MSComm1.OutBufferCount = 0 MSComm1.Output = Chr(CInt(A)) End Sub 3.添加Text,用于显示单片机返回的数据(在此只是为了演示接收) Private Sub MSComm1_OnComm() If MSComm1.CommEvent = comEvReceive Then Text1.Text = AscB(MSComm1.Input) ??????????????? End If MSComm1.InBufferCount = 0 End Sub 下位机程序 源程序代码 S_SET BIT P1.0 ;数字钟秒控制位 M_SET BIT P1.1 ;分钟控制位 H_SET BIT P1.2 ;小时控制位 SECOND EQU 30H MINUTE EQU 31H HOUR EQU 32H TCNT EQU 34H ORG 00H SJMP START ORG 0BH LJMP INT_T0 START: MOV DPTR,#TABLE MOV HOUR,#0 ;初始化 MOV MINUTE,#0 MOV SECOND,#0 MOV TCNT,#0 MOV TMOD,#01H MOV TH0,#(65536-50000)/256 ;定时50毫秒 MOV TL0,#(65536-50000)MOD 256 MOV IE,#82H SETB TR0 ;**************************************************** ;判断是否有控制键按下,是哪一个键按下 A1: LCALL DISPLAY JNB S_SET,S1 JNB M_SET,S2 JNB H_SET,S3 LJMP A1 S1: LCALL DELAY ;去抖动 JB S_SET,A1 INC SECOND ;秒值加1 MOV A,SECOND CJNE A,#60,J0 ;判断是否加到60秒 MOV SECOND,#0 LJMP K1 S2: LCALL DELAY JB M_SET,A1 K1: INC MINUTE ;分钟值加1 MOV A,MINUTE CJNE A,#60,J1 ;判断是否加到60分 MOV MINUTE,#0 LJMP K2 S3: LCALL DELAY JB H_SET,A1 K2: INC HOUR ;小时值加1

文档评论(0)

187****5045 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档