单片机与PC的无线通信接口设计_第1页
单片机与PC的无线通信接口设计_第2页
单片机与PC的无线通信接口设计_第3页
单片机与PC的无线通信接口设计_第4页
单片机与PC的无线通信接口设计_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、长沙航空职业技术学院 毕业设计(论文)题 目: 单片机与PC的无线通信接口设计系 别: 电子电气工程系 专 业: 应 用 电 子班 级: 电子 0301班姓 名: 张立 指导老师: 王文杰.卢斌目录前言开题报告设计目的设计要求设计原理总体框图绪论摘要任务硬件设计单片机原理及接口技术单片机串口通信PC机与单片机的各种通信方式通信接口的组成结构rs-232 MAX233无线通信模块PTR2000硬件图vb界面图软件设计单片机通信程序程序清单:界面程序程序源代码设计心得致谢元器件清单参考文献实习终结前言单片无线收、发一体无线数传模块PTR2000可广泛用于遥控、遥测、小型无线网络、无线抄表、门禁系统

2、、小区传呼、工业数据采集系统、无线标签、身份识别、非接触RF智能卡、小型无线数据终端、安全防火系统、无线遥控系统、生物信号采集、水文气象控制、机器人控制、无线/230/422/485数据通信、数字音频、数字图像传输等系统。图3是PTR2000的一种具体应用框图。图中,MCU单片机可以是8031、2051、68HC08、PIC16C、Z8等,可将PTR2000直接到单片机的串口或I/0口上。图4的接收和发射系统图可完成数据采集的点对点传输。适用于工业控制、数据采集、无线键盘、无线标签、身份识别等系统中。设计目的一般的PC与单片机之间的串行通信,需要单片机采集数据,然后用异步串行通讯方式将数据传给

3、PC机。传输数据的方式可以用有线的数据传输,例如采用有线的串,并型总线,I2C总线,CAN总线等,也可以是无线数据传输。本设计介绍单片机与PC的无线通信,一种和单片机密切相关的无线数据传输方式,单片机和无线数据收发模块PTR2000的组合,形成单片机的无线数据传输系统,与PC进行无线数据传输。设计要求本次设计是为了更为熟练的掌握单片机以及单片机的应用,特别单片机的串行通信应用。要求熟悉PC机与单片机的各种通信方式,通信接口的组成结构,完成相应软硬件设计。设计原理把单片机处理需要发送的数据,利用串口将数据传输到无线传输模块PTR2000的发送端,串行信号经调制后发送到计算机的接收端PTR2000

4、进行解调后经MAX232电平车转换,通过RS232传给PC进行数据处理和数据记录。总体框图绪论一般单项奖片机与PC的通信是用有线的串,并型。本文给出了单片机与PC无线通信的解决方案。摘要目前国内微机网络多为有线通信方式。有线通信的优点是数据传输可靠性较高,但需要铺设较多明线,而有些领域由于条件所限,难以铺设线路,这时就需要无线通信来解决问题。本系统利用nRF-401无线收发芯片成功实现了计算机与多台单片机以无线方式通信,它可以应用于智能小区抄表系统的数据传输,多路数据采集系统,报警和安全系统等各种领域系统结构与硬件设计单片机原理及接口技术8051,8031是MCS-51系列单片机的典型产品,但

5、是8031没有程序存储器。我们以这一代表性的机型进行系统的讲解。8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(RAM):8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访

6、问,而不能用于存放用户数据,所以,用户能使用的的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。图1.1 8051内部结构 图1.1 8051内部结构 程序存储器(ROM):图1.1 8051内部结构 8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。定时/计数器(ROM):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口

7、既可以用作异步通信收发器,也可以当同步移位器使用。中断系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。时钟电路:8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。下图是MCS-51系列单片机的内部结构示意图:图1.2 MCS-51系列单片机的内部结构示意图MCS-51的引脚说明:MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两

8、根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明: 8031/8051引脚功能:Vcc:+5V电源电压。Vss:电路接地端。P0.0P0.7:通道0,它是8位漏极开路的双向I/O通道,当扩展外部存贮器时,这也是低八位地址和数据总线,在编程校验期间,它输入和输出字节代码,通道0吸收/发出二个TTL负载。P1.0P1.7:通道1是8位拟双向I/O通道,在编程和校验时,它发出低8位地址。通道1吸收/发出一个TTL负载。P2.0P2.7:通道2是8位拟双向I/O通道,当访问外部存贮器时,用作高8位地址总线。通道2能吸收/发出一个TTL负载。P3.0P3.7:通道3

9、准双向I/O通道。通道3能吸收/发出一个TTL负载,P3通道的每一根线还有另一种功能:P3.0:RXD,串行输入口。P3.1:TXD,串行输出口。P3.2:INT0,外部中断0输入口。P3.3:INT1,外部中断1输入口。P3.4:T0,定时器/计数器0外部事件脉冲输入端。P3.5:T1,定时器/计数器1外部事件脉冲输入端P3.6:WR,外部数据存贮器写脉冲。P3.7:RD,外部数据存贮器读脉冲。RST/VpD:引脚9,复位输入信号,振荡器工作时,该引脚上2个机器周期的高电平可以实现复位操作,在掉电情况下(Vcc降到操作允许限度以下), 后备电源加到此引脚,将只给片内,RAM供电。ALE/PR

10、OG:引脚30,地址锁存有效信号,其主要作用是提供一个适当的定时信号,在它的下降沿用于外部程序存储器或外部数据存贮器的低8位地址锁存,使总线P0输出/输入口分时用作地址总线(低8位)和数据总线,此信号每个机器出现2次,只是在访问外部数据存储器期间才不输出ALE。所以,在任何不使用外部数据存贮器的系统中,ALE以1/6振荡频率的固定速率输出,因而它能用作外部时钟或定时,8751内的EPROM编程时,此端输编程脉冲信号。PSEN:引脚29,程序选通有效信号,当从外部程序存贮器读取指令时产生,低电平时,指令寄,存器的内容读到数据总线上EA/VPP:引脚31,当保持TTL高电平时,如果指令计数器小于4

11、096,8051执行内部ROM的指令,8751执行内部EPROM的指令,当使TTL为低电平时, 从外部程序存贮器取出所有指令,在8751内的EPROM编程时,此端为21V编程电源输入端。XTAL1:引脚18,内部振荡器外接晶振的一个输入端,HMOS芯片使用外部振荡源时,此端必须接地。XTAL2:引脚19,内部振荡器外接晶振的另一个输入端,HMOS芯片使用外部振荡器时,此端用于输入外部振荡信号。引脚功能: MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照-单片机引脚图: l P0.0P0.7 P0口8位双向口线(在引脚的3932号端子)。l P1.0P1.7 P1口8位双向口线

12、(在引脚的18号端子)。l P2.0P2.7 P2口8位双向口线(在引脚的2128号端子)。l P3.0P3.7 P2口8位双向口线(在引脚的1017号端子)。这4个I/O口具有不完全相同的功能,大家可得学好了,其它书本里虽然有,但写的太深,初学者很难理解,这里都是按我自已的表达方式来写的,相信你也能够理解。 P0口有三个功能: 1、外部扩展存储器时,当做数据总线(如图1中的D0D7为数据总线接口) 2、外部扩展存储器时,当作地址总线(如图1中的A0A7为地址总线接口) 3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。 P1口只做I/O口使用:其内部有

13、上拉电阻。 P2口有两个功能: 1、扩展外部存储器时,当作地址总线使用 2、做一般I/O口使用,其内部有上拉电阻; P3口有两个功能: 除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。 有内部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的, 即:编程脉冲:30脚(ALE/PROG) 编程电压(25V):31脚(EA/Vpp) 接触过工业设备的兄弟可能会看到有些印刷线路板上会有一个电池,这个电池是干什么用的呢?这就是单片机的备用电源,当外接电源下降到下限值时,备

14、用电源就会经第二功能的方式由第9脚(即RST/VPD)引入,以保护内部RAM中的信息不会丢失。 (注:这些引脚的功能应用,除9脚的第二功能外,在“新动力2004版”学习套件中都有应用到。) 在介绍这四个I/O口时提到了一个“上拉电阻”那么上拉电阻又是一个什么东东呢?他起什么作用呢?都说了是电阻那当然就是一个电阻啦,当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果P0口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。ALE/PROG地址锁存控制信号:在系统扩展时,ALE用于控制把P0口的输出低8位地址送锁存器锁存起来,以实现低位地址和数据的隔离。(在后面关

15、于扩展的课程中我们就会看到8051扩展EEPROM电路,在图中ALE与74LS373锁存器的G相连接,当CPU对外部进行存取时,用以锁住地址的低位地址,即P0口输出。ALE有可能是高电平也有可能是低电平,当ALE是高电平时,允许地址锁存信号,当访问外部存储器时,ALE信号负跳变(即由正变负)将P0口上低8位地址信号送入锁存器。当ALE是低电平时,P0口上的内容和锁存器输出一致。关于锁存器的内容,我们稍后也会介绍。在没有访问外部存储器期间,ALE以1/6振荡周期频率输出(即6分频),当访问外部存储器以1/12振荡周期输出(12分频)。从这里我们可以看到,当系统没有进行扩展时ALE会以1/6振荡周

16、期的固定频率输出,因此可以做为外部时钟,或者外部定时脉冲使用。PORG为编程脉冲的输入端:在第五课 单片机的内部结构及其组成中,我们已知道,在8051单片机内部有一个4KB或8KB的程序存储器(ROM),ROM的作用就是用来存放用户需要执行的程序的,那么我们是怎样把编写好的程序存入进这个ROM中的呢?实际上是通过编程脉冲输入才能写进去的,这个脉冲的输入端口就是PROG。PSEN外部程序存储器读选通信号:在读外部ROM时PSEN低电平有效,以实现外部ROM单元的读操作。1、内部ROM读取时,PSEN不动作;2、外部ROM读取时,在每个机器周期会动作两次;3、外部RAM读取时,两个PSEN脉冲被跳

17、过不会输出;4、外接ROM时,与ROM的OE脚相接。参见图2(8051扩展2KB EEPROM电路,在图中PSEN与扩展ROM的OE脚相接)EA/VPP访问和序存储器控制信号1、接高电平时:CPU读取内部程序存储器(ROM)扩展外部ROM:当读取内部程序存储器超过0FFFH(8051)1FFFH(8052)时自动读取外部ROM。2、接低电平时:CPU读取外部程序存储器(ROM)。在前面的学习中我们已知道,8031单片机内部是没有ROM的,那么在应用8031单片机时,这个脚是一直接低电平的。3、8751烧写内部EPROM时,利用此脚输入21V的烧写电压。RST复位信号:当输入的信号连续2个机器周

18、期以上高电平时即为有效,用以完成单片机的复位初始化操作,当复位后程序计数器PC=0000H,即复位后将从程序存储器的0000H单元读取第一条指令码。XTAL1和XTAL2 :外接晶振引脚。当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。VCC:电源+5V输入 VSS:GND接地。P0口 作为通用I/O和地址数据总线使用P1口 是8位锁存器组成的特殊功能寄存器,它是通用的输入输出接口,有三种工作方式 输入输出和端口P2口 可作为通用I/O口也可作为单片机扩展时候的地址总线P3口 除了可作为通用I/O口外,还具有第二功能 如P3.0 RXD(串行

19、输入通道)P3.1 TXD(串行输出通道)RS232工作原理上位机、下位机的接口,中间的电平转换电路。该系统采用三线制,独占MCU串口方式。RS-232它广泛地被借来用于计算机的数据发送和接受(更准确的说,是计算机接口与终端或外设之间的近端连接标准)。由于在计算机系统中,往往是CPU和I/O设备之间传送信息,双方都能发送和接收。 大多数的PC机为串口使用一个9针插入式Dsub连接器。这些串口只包9个信号。这个较小的连接器可为PC机在扩展卡的后部面板上的其他连接器留出了更多的空间。这个连接器也被称作DE9,E表示这个外壳的大小。有些资料将它称作DB9,9针连接器有不同的命名,尤其是对25针连接器

20、上的19针上的信号。容易混淆的是2和3是颠倒的,2为RD,而3为TD。端口说明(PC机部分)PC机上的串行口是9针公插座,引脚定义为:1 CD 载波检测DCD2 RXD 接受数据3 TXD 发送数据4 DTR 数据终端就绪5 GND 信号地6 DSR 数据装置就绪7 RTS 请求发送8 CTS 清除发送9 RI 振铃指示RS-232连接方式 最简单的是用3根导线连接。连接交换RD和TD线,因此每个TD连接到对应的RD。如 果设备不使用硬件握手,这样就可以完成通信。复位电路计算机在启动运行时都需要复位,复位使中央处理器CPU和系统的其他器件都处于一种初始状态,并从这个初始状态开始工作,MCS-5

21、1系列单片机有一个复位引脚RST。输入一个高电平信号,该高电平信号至少要维持两个机器周期(或者24个时钟周期)以上的时间,单片机被复位,为了可靠复位,复位时间一般在10MS以上,当RST引脚变为低电平时,单片机退出复位,CPU从初始状态开始工作。这里的设计中我采用上电自动复位电路,在RST复位引脚端接一个电容至+5V和一个电阻至地端,实现上电自动复位。在加电瞬间,电容通过电阻充电,就在RST上出现一定时间的高电平,高电平时间足够长就能使单片机有效的复位。电源电路8051单片机采用电源电压5V,它的最高上限电压为5.5V。为了避免CPU工作不稳定,经常使用稳压器对给入CPU的电源电压进行稳压以达

22、到使单片机正常工作的目的3)振荡电路CPU的指令执行是靠机器周期进行存取的,因此CPU的正常工作离不开稳定的振荡频率,由于石英晶振频率稳定,常采用12MHZ的石英晶振作为单片机的振荡器使用单片机串口通信MCS-51的串行通信口MCS-51单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接收发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,而发送缓冲器则只能写入不能读出,它们的地址为99H。这个通信口既可以用于网络通信,亦可实现串行异步通信,还可以构成同步移位寄存器使用。如果在传行口的输入输出引脚上加上电平转换器,就可方便地构成标准的

23、RS-232接口。下面我们分别介绍。基本概念数据通信的传输方式常用于数据通信的传输方式有单工、半双工、全双工和多工方式。单工方式:数据仅按一个固定方向传送。因而这种传输方式的用途有限,常用于串行口的打印数据传输与简单系统间的数据采集。半双工方式:数据可实现双向传送,但不能同时进行,实际的应用采用某种协议实现收/发开关转换。全双工方式:允许双方同时进行数据双向传送,但一般全双工传输方式的线路和设备较复杂。多工方式:以上三种传输方式都是用同一线路传输一种频率信号,为了充分地利用线路资源,可通过使用多路复用器或多路集线器,采用频分、时分或码分复用技术,即可实现在同一线路上资源共享功能,我们盛之为多工

24、传输方式。串行数据通信两种形式异步通信在这种通信方式中,接收器和发送器有各自的时钟,它们的工作是非同步的,异步通信用一帧来表示一个字符,其内容如下:一个起始位,仅接着是若干个数据位,图2是传输45H的数据格式。同步通信同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步通信中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送数据量较大的场合,速度就慢得多。同步传输方式去掉了这些起始位和停止位,只在传输数据块时先送出一个同步头(字符)标志即可。同步传输方式比异步传输方式速度快,这是它的优势。但同步传输方式也有其缺点,即它必须要用一个时钟来协调收发器的工作,所以它的设

25、备也较复杂。串行数据通信的传输速率串行数据传输速率有两个概念,即每秒转送的位数bps(Bit per second)和每秒符号数波特率(Band rate),在具有调制解调器的通信中,波特率与调制速率有关。串行口控制寄存器MCS-51单片机串行口寄存器结构如图3所示。SBUF为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发送器寄存器,可以实现全双工通信。但这两个寄存器具有同一地址(99H)。MCS-51的串行数据传输很简单,只要向发送缓冲器写入数据即可发送数据。而从接收缓冲器读出数据即可接收数据。此外,从图中可看出,接收缓冲器前还加上一级输入移位寄存器,MCS-51这种结

26、构目的在于接收数据时避免发生数据帧重叠现象,以免出错,部分文献称这种结构为双缓冲器结构。而发送数据时就不需要这样设置,因为发送时,CPU是主动的,不可能出现这种现象。串行通信控制寄存器在上一节我们已经分析了SCON控制寄存器,它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是98H,其结构格式如下:表1SCON寄存器结构SCOND7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH8DH9CH9BH9AH99H98H 下面我们对各控制位功能介绍如下:(1).SM0、SM1:串行口工作方式控制位。SM0,SM1工作方式00方式001方式110方

27、式211方式3(2).SM2:多机通信控制位。多机通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接受到的数据放弃。当SM2=0时,就不管第位数据是0还是1,都难得数据送入SBUF,并发出中断申请。工作于方式0时,SM2必须为0。(3).REN:允许接收位。REN用于控制数据接收的允许和禁止,REN=1时,允许接收,REN=0时,禁止接收。(4).TB8:发送接收数据位8。电源管理寄存器PCONPCON主要是为CHMOS型

28、单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如下:表2PCON电源管理寄存器结构PCOND7D6D5D4D3D2D1D0位符号SMOD-GF1GF0PDIDL在CHMOS型单片机中,除SMOD位外,其他位均为虚设的,SMOD是串行口波特率倍增位,当SMOD=1时,串行口波特率加倍。系统复位默认为SMOD=0中断允许寄存器IE中断允许寄存器在前一节中已阐述,这里重述一下对串行口有影响的位ES。ES为串行中断允许控制位,ES=1允许串行中断,ES=0,禁止串行中断表3IE中断允许控制寄存器结构位符号EA-ESET1EX1ET0EX0位地址AFHAEHADHACHABHAAHA9

29、HA8H通信接口的组成结构第二章 无线通信模块PTR2000PTR2000模块乃是超小型、超低功耗、高速率19.2K无线收发数传MODEM。采用了当代最先进的欧洲”蓝牙技术”应用全数字科技,由单IC组合而成,接收发射合一,工作频段为433-434MHz,空中传输数据速率为19.2Kbps,工作电压范围为2.7V-5.25V,采用FSK调制,抗干扰能力强,标准的DIP引脚间距,更适合嵌入式设备。当PTR2000的TXEN脚为高时,它处于发射状态;当TXEN脚为低时,它处于接收状态。在硬件设计时,将TXEN与AT89C2051的P1.1脚连接,通过软件控制PTR2000的状态。电路原理图如图2。P

30、TR2000是一种新型的单片无线收发数传MODEM模块,该器件为超小型模块器件,具有超低功耗、高速率(19.2Kbps)无线收发数传功能,且性能优异,使用方便,可广泛应用于无线数传产品的设计领域。文中介绍了PTR2000的主要特点、引脚功能、软件设计、硬件连接及具体的应用电路。无限收发一体数传MODEM模块PTR2000芯片性能优异,在业界居领先水平,它的显著特点是所需外围元件少,因而设计非常方便。该模板块在内部需成了高频接收、PLL合成、FSK调制/解调、参量放大、功率放大、频道切换等功能,因而是目前集成度较高的无线数传产品。以往设计无线数传产品常常需要相当的无线电专业知识和昂贵的专业设备,

31、而且传统的电路方案不是电路太复杂就是调试困难而令人望而却步,以至影响了用户的使用和新产品的开发研制工作。PTR2000的出现,使有们摆脱了传统无线产品设计的困扰。该器件采用抗干扰能力较强的FSK调制/解调方式,其工作频率稳定可靠、外围元件少、功耗极低且便于设计生产,这些优异特性使得PTR200非常适合于便携及手持产品的设计。另外,由于它采用了低发射功率、高灵敏度设计,因而可满足无线管制的要求且无需使用许可证,是目前低功率无线数传的理想选择。2 PTR2000的主要特征PTR2000的主要特征如下:该器件将接收和发射合接为一体;工作频率为国际通用的数传频段433MHZ;采用FSK调制/解调,可直

32、接进入数据输入/输出,抗干扰能力强,特别适合工业控制场合;采用DDS(直接数据合成)+PLL频率合成技术,因而频率稳定性极好;灵敏度高达105bBm;工作电压低(2.7V),功耗小,接受待机状态电流仅为8A;具有两个频道,可满足需要多信道工作的场合;工作数率最高达20kbit/s(也可在较抵速率下工作,如9600bps);超小体积,约40275mm3;可直接与CPU串口进行连接(如8031),也可以用RS232与计算机接口,软件编程非常方便;标准的DIR引脚间距更适合于趼、嵌入式设备;由于采用了低发射功率、高接收灵敏的设计,因此使用时无需申请许可证,开阔地时的使用距离最远可达1000米。3引脚

33、排列及功能PTR2000模板的引脚排列如图1所示。各引脚的功能说明如下;VCC(1脚);下输入端,电压范围为2.75.25V;CS(2脚):频道选择端。CS=0时,选择工作频道1, 即433.92MHz;CS=1时选择工作频道2,即434.33 MHzDO(3脚):数据输出端;DI(4脚):数据输入端GND(5脚):电源地PWR(6脚):节能控制端。当PWR=1时,模块处于正常工作状态,PWR=0时,模块处于待机微功耗状态;TXTN(7脚):发射/接收控制端。当TXTN=1时,模块为发射状态;当TXTN=0时,模块被设置为接受状态。PTR2000可与所有单片机(如80C31、2051、68HC

34、08、PIC、Z8等)配合使用,可直接接单片机的串口或I/O口,也可与计算机串口进行通讯,此时需要在中间简单地接在一个RS232电平转换芯片,如MAX232等。工作频率;433MHz单片机(IC)无线收/发合一高度集成;FSK调制,抗干扰能力强,特别适合工业控制场合;采用DDS+PLL频率合成技术,频率稳定性极好,可用于跳频工作模式。灵敏度高:-112dBm;发射功率:低功率输出可达10mW;高功率输出可达2W;功率控制可编成。低工作电压:5V,功耗小,省电模式工作状态下待机电流30uA;具有多个频道,特别满足需要多信道工作的特殊场合;可组成蜂窝数字分组数据(CDPD)网络应用领域:无线数据传

35、输系统、车辆监控、遥控、遥测、小型无线网络、无线抄表、门禁系统、小区传呼、工业数据采集系统、无线标签、身份识别、非接触RF智能卡、小型无线数据终端、安全防火系统、无线遥控系统、生物信号采集、水文气象监控、机器人控制、无线232数据通信、无线485/422数据通信、数字音频、数字图像传输等。 性能指标:信道数 (由网络定义)多个安全自定义频率范围300-1000MHz 无线类型FHSS数据数据1.2-19.2Kbit/s;输出功率10mW(可任意编设),大功率输出可达2W。 电压、电流5V;省电工作模式为30uA;接收状态为20mA;低功率发射为:50mA;高功率发射为:1000mA灵敏度-11

36、2dBm(典型值)传输距离低功率输出:室内100m,室外1000m;高功率输出:可达10Km温度(工作)-40C to +85C湿度 10% to 90%尺寸75 X 60 X 20mm天线MMCX播孔重量不超过150gMCS-51的串行口和控制寄存器PTR2000与计算机串口进行接口的典型应用电路。连接时,PTR2000无线MODEM的DI端应接单片串口的发送端,DO接单片机串口的接收端。利用单片机的I/O可以控制模块的发射控制、频道转换和低功耗模式。如果直接将PTR2000与计算机串口连接,则可用RTS来控制PTR2000无线MODEM模块的收/发状态转换(RTS需经电平转换)。如上图。P

37、TR2000无线收发模块与单片机的连接中,PTR2000模块的D0和DI分别与单片机的RXD和TXD连接。利用单片机的I/O可以控制模块的发射控制,频道转换和低功耗模式。单片机可直接通过将P2.0位置高电平或低电平而将无线收发模块置于发射或接收状态。如上图。vb界面图软件设计在软件编程过程中,对PTR2000的工作模式和工作频道的选择尤为重要,表1给出了该模块的工作模式控制及工作频道的选择方式。表1模块工作模式控制及工作频道选择表模块接脚输入电平模块状态TXENCSPWR工作频道号器件状态0011接收0112接收1011发射1112发射Xx0待机4.1发送PTR2000的通信速率最高为20Kb

38、it/s,也可工作在其它速率如4800bps、9600bps下,无需设置PTR2000的工作速率。在发送数据之前,应将模块先置于发射模式,即TXEN=1。然后在等待至少5ms后(接收到发射的转换时间)才可以发送任意长度的数据。发送结束后应将模块置于接收状态,即TXEN=0。发射到接收的转换时间为5ms。4.2接收接收时应将PTR2000置于接收状态,即TXEN=0。然后将将接收到的数据直接送到单片机串口或经电平转换后送到计算机。4.3待机模式当PWR=0时,PTR2000进入节电待机模式,此时的功耗大约为8A,但在待机模式下不能接收和发射数据。PTR2000除了应注意在发送、接收和待机模式下的

39、编程外,还需注意在无信号时,PTR2000的串口输出的是随机数据,此时,可定义一个简单的通信协议,如在发送时,在有效数据这前加两用人才个(或多个)字节的固定标志,以便在接收一方的软件中检测该固定标志并将其作出了为下式数据的开始。为了使系统能够可靠地通信,在编程时应设计通信协议,并应考虑数据的纠检错,检错可采用较验方式或更好的CRC校验方式。在采用以PC机为控制中心的控制系统中,通常需要单片机采集数据,然后用异步串行通讯方式传给PC机,PC对单片机进行控制,如果系统不很复杂,可通过控件控制收发过程,在必要的地方自动接收装置,使定时控制和通讯过程完美地结合起来。这样,可以免去“握手”协议的繁琐过程

40、,简化编程,提高速度。VB具有面向对象的设计方法,友好的用户界面,简单方便的串行通讯和实用性强等优点,无论借用其他语言就可以开发出优秀的控制系统通讯软件。这里介绍在Windows环境下如何利用VB来实现PC机与单片机之间的串行通讯。VB环境下通讯程序的设计VB提供了串行端口控制Mscomm来为应用程序提供串行通讯。该控件屏蔽了通信过程中的底层操作,程序员可以设置、监视Mscomm控件的属性和事件,结合Timer控件即可完成对串行口的初始化和数据的输入输出工作。Mscomm控件的主要属性如下:Commport设置并返回通讯端口号。端口号可以设置为116的任何数,如Mscomm.Commport=

41、2表示设置当前通讯端口为COM2。Setting设置并返回波特率、奇偶校验、数据位、停止位。格式为Mscomm.Setting=String。String是一个包含四部分的字符串:第一部分为波特率;第二部分为奇偶校验,N表示不校验,M表示符号校验,E表示偶校验,O表示奇校验,S表示空格校验;第三部分为数据位数,其可选值为4,5,6,7,8;第四部分为停止位位数,其可选值为1,1.5,2。Setting属性的缺省值为“9600,N,8,1”。Portopen设置并返回通讯端口的状态,也可以打开和关闭端口。Input从接收缓冲区返回和删除字符。该属性在运行时为只读。InputLen设置并返回每次I

42、nput属性从接收缓冲区中读取的字符数。InputLen属性的缺省值为0。设置InputLen为0时,Input将读取接收缓冲区的全部字符。Output向传送缓冲区写数据。要传送的数据可是文本数据或二进制数据。CommEvent返回最近的通讯事件或错误。只要有通讯错误或事件发生错误时就会产生Oncomm事件。CommEvent属性中存有该错误或事件的数值代码。Timer控件的主要属性如下:Enabled返回或设置一个值,该值用来确定一个窗体或控件否能够对用户产生的事件作出反应。通过把Enabled设置为“Galse”来使Timer控件成为无效,将取消由控件的Interval属性所建立的倒计时数

43、。Interval返回或设置对Timer控件的计时事件调用间的毫秒数。Timer控件的Enabled属性决定该控件是否对时间的推移作出响应。将Enabled设置为“False”会关闭Timer控件,设置为“True”则打开Timer控件。当Timer控件置为有效时,倒计时总是从其Interval属性设置值开始。创建Timer事件程序。可通知VB在每次Interval到时该做什么。Timer控件和Enabled属性设置为“True”时,VB将在Interval时间到后自动Timer_Timer过程。为实现通讯程序,须在VB开发环境下设置一个用做控制通讯的窗体。窗体上主要有一个通讯控件Mscomm

44、l和两个Timer控件。VB的特点是事件驱动,定时器控件会定时触发相应事件的驱动程序。发送单片机命令为了使主机能够对整个检测过程进行实时控制,须要在发送命令以后设定等待的时间,也可以通过条件判断下一步是发达还是接收命令。对发送的命令,可能是文本方式或二进制代码。在发送二进制代码时,应特别注意发送的格式。发送命令过程是一个带参过程,这样可使发送命令简便易行。具体程序如下:Sub发送单片机命令过程(command As Byte)Dim输出命令(1 To 1)As ByteDoEvents输出命令(1)=commandMSComm1.OutBufferCount=0MSComm1.Output=输

45、出命令MSComm1.InBufferCount=0End Sub接收数据接收数据是一个被动的过程,可以通过函数来实现,由定时器开启。在接收过程中,多数用特征字符,如“OK”、“#”等。这些需要在通讯协议中约定。Function接收数据()DoDoEventsIn_buffer $=In_buffer$&MSComm2.InputLoop Until InStr(_buffer$,“OK”)从串行端口读“OK”响应In_buffer=Left(In_buffer,len(In_buffer)-2)接收数据=In_buffer$End FunctionTimer控件控制通过Timer控件来控制通

46、讯中的发送命令和接收数据过程,在通讯程序中设置两个Timer控件分别控制发送单片机命令和接收单片机数据。为了实现一台PC机和多单片机之间的通讯,可在一个Timer控件的过程中,在发送命令之前设定命令参数和要接收数据的单片机号,然后发送单片机命令;在另一个Timer控件的过程中,根据发送前设定的单片机号,接收不同单片机的数据。Timer控件控制程序如下:发送命令主控程序Privata Sub TimerSend_Timer()TimerSend.Enabled=FalseSelect Case commandCase 1Call发送单片机命令过程(任务1)TimerReceive.Enabled

47、=False启动自动接收Case2Call发送单片机命令过程(任务2)MSComm1.Rthreshold=0关闭自动接收TimerReceive.Interval=500TimerReceive.Enabled=True启动定时器接收机号=1Case 3Call发送单片机命令过程(任务3)MSComm1.Rthreshold=0关闭自动接收TimerReceive.lnterval=500TimerReceive.Enabled=True启动定时器接收机号=2Case 4Case nEnd SelectEnd.Sub接收数据主控程序Private Sub TimerReceive_Timer

48、()TimerReceive.Enabled=FalseSelect Case机号Case 1In_buffer$=接收数据(机号)Call任务2Case 2In_buffer$=接收数据(机号)Call任务3Case 3Case nIn_buffer$=接收数据(机号)Call任务nEnd SelectEnd Sub自动接收、监视总线状态和通讯错误的处理自动接收、监视总线状态和通讯错误的处理可以通过OnComm事件实现。VB程序运行过程中只要设置MSComm1.Rthreshold=1,在接收事件发生时程序就会自动访问MSComm1.OnComm()过程。由于外界干扰或电压波动等原因,PC机

49、和单片机之间的通讯可能会出现错误,如接收缓冲区溢出、网络端口超速等。这些可能发生的事件都能在代码中引起运行错误。为了处理这些错误,须要将错误处理代码添加到程序中。通过控件中的OnComm事件可以捕捉和处理错误。在通讯过程中所发生的通讯错误是CommEvent属性返回的。当CommEvent属性值发生改变时,表明有通讯错误,就会产生OnComm事件。同时,可以利用自动引发OnComm事件的特点在接收过程中加入状态显示码。这样可以监视通讯线路状态,得到单片机和主机及单片机和单片机之间的通讯进程。通讯错误的处理程序如下:Private Sub MSComm1_OnComm()Select Case

50、MSComm1.CommEventCase ComReceive Receive data 自动数据接收、监视总线通信信息Select Case In_buffer $Call ALabel.Enabled=“正在执行任务1”Call BEnd SelectCase comFrame Framing Error 通讯错误处理X=MsgBox(“Framing Error!”,16)错误处理Case comEventOverrun 数据丢失X=MsgBox(“数据丢失!”,16)错误处理End SelectEnd Sub单片机通信程序开始ORG 0000HLJMP MIANORG 0023HLJ

51、MP SERVE初始化定时器T1MIAN: MOV TMOD,#20H 初始化T1MOV TH1,#0F3HMOV TL1,#0F3H初始化串行口 MOV SCON,#0F0H 串行口为方式3,REN=1 MOV PCON,#80H SMOD=1 MOV R1,#40H 接受数据区起始地址 MOV R2,#32 接受数据块长度送R2启动定时器T1SETB TR1 开启T1开放中断 SETB EA 开启中断允许控制位 SETB ES 串口中断允许控制主程序踏步HERE: SJMP HERE 踏步等待中断服务程序SERVE:CLR EA 保护现场 PUSH ACCPUSH PSWCLR RS1SE

52、TB RS0接收地址MOV A,SBUF 接受地址与本机地址是否相等 XRL A,#01H 与本机地址进行比较 JNZ RETURN 与本机地址不符则返回 CLR SM2 置单片机为接受数据状态CLR RI 回送本机地址 MOV A,#01H MOV SBUF,A 发送本机地址给PC机 JNB TI,$ 等待发送完毕CLR TI接收PC机发来的字符LOOP2:JNB RI,$ 接收一个字符 CLR RI 接收一个字符后清RI MOV R1,SBUF 存入内存 INC R1 接收数据块指针加1DJNZ R2,LOOP2 若未接收完,则继续接收界面程序程序源代码设计心得致谢终于到了写致谢的时候,为

53、论文的最终定稿舒了一口气。忽然意识到3年大学生涯将就此结束,心中难免不舍。回顾这一程求学路,记忆里满是老师的悉心指导和同学的快乐相伴,他们让我的生活充实而富有活力,让我在生命的又一里程碑上刻下了重要的篇章,在此我要向他们表达最诚挚的感谢。 首先要感谢老师,他对我论文写作的指导,也指引了本次研究的领域和方向。在本论文的撰写过程中,都老师从选题直至成稿一直给予我重要的指导和帮助,为我解开了不少的困惑,提供了很多关键性的建议。另外还要感谢大学期间朝夕相处的同学也是宝贵的财富,感谢同室好友让我得到了日积月累的真挚友情,不论是有形的图文还是无形的记忆,都会珍藏着我们的欢声笑语,永不磨灭。感谢所以教育过我

54、的老师,感谢电子班所有同学,感谢所有的朋友,很幸运能够认识你们,我的学习生活因你们而更加丰富多彩。 最后,感谢我的家人,想到他们总会让我的心里安详而温暖,你们的哺育之恩、爱护之情我当永世不忘,祝他们身体健康,永远年轻!希望老师与同学在工作,生活中万事顺利元器件清单参考文献实习终结单片机与PC的无线通信接口设计摘要。4软件编程注意事项5硬件连接所示是6应用设计任务介绍单片机实现汉字显示的基本原理;选择所需元件;完成显示屏的硬件电路设计;设计硬件电路图;编写通信显示程序;界面程序程序流程图上位机的说明 。5.4程序源代码单片机程序ORG 0000HLJMP MIANORG 0023HLJMP SE

55、RVEMIAN: MOV TMOD,#20HMOV TH1,#0F3HMOV TL1,#0F3HMOV SCON,#0F0HMOV PCON,#80HMOV R1,#40HMOV R2,#32SETB TR1SETB EASETB ESHERE: SJMP HERE SERVE:CLR EAPUSH ACCPUSH PSWCLR RS1SETB RS0MOV A,SBUFXRL A,#01HJNZ RETURNCLR SM2CLR RIMOV A,#01HMOV SBUF,AJNB TI,$CLR TILOOP2:JNB RI,$CLR RIMOV R1,SBUFINC R1DJNZ R2,L

56、OOP2MOV A,#0FFHMOV P0,AANL P2,#00MOV R3,#200D100MS:MOV R4,#250DJNZ R3,$DJNZ R3,D100MSMOV 20H,#00HL100: MOV R7,#100L16: MOV R6,#16MOV R0,20HL3: MOV A,R5MOV P1,AINC R5MOV A,R0MOV DPTR,#40HMOVC A,A+DPTRMOV P0,AINC R0MOV A,R0MOV DPTR,#40HMOVC A,A+DPTRMOV P2,AINC R0MOV R4,#02DELAY2:MOV R5,#248DJNZ R5,$DJ

57、NZ R4,DELAY2MOV A,#00HMOV P0,AANL P2,#00HDJNZ R6,L3DJNZ R7,L16MOV 20H,R0CJNE R0,#0FFH,L100RETURN:POP PSWPOP ACCSETB EARETIENDVB程序Private Sub Command1_Click() 单击窗体触发 (输入在被单击时击活) Text1.Enabled = True 允许用户进行Text1操作 Text1.SetFocus 光标移动到Text1 Command2.Enabled = True 允许用户进行转换操作Text1.Locked = False Text1不可

58、编辑Text3.Locked = True Text2可编辑End SubPrivate Sub Text1_Change() Text1为改变事件 事件变化时给出提示语Dim TotalNum As Integer 定义TotalNum为整型Dim I As Integer 定义I为整型TotalNum = Len(Text1.Text) TotalNum为文本Text1.Text的长度If TotalNum = 8 Then 如果满足条件MsgBox “您输入的字符已经8个!”显示简单提示语End If TEMPSRC = App.Path + “” + “TempSrc.txt” Ope

59、n TEMPSRC For Output As #3 将数据写入文件,对文件进行写操作 Print #3, Text1.Text 把数据列表文件中指定的数据写入文件名为3的文件Close #3 关闭文件号为3的文件MSFlexGrid1.Rows = TotalNum * 2 + 1 For I = 1 To TotalNum * 2 MSFlexGrid1.Col = 0MSFlexGrid1.Row = IMSFlexGrid1.Text = INext IEnd SubPrivate Sub Command2_Click() 单击激活转换窗体Text1.Locked = True Tex

60、t1可编辑Command1.Enabled = False “输入”不允许操作Command4.Enabled = False “关闭串口”不允许操作Command5.Enabled = False “发送”不允许操作Command3.Enabled = True “打开串口”不允许操作 If Text1.Text = “” Then 输入Text1.Text为0个字符MSG = MsgBox(“输入字符个数不能为0个!”, 0 + 48 + 0, “录入检查”) 显示提示 Command3.Enabled = False “打开串口”不允许操作 Command1.Enabled = True

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论