将单片机项目实训——篮球计分系统(无线nRF905版本)分享出来,如有不足,敬请指出。
【实验图片】
【视频视频】
【项目实训】篮球积分系统(nRF905版本)
目录
一、设计要求
系统采用NRF905作为无线收发器,手持终端(从机)采集按键命令发送给显示终端(主机),主机执行命令并显示A队、B队得分、场地、时间等信息。
二、方案设计
随着技术的发展,基于无线的信息传输方式越来越成熟,与有线的信息传输方式相比,无线的方式易于安装和后期维护。NRF905单片无线接收器是挪威Nordic公司推出的单片射频发射器芯片,工作电压为1.9V~3.6V,工作于433、868、915MHZ 3个ISM频道,通过SPI接口与MCU连接。由于51单片机没有SPI接口,可以通过软件模拟SPI通信协议进行通信。
三、硬件电路设计
手持终端(从机)采集矩阵按键命令发送给显示终端(主机),主机执行命令并显示A队、B队得分、场地、时间等信息。
四、软件设计
主机首先对从机分别分配不同的地址,然后通过地址来区别收到的数据是哪一个从机发来的。4个从机将温度传感器DS18B20测得温度值通过NRF905无线模块将数据传输给主机。
(一)从机发送端主程序:
void main()
{
unsigned char key=0;
LCD1602_Init();
LCD1602_AddressWriteString(0,0,"Key:");
nRF905_Init();
while(1)
{
key=MatrixKey_RanksScan();
if(key!=0)
{
//显示按键值
LCD1602_AddressWriteByte(0,4,key/10+'0');
LCD1602_AddressWriteByte(0,5,key%10+'0');
//nRF905发送按键值
TxRxBuf[0]= key;
nRF905_SetTxMode();
nRF905_TxData(TxRxBuf);
//蜂鸣器发出声音
beep = 0;
Delay_SomeNop(1000);
beep = 1;
}
}
}
(二)主机接收端主程序:
void main()
{
unsigned char key=0;
System_Init();
while(1)
{
nRF905_SetRxMode();
nRF905_RxData();
if(nRF905_ReceiveFlag)
{ //如果接收到数据
nRF905_ReceiveFlag = 0 ;
//蜂鸣器报警
beep = 0;Delay_SomeNop(1000);beep = 1;
//按键值提取、并执行相关动作
key = TxRxBuf[0];
Key_Process(key);
}
display();
}
}
五、其他图片
(一)PCB -3D视图
(二)系统实物图
1.整体效果图
2.从机图
3.主机图
六、资料链接
(1)作品演示视频链接
链接①:哔哩哔哩--------点击播放
链接②:优酷视频--------点击播放
链接③:爱奇艺--------点击播放
链接④:腾讯视频--------点击播放
链接⑤:快手视频--------点击播放
链接⑥:西瓜视频--------点击播放
(2)原理图链接:
(3)源程序下载:
七、关于作者
刺客阿瑞原创