NRF401无线数传模块与51单片机接口程序及调试
- UID
- 852722
|
NRF401无线数传模块与51单片机接口程序及调试
与51系列单片机的接口设计如下:
Nrf401端 51单片机端
TXEN ----- P3.5
POUP ----- P3.6
GND ----- GND
D In ------ TXD(P3.1)
D Out ----- RXD(P3.0)
VCC ----- VCC
发射和接收端的接线是一样的。
采用汇编语言编写的程序如下:
发射程序:
;这是一个AT89C51单片机向串口单向发送数据ASCII码的演示程序
;串行口上可以直接接MAX232连接上DB9串口,或者连接NRF401模块
;通讯波特率为9600KBPS,连续发送ASCII字符,延时一秒,0-9的循环。
;连线图 TXEN -- P3.5
; POUP -- P3.6
; GND -- GND
; D In -- TXD (P3.1)
; D Out -- RXD (P3.0)
; VCC -- VCC
;发射端的接法与接收端的接法是一样的。
ORG 0000H
MOV SCON,#50H;设置成串口1方式
MOV TMOD,#20H;波特率发生器T1工作在模式2上
MOV PCON,#00H;波特率不翻倍
MOV TH1,#0FdH;预置初值(按照波特率9600BPS预置初值)
MOV TL1,#0FdH;预置初值(按照波特率9600BPS预置初值)
SETB TR1;启动定时器T1
Setb P3.5
Setb P3.6 ;使Txen为1 发射模式 Poup为1 工作模式
;以上完成通讯初始化设置
Begin:mov A,#00h ;将Ascii字符发送到串口去
W2: MOV SBUF,A ;将字符通过串口发送出去
Wait: Jnb Ti,Wait
Clr Ti
PUSH ACC
CPL A
MOV P1,A
POP ACC
Inc A
Call Yshi1
Cjne A,#0Ah,W2
JMP Begin
Yshi1:Clr Ea
Mov R7,#40;延时子程序(精确定时一秒#10)
D1:Mov R6,#200
D2:Mov R5,#229
Djnz R5,$
Djnz R6,D2
Djnz R7,D1
Setb Ea
Ret
END
;这是一个AT89C51单片机从串口单向接收数据ASCII码的演示程序
;串行口上可以直接接MAX232连接上DB9串口,或者连接NRF401模块
;通讯波特率为9600KBPS,接收ASCII字符
;连线图 TXEN -- P3.5
; POUP -- P3.6
; GND -- GND
; D In -- TXD (P3.1)
; D Out -- RXD (P3.0)
; VCC -- VCC
;发射端的接法与接收端的接法是一样的。
ORG 0000H
MOV SCON,#50H;设置成串口1方式
MOV TMOD,#20H;波特率发生器T1工作在模式2上
MOV PCON,#00H;波特率不翻倍
MOV TH1,#0FdH;预置初值(按照波特率9600BPS预置初值)
MOV TL1,#0FdH;预置初值(按照波特率9600BPS预置初值)
SETB TR1;启动定时器T1
CLR P3.5 ;使Txen为0 接收模式
Setb P3.6 ;使Poup为1 工作模式
;以上完成通讯初始化设置
Begin: MOV A,SBUF ;将字符通过串口接收
Wait: Jnb Ri,Wait
Clr Ri
Cpl A
Mov P1,A
JMP Begin
END |
|
|
|
|
|