打印

无线数据传输模块

[复制链接]
2047|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
无线通信因其组网灵活,无需布线,不受地理环境限制等优点而受到青睐,近年来发民迅速,被广泛应用于遥控,遥测,不型无线网络,无线抄表,门禁系统,小区传呼,工业数据采集系统,无线标签,身份识别,小型无线数据终端,安全防火系统,无线遥控系统,生物信号采集,水文气象控制,机器人控制,无线/230/422/485数据通信系统。

PTR2000性能优异,使用方便,具有超低功耗,高速率无线接收发数传功能。可广泛应用于无线传产品的设计领域。
基于PTR2000的无限数据传输电路设计如图

(无线传输模块单片机部分)


(PC和PTR模块的接口电路)
程序
**************************************************************************
主程序完成的功能是单片机接收PC机通过PTR2000送来的指令,根据指令内容决定采集数据并且启动发送过程。发送完毕后,向PC机端发送结束指令,完成后,单片机端PTR2000回到接收状态。
****************************************************************************
MAIN:LCALL  CLEART
        LCALL  CLEARR
        CLR    TXEN        初始为接收状态
        SETB    PWR       正常工作模式
        CLR      CS          选择频道0
        CLR      EA
11.0592MHz下,设置串行口9600波特率,工作方式1,8位数据位,1位停止位,无奇偶校验
        MOV  TMOD,#21H        定时器1工作模式1,定时器0工作模式2
        MOV   SCON,#50H        串行口工作方式1,REN=1
        MOV   PCON,# 00H
        MOV   TH1,#0FDH
        MOV   TL1,#0FDH
        SETB    TR1                 定时器1开始计时
        SETB    PT0
        MOV   TH0,#3CH
        MOV   TL0,#0B0H
        MOV   IE,#90H             EA=1,ES=1:打开串口中断
LOOP0:JNB   FLAGSENDREQ,NEXT0
        SETB  TXEN  改变为发射状态
     LCALL  DELAY   延时5ms
     LCALL   GETDATA  采集数据
     LCALL   SEND       发送
        CLR    FLAGSENDREQ
        LCALL   SENDOVER      通知PC机发送结束
     CLR      TXEN           重设为接收状态
        RETI
NEXT0:JNB   FLAGRESENDREQ,NEXT1
SETB  TXEN  改变为发射状态
     LCALL  DELAY   延时5ms
     LCALL   GETDATA  采集数据
     LCALL   SEND       发送
        CLR    FLAGSENDREQ
        LCALL   SENDOVER      通知PC机发送结束
     CLR      TXEN           重设为接收状态
        RETI
定时器0中断服务子程序
T0:CLR   ET0
     CLR  5MSFLAG
     MOV   TH0,#3CH
     MOV   TL0,#0B0H
     SETB  ET0
     RETI
串口中断服务子程序
SINT:CLR    RI     判断是否收到字符'$',其数值为0x24,置开始接收标志位
      MOV   A,SBUF
      CJNE   A,#24H,NEXT2
      JB    FLAGSTARTREC,NEXT2
      SETB    FLAGSTARTREC
NEXT2:JB   FLAGSTARTREC,EXIT8
         MOV  A,RCOUNT
         CLR    C
         SUBB  A,#05H
         JNC    NEXT7
         MOV   A,#RBUF
         ADD   A,RCOUNT
MOV   R0,A
         MOV   A,SBUF
         MOV   @R0,A
         INC   RCOUNT
;;;;;;;判断是否收到字符'*',其数值为0x2A,根据接收的指令设置相应标志位
NEXT7:MOV   A,#RBUF
         ADD   A,RCOUNT
         DEC    A
MOV   R0,A
MOV   A,@R0
CJNE   A,#2AH,NEXT6
MOV    RCOUNT,#00H
CLR     FLAGSENDREQ
MOV  A,#RBUF
          ADD  A,#02H
MOV   R0,A
MOV  A,@R0
          CJNE  A,#33H,EXIT8          收到“请求发送”指令
          SETB   FLAGSENDREQ
          CJNE  A,#66H,EXIT8          收到“请求重发”指令
          SETB   FLAGREREQ
EXIT8:   RETI
NEXT6:MOV  A,COUNT
         CJNE  A,#05H,EXIT6
MOV  A,#RBUF
          ADD  A,#02H
MOV   R0,A
MOV  A,@R0
          CJNE  A,#33H,EXIT8           收到“请求发送”指令
          SETB   FLAGSENDREQ
          CJNE  A,#66H,EXIT8           收到“请求重发”指令
          SETB   FLAGREREQ
          RETI
EXIT6:LCALL   CLEARRBUF
        RETI
;发送缓冲区清零
CLEARTBUF:MOV CNT1,#0BH
        MOV  R0,#TBUF
LOOP1:MOV  @R0,#00H
        INC   R0
        DJNZ   CNT1,LOOP1
EXIT8:  RET
;接收缓冲区清零
CLEARRBUF:MOV CNT1,#0BH
         MOV  R0,#RBUF
LOOP2: MOV  @R0,#00H
         INC   R0
         DJNZ   CNT1,LOOP2
         RET
延时5MS
DELAY:SETB   TR0
         SETB   ET0
         JNB   标志寄存器DELAY5MS,$
         CLR  ET0
         CLR  TR0
         SETB   FLAGDELAY5MS
         RET
************************************************************************
采集数据函数经过简化处理,取固定的7个字节数据
***********************************************************************
GETDATA:MOV   CNT1,#07H
           MOV    R0,#DATABUF
  LOOP3: MOV    @R0,#80H
NC   R0
           DJNZ   CNT1,LOOP3
           RET
单片机端发送数据函数
SEND:MOV    CNT1,#07H
       MOV    R0, TBUF
       MOV    @R0,#24H                    起始位
       INC     R0
       MOV    @R0,#07H                   7个数据字节
       INC     R0
LOOP4:MOV  @R0, 80H
        INC   R0
        DJNZ   CNT1,LOOP4
        INC   R0
        MOV  @R0,#2AH                  停止位
        MOV   CNT1,#0AH
        MOV   R0,#TBUF
LOOP5:MOV  A,@R0
          MOV  SBUF,A
          JNB  T1,$
          CLR  TI
          INC   R0
          DJNZ  CNT1,LOOP3
          RET
***************************************************************************
通知PC机端发送结束函数
**************************************************************************
SENDOVER: CLR  TI         
          MOV   A,#24H
          MOV  SBUF,A
          JNB  T1,$
          CLR  TI
           MOV A,#01H  
          MOV  SBUF,A
          JNB  T1,$
          CLR  TI
          MOV   A,#99H               通知PC机端“发送结束”
MOV  SBUF,A
          JNB  T1,$
          CLR  TI
          MOV   A,#99H              
MOV  SBUF,A
          JNB  T1,$
          CLR  TI
MOV   A,#2AH            
MOV  SBUF,A
          JNB  T1,$
          CLR  TI
          RET
评分
参与人数 1威望 +1 收起 理由
qq1175597916 + 1 很给力!

相关帖子

沙发
jxmzzr| | 2012-4-19 08:21 | 只看该作者
无线通信环境的不确定性,各种环境下的传输效果不尽相同。
值得一提的是蓝牙技术,它是一种短距的无线通信技术,电子装置彼此可以通过蓝牙连接起来,省去了传统的电线,通过芯片上的无线接收器,配有蓝牙技术的电子产品能够在十公尺的距离内彼此相通,传输速度可以达到1MB/S:)

使用特权

评论回复
板凳
tianm| | 2012-4-19 16:22 | 只看该作者
无线还是方便很多

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:好好学习,天天向上!

519

主题

4195

帖子

31

粉丝