📄 wxmusic.c
字号:
/****************************************************************************
* *功能描述:无线音乐试验,用无线摇控器可以选择当前播放的歌曲,并在数码管上
显示出来。可以用摇控器控制歌曲的上一首和下一首,以及歌曲播放
与停止。按摇控器的S3进入下一曲,按S4进入上一曲,按S2停止/播
放歌曲。
****************************************************************************/
#include "mydefine.h"
#include "CC1100.h"
#include "cpu.h"
sbit BEEP = P2^0;
//****************************************************************************
//变量定义
//****************************************************************************
unsigned char gq; //歌曲选择
unsigned char DisplayBuf[6];
extern unsigned char music; //歌曲指针
unsigned char run; //歌曲运行与否
///////////////////////////////////////////////////////////////////////////////
//*****************************************************************************
//函数名:void delay(unsigned int n)
//功能描述:普通廷时函数
//*****************************************************************************
void delay(unsigned int n)
{
INT16U i;
for(i=0; i<n; i++);
for(i=0; i<n; i++);
for(i=0; i<n; i++);
for(i=0; i<n; i++);
for(i=0; i<n; i++);
for(i=0; i<n; i++);
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/////////////////////////////////主程序////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
main()
{
INT8U arrRx[4];
PCA0MD &= ~0x40; //关闭看门狗
PORT_Init(); //I/O口初始化。
Internal_Crystal(); //内部晶振。
Timer0_Init(); //初始化定时器0。
Init_CC1100(); //初始化CC1100
Timer1_Init();
PWMInit(); //串口初始化。
gq = 0;
run = 1;
DisplayBuf[0] = NOP;
DisplayBuf[1] = NOP; //空显示
DisplayBuf[2] = 0; //O
DisplayBuf[3] = 27; //N
DisplayBuf[4] = 22; //-
DisplayBuf[5] = gq+1; //歌曲
EA = 1;
TR1 = 1;
while(1)
{
if(halRfReceivePacket(arrRx,4))
{
if(arrRx[1] == 0xbb)//收到的时摇控器的数据
{
if(arrRx[2] == 0x01)//歌曲加
{
if(gq < 4)gq += 1;
music = 0;
TR1 = 1;
DisplayBuf[5] = gq+1;
}
else if(arrRx[2] == 0x02)//歌曲减
{
if(gq > 0)gq -= 1;
music = 0;
TR1 = 1;
DisplayBuf[5] = gq+1;
}
else if(arrRx[2] == 0x03)//播放/停止键
{
if(run == 1)
{
run = 0;
CR = 0; //停止播放。
BEEP = 0; //停在三极管截止状态。
DisplayBuf[1] = 0; //0
DisplayBuf[2] = 0x10; //F
DisplayBuf[3] = 0x10; //F
}
else
{
run = 1;
CR = 1; //开始播放
DisplayBuf[1] = NOP; //空显示
DisplayBuf[2] = 0; //O
DisplayBuf[3] = 27; //N
}
}
delay(60000);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -