版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、江苏信息职业技术学院毕业论文题目: 单片机与pc机的串行通信 系 别: 计算机信息工程系 专 业: 计算机应用 学 号: 29 姓 名: 指导老师: 2006年 05月10日前言在实际应用中,单片机往往不是作为一个独立的控制单元而存在,它还要和其他控制单元进行通信。这些控制单元可以是另一个单片机,也可以是pc机。大多数单片机都含有一个可编程全双工串行通信接口,每台pc 机中都有内置的rs232c串行端口,二者可以通过一定的硬件电路实现硬连接。如果双方均遵循同样的通信协议,就可以互相通行。而对于单片机,串口(uart)是最常用的端口,尤其对于存在两个或多个串口的单片机来说,充分利用串口进行通信是
2、非常重要的。设备上想要具备通信传输的功能,最简单的方法就是使用串行通信的方式。因为pc机具有强大的监控和管理功能,而单片机则具有快速、容易控制的特点,在数据量不大、传输要求不高的情况下,一般都采用给计算机机配置的rs-232标准串行接口com1、com2等相连接来实现应用系统与pc机之间的数据交换。一方面由于串行通信易于实现,另一方面也是应为串行通信的价格也很便宜。只要具备了串行通信的功能,使用者就可以和计算机作数据的交换,产品的价格马上就会被提高。现在单片机的应用越来越广泛,单片机与pc机之间的通信是一个非常重要的应用。文中主要写了利用vb来完成的单片机与pc机的串行通信并且通过实例来更深了
3、解到串行通信的内容。摘要本文简单介绍了vb的一些主要控件,和在vb环境下如何实现单片机与计算机之间实现串行通讯。本文共分四章:第一章主要了解到串行通信的基本概念。在此实验中需要rs-232的接口,所以在文章中简单的介绍了rs-232接口的应用、串行通信和同步通信与异步通信的区别。第二章的单片机串口的方法讲述了串口的工作方式和单片机收/发数据流程,在这流程中需要经过2个串行缓冲器sbuf进行。定时器/计数器有四种工作方式,其工作方式的选择及控制都由两个特殊功能寄存器(tmod和tcon)的内容来决定。第三章中是关于vb通信组件的引用,属性,事件。第四章主要从实例分析出单片机能正确接收pc机所发来
4、的命令和pc机能正确接收到单片机所发的数据信息。关键字:单片机,vb,通信控件abstractthis article simply introduced vb some mainly control, how with realizes between the monolithic integrated circuit and the computer under the vb environment realizes the serial communication.this article altogether is divided four chapters: first chapte
5、r mainly understands the serial communication the basic concept. needs rs-232 in this experiment the connection, therefore in article simple introduction rs-232 connection application, serial communication and synchronous communication and asynchronous communication difference. second chapter the mo
6、nolithic integrated circuit string mouth method narrated the string mouth work way and the monolithic integrated circuit receives/sends the data flow, needs to pass through 2 serial buffers sbuf in this flow to carry on. the timer/counter has four work ways, its work way choice and control all by tw
7、o special functions registers (tmod and tcon) the content decided. in third chapter is about the vb correspondence module quotation, the attribute, the event. fourth chapter mainly analyzes the monolithic integrated circuit from the example can correctly receive the order and pc machine which pc mac
8、hine sends in correctly receives the data message which the monolithic integrated circuit sends.key words:the monolithic integrated circuit, vb, the correspondence controls. 目 录前言摘要abstract目录第一章 串行通信的基础 ( 1 )1.1 什么是串行通信 ( 1 )1.2 rs-232 串行口 ( 1 )1.2.1 rs-232的串行通信 ( 2 )1.3 串行传输方式 ( 2 )1.同步通信与异步通信 ( 3
9、)2.波特率 ( 3 )1.4串口端口参数( 4 )第二章 单片机串行端口的使用方法 ( 6 )2.1定时器/计数器结构 ( 6 )2.2 串口工作方式 ( 8 )2.3 串行口控制寄存器 ( 9 )2.4单片机收/发数据流程 ( 10 )第三章 visual basic中的串行通信组件 ( 11 )3.1visual basic的组件引用步骤 (11)3.2 通信控件的属性 (11)3.3 通信控件的事件 (13)第四章 单片机与pc机的实例 (14)4.1 通信流程的实现 (14)4.2 单片机与pc机的串口通信的实现方法(14)4.2.1 单片机实现方法 (14)4.2.2 pc机实现方
10、法 (16)结束语 (18)致谢 (19)参考文献 (20)第一章 串行通信的基础1.1什么是串行通信所谓“串行通信”是指外设和计算机间使用一根数据信号线(另外需要地线,可能还需要控制线),数据在一根数据信号线上一位一位地进行传输,每一位数据都占据一个固定的时间长度。两个设备之间交换信息时,必须有一条线路(或是多条线路)将两者连接,因通过线上电压的改变来达到数据交换的目的。为什么一定要通过电压的改变呢?这是因为计算机本身并不知道什么是信息,在其内部只知道0和1两个状态,人类将这种0与1的组合通过不同的排列,来代表不同的意义。每一个0或1的状态,称之为1个位,每8个位被称为一个字节。串行通信(s
11、erial communication)指的是两个欲交换信息者的信息流动,而且其信息流动的方式是一个位接着一个位,有顺序地由一个方向向另一个方向流动。 计算机之间通过这种串行通信的方式传送信息已经有一段相当久远的历史,而且到了现在还是一直不断地对串行传输作改进,希望能够达到更远的距离和更好的效果。1.2 rs-232串行口在本次的实例中需要用到rs-232接口,所以简单介绍一下rs-232接口。rs-232接口又称之为rs-232口、串口、异步口或一个com(通信)口。rs-232是其最明确的名称。 在计算机世界中,大量的接口是串口或异步口,但并不一定符合rs-232标准,但我们也通常认为它是
12、rs-232口。 严格地讲rs-232接口是dte(数据终端设备)和dce(数据通信设备)之间的一个接口。1.2.1 rs-232的串行通信rs-232有单向,半双向和全双向三种通信方式。单向通信是一种最简单的通信方式,rs-232接口仅有二根导线组成。一根信号线以精确的时间间隔传输一连串串行数据位,一次传送1位数据0或1。另一根线是信号地线。这种仅在一个方向传送数据的通信方式称为单向通信,其二线接口称为单向接口。在串行通信中,数据字节被拆成一连串0或1数据位在单根导线上从一端设备传送到另一端设备。接收端设备需要知道发送端以多大传送速率(用波特率表示)传送数据位,以便重新将其组合成字节。通常有
13、两种方法实施传送速率的匹配,一种方法是,另用一根导线从发送端向接收端传送一个时钟信号,此法常用于同步通信中。另一种方法是,通信前,发送端和接收端必须使用双方协商一致的通信协议,其中包括传送速率的规定,此法常用于非同步通信,rs-232通信就采用此法。现在的工业应用中,串行通信是一种使用相当广泛的通信方式,其速度虽然没有并行通信那样快,可是由于配线数少,实现容易,所以长久以来大家一直乐于采用。1.3 串行传输方式1.同步通信与异步通信串行通信中的数据线上的数据是具有瞬时性的,某位数据只能存在于某一特定的时间段内,如果接收方在该时间内没有对数据线进行读取,该位数据即会丢失。这就要求当一方在发送数据
14、时,另一方必须也在同步接收。所谓的同步是指接收方在数据线上读得某位数据的频率与发送方在数据线上发送某位数据的频率必须是严格一致的。如何保证这种同步性呢?通常有2种解决方法:采用同步通信方式或异步通信方式。同步通信是指收发双方使用相同的时钟,由于时钟频率的相同性,因此就保证了收发双方能够以相同的频率进行数据的发送/接收操作。采用同步通信方式在传送数据时,要对数据进行分组(帧),每组的开始和结束需加上规定的码元序列作为标志序列。在发送数据之前,必须先发送此标志序列,接收方通过检测此标志序列获知某组(帧)数据的开始与结束。采用同步通信的方式进行通信时,一般很难保证收发双方的时钟严格一致。如果收发双方
15、的时钟有微小的偏差,即使不至于影响单个字符的接收,但在传送批量数据时出现的误差累积效应达到一定程度时足以使接收数据出错;而且如果接收方由于某种原因(如躁声等)漏掉一位,则所有以下接收的数据都是不正确的。一般人们利用异步通信方式来解决同步通信方式的不足。异步通信中,发送和接收双方分别使用自己的时钟,以单个字符作为最小发送/接收单元。也就是说,在这种通信方式下,每个字符作为独立的信息单元,可以随机地出现在数据流中,而每个字符出现在数据流中的相对时间是随机的。然而一个字符一旦开始发送,就必须连着将该字符其他位发送出去。由此可见,所谓的“异步”是指字符与字符间的异步,而在每个字符内部,收发双方的时钟频
16、率仍然需要保持同步。异步通信方式有效地解决了同步通信方式的弊端。在异步通信中,规定数据线在不传送数据时保持为“1”状态,在发送每个字符时,硬件自动在每个字符前添加一个“起始信号”,其长度为1位,值为“0”。在每个字符的后边添加一个“停止”信号,其长度为1、1.5或2位,值为“1”。有时为了减少误码率,经常在数据之后停止位之前添加一位的“奇偶校验位”。这样,所发送的数据不再是原来的数据,而是经过“包装”后的数据。之所以这样包装是为了接收方能够正常接收数据。接收方在接收数据时,将一直对数据线进行监视,当数据线上一旦出现“由1至0的跳变”即表明有数据到来,接收方开始接收数据,一直到正确接收到停止位时
17、,才算完成对一个字符的接收。2.波特率 波特率是指信号传输速率,是衡量数据通信能力的一个重要指标。单位是波特(baud)。在信号为二进制位的特例下,它表征了每秒钟所传送的二进制的位数。同时,它也反应了收/发时钟的频率,或者更确切地说,收方时钟的频率决定了波特率的大小。在同步通信中,波特率等同于收/发时钟的频率;而在异步通信中,其值一般为收/发时钟频率的1/16。波特率的设定是十分重要的,在实际开发中出现的不能正常接收数据的现象,大多是因影响波特率的相关参数设置不对所致。1.4 串口端口参数串行端口的通信方式将字节拆分成一个接着一个的位再传送出去。接到此电位信号的一方再将此一个一个的为组合成原来
18、的字节,如此形成一个字节的完整传送。在传输进行的过程中,双方明确传送信息的具体方式,否则双方就没有一套共同的译码方式,从而无法了解对方所传过来的信息的意义。因此,双方为了进行通信,必须遵守一定的通信规则,这个共同的规则就是通信端口的初始化。通信端口的初始化必须对以下几项进行设置: 信息的传送单位:串行通信端口以字符的形式传送信息,工业界使用的字符形式有ascii字符码及jis字符码。ascii码中8个位形成一个字符,而jis码中7个位形成一个字符。可以发现,欧美的设备大多数使用8个位的信息组,而日本的设备则大多数使用7个位为一个信息组。对于实际的rs-232传输来说,由于工业界常使用的plc大
19、多数只是传送文字码,因此只要7个位就可以将ascii码的0127号字码表达出来(2的7次方=128,共有128种组合方式),所有的可见字符也在此范围内,所以只要7个信息位数就够了。但是在某些场合,根据使用的协议,会使用到不同的传送单位。使用多少个位组成一个字节必须事先确定。 起始位和停止位:当双方准备要开始传送信息时,发送端会在所送出的字符前后分别加上低电位的起始位及高电位的停止位,接收端会根据起始位和停止位来判断是否收到字符;加入了起始位和停止位以后才比较容易实现多字符的接收能力。起始位固定为1个位,而停止位则有1、1.5、2个位等多种选择,只要通信双方协议通过即可。 奇偶校验位:奇偶校验位
20、是用来检查所传送信息的正确性的一种核对码,这其中又分成奇校验位和偶校验位两种,分别是检查字符码中1的数目是奇数或偶数。以偶校验位为例,a的ascii码是41h(16进位),将它以2进位表示时,是01000001,其中的1的数目是2,因此偶校验位便是0,使1的数目保持偶数。同样的,奇偶校验位是奇校验位时,a的奇偶校验位便是1,使1的数目保持在奇数。我们再下图予以表示。原状态10011100状态1的数目有4个如果设置偶校验应传送100111000如果设置奇校验应传送100111001将传送字符依上述的说明组合起来之后,就形成了传输的信息格式,在串行通信上的信息格式如下表示: 起始位 + 传送字符
21、+ 奇偶校验位 + 停止位因此,假设在传输时用了1个起始位、传送字符为8个位、1个停止位,不使用奇偶校验位检查,这时,每次所传输的信息位格式为: 1个起始位 + 8个信息位 + 0个奇偶校验位 + 1停止位总共有10个位,所以此时最小的传输单位是以10位为单位。如果采用不同的信息位数、奇偶校验位检查、停止位,则每次传输的字节中的位数都不相同。另外,也可以从传输速度算出实际的传输字符数。假设信息格式为以下的格式: 1个起始位 + 8个信息位 + 0个奇偶校验位 + 1停止位总共有10个位。若采用19200bps的传输速度,每一秒便可以传输19200/10=1920(byte)的信息。一般容易弄混
22、淆的地方就是:一个字节是8个位,所以19200bps的传输速率每秒可以传送2400个字节的信息(19200/8=2400);可是从上面的讨论中已经很清楚地了解到实际的传输速率是每秒钟1920个字节,这个数字就是一个不小的差异了。那么这样的差异有什么值得重视的地方吗?假如,如果使用rs -232的传输技术建立了一个控制系统,如何向别人描述系统的反映速度?因为任何形式的传输时就是所谓的系统效率,时间越短,越能显示出系统的卓越性能,所以这种时间的计算在评估系统的反应速度时十分重要。当下达命令要求设备传送信息回计算机时,在命令到达设备后,设备不可能立即将信息传送完成,设备传送信息所需要的最短时间可以根
23、据速度和传输量予以计算。例如,如果以19200bps的速度传送1920个字节的信息,就需要等待1秒钟的时间,在时间未达1秒钟之前,信息是不可能从设备完全地传送到计算机的,因此等待时间未达到1秒钟前,所读取的信息是不完整的,不可用来做处理。第二章 单片机串行端口的使用方法 51系列单片机的串行接口是由发送缓冲区、接收缓冲区及2个专用寄存器scon和pcon组成。它占用2条i/o口线(p3.0、p3.1口),分别为rxd和txd,从而构成了全双工的通信方式。2.1 定时器/计数器结构 在串口方式中发送/接收数据用到定时器/计数器,所以介绍了一些定时器/计数器结构。 定时器/计数器的基本部件是两个8
24、位的计数器(其中th1、tl1是t1的计数器,th0、tl0是t0的计数器)拼装而成。在作定时器使用时,输入的时钟脉冲是由晶体振荡器的输出经12分频后得到的,所以定时器也看做是对计算机机器周期的计数器(因为每个机器周期包含12个振荡周期,故每一个机器周期定时器加1,可以把输入的时钟脉冲看成机器周期信号)。故其频率为晶振频率的1/12。如果晶振频率为12mhz,则定时器每接收一个输入脉冲的时间为1微秒。当它用做对外部事件计数时,接相应的外部输入引脚t0(p3.4)或t1(p3.5)。在这种情况下,当检测到输入引脚上的电平由高跳变到低时,计数器就加1(它在每个机器周期的s5p2时采样外部输入,当采
25、样值在这个机器周期为高,在下一个机器周期为低时,则计数器加1)。加1操作发生在检测到这种跳变后的一个机器周期中的s3p1,因此需要两个机器周期来识别一个从“1”到“0”的跳变,故最高计数频率为晶振频率的1/24。这就要求输入信号的电平要在跳变后至少应在一个机器周期内保持不变,以保证在给定的电平再次变化前至少被采样一次。定时器/计数器有四种工作方式,其工作方式的选择及控制都由两个特殊功能寄存器(tmod和tcon)的内容来决定。用指定改变tmod或tcon的内容后,则在下一条指令的第一个机器周期的s1p1时起作用。1. 定时器的方式寄存器tmod特殊功能寄存器tmod为定时器的方式控制寄存器,寄
26、存器中每为的定义如图2-1所示。高4位用于定时器1,低4位用于定时器0。其中m1、m0用来确定所选的工作方式,如表2-1所示。1) m1、m0:定时器/计数器四种工作方式选择,见表2-1d7 d6 d5 d4 d3 d2 d1 d0gatec/tm1m0gatec/tm1m0 t1 方式控制字 t0方式控制字 图2-1m0 m1方式功能说明0 0013位定时器/计数器0 1116位定时器/计数器1 02自动装入时间常数的8位定时器/计数器1 13对t0分为两个8位独立计数器;对t1置方式3时停止工作 表2-1 工作方式选择表2) c/t :定时器方式或计数器方式选择位。c/t=1时,为计数器方
27、式;c/t=0时,为定时器方式。3) gate:定时器/计数器运行控制位,用来确定对应的外部中断请求引脚是否参与t0或t1的操作控制。当gate=0时,只要定时器控制寄存器中的tr0(或tr1)被置“1”时,t0(或t1)被允许开始计数;当gate=1时,不仅要tcon中的tr0或tr1置位,还需要p3口的int0或int1引脚为高电平,才允许计数。2. 定时器控制寄存器tcon特殊功能寄存器tcon用于控制定时器的操作及对定时器中断的控制。其各位定义如图2-2所示,其中d0d3位与外部中断有关。d7 d6 d5 d4 d3 d2 d1 d0tf1tr1tf0tr0ie1it1ie0it0 用
28、于外部中断 图2-2 tcon寄存器各位定义a) tr0:t0的运行控制位。该位置1或清0用来实现启动计数或停止计数。b) tf0:t0的溢出中断标志位。当t0计数溢出时由硬件自动置1;在cpu中断处理时由硬件清为0。若使用查询方式,该位应由软件清0。c) tr1:t1的运行控制位,功能同tr0。d) tf1:t1的溢出中断标志位,功能同tf0。tmod和tcon寄存器在复位时其每一位均清0。从上一节知道这次的串口通信用的是工作方式2,因为工作方式2发送时ti=0,txd发送字符帧,发送后txd自动为1,此时ti=1须软件清0,且触发串行中断,有第9位有效数据位,并将其装入tb8,其值由用户软
29、件设定(setb或clr);接收时ri=0和ren=1,rxd接收数据,接收到的第9位数据应满足ri=0和sm2=0或接收到是第9位数据。2.2 串口工作方式 串口的工作方式有scon的sm0和sm1定义,共有4种工作方式。其中,方式0是作为同步移位寄存器,可以通过外接移位寄存器芯片实现扩展i/o接口功能,一般不用于通信,故在此不介绍;其他3种方式均是异步通信方式。方式1:8位数据异步通信接口。波特率可变,波特率由定时器t1或t2的溢出率分频后得到。方式2:9位数据异步通信接口。波特率由主频fosc分频得到,当smod=1时,波特率为fosc/32;当smod=0时,波特率为fosc/64。方
30、式3:9位数据异步通信接口。2.3 串行口控制寄存器 控制串行口的寄存器有两个特殊功能寄存器:即串行口控制寄存器scon和电源控制器pcon。1. 串行口控制寄存器sconpcon是一个特殊功能寄存器(如下图所示),没有位寻址功能,字节地址为87h。 d7 d6 d5 d4 d3 d2 d1 d0sm0sm1sm2rentb8rb8tiri其中d7位(smod)为波特率选择位,其他均无意义。复位时的smod值为0。可用mou pcon,#80h或mov 87h,#80h指令使该位置1。当smod=1时,在串行口方式1、2或3情况下,波特率提高一倍。2. pcon中的波特率选择位特殊功能寄存器s
31、con用于定义串行口的操作方式和控制它的某些功能。其字节地址为98h。寄存器中各位内容如下:n sm0、sm1:串行口操作方式选择位,两个选择位对应于四种状态,所以串行口能以四种方式工作,见表3-1。图 3-1 串行口方式选择sm0 sm1方式功能说明波特率0 0 0移位寄存器方式fosc/120 1 18位uart可变1 029位uartfosc/64或fosc/321 139位uart可变n sm2:允许方式2和3的多机通信使能位,在方式2或3中,若sm2置为1,且接收到的第九位数据(rb8)为0,则接收中断标志ri不会被激活,在方式1中,若sm2=1,则只有收到有效的停止位时才会激活ri
32、。在方式0中,sm2必须置为0n ren:允许串行接收位。由软件置位或清零,使其允许接收或禁止接收。n tb8:是在方式2和3中要发送的第九位数据可按需要由软件置位或复位。n rb8:是方式2和3中已接收到的第九位数据。在方式1中,若sm2=0,rt8是接收到的停止位。在方式0中,不使用rb8位。n ti:发送中断标志。在方式0中当串行发送完第8位数据时由硬件置位;在其他方式中,在发送停止位的开始说由硬件置位。当ti=1时,申请中断,cpu响应中断后,发送下一桢数据。在任何方式中,该位都必须由软件清0。n ri:接收中断标志。在方式0中串行接收到第8位结束时,由硬件置位。在其他方式中,在接收到
33、停止位的中间时刻,由硬件置位。ri=1时申请中断,要求cpu取走数据。但在方式1中,当sm2=1时,若未接收到有效的停止位,则不会对ri置位。在任何工作方式中,该位都必须由软件清0。在系统复位时,scon中的所有位都被清0。2.4 单片机收/发数据流程mcs51单片机串行口发送/接收数据时,需经过2个缓冲器sbuf进行。这2个缓冲器使用同一个地址,但在物理上是独立的,其中接收缓冲器只能读出不能写入,发送缓冲器只能写入不能读出。发送过程:由指令mov sbuf,a启动,此时待传送的数据由a累加器传入串行发送缓冲器sbuf,有硬件自动在发送字符的始、末加上起始位(低电平)、停止位(高电平)及其他控
34、制位(如奇偶位等),而后在移位脉冲的控制下,低位在前,高位在后,逐位从txd端(方式0除外)发出。接收过程:串行口的接收与否受制于允许接收位ren的状态,当ren被软件置“1”后,允许接收器接收。串口的接收器以所选波特率的16倍速对rxd线进行监视,当“1到0跳检测器”连续采样到rxd线上低电平时,便认定rxd端出现起始位,继而接收控制器开始工作。在每位传送时间的第7、8、9三个脉冲状态采样rxd线,依照“3取2”的原则,决定所接收的值为“0”或“1”。当接收完停止位后,控制电路使中断标志ri置为“1”,此时程序可通过mov a,sbuf指令将接收到的字符从sbuf送入累加器a,从而完成一帧数
35、据的接收工作。第三章visual basic中的串行通信组件3.1 visual basic 的组件引用步骤刚打开的工具箱中的工具不够用时,必须通过依次选择“工程”/“部件”选择适当的控件,步骤如下。 通过上述的几个步骤,工具箱中就会出现的控件的图标,选中此图标并在窗体上施放,即可在系统设计出所需的画面或功能,这样就能开始使用通信控件。3.2 通信控件的属性通信控件的属性众多,将其重要属性说明如下:(1)commport的属性:设置或传回通信连接端口代号。程序必须指定所要使用的串行端口的号码,windows系统会使用所设置的通信端口与外界进行通信。程序也可以通过此属性读回所使用的连接端口号码,
36、在此所设置的通信端口号由1开始往上递增,mscomm控件的最大值是16,当然使用的通信端口号码超过16时,此控件会通知错误信息。(2)settings的属性:设置初始化参数。以字符串的形式设置或传回连接速度、奇偶效验、数据位、停止位等4个参数。其格式为“bbbb,p,d,s”,其中bbbb为连接速度,p为奇偶效验方式,d为数据位数,s为停止位数。默认值是“9600,n,8,1”,其意为“所使用的通信端口是以每秒9600bit的速度作传输,不作奇偶效验,每个元是8个bit,而停止位是1个bit”,而此4项必须是依照顺序,不可前后对调:其中的字母n可以是大写或小写。(3)portopen的属性:设
37、置或传回通信连接端口的状态。使用串行端口之前必须先将要使用的串行端口打开。而在使用完毕之后,也必须执行关闭的动作。串行通信端口的各项功能的完成都是在portopen的true与false之间。(4)input的属性:从输入寄存器传回并移除字符。程序靠着这个指令将对方所传至输入寄存器的字符读进程序中,并清楚与寄存器中已被读取的字符。(5)output的属性:将一个字符串写入输出寄存器,当程序需要传输字符串至对方时,可将字符串使用一条该指令写入输出寄存器中。(6)inpytlen的属性:指定由串行端口读入的字符串长度。vb所写的程序可以使用input的指令将存放在输入寄存器的字符读入,但欲指定所读
38、入的字符长度则应通过本属性开设置默认值是0,此值会使得控件的input指令一次读取所有输入缓冲区中的数据。(7)rthreshold的属性:设置或传回引发接收时间的字符数,即属性页上的“r阀值”。当接收寄存器达到所设置的字符数时,将会引发oncomm事件中的接收事件。所以此属性也就是引起接收事件的“门槛值”。此属性的默认值是0,其意义是无论寄存器中有多少字符均不会引起接收事件。3.3 通信控件的事件oncomm事件是通信控件唯一的事件,此事件可用来处理所有与通信相关的事件,不管是何种时间发生,通信控件只用一个commevebt的属性予以代表。使用事件程序的好处是不需要一直让程序处于检测的状态写
39、,只要事先将程序代码写好,一有事件发生,就会直接执行相对应的程序的代码。通信事件参数设置及其值则如下表所示。常数值说明comevsend1传输寄存器中的字符数比sthreshold还少。comevreceive2收到rthreshold个字符。该事件将持续产生直到用input属性从接收寄存器中移除数据。comevcts3clear to send线的状态发生变化。comevdsr4data set ready线的状态发生变化。该事件只在dst从1变到0时才发生。comevcd5carrier detect线的状态发生变化。comevring6检测到振铃信号。一些uart(universal a
40、synchronous receiver-transmitters)可能不支持此事件。comeveof7收到数据结尾(ascii字符为26)字符。第四章 单片机与pc机的实例4.1通信流程的实现(1)如何保证单片机能正确接收到pc机所发来的命令信息? 判断单片机是否正确接收到pc机所发来的命令信息,依然是靠单片机所发来的回应信息。此时单片机的回应信息,已非简单的应答信息。它可能是一帧数据(当命令成功执行时),也可能是表示命令执行失败的应答,也可能表示未能成功接收pc所发命令的应答。当pc机收到这些信息时,即可获知所发的命令是否已被正确接收。当然,当在规定时间内未收到任何回应信息时,表明通信链路
41、存在问题。(2)如何保证pc机能正确接收到单片机所发的数据信息?当pc机没有接收到正确的数据信息时,pc机通信流程不会进入“重发读数据命令”的状态,而仍将所接收的回应信息交给应用程序处理。这也就是说,在所设计的通信流程是不能保证pc机“发送读数据命令”时能够得到正确的数据信息。那么是由应用程序来保证。应用程序根据通信流程所返回的响应信息,决定是否重发此命令,还是发送下一个命令,或是退出通信程序。进一步而言,在pc机与单片机的通信中,命令只能由pc机发出,单片机只能被动回应,而不会向pc机发出任何命令。4.2 单片机与pc机的串口通信的实现方法4.2.1 单片机的实现方法在这次运行中需要用到ke
42、il c51应用程序,一般可以按照下面的步骤来创建。l 新建一个工程项目文件;l 为工程选择目标器件(例如选择phlips的p87c52x2);l 为工程项目设置软硬件调试环境;l 创建源程序文件并输入程序代码;l 保存创建的源程序项目文件;l 把源程序文件添加到项目中。(1)新建一工程,双击keil c51图标,进入然后单击工具栏的project的new project出现保存文件的对话框,以asm格式保存文件。将会出现下图(2)如果选择相应的器件组并其器件型号,可单击project的select device for target”target1”命令,然后重新加以选择phlips的p87
43、c52x2。(3)至此,用户建立一个空白工程项目文件,把下面的单片机的源代码org 0000hljmp startorg 0100hstart: mov scon,#50h ;串口工作在方式1 mov tmod,#20h ;定时器t1工作在方式2,作为串口的波特率发生器 mov th1,#0fdh ; mov tl1,#0fdh ;9600bps的波特率 setb tr1 ;启动定时器t1开始工作scan1:jb ri,cart1 ;等待数据接收完成(jb 位条件转移指令) ljmp scan1cart1:mov a,sbuf ;从接收缓冲区取出接收到的数据 inc a ;数据+1 clr r
44、i ;清除中断标志 mov sbuf,a ;把加1以后的数据发送出去wa1t:jbc ti,scan2 ;等待数据发送完成(等待ti=1) ljmp wa1tscan2:ljmp scan1end写入项目中,保存到同一个文件中。再在选中source group1后并单击add files to group命令。再搜索文件startup.a51到source group1中。(4)然后选择project中的options for target中的targect和output。(5)经过以上工作就可以编译程序了。(6)下载程序,先要连接dp51单片机仿真实验仪,把实验仪开关打到load处,使其工作于下载状态。(7)再双击dpflash下载软件,将会出现dpflash编程界面,再进行擦除工作,然后把开关的打到run处并按reset。此时再按编程就完成了。以下也可以用这界面来完成。4.2.2 pc机的实现方法最后就可以用sscom3.2软件来完成最后的调试了,其运行界面如下:在发送区输入111111接收区即会显示发送的代码+1。222222111111这次的程序的基本工作原理:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年高端餐厅员工聘用合同示范3篇
- 二零二五版冻猪肉储备政府采购合同争议解决与仲裁条款2篇
- 二零二五版商业地产改造与招商合作合同3篇
- 二零二五年度脚手架施工材料供应与租赁合同3篇
- 二零二五版新型让与担保合同-供应链金融支持协议2篇
- 二零二五版家政服务员与雇主及家政协会三方合作合同3篇
- 二零二五版公司间股权置换、转让与资本运作合同3篇
- 二零二五年教育机构教学质量兜底服务合同范本3篇
- 二零二五版二手房贷款买卖合同范本:适用于房产交易中的担保合同2篇
- 二零二五年度购物卡电子支付解决方案合同3篇
- 2025年河北供水有限责任公司招聘笔试参考题库含答案解析
- Unit3 Sports and fitness Discovering Useful Structures 说课稿-2024-2025学年高中英语人教版(2019)必修第一册
- 农发行案防知识培训课件
- 社区医疗抗菌药物分级管理方案
- 安徽大学大学生素质教育学分认定办法
- 巴布亚新几内亚离网光储微网供电方案
- 高度限位装置类型及原理
- 中文版gcs electrospeed ii manual apri rev8v00印刷稿修改版
- 新生儿预防接种护理质量考核标准
- 除氧器出水溶解氧不合格的原因有哪些
- 冲击式机组水轮机安装概述与流程
评论
0/150
提交评论