第3章中把本次课题所要设计的系统划分为信息控制、信息处理、无线收发等7个模块。其中信息控制模块和信息处理的功能可由STC89C52RC单片机实现,无线收发模块由NRF905实现。
4.1.1 STC89C52RC详细功能
在硬件设计上,必须先弄清单片机的寄存器和每个引脚的功能。STC89C52RC共有40针的引脚,其引脚图如图4.1所示。
图4.1 STC89C52RC的DIP封装引脚图
在本次设计中主要用到单片机以下几个方面的接口和功能:
(1) 并行I/O口
STC89C52RC共有4组8位的双向并行接口,每位都设有输出锁存器,输出驱动器和输出缓冲区。并行口功能强大,可用作地址/数据线,也可用作通用的I/O用于系统控制。所以可以用一组并行口来控制射频接口模块中数据传输芯片的收发工作,并用另一组的某几位来对按钮的输入读取和LED等输出显示。
这4组并行口分别用P0,P1,P2,P3表示,由于接口的结构有所不同,所以每组并行口的主要用途也有一定的差异。
P0口中的每一位都由一个输出驱动器、一个输出锁存器、一个输出控制电路和两个三态缓存器所组成,它的工作状态由输出控制电路控制。它既可以作为地址/数据线,也可以作为通用I/O。在外部扩展存储器时,P0口必须用作地址/数据总线,先输出低八位的地址到外部锁存器,然后输出或输入指令代码。
P1口是一个8位准双向并行I/O口。在每一位的输出驱动器有内部上拉电阻,能加速“0”到“1”的转变过程。尤其是在位操作方式下,P1口可以在每一位进行单独的输入/输出操作。
P2口也是一个8位准双向并行I/O接口,在每一位的结构上它比P1口多了一个输出转换控制部分。P2口由内部硬件控制,在有外部扩展存储器或接口时也可用来输出高8位的地址。P2口作为地址输出时由内部控制部分负责转换,并不会对其输出寄存器的内容有所改变,所以在访问外部地址结束后,P2口的输出锁存器的内容能够恢复到输出引脚上。因此可以在访问外部地址的频繁程度不是很高的情况下,在P2口在其间仍然可以作为通用I/O口来操作。
P3口可用作多功能端口,它作为读/写信号的输入/输出口和标准的串行口。在用作通用I/O口时,和P1、P2口类似。
本次采用P1口作为对NRF905模块的SPI控制口,在P1口加上10K的上拉电阻后与NRF905相连接。并使用P2口的部分位连接按钮和LED灯等来实现发送请求和显示请求的过程。
(2) 串行I/O口
串行口是STC89C52RC单片机与PC连接的桥梁,待烧录的程序由串口烧录到单片机,接收并处理后的数据通过串口进入PC的显示模块。串口功能设计的好坏直接影响到整个通信系统程序烧写的成功与否。在整个设计中,对串口的设计主要体现在确定串口的工作方式和波特率的设定。在设定串口波特率时,不仅需要满足STC单片机串口的工作条件,而且还必须考虑到无线收发模块处理数据的快慢。当波特率设置的太低,系统传输过慢,严重影响整个系统的传输效率,对系统资源造成不必要的浪费;反之当波特率设置的过高时,单片机读取数据的速度更不上由串口送入的数据的速度而产生数据丢失。
STC89C52RC单片机有一个可编程全双工的串行I/O口,可以通过引脚RXD(P3.0,Receive Data 串行数据接收端)和引脚TXD(P3.1,Transmit Data串行数据发送端)与外界通讯。SBUF是串行口缓冲寄存器,能够通过直接寻址的方式来访问,它包括接收寄存器和发送寄存器。接收寄存器是双缓冲寄存器,可以避免在接收下一帧数据之前,未能把接收到的数据取走而产生数据被覆盖。这接收和发送两个寄存器有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,一个只能被CPU写入数据。 基于NRF905的无线呼叫系统设计与实现(10):http://www.youerw.com/jisuanji/lunwen_1185.html