基于PIC的无线数据传输发射机设计
这些设置寄存器也可被单片机通过同样的设置接
口读取。7位地址首先被发送,然后读/写位被置为低来,开始数据回读,时序如图4所示。
4 软件设计
4.1 总体流程图
软件采用模块化程序设计方法,图5是总体流程。
4.2 初始化
初始化是一项十分重要的工作,需要分别对PIC16C73和CC1000两个芯片进行初始化。由于本设计中要完成PC机与PIC之间的异步通信和PIC的模/数据换功能,所以除了PIC16C73的各个PORT端口外,还应对串行通信接口SCI部件和A/D转换部件等进行初始化。在单片机初始化完成后,通过它对CC1000进行初始化,使其工作在发射模式,其流程如图6所示。
4.3 中断服务子程序设计
PIC16C73有多达11种中断源,本设计使用了其中的SCI异步接收中断和A/D转换完成中断。初始化工作完成后,当单片机通过SCI接收完一字节数据后就会产生SCI接收中断,另外,当单片机完成一次A/D后也会产生中断。在产品中断后,程序即进入中断服务子程序,要完成数据的缓存、缓存管理及组帧、数据传送工作。
图6
缓存管理的目的是使用者能够清楚地知道当前存储数据和发送数据的进程。具体实现方法是在PIC16C73通用寄存器里开辟一个数据缓存区,由50个寄存器组成,同时自定义收发数据计数器RX_IF0和TX_IF0.RX_IF0是接收数据计数器,其中存放的值表示PIC16C73接收到第几个数据,每接收到一个数据,就将RX_IF0加1,同时寄存器地址加1,以便接收下一个数据。当RX_IF0的值等于50时表示接收完一帧数据。TX_IF0是发送数据计数器,其中存在的值表示PIC16C73向CC1000发送了几个数据,PIC每发送完一个数据,就把TX_IF0加1。同时寄存器地址加1,以便发送下一个数据。TX_IF0等于50时,表示已发送完一帧数据。中断服务子程序流程如图7所示。
编写的程序经过调试,通过编译生成机器码,将其写入PIC,再将PIC嵌入发射机电路,连接正确后,经过调试达到了无线发射机的功效。
《基于PIC的无线数据传输发射机设计(第2页)》