Altium Designer画的QJ00M02录音笔原理图如下:(51hei附件中可下载工程文件)
部分主程序:
#include "reg52.h"
#include "stdio.h"
#include "string.h"
#define uchar unsigned char
#define uint unsigned int
uchar count_chaxun; //需定义在一下几个头文件前
#include "sbit.h"
#include "lcd.h"
#include "uart.h"
#include "mp3.h"
#include "key.h"
void display() //显示函数
{
switch (zhuangtai)
{
case 1:write_string(0x80," PLAY "); break;
case 2:write_string(0x80," STOP "); break;
case 3:write_string(0x80," PAUSE "); break;
case 4:write_string(0x80," RECORD"); break;
}
write_1602com(0xc0);
write_1602dat(dangqianqumu/100+0x30);
write_1602dat(dangqianqumu%100/10+0x30);
write_1602dat(dangqianqumu%10+0x30);
write_1602dat('/');
write_1602com(0xc4);
write_1602dat(zongqumu/100+0x30);
write_1602dat(zongqumu%100/10+0x30);
write_1602dat(zongqumu%10+0x30);
write_1602com(0xc8);
write_1602dat('V');
write_1602dat(':');
write_1602dat(yinliang/10+0x30);
write_1602dat(yinliang%10+0x30);
write_string(0," M:");
write_1602dat(moshi+0x30);
}
void main()
{
Uart_init(); //定时器、串口初始化
lcd_init(); //LCD1602初始化
delay(1000);
write_1602com(0x01);
write_1602com(0xcf);
write_1602dat(moshi+0x30);
shezhiyinliang(10); //设置音量
delay(100);
chaxunyinliang(); //查询音量
delay(100);
chaxunzongmu(); //查询音乐\录音文件总数
delay(100);
while(1)
{
keyscan(); //键扫描
display();
if(count_chaxun==25)
{
count_chaxun=0;
TR0=0; //关闭定时器0
chaxundangmu(); //查询当前曲目
delay(100);
count_chaxun=0;
chaxun(); //查询当前播放状态
TR0=1; //启动定时器0
}
}
}
void timer0() interrupt 1
{
TH0=0x4c;
TL0=0x00; //T0赋初值40ms
count_chaxun++;
if(count_chaxun>25)
count_chaxun=25 ;
}
全部资料51hei下载地址:
程序.rar
(50.89 KB, 下载次数: 54)
DXP原理图.rar
(578.27 KB, 下载次数: 52)
|