|
一、硬件电路
1、AT89C51最小系统相关元器件,附上链接:https://wenku.baidu.com/view/77a83e19a45177232f60a2f6.html
2、MP3语音播报模块串口控制插TF卡MP3-TF-16P,
4、按键、喇叭可以自行选购。
会上传MP3-TF-16P的调试手册。
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0
二、部分程序设计
1、按键控制
- void KeyControl(void)
- {
- if((P2&0x01) == 0x01) flag_key1 = 1; //Ïμí3Ä£ê½
- if((P2&0x02) == 0x02) flag_key2 = 1; //òôῼõ
- if((P2&0x04) == 0x04) flag_key3 = 1; //éÏò»Çú
- if((P2&0x08) == 0x08) flag_key4 = 1; //ÔYí£/2¥·Å
- if((P2&0x10) == 0x10) flag_key5 = 1; //òôῼó
- if((P2&0x20) == 0x20) flag_key6 = 1; //ÏÂò»Çú
- if((P2&0x40) == 0x40) flag_key7 = 1; //2¥·ÅÄ£ê½
-
- if(((P2&0x08)==0&&flag_key4==1)||(IrValue[2]==0x8e&&flag_ir)) //ÔYí£/2¥·Å
- {
- if(play == 0)
- {
- //ÔYí£
- Uart_SendCMD(0x0E, 0, 0x00) ;
- DelayMs(25);
- }
- else if(play == 1)
- {
- //2¥·Å
- Uart_SendCMD(0x0D, 0, 0x00) ;
- DelayMs(25);
- }
- flag_ir = 0;
- flag_key4 = 0;
- }
-
- else if(((P2&0x04)==0&&flag_key3==1) || (IrValue[2]==0x84&&flag_ir)) //éÏò»Çú
- {
- Uart_SendCMD(0x02 ,0, 0x00) ;
- DelayMs(25);
- flag_ir = 0;
- flag_key3 = 0;
- }
-
- else if(((P2&0x20)==0&&flag_key6==1) || (IrValue[2]==0xad&&flag_ir)) //ÏÂò»Çú
- {
- Uart_SendCMD(0x01 ,0, 0x00) ;
- DelayMs(25);
- flag_ir = 0;
- flag_key6 = 0;
- }
-
- else if(((P2&0x10)==0&&flag_key5==1) || (IrValue[2]==0x8c&&flag_ir)) //òôῼó
- {
- if(SysMode == 0)
- {
- VOL++;
- if((VOL&0x0f) > 9) VOL = (((VOL>>4)+1) << 4);
- else if(VOL >= 0x30) VOL = 0x30;
- Uart_SendCMD(0x06 , 0 , VOL) ;
- DelayMs(25);
- }
- else if(SysMode)
- {
- ClockAdd();
- }
- flag_ir = 0;
- flag_key5 = 0;
- }
-
- else if(((P2&0x02)==0&&flag_key2==1) || (IrValue[2]==0xa9&&flag_ir)) //òôῼõ
- {
- if(SysMode == 0)
- {
- if(VOL==0x00) VOL=0x00;
- else
- {
- VOL--;
- if((VOL&0x0f) == 0x0f) VOL = VOL - 6;
- }
- Uart_SendCMD(0x06 , 0 , VOL) ;
- DelayMs(25);
- }
- else if(SysMode)
- {
- ClockSub();
- }
- flag_ir = 0;
- flag_key2 = 0;
- }
-
- else if(((P2&0x40)==0&&flag_key7==1) || (IrValue[2]==0xa5&&flag_ir)) //2¥·ÅÄ£ê½
- {
- if(SysMode == 0)
- {
- PlayMode++;
- if(PlayMode > 3) PlayMode = 1;
- if(PlayMode == 1)
- {
- //è«2¿Ñ-»·
- Uart_SendCMD(0x11, 0, 0x01);
- DelayMs(50);
- }
- else if(PlayMode == 2)
- {
- //μ¥ÇúÑ-»·
- Uart_SendCMD(0x19, 0, 0x00);
- DelayMs(50);
- }
- else if(PlayMode == 3)
- {
- //Ëæ»ú2¥·Å
- Uart_SendCMD(0x18, 0, 0x00);
- DelayMs(50);
- }
- }
- if(SysMode == 1)
- {
- ClockModel++;
- if(ClockModel > 8) ClockModel = 1;
- }
- flag_ir = 0;
- flag_key7 = 0;
- }
-
- else if(((P2&0x01)==0&&flag_key1==1) || (IrValue[2]==0xa1&&flag_ir)) //Ïμí3Ä£ê½
- {
- SysMode++;
- if(SysMode > 1) SysMode = 0;
- if(SysMode ==1 || SysMode ==0)
- {
- OLED_Fill(0x00);
- ClockModel = 1;
- }
- if(buzzer == 0) set_time=0;
- flag_d = 0;
- flag_ir = 0;
- flag_key1 = 0;
- }
- }
复制代码
详细资料会上传。
|
评分
-
查看全部评分
|