找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3135|回复: 5
打印 上一主题 下一主题
收起左侧

基于AT89C51单片机设计的MP3播放器

[复制链接]
跳转到指定楼层
楼主
ID:387966 发表于 2018-8-20 13:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、硬件电路
1、AT89C51最小系统相关元器件,附上链接:https://wenku.baidu.com/view/77a83e19a45177232f60a2f6.html
2、MP3语音播报模块串口控制插TF卡MP3-TF-16P,
4、按键、喇叭可以自行选购。
会上传MP3-TF-16P的调试手册。

游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0

二、部分程序设计
1、按键控制
  1. void KeyControl(void)
  2. {
  3.         if((P2&0x01) == 0x01)        flag_key1 = 1;        //Ïμí3Ä£ê½
  4.         if((P2&0x02) == 0x02)        flag_key2 = 1;        //òôῼõ
  5.         if((P2&0x04) == 0x04)        flag_key3 = 1;        //éÏò»Çú
  6.         if((P2&0x08) == 0x08)        flag_key4 = 1;        //ÔYí£/2¥·Å
  7.         if((P2&0x10) == 0x10)        flag_key5 = 1;        //òôῼó
  8.         if((P2&0x20) == 0x20)        flag_key6 = 1;        //ÏÂò»Çú
  9.         if((P2&0x40) == 0x40)        flag_key7 = 1;        //2¥·ÅÄ£ê½
  10.       
  11.         if(((P2&0x08)==0&&flag_key4==1)||(IrValue[2]==0x8e&&flag_ir))                        //ÔYí£/2¥·Å
  12.         {
  13.                 if(play == 0)
  14.                 {
  15.                         //ÔYí£
  16.                         Uart_SendCMD(0x0E, 0, 0x00) ;      
  17.                         DelayMs(25);                       
  18.                 }
  19.                 else if(play == 1)
  20.                 {
  21.                         //2¥·Å
  22.                         Uart_SendCMD(0x0D, 0, 0x00) ;      
  23.                         DelayMs(25);                       
  24.                 }
  25.                 flag_ir = 0;
  26.                 flag_key4 = 0;
  27.         }
  28.       
  29.         else if(((P2&0x04)==0&&flag_key3==1) || (IrValue[2]==0x84&&flag_ir))        //éÏò»Çú
  30.         {
  31.                 Uart_SendCMD(0x02 ,0, 0x00) ;
  32.                 DelayMs(25);      
  33.                 flag_ir = 0;
  34.                 flag_key3 = 0;
  35.         }
  36.       
  37.         else if(((P2&0x20)==0&&flag_key6==1) || (IrValue[2]==0xad&&flag_ir))        //ÏÂò»Çú
  38.         {
  39.                 Uart_SendCMD(0x01 ,0, 0x00) ;
  40.                 DelayMs(25);
  41.                 flag_ir = 0;
  42.                 flag_key6 = 0;
  43.         }
  44.       
  45.         else if(((P2&0x10)==0&&flag_key5==1) || (IrValue[2]==0x8c&&flag_ir))        //òôῼó
  46.         {
  47.                 if(SysMode == 0)
  48.                 {
  49.                         VOL++;      
  50.                         if((VOL&0x0f) > 9)                VOL = (((VOL>>4)+1) << 4);         
  51.                         else if(VOL >= 0x30)        VOL = 0x30;
  52.                         Uart_SendCMD(0x06 , 0 , VOL) ;
  53.                         DelayMs(25);
  54.                 }
  55.                 else if(SysMode)
  56.                 {
  57.                         ClockAdd();
  58.                 }
  59.                 flag_ir = 0;
  60.                 flag_key5 = 0;
  61.         }
  62.       
  63.         else if(((P2&0x02)==0&&flag_key2==1) || (IrValue[2]==0xa9&&flag_ir))        //òôῼõ
  64.         {
  65.                 if(SysMode == 0)
  66.                 {
  67.                         if(VOL==0x00)        VOL=0x00;
  68.                         else
  69.                         {      
  70.                                 VOL--;                                                                                 
  71.                                 if((VOL&0x0f) == 0x0f)                VOL = VOL - 6;
  72.                         }      
  73.                         Uart_SendCMD(0x06 , 0 , VOL) ;
  74.                         DelayMs(25);
  75.                 }
  76.                 else if(SysMode)
  77.                 {
  78.                         ClockSub();
  79.                 }
  80.                 flag_ir = 0;
  81.                 flag_key2 = 0;
  82.         }
  83.       
  84.         else if(((P2&0x40)==0&&flag_key7==1) || (IrValue[2]==0xa5&&flag_ir))        //2¥·ÅÄ£ê½
  85.         {
  86.                 if(SysMode == 0)
  87.                 {
  88.                         PlayMode++;
  89.                         if(PlayMode > 3)        PlayMode = 1;
  90.                         if(PlayMode == 1)
  91.                         {
  92.                                 //è«2¿Ñ-»·      
  93.                                 Uart_SendCMD(0x11, 0, 0x01);
  94.                                 DelayMs(50);                       
  95.                         }
  96.                         else if(PlayMode == 2)
  97.                         {
  98.                                 //μ¥ÇúÑ-»·
  99.                                 Uart_SendCMD(0x19, 0, 0x00);
  100.                                 DelayMs(50);
  101.                         }
  102.                         else if(PlayMode == 3)
  103.                         {
  104.                                 //Ëæ»ú2¥·Å
  105.                                 Uart_SendCMD(0x18, 0, 0x00);
  106.                                 DelayMs(50);
  107.                         }
  108.                 }
  109.                 if(SysMode == 1)
  110.                 {
  111.                         ClockModel++;
  112.                         if(ClockModel > 8)        ClockModel = 1;
  113.                 }
  114.                 flag_ir = 0;
  115.                 flag_key7 = 0;
  116.         }
  117.       
  118.         else if(((P2&0x01)==0&&flag_key1==1) || (IrValue[2]==0xa1&&flag_ir))        //Ïμí3Ä£ê½
  119.         {
  120.                 SysMode++;      
  121.                 if(SysMode > 1)        SysMode = 0;
  122.                 if(SysMode ==1 || SysMode ==0)
  123.                 {
  124.                         OLED_Fill(0x00);
  125.                         ClockModel = 1;
  126.                 }
  127.                 if(buzzer == 0)        set_time=0;
  128.                 flag_d = 0;
  129.                 flag_ir = 0;
  130.                 flag_key1 = 0;
  131.         }


  132. }
复制代码



详细资料会上传。

MusicPlayer.zip

158.04 KB, 下载次数: 30, 下载积分: 黑币 -5

MP3-TF-16P调试手册V1.6.pdf

897.39 KB, 下载次数: 35, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:422055 发表于 2018-11-6 22:53 | 只看该作者
可有其他地方有链接?
回复

使用道具 举报

板凳
ID:422055 发表于 2018-11-7 12:32 | 只看该作者
可需要焊usb接口?
回复

使用道具 举报

地板
ID:315679 发表于 2019-1-21 20:50 | 只看该作者
谢谢分享
回复

使用道具 举报

5#
ID:475031 发表于 2019-2-5 22:05 | 只看该作者
上传MP3-TF-16P的调
回复

使用道具 举报

6#
ID:475031 发表于 2019-2-6 17:38 | 只看该作者
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表