- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
在Windows下实现PC机与单片机AT89C51的串行通信
在事件驱动I/O方式下,Windows95报告给应用程序的事件由函数GetCommMask返回,改变返回的事件时,可以使用SetCommMask函数设置,这2个函数的调用如下:
GetCommMask(hComm,
SetCommMask(hComm,dwMask)
第1个参数是打开串口的句柄,第2个参数是要等待的1个或多个事件的掩码。在用SetCommMask设置了有用的事件后,应用程序调用WaitCommEvent函数来等待事件的发生,直到事件发生,WaitCommEvent函数返回。WaitCommEvent函数使用格式如下:
WaitCommEvent(hComm,
第1个参数是打开串口的句柄,第2个参数是返回的事件,第3个参数是指定同步或者异步操作。当函数返回后,可根据返回的事件掩码进行相应的串口操作。
完成通信后,串口应该关闭,否则,它始终处于打开状态,其他应用程序就不能打开或使用它。关闭串口的函数为:CloseHandle(hComm),其中,hComm为打开的串口句柄。
2单片机下的通信编程
单片机89C51的串行端口有4种工作方式,通过编程设计,可以使其工作在任一方式,以满足不同场合的需要。其中,方式0主要用于外接移位寄存器,以扩展单片机的I/O电路;方式1主要用于双机之间或外设电路的通信;方式2、3除有方式1的功能外,还可用作多机通信,以构成多微机系统,方式2、3的区别在于波特率的不同。
单片机的串行通信的波特率可以程控设定,在不同的工作方式下,由时钟振荡频率的分频值或由定时器T1的定时溢出时间确定。
单片机的串行端口有2个控制寄存器,用来设置工作方式、发送或接收的状态、特征位、数据传送的波特率以及中断标志TI和RI.
单片机的串行端口有1个数据寄存器SBUF,该寄存器为发送和接收所共有,在一定条件下,向SBUF写入数据就启动了发送过程,读SBUF就启动了接收过程。
单片机可以采用循环方式或中断方式实现串行数据的传送。在循环方式下,单片机循环对数据寄存器SBUF进行读写来实现数据的接收和发送;在中断方式下,对方式1、2来说,1帧数据发送或接收完后,TI/RI自动置1,请求串行中断,若CPU响应中断,则执行串行中断服务程序,并把TI/RI清0以再次响应中断。对在方式2、3下的接收,还要视串口控制寄存器SCON的设置才可确定RI是否被置位以及串口中断是否开放。
实时控制中,由于事件的突发性,常采用中断的方式进行数据传送,中断方式能更大限度地提高资源的利用率,使CPU在不进行数据通信时做其他的工作。下面重点介绍单片机在方式1下的中断方式编程。
方式1是10位异步通信方式,其中包括1个起始位,8个数据位和1个停止位。波特率由定时器T1的溢出率和串口控制寄存器SMOD的状态确定,在CPU的晶振为11.0592MHz时,波特率常采用9600b/s.
对SBUF进行写操作就可启动发送,在发送移位时钟的同步下,从TXD先送出起始位,然后是8位数据位,最后是停止位,这样,1帧数据发送完,中断标志TI置位。
在允许接收的条件下(REN=1),当RXD出现由1到0的负跳变时,即被当成是串行发送来的1帧数据的起始位,从而启动1次接收过程。当8位数据接收完,并检测到高电平停止位后,即把收到的8位数据装入SBUF,置位RI,1帧数据的接收过程就完成了。
下面是单片机以方式1在直接传送下的中断接收和发送程序。由于没有使用通信握手,所以通信双方都应做好通信准备。在计算机接收、单片机发送时,由计算机先发送字母"R",通知单片机计算机已准备好,然后计算机在事件驱动I/O方式下等待接收到字符"Y";当单片机接收到"R"时,向计算机发送"Y",表示单片机也已准备好,这样,一旦计算机接收到"Y"就表示双方都已准备好,二者之间就可以进行数据交换了。在计算机发送、单片机接收时,计算机发送1帧数据,单片机响应中断,接收数据。单片机程序的具体实现过程如下:
3结束语
串口通信是一种广泛应用于各个领域的通信方式,由于目前大部分计算机都安装了Windows95操作系统,所以本文具体实现了在Windows95下利用它的SDK函数来与单片机进行串口通信。本文所提出的实现函数在所有当前流行软件如VC++、Delphi等中
都可实现。它不仅可以用于近距离的RS-232通信,而且,还可以实现中远距离RS-485通信。在使用该程序的通信系统中,近远距离的通信都取得良好的效果。
...........................................................
与非深度解读系列:
半导体公司"大学计划"的追问和真相
大环境的不景气是就业环境恶化的元凶,但是也让我们不禁追问半导体公司的大学计划对于学子们的真正意义。厂商们的大学计划都在做些什么?那么多的联合实验室有得到充分利用吗?大学计划的直接体验者--老师和学生们是否真正从中受益…….【专栏作者:高扬】
本土IC公司调查笔记
全球经济不景气的大环境下一些本土IC公司的创新能力、管理能力、抗风险能力、盈利能力,甚至公司创立的动机都受到一些质疑。一方面官方的消息总是告诉我们中国的半导体产业得到了长足的进步;而街巷小道中又不绝流传多少本土IC公司倒闭,多少公司靠欺骗,根本没有核心竞争力….真相只有一个,也许会随《本土IC公司调查笔记》慢慢开启…【专栏作者:岳浩】
电子屌丝的技术人生系列
在这个系列里,每个故事都会向你展示一个普通工程师的经历,他们的青葱岁月和技术年华,和我们每个人的的生活都有交集。对自己、对公司、对产业、对现在、对未来、对技术、对市场、对产品、对管理的看法,以及他们的经历或正在经历的事情,我们可以看到自己的影子,也看清未来的样子……【专栏作者:任亚运】
细说电子分销江湖的那些事
对于从事电子分销行业的同仁们来说这是一个最坏的年代,也是一个最好的年代,我们即面临国际分销巨头在管理、资金、货源等方面对我们造成的冲击,又迎来本土集成电路的崛起,个性化服务盛行的机遇,通过这个系列,我想以"第一现场"的经历带大家一起了解国内集成电路分销的那些年、那些事,以及哪些感慨…..【专栏作者:张立恒】
专栏作者申请
联系人:高扬
邮箱:gaoyang@eefocus.com