首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

NRF401无线数传模块与51单片机接口程序及调试

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
返回列表