切换新版>>

Polo/Polo Plus论坛 >  08款POLO CD(RC668)增加AUX和车载蓝牙电话(一)

发表于 2015-09-18 15:06    IP属地:未知

引用 超人201488 于 15-04-18 08:14 发表的回复
楼主,我也在改造,但程序怎么调试都不行,能否将你的程序发我看一下*****,感激不尽
将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 编辑 ]

[每日热点]:【酷车实拍】家里又添新车了 提哪吒L...

回复本楼 | 评分 | 举报

发表于 2016-11-10 23:16    IP属地:未知

今天上来才发现加“精华”了,谢谢版主。

[每日热点]:【旅行游记】人说山西好风光之黄河篇...

回复本楼 | 评分 | 举报

发表于 2016-11-12 22:15    IP属地:未知

谁顶上来的?这软硬件一体化解决方案,看得脑袋发懵
Back again, and you?

[每日热点]:【保养维护】逍客烧机油难题被PNF技术完美解决...

回复本楼 | 评分 | 举报

来自 爱卡Android版 发表于 2016-11-12 23:38    IP属地:未知

技术牛人啊,就是这面板的处理的简单了点
老四眼,老当益壮!!!

[每日热点]:【休闲生活】丰宁坝上百里天路草原之巅...

回复本楼 | 评分 | 举报

来自 爱卡触屏版 发表于 2018-10-14 15:47    IP属地:未知

能否直接利用机头上的单片机修改程序达到目的?不用另外加一片单片机用来产生一个input selector切换信号。不知能否可行?

[每日热点]:【旅行游记】禅国囊谦 1000多个佛寺...

回复本楼 | 评分 | 举报

来自 爱卡触屏版 发表于 2018-10-14 15:50    IP属地:未知

能否直接通过修改机头上单片机的程序来实现input selector切换,这样就可以不用另外加一个单片机

[每日热点]:【旅行游记】打卡妈屿岛...

回复本楼 | 评分 | 举报

来自 爱卡Android版 发表于 2018-10-15 07:53    IP属地:未知

高手,技术贴

[每日热点]:【自驾游记】中原游之须弥福寿之庙...

回复本楼 | 评分 | 举报

发表于 2018-10-22 10:53    IP属地:未知

技术达人!

[每日热点]:【自驾游记】神农架-白帝城-三峡-宜昌...

回复本楼 | 评分 | 举报

发表于 2018-10-30 20:30    IP属地:未知

佩服,不是一般人可以学得来的。不过网上花300多可以买个成品cd机,替换原厂cd很方便,也很好用。

[每日热点]:【旅行游记】巴马世界之乡长寿村...

回复本楼 | 评分 | 举报