嵌入式多媒体播放器的设计与实现

[09-14 01:04:22]   来源:http://www.88dzw.com  电子制作   阅读:8292

文章摘要:(1)锁相环初始化,MP3解码器、USB控制器和音频输出接口使用的都是内部锁相环提供的时钟。程序设计如下: void PllInit(void) { if (FirstStart){AUXR1 = 0xf2; //这两个寄存器的值在用 Start Application和直接上电时 //不一样,前一种情况下 MP3解码器才工作,PLLCON = 0; //这里强制将其置为与用 Start Application按钮时一致FirstStart = 0; } //PLLCON:锁相环控制寄存器;锁相环时钟及 MP3解码器时钟设置CKCON |= X2; //0000

嵌入式多媒体播放器的设计与实现,标签:电子小制作,http://www.88dzw.com

  (1)锁相环初始化,MP3解码器、USB控制器和音频输出接口使用的都是内部锁相环提供的时钟。程序设计如下:

  void PllInit(void) { if (FirstStart)

  {AUXR1 = 0xf2;   //这两个寄存器的值在用 Start Application和直接上电时

              //不一样,前一种情况下 MP3解码器才工作,

  PLLCON = 0;  //这里强制将其置为与用 Start Application按钮时一致

  FirstStart = 0; }  //PLLCON:锁相环控制寄存器;锁相环时钟及 MP3解码器时钟设置

  CKCON |= X2;  //0000 0001使能 X2模式,增加处理速度,

          //每个机器周期变成 6个振荡周期即 3个时钟周期 PLLCON &= (~PLLRES);  //使能 PLL PLLCON |= PLLEN;}

  (2)MP3解码器的初始化,即对 MP3CON(MP3控制寄存器)和 MP3CLK(MP3时钟除法器寄存器)进行设置。程序设计如下: //MP3时钟频率的计算方法:MP3CLK=PLLCLK/(int)(MPCD+1)负反馈

  MP3CLK|=MPCD;  MP3CON &= (~MSKREQ); //允许产生MP3中断 MP3CON |= MPEN;       //使能 MP3解码器.

  (3)音频输出接口初始化,要得到两个声道串行数据前,需要先对音频输出接口的AUDCON0(音频接口控制寄存器0)和 AUDCON1(音频接口控制寄存器1)中的相关部分进行正确的设置。程序设计如下:

  void PllInit(void)

  { if (FirstStart)

  {AUXR1 = 0xf2; //这两个寄存器的值在用Start Application 和直接上电时

  //不一样,前一种情况下MP3 解码器才工作,

  PLLCON = 0; //这里强制将其置为与用Start Application 按钮时一致

  FirstStart = 0; } //PLLCON:锁相环控制寄存器;锁相环时钟及MP3 解码器时钟设置

  CKCON |= X2; //0000 0001 使能X2 模式,增加处理速度,

  //每个机器周期变成6 个振荡周期即3 个时钟周期

  PLLCON &= (~PLLRES); //使能 PLL

  PLLCON |= PLLEN;}

www.88dzw.com

  (2)MP3 解码器的初始化,即对MP3CON(MP3 控制寄存器)和MP3CLK(MP3 时钟除法器

  寄存器)进行设置。程序设计如下:

  //MP3 时钟频率的计算方法:MP3CLK=PLLCLK/(int)(MPCD+1)负反馈

  MP3CLK|=MPCD;

  MP3CON &= (~MSKREQ); //允许产生MP3 中断

  MP3CON |= MPEN; //使能MP3 解码器.

  (3)音频输出接口初始化,要得到两个声道串行数据前,需要先对音频输出接口的

  AUDCON0(音频接口控制寄存器0)和AUDCON1(音频接口控制寄存器1)中的相关部分进行

  正确的设置。程序设计如下:

  void AudioInit()

  { unsigned char i = 10;

  AUDCON0 = 0x77; //0111 0110

  AUDCON1&=(~0xB0); //SRC=0,MSREQ=0,MUDRN=0

  AUDCON1 |= 0x01;

  while (i)i--;

  AUDCON1 |= 0x40;}

  (4)按键初始化,实现播放MP3 的人机交互功能。

  void KeyBoardInit()

   { P1 = 0x0f; //将端口1 的低四位,即键盘对应的4 位置1


  KBCON = 0x00; //设置键盘有效模式为低电平有效,并使能

  IEN1 = IEN1 | EKB; } //使能键盘中断Enable KeyBoard Interrupt

  5、总结

  嵌入式系统是专用的计算机系统,软硬件的设计必须协同和严格规范。本设计的硬件系统围绕着 AT89C51SND1C主控芯片进行规范设计与调试。软件设计则必须以硬件系统为前提以功能定义为要求进行设计现调试。嵌入式系统硬件的定制,程序的设计必须多次的调试与完善。比如,硬件电路无法正常工作,必须分析原因、调试;开发环境相关软件无法正常安装,必须排除各种错误,直到成功搭建开发环境;程序编译出现错误,必须利用调试功能找出错误并修改代码等等[10]。

上一页  [1] [2] [3]  下一页


Tag:电子制作电子小制作维修教程知识 - 电子制作

《嵌入式多媒体播放器的设计与实现》相关文章