《单片机应用设计-基于单片机的433M无线通信系统》廖永斌 - 图文 下载本文

武汉理工大学《学科基础课群综合训练》报告

图3.2 CC1101模块的电路设计图

4软件程序设计

4.1发送端编程

STC89C52控制CC1101作为发射端的编程流程主要包括以下4部分。 (1)数据编码:计算待发送数据的字节和数据包的编码; (2)发射模式初始化:上载数据到TX、FIFO,使能TX;

(3)激活TX状态:如果所有字节没有完全写到TX 、FIFO,MCU将设置为低功耗模式;

(4)TX、FIFO阈值中断:填充TX、FIFO,当数据字节低于256时设置为固定长度模式,所有字节全部写完则完全发送。

STC89C52控制CC1101作为发射端的编程流程图如图4.1所示。

8

武汉理工大学《学科基础课群综合训练》报告

发射数据开中断计算数据大小填充发射缓冲器数据编码N字节写完?Y设置发射完全字节数小于256?Y设置固定长度模式设置PKTLENN设置无线长度模式设置PKTLEN清除中断标志位填充TX FIFO关中断使能发射中断选通发射状态完全发射?Y停止中断服务N低功耗模式返回图4.1 CC1101发送模式流程图

4.2接收端编程

STC89C52控制CC1101作为接收端的编程流程主要包括以下5部分。 (1)初始化RX:设置无线长度模式并设置FIFO阈值;

(2)激活RX状态:如果所有字节没有完全读到RX FIFO,MCU将设置为低功耗模式; (3)RX FIFO阈值中断:从RX FIFO读取长度字段,计算接收数据字节的总长度,数据字节低于255时设置为固定长度模式,计算并设置PKTLEN;

(4)RX数据包的接收:读出剩余字节,读完所有字节则完全接收; (5)数据包解码,循环冗余码校验;

9

武汉理工大学《学科基础课群综合训练》报告

STC89C52控制CC1101作为接收端的编程流程图如图4.2所示。

接收数据开中断设置无线长度模式读RX FIFO设置RX FIFO阈值计算数据包长度使能接收中断选通接收状态字节低于256?Y设置固定长度模式完全接收?Y停止中断服务N低功耗模式设置PKTLEN设置RX FIFO阈值数据包解码循环冗余校验开中断返回图4.2 CC1101发送模式流程图

4.3程序调试与下载

本次单片机课程设计使用C语言进行目标程序的撰写,并利用keil软件来对程序进行调试。在“433M无线通信系统”课题中将整个系统的软件编程放在一个工程中,然后分别对各个功能程序单独编译调试,在单元的调试没有问题之后便对整个工程总体调试运行,在确认完成了所有的功能后便将对应程序生成.hex文件准备烧入单片机芯片中去。.hex文件的烧入这次我们使用了USB转TTL的接口来实现。

keil软件调试界面如图4.3所示。stc-isp的在系统编程与下载界面如图4.4所示。

10

武汉理工大学《学科基础课群综合训练》报告

图4.3 keil软件调试界面

图4.4 stc-isp的在系统编程与下载界面

11