/*("/*********************************************/\n");
("//项 目 名:6500 MP3芯片参考代码\n");
("//功能要求:\n");
("//硬件配置:\n");
("//1) MCU型号: STM8S003F3P6\n");
("//2) 内部振荡频率为:16M\n");
("//软件版本:UART1: \n");
("//公 司 名: 深圳佳强电子有限公司\n");
("//作 者: \n");
("// 硬件:\n");
("// 软件:piao\n");
("//技术支持:E-mail:jianguo_luo@foxmail.com\n");
("//修改记录: 1)\n");
("// 2)\n");
("/*********************************************/\n");*/
#define __MAIN_C__
#include "iostm8s103f2.h"
typedef unsigned long u32;
typedef unsigned short u16;
typedef unsigned char u8;
void Delay(u16 nCount);
void Delay_long(u16 nCount);
void Next_Play();
void Last_Play();
void Specify_Musi_Play(u8 num);
void Volume_add();
void Volume_nec();
void Music_play();
void Music_pause();
void Music_stop();
void Switch_play_Device(u8 num);
void Cycle_play(u8 num);
void Specify_Volume(u8 num);
/*===========================================================================*/
void STM8_CLK_Init(void)
{
CLK_CKDIVR = 0x00; /* 16MHz */
}
void STM8_GPIO_Init(void)
{
//CS
PC_DDR |= 0x08; //PC3输出
PC_CR1 |= 0x08; //PC3推挽
//IRQ
PC_DDR &= 0xEF; //PC4输入
PC_CR1 &= 0xEF; //PC4浮空
//BUSY_CHECK
PB_DDR &= 0xEF; //PB4输入
PB_CR1 &= 0xEF; //PB4浮空
}
void STM8_SPI_Init(void)
{
// SPI_CR1 = 0x07; /* 0B00000111 */
SPI_CR1 = 0x3C; /* 0B00111111 */
SPI_CR2 = 0x03; /* 0B00000011 */
SPI_CRCPR = 0x07;
/* Enable the SPI peripheral*/
SPI_CR1 |= 0x40;
}
void STM8_UART1_Init(void)
{
UART1_BRR2 = 0x02; /* buadrate = 9600 */
UART1_BRR1 = 0x68;
UART1_CR2 = 0x2C; /* enable send and receive */
}
void STM8_Init(void)
{
asm("sim");
STM8_CLK_Init();
STM8_GPIO_Init();
STM8_SPI_Init();
STM8_UART1_Init();
asm("rim");
}
/*===========================================================================*/
void STM8_UART1_SendByte(u8 dat)
{
while(!UART1_SR_TXE);
UART1_DR = dat;
asm("nop");
}
/****************************************
//函数名:SendUartString_U1()
//
//功能说明:发送232单字节数据,波特率为9600
//
//入口参数:dat为要发送的内容
//
//出口参数:无
*******************************************/
void SendUartString_U1(unsigned char *pData)
{
while(*pData)
{
STM8_UART1_SendByte(*pData);
pData++;
}
}
#pragma vector = UART1_R_RXNE_vector
__interrupt __root void UART1_Recv (void)
{
u8 data;
data=UART1_DR;
// STM8_UART1_SendByte(data);
return;
}
/*********************************************************************************************
//函数名:Next_Play()
//
//功能说明:设定音量
//
//入口参数:
//
//出口参数:NO
***********************************************************************************************/
void Next_Play()
{
STM8_UART1_SendByte(0x7E);
STM8_UART1_SendByte(0x02);
STM8_UART1_SendByte(0x01);
STM8_UART1_SendByte(0xEF);
}
/*********************************************************************************************
//函数名:Last_Play()
//
//功能说明:
//
//入口参数:
//
//出口参数:NO
***********************************************************************************************/
void Last_Play()
{
STM8_UART1_SendByte(0x7E);
STM8_UART1_SendByte(0x02);
STM8_UART1_SendByte(0x02);
STM8_UART1_SendByte(0xEF);
}
/*********************************************************************************************
//函数名:Specify_Musi_Play()
//
//功能说明:指定曲目播放
//
//入口参数:
//
//出口参数:NO
***********************************************************************************************/
void Specify_Musi_Play(u8 num)
{
STM8_UART1_SendByte(0x7E);
STM8_UART1_SendByte(0x04);
STM8_UART1_SendByte(0x03);
STM8_UART1_SendByte(0x00);
STM8_UART1_SendByte(num);
STM8_UART1_SendByte(0xEF);
}
/*********************************************************************************************
//函数名:Volume_add()
//
//功能说明:音量加
//
//入口参数:
//
//出口参数:NO
***********************************************************************************************/
void Volume_add()
{
STM8_UART1_SendByte(0x7E);
STM8_UART1_SendByte(0x02);
STM8_UART1_SendByte(0x04);
STM8_UART1_SendByte(0xEF);
}
/*********************************************************************************************
//函数名:Volume_nec()
//
//功能说明:音量减
//
//入口参数:
//
//出口参数:NO
***********************************************************************************************/
void Volume_nec()
{
STM8_UART1_SendByte(0x7E);
STM8_UART1_SendByte(0x02);
STM8_UART1_SendByte(0x05);
STM8_UART1_SendByte(0xEF);
}
/*********************************************************************************************
//函数名:Specify_Volume()
//
//功能说明:指定音量
//
//入口参数:
//
//出口参数:NO
***********************************************************************************************/
void Specify_Volume(u8 num)
{
STM8_UART1_SendByte(0x7E);
STM8_UART1_SendByte(0x03);
STM8_UART1_SendByte(0x06);
STM8_UART1_SendByte(num);
STM8_UART1_SendByte(0xEF);
}
/*********************************************************************************************
//函数名:Music_play()
//
//功能说明:播放
//
//入口参数:
//
//出口参数:NO
***********************************************************************************************/
void Music_play()
{
STM8_UART1_SendByte(0x7E);
STM8_UART1_SendByte(0x02);
STM8_UART1_SendByte(0x0D);
STM8_UART1_SendByte(0xEF);
}
/*********************************************************************************************
//函数名:Music_pause()
//
//功能说明:暂停
//
//入口参数:
//
//出口参数:NO
***********************************************************************************************/
void Music_pause()
{
STM8_UART1_SendByte(0x7E);
STM8_UART1_SendByte(0x02);
STM8_UART1_SendByte(0x0E);
STM8_UART1_SendByte(0xEF);
}
/*********************************************************************************************
//函数名:Music_stop()
//
//功能说明:停止
//
//入口参数:
//
//出口参数:NO
***********************************************************************************************/
void Music_stop()
{
STM8_UART1_SendByte(0x7E);
STM8_UART1_SendByte(0x02);
STM8_UART1_SendByte(0x10);
STM8_UART1_SendByte(0xEF);
}
/*********************************************************************************************
//函数名:Switch_play_Device()
//
//功能说明:U/TF/AUX/SLEEP/FLASH(0/1/2/3/4)切换
//
//入口参数:
//
//出口参数:NO
***********************************************************************************************/
void Switch_play_Device(u8 num)
{
STM8_UART1_SendByte(0x7E);
STM8_UART1_SendByte(0x03);
STM8_UART1_SendByte(0x09);
STM8_UART1_SendByte(num);
STM8_UART1_SendByte(0xEF);
}
/*********************************************************************************************
//函数名:Cycle_play()
//
//功能说明:1:全部循环 0:单曲循环
//
//入口参数:
//
//出口参数:NO
***********************************************************************************************/
void Cycle_play(u8 num)
{
STM8_UART1_SendByte(0x7E);
STM8_UART1_SendByte(0x03);
STM8_UART1_SendByte(0x11);
STM8_UART1_SendByte(num);
STM8_UART1_SendByte(0xEF);
}
/**
* @brief Delay
* @param nCount
* @retval None
*/
void Delay(u16 nCount)
{
/* Decrement nCount value */
while (nCount != 0)
{
nCount--;
}
}
void Delay_long(u16 nCount)
{
/* Decrement nCount value */
while (nCount != 0)
{
Delay(0xffff);
nCount--;
}
}
void main(void)
{
u32 n = 4;
STM8_Init();
Switch_play_Device(1);//转到TF卡
Delay_long(12);
Next_Play();
Delay_long(12);
Cycle_play(1);//全部循环
while(1);
}
SKCQTGZX
- 粉丝: 128
- 资源: 4707
最新资源
- 工具变量-中国省级新质生产力数据(2010-2023年).xlsx
- 工具变量-中国省级新质生产力数据(2010-2023年).dta
- linux批量配置防火墙脚本firewall.sh
- jdk8 开发者中文手册
- CANoe中如何定义 <结构体数组> 类型的系统变量
- 一个用 Python 实现的猜数字游戏源码,玩家需要在一定范围内猜出程序预设的数字,程序会根据玩家的猜测给出提示,直到玩家猜对为止
- ESP8266+OLED实时显示天气和时间
- 基于CAPL内置函数,提取DBC报文信号属性信息
- 特别推荐的是 mysqlclient-1.4.6-cp37-cp37m-win-amd64.whl 文件等,专为 Windows 64 位系统下的 Python 3.6 3.7 3.8 环境设计
- flink siddhi 资源jar包,flink与siddhi集成,实现对复杂事件的处理 在flink中直接引入即可
- 多领域视角下的Cursor概念解析:数据库、GUI和编程中的应用及作用
- 一个使用 Python 进行数据分析的源码,它读取一个包含学生成绩的 CSV 文件,计算每个学生的平均成绩,并找出平均成绩最高的学生
- es 8.17.0 apache-skywalking-apm-10.1.0,同时配合elasticsearch-8.17.0-windows-x86-64来作为存储 es持久化数据使用
- MySQL 安装与配置详细步骤介绍及用途
- 计算机视觉中YOLOv11的目标检测技术创新及广泛应用
- apache-skywalking-apm-10.1.0 elasticsearch-8.17.0-windows-x86-64andapache-skywalking-apm-10.1.0
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
- 4
前往页