楼主,我也在改造,但程序怎么调试都不行,能否将你的程序发我看一下*****,感激不尽
将MCS51的程序公开,MCS5程序大家都容易懂,你再根据你的MCU去移植
//使用原CD的AM按纽,AM按纽是下降沿有效,等2秒后就是从AM切换到外界AUX(蓝牙立体声),20130131,12:24
//ook, 32 0b 94 切换到 94=extcd . 20130131,11:26
//ook,20130131..0:59
/*-----------------------------------------------------------------------------------------------
;实验23:AT24C02字节读写
;先向存储器地址50H写入AAH再读出送到P2口LED显示出来
;C51语言程序,文件名:AT24C02_1.c
;Protues7.2软件虚拟仿真和AS-02 MCU StudyBoard硬件实验调试通过,电子科技大学成都学院周密,20071121
;----------------------------------------------------------------------------------------------*/
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit sda=P1^7;
sbit scl=P1^6;
sbit KEY1 = P3^2;
uchar a;
void delay() // 延时4.34us(11.0592MHz)
{;}
void start() //IIC开始子程序
{
sda=1;
delay();
scl=1;
delay();
sda=0;
delay();
}
void stop() //IIC停止子程序
{
sda=0;
delay();
scl=1;
delay();
sda=1;
delay();
}
void ack() //IIC响应子程序
{
uchar i=0;
scl=1;
delay();
while((sda==1)&&(i<250))
{i++;}
scl=0;
delay();
}
void init() //IIC初始化
{
sda=1;
delay();
scl=1;
delay();
}
void write(uchar date) //IIC写子程序
{
uchar i,temp;
temp=date;
for(i=0;i<8;i++)
{
temp=temp<<1;
scl=0;
delay();
sda=CY;
delay();
scl=1;
delay();
}
scl=0;
delay();
sda=1;
delay();
}
//uchar read() //IIC读子程序
//{
// uchar i,k;
// scl=0;
// //delay();
// sda=1;
// //delay();
// for(i=0;i<8;i++)
// {
// scl=1;
// // delay();
// k=(k<<1)|sda;
// scl=0;
// // delay();
// }
// return k;
//}
void Delay(uint x) //延时函数Delay。x=1时为1ms延时程序
{
uchar j=0; //根据汇编代码分析表明,用j进行的内部循环大约延时8us(12MHz)
while(x--)
{
for(j=0;j<125;j++) //125应根据实验进行补偿调整为123(12MHz)
{;}
}
}
//void write_1byte(uchar address,uchar date) //IIC写1字节子程序
//{
// start();
// write(0xa0);
// ack();
// write(address);
// ack();
// write(date);
// ack();
// stop();
//}
//uchar read_1byte(uchar address) //IIC读1字节子程序
//{
// uchar date;
// start();
// write(0xa0);
// ack();
// write(address);
// ack();
// start();
// write(0xa1);
// ack();
// date=read();
// stop();
// return date;
//}
void main()
{
init();
//write_1byte(50,0x13);//先向存储器地址50H写入数据AAH
if(KEY1==0)
{
Delay(2000); //AM按纽是下降沿有效,等2秒后就是从AM切换到外界AUX(蓝牙立体声)
if(KEY1==0)
{
start();
write(0x32);
ack();
write(0x0b);
ack();
write(0x94); // 94 切换到8c=radio, 9c=extcd ,ac=pape,bc=phone
ack();
stop();
Delay(5);
start();
write(0x32);
ack();
write(0x0d);
ack();
write(0x2f);//-15db
ack();
stop();
Delay(5);
start();
write(0x32);
ack();
write(0x0d);
ack();
write(0x2a);//-10db
ack();
stop();
Delay(5);
start();
write(0x32);
ack();
write(0x0d);
ack();
write(0x25);//-5db
ack();
stop();
Delay(5);
P2=0xaa;
while(KEY1==0);
}
}
//P2=~read_1by(50); //从地址50H读出数据送到P2口LED显示出来
//while(1);
}
[
本帖最后由 zhou__mi 于 2015-9-18 15:09 编辑 ]