51单片机在无线数据传输中的应用
发/主控站收时,验证方式与此相同。验证通过后,测量站开始发送数据。
*一个指令由3字节构成,第二字节等于第一字节加上35H,第3字节等于第二字节加上36H。如果收到的指令不符合此规则,则重发该命令,连续三次错误时停发。
*主控站每发一个指令,测量站都回送一个应答信号。该应答信号中包含原指令样本。
下面给出单片机串行口与电台的基本通信程序。
初始化程序:
BTL EQU 2FH ;波特率放在内部RAM的2FH单元
MOV TMOD,#21H;T0方式1,16位计数器,T1方式2,串口用
SETB TR0 ;启动T0
MOV BTL,#0F3H ;波特率设定为1200
MOV SCON,#0C0H;串口方式3,9位数据,禁止接收
接收及验证程序:
NUM EQU 2BH ;同步符个数值存放在内部RAM的2BH单元
TEMP EQU 2CH
ROM-CH:DB 55H,55H,55H,55H,55H,55H,55H,55H,55H,55H
DB 55H,55H,55H,55H,55H,55H,55H,55H,55H,55H ;20字节同步符
MIM DB 'WSC':3字节密码“WSC”
SETB P3.5 ;置电台收状态
SETB REN ;允许串口接收
A1:MOV NUM,#0 ;记录连续到同步符55H的个数
A2:JB RI,A2 ;串口有数据转A3
A3:CLR RI ;清接收中断标志
MOV A,SBUF ;读串口数据
CJNE A,#55H,A1;不是同步符转A1
INC NUM ;收到的同步符个数加1
MOV A,NUM ;取收到的同步符个数
CJNE A,#5,A2 ;未收够连续5个55H转A2
A4:MOV NUM,#0 ;密码验证,记录收到密码字节数
A5:MOV DPTR,#MIM;密码字符首址
MOV A,NUM
MOVC A,@A+DPTR;查表取密码
MOV TEMP,A ;保存密码
JB RI,A6 ;串口收完一个字节转A6
…
A6:CLR RI ;清接收中断标志
MOV A,SBUF ;读串口数据
CJNE A,TEMP,A4;与密码不符转A4
INC NUM ;收到的密码个数加1
MOV A,NUM ;取已收到的密码字节数
CJNE A,#3,A5 ;密码未收完转A5
发送程序:
CLR P3.5 ;置电台发状态
MOV B,#23
MOV DPTR,#ROM-CH
B1:CLR A
MOVC A,@A+DPTR;查表发送同步符和密码共24字节
INC DPTR
LCALL SEND-CH ;调发送单字节子程序
DJNZ B,B1
…
CLR A
MOV DPTR,#7000H;外部RAM数据首址,发送外部RAM中的数据到电台
B2:CJNE R4,#0,B3
CJNE R3,#0,B3;R4R3=发送字节数
B3:MOVX A,@DPTR;取数据
INC DPTR
LCALL SEND-CH
CJNE R3,#0,B4
CJNE R4,#0,B5
B4:DEC R3
LJMP B2
DEC R3
DEC R4
LJMP B2
…
SEND-CH:SETB TB8
MOV SBUF,A
DB 0,0,0,0,0,0,0,0
JNB TI,$ ;延时4μs
CLR TI
RET
结语
无线数据传输系统建成后,已经使用了两年多,运行结果表明,系统工作稳定可靠。由于采用了较完善的软硬件设计和抗干扰措施,保证了系统工作的安全性和可靠性。测量站把采集的现场信号及时传送到主控站,提高了数据处理的实时性。单片机和数字电台接口的软硬件设计具有很强的适用性,可广泛应用于无线数传设备。
- 在应用可编程测控网络设计(03-15)
- 基于AT89C51单片机的微型可编程控制器(04-23)
- 基于AT89C51单片机的量程自切换频率计(01-25)
- 基于AT89C51单片机的十进制计算器系统设计(06-29)
- 基于单片机的智能计步器设计(09-20)
- 可编程逻辑器件与单片机在双控制器中的设计(06-04)