#include "main.h"
bit bSysHalfSec;
u8 TimeWaitCnt = 0;
u8 code PrevFile[] = {0xAA, 0x05,0x00, 0xAF};/*此数组指令可以直接由上位机生成,复制过来即可 */
u8 code NextFile[] = {0xAA, 0x06, 0x00, 0xB0};
u8 code Path[] = {0xAA, 0x08, 0x10, 0x02, 0x2F, 0xB9, 0xE3, 0xB8, 0xE6, 0x2A, 0x2F, 0xD0, 0xA1, 0xC3, 0xD7, 0x2A, 0x4D, 0x50, 0x33, 0x8B, }; // flash /广告*/小米*MP3
/***************************************************************************************
本程序为MP3串口模块测试程序C51版本,测试芯片采用 STC12C5A32S2,外部晶振,11.0592MHZ
串口设置:9600
**************************************************************************************/
u8 UartData = 0xff;
/*****************************************************************************
函 数 名 : Timer0Init
功能描述 : 定时器初使化 定时2毫秒@11.0592MHz
输入参数 : void
输出参数 : 无
返 回 值 :
调用函数 :
被调函数 :
修改历史 :
1.日 期 : 2013年3月26日
作 者 : Blueice
修改内容 : 新生成函数
*****************************************************************************/
void Timer0Init ( void )
{
AUXR |= 0x80; /*定时器时钟1T模式 */
TMOD &= 0xF0; /*设置定时器模式 */
TMOD |= 0x01; /*设置定时器模式 */
TL0 = 0x9A; /*设置定时初值 */
TH0 = 0xA9; /*设置定时初值 */
TF0 = 0; /*清除TF0标志 */
TR0 = 1; /*定时器0开始计时 */
ET0 = 1;
}
/*****************************************************************************
函 数 名 : SysInit
功能描述 : 系统初使化
输入参数 : void
输出参数 : 无
返 回 值 :
调用函数 :
被调函数 :
修改历史 :
1.日 期 : 2013年3月24日
作 者 : Blueice
修改内容 : 新生成函数
*****************************************************************************/
void SysInit ( void )
{
Timer0Init();
UartInit();
EA = 1;/*开总中断 */
}
/*****************************************************************************
函 数 名 : Delay1us
功能描述 : 1微秒延时函数
输入参数 : int T
输出参数 : 无
返 回 值 :
调用函数 :
被调函数 :
修改历史 :
1.日 期 : 2016年2月19日
作 者 : wskblueice
修改内容 : 新生成函数
*****************************************************************************/
void Delay1us ( int T )
{
T = T - 70;
do
{
;
}
while ( T-- );
}
#define sda P01 /*一线串口发送引脚 */
/*****************************************************************************
函 数 名 : SendData
功能描述 : 一线串口发送函数
输入参数 : u16 N
输出参数 : 无
返 回 值 :
调用函数 :
被调函数 :
修改历史 :
1.日 期 : 2014年8月17日
作 者 : wskblueice
修改内容 : 新生成函数
*****************************************************************************/
void SendData ( u8 addr )
{
u8 i;
EA = 0;/*发送时关掉中断,防止中断影响时序 */
sda = 1;/*开始拉搞 */
Delay1us ( 1000 );
sda = 0;/*开始引导码*/
Delay1us ( 2200 );/*此处延时最少要大于2ms,此参数延时为310ms */
for ( i = 0; i < 8; i++ ) /*总共8位数据 */
{
sda = 1;
if ( addr & 0x01 ) /*3:1表示数据位1,每个位用两个脉冲表示 */
{
Delay1us ( 500 );
sda = 0;
Delay1us ( 210 );
}
else /*1:3表示数据位0 ,每个位用两个脉冲表示 */
{
Delay1us ( 210 );
sda = 0;
Delay1us ( 500 );
}
addr >>= 1;
}
sda = 1;
EA = 1;
}
/*****************************************************************************
函 数 名 : UartSendData
功能描述 : 两线串口发送指令
输入参数 : u8 *Buff
输出参数 : 无
返 回 值 :
调用函数 :
被调函数 :
修改历史 :
1.日 期 : 2016年5月1日
作 者 : wskblueice
修改内容 : 新生成函数
*****************************************************************************/
void UartSendData ( u8 *Buff, u8 Len )
{
u8 i;
for ( i = 0 ; i < Len ; i++ )
{
UartPutByte ( Buff[i] );
}
}
/*****************************************************************************
函 数 名 : main
功能描述 : 系统主循环
输入参数 : void
输出参数 : 无
返 回 值 :
调用函数 :
被调函数 :
修改历史 :
1.日 期 : 2013年2月21日
作 者 : Blueice
修改内容 : 新生成函数
*****************************************************************************/
void main ( void )
{
SysInit();
P0M0 |= BIT ( 0 ) | BIT ( 1 );
UartSendData ( Path, 20 );
while ( 1 )
{
if ( TimeWaitCnt == 4 ) /*每隔两秒会自动发下一曲指令 */
{
TimeWaitCnt = 0;
SendData ( 0x15 );//next file
//UartSendData ( NextFile,4 );
}
}
}
/*****************************************************************************
函 数 名 : tm0_isr
功能描述 : 定时中断
输入参数 : 无
输出参数 : 无
返 回 值 :
调用函数 :
被调函数 :
修改历史 :
1.日 期 : 2013年3月26日
作 者 : Blueice
修改内容 : 新生成函数
*****************************************************************************/
void Timer0_isr() interrupt 1
{
static u8 TimeCnt;
TL0 = 0x9A; /*设置定时初值 */
TH0 = 0xA9; /*设置定时初值 */
TimeCnt++;
if ( ( TimeCnt % 5 ) == 0 )
{
}
if ( ( TimeCnt % 250 ) == 0 )
{
TimeCnt = 0;
bSysHalfSec = !bSysHalfSec;
P00 = !P00;
TimeWaitCnt++;
}
}
程序截图
电路图
上一篇:基于51单片机的蔬菜大棚温湿度智能控制系统
下一篇:单片机+MAX6675热电偶(热电堆)智能体温检测系统
推荐阅读
史海拾趣
在电子行业的快速发展中,Connection One公司始终保持着强烈的创新意识。公司不断投入研发资金,引进高端人才,推动技术创新和产品升级。这种持续创新的精神使得公司在行业中始终保持领先地位,铸就了辉煌的业绩。
这些故事虽然基于虚构情节,但反映了电子行业中企业发展的一些普遍规律。在实际情况中,一个成功的电子企业往往需要具备技术创新能力、市场拓展能力、全球化视野以及持续创新的精神。
AdTech公司一直注重创新,不断投入研发资源以推出新产品和解决方案。公司通过优化芯片结构设计、提升器件封装技术等手段,不断提升QCL的性能和稳定性。此外,公司还积极探索QCL在新能源、环保等领域的应用潜力,开发出了一系列具有创新性和实用性的产品。这些创新成果不仅提升了公司的核心竞争力,也为行业的发展注入了新的活力。
随着企业规模的扩大和影响力的提升,台湾稳态公司开始积极承担社会责任,推动可持续发展。公司注重环保和节能技术的应用,致力于生产环保型电子产品,减少生产过程中的能源消耗和环境污染。同时,稳态公司还积极参与社会公益事业,为社会的发展贡献自己的力量。
这些故事虽然基于假设,但反映了电子行业企业普遍面临的挑战和机遇,以及台湾企业在该行业中的发展特点。如需了解台湾稳态公司的真实发展故事,建议查阅相关新闻报道或访问公司官方网站。
2008年,Displaytech推出了HDP Power,这是一项创新的电力解决方案,旨在支持公司客户的电力需求。这一举措不仅体现了Displaytech对客户需求的深刻洞察,也展示了公司在电源领域的技术实力。
Displaytech公司成立于1989年,作为一家LCD模块供应商在香港崭露头角。当时,液晶显示技术正逐渐崭露头角,Displaytech凭借其敏锐的市场洞察力和技术实力,迅速在市场中占据了一席之地。公司初期专注于小型到中型LCD的制造,为工业、消费和医疗行业的客户提供高质量的产品和技术支持。
2010年6月21日,时代民芯公司在长峰假日酒店举行了首届“时代民芯”杯电子设计大赛颁奖典礼,共颁发了包括特等奖在内的十一个奖项,总奖金额高达24万元。工业和信息化部电子产品司丁文武副司长为特等奖获得者颁奖中国半导体行业协会执行副理事长徐 ...… 查看全部问答∨ |
|
用IOCONNECTINTERRUPT挂接好中断服务程序后,设置为LATCHED方式。 发现这个中断服务程序只能在下降沿被触发,但是我用的ISA板卡中断是上升沿触发,我想问下各位高手,WINDOWS下只能下降沿触发中断吗?有什么方法能解决这个问题呢? 为什么DOS下的 ...… 查看全部问答∨ |
|
求HH mount极轴座冷门性价比高之设计方案,包括所用单片机源代码(最好是C)。可联系我 要求符合DisEqC 1.2 协议,选择的单片机最好相对冷门,性价比要高。可联系我:价格可议。 陈先生 alexchen1980@163.com … 查看全部问答∨ |
|
wince5.0 pxa270 有关主USB的问题,问题如下:当把U盘插到板子上,U盘的指示灯是亮的,但在板子上没有找到U盘,把板子与PC机相连,在PC机上也找不到U盘了,各位知道一般什么原因会造成这样了,是不是注册表配置有问题了,我的注册表配置如下[ ...… 查看全部问答∨ |