PC机与单片机之间的通讯被广泛的用于工业.docVIP

PC机与单片机之间的通讯被广泛的用于工业.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PC机与单片机之间的通讯被广泛的用于工业.doc

PC机与单片机之间的通讯被广泛的用于工业、医疗测控等领域之中。在应用中,我们通常将单片机作为“感 受器”和“效应器”,负责数据采集、响应计算机发出的指令对电路进行控制,有时也进行一些简单的运算, 最后再将执行数据反馈给计算机处理。本程序将实现在PC机上输入一个0-255之间的整数,将此数据发送到单片 机,单片机接收到数据后,将数据在显示管上显示,再将此数除以2,将得数返回给PC机。其实现方法如下: ????? A、同PC机间通讯的实现方法A-B。 ????? B、连接电脑和单片机。注意!由于PC机端的RS232电平与单片机端TTL的并不不匹配,故应注意电平转换。 ????? C、在VB中输入以下代码: Private Sub Mscomm1_Oncomm() ...通讯事件发生 Dim indata As Variant Dim bte(0) As Byte Select Case MSComm1.CommEvent Case comEvReceive ...有接受事件发生 indata = MSComm1.Input ...注意!要通过MSComm控件发送或接收二进制数据必须用Variant类型的变量对二进 ...制Byte类型的变量进行转换! bte(0) = AscB(indata) Text2.Text = bte(0) MSComm1.InBufferCount = 0 ...清空输入寄存器 End Select End Sub Private Sub Command1_Click() ...发送数据 Dim Num As Integer Dim outbte(0) As Byte Num = Val(Text1.Text) outbte(0) = CByte(Num) MSComm1.OutBufferCount = 0 ...清空输出寄存器 MSComm1.Output = outbte(0) ...发送数据 End Sub Private Sub Command2_Click() Unload Me End Sub Private Sub Form_Load() ...初始化 MSComm1.CommPort = 1 ...使用Com1口 MSComm1.Settings = 9600,n,8,1 ...设置通讯参数 MSComm1.PortOpen = True ...打开串口 End Sub ????? D、单片机工作方式置于1,比特率设为9600bit/s。在单片机上,我们只得使用汇编语言编写,并且调用中 断实现对串口数据的收发工作。源代码如下: PUSH PSW??????? ;将程序状态字压入堆栈 PUSH ACC??????? ;将累加器压入堆栈 CLR EA????????? ;关闭系统中断????????? CLR RI????????? ;清除中断标志位 MOV A,SBUF????? ;从接收寄存器中读取数据 MOV 70H,A?????? ;分解数据百、十、个位并显示 MOV B,#100????? DIV AB MOV 52H,A?????? ;分解百位,送入存储器52H MOV A,B MOV B,#10 DIV AB MOV 51H,A?????? ;分解十位,送入存储器51H MOV 50H,B?????? ;分解个位,送入存储器50H MOV A,70H MOV B,#2?? DIV AB??????????? ;将接受的数据除以2 MOV SBUF,A????? ;将得数发送到输出寄存器 ACALL DL1?????? ;延时保证数据完整发送 ACALL DL1 CLR RI????????? ;清除中断标志位 SETB EA???????? ;打开系统中断 POP ACC?????????? ;累加器出栈 POP PSW???????? ;程序状态字出栈 RETI??????????? ;中断程序返回 3、编程环境????? 以上程序在Windows 2000 Professional,Visual Basic 6.0企业版,AT89C52型单片机下调试通过。 四、总结 ??? 从以上程序可以看出,在VB中利用MSComm控件,可以快速开发出串口通讯程序,从而大大提高编程效率。 VB中串口通讯的实现 一、概述 ???? 串口通讯作为一种古老而又灵活的通讯方式,被广泛地应用于PC间的通讯以及PC和单片机之间的通讯之中。 提到串口通讯的编程,人们往往立刻想到C、汇编等对系统底层操作支持较好的编程语言以及大串繁琐的代码。 ?? 实际上,只要我们借助相关

文档评论(0)

docinpfd + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档